001

download 001

If you can't read please download the document

description

001

Transcript of 001

  • 1

    Cap tul o 1: INTRODUCCIN

    1. Int roduccin

    Bajo la denominacin de secuencias aleatorias se engloban todas aqullas que hansido generadas mediante procesos fsicos intrnsecamente aleatorios, es decir, basadosen el supuesto de la existencia de procesos al azar en la naturaleza. En mltiplesaplicaciones es preciso poder disponer de la misma secuencia (aparentemente aleatoria)en dos puntos distintos, por lo cual es necesario utilizar algoritmos deterministas quesean reproducibles. En tal caso, se denominan secuencias pseudoaleatorias.

    Las secuencias pseudoaleatorias son utilizadas en diversos entornos relacionados conel mundo de las telecomunicaciones. Entre otros mbitos de aplicacin, podemosencontrar la transmisin de datos (tanto para aleatorizar smbolos como para llevar acabo la fase de entrenamiento en ecualizacin adaptativa), la criptografa y el accesomltiple CDMA. Asimismo son de inters en otras reas como puede ser la simulacin.

    Tal como se ha mencionado anteriormente, una caracterstica comn que debensatisfacer las secuencias en bastantes aplicaciones es que sean fcilmente reproducibles.Esto significa que en el receptor se debe poder generar la misma secuencia utilizada enel emisor. En consecuencia, dichas secuencias deben ser de origen determinista. Esdecir, no son de naturaleza aleatoria. Las secuencias que son objeto de estudio en estetexto son aquellas que presentan un comportamiento estadstico similar al que tendrauna secuencia totalmente aleatoria, aunque son generadas de forma determinista.

    Los otros requisitos que debemos imponer a las secuencias dependen del mbito deaplicacin. As pues, en transmisin de datos el aspecto ms relevante es la aleatoriedad;en criptografa la impredictibilidad; mientras que en CDMA ser la autocorrelacin ycorrelacin c ruzada entre secuencias pertenecientes a la misma familia.

    A continuacin se muestra de forma suscinta las necesidades en estos entornos.

    ' Los autores, 1999; ' Edicions UPC, 1999.

  • Captulo 1 Introduccin a las secuencias pseudoaleatorias

    2

    2. Entornos de aplicacin

    2.1 Criptografa en flujo

    Las tcnicas de cifrado en flujo se basan en una transformacin variante en el tiempode los smbolos del texto en claro. La diferencia fundamental entre el cifrado en flujo yel cifrado en bloque consiste en la presencia o no de memoria interna en el sistema, ascomo el tamao de la unidad mnima a cifrar.

    En general, un cifrador en flujo consiste en un generador de clave cuya secuenciapseudoaleatoria de salida (llamada secuencia cifrante o cifradora) se suma mdulo dos(operacin binaria idntica a la puerta OR-exclusiva) con los bits del mensaje, paraformar la secuencia de bits de salida. Cada bit de salida de la secuencia cifradorapseudoaleatoria depende del estado interno del generador en ese momento.

    Figura 1.1. Modelo del cifrado en flujo

    A la hora de disear estos cifradores, deben cuidarse una serie de propiedades en lasecuencia utilizada. Al margen de conseguir que las secuencias generadas parezcanaleatorias, la secuencia debe tener un comportamiento lo ms impredecible posible. Estoes, a partir de una fraccin de la secuencia cifrante no debe poder predecirse el resto, yaque en tal caso se facilitara la labor de un cripotanalista.

    Es difcil evaluar cundo una secuencia es til en este entorno; de hecho, no existeningn criterio general que permita validarlo. En cualquier caso, existen una serie derequisitos generales que toda secuencia cifrante debe satisfacer. Dichos criterios estnrelacionados con la aleatoriedad (postulados de Golomb), impredictiblidad (complejidadlineal) y facilidad de implementacin. En los captulos 3 y 4 se analizarn con mayorprofundidad los distintos tests y generadores utilizados en este entorno.

    2.2 Ecualizacin adaptati va y aleatorizaci n

    En los esquemas clsicos de transmisin de datos, es frecuente ubicar un aleatorizadorentre la fuente binaria equivalente y el codificador. Dicho aleatorizador no es ms queun generador pseudoaleatorio binario, cuya salida se suma a los bits salientes de lafuente, tal como se muestra la figura 1.2.

    DISPOSITIVOCON

    MEMORIAcimi

    K c E m

    k f K ii k i

    i

    i

    ( , )

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 1 Introduccin a las secuencias pseudoaleatorias

    3

    El uso de este dispositivo permite garantizar la equiprobabilidad de los smbolos en elcanal, con lo cual se consigue que el valor medio de la seal sea nulo, y que las zonas dedecisin estn normalizadas. Al mismo tiempo, tambin permite satisfacer de maneraincondicional las hiptesis de incorrelacin entre smbolos, facilitando el clculo depotencias.

    Figura 1.2. Esquema de un aleatorizador

    Los sistemas de ecualizacin adaptativa constituyen otro entorno de aplicacin de losgeneradores pseudoaleatorios. Los coeficientes que utiliza el ecualizador dependen delerror. En rgimen permanente, se puede asumir que dicho error es nicamente decuantificacin, es decir, se supone que no hay error de decisin. Sin embargo, en unafase inicial no se puede partir de esa premisa. Por ello, inicialmente se emite unasecuencia pseudoaleatoria, y se compara la salida del ecualizador con los emitidos, yaque en el receptor se dispone de un generador idntico que permite generar la mismasecuencia emitida. La siguiente figura ilustra el proceso.

    Figura 1.3. Esquema ecualizacin adaptativa.

    Aleatorizador

    Canal

    Aleatorizador

    Modulador

    Canal

    Destino

    Fuente

    Demodulador

    Codificador

    Codificador

    a(n)z(n)

    +

    (n)Destino

    Secuenciapseudoaleatoria

    e(n)

    Ecualizadory(n)

    -

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 1 Introduccin a las secuencias pseudoaleatorias

    4

    2.3. Acceso mltiple CDMAEl crecimiento continuo del volumen de trfico, as como la aparicin de nuevos

    servicios exigen una elevada eficiencia en el uso del espectro a los sistemas futuros decomunicaciones mviles. En ese sentido, los sistemas CDMA (code-division multipleaccess) constituyen una alternativa muy interesante.

    CDMA es una tcnica de espectro ensanchado, consistente en que la seal original deun usuario se expande distribuyendo su energa en un ancho de banda muy superior aloriginal. Las seales de datos, antes de ser transmitidas, son multiplicadas por unasecuencia pseudoaleatoria, (denominada cdigo), diferente para cada usuario. Laspropiedades de ortogonalidad que presentan dichos cdig os permiten recuperar la sealde informacin en el receptor.

    En este entorno, las propiedades de autocorrelacin (para facilitar el sincronismo) ycorrelacin cruzada entre todas las secuencias de una misma familia (para poder separarlas seales) son fundamentales a la hora de analizar las prestaciones. En el captulo 5 seestudia con mayor profundidad la aplicacin de las secuencias pseudoaleatorias a esteentorno, as como las familias ms utilizadas.

    2.4. Entornos de simulacinDada la creciente complejidad de los sistemas actuales, es necesario poder evaluar sus

    prestaciones en la fase de diseo, permitiendo elegir entre diversas posibles alternativas.Para ello es preciso simular el sistema, es decir, disear un modelo de un sistema oproceso y realizar experiencias sobre este modelo con la finalidad de comprender sucomportamiento y evaluar diversas estrategias operativas. La simulacin de un sistemaengloba las siguientes fases: planificacin, modelizacin, validacin y aplicacin.

    El comportamiento del sistema se simula mediante modelos probabilsticos obtenidosa mediante la experimentacin. Por ello es necesario disponer de herramientas quetengan un comportamiento estadsticamente similar al del sistema que se debe modelar.

    Un mtodo de clculo numrico muy conocido es el de Monte Carlo. El nivel deexactitud conseguido con dicho mtodo est directamente relacionado con laspropiedades de aleatoriedad del generador pseudoaleatorio utilizado.

    3. Evolucin histrica en la generacin de nmeros aleatorios

    En la mitad del presente siglo, con la aparicin de los primeros ordenadores y lavoluntad de realizar simulaciones y clculos probabilsticos, apareci la necesidad deconstruir mquinas capaces de generar nmeros aleatorios, o que aparentemente fuesenaleatorios. Actualmente, es posible generar nmeros realmente aleatorios a partir deprocesos fsicos, apoyados sobre la suposicin de la teora cuntica que presupone laexistencia de procesos al azar en la naturaleza. Pero estos mtodos fsicos apenas tienenutilidad, ya que en muchos entornos es necesario que el receptor pueda reproducir lamisma secuencia utilizada en emisin. Por esto, tal como se indic anteriormente, sonnecesarios algoritmos matemticos deterministas que sean reproducibles.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 1 Introduccin a las secuencias pseudoaleatorias

    5

    Una primera solucin consisti en recopilar los nmeros aleatorios generados en unexperimento probabilstico, y almacenarlos, para posteriormente ser reproducidos. Losprimeros sistemas de generacin de nmeros aleatorios eran eso, tablas y tablas denmeros obtenidos con mtodos aleatorios. En 1927, L. H. C. Tippett public una tablade 40.000 dgitos a partir de listas del censo. Ms tarde, se construy una mquina (laERNIE) que reproduca un milln de nmeros ganadores en la lotera britnica. Estossistemas tienen grandes desventajas: es necesario almacenar toda la tabla de nmeros;existen limitaciones de memoria y de rapidez; la tabla puede ser muy pequea segn lasnecesidades de aplicaciones concretas; si bien es verdad que tienen la gran ventaja deproducir secuencias realmente aleatorias.

    Los problemas inherentes a estos sistemas forzaron la bsqueda de maneraseficientes de obtener nmeros aleatorios. No slo deban ser algoritmos que generaransecuencias aparentemente aleatorias, sino que, adems, tenan que ser mecanismosrpidos. Debe tenerse en cuenta que la capacidad computacional de aquella poca difieremucho de la actual, y el clculo de los nmeros aleatorios no deba suponer un cuello debotella. John von Neumann, en 1946, fue el primero en sugerir un mtodo deterministallamado middle-square (traducido, ms o menos, como "el centro del cuadrado").Consista en tomar un nmero con un nmero de cifras fijo (por ejemplo 6), elevarlo alcuadrado y tomar como siguiente nmero el constituido por la mitad de las cifrasresultantes, en concreto, las que ocupan las posiciones centrales (de aqu el nombre delmtodo). Por ejemplo, si el nmero actual es el 193942, elevado al cuadrado da37613499364, y tomando las cifras del medio, obtenemos como siguiente nmero al613499.

    Aparecieron nuevos algoritmos y se fueron mejorando los ya existentes, pero en1948, D. H. Lehmer introdujo el que iba a ser el mtodo de partida para gran mayora deesquemas posteriores, conocido hoy en da como el generador congruencial lineal. Suidea esta basada en operar sobre el anillo de los enteros, realizando una multiplicacin yposteriormente una reduccin modular, para mantener el resultado dentro del conjuntofinito. As, se toma un nmero inicial de partida, y todos los siguientes se calculan apartir del anterior mediante una simple multiplicacin:

    X a X mn n = 1 modX0 es el valor iniciala es el multiplicadorm es el mdulo

    Lehmer tambin dio la posibilidad de utilizar un incremento (c), que posteriormentefue aprovechado para aumentar la longitud del periodo de la secuencia.

    X a X c mn n = 1 modExisten muchos otros mtodos de generacin de nmeros aleatorios, como por

    ejemplo, las secuencias de Fibonacci, mtodo cuadrtico de Coveyou, el generador denmeros aditivos... Sin embargo, si se desea que el periodo de estas secuencias sea elmayor posible, el generador congruencial lineal ampliado a los "k" smbolos anterioreses el que presenta mayor inters.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 1 Introduccin a las secuencias pseudoaleatorias

    6

    X a X a X mn n k n k= + + 1 1 ! modEste generador no es ni ms ni menos que el esquema bsico del L.F.S.R., el ncleo

    de la mayora de generadores pseudoaleatorios. As, desde un punto de vista tantohistrico como estructural, el generador congruencial lineal se puede considerar como elprecedente del L.F.S.R..

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    7

    Cap tul o 2: EL CIFRADO EN FLUJO

    1. Antecedent es hist ricos

    1.1. Introduccin

    A diferencia de los criptosistemas de clave pblica, no se puede establecerclaramente ninguna fecha como aparicin de los esquemas de cifrado en flujo. Suorigen puede ser tan remoto como el de los mtodos clsicos de substitucinpolialfabtica. Si nicamente se considera la poca de la criptografa moderna,atendiendo caractersticas funcionales, el punto de inicio del cifrado en flujo vienedeterminado por el cifrado de Vernam, a principios de siglo.

    La aparicin de los dos artculos de Shannon en 1948 y 1949 (el primero de ellossobre teora de la codificacin en las comunicaciones digitales y el segundo [SHA 49]referente a la seguridad de la informacin) da origen a la teora de la informacin, piedraangular para comprender los fundamentos tericos en los que se basa la criptologa.

    Paralelamente, a partir de los aos cincuenta, se desarroll a mpliamente la teora decdi gos, y especialmente la de espacios lineales en cuerpos finitos, que dio origen alestudio de las realimentaciones lineales. Los L.F.S.R. (registros de desplazamientorealimentados linealmente) constituyen el ncleo bsico sobre el que se han construidola mayora de los generadores de cifrado en flujo.

    La parte caracterstica constituyente de todos los cifrados en flujo es el generadorpseudoaleatorio. La problemtica acerca de la generacin de nmeros aleatorioscomienza a mediados de siglo, con los trabajos de Von Newman y Lehmer, entre otros.Los esquemas inventados y los resultados obtenidos, as como la preocupacin porgenerar secuencias que parezcan aleatorias, definir claramente la aleatoriedad, etc... hansido recogidas tambin por la criptografa.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    8

    A continuacin se presenta el cifrado de Vernam, como precursor de los sistemasactuales de cifrado en flujo.

    1.2. El mtodo de cifrado de Vernam

    El cifrado de Vernam (o one-time-pad, como tambin se le conoce) fue propuesto porel ingeniero de la AT&T Gilbert Vernam, en 1918, y modificado posteriormente porJoseph Mauborgne.

    Figura 2.1: Cifrado de Vernam

    Es el antecedente ms parecido, funcionalmente, a los sistemas de cifrado en flujoactuales. El principio bsico consiste en conseguir desacoplar totalmente, bajo un puntode vista estadstico, el mensaje en claro y el criptograma. Es decir, conseguir que suinformacin mutua sea cero. Para alcanzar este objetivo, se dispone de una secuenciarealmente aleatoria que se suma con los bits del mensaje. Shannon, en 1949, demostrque este esquema cumpla la condicin de secreto perfecto que despus definiremos, ypor lo tanto era invulnerable a ataques basados slo en criptogramas. Es un cifrado conseguridad incondicional, incluso con medios de computacin infinitos, el criptoanalistajams ser capaz de obtener el mensaje en claro verdadero.

    Aunque, visto por el lado de la seguridad, es el mejor sistema posible, presenta ungrave inconveniente de ndole prctica: es necesario transmitir tanta cantidad deinformacin por un canal seguro (la clave) como la que se quiere transferir por el canalconvencional. En vez de eso, sera mejor enviar los datos tiles directamente por elcanal seguro. Los sistemas actuales nacen a partir de la poca operatibilidad del sistemaone-time-pad.

    Canal seguro de transmisin de claves

    FUENTEALEATORIA

    BINARIASIMTRI CA

    ki ki

    ci mimi

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    9

    1.3. Teora de la informaci n

    En 1948 y 1949, C. E. Shannon revolucion los sistemas de comunicaciones con susdescubrimientos hechos pblicos en dos artculos. El primer trabajo, en 1948, trataba,entre otras cosas, de las comunicaciones digitales y acerca de la mxima cantidad deinformacin que un canal puede transmitir. Sus aportaciones, con la introduccin delconcepto de entropa, la informacin mutua y la capacidad de canal, le valieron elreconocimiento internacional y la fundacin de una nueva rama de las matemticas: lateora de la informacin.

    Un ao ms tarde, volvi a sorprender a la comunidad cientfica con los resultadosobtenidos en materia de seguridad aplicando los mtodos de su trabajo anterior. Dividila seguridad en dos niveles. Al primero le llam seguridad terica, en tanto en cuanto elpotencial criptoanalista no tiene limitaciones de tiempo ni de capacidad de clculo. Eneste nivel, el sistema de seguridad de considera roto cuando existe una nica solucinpara dicho criptograma.

    Esta teora de la seguridad terica esclareci muchos puntos oscuros y dio nuevorumbo a la criptologa. Introdujo el concepto de secreto perfecto, que brevemente sepuede resumir como aquella situacin en la que el texto en claro es estadsticamenteindependiente de la clave y del mensaje cifrado. Expresado matemticamente:

    )(),( MKCM MCKM PP

    Demostr que el cifrado de Vernam cumple la condicin de secreto perfecto y, portanto, es tericamente seguro. Shannon lleg a describir una manera universal de rompercualquier cifrado inseguro. El resultado pesimista de este concepto es la necesidad deuna clave secreta demasiado larga para la mayora de aplicaciones, pudindose utilizarnicamente una vez.

    El segundo nivel de la seguridad que fue considerado es la seguridad prctica,entendindose como tal aquel sistema en el que el criptoanalista tiene limitaciones detiempo y capacidad de clculo computacional para el anlisis de criptogramas. Msadelante, basados en este tipo de seguridad, se construyeron los sistemas de clavepblica.

    Los generadores utilizados en criptografa en flujo tienden a imitar el cifrado deVernam. Para ello, deben generar una secuencia verdaderamente aleatoria. El primerproblema con el que nos encontramos es definir qu se entiende por aleatoria, y acontinuacin, demostrar que estas caractersticas de aleatoriedad son suficientes paraasegurar la seguridad incondicional. Estos puntos se analizarn con detalleposteriormente. Antes, sin embargo, cabe citar que este tipo de generadores ya ha sidoestudiado anteriormente en la teora de la informacin, aunque en vez de generadores seles suele llamar fuentes. En el caso binario, estas fuentes se denominan fuentes binariassimtricas (B.S.S.: Binary Symmetric Source).

    Las fuentes binarias simtricas se definen como fuentes sin memoria con unaprobabilidad de cada smbolo de 0,5. Se puede demostrar que ste es el nico caso sinmemoria en el cual se consigue una entropa de fuente mxima, de 1. La entropa midela cantidad de informacin que posee la fuente. El concepto de la entropa servir msadelante como una medida de la aleatoriedad de una secuencia. Dado que los algoritmosde cifrado en flujo, en el fondo, no son nada ms que mquinas de estado finito,disponen de una memoria no nula, que obligar a utilizar el concepto de la entropa parafuentes con memoria desarrollada en la teora de la informacin.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    10

    2. Visin genrica del cifrado en flujo

    Desde un punto de vista global, un cifrador en flujo no es ms que una mquina deestados finitos, con un vector de entrada, otro de salida, el estado interno y laspertinentes funciones de salida y de cambio de estado. El modelo ms genrico querepresenta al cifrado en flujo es el siguiente:

    Figura 2.2. Modelo genrico del cifrado en flujo

    La entrada se toma de N smbolos en N smbolos. La salida se agrupa en vectores deL smbolos y el tamao de la memoria es de M smbolos. Los smbolos pueden serelementos de cualquier alfabeto finito, pero es raro encontrar algn sistema de cifradocontemporneo que no considere el alfabeto binario.

    Sin embargo, habitualmente, el cifrado en flujo nicamente utiliza un modelosimplificado. Las funciones de salida y de cambio de estado son fijas, no dependen dela clave, que consiste en el estado inicial requerido. Tanto la entrada como la salida sevan leyendo de bit en bit (N=L=1). La transformacin de salida se descompone en dospartes: la primera, que nicamente acta sobre el estado actual devolviendo un bit, y lasegunda, que suma este bit mdulo dos con el bit del mensaje. El cifrado en flujotambin se puede considerar como un generador pseudoaleatorio que suma cada uno delos bits de salida con los del mensaje.

    Las dos partes ms importantes de esta estructura residen en la funcin de cambio deestado y en la subfuncin de salida. Usualmente, ambas funciones son losuficientemente sencillas como para posibilitar unas velocidades de cifrado muy altas,caracterstica casi universal de los cifradores en flujo.

    FUNCI NDE

    SALIDA

    FUNCI NDE CAMBIODE ESTADO

    ESTADO

    NL

    M

    M

    EntradaSalida

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    11

    Figura 2.3. Modelo convencional del cifrado en flujo

    Hasta hace poco, la funcin de cambio de estado nicamente consista en unarealimentacin lineal sobre unos registros de desplazamiento para conseguir un periodomximo. Esto conllevaba a la necesidad de utilizar una funcin de salida no lineal paraevitar el criptoanlisis sobre la parte lineal. Sin embargo, existe un compromiso en estosesquemas, que pueden ser atacados por dos bandas. Por una parte, se han de evitar losataques por correlacin [SI EG 84], y a la vez los ataques por estabilidad, que buscan lamejor aproximacin afn de la subfuncin de salida [DING 91].

    Considerar el cifrador en flujo como una mquina de estados finitos es un punto devista adicional que ayuda a comprender y analizar mejor su comportamiento. Unaconsecuencia automtica de esta afirmacin proviene de la teora de estados finitos,donde se demuestra que si el tamao de la memoria es finito y la salida no depende de laentrada (como es el caso del modelo simplificado con el generador pseudoaleatorio), lasecuencia generada ser inevitablemente peridi ca.

    3. Sincronismo en los cif radores en f lujo

    Dentro de los sistemas de cifrado en flujo, es posible distinguir dosclasificaciones: los sncronos y los autosincronizantes. La diferencia est en si latransformacin de cifrado utiliza o no el conocimiento de los smbolos previos.

    1

    Salida

    FUNCI NDE CAMBIODE ESTADO

    ESTADO

    M

    M

    Entrada

    Funcindesalida

    SUBFUNCI NDE

    SALIDA

    11

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    12

    Figura 2.4: Sincronismo en el cifrado en flujo

    Los sistemas sncronos y autosincronizantes presentan, de manera resumida, lassiguientes caractersticas:

    SNCRONOS AUTOSINCRONIZANTESEn el cambio de estado no hay dependencia

    con el mensajeEl estado siguiente depende de los ltimos

    L caracteres del mensajeSi hay un error en transmisin, no se

    propagaSi hay un error en transmisin, lainfluencia del error dura L bits

    La prdida de 1 bit rompe el sincronismoLa prdida de 1 bit provoca la prdida desincronismo durante L bits

    La secuencia cifrante es peridi ca La secuencia cifrante es aperidi ca, debidoa la dependencia con el mensaje

    La caracterstica ms relevante de los esquemas sncronos es la prdida desincronismo en el caso de insertar o perder un bit durante la transmisin, y es la quedetermina su escenario de trabajo habitual. En aquellos mbitos en los que es necesariauna transparencia semntica, como en la transmisin de datos, se utilizan sistemassncronos. En cambio, en las aplicaciones como transmisin de voz, o imgenes, dondelos condicionantes temporales son fundamentales se suelen utilizar modelosautosincronizantes.

    Generadorpseudoaleatorio

    MM

    K Generadorpseudoaleatorio

    C

    K

    Cifrado autosincronizante

    Generadorpseudoaleatorio

    MM

    K

    C

    KGenerador

    pseudoaleatorio

    Cifrado sncrono

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    13

    4. Enfoques al cif rado en f lujo

    Tal como Rueppel especifica en [RUEP86], se distinguen cuatro enfoques en laconstruccin de los sistemas de cifrado en flujo. La diferencia se establece en relacinal tipo de seguridad deseado: incondicional, computacionalmente demostrable, probabley condicional.

    Los enfoques son los siguientes:

    Segn la teora de la informacin

    Se parte de la hiptesis de que el criptoanalista posee una capacidad de clculo yun tiempo infinitos; por lo tanto este enfoque est en relacin con el concepto deseguridad incondicional. El sistema se considera roto cuando hay una nicasolucin al criptograma con probabilidad 1.

    Se dice que un sistema es perfectamente seguro cuando el mensaje en claro y elcriptograma son estadsticamente independientes. En tales circunstancias el sistemaes imposible de romper.

    En su defecto, un sistema es idealmente seguro si existe ms de una solucin almensaje en claro, sin importar la cantidad de criptograma observado.

    Un interesante subproblema derivado es aquella situacin en que la cantidad decriptograma de que se puede disponer est limitada; sin necesidad que los dgitossean consecutivos. Es el problema de la aleatorizacin local.

    Segn el sistema terico

    El objetivo de este enfoque es conseguir que el algoritmo de cifrado origine alcriptoanalista un problema previamente no conocido y de difcil solucin, aunqueno est basado en un problema difcil clsico. Por lo tanto este enfoque est enconsonancia con el tipo de seguridad probable. Los sistemas se disean de maneraque resistan los ataques fundamentales como son la substitucin, el anlisisestadstico, el ataque por correlacin,... Algunos ejemplos de criterios en el diseo,que se han ido desarrollando a lo largo de la historia, son el periodo, la complejidadlineal, la confusin, la difusin, las no-linealidades...

    Esta metodologa es, hoy en da, la ms extendida y utilizada para la creacin denuevos sistemas de cifrado en flujo.

    Segn la complejidad ter ica

    El diseador del cifrador basa la fortaleza en un problema computacionalmentedifcil, como son los problemas clsicos del logaritmo discreto, la factorizacin...Est en relacin con el tipo de seguridad computacionalmente demostrable. Elcriptoanlisis consta de dos vertientes. Por una parte, es el proceso de predecir unnico dgito de la secuencia cifrante, y por otra, consiste en poder distinguir lasecuencia cifrante de una realmente aleatoria.

    Se dice que un generador es perfecto si, o bien es impredecible, o bien no esanalizable por ningn test estadstico de tiempo polinomial. Cabe destacar quetodava no se conoce ninguno de estos generadores ni se ha podido demostrar suexistencia (como tampoco negarla).

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    14

    Cifradores de flujo aleatorizados

    Por ltimo, existe un tipo de generadores en los que se asegura que el procesode criptoanlisis es imprctico, no por la capacidad de clculo necesaria, sino por lacantidad de memoria requerida. El objetivo es aumentar el nmero de bits que elcriptoanalista debe examinar sin tener que incrementar el tamao de la clave. Estacaracterstica se consigue haciendo que la clave no especifique el esquema internodel cifrador, sino que indique una secuencia en particular de una lista pblica. Elcriptoanalista no tiene ms remedio que buscar a travs de todas las secuenciasaleatorias.

    5. Ventajas e inconvenient es del cif rado en f lujo

    Los cifradores en flujo gozan de multitud de caractersticas peculiares. Una de lasms relevantes es el pequeo tamao que ocupan en los componentes electrnicos (en laoblea de silicio) y todas las consecuencias que de ah se derivan: poco consumo, baratos,etc... Pero sobretodo, la caracterstica fundamental es la rapidez de cifrado. Son lossistemas ms rpidos que existen, ms rpidos que los cifrados en bloque, y muchsimoms que los sistemas de clave pblica.

    6. Ataques comunes al cif rado en f lujo

    Una vez recogida la informacin en cualesquiera de las modalidades anteriores,existen varias tcnicas para criptoanalizar el criptograma. Los principios bsicos detodos los ataques se basan en los mtodos clsicos como: la substitucin yaproximacin, "divide y vencers", bsqueda de deficiencias estadsticas...Recientemente, han aparecido algoritmos ms sofisticados y potentes, a los que hay quetener en cuenta antes de implementar cualquier cifrador, como es, por ejemplo, elcriptoanlisis diferencial, cuya aparicin provoc el criptoanlisis de muchos esquemasque hasta entonces se crean seguros. Los ataques posteriores ms relacionados con elcifrado en flujo son el ataque por correlacin, el ataque por el mtodo del sndromelineal, el test de consistencia lineal, y el estudio de la estabilidad de las secuencias(tpicamente con el clculo de la mejor aproximacin af n [B.A.A.: Best AfineApproximation]).

    7. Criterios de diseo

    Antes de disear un cifrador en flujo, adems de aspectos relativos a la facilidad deimplementacin, existen algunas caractersticas que todo generador pseudoaleatoriodebera cumplir:1. Longitud de la clave grande

    El nmero total de claves posibles tiene que ser lo suficientemente grande comopara evitar los ataques exhaustivos. El tiempo requerido para comprobar todas lasclaves debe ser enorme, de tal manera que el criptoanalista desista de efectuar unataque exhaustivo.

    2. Periodo largo

    Como mnimo, el periodo ms pequeo de todas las secuencias cifradorasgenerables debe ser mayor que el ms grande de todos los mensajes, de manera que

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 2 El cifrado en flujo

    15

    no haya repeticiones en la secuencia pseudoaleatoria, anlogamente al cifrado deVernam.

    3. Aleatoriedad

    La secuencia cifradora ideal debe aleatoria. Por eso, un importante criterio dediseo es conseguir que la secuencia no presente regularidades, no haya patronesreconocibles... La secuencia debe parecer al mximo una distribucin uniforme,igual que si se tirara una moneda al aire (no trucada, se supone); debe presentarbuenas propiedades estadsticas para poder enmascarar la estadstica del mensaje.

    4. Impredecibilidad

    Por ltimo, pero no por ello menos importante, la secuencia a la salida debe serimpredecible. Trasladado a la secuencia cifrante, debe ser difcil conocer el valorde un smbolo kn, conocidos varios anteriores, (k0, k1, ... , kn-1).

    Entre los autores especializados del cifrado en flujo, existe un consenso acerca delas propiedades caractersticas todos los sistemas, que se traducen posteriormente enalgunos tipos de test. Algunas de ellas tienen que ver directamente con los criterios dediseo. Entre las ms importantes se encuentran:

    El periodo La complejidad lineal El perfil de la complejidad lineal La complejidad de mximo orden La entropa por bit Aleatoriedad k - distribuida etc.

    Todos ellas sern detallados en el captulo 4.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    17

    Cap tul o 3: GENERADORES

    1. Int roduccin

    A lo largo de este captulo, se dan a conocer los generadores pseudoaleatorios msconocidos, su esquema de funcionamiento, propiedades ms relevantes y mbito deaplicacin.

    Bsicamente, los algoritmos ms frecuentes siguen el modelo convencional decifrado en flujo, con un generador pseudoaleatorio y una suma binaria. El estudiopresentado en este captulo se centra en los sistemas de generacin de dgitos binariosaleatorios.

    La clasificacin que a continuacin se presenta de los generadores pretende serprctica, y sencilla a la vez. Est realizada desde el punto de vista del criterio de diseo,atendiendo a su estructura interna. El software SSP que acompaa a este documentopresenta la misma clasificacin.

    Congruenciales

    Registros de desplazamiento realimentados

    Funciones de salida

    Controlados por reloj

    En cascada

    En bloque

    Sera imposible poder mencionar todos y cada uno de los que se han propuesto.Aunque en los ltimos aos se hayan publicado una gran cantidad de generadores, en laprctica, slo algunos son los ms representativos y, dentro de stos, pocos tienenutilidad prctica hoy en da. Por eso slo se comentarn los generadores ms habituales,y los que dan una visin de conjunto para cada tipo de diseo. Casi todos ellos han sidoimplementados en software en el programa.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    18

    A continuacin se comentarn las caractersticas de cada generador, as como suspropiedades ms relevantes. Posteriormente, tras estudiar detenidamente en el prximocaptulo, los diferentes mtodos de tests existentes, se mostrarn los resultados de laaplicacin de dichos tests a cada algoritmo de generacin de nmeros aleatorios.

    2. Generadores congruenciales

    Se ha incluido el estudio de estos generadores por su importancia histrica y sutodava masiva utilizacin en los sistemas informticos para producir nmerospseudoaleatorios. Por ello se ha credo conveniente incorporarlos para comprobar suspropiedades estadsticas y compararlas con las de los dems generadores.

    2.1. Lineales y afinesSu descripcin matemtica es muy sencilla:

    Como es obvio, los congruenciales lineales son un caso particular de loscongruenciales afines. Todos los resultados sern obtenidos para el caso del generadorafn, directamente aplicables al caso lineal substituyendo por cero all donde pone c.

    Se puede demostrar que cualquier valor de la secuencia est determinado por losvalores iniciales de a, c, m y x0, segn la siguiente expresin:

    x a xc a

    amn

    nn

    = + -

    -

    0

    11

    ( )mod

    Realmente no hay ningn algoritmo determinista que pueda generar nmerosaleatorios, ya que una vez fijados los parmetros iniciales, tambin se determinanautomticamente todos los nmeros originados de dicho sistema.

    Todo sistema generado mediante una funcin recursiva

    x f x xn n i m= -( )1 Z

    y que opere con un nmero finito de nmeros, a la larga, muestra inevitablemente uncomportamiento cclico, y los valores acaban por repetirse. La longitud de cada ciclo sedenomina periodo (p). El periodo mximo de la secuencia resultante es m (siendo m elmdulo, y tambin el nmero de elementos del conjunto finito en el cual se generan losnmeros pseudoaleatorios).

    Los generadores congruenciales se corresponden a esta descripcin. En el caso de loscongruenciales afines, el periodo mximo tambin puede ser de m (pngase el caso mssencillo, un contador: a=0, c=1), pero en los congruenciales lineales, el periodo mximoes de m-1, pues el valor 0 da lugar a un ciclo cerrado sin ms elementos.

    Congruencial lineal: x a x mn n= - 1 modCongruencial afn: x a x c mn n= +- 1 mod

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    19

    Uno de los objetivos en el diseo de generadores es conseguir periodos largos. Paraello, se toma m grande. De todas formas, un elevado valor de n no supone ningunagaranta a la hora de conseguir un periodo grande. El periodo mximo puede ser m, peroel que realmente resulta puede ser muy pequeo. Para asegurar un periodo mximo,existen estudios elaborados que han buscado qu condiciones son las que propician estasituacin.

    Para conseguir mximo periodo en los generadores congruenciales afines esnecesario y suficiente que se cumplan las siguientes condiciones:

    a) mcd m c( , ) = 1 (m y c son primos entre s)b) -q primo tal queq m q a| |( )1c) 4 4 1| |( )m a -

    En los generadores congruenciales lineales, el periodo mximo se consigue si:

    a) mcd x m( , )0 1= (x0 y m son primos entre s)b) a es un elemento primitivo mdulo m

    Un elemento es primitivo cuando mediante sucesivas exponenciaciones puedegenerar a todos los elementos del conjunto finito. Un nmero a es un elementoprimitivo mdulo pe si y slo si se cumple alguna de estas condiciones:i) pe = 2 y a es impar

    ii) pe = 4 y a mod 4 3=

    iii) pe = 8 y a mod , ,8 357=iv) p = 2 , e 4 y a mod ,8 35=

    v) p es impar, e= 1, a p 0 (mod ) y a pp q( )/ (mod )- 1 1 -q primo q p|( )1

    vi) p es impar, e 1, a cumple (v) y adems, a pp( ) (mod )- 1 21

    Las demostraciones detalladas se pueden encontrar en [KNUT67].

    Para no tener que buscar parmetros que cumplan las condiciones impuestas arriba,se adjunta en el apndice A una lista de algunos generadores utilizados, con susrespectivos parmetros.

    En el caso de secuencias binarias, se precisa un algoritmo que genere secuencias debits. Por esta razn, los generadores congruenciales implementados, despus de calcularel nmero xn, devuelven cero si el nmero est por debajo de la mitad del mdulo, yuno, en caso contrario. En general, si se toma el bit de menor peso del estado seobtienen peores prestaciones, en cuanto a aleatoriedad, que tomando el de mayor peso.

    Debe tenerse en cuenta que el periodo natural de la secuencia en el conjunto de losnmeros enteros puede verse reducido al realizar la conversin a bit. Una manera deobtener periodos ms largos, sin estar limitados por el tamao de la palabra delordenador, es combinando varios generadores. El periodo mximo resultante es elmnimo comn mltiplo de los periodos mximos de todos ellos.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    20

    La gran ventaja de los generadores congruenciales es que son rpidos, puesto querequieren pocas operaciones por bit. Sus propiedades de correlacin, as como supredecibilidad debido a su estructura lineal no aconsejan su uso en criptografa ni enCDMA. Jim Reeds mostr cmo poda romperse la seguridad del algoritmo .

    2.2. Polinmi cos

    Con el fin de evitar las linealidades de los dos mtodos anteriores, se pens en idearla misma iteracin de recurrencia, pero con una funcin f(!) no lineal, que continuasesiendo computacionalmente sencilla. R. R. Coveyou propuso un mtodo cuadrticobastante interesante,

    x x xn n ne= +- -1 1 1 2( ) mod

    ya que la carga computacional es la misma que en el congruencial afn, y el mdulo esuna potencia de dos que permite operar fcilmente en los ordenadores, sin preocupacinpor el desbordamiento. Posteriormente, se fue generalizando a sistemas polinmicos degrados cbicos...

    El siguiente smbolo depende del anterior en forma polinomial, de la siguiente forma:

    donde k es el grado del polinomio (con k=1, estamos en el caso afn) y sigue habiendo lareduccin modular final.

    El mtodo sigue consistiendo en una frmula de recurrencia que nicamente dependedel smbolo anterior y, por tanto, el periodo mximo que cabe esperar es de m. Lascondiciones matemticas en las que se cumple el periodo mximo son mucho mscomplejas que en los generadores anteriores.

    Aun poseyendo varias multiplicaciones y exponenciaciones, el mtodo sigue siendobastante rpido (para k razonables), como todos los congruenciales. E, igual que antes, apesar de tener una funcin no lineal para el cambio del estado, estos generadores se hanpodido romper bajo un punto de vista criptogrfico.

    Joan Boyar ide un ataque criptoanaltico que predeca los valores para losgeneradores cuadrticos y cbicos. Otros investigadores han extendido el trabajo deBoyar para romper cualquier generador congruencial polinmico.

    Estos generadores, a pesar de ofrecer buenas propiedades aleatorias, son muypredecibles, y por lo tanto, inservibles para la criptografa. Ms adelante, con losL.F.S.R. se volver a reafirmar la diferencia entre la aleatoriedad y la predictibilidad.

    2.3. De Fibonacci

    Posteriormente, se ide una tcnica para aumentar el periodo de las secuenciasgeneradas sin tener que estar limitados por el mdulo. El procedimiento consiste enhacer depender a xn no slo del smbolo anterior, sino de los dos smbolos anteriores:

    x f x xn n n= - -( , )1 2

    Congruencial polinmico: ( )x a x a x a mn k nk n= + + +- -1 1 1 0! mod

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    21

    Expresado de forma congruencial, con la frmula ms simple, queda la conocidasecuencia de Fibonacci:

    x x x mn n n= +- -1 2 mod

    El periodo en las secuencias de Fibonacci normalmente suele resultar algo mayor quem, pero un anlisis con varios tests estadsticos demuestra que no son suficientementealeatorias.

    Posteriormente, Green, Smith y Klem generalizaron las secuencias de Fibonacci auna dependencia con los k smbolos anteriores:

    x f x xn n n k= - -( , , )1 !

    ampliando el periodo enormemente (hasta mk) y mejoraban las prestaciones dealeatoriedad.

    El periodo mximo que se puede conseguir con los mtodos en que el smbolosiguiente depende de los dos anteriores es de m2, ya que la secuencia no comenzar arepetirse hasta que los smbolos consecutivos coincidan. O sea, el periodo ser el valorp, tal que:

    ( , ) ( , )x x x xn p n p n n+ + - -=1 1

    3. Regist ros de desplazamient o realiment ados ( F.S.R.)

    El esquema de los registros de desplazamiento realimentados es la pieza clave sobrela cual se apoyan la mayora de generadores pseudoaleatorios, y construyen, a modo demecano, agrupando y combinando F.S.R., nuevos mecanismos de generacin denmeros aleatorios.Un F.S.R. se compone de 2 partes:1. Un registro de desplazamiento (memoria)2. Una funcin de realimentacin ( funcin de cambio de estado)

    Figura 3.1. Registro de desplazamiento realimentado

    Congruencial de Fibonacci: ( )x x x mn n n= +- -1 2 mod

    SL-1 SL-2 S2 S1 S0

    Funcin de realimentacin

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    22

    Se contemplar el caso binario, es decir, en el que cada celda representa un bit y lafuncin de realimentacin tiene coeficientes binarios. En este caso las celdas sonimplementables mediante un biestable. Los F.S.R. son famosos, en gran parte, debido aesta facilidad de implementacin en hardware digital, que los hace sencillos,econmicos y pequeos.

    El mecanismo de funcionamiento viene determinado por un reloj. A cada impulso dereloj, todos los bits del registro de desplazamiento se desplazan hacia la derecha unaposicin. El bit de la salida usualmente se corresponde con el bit de menor peso. Elnuevo bit, el de mayor peso, se calcula en funcin del valor de los bits del registro.

    Las secuencias de salida son peridicas. Tanto el periodo como muchas otrascaractersticas de los F.S.R. comenzaron a ser estudiadas a mediados de los aos 60 porErnst Selmer, el criptgrafo en jefe del gobierno noruego. Dos aos ms tarde, SolomonGolomb, un matemtico de la N.S.A., public un libro con los resultados de Selmer yalgunos propios, que an sigue siendo una referencia clsica [GOLO67].

    Bsicamente, los F.S.R. se dividen en dos grandes grupos, diferenciados por el tipode realimentacin que exista. Por una parte, estn las realimentaciones lineales, en lasque el bit realimentado es una combinacin lineal de los bits anteriores, los llamadosregistros de desplazamiento realimentados linealmente (ms brevemente, L.F.S.R), y porotra, est el gran grupo de todas las realimentaciones que no cumplen la condicin delinealidad, por lo que se las llama registros de desplazamiento realimentadosno-linealmente (o N.L.F.S.R.)

    3.1. L.F.S.R.

    Los F.S.R. ms sencillos son los L.F.S.R. La funcin de realimentacin es,simplemente, la XOR de ciertos bits del registro. A esta configuracin tambin se lallama configuracin de Fibonacci, por la similitud con el mtodo de Fibonaccimencionado arriba para generar nmeros.

    Inicialmente, los L.F.S.R. fueron utilizados en la codificacin de canal para lageneracin de las palabras de los cdigos bloque. Paralelamente, desde los inicios de laera electrnica, los sistemas de cifrado en flujo con registros de desplazamientorealimentados han sido el caballo de batalla de la criptografa militar. No es de extraar,pues, que muchos de los resultados hayan provenido tambin de este campo(nicamente basta recordar la identidad de Selmer y Golomb, pertenecientes a lasagencias nacionales de seguridad de sus respectivos pases).

    El esquema general de un L.F.S.R., as como la nomenclatura utilizada se muestranen la figura 3.2. L representa el nmero de celdas del L.F.S.R. Los estados serepresentarn mediante la letra S y los coeficientes de la realimentacin con la letra r.La numeracin comienza por la salida, desde cero hasta L-1, tanto para las celdas comopara los coeficientes de realimentacin. La funcin de realimentacin (lineal) se expresamediante el siguiente polinomio:

    P x x r x r x r x rrealimentacionL

    LL( ) = + + + + +-

    -1

    12

    21 0!

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    23

    Figura 3.2: Esquema general de un L.F.S.R.

    Esta notacin facilita la identificacin de cada coeficiente con su celdacorrespondiente, que no cambia aunque se modifique el tamao del registro. En aras deestablecer una unicidad de criterios, a lo largo de este libro se identificar a las celdascon un ndice menor como las de menor peso, y a las contrarias como las de mayor peso.

    Otra notacin, bastante generalizada, consiste en utilizar el polinomio caractersticoen lugar de utilizar el polinomio de realimentacin. En ella, los coeficientes seacostumbran a escribir con una c mayscula C, y la numeracin comienza a partir de lacelda de mayor peso con un 1, y acaban con la de menor peso, con L. Cada notacin esconveniente segn la situacin, y sern utilizadas indistintamente, indicandopreviamente, claro est, la que se vaya a utilizar. Dichos polinomios, el derealimentacin y el caracterstico, se relacionan entre s por ser uno el recproco del otro.

    1)( 12

    21

    1

    xCxCxCxCxPL

    LL

    Lticocaracters

    xPxxP cinrealimenta

    Lticocaracters

    1

    Hay que sealar que el esquema del L.F.S.R. no est restringido nicamente al casobinario, sino a cualquier tipo de cuerpo, finito o infinito, como pueden ser los reales.

    El funcionamiento es como sigue. En cada impulso de reloj, los valores de las celdasse multiplican por sus respectivos coeficientes y se suman para dar el nuevo valor (celdade mayor peso) y a la vez que todos los dems bits se desplazan una posicin a laderecha. As, los L primeros trminos de la secuencia de salida coinciden con elcontenido inicial de las celdas, y los siguientes trminos vienen determinados por laecuacin de recurrencia (utilizando el polinomio caracterstico):

    s C s V Lj k j k jk

    L

    1

    -rL-1 -r2 -r1 -r0

    SL-1 . . . S2 S1 S0

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    24

    En el caso binario, las operaciones de restar y sumar son equivalentes, y loscoeficientes nicamente pueden ser ceros o unos. Fsicamente, cuando hay un cerosignifica que no hay conexin, y cuando hay un uno s la hay, aplicando el bit de la celdadirectamente sobre el sumador.

    Un L.F.S.R. de L celdas tiene 2L vectores de estado diferentes. Sin embargo, comola operacin de recursin es lineal, cuando el contenido de las celdas es de todo-ceros, elbit resultante de la realimentacin tambin es cero, y el L.F.S.R. vuelve a quedarse en elmismo estado, es decir, dicho estado es absorbente. Por eso, como la secuencia generadapor un L.F.S.R. acaba siendo peridica, el periodo mximo que se puede esperar es de2 1L - . En este caso, la secuencia se conoce como una m-secuencia (del ingls:maximum-length sequence). Slo los L.F.S.R. con las conexiones apropiadas puedengenerar m-secuencias. Para que haya periodo mximo, el polinomio de realimentacindebe ser primitivo mdulo 2. Para aclarar conceptos, se ilustra el siguiente ejemplo. Setiene un L.F.S.R. de 3 celdas con un polinomio de realimentacin f ijado por:

    r

    r

    r

    0

    1

    2

    1

    0

    1

    =

    =

    =

    Los polinomios de realimentacin y caracterstico son los siguientes:

    123 ++= xxP cinrealimenta13 ++= xxP ticocaracters

    Figura 3.3: Ejemplo de un L.F.S.R.

    Suponiendo un estado inicial ( , , ) ( , , )S S S2 1 0 0 0 1= (recordemos que se ha de evitar elestado inicial nulo), la secuencia que se origina es la siguiente:

    S2 S1 S0

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    25

    Tiempo Estado Salida0 001 11 100 02 110 03 111 14 011 15 101 16 010 07 001 18 100 09 110 010 111 1

    Se puede apreciar que a partir del sptimo instante de tiempo, el estado vuelve acoincidir con el inicial y la secuencia de salida se repite. En este caso tenemos unasecuencia de periodo 7, que, como se ha dicho anteriormente, es el mximo para unLFSR de 3 celdas. Por lo tanto, el polinomio utilizado es un polinomio primitivo.

    Un polinomio de grado L es primitivo si y slo si divide a xL2 1 1- + , pero no divide a

    ningn polinomio del tipo xd +1, para cualquier d menor que 2 1L - . De hecho,realmente sl o es necesario comprobar que no divide a ningn xd +1 siendo dcualquier divisor de 2 1L - .

    En general, no existe ningn mtodo simple y universal para generar polinomiosprimitivos, ni tampoco para comprobar si un polinomio dado es primitivo o no. Paraciertos grados dichos polinomios estn tabulados, y el proceso habitual consiste enrealizar bsquedas en dichas tablas [PET 72]. Lo que s es fcil es generar polinomiosirreducibles o comprobar que lo son. Todo polinomio primitivo es irreducible, pero locontrario no siempre es cierto. Slo es cierto cuando 2 1L - es primo. En tales casos,se dice que el primo es un primo de Mersenne. Resumiendo, para comprobar si unpolinomio es primitivo, se calcula 2 1L - . Si es primo, nicamente es necesariocomprobar que es irreducible, puesto que todos los polinomios irreducibles tambinsern primitivos. Si no es primo, existen varios tipos de test que pueden detectar si unpolinomio no es primitivo (como por ejemplo, que el nmero de coeficientes sea par,...).Aunque estos tests no pueden demostrar que un polinomio es primitivo, aumentan lasprobabilidades de que lo sea, en el caso de no saber si lo es o no. Para facilitar labsqueda de un polinomio primitivo mdulo dos, en el anexo se listan algunos.

    Visto al revs, la ventaja de conocer los primos de Mersenne es que, si se quiereencontrar un polinomio primitivo rpidamente, basta con tomar un nmero 2 1L - quesea primo (primo de Mersenne) y encontrar un polinomio irreducible de grado L. Elproblema aparece debido a que hay pocos primos de Mersenne (sl o hay 27 conL 45000. ).

    Una vez est asegurado el periodo mximo, en las m-secuencias, Golomb demostralgunas propiedades aleatorias de los L.F.S.R. mediante anlisis matemtico, a partir delas cuales enunci sus famosos tres postulados de aleatoriedad, que ms tarde sedescribirn. Por eso, a estas secuencias tambin se las llama pseudo-ruido(Pseudonoise-sequences).

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    26

    Aunque los L.F.S.R. cumplen propiedades aleatorias muy buenas y es posibleasegurar un periodo muy grande, no son tiles bajo un punto de vista criptogrfico, porser fcilmente predecibles, ni en entornos CDMA, ya que el nmero mximo desecuencias m de familias con correlacin c ruzadas pequeas es insuficiente.

    Por definicin, una secuencia realmente aleatoria es impredecible, pero en losesquemas deterministas de generacin de secuencias finitas, estrictamente, el conceptode la aleatoriedad no tiene sentido, y lo que se hace es medir ciertos parmetrosasociados con la aleatoriedad. El hecho que una secuencia cumpla estas caractersticas(como, por ejemplo, que el nmero de unos sea igual al nmero de ceros, o por el estilo)no implica necesariamente que tenga que ser impredecible. Adems, se ha de tener encuenta que tampoco tiene sentido hablar de predecibilidad si no se menciona qu tipo depredictor estamos utilizando. En la mayora de los casos, el predictor es lineal, por loque las secuencias generadas mediante algoritmos lineales, como son los L.F.S.R., sepredicen fcilmente. Es decir, en las secuencias finitas, una secuencia puede ser muyaleatoria, pero tambin muy predecible; el ejemplo ms claro son los L.F.S.R.

    En cualquier caso, la complejidad lineal de los L.F.S.R. puede tomar un valormximo de 2L (en las m-secuencias), lo que significa que bastan 2L bits paracaracterizar completamente el estado inicial y las conexiones de un L.F.S.R. de L celdas.Adems, existe un algoritmo eficiente propuesto por Massey [MAS 76] que permitecalcularlo rpidamente.

    3.2. F.S.R. con realimentacin no- lineal

    El hecho de que la realimentacin sea de tipo lineal no atiende a ninguna necesidadespecial. Simplemente, es ms fcil analizar matemticamente los sistemas que sonlineales que los que no lo son, y se pueden establecer las condiciones ptimas de diseoen las que se consiguen las propiedades deseadas. Sobre la teora no-lineal de loscdigos, cada da se sabe ms; no obstante, todava quedan muchas lagunas sin cubrir,por lo que an no estn claros los mtodos de diseo que aseguran unas buenaspropiedades estadsticas, un gran periodo, una gran complejidad lineal, etc.

    A pesar de todo, se han propuesto algunos esquemas con una realimentacinno-lineal, algunos, con una funcin de realimentacin con memoria (como los F.C.S.R.[KLA 95], [KLA 97]) otros, con unos factores de orden mayor que 1 (como el propuestoen [CRU 95]), en otros, intentando conseguir un periodo mximo (como en lassecuencias de De Bruijn). En todos los casos, el esquema general es como sigue:

    Figura 3.4: Sistemas F.S.R. no-lineales

    SL-1 SL-2 S2 S1 S0

    Funcin de realimentacin no-lineal

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    27

    Para el anlisis sistemtico y la representacin cannica de estos sistemasno-lineales, existen varias notaciones, las ms extendida es la forma normal algebraica(A.N.F.), que refleja directamente la suma de productos:

    f x x x a a x a x a x a x x a x x xn n n n n( , ,..., ) ... ... .....1 2 1 1 2 2 12 1 2 12 1 2= + + + + + + +

    3.2.1. N.L.F.S.R. del dept. de M.A.I.T.E.

    La mayora de los sistemas prcticos actuales se basan en un registro dedesplazamiento, mayoritariamente en el L.F.S.R. La caracterstica lineal de L.F.S.R. essu punto dbil y origen de todos sus problemas, pero por lo dems, presenta unaspropiedades muy deseables por cualquier generador. Entre otras, una posible solucinconsiste en utilizar mdulos F.S.R. con realimentacin no-lineal.

    Un ejemplo de estos generadores es el presentado en [CRU95]. Su estructura essimple, permitiendo un crecimiento modular y favoreciendo una implementacinhardware no costosa. Se consigui un gran periodo, aleatoriedad y una gran complejidadlineal. La caracterstica de no-linealidad del generador obtenido le confiere la robustezque le falta al L.F.S.R.; por eso, se pens en utilizar este generador como su substitutoen todos los esquemas que incluyen un L.F.S.R.

    En el esquema se puede apreciar que el sistema emula un L.F.S.R. aadiendo unano-linealidad de tercer orden. Hacerla de segundo orden se pens que era demasiadopequea ante la posibilidad de ataques por medio de la complejidad cuadrtica. Elclculo de la complejidad cbica es muy costoso computacionalmente, y el generadordiseado presentaba buenas propiedades, por lo que se estim que era suficiente sinnecesidad de complicar ms el diseo.

    Figura 3.5: Esquema del generador N.L.F.S.R. del dept. de M.A.I.T.E.

    b

    SL-1 SL-2 S2 S1 S0

    a c

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    28

    La ecuacin de recurrencia que describe el comportamiento del N.L.F.S.R. es:

    s t s t r s t s t s t s t s tn i i a b a b ci

    L

    ( ) ( ) ( ) ( ) ( ) ( ) ( )= + + =

    -

    0

    1

    donde a, b y c son los ndices que indican las celdas con conexin a la puerta AND.

    Al igual que el L.F.S.R., el estado nulo es absorbente. El periodo y la complejidadlineal que puede llegar a tener este generador se ha comprobado que pueden llegar aalcanzar los valores mximos, mediante las conexiones adecuadas.

    Periodo

    C Lmax

    L

    maxL

    = -

    = -

    2 1

    2 2. .

    Un anlisis ms detallado acerca de las condiciones que han de poseer las conexionesy las prestaciones de este generador se pueden encontrar en [SOR96]

    4. Generadores con funciones de salida

    Los generadores descritos en el apartado anterior, basados nicamente en un registrode desplazamiento realimentado adolecen de dos problemas. Por una parte, si larealimentacin es lineal (los L.F.S.R.), es posible asegurar un gran periodo, unas buenaspropiedades aleatorias; pero son muy predecibles, y por lo tanto, inseguroscriptogrficamente. Por otra parte, cuando se trabaja con realimentaciones no-lineales,dado que la teora no-lineal de los cuerpos finitos no est suficientemente desarrollada,no es posible realizar un anlisis criptoanaltico tan sistemtico como en el caso lineal, ylos sistemas resultan ser ms seguros. Sin embargo, por la misma razn, no se conocenmedios para asegurar largos periodos, ni tampoco buenas propiedades aleatorias. Esnecesario realizar una bsqueda exhaustiva para encontrar las conexiones que ofrecenbuenas propiedades.

    Una solucin intermedia ampliamente adoptada consiste en utilizar uno o variosgeneradores L.F.S.R. para poder asegurar la aleatoriedad y el periodo, pero la salida nose toma directamente de una de las celdas del registro de desplazamiento, sino que losestados de los generadores se combinan mediante una funcin para obtener el bit desalida. En aplicaciones criptogrficas dicha funcin debe ser no lineal. No es necesarioque los subgeneradores bsicos consistan en L.F.S.R., pueden ser tambin otros tipos degeneradores conocidos que presenten buenas propiedades, pero lo normal es utilizar sloL.F.S.R. con polinomios de realimentacin pr imitivos, debido a que son sencillos, pocovoluminosos, rpidos, econmicos y fciles de implementar.

    Una de las primeras propuestas que combinaba varios L.F.S.R. para mejorar suscaractersticas fue realizada por Gold, con aplicaciones en CDMA. El objetivo de estafamilia de secuencias generada mediante estos dispositivos es conseguir quecorrelaciones cruzadas entre ellas presentaran picos pequeos. Su idea era sumar lasalida de dos L.F.S.R., y aunque esta combinacin es lineal, es un primer paso a lossistemas que combinan varios L.F.S.R. En el captulo 5 se explicar este generador conmayor profundidad.

    Desde un punto de vista prctico, en el entorno criptogrfico, existen dos situacionesimportantes:

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    29

    a) Filtrar no linealmente el estado de un L.F.S.R.b) Combinar las secuencias de salida de varios L.F.S.R.

    El primer caso (a) se conoce como los generadores con filtro de salida, y elsegundo (b), como el tipo de generadores combinadores. Los sistemas con filtro sepueden considerar como un caso especial de los sistemas combinadores, pero debido aalgunas diferencias en el anlisis matemtico y en la descripcin de las caractersticas,es conveniente considerarlos por separado.

    Su evolucin ha sido favorecida principalmente por dos factores:

    1 La tecnologa V.L.S.I.:

    A medida que iban estando disponibles mejores mtodos para la sntesis deregistros de desplazamiento, y sobretodo componentes combinadores como losmultiplexores, los flip-flops, etc...

    2 Las propiedades tericas son demostrables.

    Como los subgeneradores internos consisten en L.F.S.R., la mayora depropiedades tericas de estos generadores, tales como el periodo, la complejidadlineal, las estadsticas aleatorias..., son demostrables y calculablesmatemticamente, a pesar de la funcin no- lineal en la salida.

    En el mbito de la criptografa las funciones de salida deben ser no lineales. Una delas precauciones que se deben tomar en su diseo es mantener la aleatoriedad de lasecuencia. El otro gran problema es conseguir una buena impredecibilidad, evitando lasntesis lineal por el algoritmo de Massey y cualquier ataque criptoanaltico. El futuro deestos generadores es incierto debido a la continua aparicin de nuevos ataques sobreestos sistemas. Por eso, para garantizar la seguridad, es necesario analizar con muchodetalle las propiedades; hay muchos requisitos que cumplir para evitar cada uno de losataques. Esto ha restado flexibilidad al diseo, hay mucha rigidez, se va perdiendo laconfianza y va aumentando el desinters respecto a estos sistemas.

    Para conocer las propiedades genricas de los sistemas combinadores y con filtros,los ataques criptoanalticos sobre estos esquemas y los criterios no lineales de diseo,vase [SIMM92].

    4.1. Filtros

    La figura 3.6 muestra un esquema genrico de filtrado no lineal. El esquema consistebsicamente en un registro de desplazamiento (habitualmente con realimentacin lineal)y una funcin de salida no lineal que opera con los bits del estado del registro. La salidade esa funcin no lineal da lugar a la secuencia, aunque en algunos casos dichasecuencia puede constituir la entrada de otro bloque.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    30

    Figura 3.6: Descripci n de las funciones de salida con filtro

    EstructuraL.F.S.R. de tamao L

    Funcin de salida ( )f GF GFL: ( ) ( )2 2Estado inicial S(0) del L.F.S.R.

    Funcionamiento1. Desplazar L.F.S.R.2. Calcular y t f t( ) ( ( ))= S

    SalidaLa secuencia y(t)

    4.1.1. Generador por rotacin mltiple.

    En [FUS 91] se present un esquema de cifrado basado en una funcin de filtradoaltamente no-lineal. El subgenerador bsico es un L.F.S.R. de L celdas con unpolinomio de conexin primitivo. El valor de L se escoge de forma que cumpla lacondicin:

    L n n= + 2para n cualquier nmero entero.

    La funcin de filtrado consiste en una rotacin mltiple de ciertos bits del estado delL.F.S.R.

    Funcin lineal

    Funcin no-lineal (FILTRO)

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    31

    Figura 3.7: Generador por rotaci n mltiple

    El mecanismo comprende los siguientes pasos:1 El L.F.S.R. se desplaza una posicin.

    2 Los n bits de mayor peso (R0,...,Rn-1) indican el nmero de rotaciones que debenrecibir los otros 2n bits (X0,...,X2n -1). La rotacin consiste simplemente en undesplazamiento circular de los bits a la derecha.

    3 Una vez efectuada la rotacin, los bits rotados son almacenados en un registro dedonde se irn extrayendo los bits para sumarlos con el mensaje. Dado que medianteuna rotacin se obtienen n bits, la entrada se agrupa de n en n bits y se suma mdulo2 cada bloque de n bits con la salida del rotador.

    Una de las grandes ventajas de este esquema es que permite una modelizacinmatemtica, lo que posibilita un estudio analtico de las caractersticas propias de estapropuesta.

    La funcin de rotacin es una funcin booleana que mapea un vector binario L-dimensional sobre un espacio binario de n bits:

    Rotacin R R X X Y Yn n n:( ,..., , ,..., ) ( ,..., )0 1 0 2 1 0 2 1

    De forma matricial:

    R X Y

    donde la matriz R corresponde a una matriz de Toeplitz con los 2n minterms respectivosdel vector R:

    Rotacin mltiple

    c3m3

    c2m2

    c1m1

    c0m0

    (Y0,...,Y2n -

    (R0,...,Rn-1)

    (X0,...,X2n -

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    32

    R =

    m m m m mm m mm m m

    m m

    n

    n

    0 2 1 3 2 1

    1 0 2

    2 1 3

    2 1 0

    -

    -

    """""

    Tambin se ha realizado un anlisis matemtico fundado en la notacin A.N.F., delque se han extrado las siguientes conclusiones:

    1 Cada una de las 2n secuencias generadas (una por cada Yi ) tienen el mismo periodoque el nmero de estados del L.F.S.R. Si el L.F.S.R. es un generador dem-secuencias, el periodo es de 2L-1

    2 La funcin booleana para cada bit de salida incluye un trmino lineal y n

    kk

    2

    trminos de cada uno de los posibles ordenes pequeos (k=1,2,...), lo que asegurauna distribucin uniforme de ceros y unos a lo largo de la secuencia.

    3 El valor de la complejidad lineal de cada una de las secuencias est acotada inferiory superiormente por la expresin:

    L

    nC L Y

    L

    ki k

    n

    +

    =

    +

    1 01

    . .( )

    4 No existe correlacin entre cualquiera de las 2n secuencias y la secuencia quegenerara el L.F.S.R., siendo, por lo tanto, inmune a ataques por correlacin.

    4.2. Combinadores

    La evolucin de las funciones combinadoras se ha visto muy condicionada por losmtodos criptoanalticos a medida que han ido apareciendo.

    Uno de los ejemplos ms simples de generadores combinadores son los de Gold yKasami. En ambos casos, la salida equivale a realizar una XOR de dos o tres LFSR, talcomo se ver en el captulo 5.

    Las primeras funciones combinadoras carecan de memoria, y normalmente secorrespondan directamente con algn componente electrnico como biestables JK,multiplexores... La aparicin del criptoanlisis por correlacin anul la utilidad de estossistemas. Desde entonces, una nueva imposicin en el diseo ha sido conseguir que lainformacin mutua entre las entradas y la salida sea cero.

    Hace poco han aparecido algunas funciones combinadoras con memoria, que intentanevitar el ataque por correlacin. El generador pionero en este tipo de diseo es elsumador real de Rueppel, que posteriormente ser analizado. Despus de l, hanaparecido otros muchos diseos con memoria, y algunos algoritmos criptoanalticos quemuestran debilidades de estos sistemas en algunas situaciones concretas [MEIE92].

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    33

    Figura 3.8: Funciones combinadoras

    EstructuraN generadores L.F.S.R. (no necesariamente del mismo tamao)

    Funcin de salida ( )f GF GFN: ( ) ( )2 2N estados iniciales Sj(0) para cada uno de los N L.F.S.R.

    Funcionamiento1. Desplazar los N L.F.S.R.2. Extraer los bits bj de cada L.F.S.R.

    3. Calcular y t f b t b t b tN( ) ( ( ), ( ),..., ( ))= 1 2 Salida

    La secuencia y(t)El periodo mximo alcanzable es el mnimo comn mltiplo de los periodos de las

    secuencias de entrada a la funcin combinadora. Si la funcin no tiene memoria, en estecaso, el mximo esperable es el mnimo comn mltiplo de los periodos de entrada.Para conseguir este requisito, se suele imponer que los grados de los polinomios seanprimos entre s. La complejidad lineal puede llegar a valer igual que el periodo.

    Para conseguir una buena estadstica en la salida, se suele imponer que las secuenciasde entrada posean propiedades aleatorias, y a la vez, se impone que la funcincombinadora no distorsione estas propiedades.

    4.2.1. Generador de Geffe

    Este generador usa tres L.F.S.R. combinados no-linealmente mediante unmultiplexor. Dos de los L.F.S.R. son las entradas al MUX, y el tercer L.F.S.R.selecciona cul de las entradas se toma como salida. Si a0, a1, y asel son las salidas de losdos L.F.S.R. de entrada y del seleccionador, respectivamente, la salida se puededescribir como:

    b a a a asel sel= + 0 1

    FUNCI N

    COMBINADORA

    SUBGENERADOR

    SUBGENERADOR

    SUBGENERADOR

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    34

    Figura 3.9: Generador de Geffe

    Si los L.F.S.R. tienen longitudes n0, n1 y nsel, respectivamente, entonces lacomplejidad lineal del generador es:

    n n n nsel sel + + 0 11( )

    El periodo del generador es el mnimo comn mltiplo de los periodos de los tresgeneradores. Suponiendo que los grados de los tres polinomios primitivos derealimentacin son primos entre s, el periodo obtenido es el producto de los periodos delos tres L.F.S.R.

    Aunque a primera vista podra parecer un buen generador, no es criptogrficamenteseguro y resulta vulnerable a los ataques por correlacin [ZENG89]. La salida delgenerador es igual a la del L.F.S.R.-0 en el 75% de los bits. Por eso, si las conexionesse conocen, se puede adivinar el estado inicial del L.F.S.R.-2 y generar la salida de esteregistro. Despus, se pueden contar el nmero de veces que la salida del L.F.S.R.coincide con la del generador. Si se adivin mal, las dos secuencias sern igualesaproximadamente el 50% de las veces. Cuando se acierta, las dos secuencias serniguales en sus partes, as se puede saber cundo se tuvo xito.

    Con estas correlaciones, el generador del clave cifrante se puede romper fcilmente.Por ejemplo, si los polinomios primitivos slo tienen tres trminos cada uno, y lalongitud del mayor L.F.S.R. es n, slo se necesitan 37!n bits de la secuencia de salidapara reconstruir los estados internos de los tres L.F.S.R. [ZENG91].

    4.2.2. Generador de Geffe Generalizado

    Este generador presenta una estructura muy similar al anterior. Consta de un LFSRselector, pero la seleccin no se hace basndose en un nico bit. Esto supone que noslo haya dos posibilidades, y en consecuencia, se dispone de n registros como entradadel multiplexor, siendo n una potencia de dos. La figura 3.10 muestra dicho esquema.

    L.F.S.R. - 0

    L.F.S.R. - 1

    L.F.S.R. - Selector

    0

    MUX 1

    a0

    a1

    asel

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    35

    Figura 3.10: Generador de Geffe generalizado

    El funcionamiento es como sigue. El L.F.S.R. selector recibe los impulsos de relojlog ( )2 n veces ms rpido que el resto de los L.F.S.R.. Se toman stos log ( )2 n bitsgenerados, y el nmero en binario obtenido decide cul de los n L.F.S.R. se toma comosalida. Aunque ms complicado que el generador de Geffe simple, es posible el mismotipo de ataque. No es recomendable su uso.

    4.2.3. Generador de Jennings

    Tambin utiliza un multiplexor para combinar dos L.F.S.R [JEN 83,84]. El L.F.S.R.que controla el multiplexor selecciona un bit del vector de estado del otro L.F.S.R. paracada golpe de reloj. Existe una funcin que permuta los bits del L.F.S.R. con la entradaal multiplexor.

    Figura 3.11: Generador de Jennings

    La clave es el estado inicial de los dos L.F.S.R. y la funcin de permutacin.

    L.F.S.R. - 0

    L.F.S.R. - n-1

    L.F.S.R. - Selector

    0

    MUX

    n-1

    a0

    an-1

    asel

    0

    MUX

    n-1

    L.F.S.R. -

    LFSR

    PERMUT

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    36

    Si los polinomios de realimentacin son primitivos y las longitudes de los L.F.S.R.primas entre s (mcd L Lsel( , ) = 1), entonces el periodo es el producto de los periodos

    P L Lsel= - -( ) ( )2 1 2 1 .

    Aunque este generador posee buenas propiedades estadsticas, se rompe mediante elataque meet-in-the-middle consistency attack y el ataque por consistencia lineal (L.C.T.)[ZENG89]. Su uso tampoco es recomendable.

    4.2.4. Generador umbral

    Este generador, propuesto en [BRUE84], intenta solucionar los problemas deseguridad de los generadores anteriores usando un nmero variable de L.F.S.R. Elconcepto es que si se usan muchos L.F.S.R., el cifrador es difcil de romper.

    En este esquema, se toma la salida de un nmero impar de L.F.S.R. (cuanto msgrande mejor). El periodo total se puede maximizar imponiendo que los periodos decada uno sean primos entre s. La salida se toma realizando un voto por mayora de losbits. Si ms de la mitad de los bits son 1, entonces la salida del generador es 1. Si, por elcontrario, la mitad de los bits son 0, entonces la salida del generador es 0.

    Figura 3.12: Generador umbral

    Por ejemplo, con tres L.F.S.R., la salida del generador se puede escribir como:b a a a a a a= + + 0 1 0 2 1 2

    Es muy similar al generador de Geffe, excepto que posee una complejidad linealmayor:

    = + + L L L L L L0 1 0 2 1 2Cada bit de salida ofrece alguna informacin acerca del estado de los L.F.S.R. (0.189

    bits para ser exactos), y se rompe mediante un ataque por correlacin. Para mayornmero de L.F.S.R., el criptoanlisis se complica, pero el mtodo es el mismo y siemprees posible romper el generador. No es recomendable su uso.

    4.2.5. Sumador real de Rueppel

    Presentado en [RUEP85], constituye la primera propuesta de funcin de combinacincon memoria para evitar el compromiso entre la inmunidad a la correlacin y lacomplejidad lineal.

    L.F.S.R. - 0

    L.F.S.R. - n-1

    Voto pormayora

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    37

    Este generador suma la salida de varios L.F.S.R. (n en general) con acarreo. Laoperacin es altamente no-lineal. El mecanismo de funcionamiento es como sigue. Hayn subgeneradores L.F.S.R. y un registro de acarreo (C). En cada golpe de reloj, todoslos L.F.S.R. se desplazan una posicin, y sus salidas se suman con el registro de acarreopara formar el nuevo valor de acarreo.

    S i C i a i

    y i S i

    C iS i

    kk

    n

    ( ) ( ) ( )

    ( ) ( ) mod

    ( )( )

    = +

    =

    =

    =

    -

    0

    1

    2

    2

    Figura 3.13: Generador sumador real de Rueppel

    Para n subgeneradores, la memoria necesaria para el acarreo es de log ( )2 1n + bits.Si los polinomios de realimentacin son primitivos, el sistema resultante presenta muybuenas propiedades, entre las que destaca el periodo, que es mximo:

    PmaxLi

    i

    n

    ==

    -

    2 11

    La complejidad lineal es grande, y aproximadamente igual al periodo. Los ceros ylos unos estn equidistribuidos y se consigue una inmunidad de orden n-1, la mximaposible.

    El generador tuvo gran aceptacin, pues por primera vez durante mucho tiempo segarantizaban todas las propiedades criptogrficas, incluida la inmunidad a lacorrelacin. Durante los aos 80, se consider muy robusto, aunque finalmente se pudocriptoanalizar mediante el ataque por correlacin [ MEIE92]. Posteriormente, sedemostr que este es un ejemplo de generador F.C.S.R. (feedback with carry shiftregister), y puede ser criptoanalizado.

    L.F.S.R. - 0

    L.F.S.R. - n-1

    L.F.S.R. - 1SUMADOR

    REAL

    Acarreo

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    38

    4.2.6. Generador de Tatebayashi-Rueppel

    Una variacin muy conocida del esquema del sumador real de Rueppel, conaplicacin directa en comunicaciones mviles, es el generador propuesto porTatebayashi [TATE89]. Se incluye un registro de control (de longitud n) antes de lacombinacin con memoria donde cada bit del registro se suma con los bits de salida delos L.F.S.R.. Se demuestra que las propiedades citadas antes se mantienen para las 2n

    palabras posibles que puede tener dicho registro de control, por lo que el registro decontrol se suele utilizar para autentificar al usuario.

    5. Generadores controlados por reloj

    A menudo, las condiciones que deben satisfacer para presentar buenas propiedadescriptogrficas son muy restrictivas, y limitan la velocidad de cifrado, de modo que noson muy recomendables en segn qu aplicaciones.

    5.1. Forward

    Los esquemas con un mecanismo de control de reloj hacia delante son aquellos en losque la salida de un generador controla el reloj de otro. La idea bsica est ilustrada en lafigura 3.14.

    Figura 3.14: Mecanismo general de un control de reloj forward

    Normalmente, existe un generador mster que gobierna el reloj del resto de losgeneradores, y la salida se calcula como la suma de los bits de salida de stos.

    5.1.1. Stop and go

    Este generador, propuesto por Beth y Piper [BETH84], es uno de los primerosgeneradores en los que la salida de los L.F.S.R. controla de alguna manera el reloj.

    Consta de tres subgeneradores. La salida de uno de ellos, L.F.S.R. selector, controlael reloj de uno de los otros dos (al que denominamos L.F.S.R.-0). El L.F.S.R. restante(L.F.S.R.-1) recibe el reloj siempre. En concreto, L.F.S.R.-0 cambia su estado si y slosi la salida del L.F.S.R. selector es uno.

    Figura 3.15: Generador Stop-and-go

    SUBGENERADOR SUBGENERADOR

    L.F.S.R. SelectorL.F.S.R. - 0

    L.F.S.R. - 1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    39

    Sus propiedades estadsticas y criptogrficas no son muy buenas. Cada vez que el bitde la secuencia cifradora cambia de valor, se sabe que el registro de control ha emitidoun 1. Adems, existe una alta interdependencia entre los smbolos. Una mejora posibleconsiste en sumar un 1 a la secuencia de control.

    No se conocen resultados genricos respecto a su complejidad lineal. Sin embargo, sepuede romper mediante un ataque por correlacin [ZENG91].

    5.1.2. Alternating stop and go

    Este generador, propuesto por Gnther [GUNT88], es una modificacin mejorada delesquema anterior. Tambin usa tres L.F.S.R. de longitudes diferentes. Como antes, hayun L.F.S.R. selector, pero ahora controla el reloj de los otros dos L.F.S.R. El L.F.S.R.-0ve activado su reloj cuando la salida del selector es 0, y contrariamente, el L.F.S.R.-1 veactivado su reloj cuando la salida del selector es 1.

    Figura 3.16: Generador Alternating Stop-and-go

    En el artculo original de Gnther, la secuencia de control era de Bruijn, ya que lasdemostraciones eran ms sencillas, pero, posteriormente se ha optado por utilizar tresL.F.S.R. con polinomios primitivos como subgeneradores.

    Cuando la secuencia es de Bruijn, se han demostrado algunas caractersticas:

    El periodo mximo es el mnimo comn mltiplo de los tres periodos.P = =mcm P Pk( , , )2 0 1

    = 2 0 1k P P (slo si son primos entre s)

    La complejidad lineal est acotada en el intervalo:

    2 21 0 1k k L L- + ( )

    Las frecuencias de aparicin de las subsecuencias es muy prx ima a la ideal. As,para longitudes m (con m min L L ( , )0 1 ) se obtiene una frecuencia de aparicin de

    2- m con un error del orden de O Om n

    12

    121 1- -

    +

    .

    El generador tiene un periodo largo y una gran complejidad lineal. Los propiosautores encontraron un ataque por el mtodo de "divide y vencers" sobre el L.F.S.R.selector, pero no hace substancialmente ms dbil al generador.

    L.F.S.R. Selector

    L.F.S.R. - 0

    L.F.S.R. - 1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    40

    5.1.3. Bilateral stop and go

    Este generador, a salvo de los anteriores, no tiene ningn subgenerador de control.Usa dos L.F.S.R., ambos de longitud n, y es la salida de cada uno la que marca el relojdel otro.

    La motivacin de estos esquemas est basado en la observacin de que si unasecuencia binaria tiene un periodo primo P, su complejidad lineal estar acotadainferiormente por el ordinal de 2 mdulo P:

    C L OrdT. . ( ) 2

    Por esta razn, es deseable un periodo primo, ya que es posible realizartransformaciones sin influir en la cota establecida en la complejidad lineal. Sinembargo, P n= -2 1 (primos de Mersenne), tendremos C L n. . .

    Se han desarrollado algunos esquemas con L.F.S.R. que obtienen periodos de laforma q n -2 1. Uno de los esquemas ms conocidos es el que aqu se describe (q=5).

    Figura 3.17: Generador Bilateral Stop-and-go

    El funcionamiento es el siguiente:1 Si los dos ltimos bits del L.F.S.R.-0 fueron (0,1), entonces se bloquea el reloj del

    L.F.S.R.-1.

    2 Si los dos ltimos bits del L.F.S.R.-1 fueron (0,1) y los del L.F.S.R.-0 no fueron(0,1), entonces se bloquea el reloj del L.F.S.R.-0.

    La complejidad lineal de este sistema es bastante parecida al periodo. De acuerdocon [ZENG89], no se ha observado una redundancia de la clave en este sistema.

    5.2. Feedback

    Los esquemas con un mecanismo de control de reloj hacia atrs son aquellos en losque la salida de un generador gobierna su propio reloj.

    s(t+n-1)s(t+n-2) ... s(t)

    s(t+n-1)s(t+n-2) ... s(t)

    L.F.S.R.-0

    L.F.S.R.-1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    41

    Figura 3.18: Modelo general del control por reloj feedback

    5.2.1. A5

    Es el cifrador en flujo utilizado en el sistema estndar europeo de comunicacionesmviles: G.S.M.. Su mbito de actuacin est en el enlace entre el telfono mvil y laestacin base, en la transmisin radioelctrica. El resto de los enlaces no van cifrados.

    El esquema aqu presentado es el descrito en [SCH 96]. Se trata de tres L.F.S.R. delongitudes 19, 22 y 23, con escasas conexiones (tan slo 4 en cada uno). La salida es laXOR de los tres L.F.S.R.. El A5 utiliza un control de reloj variable. De cada registro setoma el bit central y se realiza una votacin por mayora. S lo cambian de estado losL.F.S.R. cuyo bit coincida con la votacin.

    Figura 3.19: Esquema interno del A5

    En el mecanismo de establecimiento de la conexin y de la clave de sesin utilizadoen el algoritmo A5 actan otros dos, denominados A3 y A8, todava secretos. Elalgoritmo A3 se encarga de llevar a cabo la autenticacin de la identidad. La estacinbase enva al mvil un nmero aleatorio RAND, que se toma junto con la clave privadadel usuario y se introduce en el algoritmo A3, originando el nmero SRES, que permiteautentificar al usuario. A partir de ese momento, con el nmero aleatorio RAND y laclave privada Ki, el algoritmo A8 genera la clave de sesin K C utilizada por el A5.

    f

    SUBGENERADOR

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    42

    Durante la transmisin, la clave de sesin KC no se vara, pero el algoritmo A5 tieneen cuenta adems el nmero de la trama donde va introducido el paquete de voz, por loque la salida cambia dependiendo de la trama concreta en la que nos hallemos.

    Figura 3.20: Cifrado y autentif icacin en G.S.M.

    5.2.2. Autodecimado de Rueppel

    Los generadores autodecimados son los que controlan su propio reloj. En elgenerador autodecimado propuesto por Rueppel [RUEP87] cuando la salida del L.F.S.R.es 0, el estado evoluciona m pasos. Cuando la salida es un 1, el estado avanza n pasos.

    Figura 3.21: Generador autodecimado de Rueppel

    El objetivo es conseguir unas secuencias con complejidad lineal y periodos iguales (oparecidos) y comparables al lmite 2L .

    Para ilustrar el proceso de autodecimado se tomar el siguiente ejemplo. Se consideraun L.F.S.R. de periodo mximo, utilizando el polinomio primitivo x x5 3 1+ + . Lasecuencia resultante sin el autodecimado es una m-secuencia de periodo 31:

    1000010101110110001111100110100

    L.F.S.R.0: m pasos1: n pasos

    K i

    KCSRES

    COUNT

    RAND

    A3 A8

    A5

    Secuenciacifrante

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    43

    Tomando m=1, n=2, el periodo se reduce a 20, y de toda la secuencia se eliminan losnmeros que estn subrayados.

    1000010101110110001111100110100por lo que queda la secuencia:

    10001111100011101010con un periodo y una complejidad lineal iguales de 20.

    Aparece un problema: la reduccin del periodo. En general, para valores mayores enm y n, la reduccin es ms acuciada. Por ejemplo, para m=3, n=2, el periodo se reducea 13 (00111110111000) y aparece un preludio, el primer bit en el primer periodo no es0, sino 1.

    Se ha demostrado que con un L.F.S.R. con L celdas, generador de m-secuencias, elperiodo tiene una cota superior de:

    ( )P L -34

    2 1

    Tal como se describe en [ZENG91] el generador puede criptoanalizarse.

    5.2.3. Autodecimado de Chambers y Gollmann

    La idea bsica es la misma que en el generador anterior, pero el mecanismo es algoms complicado. Se toman las ltimas k conexiones del L.F.S.R. y se aplica una NOR[CHA88]. Si la salida de la NOR es un 0 (lo cual ocurre la mayora de las veces), elreloj slo golpea una vez. Cuando la salida es un 1, el estado avanza 2 pasos. Elmodelo es muy fcil de generalizar para que cuando la salida sea un 0, avance m pasos yen caso contrario, avance n pasos.

    Figura 3.22: Generador autodecimado de Chambers y Gollmann

    Los valores de L y k no pueden ser cualesquiera. Slo algunas combinaciones sontiles para obtener secuencias con buenas caractersticas (alto periodo y complejidad).Para ello, es necesario que se satisfaga la relacin:

    P con L z parL L k= - - - --( ) ( )2 123

    2 1

    0: m pasos1: n pasos L.F.S.R.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    44

    Los valores de L y k no pueden ser cualesquiera. S lo algunas combinaciones sontiles para obtener secuencias con buenas caractersticas (alto periodo y complejidad).Para ello, es necesario que se satisfaga la relaci n:

    P con L z parL L k ( ) ( )2 123

    2 1

    siendo L la longitud del L.F.S.R., k el nmero de entradas en la NOR, y P el periodo. Elperiodo debe satisfacer que para todo j

  • Captulo 3 Generadores

    45

    6.1. Cascada de Gollmann

    La cascada de Gollmann (descrita en [GOLL89]) es una versin reforzada elgenerador stop-and-go. Consta de una serie de L.F.S.R. de manera que el reloj de cadauno de ellos est controlado por el L.F.S.R. previo. Si la salida del primer L.F.S.R. es 1,entonces el segundo L.F.S.R. cambia de estado. Si adems, la salida de ste es 1, eltercer L.F.S.R. cambia de estado, y as sucesivamente. La salida del ltimo L.F.S.R. esla salida del generador.

    Figura 3.24: Generador en cascada de Gollmann

    Si todos los L.F.S.R. tienen el mismo tamao, L, la complejidad lineal del sistemaglobal con k L.F.S.R. es de:

    1)12( -- kLLConceptualmente estos generadores son muy simples y se pueden utilizar para

    generar secuencias con periodos enormes, grandes complejidades lineales y buenaspropiedades estadsticas.

    Son vulnerables frente al ataque llamado lock-in, desarrollado en el mismo artculoque describe el generador. El mtodo consiste en reconstruir la entrada el ltimo registrode la cascada, e ir rompiendo la cascada registro por registro. Es posible tomar algunasprecauciones para minimizar el ataque [GOLL89].

    Segn [SCHN96], se recomienda utilizar al menos 15 L.F.S.R., y se comenta que esmejor utilizar muchos L.F.S.R. de pequeo tamao que pocos L.F.S.R. de gran tamao.

    7. Generadores en bloque

    7.1. RC4

    El RC4 es un cifrador en flujo con una clave de longitud variable desarrollado en1987 por Ronald Rivest. Durante muchos aos, la empresa R.S.A. Data Security hamantenido la patente de este esquema y los detalles del algoritmo slo eran accesiblesdespus de firmar una clusula de no-divulgacin.

    En septiembre de 1994, alguien introdujo el cdigo fuente annimamente en la listade correo electrnico Cypherpunks. El cdigo se divulg rpidamente a travs del gruposci.crypt y, va Internet, por todo el mundo. Algunos poseedores de la copias legales delRC4 confirmaron la compatibilidad. RSA Data Security intent mantener el controlargumentando que an era un secreto comercial incluso aunque fuera pblico, pero sinxito.

    L.F.S.R.-1L.F.S.R.-1L.F.S.R.-0

    1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 3 Generadores

    46

    Sudescripcin es sencilla. El algoritmo trabaja en modo OFB. Tiene una S-box de256 entradas: S0, S1, ... , S255. Dichas entradas son una permutacin de los nmeros del 0al 255, en funcin de la clave (cuya longitud es variable). Tiene dos contadores, i y j,inicializados a cero.

    Para generar un byte aleatorio se opera de la siguiente forma:

    i i

    j j S

    Intercambia S y S

    t S S

    K S

    i

    i j

    i j

    t

    = +

    = +

    = +

    =

    ( )mod

    ( )mod

    ( )mod

    1 256

    256

    256

    El byte resultante K se opera con el byte del mensaje mediante una XOR, paraproducir el criptograma. En recepcin, se efecta la misma operacin para recuperar elmensaje en claro.

    El algoritmo es rpido (cerca de 10 veces ms rpido que D.E.S.)

    La inicializacin de la caja S es simple. Primero, se rellena linealmente: S0=0, S1=1,..., S255=255. A continuacin se rellena otro array de 256 bytes con la clave,repitindola, si es necesario, hasta completar totalmente el array: K0, K1, ..., K255. Elproceso posterior es el siguiente:

    j

    Para i desde hasta

    j j S K

    Intercambia S y Si i

    i j

    =

    = + +

    0

    0 255

    256( )mod

    RSA Data Security asegura que el algoritmo es inmune al criptoanlisisdiferencial y lineal, no parece tener ciclos pequeos y es altamente no-lineal. El nmerode estados posibles es enorme, de 256 256 22 1700 ! . El contador i asegura q