Firma digital
0. Introducción
Con el advenimiento de la era de la información, las personas esperan poder procesar documentos, contratos, cartas y facturas a través de la transmisión de información en red.
Firma digitalmente para sustituir las tradicionales firmas manuscritas
El propósito de una firma digital es proporcionar un medio para que una entidad vincule su identidad a una determinada información. La firma digital de un mensaje es en realidad un número, que sólo depende de un secreto conocido por el firmante y también depende de la propia información firmada. Por tanto, piense en una firma digital como un dato que prueba la identidad del firmante y la autenticidad del contenido firmado.
1. Descripción del algoritmo RSA
El algoritmo RSA es un sistema de criptografía de clave pública relativamente completo propuesto por Rivest, Shamir y Adleman en 1977.
El algoritmo RSA es un algoritmo de clave pública que se puede utilizar tanto para cifrado como para firmas digitales. El algoritmo RSA se basa en un hecho de la teoría de números: es muy fácil multiplicar dos números primos grandes, pero es difícil descomponer su producto.
El algoritmo completo de cifrado de clave pública RSA se puede describir mediante los siguientes pasos.
1) Genera dos números primos grandes p y q, p≠q;
2) Calcula n=p×q,!(n)(p-1)(q - 1);
3) Seleccione aleatoriamente un número entero (clave de cifrado pública), 0 gcd(e,!(n) )= 1; 4) El cálculo satisface las siguientes condiciones (clave secreta de descifrado), ed=1mod!(n); 5) La operación de cifrado del texto sin formato es: c = E(m)=memodn; 6) La operación de descifrado del texto cifrado es: m=D(c)=cdmodn. En este momento, publique (e, n) como la clave de cifrado E y mantenga en secreto (d, n) como la clave de descifrado D. Ocultar p y q. 2. Confidencialidad de RSA Supongamos que el usuario A obtiene un par de transformaciones clave (EA, DA), de las cuales EA puede publicarse al público. La clave de cifrado, DA, es la clave de descifrado que el usuario A mantiene en secreto. Cuando el usuario B quiere enviar el mensaje M al usuario A, B solo necesita encontrar EA, usarlo para cifrar el mensaje M, C = EA (M), y luego colocar el texto cifrado C en el canal público *** Carga Enviar a A. Cuando A recibe el texto cifrado C, utiliza la clave secreta de descifrado DA de A para descifrarlo, DA(C)=DA(EA(M))=M, y recupera el texto sin formato M. Utilizando el proceso de cifrado y descifrado anterior se puede lograr una transmisión confidencial entre los usuarios A y B. Porque incluso si un espía obtiene el texto cifrado C, no tiene la clave de descifrado DA, por lo que no puede recuperar el texto plano M Por ejemplo: Si el usuario A toma p= 7, q=71, luego n=pq=3337,!(n)(p-1)(q-1)=46× 70=3220 Seleccione aleatoriamente la clave de cifrado e= 79, luego d=79-1. Haga públicos e y n, mantenga d en secreto y oculte p y q. Supongamos que la información que el usuario B quiere enviar a A es m=688. El usuario B cifra m de la siguiente manera: c=68879mod3337=1570 y luego envía el texto cifrado c al usuario A
688=m.
Aunque esto resuelve el problema de la transmisión confidencial entre los usuarios A y B, no resuelve la confiabilidad. Cuando A recibe el texto cifrado C, no puede determinar el texto cifrado que envía el usuario B
. Porque el disruptor que ataca activamente también conoce la clave de cifrado del usuario A.
El disruptor puede hacerse pasar por B y enviar un mensaje falso a A, pero A no puede juzgar el mensaje.
Es es de B? Este problema se puede resolver mediante firmas digitales.
3. Esquema de firma digital RSA
3.1 Principio de firma digital del sistema de cifrado de clave pública
El principio es: el usuario B utiliza su clave privada para "cifrar". "El usuario A utiliza la clave pública para descifrar un conjunto de información. Si el "descifrado" se realiza correctamente, significa que este conjunto de información fue cifrado por el usuario B. El usuario B no puede negar este hecho. Se trata de una firma digital.
Supongamos que el usuario B obtiene un par de transformaciones de clave (EB, DB), donde EB es una clave de cifrado que puede hacerse pública
y DB es secretada por el propio usuario B. Descifrado clave para su custodia.
Cuando el usuario B quiere enviar el mensaje M al usuario A, si el usuario B primero usa la clave de descifrado DB que guarda para realizar la transformación, C'=DB(M), luego envía C' a A. Cuando A
recibe el texto cifrado C', puede usar la clave pública EB de B para realizar la transformación inversa, EB(C')=EB
(DB(M))=. M, restaura la información original M. De esta manera, A puede juzgar que el mensaje debe ser enviado por B, porque solo B conoce la clave secreta DB y nadie excepto B puede falsificar la información C ', por lo que C' puede usarse como la firma digital del usuario B, A puedo
verificar la legitimidad de B a través de EB, y la certeza de B sobre el mensaje C' no se puede negar
Lo admito. Dicha aplicación solo resuelve la confiabilidad del mensaje y puede evitar que terceros inserten, falsifiquen y alteren el mensaje, pero no resuelve la confidencialidad del mensaje M, porque excepto
Además de A , otros también pueden recibir y restaurar el mensaje M.
3.2 Soluciones a la confidencialidad y confiabilidad
Para resolver los dos problemas de confidencialidad y confiabilidad de la información al mismo tiempo, podemos
El siguiente procesamiento se hace:
Los usuarios A y B han obtenido sus respectivos pares de claves (EA, DA) y (EB, DB) respectivamente.
Si B quiere enviar un mensaje a A M , entonces el mensaje M se puede procesar primero con la clave secreta DB de B y luego cifrar con la clave pública EA de A, es decir, C = EA (DB (M)),
Luego envíe C a A. Después de que A recibe la información C, primero usa su propia clave secreta DA
para resolver C, y luego usa la clave pública EB de B para restaurarlo, es decir
EB(DA( C))=EB(DA(EA(DB(M))))=EB(DB(M))=M.
Al combinar estos dos métodos y utilizarlos para cifrar información, puedes
lograr el propósito deseado. La información transmitida en el canal público es confidencial y confiable, lo que evita el robo pasivo por parte de terceros y evita que terceros sean interceptados por la destrucción activa de la persona, además tiene la capacidad de reconocer y certificar ante notario.
4. Análisis de seguridad de RSA
La seguridad de RSA depende de la dificultad de la descomposición de números grandes La velocidad de factorización actual
El algoritmo más rápido, su tiempo. la complejidad es exp(sqrt(n)1n1n(n)). Si la suma es un número decimal de 100 dígitos, entonces es un número decimal de 200 dígitos. Según una computadora de ultra alta velocidad con 107 operaciones por segundo, tardará 108 años en descifrarse. Por tanto, dentro de un determinado período de validez, las firmas digitales RSA son seguras y fiables. En 2002, se descompuso con éxito un número decimal de 158 dígitos, por lo que los números primos seleccionados pyq deberían ser números decimales con una longitud de 100 (equivalente a un número binario de 332 dígitos). Para seguridad a largo plazo debería utilizar al menos 1024 bits.
La mayor amenaza para la seguridad de RSA es el desarrollo de la tecnología de factorización de números primos enteros
Si hay un gran avance en la tecnología de factorización, entonces el cracking de RSA
>Se vuelve muy simple y la clave privada se puede calcular directamente.
5. Conclusión
Hay muchas formas de implementar firmas digitales actualmente, las más utilizadas son las firmas Hash, las firmas DSS, las firmas RSA y las firmas ElGamal.
Entre ellos, la firma RSA es el algoritmo de firma digital más popular. Aunque la tecnología de firma digital no es lo suficientemente perfecta, por ejemplo, el destinatario puede reutilizar el archivo firmado y la clave pública La eficiencia del algoritmo de cifrado es bastante
bajo y no es fácil de utilizar para cifrar archivos largos. Podemos combinar el algoritmo RSA con otros algoritmos (como el algoritmo DES), lo que no solo mejora su velocidad de ejecución, sino que también garantiza un cierto nivel de seguridad. Con el rápido desarrollo de Internet y la mejora y mejora continua de sus algoritmos
sus campos de aplicación estarán cada vez más extendidos y tendrán amplias perspectivas de desarrollo.