Vous êtes sur la page 1sur 36

MANUAL DE CRIPTOGRAFIA

NDICE
I. INTRODUCCIN
II.HISTORIA DE LA CRIPTOGRAFA
III.

ALGORITMOS POR SUSTITUCIN


A. INTRODUCCIN
B. CIFRADO POR SUSTITUCIN
C. ALGORITMO DE CESAR
D. CIFRADO POLYBIOS
E. CIFRADO DE VIGENERE
F. CIFRADO PLAYFAIR
G. CIFRADO HILL
H. JUSTIFICACIN
I.

EJEMPLO DE APLICACIN DE UN ALGORITMO DE CRIPTOGRAFA EL


MTODO DE LA MATRIZ INVERSA

IV.

CIFRADO DE TRANSPOSICIN
A. TRANSPOSICIN
B. TRANSPOSICIN POR FILAS
C. TRANSPOSICIN POR COLUMNAS
D. TRASPOSICIN INVERSA Y SIMPLE
E. TRANSPOSICIN DOBLE
F. TRANSPOSICIN POR SERIES

V. ALGORITMO RSA
VI.

ALGORITMO DES

VII.

ALGORITMO AES

VIII. REFERENCIAS BIBLIOGRFICAS

MANUAL DE CRIPTOGRAFIA
1

Divisin Acadmica de Informtica y Sistemas, Universidad Jurez Autnoma de Tabasco,


Carretera Cunduacn-Jalpa km. 1, Cunduacn, Tabasco, Mxico
@ujat.mx

I. INTRODUCCIN

El presente Manual de Criptografa tiene


como propsito brindar una acercamiento al arte
criptogrfico a los estudiantes de las carreras
afn con el lenguaje computacional que se
ofertan en la Divisin Acadmica de
Informtica y Sistemas (DAIS) de la
Universidad Jurez Autnoma de Tabasco
(UJAT); reconociendo el hecho de que hasta
ahora los esfuerzos realizados para proveer un
material de este lenguaje matemticocomputacional han sido muy escasos.
Para la elaboracin de este sencillo manual, han
participado Profesores-Investigadores de la
misma divisin acadmica, que generan este
trabajo como parte del Proyecto de
Investigacin: Anlisis y comparacin de
algoritmos criptogrficos empleando mtricas
de evaluacin, en el cual colaboraron.
La cantidad de los diferentes algoritmos que
hasta la fecha se han estudiado en el arte de la
Criptografa han sido muchos; sin embargo se
han seleccionado para ser tratado en este
trabajo, los ms representativos. Despus del
contexto histrico se han agrupado los mtodos
de la Criptografa Clsica en los captulos:
Algoritmos por sustitucin y Algoritmos por
transposicin. Mientras que los algoritmos de
clave pblica son tratados por captulos
separados: Algoritmo RSA, Algoritmo DES y
Algoritmo AES.
Reconociendo que la temtica aqu presentada
puede ser ampliada, los participantes en la
elaboracin de esta gua, desean que el objetivo
de este esfuerzo logre su cometido.
II. HISTORIA DE LA CRIPTOGRAFIA

Desde pocas remotas el hombre ha tenido la


necesidad de transmitir informacin que no
debe ser accesible para alguien ms. Es
entonces que surgen los primeros mtodos para
cifrar o encriptar la informacin; esto es
conocido como Criptografa, del griego kriptos,
que significa oculto y graphos que se traduce
como escribir( Fuster A. et al, 2001), lo que da
una clara idea de su definicin clsica: arte de
escribir mensajes en clave secreta o
enigmticamente. Sin embargo, as como se
elaboran mtodos para cifrar la informacin y
mantenerla fuera del alcance de otros, por otro

lado se trabaja en la forma de encontrar las


debilidades que permitan tener acceso a la
Informacin que ha sido cifrada; esto ltimo es
conocido como Criptoanlisis. A travs de la
historia se han ideado una gran cantidad de
mtodos de cifrado, algunos han demostrado
gran duracin y otros han sido descifrados en
muy poco tiempo, por mencionar algunos la
Esctala Espartana que data del siglo V A.C.
utilizada durante la guerra entre Atenas y
Esparta, se basaba nicamente en la alteracin
del mensaje mediante la escritura de los
smbolos de forma vertical sobre una cinta
enrollada en un rodillo. Tambin es conocido el
mtodo Csar, que data del siglo I A.C. que
consista en reemplazar la letra del texto original
por otra que se encontrara en una posicin que
est a determinados nmeros de espacios, ya sea
ms adelante o atrs, en el alfabeto.
Una de las menciones al cifrado ms antiguas se
encuentra en el Kama Sutra, donde entre las 64
artes recomendadas se incluye el arte de la
escritura secreta. Sin embargo, es del siglo XIV
la obra ms antigua que existe sobre
criptografa. Se titula Liber Zifrorum y su autor,
Cicco Simoneta, estudia en ella diversos
sistemas basados en simple sustituciones de
letras. (Revelles D., 2008)
La criptografa permaneci durante siglos
relacionada a los crculos militares y
diplomticos. Tal es el caso de la reina Maria I
de Escocia quien fuera decapitada el 8 de
febrero de 1587 en manos de la reina Isabel I de
Inglaterra, debido a que estuvo en prisin en
manos de reina de Inglaterra por ms de 18
aos. Un grupo de nobles catlicos dirigido por
Anthony Babington quien fuera decapitado,
encabez una conspiracin para destituir a la
reina Isabel I y en su lugar tomara el trono la
reina Mara I de Escocia. Por medio de cartas
codificadas el grupo de nobles catlicos le
comunicaron a la reina Mara sobre sus planes,
dando su aprobacin. Para la redaccin de estas
cartas, se utiliz un algoritmo de cifrado y
codificacin, en las que las letras fueron
sustituidas por caracteres o cifrado y algunas de
las palabras ms habituales se sustituan por
unos smbolos o codificacin. Sin embargo, el
criptoanalista de la reina de Inglaterra Thomas
Phelippers usando la tcnica del anlisis de
frecuencias fue capaz de descifrar dichos

mensajes. Lo que llev a la decapitacin de la


reina de Escocia.(Simon S. ,2001).
Como en muchas reas cientficas, el mayor
desarrollo de la cripotologa tuvo lugar durante
las dos guerras mundiales. En este caso se debi
a la necesidad de establecer comunicaciones
secretas militares y diplomticas utilizando
nuevas tecnologas, como la telegrafa y la
radiotecnia. En la primera fue fundamental la
ruptura por parte de los aliados britnicos del
conocido como telegrama Zimmermann, en el
que el ministro alemn intentaba convencer a
Japn y Mxico para que invadieran E.U. , este
mensaje fue la pieza clave que convenci a E.U.
a entrar en la guerra. En la segunda guerra
mundial, la mquina de cifrado alemana Enigma
fue rota por la oficina criptoanaltica britnica
capitaneada por el matemtico Alan Turing,
mediante la mquina Colossus, precursora de
los ordenadores modernos (Caballero Gil,
2003).
La seguridad de estos mtodos resida
principalmente en la llave que permita leer la
informacin cifrada o descifrarla a cualquiera
que tuviera acceso a ella, por lo tanto se deba
tener mucho cuidado en la transmisin y el
resguardo de la misma. Estos mtodos
criptogrficos son conocidos en la literatura
como sistemas de llave privada.
En 1976 W. Diffie, M. Hellman y R. Merkle
resuelven el problema de distribucin de llaves
con la ayuda de aritmtica modular y funciones
en un sentido revolucionando as el mundo de la
criptografa (Singh, 1999. Citado por Basurto
Quijada, 2008).
Este criptosistema si bien
resuelve el problema de intercambio de llaves
aun no llega a ser la solucin ideal.
En 1977 R. Rivest, A. Shamir y L. Adleman
disean RSA (Singh, 1999. Citado por Basurto
Quijada, 2008) que pasa a ser el primer
criptosistema de llave pblica. Antes de esto,
Clifford Cocks, en 1973, descubre el mismo
criptosistema pero fue informacin reservada
del gobierno britnico.
A finales de los ochenta Phil Zimmerman
comienza a trabajar en el sistema PGP (Pretty
Good Privacy), un programa que implementa un
criptosistema de llave privada y un
criptosistema de llave pblica accesible al
pblico.
Actualmente, estamos ante un cambio
importante en la criptografa, el desarrollo del
hardware digital ha mejorado las limitantes en el
diseo de la computacin mecnica y permite
un bajo costo de los dispositivos criptogrficos
de alta calidad, por lo que pueden ser utilizados
en aplicaciones comerciales tales como los
cajeros
automticos
y
terminales
de
ordenadores. A su vez, estas aplicaciones crean

la necesidad de desarrollar nuevos tipos de


sistemas criptogrficos que minimicen la
insuficiencia de los canales de distribucin de
claves seguras y provean el equivalente en una
firma escrita. Al mismo tiempo, los desarrollos
en la teora informtica y ciencias
computacionales
prometen
proveer
probablemente
criptosistemas
seguros
cambiando de esta manera este arte antiguo en
una ciencia. ( Diffie Whitfield & Marin E.
Hellman, 2003).
III. ALGORITMOS POR SUSTITUCION
A. INTRODUCCIN
Resea histrica

Jos Manuel Snchez Muoz public en abril


de 2013, en G.I.E Pensamiento Matemtico, de
la Universidad Politcnica de Madrid,su artculo
Criptologa Nazi. Los Cdigos Secretos de
Hitler. Los datos histricos que aqu se resean
fueron tomados de ese artculo, parafraseando
algunos prrafos slo con el fin de adaptarlos a
nuestro trabajo.
La criptografa, del griego kryptos:
escondido, consiste en ocultar el significado
de un lenguaje mediante una codificacin
diferente. Desde su origen la criptografa se
utiliz principalmente en la guerra, y como
tcnica paralela surgi como consecuencia el
criptoanlisis, cuyo fin es el descifrado de los
mensajes secretos codificados. Segn ciertos
autores se saben de escrituras secretas narradas
por Herodoto que se remontan al ao 480 A.C.,
pero el primer ejemplo documentado de
encriptacin fue el utilizado por Julio Csar en
la Guerra de las Galias.
Los mtodos criptogrficos pueden
clasificarse en simtricos y asimtricos. Son
simtricos aquellos que utilizan la misma clave
para cifrar y descifrar los mensajes. En los
asimtricos se utilizan claves diferentes. Los
mtodos simtricos se clasifican, a su vez, en
mtodos de sustitucin y mtodos de
transposicin. El mtodo o algoritmo de Csar
es un mtodo de sustitucin.
Los mtodos de sustitucin se continuaron
aplicando por mucho tiempo, pero lleg el
momento en que su anlisis o descifrado se hizo
ms fcil, por lo cual surgieron los llamados
mtodos de transposicin, que consisten en

transponer los textos cambiando el orden de las


letras.
Conviene aclarar que
los algoritmos
utilizados en aquel tiempo basaban su
codificacin en un solo alfabeto, por lo que se
conocen como monoalfabticos; pero la batalla
entre criptgrafos y criptoanalistas comenzaba a
ser ganada por estos. Como consecuencia surge,
alrededor del ao 1460, la necesidad de utilizar
dos o ms alfabetos cifrados para confundir a
los ms inteligentes criptoanalistas. Esta idea
fue desarrollada por Len Battista Alberti
(1404-1472), quien adems inventa el disco
cifrante o disco de Alberti.
Alberti puede ser considerado como el
inventor del cifrado polialfabtico, y sus
estudios sirvieron de base para trabajos
posteriores como los de Johannes Trithemius,
quien invent la tabula recta, Giovanni Porta y
sobre todo del diplomtico francs de mediados
del siglo XVI Blaise Vigenere (1523-1596), que
a diferencia de Alberti utiliz como base la
tabula rectade Trithemius y la ampli generando
la tabula de Vigenere.
Durante dos siglos y medio la Cifra Vigenere
fue considerada impenetrable, hasta que, en la
primera mitad del siglo XIX, entra en escena el
ingls Charles Babbage (1791-1871) como el
primer protagonista del criptoanlisis de esa
poca, considerado adems como uno de los
precursores de la computadora. Al parecer,
Babbage logr importantes avances sobre las
ideas de Vigenere, pero como nunca publicaba
sus descubrimientos slo salieron a la luz
gracias a otros investigadores.
El desarrollo de la criptografa continu hasta
alcanzar un salto importante al final de la
primera Guerra Mundial con la aparicin de
mquinas de cifrado con rotores. A partir de all
surgen
importantes
matemticos
e
investigadores que, al mismo tiempo que
implementan mquinas ms sofisticadas, van a
desarrollar, como consecuencia lgica, los
mecanismos bsicos de las computadoras, como
es el caso sobresaliente de Alan Turing,
considerado como el creador de la teora de la
computacin.

A continuacin se presentan algunos de los


algoritmos ms sencillos de sustitucin, con la
idea de empezar por los conceptos bsicos. Los
ms complejos se abordarn consecuentemente,
a su debido tiempo.

B. CIFRADOS POR SUSTITUCIN

Consisten en sustituir cada letra o grupo de


letras por otra letra o grupo de letras distintas
para cifrar un texto.

C. ALGORITMO DE CSAR

Cada letra del texto original se sustituye por la


letra que hay a k posiciones de ella en el
alfabeto. Se aplican las siguientes frmulas:
1.
2.

C(x) = (x + k) mod T para el cifrado.


D(x) = (x k) mod T
para el
descifrado. (x k) < 0 > D(x) = (x
k) + T
En estas frmulas: x es el ordinal del carcter
correspondiente
k es el nmero de lugares a
desplazar para la codificacin
T es el nmero de
caracteres del alfabeto utilizado
Por ejemplo, con un desplazamiento de 13
lugares se tiene:
C(0) = (0 + 13) mod 26 = 13 --> N
C(1) = (1 + 13) mod 26 = 14 --> O
C(21) = (21 + 13) mod 26 = 8 --> I
C(24) = (24 + 13) mod 26 = 11 --> L
C(25) = (25 + 13) mod 26 = 12 --> M
As tambin:
D(13) = (13 - 13) mod 26 = 0 --> A
D(14) = (14 - 13) mod 26 = 1 --> B
D(24) = (24 - 13) mod 26 = 11 --> L

D(0) = (0 13) mod 26 = -13, entonces -13 + 26


= 13 --> N
D(3) = (3 13) mod 26 = -10, entonces -10 + 26
= 16 --> Q

letras desordenado; por ejemplo, GATO.


Siempre es mejor escoger una clave ms corta
que el mensaje a cifrar. Vase el siguiente
ejemplo:
Mensaje: AUTOESCUELA
Clave: GATO

El mtodo consiste en asignar a cada letra del


mensaje una letra de la clave, en el orden que
tienen y formando pares. Si llegamos al final de
la clave se empieza de nuevo por el primer
carcter de sta.Esto se ilustra como sigue:
(A, G) (U, A), (T, T), (O, O), (E, G), (S, A),
D. CIFRADO POLYBIOS

Ahora vamos a usar una tabla, llamada la tabla


de Vigenre, para cifrar cada par de caracteres
anterior. De modo que tenemos:

Las letras del alfabeto se colocan en una


matriz, normalmente de 55. En la primera
columna y la primera fila se colocan nmeros de
acuerdo con un patrn preestablecido por el
usuario del cifrado.

(A, G) = G

As usando el alfabeto tradicional, sin contar


la , tendramos la siguiente matriz:

(O, O) = C

(U, A) = U
(T, T) = M

(E, G) = K
(S, A) = S
(C, T) = V
(U, O) = J

(Aclaracin: La J se junta con la I por convenio)

A partir de esta matriz se cifra el mensaje,


sustituyendo cada letra por los nmeros de su
fila y columna. Por ejemplo:
HOLA => 23343111.

E. CIFRADO DE VIGNERE

Aqu se utiliza una clave para evitar la


repeticin de caracteres en el criptograma. Esta
clave puede ser cualquier palabra o conjuntos de

(E, G) = K
(L, A) = L
(A, T) = T
Y el mensaje cifrado es: GUMCKSVJKLT Se
puede usar una versin diferente de este cifrado.
Consiste en que si alguna vez se llega al fin de
la clave no se regresa al principio de esta, en su
lugar se utiliza el mensaje como clave. As con
el ejemplo anterior, tendramos:

(A, G), (U, A), (T, T), (O, O), (E, A), (S, U),
(C, T), (U, O), (E, E), (L, S), (A, C)

F. CIFRADO PLAYFAIR

Cifrado de poligramas (bloques de caracteres)


que se cifran como un nico carcter. Para ello
se construye una matriz y se siguen unas reglas:

Para los caracteres en la misma


fila/columna se cogen los siguientes
haca la derecha/abajo.

Para los caracteres en distinta


fila/columna se cogen los unidos por la
diagonal opuesta a la formada por los
primeros.

Si hay dos caracteres iguales seguidos,


se mete entre medios un carcter de
relleno. Normalmente, uno poco usado,
como , X, Y.

Aunque ahora mismo no entendis las reglas


no pasa nada, ahora os pasar a explicar todo
detalladamente.
Lo primero como siempre es saber la clave a
usar , en este caso vuelve a ser una matriz de
55 que se crear a partir de una palabra o
conjuntos de caracteres que queramos. La
matriz se crea poniendo la clave en la primera
fila y rellando el resto con el orden del alfabeto
que usemos quitando los carcteres usados en la
clave.

Ahora tenemos que tener un mensaje, por


ejemplo: LA PIZARRA
Y ahora tomamos pares de caracteres del
mensaje, llamados poligramas, como LA,
PI, ZA, RR como son iguales aadimos
uno de relleno (3a regla) RX, RA. Y
pasamos a cifrar usando las reglas, para cifrar
buscamos los pares de caracteres en la matriz y
una vez localizados aplicamos la regla que
toque.
Por ejemplo: Para LA tendramos que la
L y la A estn en la misma columna (1a
regla), por lo que cogemos los caracteres de
debajo, para la L la U y para la A la G.
Ahora PI, estn en diferentes columna y fila
(2a regla), por lo que cogemos los caracteres de
la diagonal contraria a la formada por ellos, para
la P la N y para la I la K.
Para descifrar realizamos las reglas a la
inversa con el mensaje cifrado y la matriz.
Para mis queridos frikis de la criptografa,
quera decir que este algoritmo fue el usado por
los britnicos en la primera guerra mundial y
por los australianos en la segunda.

G. CIFRADO HILL

Por ejemplo, tomamos como clave: TRES

La matriz sera:

Y como este blog es matemtico, no poda


faltar un cifrado que se base en algo
matemtico. Este es un cifrado poligrfico que
usa como clave una matriz cuadrado y su
inversa para descifrar.
Adems se tiene la posibilidad de usar dos
cifrados diferentes, el cifrado Hill con clave
por la derecha:

Ci = mi K

obtener que el texto cifrado de 'plantanuclear' es


'ntsdlspctmsb'.

mi = Ci K-1
H. JUSTIFICACIN

(Donde mi es el carcter i del mensaje, C i es


el carcter i del mensaje cifrado y K es la
clave)
Cifrado Hill con clave por la izquierda:
Ci = K mi
mi = K-1 Ci
Para realizar este cifrado, primero debemos
transformar el mensaje en un vector de
nmeros, y que mejor manera que usando las
posiciones que ocupan en el alfabeto como
resultado, tambin se pueden usar otras
equivalencias dando mayor seguridad a este
algoritmo.
Por ejemplo: HOY = [7 15 25]
Despus se pasara a cifrar, con una matriz de
unos y ceros que sera la clave, y obviamente
esta matriz tiene que ser reversible.
Un cifrado muy sencillito y matemtico.
Otro mtodo
El cifrado afn es un tipo de cifrado que usa el
mismo alfabeto para el texto plano que para el
texto cifrado que utiliza una expresin
matemtica para determinar la posicin en el
alfabeto (segn el orden normal) del carcter del
texto cifrado asociado.
En este cifrado la clave viene definida por dos
valores numricos a y b. Sea m el tamao de
alfabeto del texto plano. Para definir qu
carcter del alfabeto sustituye a cada carcter se
aplica la frmula
, donde x
es la posicin del carcter al que le estamos
buscando sustituto. El resultado se usa como
ndice en el orden predefinido del alfabeto. Por
ejemplo con a=5 y b=15 y el alfabeto del
castellano de m=27 letras. La a se convertir en
. Por tanto el
carcter asociado ser el que ocupa la posicin
20, la s. Aplicando el mismo algoritmo podemos

El estudio de la historia de la critpografa y la


explicacin de los antiguos algoritmos es
importante, en primer lugar porque la narracin
de lugares, personajes y sucesos en torno a la
codificacin de mensajes, nos permite observar
con ms detalle el desarrollo de los distintos
mtodos que, aunque en un principio eran
bastante ingenuos comparados con los actuales,
no deben soslayarse, ya que la historia nos ha
mostrado que el aprendizaje de cualquier tema
debe aplicarse gradualmente. En segundo lugar,
porque tratar de avanzar empezando por
peldaos superiores puede impedir que en
realidad se avance, por falta de cimientos
bsicos. Es as que en nuestra investigacin se
pretende comenzar por los fundamentos, para
continuar progresivamente con los temas y
logaritmos de criptografa ms actuales. El
estudio de la criptografa, antes necesario slo
para temas de guerra y espionaje, es en la
actualidad indispensable, por su relacin con la
logartmica en general y por su aplicacin en la
seguridad informtica.
I. UN EJEMPLO DE APLICACIN DE UN
ALGORITMO DE CRIPTOGRAFA EL MTODO DE
LA MATRIZ INVERSA

Otro mtodo para codificar un mensaje


consiste en la aplicacin de una matriz inversa.
Lo primero que se hace es asociar un nmero
diferente a cada letra del alfabeto. Por ejemplo:
A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26
A continuacin se elabora el mensaje y se
codifica. Ejemplo: NOS VEREMOS EL
LUNES se codifica como:

14 15 19 22 5 18 5 13 15 19 5 12 12 21
14 5 19
Y se enva a otra persona.

Para enviar este cdigo ambas personas


acuerdan el uso de una matriz invertible, como
la siguiente (por ejemplo):

X 1= A

A=

Cuya

[ ]
1 3
2 1
1 4

4
3
2

De

inversa

es:

[ ]

10 10
15
15
1
1
2
A =
15
15
7
1
15
15

5
15
5
15
5
15

R3 :
14 22 5 19 12 5
15 , 5 , 13 , 5 , 21 , 19
19 18 15 12 14 19
define
3

la

transformacin

lineal

L:

como L ( x )= Ax. As, el


mensaje se convierte para todas las x i de la
siguiente manera:

R R

AX1 =

[ ][ ] [ ]
1 3
2 1
1 4

[ ]

manera

10
15
2
15
1
15

anloga:

4 14
135
3 15 = 100 = L( X 1)
2 19
112

y as sucesivamente (para x2, x3, x4, x5, x6) se


tiene:
A

El destinatario recibe los vectores codificados y


Entonces

ecuaciones

[ ][ ]
1

[ ][ ]
[ ][ ]
[ ][ ]
[ ][ ]
104
5
68 = 13
87
15

131
12
X 5= A1 87 = 21
124
14
X 6 =A

138
5
86 = 19
139 19

Ahora, lo nico que debe hacer el destinatario


es colocar en orden los nmeros que obtuvo en
los vectores que, por supuesto, son los mismos
que el remitente le envi. A continuacin le
asigna a cada nmero la letra correspondiente y
con eso resuelve su problema de decodificacin.
IV. CIFRADO DE TRANSPOSICIN

[ ][ ] [ ][ ] [ ][ ] [ ][ ] [ ][ ]
las

X2

[ ][ ]

109
22
A1 103 = 5
78
18

22
109
5
104
19 82
12
131
5
138
A. =
TRANSPOSICION
=
,
A
=
,
A
=
,
A
,
A
=
5
103
13
68
5
79
21
87
19
86
18
78
15
87
12 63
14 124
19
139

resuelve

5
15
135
14
5
=
100
15
15
112
19
5
15

82
19
X 4 = A1 79 = 5
63
12

[ ][ ][ ][ ][ ][ ]
y

[ ]

X 3= A

Luego, el remitente separa el cdigo en vectores


de

10
15
135
1
100 =
15
112
7
15

x i=A

L ( X i)

Son aquellos que alteran el orden de los


caracteres dentro del mensaje a cifrar. El
algoritmo de transposicin ms comn consiste
en colocar el texto en una tabla de n columnas.
El texto cifrado sern los caracteres dados por
columna (de arriba hacia abajo) con una clave K
consistente en el orden en que se leen las
columnas.

Ejemplo: Si n = 3 columnas, la clave K es


(3,1,2) y el mensaje a cifrar "SEGURIDAD
INFORMATICA".

1
S
U
D
F
M
I

2
E
R
A
I
O
A
C

3
G
I
D
N
R
T
A

El mensaje cifrado ser: " GIDNRTASUD


FMIERAIOAC "

B. TRANSPOSICIN POR FILAS

Este cifrado es muy parecido al de columnas


slo que en lugar de formar columnas, aqu se
forman filas con base en un parmetro clave, el
cual tambin recibe el nombre de nmero de
filas (Nf). De manera que se forman tantas filas
como se indique y el mensaje se escribe de
manera vertical. Se puede concluir que como es
muy parecido al de transposicin de columnas
en este tambin hay cifrado de transposicin por
filas simple, simple con clave y doble.

a) PROCESO DE CIFRADO

Como se mencion anteriormente se pone la


clave (K) de manera vertical y a partir de ah se
empieza a colocar el mensaje en claro (Mcla).
Ejemplo
K = SALUDO
Mcla = BENJAMIN
FRANKLIN INVENTO EL PARARAYOS EN
MIL SETECIENTOS CINCUENTA Y DOS.

Reordenando las filas, el criptograma tomar la


forma: Cripto = ADLOSU (se organizo
alfabticamente).
Cripto = ENLEP AMEOU DAAIO ASSEI
TXNFI NAYIC SEOMN NEREE NNAXBI
KVLRN TTCYJ
RNTRO LICNS

b) PROCESO DE DESCIFRADO

A manera de ejemplo tomaremos el siguiente


criptograma, el cual se obtuvo despus de
aplicar el algoritmo de transposicin por filas
dobles.
Cripto
=
MUROEEGDXLAXTSSOEAHLNEQGGIRM
CAEOLNEAEOCLBOPILINO
K = ROJA
Utilizando la palabra clave, se puede
determinar que Nc = Lc/Nf lo que sera 48/4 =
12, por tanto cada fila tiene 12 caracteres, ahora
reacomodando la clave de manera alfabtica K
= AJOR.

Q
4
A

Finalmente, el mensaje descifrado es : EL


PIGMENTO HEMOGLOBINICO ES EL QUE
LE DA COLOR A LA SANGRE.
c) CIFRADOS POR TRANSPOSICION

Los cifrados por transposicin reordenan el


texto de acuerdo con algn esquema. Este
reordenamiento se haca clsicamente con la
ayuda de algn tipo de figura geomtrica.
REORDENANDO

Primero el texto a cifrar se escriba en la


figura de una forma determinada y despus se
extraa de la figura de una forma diferente,
quedando cifrado. La llave (clave) consiste pues
en la forma de introducir y sacar el texto de la
figura (Biham E., Dunkelman O., Sprnger,
2012).
La figura escogida la mayora de las veces era
una matriz bidimensional. Como ejemplos
podemos distinguir:
C. TRANSPOSICION COLUMNAR

Acepta un texto de longitud n con un numero


pe(x|x<n-1) n-1 el cual permitir dividir la
matriz en n/p filas, con el numero p de
columnas. despus de eso hay un orden
establecido por el usuario que determina de que
forma se agruparan las columnas para ponerlas
en el texto cifrado (Copeland J., 2006).

De manera que nuestro cripto es :


EGTMOISUCRSRLMOOBCEEOAAEPEHGI
OLDLLNXINELNEQAOAGX
Con este procedemos a realizar el descifrado a
travs del algoritmo de transposicin por filas
simples con Nc = 12 y Nf = 4.

Ejemplo: Teniendo este mensaje


Ric para toda la vida y la llave siguiente (6;
(3,5,0,4,2,1))

Se obtiene la matriz y el siguiente sistema, para


mantener la simetra se agregan las x como sean
necesarias.
Ricpa
ratod
alav
idaxxx

Y segn el orden se obtiene: taxadvxRraipo xc


laia d

14

public static int Seed[];

Lo cual se podra descifrar con la misma llave


(6;(3,5,0,4,2,1)) pero como se hara el
descifrado? bueno se van cogiendo de a
subtextos de longitud n/p que vendra siendo 4
en este ejemplo y se organizan como columnas:

1
5

public CT(String TxT,int Sp,String


Sd){

1
6

this.TxT = TxT;

aRpci
tdroa
aval
xxixad

1
7

this.Sp = Sp;

1
8

while(this.TxT.length()%Sp !=0)

Y se procede a organizar segn el orden de la


llave, con lo cual nos dar la misma matriz del
comienzo.

19

this.TxT+="x";

20

Seed = Gen(Sd,Sp);

Cdigo
view source
print?
1

/*

Modulo CT para RiCrypt

2
1

if(Seed[0]==-1){//generamos Seed
por defecto..

2
2

Seed = new int[Sp];

23

for(int n = 0;n<Sp;n++)

24

Seed[n]=n;

Cifrado por Transposicion usando


una matriz y una llave ordenada.

5
6

Phicar

project-ric.org

phicar@yashira.org

*/

10

import java.util.*;

11

25

26

2
7

public static String Cifrar(){

2
8

String Cifrado = "";

2
9

String
tmp[][]
=
String[TxT.length()/Sp][Sp];

3
0

for(int n = 0;n<TxT.length();n++)

3
1

tmp[(int)Math.floor((double)n/
(double)Sp)][n
%Sp]=String.valueOf(TxT.charAt(n))
;

for(int n = 0;n<Seed.length;n++)

public class CT{

12

public static String TxT;

13

public static int Sp;

new

2
3
3

for(int x =0;x<(TxT.length()/Sp);x+
+)

3
4

Cifrado+=tmp[x][Seed[n]];

35

return Cifrado;

36

3
7
3
8
3
9
4
0

String DesCifrado="";

for(int n=0;n<Seed.length;n++)

42

//String DesCifrado="";

4
3

String
tmp[][]
=
String[TxT.length()/Sp][Sp];

new

4
4

String
ord[][]
=
String[TxT.length()/Sp][Sp];

new

4
7
4
8

5
2

ord[y][n]=tmp[y]
[pp.indexOf(String.valueOf(n))];

5
3

for(int
n
=
0;n<(TxT.length()/Sp);n++)for(int x
=
0;x<Sp;x+
+)DesCifrado+=ord[n][x];

5
4

return DesCifrado;

5
5

5
6

public static int[] Gen(String Sd,int


Sp){

String pp = "";

pp+=String.valueOf(Seed[n]);

4
6

for(int y = 0;y<(TxT.length()/Sp);y+
+)

public static String DesCifrar(){

41

4
5

5
1

for(int
n
=
0,c=0;(n+
(TxT.length()/Sp))<=TxT.length();c+
+,n+=(TxT.length()/Sp)){
String tt = TxT.substring(n,n+
(TxT.length()/Sp));

5
7

int nula[] = {-1};

5
8

String charset = "0123456789,";

5
9

for(int n = 0;n<Sd.length();n+
+)if(charset.indexOf(Sd.charAt(n))=
=-1){

6
0

System.err.println("Seed Mala");

61

return nula;

62

6
3

for(int n = 0;n<Sp;n++)

6
4

if(Sd.indexOf(String.valueOf(n))==1){

for(int x=0;x<tt.length();x++)

tmp[x]1=""+tt.charAt(x);

6
5

System.err.println("Seed Mala");

return nula;

49

6
6

50

for(int n = 0;n<Sp;n++)

7
6
8

INVERSO
StringTokenizer
tok
StringTokenizer(Sd,",");

new

6
9

if(Sp!=tok.countTokens()){

7
0

System.err.println("Seed Mala");

A.

Cifrar

1.

Leer el texto que se desea cifrar

2.
Declarar un arreglo que contenga el
mensaje en claro

71

return nula;

72

3.
Almacenar cada caracter en una casilla
del arreglo declarado
4.
Recorrer el arreglo declarado
comenzando en la ltima posicin, hacia el
inicio

7
3

int epa[] = new int[Sp];

7
4

for(int n = 0;n<epa.length;n++){

7
5

epa[n]=Integer.parseInt(tok.nextTo
ken());

7
6

if(epa[n]>=Sp){

5.

Mostrar cripto.

B.

Descifrar

1.

Leer el cripto que se desea descifrar

2.

Declarar un arreglo que contenga el cripto

3.
Almacenar cada carcter en una casilla
del arreglo declarado

7
7

System.err.println("Seed Mala");

7
8

return nula;

4.
Recorrer el arreglo declarado
comenzando en la ltima posicin, hacia el
inicio
5.

Mostrar mensaje en claro.

79

SIMPLE

80

A.

Cifrar
Leer el texto que se desea cifrar

81

return epa;

1.

82

2.
Almacenar en un arreglo el mensaje en
claro

83

3.
Leer el nmero de registros donde se
almacenar el texto
D. TRANSPOSICION INVERSA Y SIMPLE

Implementacin de dos diferentes mtodos de


transposicin, estos mtodos son Inverso y
Simple (Copeland J., 2006).

4.

Almacenar el nmero de registros

5.
Dividir el tamao del mensaje en claro
entre el nmero de registros

6.
Validar que el residuo sea un nmero
exacto, de lo contrario se procede a rellenar con
X
7.
Recorrer el mensaje en claro carcter por
caracter, almacenando cara carcter en cada
registro[i++]
8.

Concatenar los registros

9.

Mostrar cripto.

B.

Descifrar

1.

Leer el texto que se desea descifrar

2.

Leer el nmero de registros

3.
Dividir la longitud del cripto entre el
nmero de registros
4.
Obtener substring del tamao obtenido en
el paso anterior
5.
Concatenar en una nueva cadena, las
posiciones de los substrings obtenidos en el
paso anterior
6.

Mostrar mensaje en claro.

DIAGRAMA DE CLASES EMPLEADAS


cifrado Transposicin
main (args: String[] ) : void
Empieza ():void
subMen ( mtodo : int ) : void

Simple
star : cifradoTransposicin
cifradoBegin () : void
cifradoSimple ( msjClaro : String, numRegistros : int) : void
descifradoBegin () : void
descifradoSimple (cripto : String , numRegistros : int ) : void
rellenarMensaje ( texto : String , numRegistros : int ) : void

Diagrama de flujo

Desarrollo
Para
la ejecucin
del
algoritmo
de
Transposicin es necesario tener instalado el
jdk y estos sern ejecutables. Se anexa el enlace
de
descarga
correspondiente.
https://www.dropbox.com/s/uy2j1ljl7y4962
e/cifradoTransposicion.jar
E. TRANSPOSICION DOBLE

Esta tcnica consiste en aplicar dos veces de


manera consecutiva el cifrado de transposicin
simple (Copeland J., 2006).

Proceso de cifrado

SEAAA NSECX

Se considera el siguiente mensaje:

Primera iteracin

INTERNET ES LA RED DE REDES MAS


GRANDE DEL MUNDO

R U P O C T E I N N YM E M R T N E N T I R S C U D A T O F O
1

Se aplica el cifrado de transposicin simple para


obtener el cripto.

R S R D OE E TI L I G I P E XU C U R NS E AA A N S E CX
2

Primera iteracin
R1 I

De donde se obtiene el criptograma intermedio

T R E E L R D E E E M S R N E E M N O

USPRO DCOTE EEITN INLYI MGEIM


PRETX NUECN UTRIN RSSEC AUADA
ANTSO EFCOX

R2 N E N T S A E D R D S A G A D D L U D

Segunda iteracin
Que se obtiene

R U S P R O D C O T E E E I T N I N L Y I MG E I MP R E T X
1

ITREELRDEEEMSRNEEMNONENTSAEDR
DSAGADDLUD

R N UE C NUT R I NR S S E C A UA DAA NT S O E F C OX
2

Ahora volvemos a aplicar transposicin simple.


Que nos da como resultado: UN
SUPERCONDUCTOR TIENE RESISTENCIA
NULA Y DIAMAGNETISMO PERFECTO.

Segunda iteracin
R1

R2

F. TRANSPOSICION POR SERIES

De esta manera obtenemos el criptograma, el


cual es
IREREESNENNNSERSGDLDTELDEMREM
OETADDAADU
Proceso de descifrado
Se cuenta el nmero de elementos y se arregla
en una tabla como las del ejemplo de cifrado, es
decir en dos registros que sern del mismo
tamao.
Ejemplo:
Criptograma: UPOCT EINNY MEMRT
NENTI RSCUD ATOFO SRDOE ETILI
GIPEX UCURN

Este tipo de cifrado reordena los caracteres del


mensaje a cifrar como una serie de submensajes
(Copeland J., 2006),
de manera que el
criptograma tiene la forma siguiente:
Cripto = Ms1, Ms2, Ms3,, MN
Donde cada uno de los submensajes sigue una
funcin determinada, del total de caracteres que
conforman el texto a cifrar con base en la
posicin que ocupa cada uno en el mensaje:

Mcla = m1, m2, m3,


Esto depende de cada usuario ya que un
ejemplo muy claro seria Ms1 = nmeros pares,

Ms2 = nmeros primos, Ms3 = mltiplos de 5,


etc.

Proceso de cifrado

Para descifrar el cripto, es necesario conocer


el reordenamiento que se utilizo para la
obtencin del criptograma y con ello determinar
la secuencia o reordenamiento inverso a fin de
recuperar el mensaje en claro.

Tome en cuenta el siguiente texto en claro:


Mcla = EL AUTENTICO SOADOR ES EL
QUE SUEA IMPOSIBLES.
EL AUTE NTI C O S O A D
O R E S E L Q U E S U E A
I M P O S
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
34 35
I

B L

Proceso de descifrado

Cripto
=
UTSDS
EATNIOOAOEEQUEIPSBE
LECRLSAOL

UEMIS

Si se obtuvo mediante el cripto = Ms1, Ms2, Ms3


utilizando las series Ms1 = nmeros primos, Ms2
= mltiplos de 5 y Ms3 = nmeros naturales, de
manera que:

E S

36 37 38 39 40

Ms1 = 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,


41, 43

El cual ser cifrado de la siguiente manera:


Ms2 = 5, 10, 15, 20, 25, 30, 35, 40, 45
Cripto = Ms1 = mltiplos de 4, Ms2 = nmeros
nones, Ms3 = nmeros pares.
Ms1 = 4, 8, 12, 16, 20, 24, 28, 32, 36, 40.

Ms3 = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,


15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45

Ms2 = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25,


27, 29, 31, 33, 35, 37, 39.
Ms3 = 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24,
26, 28, 30, 32, 34, 36, 38, 40.
Como se puede ver, la funcin de cada serie y
el orden que sigue es de suma importancia para
el reacomodamiento de los caracteres y por
tanto del criptograma que se obtenga, puesto
que se cancelaron ciertos nmeros porque estn
repetidos en otras series, con esto evitamos
repeticiones. As de esta manera se tiene el
criptograma:

Teniendo en cuenta que ya se eliminaron los


nmeros repetidos se tiene el siguiente
criptograma:
Cripto = A L Z I A R I N M O E O G
N A S T L MS E O LUVA J T
E C E O
2 3 5 7 11 13 17 19 23 29 31 37 41 43 10 15 20
25 30 35 40 45 1 4 6 8 9 12 14 16 18 21
S

Cripto
=
ALZIARINMOEOGNASTLMSEOLUVAJTEC
EOSIKILTROPRSUD

I K I

L T R O P R S U D

22 24 26 27 28 32 33 34 36 38 39 42 44

Al ordenar las los nmeros, el Mcla es el


siguiente:

LA LUZ VIAJA A TRESCIENTOS MIL


KILOMETROS POR SEGUNDO

AREAS DE OPORTUNIDAD
Correo electrnico

La mayor parte de los mensajes de correo


electrnico que se transmiten por Internet no
incorporan seguridad alguna, por lo que la
informacin que contienen es fcilmente
accesible a terceros. Para evitarlo, la
criptografa tambin se aplica al correo
electrnico. Entre las diversas ventajas que tiene
usar un certificado al enviar un email,
podramos destacar la seguridad que nos aporta
ya que as evita que terceras personas (o
hackers) puedan leer su contenido, o bien que
tenemos la certeza de que el remitente de ste
correo electrnico es realmente quien dice ser.
Firma digital
Tecnologa que busca asociar al emisor de un
mensaje con su contenido de forma que aquel
no pueda posteriormente repudiarlo.
Criptoanlisis
Para realizar el criptoanlisis de un texto que
ha sido cifrado con este mtodo debemos seguir
los pasos considranos en el apartado de cifrado
por transposicin columnar.
Adems de lo expuesto anteriormente hay que
tener en cuenta que ahora los huecos son
rellenados con caracteres. Entonces, dado un
texto cifrado con este mtodo y sin espacios en
blanco para delimitar las columnas, podramos
obtener el nmero de columnas de la matriz sin
ms que conocer la longitud del texto cifrado,
pues el nmero de columnas debe ser un divisor
de este (Galbraith, S. 2012).

Como ejemplo de lo expuesto en el prrafo


anterior consideremos el texto cifrado del
anterior ejemplo:
UEQAIARMNDAIGUDLASOEDHUYA
Como la longitud de este texto es de 25
caracteres, y como:
25 = 5 5
Entonces, sabemos que la matriz debe
contener 5 columnas. Con esta informacin
podemos dividir el texto anterior y obtener la
matriz del texto cifrado, con la que realizando
distintas permutaciones entre sus columnas
podramos obtener la matriz del texto llano
correspondiente a dicho texto cifrado, y con lo
cual descifraramos el mensaje oculto en el texto
cifrado
V. ALGORITMO RSA
INTRODUCCION

La necesidad de proteccin de informacin va


en aumento a la par del vertiginoso desarrollo
tecnolgico; debido a esto se plantea la
necesidad de formular nuevas alternativas de
encriptado para ser aplicadas. Ningn algoritmo
de encriptacin es ptimo, pero segn el grado
de seguridad del algoritmo, el tiempo que
tardara de desencriptar la informacin vara
entre 100 y 300 aos (Huahuala Chaupi A.J.,
2010). Y usando una supercomputadora, entre 5
y 10 das. Uno de los mayores problemas de la
criptografa fue el de la distribucin segura de
claves. Con el trmino clave designamos a todo
conjunto de informacin necesario para cifrar o
descifrar un mensaje. No se incluye en esto el
propio algoritmo de cifrado.
En la dcada de los 70, algunas mentes
inquietas consiguieron por fin derribar el muro
del intercambio seguro de claves. La idea bsica
consiste en descartar la idea de sistemas de
clave nica. Hasta entonces, todos los
algoritmos conocidos de cifrado (sean cifras de
Csar, Vignere, libros de claves o mquinas
Enigma) usaban la misma clave para cifrar y
para descifrar. Pero podemos imaginar una
situacin en la que hay dos claves, una para
cifrar y otra para descifrar. No hay problema en
que la clave de cifrado sea conocida por otros,
ya que solamente sirve para bloquear la
informacin. Lo que importa es que la clave de
descifrado s sea secreta, de forma que
solamente su propietario pueda acceder a la
informacin. Debe haber algn tipo de relacin
entre ambas claves (ya que no son

independientes), pero de tal forma que resulte


prcticamente imposible deducir la clave
privada (o secreta) a partir de la clave pblica.
Sera anlogo a un buzn de correos: todo el
mundo puede meter informacin dentro, pero
solamente el dueo puede abrirlo con su llave
( Quintantes Sierra A., 2011).
En aos pasados se dio a conocer que la
criptografa de clave pblica (incluyendo RSA
desde luego) haba sido descubierta por vez
primera por los criptoanalistas britnicos James
Ellis, Clifford Coks y Malcom Williamson. Para
su desgracia, trabajaban en la agencia CGHQ (el
equivalente ingls de la NSA), de modo que no
pudieron hacer pblicos sus descubrimientos.
Tuvieron que conformarse con asistir al
descubrimientos de mtodos similares por parte
de norteamericanos, quienes no dudaron en
aplicar comercialmente sus descubrimientos.
En 1997, Coks brindo una charla sobre las
contribuciones britnicas a la criptografa de
clave pblica, sus compaeros ya haban
fallecido. Un ao antes, Rivest, Shamir y
Adleman vendieron RSA Data Security, Inc, por
200 millones de dlares, toda una leccin para
aquellos que se quejan que porque las
matemticas no sirven para nada (Quintantes
Sierra A., 2011).

DESCRIPCION Y PSEUDOCODIGO

El sistema RSA se basa en el hecho


matemtico de la dificultad de factorizar
nmeros muy grandes (Basurto Quijada R.,
2008).
Para factorizar un nmero el sistema ms
lgico consiste en empezar a dividir
sucesivamente ste entre 2, entre 3, entre 4,... y
as sucesivamente, buscando que el resultado de
la divisin sea exacto, es decir, de resto 0, con lo
que ya tendremos un divisor del nmero. Ahora
bien, si el nmero considerado es un nmero
primo (el que slo es divisible por 1 y por l
mismo), tendremos que para factorizarlo habra
que empezar por 1, 2, 3,... hasta llegar a l
mismo, ya que por ser primo ninguno de los
nmeros anteriores es divisor suyo. Y si el
nmero primo es lo suficientemente grande, el
proceso de factorizacin es complicado y lleva
mucho tiempo. Basado en la exponenciacin

modular de exponente y mdulo fijos, el sistema


RSA crea sus claves de la siguiente forma.
Se buscan dos nmeros primos lo
suficientemente grandes: p y q (de entre 100 y
300 dgitos).
Se obtienen los nmeros n = p * q y = (p-1) *
(q-1).
Se busca un nmero e tal que no tenga mltiplos
comunes con .
Se calcula d = e-1 mod , con mod = resto de la
divisin
de
nmeros
enteros.
Y ya con estos nmeros obtenidos, n es la clave
pblica y d es la clave privada. Los nmeros p,
q y se destruyen. Tambin se hace pblico el
nmero e, necesario para alimentar el algoritmo.

El clculo de estas claves se realiza en secreto


en la mquina en la que se va a guardar la clave
privada, y una vez generada sta conviene
protegerla mediante un algoritmo criptogrfico
simtrico.
En cuanto a las longitudes de claves, el sistema
RSA permite longitudes variables, siendo
aconsejable actualmente el uso de claves de no
menos de 1024 bits (se han roto claves de hasta
512 bits, aunque se necesitaron ms de 5 meses
y casi 300 ordenadores trabajando juntos para
hacerlo).
RSA basa su seguridad es ser una funcin
computacionalmente segura, ya que si bien
realiza la exponenciacin modular es fcil, su
operacin inversa, la extraccin de races de
mdulo no es factible a menos que se conozca
la factorizacin de e, clave privada del sistema.
La seguridad de los criptosistemas depender
del tamao de n, cuanto mayor sea el tamao
del mdulo mejor ser la seguridad del
criptosistema, pero el tamao de n influye
negativamente en la velocidad de las
operaciones del RSA; cuanto ms grande sea el
tamao del mdulo, mucho ms difcil ser
factorizarlo mediante algn algoritmo y as
obtener los valores de p y q.

Cunto mayor el tamao de n, mayor seguridad,


y mayor lentitud en el cifrado y descifrado.
Si n=80 dgitos, se tiene una seguridad
moderada con la tecnologa actual, y si n=200
dgitos existe un margen de seguridad contra
agresiones de futuras tecnologas.
Existen formas de romper el RSA, entre otras:
Descubriendo la clave pblica, si el usuario
almacena su clave privada en un lugar poco
seguro.
Factorizando el mdulo pblico n, en sus dos
factores primos p y q. La seguridad del RSA
depende de que esta factorizacin sea lo ms
difcil posible.
Desarrollando alguna tcnica para computar la
operacin raz n-sima mdulo n. Este ataque
permitira reconstruir los mensajes encriptados
sin tener que conocer la clave privada empleada
para desencriptar los mensajes, hasta ahora no
se conoce ninguna tcnica implementada de este
tipo que sirva para romper RSA.

d
( mod n ) =c 2753
decript ( c )=c
(mod 3233)

Donde c es el texto cifrado. Para cifrar el valor


del texto sin cifrar 123, nosotros calculamos:

encrypt ( 123 )=12317


( mod 3233 )=855
Para descifrar el valor del texto cifrado,
nosotros calculamos:
2753

decrypt ( 855 )=855


( mod 3233 )=123

Ambos de estos clculos pueden ser


eficientemente usados por el algoritmo de
multiplicacin cuadrtica para exponenciacin
modular.
APLICACIONES

EJEMPLO

Ejemplo de cifrado/descifrado con RSA. Los


parmetros usados aqu son pequeos y
orientativos con respecto a los que maneja el
algoritmo, para generar y examinar un par de
claves reales.

p=61
q=53
n=pq=3233
e=17
d=2753

El algoritmo RSA vara en su modalidad, pero


la base en aritmtica modular es inmodificable,
el tiempo de encriptacin tambin es ms largo
que el de encriptacin, como tambin puede
verse que el manejo de contraseas es de vital
importancia al momento de aplicar seguridad.
Se recomienda realizar empaquetamientos de
archivos de texto plano cifrado, durante el
proceso o al final del proceso.

1 n primo privado
2 n primo privado
producto pq
exponente pblico
exponente privado

La clave pblica (e, n). La clave privada es (d,


n). La funcin de cifrado es:

(mod n)=m17
encript ( m )=mc
(mod 3233)
Donde m es el texto sin cifrar. La funcin de
descifrado es:

En cuanto al uso de RSA en la actualidad se


emplea en una amplia gamas de productos,
plataformas e industrias de todo el mundo. RSA
se instala en los actuales sistemas operativos o
en los proyectados por Microsoft, Apple Sun y
Novell. Forma parte de diversos sistemas
criptogrficos como los de navegadores seguros
(SSL), documentos de identidad electrnicos y
programas como PGP (Quintantes Sierra A.,
2011).
En cuanto a hardware se le puede encontrar
seguridad para telfonos, tarjetas inteligentes.
AREAS DE OPORTUNIDAD

Puede reconsiderarse el RSA partiendo de otra


base de caracteres fundamentadas en algebra
lineal y el principio del CAOS o pseudo
impredecible, para desplazar el cdigo ASC II y
aumentar as el grado de seguridad.

VI. ALGORITMO DES


INTRODUCCIN

En esta captulo se brinda una revisin del


algoritmo DES (Data Encryption Standard),
clasificado este dentro de la criptografa
moderna de clave privada (Cargallo Tuzn J., ).
Para ello, empezaremos por hacer un poco de
historia sobre la aparicin y evolucin del DES
a lo largo de los aos.
Historia del DES (Data Encryption Standard)
En 1973, el NBS (National Bureau of
Standards)
solicita
pblicamente
propuestas de sistemas criptogrficos,
dichos sistemas deban de cumplir los
siguientes criterios:
o Residir la seguridad en la clave y
no en el secreto del algoritmo.
o Proporcionar un alto nivel de
seguridad y ser eficiente.
o Ser adaptable para ser utilizado en
diversas aplicaciones.
o Ser barato de implementar en
dispositivos electrnicos.
En 1974, IBM presenta LUCIFER, un
sistema de Horst Feistel que trabajaba
componiendo sucesivamente diferentes
transformaciones. Despus del estudio
del algoritmo, la NSA (National
Security Agency) propone una serie de
cambios que son aceptados sin
problemas.
El 17 de Marzo de 1975, el NBS
publica los detalles del DES. Dicho
algoritmo fue adoptado como estndar
para las comunicaciones seguras y el
almacenamiento de informacin no
clasificada por el Gobierno de los
EE.UU. En un principio la idea de la
NSA era implementar este algoritmo en
hardware, para ello dicho algoritmo
debera mantenerse en secreto. Debido
a unos problemas, el algoritmo se hizo
pblico por lo que su implementacin
software se hizo posible ya que el nivel
de detalle del algoritmo era bastante
alto.
En 1981, varios organismos privados lo
adoptan como estndar.
En 1983, el DES se ratifica como
estndar sin problemas.
En 1997, el DES es roto como
consecuencia de un reto que lanz la

RSA, se examinaron el 25% de las


claves.
Seguidamente, en 1998 debido a la
corta longitud de la clave (56 bits)
utilizada para cifrar el DES, se
demostr que por fuerza bruta era
posible romper el DES. En 39 das se
hizo posible examinar el 85% de las
claves. Poco ms tarde, la EFP
(Electronic
Frontier
Foundation)
present su DES cracker, capaz de
romper el DES por fuerza bruta en 4.9
das. A pesar de esto, an no se ha
encontrado ninguna debilidad a nivel
terico por lo que todava se sigue
utilizando.
Finalmente, en 1999 la EFP rompe el
DES en menos de 23 horas.
Hoy en da existen sistemas capaces de
trabajar con muchsimas puertas
lgicas que son capaces de romper el
DES en 5 horas.
DES es un criptosistema simtrico de clave
privada, decir es un criptosistema de clave
nica, dicha clave secreta es misma tanto para
cifrar como para descifrar.
La idea general es aplicar diferentes funciones
al mensaje que se quiere cifrar de tal modo que
solo conociendo una clave pueda aplicarse de
forma inversa para poder as descifrar dicho
mensaje.
El DES cumple con dos de los principios ms
bsicos de la criptografa, estos son el secreto y
la autenticidad de la informacin cifrada:
1. El secreto se consigue con la
utilizacin de una clave privada.
2. y la autenticidad se consigue de la
misma forma ya que slo el emisor
legtimo puede producir un mensaje
que el receptor podr descifrar con la
clave compartida.
El principal problema que tienen este tipo de
algoritmos es la forma en la que intercambiar
las claves ya que se ha de hacer de forma
privada.
El DES es englobado tambin dentro de los
mtodos de cifrado de producto. Estos
algoritmos son llamados as porque combinan la
confusin y la difusin para cifrar el mensaje.
La confusin consiste en conseguir que no se
vea relacin alguna entre el texto plano (texto a
cifrar), el texto cifrado y la clave. A la hora de la

implementacin, la confusin se traduce en


sustituciones simples a travs de pequeas
tablas. La difusin trata de repartir la influencia
de cada bit del mensaje en texto plano lo ms
posible en el mensaje cifrado. Dicha propiedad
se implementa mediante el uso de
permutaciones. DES ya que se basa
simplemente en aplicar una serie de
sustituciones y permutaciones varias veces.
Otro aspecto importante a considerar es que
los cifrados no tengan estructura de grupo, es
decir, que no se cumpla la siguiente propiedad:
Para todo k1, k2 existe k3 tal que Ek2(Ek1(M))
= Ek3(M)
Es decir, que si hacemos dos cifrados
encadenados con las llaves k1 y k2 obtendremos
el mismo resultado que si lo hicisemos
nicamente con la llave k3.
Ya que el DES naci como una continuacin
del dispositivo Lucifer, es conveniente explicar
brevemente dicho sistema para situarnos
definitivamente en la forma que el DES tiene de
trabajar.
Dispositivo LUCIFER
Es el ms claro ejemplo de un algoritmo de
cifrado de producto, que llegados a este punto
debemos de entender sus propiedades sin
problemas. As el resultado de cifrar un mensaje
M, con t funciones Fi (1 <= i <= t) ser:
E (M) = Ft (...F3 (F2 (F1 (M)))...)
Donde Fi puede ser una sustitucin o una
permutacin, de esta forma se pretende que el
resultado ser lo ms aleatorio posible en
relacin al mensaje original. Esta idea fue
desarrollada por Feistel (Redes de Feistel) y fue
implementada en el dispositivo Lucifer por Notz
y Smith.
La implementacin es la siguiente:
1. El bloque de datos a cifrar es de 128
bits (16 bytes), que a su entrada se
divide en dos partes: la alta y la baja.
2. A los 8 bytes de la parte alta se les
somete a una transformacin no lineal
controlada por un bit determinado de la
clave.
3. El resultado de la transformacin se
suma (o exclusivo) byte a byte, con los
ocho correspondientes de la clave.
4. Ahora se realiza una transposicin
sobre los 64 bits a nivel de bit, dicho
resultado se agrupa en bytes.

5.

Estos bytes se suman (o exclusivo) con


los bytes de la parte baja de la entrada.
6. Finalmente, la parte alta y la baja se
intercambian.
Este proceso se repite 16 veces dando lugar al
bloque cifrado. Evidentemente, para obtener el
mensaje cifrado se aplican las mismas
operaciones en orden inverso.
Descripcin general del Algoritmo de cifrado
DES
El algoritmo DES cifra un bloque de 64 bits (8
bytes) de texto en claro en un bloque de 64 bits
de texto cifrado. Para ello usa una clave externa
de 64 bits en los que los bits en las posiciones
octavas de cada byte son bits de paridad impar.
Consta de 16 iteraciones, y en cada una de ellas
se realizan operaciones de o exclusivo,
permutaciones
y
sustituciones.
Las
permutaciones son de tres tipos: simples,
expandidas (se duplican bits) y restringidas (se
eliminan bits). Las sustituciones son no lineales
que se implementan a partir de tablas que se
encuentran en las cajas S, que ms tarde
explicaremos ya que son de vital importancia.
La mejor forma de entender el
funcionamiento del DES es a travs de un
esquema que muestre los diferentes pasos
realizados para conseguir el cifrado. Dicho
esquema se muestra en la siguiente figura
(figura 1):----

Figura 1. Esquema del DES

En la entrada, se consideran los 64 bits del


bloque (b1,b2,...,b64), estos se permutan a
travs de la permutacin inicial IP (Tabla 1),
siendo el bloque de salida B0 el formado por el

bloque L0 de 32 bits concatenado con el R0, del


mismo tamao. A dicha salida se le aplican una
serie de transformaciones y sustituciones
(mediante la funcin f) en 16 iteraciones
distintas. Finalmente se permuta de nuevo con
la permutacin inversa IP-1 (Tabla 2)
obteniendo el cifrado del bloque de 64 bits de la
entrada.
5
8

5
0

4
2

3
4

2
6

1
8

1
0

0
2

6
0

5
2

4
4

3
6

2
8

2
0

1
2

0
4

6
2

5
4

4
6

3
8

3
0

2
2

1
4

0
6

6
4

5
6

4
8

4
0

3
2

2
4

1
6

0
8

5
7

4
9

4
1

3
3

2
5

1
7

0
9

0
1

5
9

5
1

4
3

3
5

2
7

1
9

1
1

0
3

6
1

5
3

4
5

3
7

2
9

2
1

1
3

0
5

6
3

5
5

4
7

3
9

3
1

2
3

1
5

0
7

Tabla 1. Permutacin Inicial IP.

40
39
38
37
36
35
34
33

08
07
06
05
04
03
02
01

48
47
46
45
44
43
42
41

16
15
14
13
12
11
10
09

56
55
54
53
52
51
50
49

24
23
22
21
20
19
18
17

64
63
62
61
60
59
58
57

32
31
30
29
28
27
26
25

llamaremos Ti, es la concatenacin de las partes


Li y Ri, es decir, Ti = Li .Ri (1 <= i <= 16). Para
cada uno de estos pasos se verifica que:
Li = Ri-1
Ri = Li-1 + f(Ri-1, Ki)
Donde el smbolo + representa a la operacin
de o exclusivo (esto ser as mientras no se diga
lo contrario) y donde Ki es una clave de 48 bits
generada por la funcin generadora de claves
Ki=KS (i, K) siendo K la clave externa de 64
bits, dicha funcin ser explicada ms adelante.
Como se puede observar en el esquema general
del DES mostrado anteriormente, existe una
pequea diferencia en la ltima iteracin
respecto a las anteriores, es decir, que las partes
L y R no se permutan sino que se concatenan
(R16 . L16). Dicho resultado se toma como
entrada para la permutacin inversa. La razn
por la cual la ltima iteracin se hace de este
modo es para que el algoritmo sirva tanto para
cifrar como para descifrar (esto quedar claro
ms adelante).
Tras la descripcin general del algoritmo
pasar a explicar cada una de sus partes de
forma ms detallada.
Funcin de cifrado f y Cajas S
La funcin f transforma los 32 bits del
bloque R i-1 mediante la subclaveki, en los 32
bits de f (R i-1, ki). La siguiente figura muestra
el esquema general de la funcin f (R i-1, ki):

Tabla 2. Permutacin Inversa IP-1.


Figura 2. Funcin f.

Cada una de estas 16 iteraciones realiza una


serie de transformaciones y sustituciones, de
forma que el resultado de cada iteracin, al que

Primero se expanden los 32 bits de R i-1 en un


bloque de 48 bits, utilizando la tabla de
expansin E (ver tabla 3).

32 1

4
8
12
16

5 6 7 8 9
9 10 11 12 13
13 14 15 16 17
25

nmero decimal correspondiente al binario


b2b3b4b5 de los bits centrales de Bj.

24
24
20
24
28

25
21
25
29

21
22 23 24 25
26 27 28 29
30 31 32 1

Tabla 5. Matriz de seleccin para el


bloque B1.

Tabla 3. Tabla de expansin E

Una vez obtenido el bloque se efecta la


operacin o-exclusivo entre E(R i-1) y ki, y el
resultado es dividido en 8 bloques Bj de 6 bits.
Cada uno de los bloques Bj se usa como entrada
de una tabla de seleccin-sustitucin Sj (Cajas
S), dichas cajas realizan una transformacin no
lineal que da como salida una secuencia de 4
bits, Sj( Bj ).
E ( R i-1 ) + Ki = B1 . B2 .B3 .B4 .B5 .B6 .B7 .
B8
Estas salidas, Sj( Bj ), se concatena para dar
lugar a 32 bits que son sometidos a la
permutacin P (ver la tabla 4).

16
29
1
5
2
32
18
22

7
12
15
18
8
27
13
11

20
28
23
31
24
3
30
4

21
17
26
10
14
9
6
25

Tabla 4. Permutacin P.

Resumiendo, al final de este proceso nos


encontramos con una salida de la siguiente
forma:
P ( S1 ( B1 ) . S2 ( B2 ) ... S8 ( B8 ) )
Llegados a este punto nicamente nos falta
conocer el funcionamiento de las cajas S, es
decir, que operaciones realiza para obtener la
salida Sj( Bj ). El funcionamiento es sencillo,
cada una de estas 8 cajas tiene asociada una
matriz (ver Tabla 5). Como ya he comentado
anteriormente, los 6 bits Bj = b1b2b3b4b5b6 se
convierten en 4 bits que se corresponden con el
valor decimal de un elemento de la matriz Sj
cuya fila, viene determinada por el valor
decimal de los bits b1b6; y en columna, por el

En la tabla anterior he resaltado algunas


casillas para hacer ms fcil la comprensin de
estas cajas a partir del siguiente ejemplo:
B1 = 101101, S1 ( B1 ) = 0001.
cogiendo los bits b1 y b6 obtenemos la fila
correspondiente, en este caso la 11.
y cogiendo los bits b2,b3,b4 y b5 obtenemos la
columna correspondiente, en este caso la 6 =
0110.
Por lo que el resultado obtenido es el 1, que
expresado en binario con 4 bits es S1 ( B1 ) =
0001.
Por ltimo, nicamente nos falta explicar el
funcionamiento del generador de claves (KS),
que como coment anteriormente explicara en
su debido momento.
Generador de Claves
La funcin KS es la encargada de generar las
claves Ki = KS (i, k) para cada iteracin. Donde
i es la iteracin y k es la clave externa de 64 bits
donde los bits octavos (8, 16,...., 64) son de
paridad impar para proteger la clave ante errores
de lectura. El proceso de obtencin de estas
claves internas se describe a continuacin
(Figura 3):

clave Ki. Las sucesivas claves internas se


obtienen a partir de los registros Li y Ri
obtenidos despus de realizar los sucesivos
desplazamientos a izquierdas de los contenidos
de los registros L y R, de forma que:
Li = LSi (Li-1)
Ri = LSi (Ri-1)
Donde LS es un desplazamiento circular a
izquierdas de forma que el nmero de bits a
desplazar viene dado por la siguiente tabla
(Tabla 7) dependiendo de la iteracin en la que
nos encontremos:

Figura 3. Generador de claves internas Ki.


Nota: El smbolo << representa el
desplazamiento circular de bits a la izquierda (1
o 2 dependiendo de la iteracin). Y no confundir
los registros Li y Ri de esta seccin con los del
esquema general del DES.
Vamos a describir detalladamente este
esquema para facilitar su comprensin.
Los 64 bits de nuestra clave externa se
someten a una permutacin de acuerdo con la
tabla EP1 (Ver tabla 6), que sin tomar los 8 bits
de paridad permutan los 56 restantes. La salida
de esta permutacin se divide en dos partes (L0
y R0).
Permutacin EP1

Permutacin EP2

57 49 41 33 25 17 9

14 17 11 24 1 5

1 58 50 42 34 26 18

3 28 15 6 21 10

10 2 59 51 43 35 27

23 19 12 4 26 8

19 11 3 60 52 44 36

16 7 27 20 13 2

63 55 47 39 31 23 15

41 52 31 37 47 55

7 62 54 46 38 30 22

30 40 51 45 33 48

14 6 61 53 45 37 29

44 49 39 56 34 53

21 13 5 28 20 12 4

46 42 50 36 29 32

Tabla 6. Permutaciones EP1 y EP2 .

Los contenidos de los registros L0 y R0 se


desplaza un bit a la izquierda para obtener a
travs de la permutacin EP2 (ver tabla 6) la

Tabla 7. Relacin entre la iteracin y


el nmero de desplazamientos.

Resumiendo, la clave interna Ki queda de la


siguiente forma:
Ki = EP2 (Li .Ri)
Con esto queda completada la explicacin de
cmo el DES cifra la informacin quedando
nicamente por comentar la forma en la que la
descifra.
El Descifrado
El descifrado se realiza utilizando el mismo
algoritmo pero de una forma distinta, es decir,
en la primera iteracin se utiliza la clave interna
K16, la K15 en la segunda, y as hasta llegar a la
K1 para la ltima iteracin. Esto se hace as
porque la permutacin final IP-1 es la inversa de
la permutacin inicial IP. Por otra parte:
Ri = Li-1
Li = Ri-1 + f(Li-1, Ki)
Donde el smbolo + sigue representando el o
exclusivo y donde R y L se refieren en este caso
a cada uno de los 32 bits del esquema general
(no al esquema del apartado de generacin de
claves internas).
Seguridad del DES
Son varios los problemas existentes en cuanto
al funcionamiento del DES. Dicho algoritmo
tiene diversas debilidades entre las que cabe
destacar las siguientes:
El tamao de la clave, 56 bits, hace que el
sistema sea vulnerable dado que el conjunto de
claves resulta demasiado pequeo: 256
posibilidades.
Desde el punto de vista del criptoanlisis,
existen dos mtodos de ataque:
Bsqueda exhaustiva: usando un ataque con
texto original escogido. El texto original

escogido m, es cifrado con cada una de las n


posibles claves k hasta que Ek(m) = c, siendo c
el texto cifrado conocido. El tiempo requerido
es T = O(n) y la memoria S=O(1).
Bsqueda en tablas: usando un ataque con
texto original escogido. Sea m el texto original
escogido; cada texto cifrado, ci = Eki(m), es
precalculado para i= 1, ..., n. Las claves ki son
ordenadas y, junto con los textos cifrados ci,
puestas en una tabla, de manera que la clave
correspondiente a un texto cifrado dado pueda
ser hallada en un tiempo T=O(1) con un
requerimiento de memoria de S = O(n).
Problemas en el uso de las Claves
Existen algunos problemas en funcin de las
claves externas que se hayan decidido utilizar,
ya que dependiendo de ellas la seguridad del
DES puede bajar muchsimo.
Claves dbiles y Semidbiles
Existen un reducido nmero de claves
externas que generan las mismas claves
internas, es decir, que para una misma llave
podemos obtener k1 = k2 =...= k16. Esta
situacin se da en el caso de que los registros L0
y R0 del generador de claves sea todo ceros o
todo unos. Concretamente existen cuatro claves
externas para las que se da esta situacin, y son
las siguientes:

Ek(Ek(M)) = M
A parte de estas, existen otro grupo de llaves
llamadas semidbiles. Estas llaves nicamente
generan dos llaves internas distintas, es decir,
una ms que las llaves dbiles. De esta forma,
cada una de estas dos llaves se repetir ocho
veces.
En este caso, si expresamos en binario los
valores de los registros L0 y R0 del generador
de llaves, tendramos que encontrarnos con
series de la forma C = 0101...01 o D= 1010...10
y su correspondiente D o C = 0000...00,
0101...01, 1010...10 o 1111...11. Pero sin duda
alguna como mejor se entiende esto es a travs
de un ejemplo.
Supongamos que C0 = 1010...10 y D0 =
0101...01. En la siguiente tabla se puede
observar como afectan los desplazamientos del
generador de claves a este tipo de llaves:
i

Despl.

Registro Li

Registro Ri

1010...10

0101...01

0101...01

1010...10

1010...10

0101...01

1010...10

0101...01

1010...10

0101...01

1010...10

0101...01

1010...10

0101...01

1010...10

0101...01

1010...10

0101...01

0101...01

1010...10

10

0101...01

1010...10

11

0101...01

1010...10

12

0101...01

1010...10

13

0101...01

1010...10

Tabla 8. Valores en hexadecimal de las llaves


dbiles

14

0101...01

1010...10

15

0101...01

1010...10

En estos cuatro casos las operaciones de


cifrado y descifrado son iguales ya que al ser
todas las claves internas iguales el resultado de
aplicar estas claves de la 1 a la 16 y de la 16 a la
1 es el mismo. Es decir, que se cumple que:

16

1010...10

0101...01

01 01 01 01 01 01 01 01

1F 1F1F1F 0E 0E0E0E

E0 E0E0E0 F1 F1F1F1

FE FEFEFEFEFEFEFE

Dk(Dk(M)) = M

Tabla 9. Ejemplo de claves semidbiles

En el ejemplo se ve claramente como los


desplazamientos circulares de los bits aplicados
a este tipo de llaves da lugar nicamente a 2
llaves internas distintas. A continuacin se

muestran las diferentes claves que dan lugar a


esta situacin:
01FE01FE01FE01FE
FE01FE01FE01FE01
1FE01FE00EF10EF1
E01FE01FF10EF10E
01E001E001F101F1
E001E001F101F101
1FFE1FFE0EFE0EFE
FE1FFE1FFE0EFE0E
011F011F010E010E
1F011F010E010E01
E0FEE0FEF1FEF1FE
FEE0FEE0FEF1FEF1
Tabla 10. Las 12 claves semidbiles

Como ya hemos visto existen dos grupos


reducidos de llaves (dbiles y semidbiles) que
no se aconseja utilizarlas. Sinembargo, esto no
nos supone ningn problema grave ya que
disponemos de 256 posibles llaves por lo que no
gastando las anteriormente citadas es suficiente
para evitar el problema.
Uso de dos claves
Con el objetivo de aumentar la seguridad del
DES, se pens en la utilizacin de dos claves, es
decir, aplicarle el Des a cada bloque dos veces.
Pero tras estudiar esta posibilidad, Merkel
asegur que utilizando un mtodo criptogrfico
por eleccin de mensaje, el coste para
descifrarlo sera de 257 y no 2112 como se
supona inicialmente.
Ms adelante explicar el triple DES que se
basa en esta idea pero cumpliendo con el
objetico inicial, es decir, multiplicar la
seguridad del DES.
Complementariedad
Existe la posibilidad de utilizar claves que
sean complementarias al mensaje cifrado. Sean
M' y K' los complementarios de los respectivos
M y K, se cumple que:
C = Ek (M)
C' = Ek' (M')

La solucin a este problema es tan sencillo


como el propuesto al problema de las llaves
dbiles y semidbiles, basta con no utilizarlas.
Modos de Operacin del DES
Existen distintos modos de cifrado para
estructuras de bloque entre las que cabe destacar
las siguientes:
ECB (ElectronicCode-Book), el texto original
se procesa en bloques disjuntos de 64 bits,
cuyos bloques de salida, tambin de 64 bits, se
concatenan para formar el texto cifrado. Tiene el
inconveniente de que es susceptible a ataques
estadsticos y/o ataques sobre la clave, con un
texto original conocido, sobre todo cuando las
cabeceras de los textos tienen un formato
estndar. Una forma sencilla de observar el
funcionamiente de este mtodo de cifrado es a
travs del openssl.
mediante el comando
openssl des-ecb -k "" aplicado para cifrar una
imagen, se puede ver como la imagen se
modifica pero se continua distinguiendo la
imagen original.
CBC (Cipher Block Chaining), es un mtodo
de cifrado en bloques encadenados, que consiste
en dividir el texto a cifrar en bloques y hacer
depender el bloque n-simo de texto
cifrado/descifrado del bloque n-simo -1:
cn = Ek (mn + cn-1 ) mn = Dk (cn ) + cn-1
El primer bloque de entrada al proceso DES
est formado por la or exclusiva (representada
por el smbolo +) entre el primer bloque del
mensaje y los 64 bits de un vector inicial, c0 =
VI, el cual es convenido, previamente, entre el
cifrador y el descifrador.
Tiene la ventaja de que impide la supresin
y/o insercin de bloques de texto cifrado, puesto
que en cualquier caso el receptor sera incapaz
de descifrar el criptograma recibido y, por lo
tanto, quedara alertado de las posibles
intrusiones. Los ataques estadsticos tambin se
han complicado, debido a la interdependencia
del texocifrado a lo largo de todo el proceso. En
este caso, si aplicamos el mismo ejemplo
mediante el openssl pero con el modo cbc se
puede ver como la imagen queda totalmente
distorsionada siendo imposible relacionar la
imagen cifrada con la imagen original.
Para los modos de cifrado encadenado, es
decir, en nuestro caso para el modo cbc, existen

diferentes mecanismos para encadenar los


diferentes bloques:
Encadenamiento de texto cifrado o
DES autosincronizado. El bloque de
cifrado/descifrado slo depende del
bloque de cifrado/descifrado anterior.
Este modo, autosincronizado, se utiliza en la
proteccin de ficheros. Cuando se utiliza para la
transmisin de datos, un error se puede
remediar, volviendo a mandar el mensaje, pero
cuando se cifra un fichero es importante
asegurar que los posibles errores afectan al
menor nmero de bits. Sin embargo, este modo
no es muy til para la autentificacin de los
mensajes. Tiene una debilidad terica en que el
mismo texto siempre se encripta de la misma
manera (con la misma clave), pero tiene la
ventaja que el encriptamiento no tiene que ser
secuencial, ej. puede usarse para registros de
una base de datos.

Figura 6. DES con autentificacin para


el cifrado

Figura 7. DES con autentificacin para


el descifrado
AREA DE OPORTUNIDADES

Figura 4. DES autosincronizado para el


cifrado

Figura 5. DES auto-sincronizado para el


descifrado

Encadenamiento de texto original y


texto
cifrado
o
DES
con
autentificacin. El bloque cifrado
depende de los textos, original y
cifrado, anteriores.

El modo triple DES es hoy en da el ms


utilizado. Esto es as debido a que que en los
das que estamos y con la tecnologa de la que
disponemos, no es excesivamente costoso
romper el DES. As pues, existen mtodos de
cifrado mltiple entre los que cabe destacar el
triple DES. Simplemente se trata de utilizar tres
llaves externas independientes para cifrar el
mismo texto de manera que las expresiones que
representan el cifrado y descifrado del mensaje
son las siguientes:
c = E k3 (D k2 (E k1 (m)))
m = D k1 (E k2 (D k3 (c)))
Donde c es el texto cifrado y m el texto a
cifrar. La idea es cifrar el texto en claro con un
clave y descifrarla con otra totalmente
independiente, y el resultado de este proceso se
vuelve a cifrar con una tercera clave tambin
independiente de las anteriores. De esta forma la
seguridad del DES aumenta considerablemente
siendo mucho ms costoso romperlo.
VII. ALGORITMO ESTANDAR AVANZADO DE
CIFRADO (AES)
INTRODUCCION

En Enero de 1997 el Instituto Nacional de


Estndares y Tecnologa de los Estados Unidos
(NIST-National Institute of Standards and
Tecnology) lanz la convocatoria abierta a
nivel mundial para seleccionar el nuevo
estndar criptogrfico
AES
Advanced
Encryption Standard ( Menezes A.,Oorschot P.
V., Vanstone S., 1996). As mismo se fijaron
tres criterios de evaluacin para calificar a los
candidatos y poder determinar el ganador de
este concurso. A saber: seguridad, costos y
caractersticas
del
algoritmo
y
su
implementacin ( Daemen J., Rijmen V., 1999 )
.
El 2 de Octubre del 2000, el NIST (National
Institute for Standards and Technology)
anunci oficialmente que el algoritmo Rijndael
creado por los Belgas Joan Daemen y Vicent
Rijmen ( Daemen J., Rijmen V., 2001). haba
sido el ganador para usarse como el nuevo AES,
mostrando caractersticas como excelente
tiempo en la implantacin de la llave, bajo
requerimientos de memoria para ambientes con
restriccin de espacio, sus operaciones estn
entre las ms fciles de defender contra ataques.
El AES es un esquema que se basa en la
aplicacin de una secuencia de transformaciones
sobre un bloque de bits de tamao
predeterminado. El diseo original de Rijndael
consiste en un cifrado por bloques con
longitudes de llave y bloques variables, sin
embargo el AES nicamente contempla una
longitud fija de bloque de 128 bits y longitudes
de 128, 192 y 256 bits para la llave.

respectivamente, cada vuelta de AES consiste en


la aplicacin de una ronda estndar, que consiste
de 4 transformaciones bsicas, la ltima ronda
es especial y consiste de 3 operaciones bsicas,
aadiendo siempre una ronda inicial. Por otro
lado tener el programa de claves o extensin de
la clave. Por lo anterior la descripcin consiste
en describir las transformaciones bsicas
AddRoundKey,
SubBytes,
ShiftRows,
MixColumns, y por ltimo de KeySchedule
(Angel Angel J.J., 2005).
Recordar que AES interpreta el bloque de
entrada de 128 bits, como una matriz 4x4 de
entradas de bytes, si el bloque es de 192 bits se
agregan 2 columnas ms, si lo es de 256 se
agregan 4 columnas ms.

DESCRIPCION Y PSEUDOCODIGO

denotar como [aij ]


y se llamar matriz
estado.
AddRoundKey
Esta transformacin toma una matriz y
simplemente hace un XOR byte a byte con la
correspondiente matriz de claves dependiendo
de la ronda en que nos encontremos.

La descripcin de AES es simple si se cuentan


con todos los elementos. Esta consiste en dos
partes, la primera en el proceso de cifrado y la
segunda en l se muestra la siguiente figura:

De manera un poco ms detallada el algoritmo


AES llega a ser:
AES trabaja con bloques de datos de 128 bits y
longitudes de claves de 128, 192, 256 bit.
Adems AES tiene 10, 12 o 14 vueltas

a00 a01 a02 a 3


a10 a11 a12 a13
a20 a21 a22 a23
a31 a32 a33 a33
Est asociada al bloque de 128bits.
a00a10a20a30a01a11a21a31a02a12a22a32a
03a13a23a33

Es decir, tomando los primeros 4 bytes


conforman la primera columna, los segundos 4
bytes son la segunda columna, etc.
La regla aplica a los bloques de192 bits y 256
bits, obteniendo matrices de 6,y 8 columnas
respectivamente.
La matriz es la entrada del algoritmo AES, y va
cambiando en cada una de las rondas, se

Toma la matriz

[aij ]

resultado la matriz

[k ij ] y da como
[aij ] [aij ] , es decir
y

XOR entrada por entrada, la matriz del bloque


con la matriz de la subclave correspondiente.
La matriz estado tiene 4 columnas y toma la
extensin de clave tambin 4 columnas. El
programa de claves genera necesarias matices
de claves para todas las rondas.
ByteSub
En este caso a cada elemento de la matriz
estado(byte) se le sustituye por otro byte, que
depende del primero.

Por ejemplo la aplicacin de ByteSub de 7b


sigue los siguientes pasos:
7b = 01111011 = x6 + x5 + x4 + x3 + x2 +x
7b-1 = x2 + x = 00000110 = 06
Que se obtiene de la tabla de inversos en la
interseccin de la fila 7 y la columna b.
Aplicando ahora la transformacin lineal
En trminos de bits queda como

O en representacin matricial

Finalmente el resultado de ByteSub puede


resumirse en la siguiente tabla conocida como
S-Box AES.

Finalmente tenemos
0010 0001 = 21
Que puede obtenerse de la tabla directamente en
la interseccin de la fila 7 y la columna b.
Otro ejemplo a7
a7 = 10100111 = x7 + x5 + x2 + x + 1
a7-1 = x6 + x3 = 0100 1000 = 48
Se tiene de la tabla de inversos, en la
interseccin de la fila a y la columna 7, y la
transformacin lineal.

Finalmente se tiene que 01011100 = 5c


Que es la fila a y columna 7 de S-Box.

ShiftRows
La transformacin ShiftRows se aplica a la
matriz estado, aplicando corrimientos a sus
columnas. Se aplica a la matriz [aij ] , shifts
(corrimientos izquierdos circulares de bytes) a
los renglones, de la siguiente manera, recorre 0
bytes al primer rengln, 1 byte al segundo
rengln, 2 bytes al tercer rengln y 3 bytes
corridos al cuarto rengln.
La transformacin ShiftRows, se define de la
siguiente manera:

ar ,c =a r ,(c+shift ( r , Nb ) modNb) ,0 <r <4, 0 c< Nb


MixColumns
MixColumns: a cada columna de la matriz

[aij ]

la multiplica por una columna

constante en

8
4
GF ( 2 ) [ X ] /( x +1) .

La primera fila queda igual. La segunda fila se


recorre un byte, como las tablas siguientes lo
muestran:

MixColumns toma cada columna A, y la manda


a otra columna A, que se obtiene al multiplicar
A
por
un
polinomio
constante

c ( x ) GF ( 28 ) [ x ] /(x 4 +1) , c ( x )=03 x 3 +01 x 2+ 01 x +02


, entonces A= A c(x), como se vio en los
antecedentes, este producto se puede representar
por la siguiente matriz.
La tercera columna
circularmente:

mueve

dos

bytes

Finalmente la cuarta fila recorre 3 bytes


circularmente

Key Schedule
Aunque Rijndael est diseado para manejar
muchos casos de longitudes de claves y de
bloques, finalmente AES definido en el estndar
determina solo permitir los casos de bloques de
128 bits, y longitudes de claves de 128, 192 y
256. Por otra parte la longitud de 128 bits,
garantiza la seguridad del sistema hasta despus
del ao 2030, por lo que slo consideraremos el
caso de claves 128 bits, aunque los algoritmos
pueden ser extendidos fcilmente a los casos
restantes.
El algoritmo de extensin de la clave es el
siguiente:

La clave K se expande a una matriz de 4 filas y


Nb (Nr + 1) columnas.

w0 = 2b7e1516 w1 = 28aed2a6 w2 = abf71588 w3 =


09cf4f3c

Quedando como
Unsigned char clave [4] [4] = {0x2b, 0x28, 0xab,
0x09,
0x7e, 0xae, 0xf7, 0xcf,
0x15, 0xd2, 0x15, 0x4f,
0x16, 0xd6, 0x88, 0x3c};

Algoritmo de extensin
Key Expansion (byte Key [4 * N k] Word [Nb * (Nr +
1)]
{
For (i = 0; i < Nk ; i++)

For (i = Nk; i<Nb * (Nr + 1); i++)

Ahora se observa con detalle lo que describe la


parte de rojo. En este caso, de bloques de 4
columnas, claves de 4 columnas, y por lo tanto
10 rondas.
Key Expansion (byte Key [4 * Nk] Word [Nb *
(Nr + 1)]

{ temp = W[i ~ 1];

if
(i%Nk
==
0)
temp=SubByte(RotByte(temp))^Rcon[i/Nr];

For (i = 0; i < Nk ; i++)

W[i] = W[i~Nk] ^ temp;

W [i] = (key [4*i], key [4*i+1], key [4*i+2],


key [4*i+3]);

For (i = Nk; i<Nb * (Nr + 1); i++)

W [i] = (key [4*i], key [4*i+1], key [4*i+2], key


[4*i+3]);

En este caso Nb = Nk = 4, y Nr = 10
La parte verde verifica que
For (i=0; i<4; i++)
W [i] = (key [4*i], key [4*i+1], key [4*i+2],
key [4*i+3]);
W [0] = (key [0], key [1], key [2], key [3]);
W [1] = (key [4], key [5], key [6], key [7]);
W [2] = (key [8], key [9], key [10], key [11]);
W [3] = (key [12], key [13], key [14], key [15]);

{ temp = W[i ~ 1];


if
(i%Nk
==
0)
temp=SubByte(RotByte(temp)) ^ Rcon[i/Nr];
W[i] = W [i~Nk] ^ temp;
}
Particularmente:
N4 = 4;
Nb * (Nr + 1) = 4 (10 + 1) =
44;
For (i=4; i<44; i++)
{ temp = W [i ~ 1];

Es decir las primeras 4 columnas de la extensin


son la clave original.
Tomando como ejemplo el vector de prueba
para el caso 128.
Cipher Key = 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f
3c
For Nk = 4, which results in

If(i%Nk == 0) temp = SubByte


(RotByte (temp)) ^ Rcon [i/Nk];
W [i] = W [i ~ Nk]; ^ temp;

}
Se observa que si i es mltiplo de 4, entonces
W[i] sigue un procedimiento especial, en otro
caso simplemente W[i] es = W [i ~ 1] Xor W [i
~ 4].
En el caso de i = 4 se tiene lo siguiente:
{ temp = W[3];
If (4%4 ==0) temp = SubByte (RotByte (temp))
^ Rcon [4/4];
W [4] = W [0] ^ temp;

RC [1] = 1;
RC [1] = xRC [i ~ 1] = x i~1;
Es decir, desde el punto de vista de polinomios:
RC [1] = 1
RC [6] = X5
= 20
RC [2] = X = 2
RC [7] = X6 = 40
2
RC [3] = X = 4
RC [8] = X7 = 80
RC [4] = X3 = 8
RC [9] = X8 = X4 +
3
X + X+ 1 = 1b
RC [5] = X4 = 10
RC [10] = X9 = X5 +
X4 + X2 + x = 36
As es xor queda de la siguiente manera:
SubByte (RotByte (temp)) ^ Rcon [1];

}
Entonces el clculo de W[4], es el siguiente:
1) temp= RotByte (temp)
2) temp = SubByte (temp)
3) temp = temp xor Rcon [4/4]

Para terminar con este clculo, tenemos un xor


con la columna W [i~4].
i = 4;

Rotbyte es una rotacin circular del byte ms


arriba de la columna.

{ temp = W[3];
if (4%4 == =) temp = SubByte (RotByte (temp))
^ Rcon [4/4];
W [4] = W[0] ^ temp;
}
W [4] = W [0] ^ temp;

SubByte es la sustitucin de byte, de acuerdo a


la tabla ya conocida, de todos los bytes de la
columna

Finalmente se aplica un Xor


temp = SubByte (RotByte (temp)) ^ Rcon [4/4];
Donde, Roon se obtiene de acuerdo a la
siguiente forma:
Rcon[i] = (RC[i],00,00,00);

Se ha terminado con la extensin de la primera


columna de la clave, las siguientes tres
columnas i=5, 6, 7 no son mltiplo de 4, por lo
que su clculo se reduce a un simple Xor con la
columna W [i-4].
For (i= 5, 6, 7)
{ temp = W [i ~ 1];
W [i] = W [i ~ 4] ^ temp;

Se aplica la funcin AddKey

Bloque de entrada
Clave=Estado

Intermedio 1
Para cada elemento del bloque de entrada se
realiza una operacin XOR con su equivalente
en posicin del bloque de clave.
Se aplica la funcin ByteSub
Estado Intermedio 1 S-box Estado Intermedio 2

La siguiente columna i=8, es mltiplo de 4, por


lo que hay que seguir la misma regla que la
columna 4, es decir:
{ temp = W[7];
If (8%2 == 0) temp = SubByte (RotByte (temp))
^ Rcon [8/2];
W[8] = W[4]^temp;
}
As sucesivamente hasta llenar las 44 columnas
de que consiste este caso el programa de clave.
Hasta el momento se ha revisado los pasos
necesarios para poder entender el algoritmo
AES.
EJEMPLO
Para una mejor comprensin se muestra un
ejemplo explicativo en el que se ve como acta
el cada una de estas funciones sobre una clave y
un bloque de datos, teniendo en cuenta que la
ejecucin de las funciones es la siguiente:
AddRoundKey
ByteSub ShiftRows
MixColumns
AddRoundKey.
Ejemplo: Se aplica el algoritmo AES con los
siguientes datos:
Bloque de datos: 32 43 f6 a8 88 5a 30
8d 31 31 98 a2 e0 37 07 34
Clave:
2b 7e 15 16 28 ae d2
a6 ab f7 15 88 09 c7 4f 3c

Para cada elemento se realizan dos


operaciones, realmente equivalentes a buscar en
la tabla denominada S-BOX los dos dgitos que
forman cada elemento y se obtiene el byte a
sustituir.
Funcin ShiftRows

Estado Intermedio 2 Estado Intermedio 3


Dependiendo del nmero de fila en el que se
encuentre se realiza uno dos o n
desplazamientos (corriendo los elementos hacia
la izquierda).
Aplicacin de la funcin MixColumns

Estado Intermedio 3 Estado Intermedio 4


Se
realiza
una
operacin
donde
S ( x )=c ( x ) S ( x)
3
2
c ( x )=03 x +01 x + 01 x +02 , S y S
sern la matriz resultado y la matriz de entrada
respectivamente comn (Vzquez Fernndez
D.M., 2007).
APLICACIONES
En la actualidad es el ms conocido y
utilizado en los criptosistemas de llave privada
para la implementacin de diversas aplicaciones
ya que resulta ser de fcil ejecucin, bajo en
consumo de recursos y es uno de los ms
seguros.
AES se utiliza en el cifrado de datos en
algunas
conexiones
de
dispositivos

inalmbricos, que son los ms usados en la


conexin de diversos servicios informticos. Se
usa de igual manera para transferencia bancarias
o pagos electrnicos, para encriptacion de
informacin sensible de una empresa o
gobierno.
Ingenieros alemanes del Instituto Frunhofer
(SIT) han desarrollado un sistema para codificar
las telecomunicaciones mviles sobre VolP, es
decir a travs de internet. Esto puede dar el
impulso definitivo a la convergencia de los
mviles con WiFi e internet.
El prototipo se basa en la aplicacin J2ME
(Plataforma Java) y utiliza un Algoritmo
Advanced Encryption Standard (AES) para
codificar un canal reservado para las
comunicaciones mviles a travs de IP. De esta
manera puede analizar protocolos criptogrficos
para codificar un canal reservado para las
comunicaciones mviles a travs de IP. De esta
manera
puede
analizar
protocolos
criptogrficos
y
las
cualidades
de
funcionamiento de los telfonos mviles
independientemente de la calidad de seal, lo
que garantiza una comunicacin segura a travs
de internet.
El estndar IEE 802.11i, tambin conocido
como WPA2, es una mejora al estndar 802.11
que especifica mecanismos de seguridad para la
redes inalmbricas. El estndar fue ratificado y
reemplazado por el protocolo WPA, que haba
sido introducido previamente por la alianza
WiFi como solucin a las inseguridades de
WEP. WPA o 802.11i hace uso del estndar de
cifrado avanzado (AES) para proporcionar
autentificacin de origen, integridad y
confidencialidad a la red mediante en los
cifrados en los propios routers.
Utimaco el principal proveedor mundial de
seguridad profesional de TI. Ofrecen soluciones
para la seguridad mvil en las reas de
autenticacin de alto nivel, includas tcnicas
biomtricas, cifrado y verificaciones de
integridad, y la divisin de seguridad para
aplicaciones
electrnicas
de
negocios,
gubernamentales y pagros de internet. Las
principales caractersticas de seguridad y
criptografa que utiliza esta empresa se basa en
un cifrado seguro comprobado (Algoritmo AES
de 256 bits). Este protege la valiosa informacin
de la compaa y su informacin personal,
protege los archivos en contra de accesos no
autorizados y realiza un intercambio seguro de

datos que no requieren una infraestructura


comn (Vzquez Fernndez D.M., 2007).
Se ha aplicado el estndar AES en el control
de trfico vehicular. Donde se ha implementado
el algoritmo AES -128 en un micro controlador
de 8 bits ATMega 128 con base en la necesidad
del envo de esta informacin confidencial de
trfico vehicular por una red IP (internet Procol)
a un servidor operando con software LabVIEW
(Laboratorio
Instrumentation
Engineering
Workbench),
donde
se
establece
la
comunicacin encriptada entre el servidor y el
controlador del trfico, se realiza en LabVIEW
el cifrado descifrado AES, mostrando los
tiempos y resultados finales de los procesos
implicados en un ciclo de cifrado (Higuera
Neira B. S. y Pedraza Luis F., 2013).
AREAS DE OPORTUNIDAD
Debemos reconocer que en una sociedad que
se aventura ms hacia la globalizacin cobra
mayor importancia el proteger nuestra
informacin y en este sentido cobra relevancia
los recientes conceptos criptogrficos.
Podemos decir que es altamente improbable
que existan claves dbiles o semidbiles en
AES, debido a la estructura de su diseo, siendo
que esta estructura busca eliminar la simetra de
las subclaves. En efecto, el mtodo ms
eficiente conocido hasta la fecha para recuperar
la clave a partir de un texto de un par de texto
cifrado - texto claro es la bsqueda exhaustiva,
por lo que podemos considerar a este algoritmo
sigue siendo uno de los ms seguros en la
actualidad.
Ha sido la intencin desde la aparicin de
este estndar que sea un algoritmo robusto, por
lo menos hasta la aparicin de mquinas futuras
de supercomputacin, como la soada
computacin cuntica que debilite seriamente su
seguridad.

VIII. REFERENCIAS
[1]Pino Caballero Gil, Introduccin a la Criptografa, 2da
edicin. 2003
[2]Basurto-Quijada R. (2008), Implementacin de un
Criptosistemas de Llave Pblica Llave Privada Basado
en AES y ECC. (Tesis de maestra indita). Universidad
Jurez Autnoma de Tabasco, Tabasco, Mxico.
[3]Simon Sinhg. The code book. How to make it, break it,
hack it, crack it (2001. De la corte Press.

[4]Fster Sabater Amparo, De la Gua Martnez Dolores,


Hernndez Encinas Lios, Montoya Vitini Fausto,Muoz
Masqu Jaime (2001). Tcnicas Criptogrficas de proteccin
de datos. Segunda edicacin. Editorial Alfaomega.
[5]David Revelles. Criptografa. Cdigos secretos que
cambiaron la historia. Clo Revista de Historia Nm.84,
(2008) .
[6]Diffie Whitfield and Marin E. Hellman. New Directions
in Cryptography. Information Theory (2003) .IEEE
Transactions on . (Volume no. 22), Issue: 6.
[7]Grossman, S. I. y Flores Godoy, J. (2012). lgebra
Lineal, sptima edicin. McGraw-Hill, Mxico.
[8]Snchez., J. M. (2013). Revista: Pensamiento Matemtico
de la Universidad Politcnica de Madrid. Criptologa Nazi.
Los
Cdigos
Secretos
de
Hitler.
http://www2.caminos.upm.es/Departamentos/matematicas/r
evistapm/revista_impresa/vol_III_num_1/hist_mat_1_crito_
nazi.pdf . Recuperado el 20 de octubre de 2015.
[9]Fernndez, Santiago. (2013). La Criptologa Clsica.
http://www.hezkuntza.ejgv.euskadi.eus/r43573/es/contenidos/informacion/dia6_sigma/es_sigma/adjunt
os/sigma_24/9_Criptografia_clasica.pdf. Recuperado el 2o
de octubre de 2015.
[10]Soler, J. R. (2012). Una introduccin a la criptografa
clsica.
http://www.criptohistoria.es/files/CIFRAS.pdf.
Recuperado el 20 de octubre de 2015.
[11]Introduccin
a
la
Criptografa.
(2013).
http://www.dma.fi.upm.es/java/matematicadiscreta/aritmetic
amodular/polialfabeto.html. Recuperado el 20 de octubre de
2015.
[12]Universidad Nacional Autnoma de Mxico, Facultad
de Ingeniera. Fundamentos de Criptografa (2015).
http://redyseguridad.fip.unam.mx/proyectos/criptografia/criptografia/. Recuperado
el
20
de
octubre
de
2015.
https://www.dropbox.com/s/uy2j1ljl7y4962e/cifradoTranspo
sicion.jar

[13]Eli Biham , Orr Dunkelman, Sprnger; July 29,2012,


(2011), Techniques for Cryptanalysis of Block Ciphers.
[14]Jack Copeland; (2006), Colossus: The Secrets of
Bletchley Park's Code-breaking Computers.
[15]Steven D. Galbraith, Cambridge University Press
(February 2012) . The
Mathematics of Public Key
Cryptography.
[16]Alejandro Junior Huahuala Chaupi, Algoritmo de
encriptacion de archivo de texto plano, Revista_11_08.pdf.
(2010).
http:/ www. uap.edu.pe/Investigaciones/Esp/Revista_11_Esp_08

[17]Arturo Quintantes Sierra, RSA y la aritmtica modular,


Boletn ENIGMA del Taller de Criptografa (2011).
http:/ www. anf.es/pdf/RSAaritmetica Cargallo
Tuzn Jorge, DES, 2013.
http://www.spi1.nisu.org/recop/al02/jgargallo/index
.html
[18]Angel Angel Jos de Jess, AES-Advanced Encryption
Standard, 2005.
http://computacion.cs.cinvestav.mx/jjangel/aes/AES_v2005_
2aParte.pdf
[19]Joan Daemen, Vincent Rijmen. AES Proposal:
Rijndael. 1999.
[20]J. Daemen, V. Rijmen. The Design of Rijndael.
Springer Verlag 2001.
[21]A. Menezes, P. van Oorschot, S. Vanstone. Handbook
of Applied Crypto- graphy. CRC Press 1996.
[22]Vzquez Fernndez D. Miguel, EL ALGORTIMO
CRIPTOGRAFICO AES
PARA PROTECCIN DE
DATOS,
2007.
http://www.iit.upcomillas.es/pfc/resumenes/46ea7511774d8.
pdf
[23]Brayan Steven Higuera Neira, Luis F. Pedraza,
Implementacin del algoritmo criptogrfico AES para un
controlador
de
trfico
vehicular,
http://revistas.udistrital.edu.co/ojs/index.php/Tecnura/article
/view/7236/8892

Vous aimerez peut-être aussi