El esquema de Schnorr es uno de los esquemas de autenticación más efectivos y basados en la teoría . La seguridad del circuito se basa en la dificultad de calcular logaritmos discretos . El esquema propuesto por Klaus Schnorr es una modificación de los esquemas ElGamal (1985) y Fiat-Shamir (1986) , pero tiene un tamaño de firma más pequeño. El esquema Schnorr es la base del estándar de la República de Bielorrusia STB 1176.2-99 y los estándares de Corea del Sur KCDSA y EC-KCDSA. Estaba cubierto por la patente estadounidense 4.999.082 , que expiró en febrero de 2008.
Los esquemas de autenticación y firma electrónica son uno de los tipos de protocolos criptográficos más importantes y comunes que aseguran la integridad de la información.
El propósito de los protocolos de autenticación se puede entender fácilmente con el siguiente ejemplo. Supongamos que tenemos un sistema de información en el que es necesario diferenciar el acceso a varios datos. También en este sistema hay un administrador que almacena todos los identificadores de usuario con un conjunto de derechos asociados, con la ayuda de los cuales se diferencia el acceso a los recursos. A un usuario se le puede permitir leer un archivo, cambiar el segundo y al mismo tiempo denegar el acceso al tercero. En este ejemplo, asegurar la integridad de la información significa impedir el acceso al sistema a personas que no sean sus usuarios, así como impedir que los usuarios accedan a aquellos recursos para los que no tienen autorización. El método más común de control de acceso, la protección con contraseña , tiene muchos inconvenientes, así que pasemos a la formulación criptográfica del problema.
Hay dos participantes en el protocolo: Alice, que quiere confirmar su identidad, y Bob, que debe verificar esta confirmación. Alice tiene dos claves , una clave pública (pública) y una clave privada (privada) que solo conoce Alice. De hecho, Bob debe verificar que Alice conoce su clave privada usando solo .
El esquema de Schnorr es uno de los más efectivos entre los protocolos de autenticación prácticos que implementa esta tarea. Minimiza la dependencia del cálculo requerido para crear una firma en el mensaje. En este esquema, los cálculos principales se pueden realizar mientras el procesador está inactivo, lo que le permite aumentar la velocidad de firma. Al igual que DSA , el esquema de Schnorr utiliza un subgrupo de orden en . Este método también utiliza una función hash .
La generación de claves para el esquema de firma Schnorr es la misma que la generación de claves para DSA , excepto que no hay restricciones de tamaño. Tenga en cuenta también que el módulo se puede calcular de forma autónoma.
La seguridad del algoritmo depende del parámetro t . La complejidad de abrir el algoritmo es aproximadamente igual a . Schnorr aconseja usar t alrededor de 72 bits, para y . Para resolver el problema del logaritmo discreto, en este caso, se requieren al menos los pasos de algoritmos conocidos.
Generación de claves:
Autenticación:
Si asumimos en el esquema de Schnorr que Alice es un adversario, entonces en el paso 1 puede elegir de manera aleatoria pero eficiente. Sea el número pasado por Alice. Supongamos que es posible encontrar dos números aleatorios y que para cada uno de ellos Alice puede encontrar el correspondiente y cuya confirmación dará un resultado positivo. Obtenemos:
.Desde aquí o . Como , entonces existe y, por lo tanto, , es decir, el logaritmo discreto de . Por lo tanto, es raro que Alice pueda responder adecuadamente a ambos (dado el mismo ) en el paso 3 del protocolo, lo que significa que el ataque de Alice tiene éxito solo con una probabilidad insignificante. O tales valores se encuentran a menudo, y luego el algoritmo que usa Alice se puede usar para calcular logaritmos discretos.
En otras palabras, se demuestra que, bajo el supuesto de que el problema del logaritmo discreto es difícil, el esquema de autenticación de Schnorr es resistente frente a un adversario pasivo, es decir, correcto.
Enemigo activoUn adversario activo puede realizar una serie de sesiones de ejecución de protocolo como verificador con un probador honesto (o escuchar a escondidas dichas ejecuciones) y luego intentar atacar el esquema de autenticación. Para la resistencia frente a un adversario activo, es suficiente que el protocolo de autenticación sea una prueba de conocimiento cero . Sin embargo, nadie ha podido aún probar la propiedad de conocimiento cero para el esquema de Schnorr.
El algoritmo de Schnorr también se puede utilizar como protocolo para firmar digitalmente un mensaje . El par de claves es el mismo, pero se agrega una función hash unidireccional .
Los principales cálculos para generar una firma se realizan en la etapa de preprocesamiento y en la etapa de cálculo , donde los números y tienen el orden de bits, y el parámetro es un bit. La última multiplicación es insignificante en comparación con la multiplicación modular en el esquema RSA .
La verificación de firma consiste principalmente en un cálculo que se puede hacer en el promedio de cálculos de módulo donde hay una longitud en bits.
Una firma más corta reduce el número de operaciones para la generación y verificación de la firma: en el esquema Schnorr y en el esquema ElGamal .
Generación de claves:
Firma del mensaje:
El esquema de Schnorr tiene patentes en varios países. Por ejemplo, US #4,995,082 con fecha del 19 de febrero de 1991 (caducó el 19 de febrero de 2008). En 1993, Public Key Partners (PKP) de Sunnyvale adquirió los derechos mundiales de esta patente. Además de los Estados Unidos, este esquema también está patentado en varios otros países.
Una modificación del circuito realizada por Ernie Brickell y Kevin McCurley en 1992 mejoró enormemente la seguridad del circuito. Su método utiliza el número , que, al igual que , es difícil de descomponer, un divisor simple del número y un elemento exponente en , que posteriormente se utilizan en la firma. A diferencia del esquema de Schnorr, la firma en su método se calcula mediante la ecuación
.Si bien la modificación de Brickell y McCarley es computacionalmente menos eficiente que el esquema de Schnorr, este método tiene la ventaja de basarse en la dificultad de dos problemas complejos: