¿Implementación de referencia para las ECIES de Shoup?

4

ECIES es parte de ISO / IEC e IEEE. Hay un error de interoperabilidad entre las ECIES de Crypto ++ y las ECIES de Bouncy Castle. Sé dónde está el error, y he estado tratando de determinar quién tiene "razón" (para obtener una definición de "derecha").

El error es simplemente la longitud de la etiqueta L . En Crypto ++, la longitud de la etiqueta se codifica en una palabra de 8 bytes, mientras que Bouncy Castle usa una palabra de 4 bytes para la etiqueta. Obviamente, los resultados mac.Update(L, 4) y mac.Update(L, 8) producirán resultados diferentes.

La propuesta es lo suficientemente vaga en esta área en particular, por lo que es fácil entender por qué existe el error de interoperabilidad. He buscado en el sitio de Shoup, pero no puedo encontrar un implementación de referencia .

IEEE está oculto detrás de un muro de pago, por lo que es difícil decir lo que consideran estándar. Bien podría ser que ambos estén "en lo correcto" porque están usando estándares ligeramente diferentes. (Sé que Shoup señala algunas diferencias en su borrador 2.1).

¿Dónde puedo encontrar una implementación de referencia de las ECI de Shoup (preferiblemente del propio Victor Shoup)?

Relacionado: la razón por la que estoy interesado en esta información es que me gustaría trabajar en una implementación en OpenSSL. Por lo tanto, la implementación debe ser "correcta", y debe interactuar con las implementaciones de Crypto ++ y Bouncy Castle (incluso si eso significa un indicador para hacer lo "incorrecto" en ocasiones).

    
pregunta jww 14.04.2015 - 23:12
fuente

0 respuestas

Lea otras preguntas en las etiquetas