Serie de criptografía seis: criptosistema de clave pública

1. Información general

1.1 Propuesta de criptosistema de clave pública

Con el rápido desarrollo de la tecnología informática y de redes, la demanda de comunicaciones seguras es cada vez más amplia, y el criptosistema simétrico muestra gradualmente las siguientes limitaciones:

  • Problema de distribución de claves: para llevar a cabo una comunicación encriptada, las dos partes deben negociar la clave de encriptación a través de un canal seguro secreto, y este canal seguro puede ser difícil de implementar.
  • Cuestiones clave de gestión: en nnEn una red de n usuarios, cada usuario quiere comunicarse con otrosn − 1 n-1norte1 usuario se comunica, debe usarn − 1 n-1norte1 clave, la cantidad total de claves del sistema alcanzarán ( n − 1 ) / 2 n(n-1)/2norte _ _1 ) /2 . La generación, el almacenamiento, la transferencia, el uso y la destrucción de claves se volverán muy complicados y existen riesgos de seguridad.
  • No se puede lograr la autenticación y el no repudio de los mensajes

En 1976, Whitefield Diffie y Martin Hellman fueron pioneros en el criptosistema de clave pública, también conocido como criptosistema asimétrico, en New Directions in Cryptography .

En este sistema, el usuario A tiene un par de claves: clave de cifrado (clave pública) P k P_kPAGky la clave de descifrado (clave privada) S k S_kSk, los dos son diferentes y la clave de descifrado (clave privada) no se puede deducir de la clave de cifrado (clave pública). Si B desea enviar información cifrada a A, necesita encontrar la clave de cifrado de A (clave pública) P k P_k en el directorio públicoPAGk, utilícelo para cifrar el mensaje; después de recibir el texto cifrado, A utiliza su propia clave de descifrado (clave privada) S k S_kSkS descifra el texto cifrado.

Antes del criptosistema de clave pública, todos los algoritmos criptográficos se basaban en los dos métodos básicos de sustitución y transposición , basados ​​en operaciones de bits ( caracteres ).

El criptosistema de clave pública proporciona una nueva base teórica y técnica para la criptografía y crea una nueva era de la criptografía.

  • Por un lado, el algoritmo criptográfico de clave pública se basa en funciones matemáticas, no en operaciones de bits (caracteres).
  • Por otro lado, el algoritmo de criptografía de clave pública utiliza dos claves en forma asimétrica, lo que tiene una gran importancia para la distribución y autenticación de claves.

1.2 El principio del criptosistema de clave pública

El diseño del criptosistema de clave pública finalmente se reduce a una función unidireccional de trampilla . Una función trampilla unidireccional es una función ff que satisface las siguientes condicionesf :

  • El cálculo directo es fácil. Es decir, si se conoce la clave P k P_kPAGky mensaje MMM , fácil de calcularC = f PK ( M ) C=f_{P_K} (M)C=FPAGk( M ) _
  • no sabe la clave S k S_kSkEn el caso de , el cálculo inverso no es factible. Es decir, si solo se conoce el mensaje encriptado CCC no conoce la claveS k S_kSk, luego calcule M = f − 1 ( C ) M=f^{-1}(C)METRO=F1 (C)no es factible.
  • Conociendo la clave S k S_kSkEn el caso de , el cálculo inverso es fácil. Es decir, si se conoce el mensaje encriptado CCC y teclaS k S_kSk, luego calcule M = f S k − 1 ( C ) M=f_{S_k}^{-1}(C)METRO=FSk 1( C ) es fácil. TeclaS k S_kSkEquivalente a una trampilla.

El diseño del criptosistema de clave pública considera principalmente los siguientes aspectos:

  • ¿Cuál es el problema matemático del que depende la seguridad de la criptografía de clave pública?
  • Cómo se generan la clave privada y la clave pública y cuál es la relación entre ellas
  • ¿Cuál es la longitud de la clave segura?
  • Cómo implementar el cifrado de clave pública y el descifrado de clave privada, y viceversa (firma digital)
  • Análisis de seguridad del criptosistema de clave pública

1.3 Criptosistemas de clave pública comunes

En la actualidad, existen tres principales criptosistemas de clave pública que se utilizan ampliamente:

  • Criptosistema de clave pública RSA basado en un problema de factorización de enteros grandes
  • Criptosistema de clave pública ElGamal basado en el problema del logaritmo discreto sobre grupos multiplicativos de campos finitos
  • Criptosistema de clave pública de curva elíptica basado en un problema de logaritmo discreto en curva elíptica
RSA ElGamal ECC
Conceptos básicos de la teoría de números teorema de euler logaritmo discreto logaritmo discreto
Conceptos básicos de seguridad Factorización de números primos grandes El problema del logaritmo discreto sobre campos finitos Problema de logaritmo discreto de curva elíptica
longitud de la clave de seguridad 1024 bits 1024 bits 160 bits
usar cifrado, firma digital cifrado, firma digital cifrado, firma digital
Ya sea para solicitar una patente No No

Además, existe la criptografía de clave pública basada en el problema del resto cuadrado basado en la probabilidad, la criptografía de clave pública basada en el problema del vector corto de celosía y la criptografía de clave pública basada en el problema de decodificación lineal en la codificación cogebraica, etc.

2. Criptografía de clave pública RSA

En 1978, Rivest, Shamir y Adleman del Instituto de Tecnología de Massachusetts propusieron conjuntamente el criptosistema de clave pública RSA, que es el primer algoritmo criptográfico de clave pública seguro y práctico. Se ha convertido en el estándar internacional de criptología de clave pública y se ha utilizado ampliamente. .

La base de RSA es el teorema de la teoría de números de Euler, y su seguridad depende de la dificultad de factorizar números enteros grandes. El criptosistema de clave pública RSA se puede utilizar para el cifrado y la firma digital, y tiene las características de seguridad y fácil implementación.

2.1 criptosistema RSA

(1) Generación de pares de claves pública-privada

Elija dos números primos grandes p, qp, qp , q (no filtrable), calcularn = pqn=pqnorte=pq ynnFunción de Euler de n φ ( n ) = ( pags − 1 ) ( q − 1 ) \varphi(n) = (p-1)(q-1)φ ( norte )=( pag1 ) ( q1 )

Seleccione aleatoriamente un número entero e ( 1 < e < φ ( n ) ) e(1<e<\varphi(n))mi ( 1<mi<φ ( n )) como clave pública, lo que satisfacemcd ( e , φ ( n ) ) = 1 mcd(e,\varphi(n))=1g c re ( mi ,φ ( norte ))=1 ,inmediatamenteeφ ( n ) \varphi(n)φ ( n ) primo mutuo

Usa el algoritmo de extensión de Euclides para calcular la clave privada d ≡ e − 1 mod φ ( n ) d \equiv e^{-1} \bmod \varphi(n)dmi1modificaciónφ ( n ),即eeinversa de e

(2) Algoritmo de cifrado y descifrado

Clave pública: ( e , n ) (e,n)( mi ,norte )

clave privada: ddd

Cifrado: c ≡ me mod nc \equiv m^e \bmod nCmetromimodificaciónnorte

Descifrado: m ≡ cd mod nm \equiv c^d \bmod nmetroCdmodificaciónnorte

(3) Selección de parámetros

número primo ppp yqqLa selección de q debe cumplir los siguientes requisitos:

  • Para evitar la factorización de la curva elíptica, ppp yqqLa longitud de q no debe diferir demasiado. Por ejemplo, use el número nnde 1024 bitsn , entoncesppp yqqLa longitud del módulo de q es de aproximadamente 512 bits
  • páginasp yqqLa diferencia q no debe ser demasiado pequeña. Sip − q pqpagSi q es demasiado pequeño, entoncesp ≈ qp\approx qpagq , entoncesp ≈ np\approx \sqrt{n}pagnorte , así que nnn puede usarse simplemente para todo lo cercano an \sqrt{n}norte La división de prueba de entero impar de se descompone efectivamente.
  • mcd ( pags - 1 , q - 1 ) mcd(p-1,q-1)g c re ( pag1 ,q1 ) debe ser lo más pequeño posible para reducir el número de puntos fijos.
  • páginasp yqqq debe ser un elemento fuerte, es decir,p − 1 p-1pag1 yq − 1 q-1q1 debe tener un factor primo grande.

Además, para prevenir ataques de índice bajo, eee yddd no puede elegir un número demasiado pequeño.

2.2 Seguridad criptográfica de clave pública RSA

La seguridad del criptosistema RSA depende principalmente del problema de factorización de enteros, el módulo de descomposición nnEl factor primo de n es la forma más sencilla de atacar RSA. Si es posible para el módulonnn descompuesta, podemos calcularφ ( n ) = ( p − 1 ) ( q − 1 ) \varphi(n)=(p-1)(q-1)φ ( norte )=( pag1 ) ( q1 ) , clave públicaddd sobre la clave privadaeee ecuación:d × e = 1 mod ( φ ( n ) ) d \ times e = 1 mod ( φ ( n ) )d×mi=1 m o d ( φ ( n )) , no es difícil encontrar la clave privadaeee , descifrando así el criptosistema de clave pública RSA.

El método de análisis de factorización anterior es el método de división de prueba, la idea básica es que un criptoanalista intenta por completo ser menor que nnTodos los números primos de n hasta encontrar un factor. Según la teoría de los números primos, el límite superior del número de intentos es2 n log ⁡ n \frac{2\sqrt{n}}{\log\sqrt{n}}registro _ _norte 2norte . Pero para grandes números nnn , el consumo de recursos de este método es imposible de lograr en la realidad.

Posteriormente, aparecieron algunos métodos importantes de análisis de factorización, incluido el p − 1 p-1 propuesto por Pollard en 1974pag1 método de factorización,p + 1 p+1pag+1 Método de factorización, método de factorización de tamiz cuadrático, método de factorización de curva elíptica, método de factorización de tamiz de campo numérico (tamiz de campo numérico), etc.

3. Criptografía de clave pública ElGamal

El criptosistema de clave pública ElGamal fue propuesto por T.ElGamal en 1985. El sistema se basa en el problema del logaritmo discreto sobre un campo finito y se puede utilizar tanto para el cifrado como para la firma digital. Debido a su mejor seguridad, y el mismo texto plano generará diferentes textos cifrados en diferentes momentos, ha sido ampliamente utilizado en la práctica, especialmente en la aplicación de firmas digitales.El famoso American Digital Signature Standard (DSS, Digital Signature Standard) es en realidad un variante del esquema de firma ElGamal.

(1) Generación de pares de claves pública-privada

Elige al azar un número primo grande ppp , y requierep − 1 p-1pag1 tiene un factor primo grande,g ∈ Z p ∗ g \in \boldsymbol Z^{*}_pgramoZpages un elemento primitivo ( Z p Z_pZpages una aplicaciónUn campo finito de p elementos,Z p ∗ Z^{*}_pZpages Z p Z_pZpagEl grupo multiplicativo formado por los elementos distintos de cero en

Elige un número aleatorio x ( 1 < x < p − 1 ) x(1<x<p-1)X ( 1<X<pag1 ) Como clave privada, calculey ≡ gx mod py \equiv g^x \bmod pygramoXmodificaciónp ,la clave pública es ( y , g , p ) (y,g,p)( y ,g ,pag )

(2) Algoritmo de cifrado y descifrado

Clave pública: ( y , g , p ) (y,g,p)( y ,g ,pag )

clave privada: xxX

Cifrado: C = ( c , c ′ ) C = (c,c^{'})C=( c ,C ),其中c ≡ gr mod p , c ′ ≡ myr mod pc \equiv g^{r} \bmod p, c^{'} \equiv my^{r} \bmod pCgramormodificaciónpag ,Cmi _rmodificaciónpag

Descifrado: m ≡ ( c ′ / cx ) mod pm \equiv (c^{'}/c^{x}) \bmod pmetro( do /cx )modificaciónpag

El sistema de clave pública de ElGamal necesita seleccionar un número aleatorio para cada operación de cifrado, el texto cifrado depende tanto del texto simple como del número aleatorio seleccionado, por lo tanto, para el mismo texto simple, se generan diferentes textos cifrados en diferentes momentos . Además, el cifrado de ElGamal hace que el mensaje se expanda dos veces, es decir, la longitud del texto cifrado es el doble de la longitud del texto plano correspondiente .

4. Otros criptosistemas de clave pública

(1) contraseña de clave pública de la mochila MH

El algoritmo de mochila fue propuesto por Ralph Merkle y Martin Hellman en 1978. Es el primer algoritmo criptográfico de clave pública, que se da cuenta de cómo usar problemas NP-completos para diseñar algoritmos criptográficos de clave pública, y su seguridad se basa en el rompecabezas de mochila. . El problema de la mochila es un problema NP-completo (la cantidad de cálculo aumenta exponencialmente a medida que aumenta la cantidad de artículos en la mochila), y hasta ahora no hay una solución de tiempo polinomial.

En 1983, Shamir descubrió el defecto de la transformación del algoritmo criptográfico MH, es decir, el vector de mochila supercreciente se puede reconstruir a partir del vector de mochila ordinario y descifró con éxito la clave privada utilizando el "par trampilla" y la clave pública. demostrando así que el cifrado de mochila MH no es seguro.

(2) Criptografía de clave pública Rabi

En 1979, MORabin propuso un nuevo criptosistema de clave pública en el artículo "Digital Signature and Public-Key as Factorization", es decir, el criptosistema de clave pública Rabin, que se basa en la dificultad de resolver la raíz cuadrada bajo el número compuesto. módulo (Equivalente a la descomposición de un entero grande) **Construyó un criptosistema de clave pública.

El criptosistema de clave pública Rabin es un caso especial del criptosistema de clave RSA. No se basa en funciones unidireccionales de trampilla uno a uno. Para el mismo texto cifrado, puede haber más de dos textos sin formato correspondientes. Descifrar este esquema es equivalente a factorizar números enteros grandes.

(3) Criptografía de clave pública de curva elíptica

En 1985, Koblitz y Miller introdujeron las curvas elípticas en la criptografía y propusieron un método basado en campos finitos GF ( p ) GF(p)El punto fijado en la curva elíptica de GF ( p ) forma un grupo, sobre el cual se define el sistema de logaritmo discreto y se construye una clase de criptosistema de clave pública basado en logaritmo discreto, esto es, Elliptic Curve Cryptosystem (ECC, Elliptic Curve Cryptosystem ), cuya seguridad sebasa en la intratabilidad del Problema del Logaritmo Discreto de la Curva Elíptica (ECDLP).

El problema del logaritmo discreto basado en la curva elíptica es reconocido como mucho más difícil que el problema de factorización de enteros (la base del criptosistema RSA) y el problema del logaritmo discreto basado en campos finitos (la base del criptosistema ElGamal). Por lo tanto, ECC solo necesita una longitud de clave más pequeña para brindar seguridad comparable a RSA y ElGamal (la clave de 160 bits de ECC puede alcanzar el nivel de seguridad de la clave de 1024 bits de RSA).

(4) Criptografía de clave pública probabilística Goldwasser-Micali

En 1984, S.Goldwasser y S.Micali propusieron el concepto de un criptosistema probabilístico de clave pública.La seguridad de este sistema se basa en la intratabilidad del problema del residuo cuadrático (también llamado problema del residuo cuadrático) en la teoría de números .

En el criptosistema de clave pública probabilística Goldwasser-Micali, para un texto plano fijo mmm y clave de cifradokkk , el remitente del mensaje introduce un número aleatorio xxal cifrarx .Al introducir unxxx , texto sin formatommEl texto cifrado correspondiente a m también es diferente. Es decir, el mismo texto planommm puede corresponder a múltiples textos cifrados diferentesccdo . Dado que cada cifrado es para seleccionar un número aleatorio para cada bit de texto sin formato para calcular el texto cifrado correspondiente, el criptosistema se denomina criptosistema de clave pública probabilística. Dado que los datos cifrados se expandenlog ⁡ 2 n \log_2{n}iniciar sesión2n veces, por lo que cuando se usa este sistema criptográfico para cifrar, la cantidad de cálculo es grande y la velocidad es lenta, y es adecuado para el cifrado y descifrado binario único.

Supongo que te gusta

Origin blog.csdn.net/apr15/article/details/127622901
Recomendado
Clasificación