Anda di halaman 1dari 28

Algoritmos de Criptografa

Algoritmos criptogrfic os

-1 -

Algoritmos de Criptografa

Beln M Garca Lobo

-2 -

Algoritmos de Criptografa

ndice:
Criptografa Clsica................................................................................................................4 1.1. Algoritmos Clsicos de Cifrado...................................................................................4 1.1.1. Cifrados por Sustitucin........................................................................................4 1.1.2. Cifrados Polialfa !ticos........................................................................................" 1.1.#. Cifrados de $ransposicin.....................................................................................% 1.2. &'uinas de (otores. )a &'uina *+,-&A.............................................................. 1.2.#. /tras &'uinas de (otores...................................................................................0 Cifrados por 1lo'ues...............................................................................................................2 2.1. Cifrado de producto......................................................................................................2 2.1.1. (edes de 3eistel...................................................................................................14 2.1.2. Cifrados con *structura de -rupo.......................................................................14 2.1.#. Algoritmo CAS$.................................................................................................14 2.2. *l Algoritmo 5*S......................................................................................................11 2.#. 6ariantes de 5*S.......................................................................................................12 2.#.1. 5*S &7ltiple:.....................................................................................................12 2.4. Algoritmo ,5*A.........................................................................................................12 2.". *l algoritmo (i8ndael 9A*S:......................................................................................14 2.".1. )as (ondas de A*S.............................................................................................1" 2.".2. Clculo de las Su cla;es.....................................................................................1. 2.%. &odos de /p. para Algoritmos de Cifrado por 1lo'ues...........................................10 2.%.1. &odo *C1..........................................................................................................10 2.%.2. &odo C1C..........................................................................................................12 2.%.#. &odo C31...........................................................................................................12 2.%.4. &odo /31..........................................................................................................24 Algoritmos Asim!tricos de Cifrado......................................................................................21 #.1. Aplicaciones de los Algoritmos Asim!tricos.............................................................21 #.2. *l Algoritmo (SA......................................................................................................22 #.2.1. Seguridad del Algoritmo (SA............................................................................2# #.2.2. 6ulnera ilidades de (SA....................................................................................24 #.#. /tros Algoritmos Asim!tricos...................................................................................24 #.#.1. Algoritmo de 5iffie-<ellman..............................................................................24 #.#.2. Algoritmo de *l-amal........................................................................................2" #.#.#. Algoritmo de (a in.............................................................................................2" #.#.4. Algoritmo 5SA...................................................................................................2% 1i liografa.......................................................................................................................20

-# -

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 emplea a 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. 5e =ec=o? con la a>uda de los ordenadores? los mensa8es cifrados empleando estos cdigos son fcilmente descifra les? 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? de ido a 'ue son fcilmente criptoanaliAa les 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 sm olos de teBto normal. *ntre ellos ca e destacar los siguientes: Algoritmo de Csar *l algoritmo de C!sar? llamado as por'ue es el 'ue emplea a @ulio C!sar para en;iar mensa8es secretos? es uno de los algoritmos criptogrficos ms simples. Consiste en sumar # al n7mero de orden de cada letra. 5e 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 # al n7mero de orden de las letras del criptograma. *8emplo: el mensa8e ataque se con;ertira en 5C5$D<

-4 -

Algoritmos de Criptografa

Mtodos de Cifrado Monoalfabticos Sustitu>en cada letra por otra 'ue ocupa la misma posicin en un alfa eto desordenado > esta correspondencia se mantiene a lo largo de todo el mensa8e. As se consiguen tantas cla;es como posi ilidades de alfa etos =a>: +E de cla;es 2%F G 4H142% *s muc=o me8or 'ue el de @ulio Cesar > tiene ms cla;es 'ue el sistema ms utiliAado actualmente 5*S 92"% G .?2H141% cla;es:. *l problema est en cmo recordar la cla;e? es decir? el alfa eto desordenado. Para ello se utiliAa una pala ra de uso com7n 'ue permite crear? con un algoritmo conocido? el alfa eto desordenado. *l sistema es el siguiente: 1. Se usca una pala ra 9cla;e: fcil de recordar > se le 'uitan las letras duplicadas.
S*-I(,5A5 S*-I(,5A

2. Se aJaden al final de la pala ra las restantes letras del alfa eto 9sin duplicar letras:.
S*-I(,5A1C3<..................DKL

#. Se ordenan en una matriA cu>a primera fila es la pala ra cla;e


S 1 + K * C / L 3 P I < N ( @ $ , M 6 5 ) C A & D

4. *l nue;o alfa eto se lee por columnas: S1+K*C/L-3PI<N(@$,M65)CA&D *8emplo: el mensa8e ataque se con;ertira en S6S$5* As la cla;e es ms fcil de transmitir > recordar pero el sistema de prue a > ensa>o se reduce a todas las pala ras conocidas. *l sistema de criptoanlisis me8or para romper el algoritmo es el estadstico. *mpare8ando las frecuencias relati;as de aparicin de cada sm olo 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 a ecedarios 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 alfa eto. Pero? O'u! alfa etoP. In sistema ideal utiliAara como cla;e alfa etos aleatorios pero seran imposi les de recordar > transmitir. Por lo tanto se utiliAa una pala ra cla;e > una ta la de alfa etos. Cifrado de Vignere *s un e8emplo tpico de cifrado polialfa !tico 'ue de e su nom re a 1laise de 6igQnere? > 'ue data del siglo D6,.

-" -

Algoritmos de Criptografa

)a ta la es la siguiente:
a c R R B > A a A 1 C D K L 1 C 5 K L A c C 5 * L A 1 R R R R R R R R B D K L I 6 C > K L A 6 C D L L A 1 C D K

)os alfa etos forman las columnas > siempre empieAan por la letra de la ca ecera. Mtodo: 1. Se usca una pala ra cla;e fcil de recordar. 2. Se escri e la pala ra de a8o del teBto en claro? repiti!ndose tantas ;eces como sea necesario. #. Cada letra del teBto en claro se codifica con el alfa eto de la ta la marcado por la letra inferior? o sea? la letra de la cla;e 'ue corresponde. *8emplo:
C)A6*: $eBto en claro : Cla;e Criptograma A5,/S *S$/ *S C(,P$/)/-,A A5,/ SA 5,/SA5,/SA5 *615 CS 3LC<$($CK,5

*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. #. Se considera el teBto como n teBtos intercalados? cada uno es monoalfa !tico con el alfa eto 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 sm olos por otros 9no disfraAan:? sino 'ue cam ia 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 enrolla a alrededor de a'u!l. *l teBto se escri a 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 ta la de n columnas? > dar como teBto cifrado los sm olos de una columna Sordenados de arri a a a8oS concatenados con los de otra? etc. )a cla;e k se compondra del n7mero n 8unto con el orden en el 'ue se de en leer las columnas 9generalmente se escoge una pala ra como cla;e > sus letras se ordenan alfa !ticamente:.

-% -

Algoritmos de Criptografa

Por e8emplo? supongamos 'ue 'ueremos cifrar el teBto T*ste es un tra a8o para la asignatura de (edesU? con n G " > la permutacin V#? 4? 2? "? 1W >a 'ue como cla;e =emos escogido T;ideoX. Colocamos el teBto en una ta la > o tenemos:
6 1 * e a a a g r s , 2 s s t 8 r n a ( 5 # t r o a a a e * 4 e u a s t d d / " n p l i u e e

$endramos como teBto cifrado la concatenacin de las columnas #? 4? 2? " > 1 respecti;amente: T$ (/AAA * *IA S$55 SS$@( +A( +1P),I** ** AAA-( SU. *ste tipo de mecanismos de cifrado se puede criptoanaliAar efectuando un estudio estadstico so re la frecuencia de aparicin de pares > tripletas de sm olos en el lengua8e en 'ue est! escrito el teBto claro. Suponiendo 'ue conocemos n? 'ue en nuestro caso es igual a "? tenemos "F G 124 posi les cla;es. 5escifraramos el teBto empleando cada una de ellas > compro aramos si los pares > tripletas de sm olos consecuti;os 'ue ;amos o teniendo se corresponden con los ms frecuentes en castellano. 5e esa forma podremos asignarle una pro a ilidad automticamente a cada una de las posi les cla;es. Si? por el contrario? desconocemos n? asta con ir pro ando con n G 2? n G # > as sucesi;amente. *ste m!todo es astante comple8o de lle;ar a ca o manualmente? pero un ordenador puede completarlo en un tiempo ms 'ue raAona le sin demasiados pro lemas.

1.2. Mquinas de Rotores. La Mquina ENIGMA


*n el aJo 122#? un ingeniero alemn llamado Art=ur Sc=er ius patent una m'uina especficamente diseJada para facilitar las comunicaciones seguras. Se trata a de un instrumento de apariencia simple? parecido a una m'uina de escri ir. Nuien deseara codificar un mensa8e slo tena 'ue teclearlo > las letras correspondientes al mensa8e cifrado se iran iluminando en un panel. *l destinatario copia a dic=as letras en su propia m'uina > el mensa8e original apareca de nue;o.

3igura 1.1.- *s'uema de la m'uina *+,-&A

-. -

Algoritmos de Criptografa

)a cla;e la constituan las posiciones iniciales de tres tam ores 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 tam ores con contactos en su superficie > ca leados 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 imposi le de romper? presenta a una serie de de ilidades? 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 li ro de cla;es? > en;iar tres letras cuales'uiera dos ;eces? para e;itar posi les errores. *n realidad se esta a introduciendo una redundancia tal en el mensa8e 'ue permita o tener sin demasiados pro lemas la cla;e empleada. Se constru> un aparato 'ue permita descifrar los mensa8es? > se le autiA como Ciclmetro. *n 12#0 Alemania cam i el protocolo? lo cual o lig 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 radica a 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? > %4 com inaciones 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 asta a con rastrear dentro del espacio de posi les configuraciones para encontrar a'uella 'ue lle;ara a ca o la transformacin esperada. +o disponer de dic=o empare8amiento =u iera complicado enormemente el criptoanlisis? tal ;eA =asta el punto de =acerlo fracasar.

1.2.3. Otras M uinas de !otores


Adems de la m'uina alemana *+,-&A? eBistieron otros dispositi;os criptogrficos asados en rotores. )a m'uina S,-A1A? empleada por el e8!rcito norteamericano. )as m'uinas 8aponesas empleadas en la ,, -uerra &undial? 'ue se denominaron PI(P)* > (*5.

-0 -

Algoritmos de Criptografa

Cifrados por "lo ues


Como =emos podido compro ar =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 93igura 2.4:.

3igura 2.4.- 3uncionamiento 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 posi le entre el mensa8e cifrado? es decir? realiAar permutaciones: 'ue se com inan 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 esta lecemos una ta la de sustitucin completamente diferente para cada cla;e con todos los teBtos claros posi les tendremos un sistema eBtremadamente seguro. Sin em argo? dic=as ta las ocuparan muc=o en memoria? por lo 'ue seran in;ia les.

-2 -

Algoritmos de Criptografa

2.1.1. !edes de #eistel

3igura 2.1.- *structura de una red de 3eistel

&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::
Li = Ri 1 Ri = Li 1 f 9 Ri 1 ? K i : L n = L n 1 f 9 R n 1 ? K n : R n = R n 1

si i Z n

*ste tipo de estructura se denomina (ed de 3eistel? > es empleada en multitud de algoritmos? como 5*S? )ucifer? 3*A)? CAS$? 1lo[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 posi ilidad 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 \# '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 =u i!ramos empleado una cla;e de longitud do le? aumentando la seguridad del sistema. Si? por el contrario? la transformacin criptogrfica presentara estructura de grupo? esto =u iera sido e'ui;alente a cifrar el mensa8e una 7nica ;eA con una tercera cla;e? con lo 'ue no =a ramos ganado nada.

2.1.3. &lgorit'o C&ST


*mplea seis S-Ca8as de 0H#2 its. CAS$ codifica lo'ues de %4 its empleando cla;es de %4 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 =a ituales 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 ta la 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

-14 -

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 a soluto tri;ial.

3igura 2.2.- A: S-Ca8a indi;idual. B: Com inacin de 4-Ca8as

2.2. El Algoritmo

E!

*s el algoritmo sim!trico ms eBtendido mundialmente. Se asa en el algoritmo )IC,3*(? 'ue =a a sido desarrollado por ,1& a principios de los setenta? > fue adoptado como estndar por el -o ierno de los **.II. para comunicaciones no clasificadas en 12.%. *l algoritmo DES codifica lo'ues de %4 its empleando cla;es de "% its. *s una (ed de 3eistel de 1% rondas? ms dos permutaciones? una 'ue se aplica al principio 9P i: > otra 'ue se aplica al final 9Pf :? tales 'ue la segunda es la in;ersa de la primera. )a funcin f 9figura 2.#: se compone de una permutacin de eBpansin 9*:? 'ue con;ierte el lo'ue de #2 its correspondiente en uno de 40. 5espu!s realiAa un or-eBclusi;o con el ;alor M i? tam i!n de 40 its? aplica oc=o S-Ca8as de %H4 its? > efect7a una nue;a permutacin .

3igura 2.#.- *s'uema de la funcin f del algoritmo 5*S

Se calcula un total de 1% ;alores de M i 9figura 2.4:? uno para cada ronda? efectuando primero una permutacin inicial *P1 so re la cla;e de %4 its? lle;ando a ca o desplaAamientos a la iA'uierda de cada una de las dos mitades Sde 20 itsS resultantes? > realiAando finalmente una eleccin permutada 9*P2: de 40 its en cada ronda? 'ue ser la M i. )os desplaAamientos a la iA'uierda son de dos its? sal;o para las rondas 1? 2? 2 > 1%? en las 'ue se desplaAa slo un it. +tese 'ue aun'ue la cla;e para el algoritmo 5*S tiene en principio %4 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.

-11 -

Algoritmos de Criptografa

3igura 2.4.- Clculo de las Mi para el algoritmo 5*S. *P1 representa la primera eleccin permutada? 'ue slo conser;a "% its de los %4 de entrada? > *P2 representa la segunda? 'ue se 'ueda con 40 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 M i 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 1220? una empresa llamada *33 9*lectronic 3rontier 3oundation:? logr fa ricar una m'uina capaA de descifrar un mensa8e 5*S en menos de tres das. *l problema de 5*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 prue a > ensa>o: comiencen a ser opciones realistas. A pesar de ello? 5*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 5*S. 5e ellos el 'ue ca e destacar es:

2.3.1. ($S M)ltiple*


Consiste en aplicar ;arias ;eces el algoritmo 5*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-19*\19&::: es decir? codificamos con la su cla;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 I EA
*l algoritmo ,5*A 9,nternational 5ata *ncr>ption Algorit=m: data de 1222. $ra a8a con lo'ues de %4 its de longitud > emplea una cla;e de 120 its. Como en el caso de 5*S? se usa el mismo algoritmo tanto para cifrar como para descifrar.

-12 -

Algoritmos de Criptografa

,5*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 imposi le en la prctica un ata'ue por la fuerAa ruta como se poda =acer en el 5*S. Como ocurre con todos los algoritmos sim!tricos de cifrado por lo'ues? ,5*A se asa en los conceptos de confusin > difusin? =aciendo uso de las siguientes operaciones elementales: D/(. Suma mdulo 21%. Producto mdulo 21% ] 1.
D1 D2 D# D4

D1

D2

D#

D4

3igura 2.".- Algoritmo de cifrado ,5*A

*l algoritmo ,5*A consta de oc=o rondas. 5i;idiremos el lo'ue D a codificar? de %4 its? en cuatro partes D1? D2? D# > D4 de 1% its. 5enominaremos Li a cada una de las "2 su cla;es de 1% its 'ue ;amos a necesitar. )as operaciones 'ue lle;aremos a ca o? > 'ue se pueden o ser;ar en la figura 2."? en cada ronda son las siguientes: 1. &ultiplicar D1 por L1. 2. Sumar D2 con L2. #. Sumar D# con L#. 4. &ultiplicar D4 por L4. ". <acer un D/( entre los resultados del paso 1 > el paso #. %. <acer un D/( entre los resultados del paso 2 > el paso 4. .. &ultiplicar el resultado del paso " por L". 0. Sumar los resultados de los pasos % > .. 2. &ultiplicar el resultado del paso 0 por L %. 14. Sumar los resultados de los pasos . > 2. 11. <acer un D/( entre los resultados de los pasos 1 > 2. 12. <acer un D/( entre los resultados de los pasos # > 2. 1#. <acer un D/( entre los resultados de los pasos 2 > 14. 14. <acer un D/( entre los resultados de los pasos 4 > 14.

)a salida de cada iteracin sern los cuatro su - lo'ues o tenidos en los pasos 11? 12? 1# > 14? 'ue sern la entrada del siguiente ciclo? en el 'ue emplearemos las siguientes seis su cla;es? =asta un total de 40. Al final de todo intercam iaremos los dos lo'ues centrales.

-1# -

Algoritmos de Criptografa

5espu!s de la octa;a iteracin? se realiAa la siguiente transformacin: 1. &ultiplicar D1 por L42. 2. Sumar D2 con L"4. #. Sumar D# con L"1. 4. &ultiplicar D4 por L"2. )as primeras oc=o su cla;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 su cla;es necesarias para descifrar se o tienen cam iando de orden las Li > calculando sus in;ersas para la suma o la multiplicacin? seg7n la ta la 2.1. Puesto 'ue 2 1% ] 1 es un n7mero primo? nunca podremos o tener 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 21% Sun uno seguido de 1% cerosS.

$a la 2.1: Su cla;es empleadas en el algoritmo ,5*A

2.%. El algoritmo Ri&ndael 'AE!(


*s considerado el sucesor de 5*S. *ste algoritmo se adopt oficialmente en octu re del 2444 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 5aemen > 6incent (i8men? de a= su nom re (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 p7 lica > a ierta? 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 ;aria les? am as comprendidas entre los 120 > 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. 5ic=o estado puede representarse mediante una matriA rectangular de >tes? 'ue posee cuatro filas? > + columnas. As? por e8emplo? si nuestro lo'ue tiene 1%4 its 9ta la 2.2:? + ser igual a ".

-14 -

Algoritmos de Criptografa

a4?4 a1?4 a2?4 a#?4

a4?1 a1?1 a2?1 a#?1

a4?2 a1?2 a2?2 a#?2

a4?# a1?# a2?# a#?#

a4?4 a1?4 a2?4 a#?4

$a la 2.2: *8emplo de matriA de estado con + G" 91%4 its:.

)a cla;e tiene una estructura anloga a la del estado? > se representar mediante una ta la con cuatro filas > +\ columnas. Si nuestra cla;e tiene? por e8emplo? 120 its? +\ ser igual a 4 9ta la 2.#:.
\4?4 \1?4 \2?4 \#?4 \4?1 \1?1 \2?1 \#?1 \4?2 \1?2 \2?2 \#?2 \4?# \1?# \2?# \#?#

$a la 2.#: *8emplo de cla;e con +\G4 9120 its:.

*l lo'ue 'ue se pretende cifrar o descifrar se traslada directamente >te a >te so re la matriA de estado? siguiendo la secuencia a 4?4? a1?4? a2?4? a#?4? a4?1R? > anlogamente? los >tes de la cla;e se copian so re la matriA de cla;e en el mismo orden? a sa er? \ 4?4? \1?4? \2?4? \#?4? \4?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 M4?M1? RMn su cla;es a partir de la cla;e M. 2. S 1 M4 #. Para i G 1 =asta n =acer 4. Aplicar ronda i-!sima del algoritmo con la su cla;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 ;aria le. *n la ta la 2.4 se especifica cuantas rondas son necesarias en funcin de + > +\.
+\G4 9120 its: +\G% 9122 its: +\G0 92"% its: + G4 9120 its: 14 12 14 + G% 9122 its: 12 12 14 + G0 92"% its: 14 14 14

$a la 2.4: +7mero de rondas para A*S en funcin de los tamaJos de cla;e > lo'ue.

Siendo S la matriA de estado? > M i la su cla;e correspondiente a la ronda i-!sima? cada una de las rondas posee la siguiente estructura: 1. S 1>teSu 9S: 2. S 5esplaAar3ila9S: #. S &eAclarColumnas9S: 4. 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: 3unciones 5esplaAar3ila > &eAclarColumnas permiten o tener un alto ni;el de difusin a lo largo de ;arias rondas. 3uncin 1>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 su cla;e correspondiente a cada ronda. )a 7ltima ronda es igual a las anteriores? pero eliminando el paso #. Funcin ByteSub )a transformacin 1>teSu es una sustitucin no lineal 'ue se aplica a cada >te de la matriA de estado? mediante una s-ca8a 0H0 in;erti le? 'ue se o tiene componiendo dos transformaciones: 1. Cada >te 920: genera el polinomio irreduci le m9B: G B 0 ]B4 ]B# ]B]1? > sustituido por su in;ersa multiplicati;a. *l ;alor cero 'ueda inalterado. 2. 5espu!s se aplica la siguiente transformacin afn en -392:? siendo B 4? B1? R? B. los its del >te correspondiente? e >4? >1? R ? >. los del resultado:

' 4 1 ' 1 1 ' 2 1 ' # = 1 ' 4 1 ' " 4 ' 4 % 4 '.

4 4 4 1 1 1 1 & 4 1 1 4 4 4 1 1 1 &1 1 1 1 4 4 4 1 1 & 2 4 1 1 1 4 4 4 1 & # 4 H + 1 1 1 1 4 4 4 & 4 4 1 1 1 1 1 4 4 & " 1 4 1 1 1 1 1 4 & % 1 4 4 1 1 1 1 1 4 &.

)a funcin in;ersa de 1>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 c4 siempre es igual a cero 9esta fila siempre permanece inalterada:? el resto de ;alores ;iene en funcin de + > se refle8a en la ta la 2.".
+ 4 % 0 c1 1 1 1 c2 2 2 # c# # # 4

$a la 2.": 6alores de ci seg7n el tamaJo de lo'ue +

)a funcin in;ersa de 5esplaAar3ila ser? o ;iamente? un desplaAamiento de las filas de la matriA de estado el mismo n7mero de posiciones 'ue en la ta la 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 -3920: > se multiplica mdulo B4 ] 1 por: c9B: G 4#B4 ] 41B2 ] 41B ] 42 donde 4# es el ;alor =eBadecimal 'ue se o tiene concatenando los coeficientes inarios del polinomio correspondiente en -3920:? en este caso 44444411? o sea? B]1? > as sucesi;amente. )a in;ersa de &eAclarColumnas se o tiene multiplicando cada columna de la matriA de estado por el polinomio: d9B: G 41B4 ] 45B2 ] 42B ] 4*

2.+.2. Clculo de las Subcla-es


)as diferentes su cla;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 o tener? a partir del ;alor de M? una secuencia de 4H9n]1:H+ >tes. )a seleccin simplemente toma consecuti;amente de la secuencia o tenida lo'ues del mismo tamaJo 'ue la matriA de estado? > los ;a asignando a cada M i. Sea M9i: un ;ector de >tes de tamaJo 4H+ \? conteniendo la cla;e? > sea C9i: un ;ector de + H9n]1: registros de 4 >tes? siendo n el n7mero de rondas. )a funcin de eBpansin tiene dos ;ersiones? seg7n el ;alor de +\: a: Si +\ ^ %: 1. Para i desde 4 =asta +\ - 1 =acer 2. C9i: 9M94 H i:? M94 H i ] 1:? M94 H i ] 2:? M94 H i ] #:: #. Para i desde +\ =asta + H 9n ] 1: =acer 4. tmp C9i - 1: ". Si i mod +\ G 4 %. tmp Su 9(ot9tmp:: (9i_+\: .. C9i: C9i - +\: tmp : Si +\ ` %: 1. Para i desde 4 =asta +\ - 1 =acer 2. C9i: 9M94 H i:? M94 H i ] 1:? M94 H i ] 2:? M94 H i ] #:: #. Para i desde +\ =asta + H 9n ] 1: =acer 4. tmp C9i - 1: ". Si i mod +\ G 4 %. tmp Su 9(ot9tmp:: (c9i_+\: .. Si i mod +\ G 4 0. tmp Su 9tmp: 2. 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:. 3inalmente? ( c98: es una constante definida de la siguiente forma: (c98: G 9(98:? 4? 4? 4: Cada (9i: es el elemento de -3920: correspondiente al ;alor B9i-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 pro lema a=ora consiste en sa er 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.%:.

3igura 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 ;aria le seg7n el tipo de algoritmo. $ienen 4 formas de funcionamiento:

2...1. Modo $C"


*l modo *C1 9*lectronic Code oo\: es el m!todo ms sencillo. Simplemente se su di;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. $ $am i!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 tam i!n los presentar? > eso es peligroso? so re todo cuando se codifica informacin mu> redundante 9como fic=eros de teBto:? o con patrones comunes al inicio > final 9como el correo electrnico:. 3rgil mediante ata'ue estadstico.

-10 -

Algoritmos de Criptografa

/tro riesgo astante importante 'ue presenta el modo *C1 es el de la sustitucin de lo'ues. *l atacante puede cam iar un lo'ue sin ma>ores pro lemas? > 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 C1C 9Cip=er 1oo\ 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 imposi le 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 o tenido 9;er figura 2..:.

3igura 2..: &odo de operacin C1C.

Pero? dos mensa8es id!nticos se codificarn de la misma forma usando el modo C1C? 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 C31 9Cip=er 3eed ac\ &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.

3igura 2.0: *s'uema del modo de operacin C31.

Para descifrar asta con seguir proceso in;erso.

-12 -

Algoritmos de Criptografa

2.../. Modo O#"


*l modo de operacin /31 9/utput 3eed1ac\ &ode:. Al igual 'ue el C31? se realiAa una oreBclusi;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.

3igura 2.2: *s'uema del modo de operacin /31.

-24 -

Algoritmos de Criptografa

Criptografa de Cla;e P7 lica


Algoritmos Asimtricos de Cifrado
)os algoritmos de cla;e p7 lica? o algoritmos asim!tricos? son empleados en redes de comunicacin inseguras 9,nternet:. ,ntroducidos por C=itfield 5iffie > &artin <ellman a mediados de los aJos .4? 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 pro lemas matemticos difciles de resol;er. *l ms popular por su sencilleA es (SA? 'ue =a so re;i;ido a multitud de ata'ues? si ien necesita una longitud de cla;e considera le. /tros algoritmos son los de *l-amal > (a in. )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 considera lemente 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 p7 lica. Ina de ellas se emplea para codificar? mientras 'ue la otra se usa para decodificar. Para 'ue estos criptosistemas sean seguros tam i!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 1 9figura #.1:. Para ello solicita a 1 su cla;e p7 lica MP . A genera entonces el mensa8e cifrado * MP 9m:. Ina ;eA =ec=o esto 7nicamente 'uien posea la cla;e Mp aen nuestro e8emplo? 1a podr recuperar el mensa8e original m. *n este tipo de aplicacin? la cla;e 'ue se =ace p7 lica es a'uella 'ue permite codificar los mensa8es? mientras 'ue la cla;e pri;ada es a'uella 'ue permite descifrarlos.

-21 -

Algoritmos de Criptografa

3igura #.1: $ransmisin de informacin empleando algoritmos asim!tricos.

/tra aplicacin de los algoritmos asim!tricos es la autentificacin de mensajes 'ue nos permiten o tener una firma digital a partir de un mensa8e. 5ic=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 reci e un mensa8e m de 1 > 'uiere compro ar su autenticidad. Para ello 1 genera un resumen del mensa8e r9m: 9;er figura #.2: > lo codifica empleando la cla;e de cifrado? 'ue en este caso ser pri;ada.

3igura #.2: Autentificacin de informacin empleando algoritmos asim!tricos.

)a cla;e de descifrado se =a r =ec=o p7 lica pre;iamente? > de e estar en poder de A. 1 en;a entonces a A el criptograma correspondiente a r9m:. A puede a=ora generar su propia r 49m: > compararla con el ;alor r9m: o tenido del criptograma en;iado por 1. Si coinciden? el mensa8e ser aut!ntico? puesto 'ue el 7nico 'ue posee la cla;e para codificar es precisamente 1. *n este caso la cla;e 'ue se emplea para cifrar es la cla;e pri;ada.

".2. El Algoritmo R!A


5e e su nom re a sus tres in;entores: (onald (i;est? Adi S=amir > )eonard Adleman. )as primeras ;ersiones de P-P lo incorpora an 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 p7 lica > pri;ada se calculan a partir de un n7mero 'ue se o tiene como producto de dos primos grandes. *l atacante se enfrentar? si 'uiere recuperar un teBto claro a partir del criptograma > la cla;e p7 lica? a un pro lema 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 14144:. 2. Calcular nG pH' > )G9p-l:H9'-l:. #. Seleccionar un n7mero primo con respecto a )* llamndolo d+

-22 -

Algoritmos de Criptografa

4. *ncontrar e tal 'ue eBdG 1 mod A Con estos parmetros calculados por adelantado? estamos listos para comenAar el cifrado. 5i;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 4ZPZn? *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. Para cifrar un mensa8e? P? calculamos CGP e9mod n:. Para descifrar C? calculamos PGC d9mod 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 ca o el descifrado se re'uieren d > n. Por tanto? la cla;e p7 lica consiste en el par 9e?n: > la cla;e pri;ada consiste en 9d?n:. 5e acuerdo con los descu ridores del (SA? la factoriAacin de un n7mero de 244 dgitos re'uiere 4 mil millones de aJos de tiempo de cmputoY la factoriAacin de un n7mero de "44 dgitos re'uiere 142" aJos. *n am os 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 facti le la factoriAacin de un n7mero de "44 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 pG# > 'Gll? dando nG## > AG24. In ;alor adecuado de d es dG.? puesto 'ue . > 24 no tienen factores comunes. Con estas selecciones? e puede encontrarse resol;iendo la ecuacin .eG19mod 24:? 'ue produce eG#. *l teBto cifrado C? de un mensa8e de teBto normal? P? se da por la regla CGP #9mod ##:. *l teBto cifrado lo descifra el receptor de acuerdo con la regla PGC.9mod ##:. *n la figura se muestra como e8emplo el cifrado del teBto normal ,su)anne,+ 5ado 'ue los n7meros primos escogidos para el e8emplo son tan pe'ueJos? P de e ser menor 'ue ##? 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 cam io? si =u i!ramos seleccionado p > ' del orden de 14 144 podramos tener n del orden de 14 244? para 'ue cada lo'ue pueda ser de =asta %%4 its u 0# caracteres de 0 its? contra 0 caracteres para el 5*S. Sin em argo? el algoritmo (SA es demasiado lento para poder cifrar grandes ;ol7menes de datos? por lo cual suele usarse para distri uir cla;es de sesin de una sola ;eA para su uso con 5*S? ,5*A u otros algoritmo s seme8antes.

3.2.1. Seguridad del &lgorit'o !S&

-2# -

Algoritmos de Criptografa

Aparte de factoriAar n? podramos intentar calcular b 9n: directamente? o pro ar por la fuerAa ruta tratando de encontrar la cla;e pri;ada. Am os 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: - -la(es Demasiado -ortas Actualmente se considera segura una cla;e (SA con una longitud de n de al menos .%0 its? si ien se recomienda el uso de cla;es no inferiores a 1424 its. 5e eremos escoger la longitud de la cla;e en funcin del tiempo 'ue 'ueramos 'ue nuestra informacin permaneAca en secreto. Ina cla;e de 1424 its parece demasiado corta como para proteger informacin por ms de unos pocos aJos. - .taques de /ntermediario *l ata'ue de intermediario 9figura #.#: puede darse con cual'uier algoritmo asim!trico. Supongamos 'ue A 'uiere esta lecer una comunicacin con 1? > 'ue C 'uiere espiarla. Cuando A le solicite a 1 su cla;e p7 lica M 1? C se interpone? o teniendo la cla;e de 1 > 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 M 1 para recodificarlo > en;iarlo a 1. +i A ni 1 son conscientes de 'ue sus mensa8es estn siendo interceptados.

3igura #.#: 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 p7 lica 'ue tiene de 1 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 posi ilidad 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 de e =acerse codificando el mensa8e completo? no el resultado de una funcin resumen so re !l. Por ello se recomienda 'ue las firmas digitales se lle;en a ca o siempre so re una funcin resumen del mensa8e? nunca so re el mensa8e en s. - 0irmar ' -odificar +unca se de e 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

-24 -

Algoritmos de Criptografa

*s un algoritmo asim!trico? asado en el pro lema de 5iffie-<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 p7 licas en el sentido estricto? sino una informacin compartida por los dos comunicantes. Sean A > 1 los interlocutores en cuestin. *n primer lugar? se calcula un n7mero primo p > un generador c de LHp? con 2 ^ c ^ p-2. *sta informacin es p7 lica > conocida por am os. *l algoritmo 'ueda como sigue:

1. 2. #. 4.

A escoge un n7mero aleatorio B? comprendido entre 1 > p-2 > en;a a 1 el ;alor c B 9mod p: 1 escoge un n7mero aleatorio >? como en el paso anterior? en;a a A el ;alor c > 9mod p: 1 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 > 1 aca an 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


3ue diseJado en un principio para producir firmas digitales? pero posteriormente se eBtendi tam i!n para codificar mensa8es. Se asa en el pro lema de los logaritmos discretos? 'ue est ntimamente relacionado con el de la factoriAacin? > en el de 5iffie-<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 pB 9mod n: )a cla;e p7 lica 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# 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 \? de e mantenerse en secreto > ser diferente cada ;eA. )a firma se ;erifica compro ando 'ue >aa G pm 9mod n: Codificacin de ElGamal Para codificar el mensa8e m se escoge primero un n7mero aleatorio \ primo relati;o con 9n-1:? 'ue tam i!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 do le longitud 'ue el teBto original. Para decodificar se calcula m G H a-B 9mod n:

3.3.3. &lgorit'o de !abin

-2" -

Algoritmos de Criptografa

*l sistema de cla;e asim!trica de (a in se asa en el pro lema de calcular races cuadradas modulo un n7mero compuesto. *ste pro lema se =a demostrado 'ue es e'ui;alente al de la factoriAacin de dic=o n7mero. *n primer lugar escogemos dos n7meros primos? p > '? am os congruentes con # mdulo 4 9los dos 7ltimos its a 1:. *stos primos son la cla;e pri;ada. )a cla;e p7 lica es su producto? n 1 pq+ Para codificar un mensa8e m? simplemente se calcula c G m2 9mod n: )a decodificacin del mensa8e se =ace calculando lo siguiente: m1 G c9p]1: _ 4 9mod p: m2 G 9p - c9p]1: _ 4: 9mod p: m# G c9']1: _ 4 9mod ': m4 G 9' - c9']1: _ 4: 9mod ': )uego se escogen a > tales 'ue a G '9'-1 9mod p:: > b G p9p-1 9mod '::. )os cuatro posi les mensa8es originales son ma G 9am1 ] m#: 9mod n: m G 9am1 ] m4: 9mod n: mc G 9am2 ] m#: 9mod n: md G 9am2 ] m4: 9mod n: 5esgraciadamente? no eBiste ning7n mecanismo para decidir cul de los cuatro es el aut!ntico? por lo 'ue el mensa8e de er incluir alg7n tipo de informacin para 'ue el receptor pueda distinguirlo de los otros.

3.3./. &lgorit'o (S&


*l algoritmo 5SA 95igital Signature Algorit=m: es una parte el estndar de firma digital 5SS 95igital Signature Standard:. *ste algoritmo? propuesto por el +,S$? data de 1221? es una ;ariante del m!todo asim!trico de *l-amal. Creacin del par cla e p!blica"cla e pri ada *l algoritmo de generacin de cla;es es el siguiente: 1. Seleccionar un n7mero primo q tal 'ue 21"2 Z ' Z 21%4. 2. *scoger t tal 'ue 4 ^ t ^ 0? > seleccionar un n7mero primo p tal 'ue 2"11]%4t Z p Z 2"12]%4t? > 'ue adems ' sea di;isor de 9p - 1:. #. Seleccionar un elemento g LHp > calcular c G g9p-1:_' mod p. 4. Si c G 1 ;ol;er al paso #. ". Seleccionar un n7mero entero aleatorio a? tal 'ue 1 ^ a ^ ' - 1 %. Calcular > G ca mod p. .. )a cla;e p7 lica es 9p? '? c? >:. )a cla;e pri;ada es a. Generacin y erificacin de la firma Siendo = la salida de una funcin resumen so re el mensa8e m? la generacin de una firma se =ace mediante el siguiente algoritmo: 1. Seleccionar un n7mero aleatorio \ tal 'ue 4 Z \ Z '. 2. Calcular r G 9c\ mod p: mod '. #. Calcular \-1 mod '.

-2% -

Algoritmos de Criptografa

4. Calcular s G \-19= ] ar: mod '. ". )a firma del mensa8e m es el par 9r? s:. *l destinatario efectuar las siguientes operaciones? suponiendo 'ue conoce la cla;e p7 lica 9p? '? c ? >:? para ;erificar la autenticidad de la firma: 1. 6erificar 'ue 4 Z r Z ' > 4 Z s Z '. *n caso contrario? rec=aAar la firma. 2. Calcular el ;alor de = a partir de m. #. Calcular = s 1 mod q . 4. Calcular u1 G H = mod ' > u2 G H r mod '. ". Calcular ; G 9cu1>u2 mod p: mod '. %. Aceptar la firma si > slo si ; G r.

-2. -

+i-liograf.a
)as siguientes paginas [e contienen informacin so re criptografa > sus algoritmos: =ttp:__[[[.toptutoriales.com 9;isitado 4%_12_42: =ttp:__rincon'ue;edo.iespana.es_rincon'ue;edo_Criptografia 9;isitado 4%_12_42: =ttp:__[[[di.u8aen.es_dmlucena 9;isitado 4%_12_42: Apuntes de la asignatura ASS5 de "E curso Apuntes de (edes de la asignatura de 4E curso =ttp:__'uetAal.uis.edu.co_ciee-=tml_ i liotecae;irtual_criptografia_cripto.pdf 4%_12_42:

9;isitado