¿Cuáles son las aplicaciones de las firmas digitales?
Protocolo de identificación basado en firma digital
Supongamos que A y B son miembros de la red. Para un algoritmo de firma digital específico, cada participante tiene una clave pública y una clave privada correspondientes. En este entorno, siempre existe la necesidad de proporcionar un medio para verificar las claves públicas de otros usuarios de la red, lo que requiere algún tipo de infraestructura de clave pública (PKI). En resumen, se supone que existe una autoridad confiable (Trust Authenticator, TA), que firma las claves públicas de todos los usuarios en la red, y que todos los usuarios conocen la clave de verificación pública VerTA de TA.
El protocolo de reconocimiento de identidad Schnorr es un protocolo basado en firmas digitales e integra las ideas de varios protocolos de reconocimiento de identidad, incluido el algoritmo de firma ElGamal, el protocolo de reconocimiento de identidad Fiat-Shamir y el Chaum-Evertse-Van de Protocolos interactivos de Graff, etc., cuya seguridad se basa en la dificultad del problema de logaritmos discretos.
El protocolo de reconocimiento de identidad de Schnorr requiere un centro de confianza, denominado TA. TA selecciona los siguientes parámetros.
p es un número primo grande (pgt; 21024) y es difícil calcular el logaritmo discreto en Z*p. q es un número primo grande (qgt; 2160) y q|(p–1). a∈Z*p, el orden es q (por ejemplo, se puede tomar a=g(p-1)/q, g es el elemento primitivo de Zp). Un parámetro de seguridad t, 2tlt; q (para la mayoría de las aplicaciones, tomar t=40 proporcionará seguridad suficiente. Para mayor seguridad, Schnorr recomienda usar t=72). TA elige un esquema de firma seguro, el algoritmo de firma es SigTA y el algoritmo de verificación es VerTA. Seleccione una función Hash segura. Toda la información se procesa mediante hash antes de firmar. Para facilitar la lectura, se omitirá el paso de hash al describir el protocolo.
Los parámetros p, q, a, VerTA y las funciones Hash son todos públicos.
TA emite un certificado a cada usuario. Cuando A quiere obtener un certificado de TA, A y TA ejecutan el siguiente acuerdo. TA crea y emite una cadena de identificación ID (A) para el solicitante A. ID (A) contiene suficiente información sobre A, como nombre, sexo, fecha de nacimiento, ocupación, número de teléfono y otra información de identificación. A selecciona en secreto un índice aleatorio. , 0≤a≤q–1, calcule v=a-a mod p y envíe v a TA. Signos TA (ID(A), v), s=SigTA(ID(A), v). TA envía el certificado C(A) = (ID(A), v, s) a A.
El protocolo en el que el probador A demuestra su identidad al verificador B, el protocolo de identificación de Schnorr, se puede describir de la siguiente manera.
A selecciona aleatoriamente un número k, 0≤k≤q–1, y calcula γ=ak mod p. A envía su certificado C(A) = (ID(A), v, s) y γ a B. B verifica la firma de TA comprobando si VerTA(ID(A), v, s) es verdadera. B selecciona aleatoriamente un número r, 1≤r≤2t y envía r a A. A calcula y=(k ar) mod q y envía y a B. B identifica a A verificando si se establece γ=ayvrmod p. Siempre que se establezca la ecuación, B reconoce la identidad de A.
A continuación se proporcionará primero una explicación del protocolo Schnorr. El paso 1 se puede preprocesar, es decir, completar antes de que aparezca B. El propósito de establecer el parámetro de seguridad t es evitar que el impostor C se haga pasar por A y adivine el desafío r de B. Porque si t no es lo suficientemente grande, C puede adivinar el valor correcto de r de antemano. Entonces C puede elegir y en el paso 1 y calcular γ = ayvrmod p. Cuando reciba el desafío r enviado por B, habrá elegido y es. proporcionado a B, entonces y y γ deben pasar la verificación de B en el paso 6. γ se enviará a B. Si B adivina r aleatoriamente, entonces la probabilidad de que C pueda adivinar correctamente es 2-t. Entonces, para la mayoría de las aplicaciones, t=40 será una opción razonable.
La firma s se utiliza para demostrar la legitimidad del certificado de A.
Cuando B verifica la firma de TA en el certificado de A, él mismo cree que el certificado en sí es auténtico. El valor a seleccionado en secreto por A es funcionalmente similar a un número de identificación personal PIN, lo que hace que B crea que efectivamente es A quien completó el protocolo de identificación. Pero es esencialmente diferente del PIN: en el protocolo de identificación, el valor de a nunca se ha filtrado. Más bien, A (más precisamente, la tarjeta inteligente de A) le demuestra a B que conoce el valor de a. Este proceso de prueba se completa en el paso 5 del protocolo de identificación, que se completa cuando A calcula el valor y en respuesta al desafío de B.
Ahora veamos la seguridad del protocolo Schnorr.
En primer lugar, es difícil para el impostor C imitar con éxito a A falsificando un certificado Cˊ(A)= (ID(A), vˊ, sˊ), v≠vˊ, porque sˊ aquí debe ser Solo la firma de TA en (ID(A), vˊ) puede pasar la verificación de B en el paso 3 del protocolo. Pero mientras el esquema de firma de TA sea seguro, C no puede falsificar la firma sˊ de TA.
En segundo lugar, también es difícil para C imitar con éxito a A utilizando el certificado correcto de A C(A) = (ID(A), v, s) (el certificado no es confidencial y es público). Porque en este momento debe adivinar la clave a de A antes de poder calcular y = (k ar) mod q en el paso 5 para responder al desafío r de B. Sin embargo, encontrar a implica un problema de logaritmo discreto y se ha supuesto que no es factible calcular el logaritmo discreto en Zp.
A pesar de ello, hasta el momento no se ha demostrado que el protocolo Schnorr sea seguro.
El protocolo de reconocimiento de Schnorr es rápido y eficiente tanto en términos de la cantidad de cálculo como de la cantidad de información que necesita intercambiarse. También minimiza la cantidad de cálculo que A debe completar. Esto tiene en cuenta que en aplicaciones reales, el cálculo de A se completará con una tarjeta inteligente con baja potencia informática, mientras que el cálculo de B se completará con una computadora con gran potencia informática.
(Por favor, informe antes de reimprimir)