Colección de citas famosas - Libros antiguos - Criptosistema de clave pública y algoritmo de clave pública RSA

Criptosistema de clave pública y algoritmo de clave pública RSA

Criptosistema de clave pública y algoritmo de clave pública RSA

Este artículo presenta brevemente las ideas y características del criptosistema de clave pública, y presenta específicamente la base teórica, el principio de funcionamiento y el proceso de implementación específico. Se proporciona y se utiliza un ejemplo simple para ilustrar cómo se implementa el algoritmo. Al final de este artículo, se resumen algunas deficiencias y soluciones actuales del algoritmo RSA.

Palabras clave: criptografía de clave pública, clave pública, clave privada, RSA

§1 Introducción

Con la realización gradual de las redes informáticas, las perspectivas de Internet son cada vez más importantes. El futuro es cada vez mejor. El desarrollo económico global está entrando en la era de la economía de la información y la economía del conocimiento está comenzando a tomar forma. La cuestión de la confidencialidad de la información informática es cada vez más importante, ya sea que se trate de comunicación de información personal o del desarrollo del comercio electrónico, existe una necesidad urgente de garantizar la seguridad de la transmisión de información en Internet y garantizar la seguridad de la información. La tecnología de seguridad de la información es una disciplina integral que involucra la teoría de la información, la informática, la criptografía y otros aspectos del conocimiento. Su tarea principal es estudiar los métodos de protección de la información en los sistemas informáticos y las redes de comunicación para lograr la seguridad, confidencialidad y autenticidad de la información. el sistema y completo. Entre ellos, el núcleo de la seguridad de la información es la tecnología de criptografía. La tecnología criptográfica es una materia interdisciplinaria que integra matemáticas, informática, electrónica y comunicaciones y muchas otras disciplinas. No sólo puede garantizar el cifrado de información confidencial, sino también realizar firma digital, verificación de identidad, seguridad del sistema y otras funciones. Es una de las ciencias importantes en el desarrollo de la modernización. Este artículo brindará una breve introducción al sistema de criptografía de clave pública y al algoritmo RSA, que actualmente es el más popular del sistema.

§2 Sistema de criptografía de clave pública

Para explicar el sistema de criptografía de clave pública, primero comprendamos los diferentes algoritmos de cifrado: Los algoritmos de cifrado actuales se pueden dividir en criptografía de clave única según el algoritmos de clave y algoritmos de criptografía de clave pública.

2.1. Cifrado de clave única

También conocido como cifrado simétrico, es un método de cifrado relativamente tradicional. Las operaciones de cifrado y descifrado utilizan la misma clave, y la información del remitente y. el destinatario de la información debe tener la contraseña (llamada contraseña simétrica) al transmitir y procesar la información. Por tanto, ambas partes comunicantes deben obtener la clave y mantenerla en secreto.

La seguridad de un criptosistema de clave única depende de los dos factores siguientes: primero, el algoritmo de cifrado debe ser lo suficientemente fuerte y es prácticamente imposible descifrar información basándose únicamente en el texto cifrado; la seguridad del método de cifrado depende del secreto de la clave, no del secreto del algoritmo, por lo tanto, no necesitamos garantizar el secreto del algoritmo (de hecho, muchos algoritmos de criptosistemas de clave única utilizados en realidad son públicos). , pero debemos garantizar la confidencialidad de la clave.

A partir de estas características de la criptografía de clave única, podemos ver fácilmente que existen dos problemas principales: primero, el problema de la cantidad de claves. En un criptosistema de una sola clave, cada par de comunicadores requiere un par de claves. Cuando aumenta el número de usuarios, el número de claves inevitablemente aumentará exponencialmente. Por lo tanto, en la comunicación de red, se debe generar, almacenar y almacenar una gran cantidad de claves. y la asignación será un problema difícil de resolver. En segundo lugar, está la cuestión de la distribución de claves. En un criptosistema de clave única, la seguridad del cifrado depende completamente de la protección de la clave. Sin embargo, dado que ambas partes que se comunican utilizan la misma clave, las personas tienen que intercambiar claves entre sí. Por lo tanto, para garantizar la seguridad, las personas deben hacerlo. usar algunas claves adicionales para distribuir la clave a través de un canal seguro, como usar un mensajero especial para transmitir la clave, este enfoque es bastante costoso e incluso se puede decir que es muy poco realista, especialmente en un entorno de red informática donde la gente usa la clave. red para transmitir archivos de claves cifradas, pero requiere otro canal seguro para distribuir la clave, lo que obviamente es muy imprudente e incluso ridículo.

2.2 Criptografía de clave pública

Precisamente porque el sistema de criptografía de clave única tiene tales deficiencias que son difíciles de solucionar, es más urgente y urgente desarrollar un nuevo sistema, más eficaz y Es necesario un sistema de criptografía más avanzado. En este caso, surgió un nuevo sistema de criptografía de clave pública que resolvió de manera innovadora el problema de distribución de claves que ha preocupado a innumerables científicos. De hecho, en este sistema, las personas ni siquiera necesitan distribuir claves que deben mantenerse estrictamente confidenciales. , este avance también se considera el mayor logro en la historia de la criptografía desde la invención de los cifrados de sustitución de código único en los últimos dos mil años.

Esta novedosa idea fue propuesta por Diffie y Hellman, dos académicos de la Universidad de Stanford en Estados Unidos en la década de 1970. La mayor diferencia entre este sistema y la criptografía de clave única es:

En el sistema de criptografía de clave pública, el cifrado y el descifrado utilizan claves diferentes (en comparación con las claves simétricas, la gente las llama claves asimétricas. Existe una interdependencia entre las dos claves: es decir, cualquiera de ellas utiliza información cifrada con una clave). Sólo se puede descifrar con otra clave. Esto permite que las partes que se comunican se comuniquen de forma confidencial sin intercambiar claves de antemano. La clave de cifrado y el algoritmo son públicos. Todos pueden usar esta clave para cifrar el archivo y enviarlo al destinatario. Esta clave de cifrado también se denomina clave pública y una vez que el destinatario recibe el archivo cifrado, puede utilizarla para cifrar el archivo. Descifre el archivo con la clave de descifrado. Esta clave la controla de forma privada y no necesita ser distribuida, por lo que también se llama clave privada, que resuelve el problema de la distribución de claves.

Para ilustrar esta idea, podemos considerar la siguiente analogía:

Se supone que dos personas que se comunican en un canal inseguro son Alice (receptor) y Bob (remitente), esperan para poder comunicarse de forma segura sin verse comprometido por su rival Oscar. Alice pensó en una manera. Usó un candado (equivalente a una clave pública) que cualquiera puede cerrar con un solo clic, pero solo la clave de Alice (equivalente a una clave privada) puede abrirlo. Luego, Alice envía innumerables candados al mundo exterior. Cuando alguien, como Bob, quiere enviarle una carta, solo necesita encontrar una caja, cerrarla con uno de los candados de Alice y luego enviársela a Alice. esta vez, cualquiera (incluido Bob. Excepto Alice, que tiene la llave, ya nadie puede abrir la caja, por lo que incluso si Oscar puede encontrar la cerradura de Alice, incluso si Oscar puede interceptar la caja durante el proceso de comunicación, no puede abrir la caja sin La clave de Alice, y la clave de Alice no. No es necesario distribuirla, por lo que Oscar no podrá obtener esta "clave privada".

De la introducción anterior, se puede ver que la idea de la criptografía de clave pública no es complicada, y la cuestión clave al implementarla es cómo determinar la clave pública y la clave privada, y la Algoritmo de cifrado/descifrado, es decir, cómo encontrar el problema "La cerradura y la llave de Alicia". Suponemos que en este sistema, PK es información pública y se utiliza como clave de cifrado, mientras que SK debe ser mantenido en secreto por el usuario y se utiliza como clave de descifrado. El algoritmo de cifrado E y el algoritmo de descifrado D también son públicos. Aunque SK y PK aparecen en pares, SK no se puede calcular en función de PK. Deben cumplir las condiciones:

① Después de que la clave de cifrado PK cifra el texto sin formato X y luego lo descifra con la clave de descifrado SK, el texto sin formato se puede recuperar o escribir como: DSK (EPK ( X)) = X

②La clave de cifrado no se puede utilizar para descifrar, es decir, DPK(EPK(X))≠X

③El par de PK y SK se puede generar fácilmente en la computadora.

④ En realidad, es imposible deducir SK de la PK conocida.

⑤Las operaciones de cifrado y descifrado se pueden revertir, es decir: EPK (DSK (X)) = X

De las condiciones anteriores, se puede ver que bajo la criptografía de clave pública sistema, la clave de cifrado no es igual a la clave de descifrado. La clave de cifrado puede hacerse pública, de modo que cualquier usuario pueda cifrar y enviar la información enviada a este usuario con la clave pública. La única clave privada guardada por el usuario es confidencial y solo ella puede restaurar y descifrar el texto cifrado. Aunque teóricamente la clave de descifrado se puede deducir de la clave de cifrado, este diseño de algoritmo es en realidad imposible, o aunque se puede deducir, lleva mucho tiempo y se vuelve inviable. Por lo tanto, hacer pública la clave de cifrado no compromete la seguridad de la clave.

La idea de este sistema es simple, pero cómo encontrar un algoritmo adecuado para implementar este sistema es un problema que realmente preocupa a los criptógrafos, porque dado que Pk y SK son un par, existe una interacción mutua. Si el adversario Oscar puede deriva SK de PK, entonces el sistema ya no es seguro. Por lo tanto, cómo encontrar un algoritmo adecuado para generar Pk y SK adecuados, y hacer imposible derivar SK de PK, es un problema difícil que los criptógrafos deben resolver con urgencia. Este problema incluso paralizó durante mucho tiempo el desarrollo de sistemas de criptografía de clave pública.

Para resolver este problema, los criptógrafos consideraron la función matemática unidireccional de trampilla. A continuación, podemos dar su definición informal:

Cifrado público de Alice Una función debe ser fácil de calcular. , mientras que calcular su inversa (es decir, la función de descifrado) debería ser difícil (para alguien que no sea Alice). Para muchas funciones de la forma Y=f(x), para un valor x de variable independiente dado, es fácil calcular el valor de la función Y y a partir de un valor Y dado, en muchos casos se calcula según la función; La relación de valores f (x) x es muy difícil. Las funciones que son fáciles de calcular pero difíciles de invertir suelen denominarse funciones unidireccionales. Durante el proceso de cifrado, esperamos que la función de cifrado E sea una función inyectiva de un solo término para que pueda descifrarse. Aunque todavía no se ha demostrado que ninguna función sea unidireccional, hay muchas funciones inyectivas que se cree que son unidireccionales.

Por ejemplo, la siguiente función se considera unidireccional. Supongamos que n es el producto de dos números primos grandes p y q, y b es un entero positivo. Luego defina f:

f (x )= x b mod n

(Si gcd(b,φ(n))=1, entonces, de hecho, esta es la función de cifrado RSA de la que hablaremos a continuación)

Si queremos construir un criptosistema de clave pública, no basta con dar una función inyectiva unidireccional. Desde el punto de vista de Alice, no es necesario que E sea unidireccional, ya que necesita descifrar el mensaje recibido de manera eficiente. Por lo tanto, Alice debería tener una trampilla que contenga la información secreta de su función que facilite la búsqueda de E. Es decir, Alice puede descifrar eficazmente porque tiene conocimiento secreto adicional, SK, que puede proporcionarle la función de descifrado D. Por lo tanto, llamamos a una función función unidireccional de trampilla si es una función unidireccional y su inversa es fácil de encontrar dado el conocimiento de la trampilla específica.

Considere la función anterior f (x) =?xb mod n. Podemos saber que su función inversa f -1 tiene una forma similar f (x) = xa?mod n, para el valor apropiado de a. La trampilla utiliza la factorización de n para calcular eficazmente el índice a correcto (para una b dada).

Por conveniencia, contamos un tipo específico de función unidireccional de trampilla como ?. Luego seleccione aleatoriamente una función f que pertenezca a ?, ya que su función inversa f-1 es la función de descifrado secreto. Entonces se podrá implementar el sistema de criptografía de clave pública.

Basándose en las ideas anteriores sobre las funciones unidireccionales de trampilla, los académicos han propuesto muchos métodos de cifrado de clave pública y su seguridad se basa en problemas matemáticos complejos. Según los problemas matemáticos en los que se basan, actualmente se consideran seguros y eficientes al menos los siguientes tres tipos de sistemas: sistemas de factorización de enteros grandes (representativamente RSA), sistemas de logaritmos discretos de curva elíptica (ECC) y sistemas de logaritmos discretos (el representativo es DSA).

§3 Algoritmo RSA

3.1 Introducción

El sistema de clave pública RSA más famoso y utilizado fue desarrollado por el Instituto de Tecnología de Massachusetts en 1978. Rivest, Shamir y Adleman del (MIT) lo propusieron en un artículo titulado "Métodos para obtener firmas digitales y criptosistemas de clave pública". Es un criptosistema asimétrico (clave pública) basado en la teoría de números y un sistema de cifrado en bloques. Su nombre proviene de las iniciales de los tres inventores. Su seguridad se basa en la dificultad de la factorización de enteros primos grandes, y el problema de factorización de enteros grandes es un problema famoso en matemáticas. Hasta ahora no existe un método eficaz para resolverlo, por lo que se puede garantizar la seguridad del algoritmo RSA. El sistema RSA es el método más típico del sistema de clave pública. La mayoría de los productos y estándares que utilizan criptografía de clave pública para cifrado y firmas digitales utilizan el algoritmo RSA.

El algoritmo RSA es el primer algoritmo que se puede utilizar tanto para cifrado de datos como para firmas digitales, por lo que proporciona un método básico para el cifrado y autenticación de información en redes públicas. Por lo general, primero genera un par de claves RSA, una de las cuales es una clave secreta, guardada por el usuario, y la otra es una clave pública, que puede revelarse al mundo exterior o incluso registrarse en el servidor de la red; clave para cifrar archivos y enviarlos a individuos, el individuo puede usar la clave privada para descifrarlos y aceptarlos. Para mejorar la confidencialidad, la clave RSA debe tener al menos 500 bits de longitud y, generalmente, se recomiendan 1024 bits.

Este algoritmo se basa en los dos hechos siguientes, que garantizan la seguridad y eficacia del algoritmo RSA:

1) Existe un algoritmo rápido para determinar si un número es primo;

p>

2) Aún no se ha encontrado un algoritmo rápido para determinar los factores primos de un número compuesto.

3.2 Principio de funcionamiento

1) Seleccione aleatoriamente dos números primos grandes pyq, y calcule el producto r=p*q

2) Aleatoriamente; seleccione Un número entero grande e, e es primo relativo con (p-1)*(q-1), y el número entero e se utiliza como clave de cifrado. Nota: La selección de e es fácil, por ejemplo, todos los números primos mayores que p y q están disponibles.

3) Determine la clave de descifrado d: d * e = 1 módulo (p - 1) * (q - 1) d se puede calcular fácilmente en función de e, p y q.

4) Revelar los números enteros r y e, pero no d;

5) Cifrar el texto sin formato P (asumiendo que P es un número entero menor que r) en el texto cifrado C, método de cálculo. es:

C = Pe módulo r

6) Descifre el texto cifrado C en texto plano P. El método de cálculo es:

P = Cd módulo r p>

Sin embargo, es imposible calcular d basándose únicamente en r y e (no en p y q). Por lo tanto, cualquiera puede cifrar texto sin formato, pero sólo los usuarios autorizados (que saben d) pueden descifrar texto cifrado.

3.3 Ejemplo simple

Para ilustrar el proceso de trabajo de este algoritmo, damos un ejemplo simple a continuación. Obviamente, solo podemos tomar un número pequeño aquí, pero como se mencionó anteriormente, Para garantizar la seguridad, los números que utilizamos en aplicaciones prácticas son mucho mayores.

Ejemplo: Seleccione p=3, q=5, luego r=15, (p-1)*(q-1)=8. Seleccione e=11 (un número primo mayor que p y q) y calcule d =3 hasta d * 11 = 1 módulo 8.

Supongamos que el texto plano es el número entero 13. Entonces el texto cifrado C es

C = Pe módulo r

= 1311 módulo 15

= 1.792.160.394.037 módulo 15

= 7

Recupera el texto plano P como:

P = Cd módulo r

= 73 módulo 15

= 343 módulo 15

= 13

Debido a que e y d son inversos entre sí, los métodos de cifrado de clave pública también permiten "firmar" la información cifrada de tal manera que el destinatario pueda estar seguro de que la firma no es falsificado.

Supongamos que A y B quieren transmitir datos mediante cifrado de clave pública. A y B revelan respectivamente el algoritmo de cifrado y la clave correspondiente, pero no revelan el algoritmo de descifrado y la clave correspondiente. Los algoritmos de cifrado de A y B son ECA y ECB respectivamente, los algoritmos de descifrado son DCA y DCB respectivamente, ECA y DCA son recíprocos y ECB y DCB son recíprocos. Si A quiere enviar texto sin formato P a B, no simplemente envía ECB (P), sino que primero aplica su algoritmo de descifrado DCA a P y luego utiliza el algoritmo de cifrado ECB para cifrar el resultado antes de enviarlo.

El texto cifrado C es:

C = ECB (DCA (P))

Después de que B recibe C, aplica su algoritmo de descifrado DCB y cifrado sucesivamente Algoritmo ECA, obtener texto sin formato P:

ECA(DCB(C))

= ECA(DCB(ECB(DCA(P))))

= ECA (DCA (P)) /*DCB y BCE se cancelan*/

=

P? /*DCB y BCE se cancelan*/

De esta manera B está seguro de que el mensaje realmente fue enviado desde A, porque solo cuando el proceso de cifrado usa el algoritmo DCA, se puede usar ECA para obtener P. Solo A conoce el algoritmo DCA, y nadie, ni siquiera B. , puede falsificar la firma de A.

3.4 Ventajas y Desventajas

3.4.1 Ventajas

El algoritmo RSA es el primer algoritmo que se puede utilizar tanto para cifrado como para firmas digitales. fácil de entender y operar.

RSA es el algoritmo de clave pública más estudiado. Han pasado casi veinte años desde que se propuso. Ha experimentado varios ataques y gradualmente ha sido aceptado por la gente. En general, se lo considera uno de los mejores esquemas de clave pública. La clave de cifrado del algoritmo y el algoritmo de cifrado están separados, lo que hace que la distribución de claves sea más conveniente. Es particularmente adecuado para entornos de redes informáticas. Para una gran cantidad de usuarios de Internet, la clave de cifrado se puede imprimir en una guía telefónica. Si un usuario desea comunicarse de forma confidencial con otro usuario, sólo necesita encontrar la clave de cifrado de la otra parte en el libro de claves públicas y utilizarla para cifrar la información transmitida. Una vez que la otra parte recibe el mensaje, utiliza una clave de descifrado que sólo ella misma conoce para descifrar el mensaje y comprender su contenido. Se puede ver que el algoritmo RSA resuelve los problemas de gestión de claves de una gran cantidad de usuarios de la red. Esta es la ventaja más destacada del sistema de criptografía de clave pública sobre el sistema de criptografía simétrica.

3.4.2 Desventajas

1) Es problemático generar la clave. Está limitado por la tecnología de generación de números primos, por lo que es difícil lograr un cifrado único.

2) Seguridad La seguridad de RSA se basa en la factorización de números grandes, pero no se ha demostrado teóricamente que la dificultad de descifrar RSA sea equivalente a la dificultad de descomponer números grandes, y la mayoría de las personas en La comunidad de criptografía tiende a factorizar no es un problema de NPC. En la actualidad, la gente ha podido descomponer números primos grandes con más de 140 dígitos decimales, lo que requiere el uso de claves más largas y velocidades más lentas. Además, la gente está buscando activamente formas de atacar RSA, como ataques de texto cifrado seleccionados; y los atacantes generales consisten en disfrazar cierta información (ciego) y dejar que la entidad con la clave privada la firme. Luego, después del cálculo, se puede obtener la información que se desea. De hecho, los ataques explotan la misma debilidad, que es el hecho de que la exponenciación preserva la estructura multiplicativa de la entrada:

(XM)d = Xd *Md mod n

Como se mencionó Anteriormente, este problema inherente proviene de la característica más útil de la criptografía de clave pública: todos pueden usar la clave pública. Sin embargo, este problema no se puede resolver algorítmicamente. Hay dos medidas principales: una es utilizar un buen protocolo de clave pública para garantizar que las entidades no descifren información generada arbitrariamente por otras entidades durante el proceso de trabajo y no firmen información que conocen. nada sobre; Uno es nunca firmar documentos aleatorios enviados por extraños. Al firmar, primero use la función Hash unidireccional para HASH el documento, o use diferentes algoritmos de firma al mismo tiempo. Además de utilizar el módulo *** público, la gente también intenta utilizar el índice de descifrado o φ (n) y otros ataques.

3) La velocidad es demasiado lenta porque la longitud del paquete RSA es. demasiado grande, para garantizar la seguridad, n debe ser al menos 600 bitx, lo que hace que la operación sea muy costosa, especialmente la velocidad lenta, que es varios órdenes de magnitud más lenta que el algoritmo criptográfico simétrico y con el desarrollo de una gran descomposición numérica; Tecnología, esta longitud sigue aumentando, lo que no favorece la estandarización del formato de datos. Actualmente, el protocolo SET (Transacción Electrónica Segura) requiere que la CA utilice una clave de 2048 bits y que otras entidades utilicen una clave de 1024 bits. En aras de la velocidad, actualmente la gente utiliza ampliamente una combinación de criptografía de clave única y de clave pública, que tiene ventajas y desventajas complementarias: la criptografía de clave única tiene una velocidad de cifrado rápida y la gente la usa para cifrar archivos más largos, y luego utilice RSA para cifrar la clave del archivo, que es extremadamente Una buena solución al problema de distribución de claves de la criptografía de clave única.

§4 Conclusión

Actualmente, la creciente demanda de comercio electrónico y otras aplicaciones de Internet ha hecho popular el sistema de clave pública. Estas demandas incluyen principalmente el control de acceso a los recursos del servidor y la protección electrónica. de transacciones comerciales, así como aspectos como la protección de derechos, la privacidad personal, las transacciones inalámbricas y la integridad del contenido (como garantizar la autenticidad de las noticias o las cotizaciones de bolsa). Con el desarrollo actual de la tecnología de clave pública, la tendencia de desarrollo obvia en el mercado es la integración de PKI y sistemas operativos. PKI es la abreviatura de "Public Key Infrastructure", que significa "Public Key Infrastructure". El sistema de clave pública se utiliza ampliamente en la certificación de CA, firmas digitales, intercambio de claves y otros campos.

El algoritmo de cifrado de clave pública más utilizado es RSA. El concepto original y el objetivo del desarrollo del algoritmo RSA era esforzarse por hacer que Internet fuera seguro y confiable, con el objetivo de resolver el problema de transmitir y distribuir la clave secreta del algoritmo DES a través de un canal abierto.

Los resultados reales no solo resuelven bien este problema; RSA también se puede usar para completar la firma digital del mensaje para resistir la negación y el repudio del mensaje; al mismo tiempo, la firma digital también se puede usar para descubrir fácilmente la ilegalidad del atacante; manipulación del mensaje Para proteger la integridad de la información de los datos. Hasta ahora, muchas tecnologías de cifrado utilizan el algoritmo RSA, que se ha utilizado ampliamente en muchos aspectos de Internet, incluido el estándar Secure Interface Layer (SSL), que los navegadores web requieren para establecer conexiones seguras a Internet. Además, el sistema de cifrado RSA también se puede aplicar a tarjetas IC inteligentes y productos de seguridad de red.

Sin embargo, el actual periodo de patente del algoritmo RSA está a punto de finalizar, y será sustituido por un esquema criptográfico basado en curvas elípticas (algoritmo ECC). En comparación con el algoritmo RSA, ECC tiene ventajas relativas, lo que hace que las características de ECC sean más adecuadas para la tendencia de desarrollo del comercio electrónico actual que requiere una respuesta rápida. Además, también se está desarrollando una nueva criptografía cuántica.

En cuanto a qué algoritmo de cifrado se debe utilizar en aplicaciones reales, debe combinarse con el entorno y el sistema de la aplicación específicos, y no se puede juzgar simplemente en función de su potencia de cifrado. Porque, además del algoritmo de cifrado en sí, la distribución razonable de claves, la integración de la eficiencia del cifrado con los sistemas existentes y el análisis de entrada-salida deben considerarse específicamente en el entorno real. A medida que la tecnología de cifrado evolucione con el desarrollo de la red, se seguirán produciendo algoritmos más seguros y más fáciles de implementar, lo que proporcionará una mayor garantía para la seguridad de la información. Tendremos que esperar y ver hacia dónde va la tecnología de cifrado a partir de ahora.

Referencias:

[1] Douglas R.Stinson "Principios y práctica de la criptografía". Beijing: Electronic Industry Press, 2003, 2: 131-132

[2] Simon Singer. "Historia de criptozoología". Haikou: Hainan Publishing House, 2001, 1:271-272

[3] Algoritmo de cifrado de Ying Zhengtianxia: algoritmo RSA. a2.htm

[5] Serie de tutoriales intermedios para hackers No. 10./jiaocheng/10.html