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.)