Algoritmo Idea

También podría gustarte

Está en la página 1de 8

Universidad Nacional Autnoma de Mxico

Facultad de Ingeniera
Criptografa

Proyecto IDEA

Profesora M! en C! Ma! "a#ueline $pe% &arrientos

Integrantes
&adillo 'orres (ernica )allardo *ern+nde% $uis ,nri#ue *ern+nde% -+nc.e% $eticia Mendo%a (arela "eanette /ocio Pac.eco Aguilar "ose "aime

)rupo 0 12 de Mayo del 1334

ALGORITMO IDEA (Algoritmo Internacional de Cifrado de Datos)


IDEA-International Data Encryption Algorithm (Algoritmo Internacional de Cifrado de Datos) es un cifrador por bloques diseado por Xuejia ai y !ames " #assey de la Escuela $olit%cnica &ederal de '(rich y descrito por primera )e* en +,,+" Algoritmo propuesto como reempla*o del DE- (Data Encryption -tandard)" IDEA fue una re)isi.n menor de $E--$roposed Encryption -tandard (Estndar de Cifrado Propuesto)/ un algoritmo de cifrado anterior" 0riginalmente IDEA hab1a sido llamado I$E- -Impro)ed $E- (PES Mejorado)" IDEA fue diseado en contrato con la &undaci.n 2asler/ la cual se hi*o parte de Ascom-3ech A4" IDEA es libre para uso no comercial/ aunque fue patentado y sus patentes se )encer5n en 67+7 y 67++" El nombre 8IDEA8 es una marca registrada y est5 licenciado mundialmente por #edia9rypt" En IDEA/ tanto los datos en claro como los datos cifrados est5n compuestos por bloques de :; bits/ mientras que la cla)e consta de +6< bits" El cifrado se basa en el concepto de me*clar operaciones aritm%ticas de grupos algebraicos diferentes" El algoritmo consiste en ocho )ueltas de cifrado id%nticas seguidas de una transformaci.n de salida" Aunque los m%todos de criptoan5lisis han mejorado/ %ste es uno de los mejores y m5s seguros algoritmos de cifrado de bloque Es un algoritmo muy seguro/ nunca ha sido roto" 2ace uso de aritm%tica en cuerpos finitos/ adelant5ndose a los algoritmos m5s actuales" HISTORIA +,,7= Xuejia ai y !ames #assey (->iss &ederal Institute of 3echnology) proponen el $E- ($roposed Encryption -tandard)" +,,+= los a)ances en el criptoan5lisis diferencial hacen necesario introducir mejoras y lo modifican creando el I$E- (Impro)ed $roposed Encryption -tandard)" +,,6= los autores incluyen nue)as mejoras y proponen finalmente el algoritmo IDEA (International Data Encryption Algorithm)"

+,,,= el algoritmo IDEA demuestra ser mucho m5s seguro que DE- y sus deri)ados y se comien*a a usar en el sistema $4$/lo que hi*o que tu)iera muchos usuarios

CARACTERSTICAS Es uno de los cifrados en bloque m5s seguros que e?isten" @sa bloques de :; bits y cla)es de +6< bits" Aeali*a < transformaciones id%nticas (cada una llamada un ronda) y una transformaci.n de salida (llamada media ronda)" El proceso para cifrar y descifrar es similar" 4ran parte de la seguridad de IDEA deri)a de la me*cla de operaciones de distintos grupos que no conmutan entre ellas= X0A/ suma m.dulo6 y producto m.dulo 6+:B+"

SEG!RIDAD IDEA ha resultado inmune ante un criptoan5lisis diferencial (sus autores conoc1an esta debilidad de DE-) y a los criptoan5lisis lineales" !oan Daemen descubri. en +,,6 una clase de cla)es d%biles/ las que responden al esquema """" """" "#"" """" """" """# #### #""" que un atacante podr1a identificar en un ataque con te?to en claro elegido (las posiciones C pueden ser cualquier d1gito he?adecimal)" a probabilidad de que se usen esas cla)es d%biles es 6 -,: y adem5s se pueden eliminar en el diseo" Actualmente no se conoce toda)1a ning(n ataque contra IDEA que haya tenido %?ito

M!LTI$LICACI%& M%D!LO '()*( Antes de presentar este algoritmo deben decirse algunas palabras con respecto a la aritm%tica m.dulo 6+:B+" Due el producto de dos n(meros a y b sea r m.dulo 6+:B+ significa que= p E a F b E r B GF(6+:B+) con G y r naturales tal que 7 H r I 6+:B+

Esto significa que el )erdadero resultado es el resto (r) resultante de la di)isi.n entera de p entre 6+:B+" $or lo tanto cada producto se transforma en una multiplicaci.n y una di)isi.n entera" Dado que esta operaci.n es central en el

algoritmo de encriptado la pregunta que se plantea es como hacer esto en pocas instrucciones" o que sigue fue inspirado mientras se trabajaba con el J:<++ que tiene largo de palabra de +: bits" Imagine por un momento que se est5 trabajando con palabras de +: bits" -i se reali*a el producto aFb sobre el registro A del acumulador se tiene lo siguiente= p E a F b E r B GF(6+:B+) E r B G B GF6+: De este resultado se quiere recuperar el )alor de r" -e obser)a que el n(mero G al estar multiplicado por 6+: est5 corrida +: bits hacia la i*quierda/ por lo que se encuentra almacenado enteramente en A+" $or lo que para obtener r s.lo es necesario restar el n(mero en A+ del n(mero en A7" A7E G B r A+E G K A7 - A+ E G Esto no es siempre tan sencillo pues podr1a suceder que la suma G B r que se supone que est5 almacenada en A7 sea mayor que 6 +:/ caso en el cual se tendr1a acarreo de un bit al registro A+" Es este caso el esquema reci%n presentado falla" #irando esta situaci.n un poco m5s a fondo/ se obser)a lo siguiente= A7E G B r-6+: A+E G B + Al hacer la resta tenemos A7-A+ E GB r -6 +:-(GB+) E r - (6+:B+)" Esto es claramente un n(mero negati)o" $ara obtener r/ sumamos 6 +:B+ al n(mero anterior/ contenido en el acumulador" 9uando se empie*a a trabajar con un largo de palabra de 6; bits/ el problema se resuel)e de la misma manera (aunque la soluci.n pierde su elegancia)" Despu%s de reali*ar la multiplicaci.n/ los bits entre el L+ y el +: se separan y se colocan en un registro aparte (alineados a la derecha) y se reali*a un algoritmo completamente an5logo al reci%n descrito" $ara lograrlo se deben reali*ar corrimientos y aplicar m5scaras en )arias oportunidades lo que hace que la operaci.n sea m5s larga y engorrosa que con una arquitectura de +: bits"

IM$LEME&TACI%& DEL IDEA+


Durante el proceso de cifrado se utili*an operaciones de tres grupos aritm%ticos diferentes sobre pares de sub-bloques de +: bits= 4rupo multiplicati)o en '6M+:B+ () #ultiplicaci.n m.dulo 6+:B+ 4rupo aditi)o en '6M+: (B) -uma m.dulo 6+: 4rupo aditi)o en '6/ de las +:-uplas/ bit a bit () Xor Estas operaciones son in)ertibles en s1 mismas/ pero incompatibles entre s1 no go*an de la ley distributi)a ni asociati)a/ no forman grupo y la sucesi.n de ellas no puede darlugar a cancelaci.n de operaciones" os :; bits del bloque de datos se di)ide en ; sub-bloques de +:" En cada )uelta el bloque de datos de entrada X es di)idido en ; sub-bloques de +: bits (X+/ X6/ XL/ X;)" -e reali*an < )ueltas/ y cada una emplea una subcla)e diferente"

En la implementaci.n del algoritmo se deben tener )arios puntos en cuenta"


3odas las operaciones se hacen con n(meros positi)os de +: bits y el resultado se de)uel)e en +: bits" -e adapt. los datos del 9odec que )ienen alineados sobre el bit 6L/ para tenerlos alineados al bit +J y poder reali*ar las distintas operaciones" $ara la suma m.dulo 6+: y para el resultado de la multiplicaci.n (modulo 6 +: B +) se tu)o que hacer un AND con &&&& para hacer el m.dulo/ o sea dejarlo en +: bits" -e implement. la multiplicaci.n m.dulo 6 +: B +/ que como se )er5 no es tri)ial (#ultiplicaci.n m.dulo 6+: B +)" Debido a que todas las operaciones trabajan con los acumuladores/ surgi. el problema de pasar de un n(mero de 6; bits sin signo a uno de ;< bits m5s signo y )ice)ersa/ ya que la e?tensi.n de signo de los acumuladores es en a6" El problema en s1 es que con los acumuladores se puede representar n(meros m5s chicos que los que se puede representar con los registros" Este problema se solucion. trabajado con los 6; bits que nos interesaban del acumulador" $ara reali*ar el paralelismo se tu)o que hacer )arios cambios/ ya que tiene muchas restricciones" $or ejemplo para hacer dos mo)imientos en paralelo hay que hacerlo de la siguiente manera= la memoria X sobre los registros ?7 y ?+/ y la memoria O sobre y7 e y+" Adem5s las operaciones deben hacerse siempre sobre los acumuladores/ lo que en conjunto limit. la optimi*aci.n" 0tras restricciones fueron que no se puede mo)er de la memoria direccionando con corrimientos absolutos/ o sea ?=(r;B;)/ y que no se puede reali*ar preincrementos de los registros de direccionamiento" $or estas ra*ones se guardaron las cla)es en la memoria O y los datos a encriptar en la memoria X/ y se utili*aron los incrementos y decrementos unitarios"

GE&ERACI%& DE LAS S!,CLA-ES+ Di)idiendo la cla)e de +6< bits se obtienen las primeras < subcla)es de +: bits/ P(+) a P(<)" as siguientes subcla)es se obtienen de la misma forma/ despu%s de una rotaci.n circular de 6J lugares a la i*quierda" As1 sucesi)amente hasta la generaci.n de las J6 subcla)es de encriptado" En cuanto a la implementaci.n en asembler de este algoritmo de generaci.n de subcla)es/ puede decirse que no presenta grandes complicaciones" $or ejemplo/ para generar P(,) se toman los Q bits m5s bajos de P(6) y los , bits m5s altos de P(L)"

GRFICAMENTE:

Proceso detallado de obtencin de la palabra i:

Mesografia .tt/ 00111+lci+2lsa+m30seg2ridad0a//li01in0Cifrado0IDEA+T4T .tt/ 00111+geocities+com05agte60Estr2ctDatos0$G$7+.tml

http=RRleebyte"iespana"esRcursosRseguridadRelS67pgpS67e?plicadoS67para S67tontos"doc

También podría gustarte