Está en la página 1de 27

Algoritmos de Criptografa

Algoritmos
criptogrficos
Beln M Garca Lobo

-1 -
Algoritmos de Criptografa
ndice:
Criptografa Clsica................................................................................................................3
1.1. Algoritmos Clsicos de Cifrado...................................................................................3
1.1.1. Cifrados por Sustitucin........................................................................................3
1.1.2. Cifrados Polialfa!ticos........................................................................................"
1.1.3. Cifrados de #ransposicin.....................................................................................$
1.2. %&uinas de 'otores. (a %&uina )*+,%A.............................................................-
1.2.3. .tras %&uinas de 'otores.................................................................................../
Cifrados por 0lo&ues...............................................................................................................1
2.1. Cifrado de producto......................................................................................................1
2.1.1. 'edes de 2eistel.....................................................................................................3
2.1.2. Cifrados con )structura de ,rupo.........................................................................3
2.1.3. Algoritmo CAS#...................................................................................................3
2.2. )l Algoritmo 4)S......................................................................................................15
2.3. 6ariantes de 4)S.......................................................................................................11
2.3.1. 4)S %7ltiple:.....................................................................................................11
2.". Algoritmo +4)A.........................................................................................................11
2.$. )l algoritmo 'i8ndael 9A)S:......................................................................................13
2.$.1. (as 'ondas de A)S.............................................................................................1"
2.$.2. Clculo de las Sucla;es.....................................................................................1-
2.-. %odos de .p. para Algoritmos de Cifrado por 0lo&ues...........................................1/
2.-.1. %odo )C0..........................................................................................................1/
2.-.2. %odo C0C..........................................................................................................11
2.-.3. %odo C20...........................................................................................................11
2.-.". %odo .20..........................................................................................................13
Algoritmos Asim!tricos de Cifrado......................................................................................25
3.1. Aplicaciones de los Algoritmos Asim!tricos.............................................................25
3.2. )l Algoritmo 'SA......................................................................................................21
3.2.1. Seguridad del Algoritmo 'SA............................................................................22
3.2.2. 6ulnerailidades de 'SA....................................................................................22
3.3. .tros Algoritmos Asim!tricos...................................................................................23
3.3.1. Algoritmo de 4iffie-<ellman..............................................................................23
3.3.2. Algoritmo de )l,amal........................................................................................2"
3.3.3. Algoritmo de 'ain.............................................................................................2"
3.3.". Algoritmo 4SA...................................................................................................2$
0iliografa.......................................................................................................................2/
-2 -
Algoritmos de Criptografa
Criptografa de Cla;e Pri;ada
Criptografa Clsica
)l ser =umano siempre =a tenido secretos de mu> di;ersa ndole? > =a uscado mecanismos para
mantenerlos fuera del alcance de miradas indiscretas. @ulio C!sar empleaa un sencillo algoritmo
para e;itar &ue sus comunicaciones militares fueran interceptadas.
A continuacin? =aremos un re;e repaso de los mecanismos criptogrficos considerados clsicos.
Podemos llamar as a todos los sistemas de cifrado anteriores a la ++ ,uerra %undial? o lo &ue es lo
mismo? al nacimiento de los ordenadores. )stas t!cnicas tienen en com7n &ue pueden ser empleadas
usando simplemente lpiA > papel? > &ue pueden ser criptoanaliAadas casi de la misma forma. 4e
=ec=o? con la a>uda de los ordenadores? los mensa8es cifrados empleando estos cdigos son
fcilmente descifrales? por lo &ue ca>eron rpidamente en desuso.
(a transicin desde la Criptografa clsica a la moderna se da precisamente durante la ++ ,uerra
%undial? cuando el Ser;icio de +nteligencia aliado rompe la m&uina de cifrado del e8!rcito alemn?
llamada )*+,%A.
#odos los algoritmos criptogrficos clsicos son sim!tricos.
1.1. Algoritmos Clsicos de Cifrado
(a criptografa clsica se asa en algoritmos sencillos > cla;es mu> largas para la seguridad. )n la
actualidad =an perdido su eficacia? deido a &ue son fcilmente criptoanaliAales empleando
cual&uier ordenador dom!stico.
1.1.1. Cifrados por Sustitucin
Se asa en la sustitucin de cada letra o grupo de letras por otra letra o grupo de letras para
disfraAarla pero conser;an el orden de los smolos de teBto normal. )ntre ellos cae destacar los
siguientes:
Algoritmo de Csar
)l algoritmo de C!sar? llamado as por&ue es el &ue empleaa @ulio C!sar para en;iar mensa8es
secretos? es uno de los algoritmos criptogrficos ms simples. Consiste en sumar 3 al n7mero de
orden de cada letra. 4e esta forma a la A le corresponde la D? a la B la E? > as sucesi;amente.
)ste algoritmo ni si&uiera posee cla;e? puesto &ue la transformacin siempre es la misma.
Para descifrar asta con restar 3 al n7mero de orden de las letras del criptograma.
)8emplo: el mensa8e ataque se con;ertira en 4C4#D<
-3 -
Algoritmos de Criptografa
Mtodos de Cifrado Monoalfabticos
Sustitu>en cada letra por otra &ue ocupa la misma posicin en un alfaeto desordenado > esta
correspondencia se mantiene a lo largo de todo el mensa8e. As se consiguen tantas cla;es como
posiilidades de alfaetos =a>:
*E de cla;es 2-F G "H15
2-
)s muc=o me8or &ue el de @ulio Cesar > tiene ms cla;es &ue el sistema ms utiliAado actualmente
4)S 92$- G /?2H15
1-
cla;es:.
)l problema est en cmo recordar la cla;e? es decir? el alfaeto desordenado. Para ello se utiliAa
una palara de uso com7n &ue permite crear? con un algoritmo conocido? el alfaeto desordenado.
)l sistema es el siguiente:
1. Se usca una palara 9cla;e: fcil de recordar > se le &uitan las letras duplicadas.
S),I'+4A4 S),I'+4A
2. Se aJaden al final de la palara las restantes letras del alfaeto 9sin duplicar letras:.
S),I'+4A0C2<..................DKL
3. Se ordenan en una matriA cu>a primera fila es la palara cla;e
S ) , I ' + 4 A
0 C 2 < @ M ( %
* . P N # 6 C D
K L
". )l nue;o alfaeto se lee por columnas:
S0*K)C.L,2PI<N'@#+M64(CA%D
)8emplo: el mensa8e ataque se con;ertira en S6S#4)
As la cla;e es ms fcil de transmitir > recordar pero el sistema de pruea > ensa>o se reduce a
todas las palaras conocidas. )l sistema de criptoanlisis me8or para romper el algoritmo es el
estadstico. )mpare8ando las frecuencias relati;as de aparicin de cada smolo en el mensa8e
cifrado con el =istograma de frecuencias del idioma en el &ue se supone est el teBto claro?
podremos a;eriguar fcilmente la cla;e.
1.1.2. Cifrados Polialfabticos
)n los cifrados polialfa!ticos la sustitucin aplicada a cada carcter ;ara en funcin de la posicin
&ue ocupe este dentro del teBto claro. )n realidad corresponde a la aplicacin cclica de n cifrados
monoalfa!ticos? es decir? de ;arios aecedarios desordenados. )l emisor > el destinatario =an de
ponerse de acuerdo para fi8ar la posicin relati;a de dos crculos conc!ntricos? &ue determinar la
correspondencia de los signos.
A cada letra le corresponde un alfaeto. Pero? O&u! alfaetoP. In sistema ideal utiliAara como cla;e
alfaetos aleatorios pero seran imposiles de recordar > transmitir. Por lo tanto se utiliAa una
palara cla;e > una tala de alfaetos.
Cifrado de Vignere
)s un e8emplo tpico de cifrado polialfa!tico &ue dee su nomre a 0laise de 6igQnere? > &ue data
del siglo D6+.
-" -
Algoritmos de Criptografa
(a tala es la siguiente:
a c R R R R R R R R B > L
a A 0 C D K L
0 C 4 K L A
c C 4 ) L A 0
R
R
B D K L I 6 C
> K L A 6 C D
A L A 0 C D K
(os alfaetos forman las columnas > siempre empieAan por la letra de la caecera.
Mtodo:
1. Se usca una palara cla;e fcil de recordar.
2. Se escrie la palara dea8o del teBto en claro? repiti!ndose tantas ;eces como sea
necesario.
3. Cada letra del teBto en claro se codifica con el alfaeto de la tala marcado por la letra
inferior? o sea? la letra de la cla;e &ue corresponde.
)8emplo:
C(A6): A4+.S
#eBto en claro : ) S # . ) S C ' + P # . ( . , + A
Cla;e A 4 + . S A 4 + . S A 4 + . S A 4
Criptograma ) 6 0 4 C S 2 L C < # ' # C K + 4
)l sistema de criptoanlisis sigue los siguientes pasos:
1. Se usca en el criptograma repeticiones de letras. (as repeticiones suponen coincidencias
de teBto en claro > cla;e.
2. Si la frecuencia entre repeticiones es de n letras n es m7ltiplo de la longitud de la cla;e.
3. Se considera el teBto como n teBtos intercalados? cada uno es monoalfa!tico con el
alfaeto de una letra de la cla;e > se analiAan por t!cnicas estadsticas.
(a defensa es utiliAar una cla;e tan larga como el teBto? pero no es prctico: cuesta tanto transmitir
la cla;e como el teBto.
1.1.3. Cifrados de Transposicin
)ste tipo de mecanismos de cifrado no sustitu>e unos smolos por otros 9no disfraAan:? sino &ue
camia su orden dentro del teBto. NuiAs el ms antiguo conocido sea el escitalo? formado por un
astn cilndrico con un radio particular > una tira de piel &ue se enrollaa alrededor de a&u!l. )l
teBto se escria a lo largo del astn > slo poda ser ledo si se dispona de otro astn de
dimensiones similares. In mecanismo de transposicin sencillo? &ue no precisa otra cosa &ue lpiA
> papel? podra consistir en colocar el teBto en una tala de n columnas? > dar como teBto cifrado los
smolos de una columna Sordenados de arria aa8oS concatenados con los de otra? etc. (a cla;e
k se compondra del n7mero n 8unto con el orden en el &ue se deen leer las columnas
9generalmente se escoge una palara como cla;e > sus letras se ordenan alfa!ticamente:.
-$ -
Algoritmos de Criptografa
Por e8emplo? supongamos &ue &ueremos cifrar el teBto T)ste es un traa8o para la asignatura de
'edesU? con n G $ > la permutacin V3? "? 2? $? 1W >a &ue como cla;e =emos escogido T;ideoX.
Colocamos el teBto en una tala > otenemos:
6 + 4 ) .
1 2 3 " $
) s t e
e s u n
t r a
a 8 o p
a r a l
a a s i
g n a t u
r a d e
' e d e
s
#endramos como teBto cifrado la concatenacin de las columnas 3? "? 2? $ > 1 respecti;amente:
T# '.AAA ) )IA S#44 SS#@' *A' *0P(+I)) )) AAA,' SU.
)ste tipo de mecanismos de cifrado se puede criptoanaliAar efectuando un estudio estadstico sore
la frecuencia de aparicin de pares > tripletas de smolos en el lengua8e en &ue est! escrito el teBto
claro. Suponiendo &ue conocemos n? &ue en nuestro caso es igual a $? tenemos $F G 125 posiles
cla;es. 4escifraramos el teBto empleando cada una de ellas > comproaramos si los pares >
tripletas de smolos consecuti;os &ue ;amos oteniendo se corresponden con los ms frecuentes
en castellano. 4e esa forma podremos asignarle una proailidad automticamente a cada una de
las posiles cla;es.
Si? por el contrario? desconocemos n? asta con ir proando con n G 2? n G 3 > as sucesi;amente.
)ste m!todo es astante comple8o de lle;ar a cao manualmente? pero un ordenador puede
completarlo en un tiempo ms &ue raAonale sin demasiados prolemas.
1.2. Mquinas de Rotores. La Mquina ENIGMA
)n el aJo 1323? un ingeniero alemn llamado Art=ur Sc=erius patent una m&uina
especficamente diseJada para facilitar las comunicaciones seguras. Se trataa de un instrumento de
apariencia simple? parecido a una m&uina de escriir. Nuien deseara codificar un mensa8e slo
tena &ue teclearlo > las letras correspondientes al mensa8e cifrado se iran iluminando en un panel.
)l destinatario copiaa dic=as letras en su propia m&uina > el mensa8e original apareca de nue;o.
2igura 1.1.- )s&uema de la m&uina )*+,%A
-- -
Algoritmos de Criptografa
(a cla;e la constituan las posiciones iniciales de tres tamores o rotores &ue el ingenio posea en su
parte frontal.
)n la figura 1.1 podemos apreciar un es&uema de esta m&uina? llamada )*+,%A. (os rotores no
son ms &ue tamores con contactos en su superficie > caleados en su interior? de forma &ue con
cada pulsacin del teclado? la posicin de !stos determina cul es la letra &ue se =a de iluminar.
Cada ;eA &ue se pulsa una tecla el primer rotor a;anAa una posicinY el segundo a;anAa cuando el
anterior =a dado una ;uelta completa > as sucesi;amente. )l reflector no eBista en los primeros
modelos? se introdu8o posteriormente para permitir &ue la misma m&uina sir;iera tanto para cifrar
como para descifrar? como ;eremos ms adelante.
)*+,%A pronto llam la atencin del e8!rcito alemn? &ue la utiliA de forma intensi;a a lo largo
de la ++ ,uerra %undial. Adems se le aplicaron ;arias me8oras.
Aun&ue )*+,%A pareca ;irtualmente imposile de romper? presentaa una serie de deilidades?
tanto en su diseJo como en los mecanismos empleados para utiliAarla? &ue fueron apro;ec=adas por
el e8!rcito aliado.
)l protocolo empleado por el e8!rcito alemn para colocar los rotores al principio de cada mensa8e
consista en escoger una posicin de un liro de cla;es? > en;iar tres letras cuales&uiera dos ;eces?
para e;itar posiles errores. )n realidad se estaa introduciendo una redundancia tal en el mensa8e
&ue permita otener sin demasiados prolemas la cla;e empleada. Se constru> un aparato &ue
permita descifrar los mensa8es? > se le autiA como Ciclmetro.
)n 1331 Alemania cami el protocolo? lo cual olig a los matemticos polacos a refinar su
sistema? aun&ue sicamente se seguan en;iando tres letras repetidas.
(a fuerAa de la m&uina )*+,%A radicaa en &ue tras codificar cada letra se giran los rotores? lo
cual =ace &ue la permutacin &ue se aplica a cada letra sea diferente? > &ue esa permutacin adems
no se repita =asta &ue los rotores recuperen su posicin inicial. #engamos en cuenta &ue =a> 1/$/-
posiciones iniciales de los rotores? > -5 cominaciones de tres rotores a partir de los cinco de entre
los &ue se puede elegir. (a potencia del m!todo de criptoanlisis empleado radica en &ue astaa
con rastrear dentro del espacio de posiles configuraciones para encontrar a&uella &ue lle;ara a
cao la transformacin esperada. *o disponer de dic=o empare8amiento =uiera complicado
enormemente el criptoanlisis? tal ;eA =asta el punto de =acerlo fracasar.
1.2.3. Otras Muinas de !otores
Adems de la m&uina alemana )*+,%A? eBistieron otros dispositi;os criptogrficos asados en
rotores.
(a m&uina S+,A0A? empleada por el e8!rcito norteamericano.
(as m&uinas 8aponesas empleadas en la ++ ,uerra %undial? &ue se denominaron PI'P() > ')4.
-/ -
Algoritmos de Criptografa
Cifrados por "loues
Como =emos podido comproar =asta a=ora? la criptografa sim!trica 9o pri;ada: es el sistema de
criptografa ms antiguo. Se utiliAa desde los tiempos de @ulio Cesar =asta la actualidad. Se
caracteriAa por usar la misma cla;e para encriptar > desencriptar 92igura 2.5:.
2igura 2.5.- 2uncionamiento con cla;e pri;ada
#oda la seguridad est asada en la pri;acidad de esta cla;e secreta? llamada simtrica por&ue es la
misma para el emisor > el receptor.
2.1. Cifrado de producto
(os algoritmos de cifrado sim!tricos se apo>an en los conceptos de confusin 9tratar de ocultar la
relacin &ue eBiste entre el teBto claro? el teBto cifrado > la cla;e? es decir? realiAar sustituciones
simples: > difusin 9trata de repartir la influencia de cada it del mensa8e original lo ms posile
entre el mensa8e cifrado? es decir? realiAar permutaciones: &ue se cominan para dar lugar a los
denominados cifrados de producto. )stas t!cnicas consisten sicamente en trocear el mensa8e en
lo&ues de tamaJo fi8o? > aplicar la funcin de cifrado a cada uno de ellos.
<acer notar &ue la confusin por s sola sera suficiente? >a &ue si estalecemos una tala de
sustitucin completamente diferente para cada cla;e con todos los teBtos claros posiles tendremos
un sistema eBtremadamente seguro. Sin emargo? dic=as talas ocuparan muc=o en memoria? por
lo &ue seran in;iales.
-1 -
Algoritmos de Criptografa
2.1.1. !edes de #eistel
2igura 2.1.- )structura de una red de 2eistel
%uc=os de los cifrados de producto tienen en com7n &ue di;iden un lo&ue de longitud n en dos
mitades? ( > '. Se define entonces un cifrado de producto iterati;o en el &ue la salida de cada ronda
se usa como entrada para la siguiente seg7n la relacin 9;er figura 2.1::
: ? 9
1 1
1
i i i i
i i
K R f L R
R L

=
=
si i Z n
1
1 1
: ? 9


=
=
n n
n n n n
R R
K R f L L
)ste tipo de estructura se denomina 'ed de 2eistel? > es empleada en multitud de algoritmos? como
4)S? (ucifer? 2)A(? CAS#? 0lo[fis=? etc. Para descifrar astar con aplicar el mismo algoritmo?
pero con las Mi en orden in;erso.
2.1.2. Cifrados con $structura de %rupo
.tra de las cuestiones a tener en cuenta en los cifrados de producto es la posiilidad de &ue posean
estructura de grupo. )s decir? se puede dar el caso &ue si =acemos dos cifrados encadenados con \1
> \2? eBiste una cla;e \3 &ue realiAa la transformacin e&ui;alente.
)s importante &ue un algoritmo criptogrfico careAca de este tipo de estructura? >a &ue si ciframos
un mensa8e primero con la cla;e \1 > el resultado con la cla;e \2? es como si =ui!ramos empleado
una cla;e de longitud dole? aumentando la seguridad del sistema. Si? por el contrario? la
transformacin criptogrfica presentara estructura de grupo? esto =uiera sido e&ui;alente a cifrar el
mensa8e una 7nica ;eA con una tercera cla;e? con lo &ue no =aramos ganado nada.
2.1.3. &lgorit'o C&ST
)mplea seis S-Ca8as de 1H32 its. CAS# codifica lo&ues de -" its empleando cla;es de -" its?
consta de oc=o rondas > deposita prcticamente toda su fuerAa en las S-Ca8as. )ste algoritmo se =a
demostrado resistente a las t!cnicas =aituales de criptoanlisis? > slo se conoce la fuerAa ruta
como mecanismo para atacarlo.
Ina S-Ca8a de m*n its 9;er figura 2.2: es una tala de sustitucin &ue toma como entrada cadenas
de m its > da como salida cadenas de n its. Para su utiliAacin se di;ide el lo&ue original en
troAos de m its > cada uno de ellos se sustitu>e por otro de n its? =aciendo uso de la S-Ca8a
-3 -
Algoritmos de Criptografa
correspondiente. *ormalmente? cuanto ms grandes sean las S-Ca8as? ms resistente ser el
algoritmo resultante? aun&ue la eleccin de los ;alores de salida para &ue den lugar a un uen
algoritmo no es en asoluto tri;ial.
2igura 2.2.- A: S-Ca8a indi;idual. B: Cominacin de "-Ca8as
2.2. El Algoritmo E!
)s el algoritmo sim!trico ms eBtendido mundialmente. Se asa en el algoritmo (IC+2)'? &ue
=aa sido desarrollado por +0% a principios de los setenta? > fue adoptado como estndar por el
,oierno de los )).II. para comunicaciones no clasificadas en 13/-.
)l algoritmo DES codifica lo&ues de -" its empleando cla;es de $- its. )s una 'ed de 2eistel de
1- rondas? ms dos permutaciones? una &ue se aplica al principio 9Pi: > otra &ue se aplica al final
9Pf :? tales &ue la segunda es la in;ersa de la primera.
(a funcin f 9figura 2.3: se compone de una permutacin de eBpansin 9):? &ue con;ierte el lo&ue
de 32 its correspondiente en uno de "1. 4espu!s realiAa un or-eBclusi;o con el ;alor Mi? tami!n
de "1 its? aplica oc=o S-Ca8as de -H" its? > efect7a una nue;a permutacin .
2igura 2.3.- )s&uema de la funcin f del algoritmo 4)S
Se calcula un total de 1- ;alores de Mi 9figura 2.":? uno para cada ronda? efectuando primero una
permutacin inicial )P1 sore la cla;e de -" its? lle;ando a cao desplaAamientos a la iA&uierda de
cada una de las dos mitades Sde 21 itsS resultantes? > realiAando finalmente una eleccin
permutada 9)P2: de "1 its en cada ronda? &ue ser la Mi. (os desplaAamientos a la iA&uierda son de
dos its? sal;o para las rondas 1? 2? 3 > 1-? en las &ue se desplaAa slo un it. *tese &ue aun&ue la
cla;e para el algoritmo 4)S tiene en principio -" its? se ignoran oc=o de ellos Sun it de paridad
por cada >te de la cla;eS? por lo &ue en la prctica se usan slo $- its.
-15 -
Algoritmos de Criptografa
2igura 2.".- Clculo de las Mi para el algoritmo 4)S. )P1 representa la primera eleccin permutada? &ue slo
conser;a $- its de los -" de entrada? > )P2 representa la segunda? &ue se &ueda con "1 its. )l signo TZZX
representa un desplaAamiento de its a la iA&uierda 9uno o dos dependiendo de la ronda:.
Para descifrar asta con usar el mismo algoritmo empleando las Mi en orden in;erso.
!enta"as del algoritmo:
1. )s el ms eBtendido en el mundo.
2. )s mu> rpido > fcil de implementar.
2.". #ariantes de E!
A mediados de 8ulio de 1331? una empresa llamada )22 9)lectronic 2rontier 2oundation:? logr
faricar una m&uina capaA de descifrar un mensa8e 4)S en menos de tres das.
)l problema de 4)S radica en &ue emplea una cla;e demasiado corta 9$- its:? lo cual =ace &ue con
el a;ance actual de los ordenadores los ata&ues por la fuerAa ruta 9o pruea > ensa>o: comiencen a
ser opciones realistas.
A pesar de ello? 4)S sigue siendo ampliamente utiliAado en multitud de aplicaciones? como por
e8emplo las transacciones de los ca8eros automticos.
Se =an propuesto ;ariantes de este algoritmo para as apro;ec=ar gran parte de las
implementaciones por =ard[are eBistentes de 4)S. 4e ellos el &ue cae destacar es:
2.3.1. ($S M)ltiple*
Consiste en aplicar ;arias ;eces el algoritmo 4)S con diferentes cla;es al mensa8e original. )l ms
com7n de todos ellos es el #riple$DES? &ue responde a la siguiente estructura:
C G )\19)\2
-1
9)\19%:::
es decir? codificamos con la sucla;e \1? decodificamos con \2 > ;ol;emos a codificar con \1. (a
cla;e resultante es la concatenacin de \1 > \2? con una longitud de 112 its.
2.$. Algoritmo IEA
)l algoritmo +4)A 9+nternational 4ata )ncr>ption Algorit=m: data de 1332. #raa8a con lo&ues de
-" its de longitud > emplea una cla;e de 121 its. Como en el caso de 4)S? se usa el mismo
algoritmo tanto para cifrar como para descifrar.
-11 -
Algoritmos de Criptografa
+4)A es un algoritmo astante seguro? > =asta a=ora se =a mostrado resistente a multitud de
ata&ues? entre ellos el criptoanlisis diferencial. Su longitud de cla;e =ace imposile en la prctica
un ata&ue por la fuerAa ruta como se poda =acer en el 4)S.
Como ocurre con todos los algoritmos sim!tricos de cifrado por lo&ues? +4)A se asa en los
conceptos de confusin > difusin? =aciendo uso de las siguientes operaciones elementales:
D.'.
Suma mdulo 2
1-
.
Producto mdulo 2
1-
] 1.
2igura 2.$.- Algoritmo de cifrado +4)A
)l algoritmo +4)A consta de oc=o rondas. 4i;idiremos el lo&ue D a codificar? de -" its? en
cuatro partes D1? D2? D3 > D" de 1- its. 4enominaremos Li a cada una de las $2 sucla;es de 1-
its &ue ;amos a necesitar. (as operaciones &ue lle;aremos a cao? > &ue se pueden oser;ar en la
figura 2.$? en cada ronda son las siguientes:
1. %ultiplicar D1 por L1.
2. Sumar D2 con L2.
3. Sumar D3 con L3.
". %ultiplicar D" por L".
$. <acer un D.' entre los resultados del paso
1 > el paso 3.
-. <acer un D.' entre los resultados del paso
2 > el paso ".
/. %ultiplicar el resultado del paso $ por L$.
1. Sumar los resultados de los pasos - > /.
3. %ultiplicar el resultado del paso 1 por L-.
15. Sumar los resultados de los pasos / > 3.
11. <acer un D.' entre los resultados de los
pasos 1 > 3.
12. <acer un D.' entre los resultados de los
pasos 3 > 3.
13. <acer un D.' entre los resultados de los
pasos 2 > 15.
1". <acer un D.' entre los resultados de los
pasos " > 15.
(a salida de cada iteracin sern los cuatro su-lo&ues otenidos en los pasos 11? 12? 13 > 1"? &ue
sern la entrada del siguiente ciclo? en el &ue emplearemos las siguientes seis sucla;es? =asta un
total de "1. Al final de todo intercamiaremos los dos lo&ues centrales.
-12 -
D
1
D
2
D
3
D
"
D
1
D
2
D
3
D
"
Algoritmos de Criptografa
4espu!s de la octa;a iteracin? se realiAa la siguiente transformacin:
1. %ultiplicar D1 por L"3.
2. Sumar D2 con L$5.
3. Sumar D3 con L$1.
". %ultiplicar D" por L$2.
(as primeras oc=o sucla;es se calculan di;idiendo la cla;e de entrada en lo&ues de 1- its. (as
siguientes oc=o se calculan rotando la cla;e de entrada 2$ its a la iA&uierda > ;ol;iendo a di;idirla?
> as sucesi;amente.
(as sucla;es necesarias para descifrar se otienen camiando de orden las Li > calculando sus
in;ersas para la suma o la multiplicacin? seg7n la tala 2.1. Puesto &ue 2
1-
] 1 es un n7mero primo?
nunca podremos otener cero como producto de dos n7meros? por lo &ue no necesitamos
representar dic=o ;alor. Cuando estemos calculando productos? utiliAaremos el cero para eBpresar el
n7mero 2
1-
Sun uno seguido de 1- cerosS.
#ala 2.1: Sucla;es empleadas en el algoritmo +4)A
2.%. El algoritmo Ri&ndael 'AE!(
)s considerado el sucesor de 4)S. )ste algoritmo se adopt oficialmente en octure del 2555 como
nue;o )stndar A;anAado de Cifrado 9A)S: por el *+S# 9*ational +nstitute for Standards and
#ec=nolog>: para su empleo en aplicaciones criptogrficas.
Sus autores son dos? los elgas @oan 4aemen > 6incent 'i8men? de a= su nomre 'i8ndael. #iene
como peculiaridad &ue todo el proceso de seleccin? re;isin > estudio tanto de este algoritmo como
de los restantes candidatos? se efectu de forma p7lica > aierta? por lo &ue? toda la comunidad
criptogrfica mundial =a participado en su anlisis? lo cual con;ierte a 'i8ndael en un algoritmo
perfectamente digno de la confianAa de todos.
A)S es un sistema de cifrado por lo&ues? diseJado para mane8ar longitudes de cla;e > de lo&ue
;ariales? amas comprendidas entre los 121 > los 2$- its.
A)S es un algoritmo &ue se asa en aplicar un n7mero determinado de rondas a un ;alor intermedio
&ue se denomina estado. 4ic=o estado puede representarse mediante una matriA rectangular de
>tes? &ue posee cuatro filas? > * columnas. As? por e8emplo? si nuestro lo&ue tiene 1-5 its
9tala 2.2:? * ser igual a $.
-13 -
Algoritmos de Criptografa
a5?5 a5?1 a5?2 a5?3 a5?"
a1?5 a1?1 a1?2 a1?3 a1?"
a2?5 a2?1 a2?2 a2?3 a2?"
a3?5 a3?1 a3?2 a3?3 a3?"
#ala 2.2: )8emplo de matriA de estado con *G$ 91-5 its:.
(a cla;e tiene una estructura anloga a la del estado? > se representar mediante una tala con
cuatro filas > *\ columnas. Si nuestra cla;e tiene? por e8emplo? 121 its? *\ ser igual a " 9tala 2.3:.
\5?5 \5?1 \5?2 \5?3
\1?5 \1?1 \1?2 \1?3
\2?5 \2?1 \2?2 \2?3
\3?5 \3?1 \3?2 \3?3
#ala 2.3: )8emplo de cla;e con *\G" 9121 its:.
)l lo&ue &ue se pretende cifrar o descifrar se traslada directamente >te a >te sore la matriA de
estado? siguiendo la secuencia a5?5? a1?5? a2?5? a3?5? a5?1R? > anlogamente? los >tes de la cla;e se
copian sore la matriA de cla;e en el mismo orden? a saer? \5?5? \1?5? \2?5? \3?5? \5?1R.
Siendo % el lo&ue &ue &ueremos cifrar? > S la matriA de estado? el algoritmo A)S con n rondas
&ueda como sigue:
1. Calcular M5?M1? RMn sucla;es a partir de la cla;e M.
2. S 0 M5
3. Para i G 1 =asta n =acer
". Aplicar ronda i-!sima del algoritmo con la sucla;e Mi.
)l algoritmo de descifrado consistir en aplicar las in;ersas de cada una de las funciones en el
orden contrario? > utiliAar los mismos Mi &ue en el cifrado? slo &ue comenAando por el 7ltimo.
)s un algoritmo resistente al criptoanlisis tanto lineal como diferencial > uno de los ms seguros en
la actualidad >a &ue para recuperar la cla;e a partir de un par teBto cifrado-teBto claro =a> &ue
realiAar una 7s&ueda eB=austi;a.
2.+.1. ,as !ondas de &$S
Puesto &ue A)S permite emplear diferentes longitudes tanto de lo&ue como de cla;e? el n7mero de
rondas re&uerido en cada caso es ;ariale. )n la tala 2." se especifica cuantas rondas son
necesarias en funcin de * > *\.
*G" 9121 its: *G- 9132 its: *G1 92$- its:
*\G" 9121 its: 15 12 1"
*\G- 9132 its: 12 12 1"
*\G1 92$- its: 1" 1" 1"
#ala 2.": *7mero de rondas para A)S en funcin de los tamaJos de cla;e > lo&ue.
Siendo S la matriA de estado? > Mi la sucla;e correspondiente a la ronda i-!sima? cada una de las
rondas posee la siguiente estructura:
1. S 0>teSu9S:
2. S 4esplaAar2ila9S:
3. S %eAclarColumnas9S:
". S Mi S
-1" -
Algoritmos de Criptografa
)stas cuatro funciones estn diseJadas para proporcionar resistencia frente a criptoanlisis lineal >
diferencial. Cada una de las funciones tiene un propsito:
2unciones 4esplaAar2ila > %eAclarColumnas permiten otener un alto ni;el de difusin a
lo largo de ;arias rondas.
2uncin 0>teSu consiste en la aplicacin paralela de s-ca8as.
(a capa de adicin de cla;e es un simple or-eBclusi;o entre el estado intermedio > la
sucla;e correspondiente a cada ronda.
(a 7ltima ronda es igual a las anteriores? pero eliminando el paso 3.
Funcin ByteSub
(a transformacin 0>teSu es una sustitucin no lineal &ue se aplica a cada >te de la matriA de
estado? mediante una s-ca8a 1H1 in;ertile? &ue se otiene componiendo dos transformaciones:
1. Cada >te 92
1
: genera el polinomio irreducile m9B: G B
1
]B
"
]B
3
]B]1? > sustituido por su
in;ersa multiplicati;a. )l ;alor cero &ueda inalterado.
2. 4espu!s se aplica la siguiente transformacin afn en ,292:? siendo B5? B1? R? B/ los its del
>te correspondiente? e >5? >1? R ? >/ los del resultado:

5
1
1
5
5
5
1
1
H
1 1 1 1 1 5 5 5
5 1 1 1 1 1 5 5
5 5 1 1 1 1 1 5
5 5 5 1 1 1 1 1
1 5 5 5 1 1 1 1
1 1 5 5 5 1 1 1
1 1 1 5 5 5 1 1
1 1 1 1 5 5 5 1
/
-
$
"
3
2
1
5
/
-
$
"
3
2
1
5
&
&
&
&
&
&
&
&
'
'
'
'
'
'
'
'
(a funcin in;ersa de 0>teSu sera la aplicacin de la in;ersa de la s-ca8a correspondiente a cada
>te de la matriA de estado.
Funcin DesplazarFila
)sta transformacin consiste en desplaAar a la iA&uierda cclicamente las filas de la matriA de
estado. Cada fila fi se desplaAa un n7mero de posiciones ci diferente. %ientras &ue c5 siempre es
igual a cero 9esta fila siempre permanece inalterada:? el resto de ;alores ;iene en funcin de * > se
refle8a en la tala 2.$.
* c1 c2 c3
" 1 2 3
- 1 2 3
1 1 3 "
#ala 2.$: 6alores de ci seg7n el tamaJo de lo&ue *
(a funcin in;ersa de 4esplaAar2ila ser? o;iamente? un desplaAamiento de las filas de la matriA
de estado el mismo n7mero de posiciones &ue en la tala 2.$? pero a la derec=a.
-1$ -
Algoritmos de Criptografa
Funcin MezclarColumnas
Para esta funcin? cada columna del ;ector de estado se considera un polinomio cu>os coeficientes
pertenecen a ,2921: > se multiplica mdulo B
"
] 1 por:
c9B: G 53B
"
] 51B
2
] 51B ] 52
donde 53 es el ;alor =eBadecimal &ue se otiene concatenando los coeficientes inarios del
polinomio correspondiente en ,2921:? en este caso 55555511? o sea? B]1? > as sucesi;amente.
(a in;ersa de %eAclarColumnas se otiene multiplicando cada columna de la matriA de estado por
el polinomio:
d9B: G 50B
"
] 54B
2
] 53B ] 5)
2.+.2. Clculo de las Subcla-es
(as diferentes sucla;es Mi se deri;an de la cla;e principal M mediante el uso de dos funciones: una
de eBpansin > otra de seleccin. Siendo n el n7mero de rondas &ue se ;an a aplicar? la funcin de
eBpansin permite otener? a partir del ;alor de M? una secuencia de "H9n]1:H* >tes. (a seleccin
simplemente toma consecuti;amente de la secuencia otenida lo&ues del mismo tamaJo &ue la
matriA de estado? > los ;a asignando a cada Mi.
Sea M9i: un ;ector de >tes de tamaJo "H*\? conteniendo la cla;e? > sea C9i: un ;ector de *H9n]1:
registros de " >tes? siendo n el n7mero de rondas. (a funcin de eBpansin tiene dos ;ersiones?
seg7n el ;alor de *\:
a: Si *\ ^ -:
1. Para i desde 5 =asta *\ - 1 =acer
2. C9i: 9M9" H i:? M9" H i ] 1:? M9" H i ] 2:? M9" H i ] 3::
3. Para i desde *\ =asta * H 9n ] 1: =acer
". tmp C9i - 1:
$. Si i mod *\ G 5
-. tmp Su9'ot9tmp:: '9i_*\:
/. C9i: C9i - *\: tmp
: Si *\ ` -:
1. Para i desde 5 =asta *\ - 1 =acer
2. C9i: 9M9" H i:? M9" H i ] 1:? M9" H i ] 2:? M9" H i ] 3::
3. Para i desde *\ =asta * H 9n ] 1: =acer
". tmp C9i - 1:
$. Si i mod *\ G 5
-. tmp Su9'ot9tmp:: 'c9i_*\:
/. Si i mod *\ G "
1. tmp Su9tmp:
3. C9i: C9i - *\: tmp
)n los algoritmos anteriores? la funcin Su de;uel;e el resultado de aplicar la s-ca8a de A)S a cada
uno de los >tes del registro de cuatro &ue se le pasa como parmetro. (a funcin 'ot desplaAa a la
iA&uierda una posicin los >tes del registro? de tal forma &ue si le pasamos como parmetro el
;alor 9a? ? c? d: nos de;uel;e 9? c? d? a:. 2inalmente? 'c98: es una constante definida de la siguiente
forma:
'c98: G 9'98:? 5? 5? 5:
Cada '9i: es el elemento de ,292
1
: correspondiente al ;alor B
9i-1:
.
-1- -
Algoritmos de Criptografa
2.). Modos de *p. para Algoritmos de Cifrado por +loques
)n primer lugar? independientemente del m!todo empleado para codificar aplicando cifrados por
lo&ues a mensa8es de gran longitud? =emos de tener en cuenta lo &ue ocurre cuando dic=a longitud
no es un m7ltiplo eBacto del tamaJo de lo&ue. )n ese caso se =a de aJadir informacin al final
para &ue s lo sea.
)l mecanismo ms sencillo consiste en rellenar con ceros el 7ltimo lo&ue &ue se codifica. )l
prolema a=ora consiste en saer cuando se descifra por donde =a> &ue cortar. (o &ue se suele
=acer es aJadir como 7ltimo >te del 7ltimo lo&ue el n7mero de >tes &ue se =an aJadido 9;er
figura 2.-:.
2igura 2.-: 'elleno 9padding: de los >tes del 7ltimo lo&ue al emplear un algoritmo de
cifrado por lo&ues.
)n segundo lugar? como =emos comentado? los algoritmos sim!tricos encriptan lo&ues de teBto
aplicando cifrados de lo&ues. )l tamaJo de los lo&ues puede ser constante o ;ariale seg7n el tipo
de algoritmo. #ienen " formas de funcionamiento:
2...1. Modo $C"
)l modo )C0 9)lectronic Codeoo\: es el m!todo ms sencillo. Simplemente se sudi;ide la
cadena &ue se &uiere codificar en lo&ues del tamaJo adecuado > se cifran todos ellos empleando la
misma cla;e? resumiendo? se encriptan los lo&ues de teBto por separado.
!enta"as:
$ Permite codificar los lo&ues independientemente de su orden? lo cual es adecuado para
codificar ases de datos o fic=eros en los &ue se re&uiera un acceso aleatorio.
$ #ami!n es resistente a errores? pues si uno de los lo&ues sufriera una alteracin? el resto
&uedara intacto.
Des(enta"as:
$ Si el mensa8e presenta patrones repetiti;os? el teBto cifrado tami!n los presentar? > eso es
peligroso? sore todo cuando se codifica informacin mu> redundante 9como fic=eros de
teBto:? o con patrones comunes al inicio > final 9como el correo electrnico:. 2rgil
mediante ata&ue estadstico.
-1/ -
Algoritmos de Criptografa
$ .tro riesgo astante importante &ue presenta el modo )C0 es el de la sustitucin de
lo&ues. )l atacante puede camiar un lo&ue sin ma>ores prolemas? > alterar los
mensa8es incluso desconociendo la cla;e > el algoritmo empleados. Simplemente se
escuc=a una comunicacin de la &ue se conoAca el contenido? como por e8emplo una
transaccin ancaria a nuestra cuenta corriente. (uego se escuc=an otras comunicaciones >
se sustitu>en los lo&ues correspondientes al n7mero de cuenta del eneficiario de la
transaccin por la ;ersin codificada de nuestro n7mero.
2...2. Modo C"C
)n el modo C0C 9Cip=er 0oo\ C=aining %ode:? los lo&ues de criptograma se relacionan entre
ellos mediante funciones .'-)DC(IS+6A. Para ello? incorpora un mecanismo de
retroalimentacin en el cifrado por lo&ues. )sto significa &ue la codificacin de lo&ues anteriores
condiciona la codificacin del lo&ue actual? por lo &ue ser imposile sustituir un lo&ue
indi;idual en el mensa8e cifrado. )sto se consigue efectuando una operacin or-eBclusi;a entre el
lo&ue del mensa8e &ue &ueremos codificar > el 7ltimo criptograma otenido 9;er figura 2./:.
2igura 2./: %odo de operacin C0C.
Pero? dos mensa8es id!nticos se codificarn de la misma forma usando el modo C0C? por lo &ue se
emplea un ;ector de inicialiAacin? como lo&ue inicial de la transmisin. )ste ;ector ser
descartado en destino? pero garantiAa &ue siempre los mensa8es se codifi&uen de manera diferente?
aun&ue tengan partes comunes.
Para decodificar se in;ierte el proceso
2...3. Modo C#"
)l modo de operacin C20 9Cip=er 2eedac\ %ode: permitir codificar la informacin en unidades
inferiores al tamaJo del lo&ue? lo cual permite apro;ec=ar totalmente la capacidad de transmisin
del canal de comunicaciones con ma>or seguridad. 'ealiAa una or-eBclusi;a entre caracteres o its
aislados del teBto > las salidas del algoritmo. )l algoritmo utiliAa como entrada los criptogramas.
2igura 2.1: )s&uema del modo de operacin C20.
Para descifrar asta con seguir proceso in;erso.
-11 -
Algoritmos de Criptografa
2.../. Modo O#"
)l modo de operacin .20 9.utput 2eed0ac\ %ode:. Al igual &ue el C20? se realiAa una or-
eBclusi;a entre caracteres o its aislados del teBto > las salidas del algoritmo. Pero !ste utiliAa como
entradas sus propias salidas? por lo tanto no depende del teBto? es un generador de n7meros
aleatorios.
2igura 2.3: )s&uema del modo de operacin .20.
-13 -
Algoritmos de Criptografa
Criptografa de Cla;e P7lica
Algoritmos Asimtricos de Cifrado
(os algoritmos de cla;e p7lica? o algoritmos asim!tricos? son empleados en redes de comunicacin
inseguras 9+nternet:. +ntroducidos por C=itfield 4iffie > %artin <ellman a mediados de los aJos /5?
su no;edad fundamental con respecto a la criptografa sim!trica es &ue las cla;es no son 7nicas?
sino &ue forman pares.
Se asan en general en plantear al atacante prolemas matemticos difciles de resol;er. )l ms
popular por su sencilleA es 'SA? &ue =a sore;i;ido a multitud de ata&ues? si ien necesita una
longitud de cla;e considerale. .tros algoritmos son los de )l,amal > 'ain.
(os algoritmos asim!tricos emplean generalmente longitudes de cla;e muc=o ma>ores &ue los
sim!tricos. Adems? la comple8idad de clculo &ue comportan estos 7ltimos los =ace
consideralemente ms lentos &ue los algoritmos de cifrado sim!tricos. Por ello? normalmente los
m!todos asim!tricos se emplean 7nicamente para codificar la cla;e de sesin 9sim!trica: de cada
mensa8e o transaccin particular.
".1. Aplicaciones de los Algoritmos Asim,tricos
(os algoritmos asim!tricos poseen dos cla;es diferentes en lugar de una? denominadas cla;e
pri;ada > cla;e p7lica. Ina de ellas se emplea para codificar? mientras &ue la otra se usa para
decodificar. Para &ue estos criptosistemas sean seguros tami!n =a de cumplirse &ue a partir de una
de las cla;es resulte eBtremadamente difcil calcular la otra.
Ina de las aplicaciones inmediatas de estos algoritmos es el cifrado de la informacin sin tener
&ue transmitir la cla;e de decodificacin? lo cual permite su uso en canales inseguros.
)8emplo:
Supongamos &ue A &uiere en;iar un mensa8e a 0 9figura 3.1:. Para ello solicita a 0 su cla;e p7lica
MP . A genera entonces el mensa8e cifrado )MP 9m:. Ina ;eA =ec=o esto 7nicamente &uien posea la
cla;e Mp aen nuestro e8emplo? 0a podr recuperar el mensa8e original m.
)n este tipo de aplicacin? la cla;e &ue se =ace p7lica es a&uella &ue permite codificar los
mensa8es? mientras &ue la cla;e pri;ada es a&uella &ue permite descifrarlos.

2igura 3.1: #ransmisin de informacin empleando algoritmos asim!tricos.
-25 -
Algoritmos de Criptografa
.tra aplicacin de los algoritmos asim!tricos es la autentificacin de mensajes &ue nos permiten
otener una firma digital a partir de un mensa8e. 4ic=a firma es muc=o ms pe&ueJa &ue el mensa8e
original? > es mu> difcil encontrar otro mensa8e &ue de lugar a la misma.
)8emplo:
Supongamos &ue A recie un mensa8e m de 0 > &uiere comproar su autenticidad. Para ello 0
genera un resumen del mensa8e r9m: 9;er figura 3.2: > lo codifica empleando la cla;e de cifrado?
&ue en este caso ser pri;ada.

2igura 3.2: Autentificacin de informacin empleando algoritmos asim!tricos.
(a cla;e de descifrado se =ar =ec=o p7lica pre;iamente? > dee estar en poder de A. 0 en;a
entonces a A el criptograma correspondiente a r9m:. A puede a=ora generar su propia r59m: >
compararla con el ;alor r9m: otenido del criptograma en;iado por 0. Si coinciden? el mensa8e ser
aut!ntico? puesto &ue el 7nico &ue posee la cla;e para codificar es precisamente 0.
)n este caso la cla;e &ue se emplea para cifrar es la cla;e pri;ada.
".2. El Algoritmo R!A
4ee su nomre a sus tres in;entores: 'onald 'i;est? Adi S=amir > (eonard Adleman. (as
primeras ;ersiones de P,P lo incorporaan como m!todo de cifrado > firma digital. Se le tiene
como uno de los algoritmos asim!tricos ms seguros.
'SA se asa en la dificultad para factoriAar grandes n7meros. (as cla;es p7lica > pri;ada se
calculan a partir de un n7mero &ue se otiene como producto de dos primos grandes. )l atacante se
enfrentar? si &uiere recuperar un teBto claro a partir del criptograma > la cla;e p7lica? a un
prolema de factoriAacin.
)l par de cla;es es suficiente para codificar > autentificar >a &ue sir;en tanto para cifrar como para
descifrar? de manera &ue si empleamos una para codificar? la otra permitir decodificar > ;ice;ersa.
Su m!todo se asa en:
l. Seleccionar dos n7meros primos grandes? p > q 9generalmente ma>ores &ue 15
155
:.
2. Calcular nG pH& > )G9p-l:H9&-l:.
3. Seleccionar un n7mero primo con respecto a )* llamndolo d+
". )ncontrar e tal &ue eBdG 1 mod A
Con estos parmetros calculados por adelantado? estamos listos para comenAar el cifrado.
4i;idimos el teBto normal 9considerado como una cadena de its: en lo&ues? para &ue cada
mensa8e de teBto normal? P? caiga en el inter;alo 5ZPZn? )sto puede =acerse agrupando el teBto
normal en lo&ues de \ its? donde \ es el entero ms grande para el &ue 2
\
Zn es ;erdad.
-21 -
Algoritmos de Criptografa
Para cifrar un mensa8e? P? calculamos CGP
e
9mod n:. Para descifrar C? calculamos PGC
d
9mod n:.
Puede demostrarse &ue? para todos los P del inter;alo especificado? las funciones de cifrado >
descifrado son in;ersas. Para e8ecutar el cifrado? se necesitan e > n. Para lle;ar a cao el descifrado
se re&uieren d > n. Por tanto? la cla;e p7lica consiste en el par 9e?n: > la cla;e pri;ada consiste en
9d?n:.
4e acuerdo con los descuridores del 'SA? la factoriAacin de un n7mero de 255 dgitos re&uiere "
mil millones de aJos de tiempo de cmputoY la factoriAacin de un n7mero de $55 dgitos re&uiere
15
2$
aJos. )n amos casos se supone el me8or algoritmo conocido > un ordenador con un tiempo de
instruccin de 1 microsegundo. Aun si los ordenadores contin7an aumentando su ;elocidad? pasarn
siglos antes de &ue sea factile la factoriAacin de un n7mero de $55 dgitos? > entonces
simplemente se puede escoger un p > un & toda;a ms grandes.
In e8emplo del algoritmo 'SA se puede ;er en la figura siguiente:
Para este e8emplo =emos seleccionado pG3 > &Gll? dando nG33 > AG25. In ;alor adecuado de d es
dG/? puesto &ue / > 25 no tienen factores comunes. Con estas selecciones? e puede encontrarse
resol;iendo la ecuacin /eG19mod 25:? &ue produce eG3. )l teBto cifrado C? de un mensa8e de teBto
normal? P? se da por la regla CGP
3
9mod 33:. )l teBto cifrado lo descifra el receptor de acuerdo con
la regla PGC
/
9mod 33:. )n la figura se muestra como e8emplo el cifrado del teBto normal
,su)anne,+
4ado &ue los n7meros primos escogidos para el e8emplo son tan pe&ueJos? P dee ser menor &ue
33? por lo &ue cada lo&ue de teBto normal puede contener slo un carcter. )l resultado es un
cifrado por sustitucin monoalfa!tica? no mu> impresionante. )n camio? si =ui!ramos
seleccionado p > & del orden de 15
155
podramos tener n del orden de 15
255
? para &ue cada lo&ue
pueda ser de =asta --" its u 13 caracteres de 1 its? contra 1 caracteres para el 4)S. Sin emargo?
el algoritmo 'SA es demasiado lento para poder cifrar grandes ;ol7menes de datos? por lo cual
suele usarse para distriuir cla;es de sesin de una sola ;eA para su uso con 4)S? +4)A u otros
algoritmo s seme8antes.
3.2.1. Seguridad del &lgorit'o !S&
Aparte de factoriAar n? podramos intentar calcular b 9n: directamente? o proar por la fuerAa ruta
tratando de encontrar la cla;e pri;ada. Amos ata&ues son ms costosos computacionalmente &ue la
propia factoriAacin de n.
3.2.2. 0ulnerabilidades de !S&
Aun&ue el algoritmo 'SA es astante seguro conceptualmente? eBisten algunos puntos d!iles en la
forma de utiliAarlo &ue pueden ser apro;ec=ados por un atacante:
-22 -
Algoritmos de Criptografa
- -la(es Demasiado -ortas
Actualmente se considera segura una cla;e 'SA con una longitud de n de al menos /-1 its? si ien
se recomienda el uso de cla;es no inferiores a 152" its.
4eeremos escoger la longitud de la cla;e en funcin del tiempo &ue &ueramos &ue nuestra
informacin permaneAca en secreto. Ina cla;e de 152" its parece demasiado corta como para
proteger informacin por ms de unos pocos aJos.
- .taques de /ntermediario
)l ata&ue de intermediario 9figura 3.3: puede darse con cual&uier algoritmo asim!trico.
Supongamos &ue A &uiere estalecer una comunicacin con 0? > &ue C &uiere espiarla. Cuando A
le solicite a 0 su cla;e p7lica M0? C se interpone? oteniendo la cla;e de 0 > en;iando a A una
cla;e falsa \C creada por !l. Cuando A codifi&ue el mensa8e? C lo interceptar de nue;o?
decodificndolo con su cla;e propia > empleando M0 para recodificarlo > en;iarlo a 0. *i A ni 0
son conscientes de &ue sus mensa8es estn siendo interceptados.
2igura 3.3: Ata&ue de intermediario para un algoritmo asim!trico.
(a 7nica manera de e;itar esto consiste en asegurar a A &ue la cla;e p7lica &ue tiene de 0 es
aut!ntica. Para ello estn los certificados de confianAa? &ue certifican la autenticidad de la cla;e.
- .taques de #e&to en -laro Escogido
)Biste un ata&ues a 'SA eBplotando la posiilidad de &ue un usuario codifi&ue > firme un 7nico
mensa8e empleando el mismo par de cla;es. Para &ue el ata&ue surta efecto? la firma dee =acerse
codificando el mensa8e completo? no el resultado de una funcin resumen sore !l. Por ello se
recomienda &ue las firmas digitales se lle;en a cao siempre sore una funcin resumen del
mensa8e? nunca sore el mensa8e en s.
- 0irmar ' -odificar
*unca se dee firmar un mensa8e despu!s de codificarlo >a &ue eBisten ata&ues &ue apro;ec=an este
=ec=o.
".". *tros Algoritmos Asim,tricos
3.3.1. &lgorit'o de (iffie12ell'an
)s un algoritmo asim!trico? asado en el prolema de 4iffie-<ellman? &ue se emplea
fundamentalmente para acordar una cla;e com7n entre dos interlocutores? a tra;!s de un canal de
comunicacin inseguro. (a ;enta8a de este sistema es &ue no son necesarias cla;es p7licas en el
sentido estricto? sino una informacin compartida por los dos comunicantes.
Sean A > 0 los interlocutores en cuestin. )n primer lugar? se calcula un n7mero primo p > un
generador c de L
H
p? con 2 ^ c ^ p-2. )sta informacin es p7lica > conocida por amos. )l
algoritmo &ueda como sigue:
-23 -
Algoritmos de Criptografa
1. A escoge un n7mero aleatorio B? comprendido entre 1 > p-2 > en;a a 0 el ;alor c
B
9mod p:
2. 0 escoge un n7mero aleatorio >? como en el paso anterior? en;a a A el ;alor c
>
9mod p:
3. 0 recoge c
B
> calcula M G 9c
B
:
>
9mod p:.
". A recoge c
>
> calcula M G 9c
>
:
B
9mod p:.
Puesto &ue B e > no ;ia8an por la red? al final A > 0 acaan compartiendo el ;alor de M? sin &ue
nadie &ue capture los mensa8es transmitidos pueda repetir el clculo.
3.3.2. &lgorit'o de $l%a'al
2ue diseJado en un principio para producir firmas digitales? pero posteriormente se eBtendi
tami!n para codificar mensa8es. Se asa en el prolema de los logaritmos discretos? &ue est
ntimamente relacionado con el de la factoriAacin? > en el de 4iffie-<ellman.
Para generar un par de cla;es? se escoge un n7mero primo n > dos n7meros aleatorios p > B menores
&ue n. Se calcula entonces
> G p
B
9mod n:
(a cla;e p7lica es 9p? >? n:? mientras &ue la cla;e pri;ada es B.
)scogiendo n primo? garantiAamos &ue sea cual sea el ;alor de p? el con8unto Vp? p
2
? p
3
RW es una
permutacin del con8unto V1? 2?R n-1W lo suficientemente grande.
Firmas Digitales de ElGamal
Para firmar un mensa8e m asta con escoger un n7mero \ aleatorio? tal &ue mcd9\? n-1: G1? >
calcular
a G p
\
9mod n:
G 9m - Ba:\
-1
9mod 9n - 1::
(a firma la constitu>e el par 9a? :. )n cuanto al ;alor \? dee mantenerse en secreto > ser diferente
cada ;eA. (a firma se ;erifica comproando &ue
>
a
a

G p
m
9mod n:
Codificacin de ElGamal
Para codificar el mensa8e m se escoge primero un n7mero aleatorio \ primo relati;o con 9n-1:? &ue
tami!n ser mantenido en secreto. Calculamos entonces las siguientes eBpresiones
a G p
\
9mod n:
G >
\
m 9mod n:
)l par 9a? : es el teBto cifrado? de dole longitud &ue el teBto original. Para decodificar se calcula
m G H a
-B
9mod n:
3.3.3. &lgorit'o de !abin
)l sistema de cla;e asim!trica de 'ain se asa en el prolema de calcular races cuadradas modulo
un n7mero compuesto. )ste prolema se =a demostrado &ue es e&ui;alente al de la factoriAacin de
dic=o n7mero.
)n primer lugar escogemos dos n7meros primos? p > &? amos congruentes con 3 mdulo " 9los dos
7ltimos its a 1:. )stos primos son la cla;e pri;ada. (a cla;e p7lica es su producto? n 1 pq+
Para codificar un mensa8e m? simplemente se calcula
-2" -
Algoritmos de Criptografa
c G m
2
9mod n:
(a decodificacin del mensa8e se =ace calculando lo siguiente:
m1 G c
9p]1: _ "
9mod p:
m2 G 9p - c
9p]1: _ "
: 9mod p:
m3 G c
9&]1: _ "
9mod &:
m" G 9& - c
9&]1: _ "
: 9mod &:
(uego se escogen a > tales &ue a G &9&
-1
9mod p:: > b G p9p
-1
9mod &::. (os cuatro posiles
mensa8es originales son
ma G 9am1 ] m3: 9mod n:
m G 9am1 ] m": 9mod n:
mc G 9am2 ] m3: 9mod n:
md G 9am2 ] m": 9mod n:
4esgraciadamente? no eBiste ning7n mecanismo para decidir cul de los cuatro es el aut!ntico? por
lo &ue el mensa8e deer incluir alg7n tipo de informacin para &ue el receptor pueda distinguirlo
de los otros.
3.3./. &lgorit'o (S&
)l algoritmo 4SA 94igital Signature Algorit=m: es una parte el estndar de firma digital 4SS
94igital Signature Standard:. )ste algoritmo? propuesto por el *+S#? data de 1331? es una ;ariante
del m!todo asim!trico de )l,amal.
Creacin del par clae p!blica"clae priada
)l algoritmo de generacin de cla;es es el siguiente:
1. Seleccionar un n7mero primo q tal &ue 2
1$3
Z & Z 2
1-5
.
2. )scoger t tal &ue 5 ^ t ^ 1? > seleccionar un n7mero primo p tal &ue 2
$11]-"t
Z p Z 2
$12]-"t
? >
&ue adems & sea di;isor de 9p - 1:.
3. Seleccionar un elemento g L
H
p > calcular c G g
9p-1:_&
mod p.
". Si c G 1 ;ol;er al paso 3.
$. Seleccionar un n7mero entero aleatorio a? tal &ue 1 ^ a ^ & - 1
-. Calcular > G c
a
mod p.
/. (a cla;e p7lica es 9p? &? c? >:. (a cla;e pri;ada es a.
Generacin y erificacin de la firma
Siendo = la salida de una funcin resumen sore el mensa8e m? la generacin de una firma se =ace
mediante el siguiente algoritmo:
1. Seleccionar un n7mero aleatorio \ tal &ue 5 Z \ Z &.
2. Calcular r G 9c
\
mod p: mod &.
3. Calcular \
-1
mod &.
". Calcular s G \
-1
9= ] ar: mod &.
$. (a firma del mensa8e m es el par 9r? s:.
)l destinatario efectuar las siguientes operaciones? suponiendo &ue conoce la cla;e p7lica 9p? &?
c ? >:? para ;erificar la autenticidad de la firma:
1. 6erificar &ue 5 Z r Z & > 5 Z s Z &. )n caso contrario? rec=aAar la firma.
2. Calcular el ;alor de = a partir de m.
3. Calcular q s mod
1
= .
". Calcular u1 G H = mod & > u2 G H r mod &.
-2$ -
Algoritmos de Criptografa
$. Calcular ; G 9c
u1
>
u2
mod p: mod &.
-. Aceptar la firma si > slo si ; G r.
-2- -
+i-liograf.a
(as siguientes paginas [e contienen informacin sore criptografa > sus algoritmos:
=ttp:__[[[.toptutoriales.com 9;isitado 5-_12_52:
=ttp:__rincon&ue;edo.iespana.es_rincon&ue;edo_Criptografia 9;isitado 5-_12_52:
=ttp:__[[[di.u8aen.es_dmlucena 9;isitado 5-_12_52:
Apuntes de la asignatura ASS4 de $E curso
Apuntes de 'edes de la asignatura de "E curso
=ttp:__&uetAal.uis.edu.co_ciee-=tml_iliotecae;irtual_criptografia_cripto.pdf 9;isitado
5-_12_52:

También podría gustarte