Colección de citas famosas - Consulta de diccionarios - La operación de cifrado de un algoritmo RSA requiere un proceso de cálculo completo.

La operación de cifrado de un algoritmo RSA requiere un proceso de cálculo completo.

Entonces déjame explicarte RSA e intentar que te resulte más fácil de entender:

*RSA es un sistema de cifrado asimétrico, lo que significa que se utiliza una clave pública para Se utiliza cifrado y una clave privada para descifrar, estas dos claves son diferentes, esto es muy, muy importante.

De hecho, RSA es muy simple, pero hermoso

Proceso

1 Encuentra dos números primos grandes p, q n=p*q=33 N=. (p-1)*(q-1)=20

La clave pública e generalmente es 3, y la clave privada d debe calcularse a través de la clave pública e

e* d=1(mod N) Es decir, el producto de e y d módulo N es 1. Es decir, e y d son elementos inversos entre sí módulo N

3*7=1 ( mod 20) Se puede ver que d=7

El texto sin formato cifrado se establece en M y el texto cifrado se establece en c

Proceso de cifrado: C=M^e (mod n)

Proceso de descifrado: M=C^d (mod n)

Da un ejemplo específico si M=2

Proceso de cifrado: C= 2^3(mod 33)=8(mod 33)

Proceso de descifrado: M=8^7(mod 33)=2097152(mod 33)=2(mod 33) Se puede observar que el y el texto claro original son los mismos.

El principio puede entenderse como M=M^(ed) (mod n)

En este ejemplo, e*d=21, lo que significa que la potencia de M^21 es igual a M

Esta característica de RSA se deriva del teorema de Fermat en teoría de números

Hablemos de los detalles. Por ejemplo, si el cartel cifra 26 letras, entonces el valor del texto sin formato. es de 1 a 26

Tomemos n=33. El valor del texto cifrado cifrado es de 1 a 33. Esto es normal

Pero después del descifrado, debe ser el mismo que el. valor del texto plano, que es de 1 a 26

En situaciones reales, la clave pública e es pública y la clave privada d es confidencial

Por ejemplo, A quiere enviar algo a B. La clave pública de B es pública, por lo que A lo sabe pero A no conoce la clave privada de B.

A primero cifra el texto cifrado con la clave pública de B y solo puede usar la clave privada de B, ya que la clave privada de B es confidencial. solo él lo sabe, la seguridad está garantizada

RSA El mayor problema de seguridad es la descomposición de n. Siempre que n se descomponga en p*q, entonces N=(p-1)(q-1).

De acuerdo con e*d=1 (mod N), se puede pasar e. Si se calcula d, entonces alguien ha calculado la clave privada y no hay seguridad.

Pero desafortunadamente, la descomposición de números grandes es una función unidireccional. Si conoces p y q, es fácil calcular n. Pero conocer n para calcular p y q es bastante difícil.

Enfatizo. que n se usa para cifrar y descifrar, y N se usa para calcular d si sabes e

El cartel no dijo lo que quieres hacer, solo entiéndelo si quieres.

p>

Si desea implementar este algoritmo:

Debe conocer dos puntos:

1.p, la generación de dos números primos grandes q, que implica la prueba de primacía es un capítulo de teoría de números, así que no puedo explicártelo

2. Operación de módulo, ya que el proceso de cifrado y descifrado puede tomar el módulo de docenas de potencias de un número, por lo que debe ser así. utilizado Se utiliza un algoritmo simple para resolver la complejidad, que es el algoritmo cuadrado repetido modular.

Si quieres usarlo en programación, es muy fácil

Pasa al siguiente dll

Es bastante fácil tener clases que se puedan usar. para RSA directamente en Java

Si quieres estudiar más profundamente, puedes enviarme tu correo electrónico RSA. He hecho un ppt antes

.