En criptografía , el criptosistema Niederreiter es una variación del criptosistema McEliece desarrollado en 1986 por Harald Niederreiter . [1] Se aplica la misma idea a la matriz de verificación de paridad , H , de un código lineal. Niederreiter equivale a McEliece desde el punto de vista de la seguridad. Utiliza un síndrome como texto cifrado y el mensaje es un patrón de error. El cifrado de Niederreiter es aproximadamente diez veces más rápido que el cifrado de McEliece. Niederreiter se puede utilizar para construir un esquema de firma digital .
Un caso especial de la propuesta original de Niederreiter se rompió [2] pero el sistema es seguro cuando se usa con un código binario Goppa .
Supongamos que Bob desea enviar un mensaje, m , a Alice cuya clave pública es ( H pub , t ):
Al recibir c = H pub m T de Bob, Alice hace lo siguiente para recuperar el mensaje, m .
Courtois, Finiasz y Sendrier mostraron cómo se puede utilizar el criptosistema Niederreiter para derivar un esquema de firma. [3]
Luego, la verificación aplica la función de cifrado público a la firma y verifica si es igual o no al valor hash del documento. Cuando se utiliza Niederreiter, o cualquier criptosistema basado en códigos de corrección de errores, el segundo paso en el esquema de firma casi siempre falla. Esto se debe a que un síndrome aleatorio normalmente corresponde a un patrón de error de peso mayor que t . Luego, el sistema especifica una forma determinista de ajustar d hasta que se encuentre uno que pueda descifrarse.
La elección de los parámetros del código está relacionada con la probabilidad de que un síndrome aleatorio sea decodificable. Courtois, Finiaz y Sendrier sugieren los valores de los parámetros n = 2 16 yt = 9. Entonces la probabilidad de decodificar un síndrome aleatorio es . Por lo tanto, ¡se encuentra un síndrome decodificable después de un número esperado de 9! intentos. Agregue un contador, i , al documento original d , para producir un documento ligeramente modificado, d i . Hashing d i da un síndrome que depende de i . Sea i desde 0 hasta i 0 , siendo i 0 el primer valor de i para el cual d i es decodificable. En este caso , el mensaje descifrado es una palabra, z , de longitud n y peso 9, tal que Hz T es igual al valor hash de di 0 . La firma se combinará con el valor i 0 para su verificación. Esta firma se adjunta al documento original, d .