NTRU implementazione di attacchi java

1

Sto facendo ricerche sul crittosistema NTRU e ho avviato ricerche basate sul codice sorgente da sourceforge e da bouncy castle (linguaggio java).

Attualmente sono attacchi di ricerca su NTRU, basati su CVP e SVP. Ma sarei molto grato se qualcuno potesse darmi un link al codice sorgente degli attacchi su NTRU, almeno su una breve lunghezza, se esiste.

ps. Per favore non incolparmi di non voler scrivere tutto da solo, perché è un lavoro piuttosto dispendioso in termini di tempo e non c'è motivo di duplicare il codice, se già esiste. sarei grato per eventuali link o consigli.

pps. Ho incontrato qualche incomprensione su StackOverflow, quindi sono venuto qui sperando di ottenere aiuto e comprensione

    
posta john smith 17.07.2013 - 21:36
fonte

1 risposta

1

Phong Q. Nguyen , uno dei principali ricercatori sugli attacchi a NTRU, usa Libreria NTL di Victor Shoup , che contiene un'implementazione di Algoritmo LLL . Questo è C ++, non Java; ma questo è il tipo di lavoro di elaborazione dei numeri in cui l'efficienza extra dei linguaggi di basso livello come il C ++ è utile. Il 95% di un dato codice applicativo non è critico nel tempo e il 95% del restante 5% è legato all'I / O (I / O di rete, I / O del disco, I / O del bus RAM). La maggior parte dei lavori di crittografia hardcore (in particolare gli attacchi che richiedono molto muscolo) vivono nello 0,025% del codice in cui tutto avviene nella cache della CPU L1 e in quel punto il codice C o C ++ correttamente ottimizzato è in genere da 2 a 4 volte più veloce di quello ottimizzato correttamente Codice Java.

Ad ogni modo, per comprendere gli attacchi su NTRU dovrai cogliere una matematica piuttosto complessa, a quel punto qualcosa di così banale come un cambio di linguaggio di programmazione non dovrebbe infastidirti.

Un buon punto di partenza per attaccare un criptosistema è implementarlo da solo - avere la tua implementazione è utile se vuoi stampare valori intermedi o cose simili, ma la ragione principale è pedagogica: il processo di implementare l'algoritmo è ciò che ti fa capire come funziona, fino ai suoi minimi dettagli. Riutilizzare il codice esistente ti priverà di tutto questo apprendimento.

(Sì, ho scritto che C ++ è "di basso livello". Sue me.)

    
risposta data 17.07.2013 - 22:02
fonte

Leggi altre domande sui tag