elparaiso.mat.uned.es

¡Pulsa Aquí!

LO DIJO...

Leibniz  
 
Toma lo que hace falta, opera como debes y obtendrás lo que deseas.
 
El Paraíso de las Matemáticas - Criptotaller ~ Cifrado RSA (I)
.: Criptotaller :.
 
Cifrado RSA (I)

    "..nosotros por acá nos avendremos y lo pasaremos lo mejor que pudiéremos , buscando nuestras aventuras y dejando al tiempo que haga de las suyas que él es mejor médico destas y de otras mayores enfermedades."

-Miguel de Cervantes

    Para completar la serie de artículos sobre criptografía, voy en este artículo a intentar dar a conocer un poco más el sistema RSA de clave pública. No haremos muchas matemáticas esta vez.

    En los sistemas tradicionales de cifrado debe comunicarse una clave entre el emisor y el receptor del mensaje, el problema aquí es encontrar un canal seguro para transmitir dicha clave. Este problema viene a resolverse en los sistemas de clave pública (public key criptography) haciendo pública la clave de cifrado, pues un tiempo enormemente grande de ordenador es necesario para encontrar una transformación de descifrado a partir de la del cifrado.

    Concretando: en una red de n individuos cada uno de ellos produce una clave del tipo especificado por el sistema de cifrado, reteniendo cierta información que se usó en la construcción de la transformación E(K) obtenida según la clave K y ciertas reglas.

    Se hace accesible a todo el mundo un listado de claves K1, K2, ... , Kn. Cuando un individuo i quiere mandar un mensaje a otro individuo j utiliza una transformación que llamaremos EKj. Para descifrar el mensaje, j aplica la transformación inversa DKj al mensaje cifrado. Ya que la transformación inversa DKj no puede ser encontrada en un periodo de tiempo razonable, nadie puede descifrar el mensaje dirigido a j a pesar de conocer su clave.

    El RSA es un sistema de clave pública inventado por Rivest, Shamir y Adleman basado en la exponenciación modular donde las claves son pares de números (e n) formados por un exponente e y un módulo n que es el producto de dos grandes -grandísimos realmente - números primos p y q tales que mcd(e, fi(n))=1 (donde fi(n) es el número de enteros menores que n y primos con él)

*Puedes encontrar más cosas sobre primos incluyendo una pequeña calculadora aquí.

    Para cifrar un mensaje convertimos las letras que lo forman en sus equivalentes numéricos y formamos bloques del mayor tamaño posible con un número par de dígitos. Entonces el cifrado del bloque P sería (P)=C=P^e(mod n). El procedimiento de descifrado requiere el conocimiento de un inverso d de e módulo fi(n). Entonces D(C)=P=C^d(mod n). El par (d, n) es la clave de descifrado.

    Desarrollemos un ejemplo donde n=43.59 (números primos muchísimo más pequeños de los que usaríamos realmente). Tomemos e=13 como exponente, observad que es válido pues mcd(e, fi(n))=mcd(13, 42.58)=1. Para cifrar la frase PUBLIC KEY CRIPTOGRAPHY obtenemos sus equivalentes numéricos 1520 0111 0802 1004 2402 1724 1519 1406 1700 1507 2423 (hemos usado A=00, B=01...) donde hemos añadido una X (23) para rellenar el último bloque. Ahora transformamos bloque a bloque usando C=P^13(mod 2537); con el primero tenemos C=1520^13=95(mod 2537) [incluimos una explicación detallada sobre este cálculo] y el resultado final sería 0095 1648 1410 1299 0811 2333 2132 0370 1185 1457 1084

    Para recuperar el texto original necesitamos un inverso de 13 módulo fi(2537)=42.58=2436. Un cálculo bastante breve muestra que el d=937 es ese inverso así que el descifrado sería P=C^937(mod 2537). Por ejemplo con el primer bloque 0095^937=1520(mod 2537) y así procederíamos con todos los bloques que forman el texto cifrado.

    Me encantaría recibir vuestros comentarios. ¿ Queréis código, mas explicaciones, ...? Pues a escribir.

Area On-Line
  Todo tipo de material, para disfrutar de él completamente On-Line, sin necesidad de descargar archivos ni tener que andar descomprimiendo estos. No te olvides de pasar por el Diccionario, y las secciones Origami y Geointeractiva. Son de lo más interesante.

Criptotaller

Criptografía (clásica y moderna), criptoanálisis (primos, primos de Mersenne, etc.) y otras técnicas.

Material para descargar

Código Fuente C

Método Hill
Método Jefferson
Exponenciación Modular
Cálculo números primos
Test de Lucas-Lehmer
Factores num. Mersenne
Verificación FIPS 140.2
Teorema chino del resto
+ Códigos Fuente C

Código Fuente Python

Generación de claves

Artículos

La máquina Enigma
Criptografía y seguridad
    M. J. Lucena
Seguridad Informática
   y Criptografía PDF PPT
    J. Ramió
Criptografía clásica PDF
    J. Ramió

Programas
Cripto1 ZIP 2391 KB
    J. L. Rubio

Enlaces

Página personal de Jaime Suárez Martínez, colaborador de esta sección.

Munitions, colección de programas para Linux.

Kriptopolis, toda una referencia en castellano.

Ciphersaber

Criptonomicón: la página de Gonzalo Alvarez Marañón.

Página de Chris Caldwell, una página bien elaborada sobre números primos.

Colección de links de Peter Gutmann.

www.gnupg.org es la página original de GPG, un programa libre alternativo a PGP.

Jueves, 6 / 01 / 2022
   BUSCADOR
 

   TU CORREO
Usuario
Contraseña

   MATRACAS
Lista de correo gratuita
.: Chismes de Adán y Eva :.
Adios a Elisenda Fo...
WolframAlpha: El mo...
WIRIS para Mac...
Third CEU Summersch...
¡Más y más actualiz...
Cerca de 500 MB de ...
Ha llegado el momen...
WIRIS, matemáticas ...
El Universo Matemát...
Segundas Jornadas d...
Los Elementos de Eu...
VI Semana de la Cie...
Tras varios meses d...
¡Chiflados por los ...
Otro verano más, to...

 

Todos los derechos reservados. El Paraíso de las Matemáticas 2015Información Legal Política de PrivacidadAyudaEmail