Implementazione di riferimento per l'ECS di Shoup?

4

L'ECIES fa parte sia di ISO / IEC che di IEEE. C'è un bug di interoperabilità tra ECIES di Crypto ++ e ECIES di Bouncy Castle. So dove si trova l'errore e ho cercato di determinare chi è "giusto" (per alcune definizioni di "giusto").

Il bug è semplicemente la lunghezza dell'etichetta L . In Crypto ++, la lunghezza dell'etichetta è codificata in una parola di 8 byte, mentre Bouncy Castle utilizza una parola di 4 byte per l'etichetta. Ovviamente, mac.Update(L, 4) e mac.Update(L, 8) generano risultati diversi.

La proposta è sufficientemente vaga in questa particolare area, quindi è facile capire perché il bug di interoperabilità esiste. Ho cercato il sito di Shoup, ma non riesco a trovare un implementazione di riferimento .

IEEE è nascosto dietro un paywall, quindi è difficile dire cosa considerano standard. Potrebbe essere che entrambi siano "giusti" perché usano standard leggermente diversi. (So che Shoup evidenzia alcune differenze nella sua bozza 2.1).

Dove posso trovare un'implementazione di riferimento di Shoup's ECIES (preferibilmente da Victor Shoup stesso)?

Correlati: il motivo per cui sono interessato a queste informazioni è che mi piacerebbe lavorare su un'implementazione in OpenSSL. Quindi l'implementazione deve essere "giusta" e deve interagire con le implementazioni di Crypto ++ e Bouncy Castle (anche se ciò significa che una bandiera deve fare la cosa "non giusta" in caso di necessità).

    
posta jww 14.04.2015 - 23:12
fonte

0 risposte

Leggi altre domande sui tag