I nuovi set di istruzioni trovati su Intel Haswell Architecture fanno alcuna differenza nelle operazioni crittografiche?

7

L'architettura Haswell di Intel supporta diversi nuovi Istruzioni per la manipolazione dei bit . Con le stesse parole di Intel,

Bit manipulation instructions are useful for compressed database, hashing , large number arithmetic, and a variety of general purpose codes.

Le nuove istruzioni trovate sul processore Haswell fanno alcuna differenza nelle velocità di calcolo delle funzioni di crittografia correnti o in sospeso utilizzate?

    
posta Ayrx 02.05.2013 - 17:54
fonte

2 risposte

10

La maggior parte di queste operazioni è "banale": sostituiscono combinazioni di due o tre codici operativi esistenti. Ad esempio, il tipo di istruzione BLSR è, come specificato nella pagina a cui ti colleghi, equivalente a una sottrazione seguita da un% bit per bitAND. Questo potrebbe già essere fatto. Le operazioni aggiuntive non danneggiano, e i compilatori trarranno beneficio da esse e, senza dubbio, alcune funzioni di crittografia otterranno alcuni cicli attraverso l'uso di alcuni di questi codici operativi, ma non ci sono risultati rivoluzionari da aspettarsi.

Tra le istruzioni, le più interessanti sono quelle di conteggio ( LZCNT , TZCNT ) perché il conteggio del numero di zeri iniziali o finali in un registro di bit N è costato O (log N) quando si utilizzano opcodes "classici". Queste operazioni hanno qualche utilità in alcuni casi angolari di calcoli su interi grandi. In particolare, penso che ciò sarà di aiuto per GCD binario , che è usato per calcolare le divisioni in campi finiti - un passo importante nei calcoli su curve ellittiche. Al momento, la divisione in campi finiti è così costosa (se confrontata con la moltiplicazione) che vale la pena utilizzare le coordinate proiettive per calcolare cose sulle curve ellittiche: questo implica un numero dieci volte maggiore di operazioni, ma evita molte divisioni, quindi aumenta i guadagni netti. Una veloce implementazione di GCD binario potrebbe cambiare un po 'quell'immagine. Per ulteriori usi delle operazioni di conteggio, vedi questa pagina di Wikipedia .

Ciò che può davvero migliorare le cose non sono le nuove istruzioni, ma i registri più grandi. AVX2 offre registri a 256-bit; è abbastanza spazio per calcolare otto SHA-256 in parallelo, proprio come SSE2 consente quattro SHA-256 parallelo. Il software di cracking delle password trarrà vantaggio da questo ... (anche se le GPU sono probabilmente migliori). È in corso un lavoro per definire le modalità di hashing degli alberi per trasformare una data funzione hash in un sistema che beneficia del parallelismo; per esempio. vedi questo articolo (da Keccak, aka SHA-3, designer). Il NIST ha espresso la volontà di definire alcuni standard a tale riguardo.

Naturalmente, ci vuole ancora qualche scenario particolare per beneficiare di tali guadagni della CPU. Nella maggior parte degli usi dell'hashing (o della crittografia o altro), la crittografia non è il collo di bottiglia; I / O è. Quando esegui l'hashing dei file, non puoi eseguirli più velocemente di quanto tu possa leggerli dal disco.

    
risposta data 02.05.2013 - 19:04
fonte
1

Penso che la nuova istruzione MULX aiuterà un po ', poiché offre 3 operandi. Ciò potrebbe eliminare alcuni MOV s e accelerare i cicli stretti.

Il prossimo processore Intel Broadwell offrirà ADCX e ADOX per abilitare due cicli ADD indipendenti. Questo è stato progettato specificamente per crypto in mente, vedi link

Ovviamente, tutto questo non è pazzesco, ma può comportare, per esempio, un aumento del fattore due, forse meno.

    
risposta data 29.06.2013 - 16:35
fonte

Leggi altre domande sui tag