Sie sind auf Seite 1von 57

Criptosistemas basados en

teora de nmeros
Mitchell Paulo Blancas Nez
Criptosistemas basados en
teora de nmeros
En esta seccin estudiaremos criptosistemas
de tipo simtrico y asimtrico que utilizan
teora de nmeros. En el primer caso nos
referimos al cifrado por caracteres y al cifrado
por bloque y flujo. Adems comentamos el
Data Encryption Standard (DES). Finalmente
estudiamos algunos criptosistemas
asimtricos reportados por la literatura
especializada.

Cifrado por clave simtrica
Cifrado por caracteres
En este tipo de cifrado se estudian sistemas
basados en la transformacin de cada letra del
mensaje en texto plano en una letra diferente (o
quizs la misma), para producir el texto cifrado.
Los mtodos son llamados cifrado por caracter o
monogrfico, pues cada caracter es cambiado
mediante una sustitucin; para tal efecto
usaremos la sustitucin dada en la siguiente
figura:




Cifrado por clave simtrica
Alfabeto y su equivalente numrico.
Cifrado por caracteres
En la figura anterior podemos notar que
existen 26! posibles maneras diferentes
para producir una transformacin
monogrfica. Estudiaremos aquellas basadas
en la teora de nmeros.
(S.1) Cifrado del Csar
El proceso empieza transformando las letras
del alfabeto en nmeros, por ello
considerando a P como el equivalente
numrico de una letra en el texto plano, y C
como el equivalente de la correspondiente
letra en el texto cifrado, tenemos la
siguiente expresin denominada
transformacin del Csar:
C P + 3(mod 26), 0 C 25

(S.1) Cifrado del Csar
Cifrado usando la transformacin del Csar.
(S.1) Cifrado del Csar
Notamos que ahora ya tenemos un texto cifrado
expresado en letras. A continuacin presentamos el
proceso que se sigue para encriptar y desencriptar
un texto.

Entrada: Mensaje en texto plano m.
Salida: Mensaje cifrado c.
Dividir m en bloques de cinco caracteres;
Convertir cada bloque a su equivalente numerico: Usar para
cada tem de cada bloque la transformacin del Csar
C P + 3(mod 26);
Cambiar los nmeros obtenidos por los equivalentes en letras;
Concatenar los caracteres obtenidos;
Retornar (el texto cifrado)
Encriptacin
(S.1) Cifrado del Csar
Ejemplo
Sea el siguiente mensaje: tbn estamos en el
laboratorio esperandola. Al aplicar el
algoritmo obtenemos lo siguiente:

(S.1) Cifrado del Csar
(S.1) Cifrado del Csar
Ejercicio
Verificar si el mensaje me gusta algebra
universal, al ser encriptado por el algoritmo
reporta:
ph jxvwd dojheud xqlyhuvdo

(S.1) Cifrado del Csar
Entrada: Mensaje en texto cifrado c.
Salida: Mensaje plano m.
Dividir c en bloques de cinco caracteres;
Convertir cada bloque a su equivalente numrico: Usar para
cada tem de cada bloque la transformacin del Csar
P C- 3(mod 26);
Cambiar los nmeros obtenidos por los equivalentes en letras;
Concatenar los caracteres obtenidos;
Retornar (el texto plano)
Desencriptacin
(S.1) Cifrado del Csar
Ejercicio
Aplicar el algoritmo de Desencriptacin para
obtener el texto plano del siguiente texto
cifrado: dojheud xqlyhuvdo ph jxvwd

(S.1) Cifrado del Csar
Se obtiene el texto plano:
algebra universal me gusta

(S.2) Cifrado Afn
Una transformacin en general dada por:
C aP + b(mod 26), 0 C 25

donde a y b son enteros con mcd(a, 26) = l
La relacin inversa se expresa mediante
P a
-
1
(C - b)(mod 26), 0 P 25
Donde a
-
1
es la inversa de a modulo 26.

(S.2) Cifrado Afn
Encriptacin
Entrada: Mensaje en texto
plano m.
Salida: Mensaje cifrado c.
-------------------------------------
Dividir m en bloques de cinco
caracteres;
Usar la transformacin C aP
+ b(mod 26)
Cambiar los nmeros obtenidos
por los equivalentes en letras;
Concatenar los caracteres
obtenidos;
retornar (texto cifrado)

Desencriptacin
Entrada: Mensaje en texto
cifrado c.
Salida: Mensaje plano m.
-------------------------------------
Dividir m en bloques de cinco
caracteres;
Usar la transformacin P a
-
1
(C - b)(mod 26)
Cambiar los nmeros obtenidos
por los equivalentes en letras;
Concatenar los caracteres
obtenidos;
retornar (texto plano)
(S.2) Cifrado Afn
Sean a = 7 y b = l0 dos nmeros enteros,
tenemos la siguiente transformacin
encriptadora:
C 7P + l0(mod 26), 0 C 25






(S.2) Cifrado Afn
En la figura anterior notamos que, por
ejemplo, en el texto plano la letra l corresponde
al nmero entero ll. En el texto cifrado al
nmero 9 le corresponde la letra j, pues 7
ll + l0 = 87, esto es que 87 9(mod 26),
siendo 9 el equivalente numrico de j.

(S.2) Cifrado Afn
Para desencriptar, tenemos la transformacin
siguiente:
P l5(C - l0)(mod 26), 0 P 25

Que equivale a decir:
P l5C + 6(mod 26), 0 P 25
donde l5 es la inversa de 7 modulo 26.





(S.2) Cifrado Afn
Sea el siguiente mensaje: tbn estamos en el laboratorio
esperandola. Al aplicar el algoritmo obtenemos lo siguiente:
Ejercicio:
Al mensaje encriptado:
nkqegmxmjjkrezknezoemglmzkxfejknrxmg,
aplicarle el algoritmo desencriptador.

Cifrado por bloque y flujo
El cifrado por caracteres es vulnerable, pues el
estar basado en la frecuencia de los caracteres
en el texto cifrado lo hace dbil ante los
criptoanalistas. Ante esta situacin y para
evitar la vulnerablidad, aparece el uso de
cifrados que sustituyen cada bloque del texto
plano, de longitud especificada, por un
bloque de texto cifrado de igual longitud. El
cifrado por bloque tambin es llamado
poligrfico.

(S.3) Cifrado de Vigenere
Este cifrado soluciona la debilidad del cifrado
del Csar en que una letra se cifra siempre
igual. Se usa una clave K de longitud L y se
cifra carcter a carcter sumando mdulo n el
texto en claro con los elementos de esta clave.

(S.3) Cifrado de Vigenere
Entrada: Mensaje en texto plano m.
Clave k.
Salida: Mensaje cifrado c.
Convertir cada caracter de m a su equivalente numrico;
Convertir cada caracter de k en su equivalente numrico;
Usar c
i
m
i
+ k
i
(mod 26), 0 c
i
25;
retornar (el texto cifrado.)
Encriptacin
(S.3) Cifrado de Vigenere
Ejemplo:
Sea el siguiente mensaje: m = millennium con la
clave k = ytwok. Al aplicar el algoritmo para
encriptar, segn Vigenere obtenemos lo siguiente:

El equivalente numrico de m y k es:
p
1

p
2

p
3

p
4

p
5

p
6

p
7

p
8

p
9

p
10

= 12 8 11 11 4 13 13 8 20 12
k
1
k
2
k
3
k
4
k
5
= 24 19 22 14 10

(S.3) Cifrado de Vigenere
(S.3) Cifrado de Vigenere
Un ejemplo de encriptacin para un alfabeto de 27
caracteres
(S.3) Cifrado de Vigenere
Entrada: Mensaje en texto cifrado c.
Clave k.
Salida: Mensaje en texto plano m.
Convertir cada caracter de c a su equivalente numrico;
Convertir cada caracter de k en su equivalente numrico;
Usar m
i
c
i
- k
i
(mod 26), 0 m
i
25;
retornar (el texto plano.)
Desencriptacin
(S.3) Cifrado de Vigenere
Ejemplo:
Sea el siguiente mensaje cifrado: c = ffflbcvfx con
la clave k = zorro. Al aplicar el algoritmo para
desencriptar obtenemos lo siguiente:

(S.3) Cifrado de Vigenere
El texto plano es: groundhog
(S.4) Cifrado de Playfair
Un cifrador inventado a finales del siglo XIX es
el de Playfair que trabaja con una matriz de
5x5 letras, cifrando por digramas (bloques de
a dos caracteres).
(S.4) Cifrado de Playfair
PROPIEDADES (pPFC):
Si M
1
M
2
estn en la misma fila, C
1
C
2
son los dos
caracteres de la derecha. (circularmente)
Si M
1
M
2
estn en la misma columna, C
1
C
2
son los dos
caracteres de abajo. (circularmente)
Si M
1
M
2
estn en filas y columnas distintas, C
1
C
2
son
los dos caracteres de la diagonal, desde la fila de M
1
.
Encriptacin:
(S.4) Cifrado de Playfair
Algoritmo de Encriptacin:
1. Construimos la matriz.
2. Separar el texto plano en bloques de 2 caracteres. Si
en algn bloque se repiten las 2 letras, insertar la letra
X entre ellas.
3. Si el nuevo texto plano tiene un nmero impar de
elementos, se aade la letra X al final.
4. Para cada bloque (2 caracteres) del texto plano,
aplicamos las propiedades(pPFC) segn sea el caso
correspondiente.
5. Finalmente, retornar el texto cifrado




(S.4) Cifrado de Playfair
Ejemplo:
Si la clave K = BEATLES, cifre el mensaje
M=WITH A LITTLE HELP FROM MY FRIENDS.

(S.4) Cifrado de Playfair
Paso1.
(S.4) Cifrado de Playfair
Paso2 y Paso3:
M = WI TH AL IT TL EH EL PF RO MX MY FR IE
ND SX

(S.4) Cifrado de Playfair
Paso4:

M = WI TH AL IT TL EH EL PF RO MX MY FR IE ND SX

C = EP BM TB ME LB BI AB RC UP KY RT MY PC KG DV

(S.4) Cifrado de Playfair
Todo junto:
(S.5) Cifrado de Hill
Este sistema esta basado en el lgebra lineal y ha
sido importante en la historia de la criptografa.
Fue Inventado por Lester S. Hill en 1929, y fue el
primer sistema criptogrfico polialfabtico que
era prctico para trabajar con mas de tres
smbolos simultneamente.
Este sistema es polialfabtico pues puede darse
que un mismo caracter en un mensaje a enviar se
encripte en dos caracteres distintos en el mensaje
encriptado.

(S.5) Cifrado de Hill
Suponiendo que trabajamos con un alfabeto de 26
caracteres (A=0, B=1, ... ,Z=25)
Se elije un entero d que determina bloques de d
elementos que son tratados como un vector de d
dimensiones.
Se ingresa o se elije de forma aleatoria una matriz de d
d elementos los cuales sern la clave (M) a utilizar.
Los elementos de esta matriz de d d sern enteros
entre 0 y 25, adems la matriz M debe ser invertible en
Z
26
Todas las operaciones aritmticas se realizan en la
forma modulo 26, es decir que 26=0, 27=1, 28=2 etc.


(S.5) Cifrado de Hill
Cifrado:
El texto es dividido en bloques de d elementos
los cuales se multiplican por la matriz d d
Dado un mensaje a encriptar debemos tomar
bloques del mensaje de "d" caracteres y
aplicar: MP
i
=C, donde C es el cdigo cifrado
para el mensaje P
i

Finalmente, retornar el texto cifrado.
(S.5) Cifrado de Hill
Si tomamos la matriz A como matriz de claves.



Para encriptar el mensaje "CODIGO" debemos
encriptar los seis caracteres de "CODIGO" en bloques
de 3 caracteres cada uno.


(S.5) Cifrado de Hill


El primer bloque "COD" se codificara como
"WLP


El segundo bloque "IGO" se codificara como
"GSE"

(S.5) Cifrado de Hill
Finalmente, 'CODIGO' encriptado equivale a
'WLPGSE'.
Observar que las dos "O" se codificaran de
forma diferente.

(S.5) Cifrado de Hill
Descifrado:
Para desencriptar el mtodo es idntico al
anterior pero usando la matriz inversa de la
usada para encriptar.
(S.5) Cifrado de Hill
Calculo de la matriz inversa:
Debemos verificar que la matriz elegida sea
invertible en modulo 26. Hay una forma
relativamente sencilla de averiguar esto a travs
del clculo del determinante. Si el determinante
de la matriz es 0 o tiene factores comunes con el
mdulo (en el caso de 26 los factores son 2 y 13),
entonces la matriz no puede utilizarse.
Formula a usar => A
-1
= det(A)
-1
*C
T
(A)
(S.5) Cifrado de Hill
Para ver si es invertible calculo el
determinante de A:


5 (23 13 3 11) 17 (9 13 3 2) + 20 (9
11 23 2) = 1215 1734 + 1060 = 503
503 = 9 mod 26
La matriz A es invertible en modulo 26 ya que
26 y 9 son coprimos
(S.5) Cifrado de Hill
Para hallar la inversa de la matriz modulo 26,
utilizamos la formula: A
-1
= det(A)
-1
*C
T
(A)
Donde C
T
es la matriz de cofactores de A
transpuesta.
Hay que tener en cuenta que det(A)
-1
debe
realizarse en modulo 26.
Por lo tanto para el ejemplo la inversa de 9
(mod 26) es 3

(S.5) Cifrado de Hill
Para calcular C hay que calcular los cofactores
de A:

(S.5) Cifrado de Hill
(S.5) Cifrado de Hill
Ahora aplicamos la formula de la inversa:





Esta ltima es la matriz que utilizamos para
desencriptar
(S.5) Cifrado de Hill
Ejercicio1: Cifrar el texto plano DOG con la
matriz de claves:



Ejercicio1: Descifrar el mensaje CAT (si es
posible), basndose en la matriz de claves
anterior.

(S.6) Cifrado de Vernam
Sea la sucesin k
i
, i = l, . . .,m de elementos del
espacio de claves K llamado
flujo de claves. Un
cifrado por flujo es aquel que remite una palabra en
texto plano p
1
p
2
. . .p
m
, usando el flujo de claves k
i
en
una palabra de texto cifrado c
1
c
2
. . .c
m
, donde
c
i
=E
k
i
(p
i
) es la funcin para encriptar. La
desencriptacin esta dado por p
i
= E
k
i
(c
i
).
(S.6) Cifrado de Vernam
Entrada: Mensaje en texto plano p
i
, i = l . . . m
expresado en bits.
Flujo de claves k
i
, i = l . . . m expresado en bits.
Salida: Mensaje cifrado c.
Usar la transformacin E
k
i
(p
i
)k
i
XOR p
i
(mod 2), i = l . . . m;

retornar (texto cifrado.)
Encriptacin:
(S.6) Cifrado de Vernam
Ejemplo
Sea el siguiente mensaje: m = 0llll0lll con el flujo
de claves k = ll000llll. Al aplicar el algoritmo para
encriptar, obtenemos lo siguiente:
E
k
1

(p
1
) k
1
XOR p
1
(mod 2) = E
k
1
(p
1
) l XOR 0(mod 2) = E
k
1
(p
1
) = l

E
k
2
(p
2
) k
2
XOR p
2
(mod 2) = E
k
2
(p
2
) l XOR l(mod 2) = E
k
1
(p
I
) = 0


E
k
9
(p
9
) k
9
XOR p
9
(mod 2) = E
k
9
(p
9
) l XOR l(mod 2) = E
k
9
(p
9
) = 0
Por lo tanto el texto m cifrado es: 101111000.
(S.6) Cifrado de Vernam
Desencriptar el mensaje c=101111000 con la
clave k = ll000llll y verificar que se obtiene el
texto plano m = 0llll0lll
(S.6) Cifrado de Vernam
Ejemplo de Encriptacin que muestra como un
texto plano y su clave podran ser trabajados
internamente en bits.

Das könnte Ihnen auch gefallen