002

30
Captulo 4 Evaluación de la seguridad 49 Capítulo 4: EVALUACIÓN DE LA SEGURIDAD 1. Introducción El propsito de cualquier generador pseudoaleatorio es obtener secuencias que se comporten estadsticamente como si fueran aleatorias. Aunque se conocen algunos criterios de diseæo, ¿cmo se puede decidir cuÆndo una secuencia es suficientemente aleatoria? ¿cmo se puede medir la impredecibilidad?. Para detectar regularidades en las secuencias binarias, es necesario recurrir a estudios probabilsticos que permiten evaluar cuantitativamente la aleatoriedad de una secuencia. A estas tØcnicas se les suele llamar tests. Generalmente, cada uno de ellos analiza un aspecto de seguridad concreto en las secuencias evaluadas. Existen infinidad de tests posibles. Se analizarÆn los tests que han demostrado ser mÆs œtiles, instructivos y sencillos para realizar un cÆlculo computacional rÆpido. Si una secuencia pasa los tests T 1 , T 2 , ..., T n , no se puede estar seguro de que, en general, no fallarÆ cuando estØ sujeta a un test posterior T n+1 . Sin embargo, estÆ claro que cuantos mÆs tests se superan, hay una mayor confianza en las buenas propiedades de la secuencia. En la prÆctica, se aplican varios tests de distintas clases, y si la secuencia los pasa satisfactoriamente, se considera que tiene un comportamiento aleatorio. Se distinguen 4 tipos de test: Tests estadsticos: no actœan directamente sobre la secuencia, sino que sirven de apoyo al resto de tests. Tests empricos: calculan estadsticas. Tests tericos: se apoyan en mØtodos con un trasfondo matemÆtico importante. Complejidades: en vez de calcular propiedades de la secuencia, intentan predecir su comportamiento mediante estructuras de orden 1, 2, ... © Los autores, 1999; © Edicions UPC, 1999.

description

001

Transcript of 002

  • Captulo 4 Evaluacin de la seguridad

    49

    Captulo 4: EVALUACIN DE LA SEGURIDAD

    1. Introduccin

    El propsito de cualquier generador pseudoaleatorio es obtener secuencias que secomporten estadsticamente como si fueran aleatorias. Aunque se conocen algunoscriterios de diseo, cmo se puede decidir cundo una secuencia es suficientementealeatoria? cmo se puede medir la impredecibilidad?.

    Para detectar regularidades en las secuencias binarias, es necesario recurrir a estudiosprobabilsticos que permiten evaluar cuantitativamente la aleatoriedad de una secuencia.A estas tcnicas se les suele llamar tests. Generalmente, cada uno de ellos analiza unaspecto de seguridad concreto en las secuencias evaluadas.

    Existen infinidad de tests posibles. Se analizarn los tests que han demostrado serms tiles, instructivos y sencillos para realizar un clculo computacional rpido.

    Si una secuencia pasa los tests T1, T2, ..., Tn, no se puede estar seguro de que, engeneral, no fallar cuando est sujeta a un test posterior Tn+1. Sin embargo, est claroque cuantos ms tests se superan, hay una mayor confianza en las buenas propiedades dela secuencia.

    En la prctica, se aplican varios tests de distintas clases, y si la secuencia los pasasatisfactoriamente, se considera que tiene un comportamiento aleatorio.

    Se distinguen 4 tipos de test:

    Tests estadsticos: no actan directamente sobre la secuencia, sino que sirven deapoyo al resto de tests.

    Tests empricos: calculan estadsticas. Tests tericos: se apoyan en mtodos con un trasfondo matemtico importante. Complejidades: en vez de calcular propiedades de la secuencia, intentan predecir su

    comportamiento mediante estructuras de orden 1, 2, ...

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    50

    El resultado de los tests es booleano: o se acepta, o se rechaza la secuencia; o pasa eltest, o no lo pasa.

    Los parmetros ms importantes de los tests estadsticos son la longitud N de lasecuencia analizada y la tasa de rechazo, que es la probabilidad de que una fuentebinaria simtrica fuese rechazada. Existe un compromiso entre la probabilidad dedeteccin y la de falsa alarma.

    El objetivo de los tests es comprobar si se cumplen las especificaciones de seguridad,y hasta qu punto.

    Todos los tests aqu descritos estn desarrollados en el software SSP adjunto.

    2. Clculo del periodo de una secuencia

    Los cifradores en flujo son mquinas de estados finitos, y por lo tanto, las secuenciasque generen son, en ltima instancia, peridicas.

    Se dice que una secuencia (s1, s2, ...) es peridica, de periodo P, cuando se cumpleque si=si+P para todo i. La secuencia queda perfectamente definida son un slo periodo:(s1, s2, ..., sP-1)

    . Es necesario saber identificar y cuantificar este periodo.

    El algoritmo utilizado para calcular el periodo consiste en desplazar la secuencia nposiciones y comparar la secuencia original y la resultante del desplazamiento. Primero,la secuencia se desplaza una posicin, despus dos, ... y as sucesivamente hasta quetodos los bits en la misma posicin coincidan.

    Secuencia original: 11011011Secuencia desplazada una posicin: 11011011

    Secuencia original: 11011011Secuencia desplazada dos posiciones: 11011011

    Secuencia original: 11011011Secuencia desplazada tres posiciones: 11011011

    Cuando todos los bits coinciden, no hace falta calcular ms, el periodo es el valor deldesplazamiento que se ha llevado a cabo.

    Este procedimiento es exacto ( a diferencia de otros existentes basados en laautocorrelacin). Solamente cuando el tramo de la secuencia de la que se dispone nocontiene al menos dos periodos, el resultado del periodo ser mayor que la mitad de losbits de la secuencia, y la decisin de si el valor obtenido es realmente el periodo o noqueda a disposicin del usuario, el algoritmo devuelve la distancia a partir de la cual losbits se repiten.

    3. Anlisis estadstico de distribuciones

    La mayora de tests que se expondrn posteriormente realizan clculos estadsticossobre la secuencia, devolviendo distribuciones sobre un suceso, como por ejemplo elnmero de apariciones de parejas de bits, etc... A partir de esta distribucin, yconociendo el valor ideal que debera tener, existen algunos procedimientosmatemticos que analizan cunto se aleja una distribucin de su valor ideal.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    51

    Estos procedimientos suelen calcular estadsticos de los que se conoce su distribucin

    para una secuencia aleatoria. Sobre los valores obtenidos, se realiza un contraste de

    hiptesis descartando aquellas secuencias cuyos valores obtenidos se alejan

    significativamente de la media.

    Existen multitud de estadsticos diferentes, de los cuales se comentarn la prueba de

    la 2 (Ji-cuadrado) y la de KS (Kolmogorov-Smirnov).

    3.1. Prueba de la Ji-cuadrado (2)

    Es el test estadstico mejor conocido, y tambin el ms utilizado.

    Antes de describirlo matemticamente, describiremos el concepto mediante un

    ejemplo sencillo. Supongamos que la experiencia consiste en el lanzamiento de una

    moneda tres veces y se cuenta el nmero de caras obtenidas (obsrvese que el

    experimento de lanzar una moneda es equivalente al de obtener un bit de manera

    aleatoria). Suponiendo que la moneda no est trucada,

    P i carasi

    ( ) =

    3 1

    23

    Se supone que las tiradas son independientes. Realizando el experimento muchas

    veces (por ejemplo 128) y anotando los valores obtenidos, se puede obtener una tabla de

    resultados como la siguiente:

    Resultado Valores obtenidos Valores ideales

    0 caras 14 16

    1 cara 40 48

    2 caras 54 48

    3 caras 20 16

    El nmero observado acostumbra a ser distinto del esperado (de hecho, si las tiradas

    son realmente aleatorias, difcilmente se obtendrn las frecuencias correctas exactas).

    Si el experimento es realmente aleatorio (la moneda no est trucada), cualquiera de

    las 128 posibles secuencias de valores de 128 tiradas es igualmente probable. As,

    cualquier secuencia tiene la misma probabilidad que aquella en la que todo son ceros

    (no sale ninguna cara). Pero, si en las 128 tiradas, se observase que todos los

    lanzamientos son cruces, tendramos argumentos justificados para sospechar que la

    moneda est trucada.

    Cmo se puede determinar si la moneda est trucada o no? La respuesta es que no

    se puede dar una decisin definitiva, pero se puede dar una respuesta probabilstica. Se

    puede decir cun probable o improbable son algunos sucesos.

    La manera natural de proceder en el caso anterior es hallar la diferencia cuadrtica

    media entre los valores obtenidos y(i), y los esperados.

    Dy i n p i

    n p ii

    k

    = =

    ( ) ( )( )

    a f2

    0

    1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    52

    siendo k el nmero de resultados o categoras diferentes (4 en nuestro ejemplo) y n elnmero de experiencias realizadas.

    Es importante sealar que las observaciones han de ser independientes. A esteestadstico se le llama Ji-cuadrado, porque para un nmero de observaciones elevado,tiende a una distribucin en Ji-cuadrado, con k-1 grados de libertad. Para que estaaproximacin sea buena, se suele imponer que el nmero esperado en cualquiercategora sobrepase 5, o 10. O sea, el nmero de observaciones n debe ser tal que n!p(i)sea mayor o igual que 5.

    Normalmente, se establece un umbral al 1 %, o al 5 %, y todos los experimentos cuyovalor de la Ji-cuadrado sobrepasa el marcado por este umbral se rechazan. Para estoexisten tablas de valores de la distribucin de la Ji-cuadrado con diferentes porcentajes ygrados de libertad.

    Debe tenerse en cuenta que no importan n ni p(i) para la evaluacin del test, el nicoparmetro que interviene es el nmero de grados de libertad.

    Interesa un nmero de observaciones elevado, n grande. Mientras mayor sea n, mayorpotencia del test. Pero, por el contrario, suaviza el comportamiento no aleatorio local(puede ser que tramos largos con una fuerte desviacin estn seguidos de otros con ladesviacin contraria, se anule el efecto y no se detecte en el cmputo final). Por eso esrecomendable hacer el test para diferentes valores de n.

    3.2. Prueba de Kolmogorov-Smirnov (KS)

    La prueba de la Ji-cuadrado se aplica cuando el resultado del experimento estdividido en k categoras. Pero a veces, el resultado puede tomar infinitos valores. Enestos casos de utiliza el test de KS.

    Se parte de la funcin de distribucin ideal:

    F x P X xX ( ) ( )=

    Dadas n observaciones independientes, se forma la funcin de distribucin emprica:

    ( )F xn

    n de X i xn ( ) ( )= 1

    El estadstico KS mide la diferencia entre las dos funciones. De hecho mide lavariacin mxima que puede haber:

    K n max F x F xnx

    n= <

  • Captulo 4 Evaluacin de la seguridad

    53

    Kn+ mide la desviacin mxima cuando F xn ( ) es mayor que F x( ) .

    Kn mide la desviacin mxima cuando F xn ( ) es menor que F x( ) .

    El trmino n acta como factor de escala, de manera que la desviacin estndar esindependiente de n. De igual manera que en la Ji-cuadrado, existen tablas de percentilespara poder determinar si los resultados son significativamente grandes o pequeos.

    Para facilitar el cmputo de Kn+ y Kn

    , se aprovecha la particularidad de que lasfunciones distribucin son crecientes y que F xn ( ) crece a saltos. El procedimiento escomo sigue:

    1. Obtener las observaciones X i( ) .2. Reordenar X i( ) de menor a mayor: X X X n( ) ( ) ... ( )1 2 3. Calcular los estadsticos:

    K n maxj

    nF X

    K n max F Xj

    n

    nj n

    j

    nj n

    j

    +

    =

    =

    1

    1

    1

    ( )

    ( )

    El valor de n, no necesita ser tan elevado como en la Ji-cuadrado, pero mientrasmayor sea n, con ms detalle se pueden observar las diferencias entre dos distribucionesdistintas.

    Existe un compromiso en el valor de n; interesara que fuese tan grande como seaposible, pero la ordenacin de los valores impide que los valores de n sean tan elevadoscomo queramos. Un valor que se acostumbra a tomar es n = 1000. Cuando la KS seaplica sobre los resultados de varias pruebas de Ji-cuadrado, no se necesita una n tanelevada, y se acostumbra a tomar n = 10.

    3.3. Diferencias entre la Ji-cuadrado y KS

    La prueba de Kolmogorov-Smirnov se aplica para distribuciones continuas, con F(x)sin saltos. En cambio, la Ji-cuadrado se aplica sobre distribuciones que lo nico quetienen son saltos (k categoras). Esta caracterstica hace que ambos tests sean duales yque la aplicacin de cada uno llegue donde el otro test no llega.

    Es posible modificar la Ji-cuadrado para aplicarla sobre distribuciones continuas,realizando una divisin previa del dominio de F(x) en k partes, e ignorando lasvariaciones internas de cada parte.

    4. Tests empricos

    En la descripcin de cada uno de los tests empricos se muestra el algoritmo y lasbases matemticas que lo sustentan. La notacin seguida es la de indicar con las letras Xo Y las secuencias de bits (o de nmeros enteros entre 0 y d-1).Un valor tpico de d es2 p , ya que los ordenadores trabajan con aritmtica binaria.

    Los tests estn pensados para secuencias de valores continuos y discretos, peronicamente me centro en el caso particular de la aplicacin a secuencias binarias.

    En el software adjunto se han introducido los aqu expuestos:

    Equidistribuido

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    54

    Serie Gap Pker Postulados de Golomb

    4.1. Test equidistribuido

    La idea del test es comprobar que la funcin de densidad resultante es uniforme. Secuentan el nmero de ceros y de unos que aparecen en la secuencia. Entonces, sobre esteresultado, se aplica el test de la Ji-cuadrado con k = 2 categoras, y una probabilidadterica de en cada categora.

    El problema de este test es que no comprueba la interdependencia entre los smbolos.

    4.2. Test serieEs un paso ms all al test equidistribuido. No slo los bits han de ser

    equiprobables, sino que tambin las parejas consecutivas de bits deben serlo.

    Se cuenta el nmero de veces que ( ) ( )Y j Y j q r( ), ( ) ,2 2 1+ = j 0 siendo q y rbits. O sea, se cuentan todos los pares (q,r) y se aplica la Ji-cuadrado sobre estask = =2 42 categoras; a saber, 00, 01, 10, 11.

    En cada categora, el par (q,r) tiene una probabilidad (distribucin uniforme).Como sabemos, para que el estimador tienda a una Ji-cuadrado, como mnimo debenhaber cinco sucesos en cada categora, as hacen falta:

    n parejas bits =5 2 402

    El mtodo es fcilmente generalizable a tros, cuartetos... El problema que aparece esque a medida que crece el nmero de agrupaciones (t), se necesita una secuencia delongitud ms larga. Para agrupaciones largas, se toman otros tests, como pueden ser eltest de pker, de concepcin ms heurstica.

    El test equidistribuido se puede considerar como un caso particular del test serie. Elmecanismo general es:

    1 Se toman t-plas no solapadas: ( )Y jt Y j t( ),..., (( ) )+ 1 12 Se calcula una estadstica3 Se aplica el test de la Ji-cuadrado con k t= 2 categoras, cada una con probabilidad

    2 t .4 El nmero de observaciones, m, debe ser m t 5 2 .5 El nmero de bits, n, debe ser n t t 5 2 .

    Los bits hay que tomarlos separados, ya que la aplicacin de la Ji-cuadrado suponeindependencia entre las observaciones.

    4.3. Gap test (Test de rachas)

    Se basa en analizar la estadstica de las longitudes de los tramos de la secuencia enlas que ningn elemento pertenece a un determinado conjunto (para simplificar, elconjunto se toma como un intervalo).

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    55

    Se contabiliza el nmero de rachas de 0 o 1 consecutivos que presenta la secuenciaaleatoria y se verifica que el valor obtenido se encuentre dentro de unos lmitesestablecidos. Para generalizar el proceso, los bits se agrupan de t en t formandonmeros entre 0 y d-1 ( d t= 2 ).

    Se toma un intervalo [a, b]. Por ejemplo, para t = 3, [a = 1, b = 4], y dada lasecuencia siguiente, se encuentran los gaps indicados:

    Y = ( 0, 7, 1, 7, 6, 0, 3, 4, 5, 0, 7, 2, ...)

    2 3 0 3Los elementos subrayados son los que pertenecen al intervalo. Entre estos elementos,

    se hayan los gaps; as entre el 1 y el 3, hay un gap de longitud tres.

    Si Y j a( ) [ ,b ] 1 (o j

  • Captulo 4 Evaluacin de la seguridad

    56

    ( )Y j j j j j( ),Y( ),Y( ),Y( ),Y( )5 5 1 5 2 5 3 5 4+ + + + j 0Se consideran 7 posibilidades diferentes (categoras):

    Todos diferentes abcde Una pareja aabcd Dos parejas aabbc Tro aaabc Full aaabb Pker aaaab Repker aaaaa

    El orden de los smbolos no se tiene en cuenta.

    Sobre los resultados, se aplica una Ji-cuadrado, indicndose a continuacin laprobabilidad de cada categora:

    Pr( )( ) ( ) ( ) ( )

    todos diferentes abcded d d d d

    d= 1 2 3 4

    5

    Pr( )( ) ( ) ( )

    una pareja aabcdd d d d

    d=

    1 2 3 5

    25

    Pr( )( ) ( )

    dos parejas aabbcd d d

    d=

    1 2 5

    2

    3

    2

    1

    25

    Pr( )( ) ( )

    trio aaabcd d d

    d=

    1 2 5

    35

    Pr( )( )

    full aaabbd d

    d=

    1 5

    35

    Pr( ker )( )

    po aaaabd d

    d=

    1 5

    15

    Pr( ker )repo aaaaad

    d=

    5

    Para la elaboracin de estas probabilidades, se supone que d > 4 (es decir, t > 2),en caso contrario, las probabilidades ideales que deben tenerse en cuenta varanligeramente.

    4.4.2. Modalidad simplificada

    Se reducen el nmero de posibilidades para que el clculo de las probabilidades seams sencillo y rpido. Adems, el concepto permite agrupaciones de nmeros diferentesa 5. Esta reduccin hace que el clculo sea ms sistemtico, y las prestaciones no varanmucho del mtodo clsico.

    El criterio consiste en contar el nmero de valores distintos en el grupo de cincosmbolos. De esta manera aparecen cinco categoras:

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    57

    Cinco diferentes Todos diferentes Cuatro diferentes Una pareja Tres diferentes Dos parejas o trio Dos diferentes Full o pker Cinco iguales Repker

    Aqu se vuelve a aplicar una Ji-cuadrado. La probabilidad de cada categora es:

    Pr( )( ) ...( )

    r diferentes valoresd d d r

    d r= +

    1 1 55

    donde k

    r

    son los nmeros de Stirling de 2 clase, y su significado es el nmero de

    maneras que se puede particionar un conjunto de k elementos en r partes.

    5

    11

    =

    5

    215

    =

    5

    325

    =

    5

    410

    =

    5

    51

    =

    Es necesario, igual que antes, que d > 4, ya que si no, hay algunos casos que no sonposibles. Los bits se agrupan de t en t, formando smbolos para pasar el test de pker.Para t 3 no hay ningn problema, pero para t = 1, o t = 2, las probabilidades tericascambian. Esto se ha tenido en cuenta en la aplicacin desarrollada.

    4.5. Postulados de Golomb

    Estos tres postulados deben su nombre a Solomon Golomb [GOLO67], quiendescubri que todas las m-secuencias generadas por los L.F.S.R. cumplen siempre unasregularidades muy relacionadas con el concepto de aleatoriedad. As, los postuladossurgen como consecuencia de estas propiedades.

    Son tres propiedades que expresan de forma sencilla algunas caractersticas dealeatoriedad de las secuencias. Las secuencias que cumplen los postulados reciben elnombre de PN-aleatorias. Los postulados slo comprueban la aleatoriedad, pero no laimpredecibilidad de las secuencias.

    Para describir los postulados, hace falta explicar que los valores binarios paraGolomb toman los valores +1 y -1, en vez de 0 y 1, respectivamente, para poder realizaralgunas operaciones de sumas y multiplicaciones que en aritmtica mdulo 2 carecerande sentido. No se van a detallar todas las caractersticas de los tres postulados,simplemente se enuncia cada uno de ellos.

    4.5.1. Primer postulado

    En un periodo, la diferencia entre el nmero de unos y de ceros no debe ser mayorque 1.

    ann

    P

    =

    1

    1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    58

    4.5.2. Segundo postulado

    En un periodo, la mitad de las carreras (tiras consecutivas de un mismo bit) son delongitud 1, la cuarta parte son de longitud 2, la octava parte de longitud 3, etc... Msan, para cada longitud hay tantas carreras de ceros como de unos, y por tanto, elnmero total de carreras de ceros y de ceros se iguala.

    4.5.3. Tercer postulado

    La funcin de autocorrelacin normalizada es bivaluada.

    CP

    a a

    si

    psin n

    n

    P

    ( ) = 0

    0= =

    +

    =1

    1

    11

    El parmetro 1/p se utiliza para normalizar la correlacin.

    Los tres postulados son independientes, y cada uno de ellos analiza un aspectodiferente de la secuencia.

    5. Tests tericos

    5.1. Test espectral

    Este es uno de los tests ms completos de todos los conocidos, no slo porque todoslos buenos generadores aleatorios lo pasan, sino porque muchos generadores que seconocen que son defectuosos, entre ellos los congruenciales, no lo pasan. Trabaja contodo el periodo de la secuencia, por lo que sus resultados se refieren a la totalidad de lasecuencia.

    El test se puede encontrar ampliamente descrito en [KNUT67]. La motivacinmatemtica est basada en la transformada de Fourier discreta de una funcin definidaen un conjunto finito. La funcin que se transforma es la distribucin estadstica de lossmbolos de la secuencia. Si la secuencia es realmente aleatoria, esta distribucin serconstante, y por lo tanto, la transformada presentar un nico pico centrado en lafrecuencia cero y el resto de valores sern ceros. Cualquier desviacin quedar reflejadaen el espectro en componentes frecuenciales diferentes de cero.

    El procedimiento sigue los siguientes pasos:

    1. Se calcula la distribucin de las frecuencias relativas de aparicin de los smbolos.

    Dada la secuencia x(!), se calcula la funcin de las frecuencias relativas f(!) de lasiguiente manera:

    f i limn

    x j in

    j

    n

    ( ) ( ( ) )=

    =

    10

    1

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    59

    donde i recorre todos los valores que puede tomar X(j): desde 0 hasta d-1. Comola secuencia es binaria, para formar nmeros enteros, los bits se agrupan en t-plasformando palabras de d t= 2 valores distintos.

    Debido a que las secuencias con las que tratamos son peridicas (de periodo P),es posible eliminar el lmite sin alterar la igualdad:

    f iP

    x j ij

    P

    ( ) ( ( ) )= =

    10

    1

    2. Sobre la distribucin de probabilidad, se aplica la transformada de Fourier discreta.

    La frmula de la transformada de Fourier discreta es:

    F w f i e w i

    i

    d

    ( ) ( )= =

    0

    1

    Las frecuencias que aparecen, w, toman valores continuos desde 0 hasta 2.Para que la transformada pueda ser manejable por el ordenador, se utiliza laD.F.T.. Como la transformacin trabaja con todos los valores de la funcin f(!),no hay aliasing respecto la transformada de Fourier.

    F k f i e dk i

    i

    d

    ( ) ( )=

    =

    2

    0

    1

    3. Una vez obtenida la transformada de Fourier, el resultado se compara con latransformada ideal resultante si la secuencia fuera realmente aleatoria:

    F kk

    otro caso( ) =

    =

    1 0

    0

    Como medida de discrepancia se ha optado por medir la distorsin cuadrtica entre elvalor en el origen y el resto de valores. De hecho, slo se utiliza el mdulo de latransformada, pues es el que aporta informacin acerca de la energa de cadacomponente espectral.

    distorsion

    F k

    F

    k= ( )

    ( )

    2

    0

    20

    Es posible ampliar el concepto del test espectral a varias dimensiones, tomando unadistribucin de probabilidades de varios smbolos consecutivos de la secuencia, como sise tratara de una distribucin conjunta de varias variables aleatorias.

    f i i iP

    x j i x j i x j n in nj

    P

    ( , ,..., ) ( ( ) ) ( ( ) ) ... ( ( ) )1 2 1 20

    111 1= + +

    =

    L o s a u t o r e s , 1 9 9 9 ; E d i c i o n s U P C , 1 9 9 9 .

  • Captulo 4 Evaluacin de la seguridad

    60

    La transformada de Fourier resultante tambin es n-dimensional:

    F k kn( ,..., )1( )

    = =

    + + +

    f i i i eni i i

    d

    dk i k i k i

    n

    n n

    ( , ,..., ), ,...,

    ...

    1 2

    0

    1 2

    1 2

    1 1 2 2

    ( )= +

    =

    =

    + +

    1 110

    1

    0

    1 2

    1 2

    1 1

    Px j i x j n i en

    j

    P

    i i i

    d

    dk i k i

    n

    n n

    ( ( ) ) ... ( ( ) ), ,...,

    ...

    ( )=

    + + +

    =

    12

    1

    0

    11

    Pe d

    k x j k x j n

    j

    Pn

    ( ) ... ( )

    El clculo de la distorsin es anlogo a como se ha descrito antes.

    Tambin se ha utilizado otra medida de discrepancia entre la transformada ideal y lacalculada, que es la relacin lbulo principal-secundario. Es el cociente entre el valoren el cero y el pico ms alto de toda la transformada, y se acostumbra a dar en dB.

    5.2. Test de entropa por bit de Maurer

    Este test propuesto por Maurer [MAUR91] est pensado para poder detectarcualquier desviacin estadstica significativa de la secuencia cifradora que se aleje deuna fuente binaria simtrica.

    A diferencia de la mayora de tests, pretende detectar cualquier alteracin en laestadstica, y no slo un tipo de desviacin no-aleatoria concreta. Para conseguirlo, elobjetivo del test consiste en medir la entropa por bit de la secuencia bajo prueba.

    Un cifrador robusto, en la prctica, es aquel en el que no se conoce ningn mtodocriptoanaltico para romperlo ms rpido que por prueba y error exhaustivos de todo elespacio de claves. El tamao del espacio de claves se escoge lo suficientemente grandecomo para asegurar que un ataque por fuerza bruta requiere una capacidadcomputacional inmensa. Si los valores posibles de la clave no tienen una probabilidad apriori igual, entonces la estrategia ptima para la bsqueda exhaustiva de claves escomenzar por la clave ms probable y continuar probando con claves de probabilidaddecrecientes. De esta manera se minimiza el tiempo de bsqueda.

    En teora de la informacin se define:

    s ii

    k

    n min k P( Z( , ) )=

    =

    1

    Cuando vale , a esta funcin se la suele llamar el tamao efectivo de la clave.

    Para n grandes, el valor de

    log ( , )21

    2 s n

    n

    es prcticamente independiente de n.

    Si la secuencia es realmente aleatoria, log ( , )21

    21 s n n

    = . Adems, para una fuente

    ergdica estacionaria, se cumple que:

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    61

    ( )lim

    n

    nH

    n

    s

    S=

    log ( , )2

    donde HS es la entropa por bit de la secuencia, y tambin el factor en el que se reduce eltamao efectivo de la clave. Por esta razn, la entropa por bit representa una buenamedida de la calidad criptogrfica de un generador.

    El test consiste en calcular la entropa de la fuente generadora de bits y rechazar elgenerador si el valor de la entropa est por debajo de un determinado umbral. Parapoder calcular la entropa de una fuente, Maurer demostr que los comportamientos nodeseados se pueden modelar adecuadamente mediante una fuente ergdica estacionariacon memoria relativamente pequea.

    Para la ejecucin del test, se deben definir tres parmetros:

    L memoria de la fuente Q nmero de pasos de inicializacin del test K nmero de iteraciones del test

    La longitud necesaria de la secuencia para poder realizar el test es de L Q K +( ) .

    El algoritmo de clculo sigue los siguientes pasos:

    1 La secuencia s se segmenta en bloques de L bits no superpuestos.2 Se toma el bloque n-simo: b s s s sn n L n L n L L( ) ( , ,..., )( )= + + 1 1 con n Q K= + ( , )0 13 Se inspecciona la secuencia en busca del ndice i donde se halle el mismo bloque

    ms prximo:i t q b s b sn n i. . ( ) ( )=

    4. A s in ( ) = , si existe alguna i que lo cumpla. En caso de no ser as, A s nn ( ) = .5. Por ltimo, se calcula el valor de la funcin f sT ( ) , definida como la media del

    logaritmo (en base 2) de los K trminos A s A s A sQ Q Q K( ), ( ),..., ( )+ + 1 1 :

    ( )f sK

    A sT nn Q

    Q K

    ( ) log ( )= =

    +

    1 21

    Los valores a escoger de los parmetros L, Q y K no son muy restringidos. Maurerrecomienda tomar L entre 8 y 16. El valor de Q debe ser tal que se garantice, con altaprobabilidad, que en la inicializacin todas las subsecuencias de L bits aparecen almenos una vez. En lo que se refiere al valor de K, cuanto ms grande mejor, pero apartir de un cierto valor, el valor de la entropa se mantiene estable y slo varan algunosdecimales de muy poco peso.

    Una vez obtenido el valor de la funcin f sT ( ) , la entropa se puede calcular graciasa la relacin:

    ( )( )lim E f s L HL

    T S = ( )

    ln.

    2

    0 832746177

    Suponiendo que los valores de L igual a 8 o 16 son lo suficientemente grandes comopara eliminar el lmite:

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    62

    ! ( ) .Hf s

    LS

    T=+ 0 832746

    Existen tablas del valor medio y la esperanza de f sT ( ) que permiten determinar losumbrales de decisin para rechazar los generadores sospechosos de padecer algndefecto (aunque el test no nos diga de qu tipo de defecto se trata).

    R es el conjunto de secuencias aleatorias generadas por una fuente binaria simtrica.Los valores de los umbrales vienen definidos por:

    ( )t E f s yT1 = ( ) ( )t E f s yT2 = + ( )

    ( ) =

    VAR A s

    KVAR( f s

    n

    T

    log ( ( ))( ))

    2

    y se escoge tal que: N y( ) = 2 , donde es la probabilidad de falsa alarma, quenormalmente se fija al 1% o al 0.1%. En estos casos, y = 2.58 e y = 3.30respectivamente.

    N x e dttx

    ( ) =

    1

    2

    2

    5.3. Test de entropa por bit por clculo directo

    Este test consiste en medir directamente el valor de la entropa tal como se expresamatemticamente para fuentes con memoria, de aqu proviene el nombre de "clculodirecto".

    La frmula de la entropa de varias variables aleatorias y sus propiedades se puedenencontrar en cualquier libro bsico de la teora de la informacin, como por ejemplo en[BLAH83]:

    L ( )E f RT ( ) ( )VAR A Rnlog ( ( ))21 0.73264948 0.6902 1.53743829 1.3383 2.40160681 1.9014 3.31122472 2.3585 4.25342659 2.7056 5.21770525 2.9547 6.19625065 3.1258 7.18366555 3.238

    L ( )E f RT ( ) ( )VAR A Rnlog ( ( ))29 8.17642476 3.311

    10 9.17232431 3.35611 10.1700323 3.38412 11.1687649 3.40113 12.1680703 3.41014 13.1676926 3.41615 14.1674884 3.41916 15.1673788 3.421

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    63

    H X X P( x j x j P( x j x jk k k k kj

    n

    j

    n

    k

    k

    ( ,..., ) ... ,..., ) log( ,..., ))1 1 1 1 1111

    1

    = = = = ===

    Esta frmula se puede adaptar a los generadores pseudoaleatorios de secuenciasbinarias de la siguiente forma. Cada grupo de k bits consecutivos de la salida formanuna palabra. Se toman todas las palabras y se calcula la probabilidad cada combinacinde k bits. Una vez hecho esto, la entropa por bit se calcula como:

    H Fuentek

    P( x x P( x xki

    k

    k

    ( ) ... ) log ( ... ))= =

    1 10

    2 1

    2 1

    El valor de k corresponde a la memoria de que se supone que dispone el generador.Cuando k sea igual al tamao de la clave del generador, el valor de la entropa calculadopor este test ser exactamente igual al real.

    Este test sirve tambin como una referencia para contrastar los resultados que calculael test de Maurer.

    6. Complejidades

    Todos los tests anteriores ponen su punto de atencin en los aspectos aleatorios de lassecuencias, pero no dan mucha informacin acerca de su impredecibilidad. Para medirestos aspectos existen algoritmos de clculo que intentan reproducir la secuenciamediante unos esquemas preestablecidos. De todas las complejidades, la complejidadlineal se considera como la medida clsica, destacando por su historia, importancia, ysobre todo, facilidad de clculo.

    En los ltimos aos, han aparecido nuevos conceptos de complejidad que intentanaportar mayor informacin sobre las secuencias, como son la complejidad cuadrtica, lacomplejidad de mximo orden, la complejidad de Ziv-Lempel, la complejidadno-peridica de Kwok-Beale, y algunas otras ms.

    6.1. Complejidad lineal

    La medida de la complejidad lineal aparece a causa del problema existente decodificacin de encontrar el L.F.S.R. ms corto capaz de generar una secuencia dada.

    Massey, en su artculo [MASS76] adapt un algoritmo recurrente original deBerlekamp capaz de sintetizar los dgitos de una secuencia. La longitud del L.F.S.R.resultante es lo que se conoce como complejidad lineal.

    El algoritmo original es vlido para cualquier tipo de secuencias, ya contengannmeros reales o elementos de algn cuerpo finito. Sin embargo, el caso binario es muysencillo, y el de mayor utilidad para el cifrado en flujo.

    Los autores, 1999; Edicions UPC, 1999.

  • Captulo 4 Evaluacin de la seguridad

    64

    Existe otro algoritmo, publicado en [GAME83], que tambin calcula la complejidadlineal. Es muy rpido, slo necesita un nmero de pasos igual a log( )P , donde P es elperiodo de la secuencia, en lugar de 2c (c es la complejidad lineal) que requiere elalgoritmo de Massey-Berlekamp. Por el contrario, necesita O P( ) de memoria, mientrasque el de Massey slo necesita O c( ) , y slo es aplicable a secuencias con una longitudigual a una potencia de dos.

    Un L.F.S.R. genera una secuencia finita de longitud N si y slo si los primeros N bitsde salida del L.F.S.R. para una inicializacin concreta coinciden con los de la secuencia.L es el tamao del L.F.S.R. Si L N , entonces el L.F.S.R. siempre puede generar lasecuencia. Para L N< , el L.F.S.R. genera la secuencia cuando:

    s C s j L L Nj i j ii

    L

    + = = + =

    1

    0 1 1, ,...,

    donde C DN ( ) es el polinomio de conexin del L.F.S.R. de longitud mnima L sN ( )que genera la secuencia.

    Sea S una secuencia infinita de manera que (s0, s1, sN-1) formen los N primeros bitsde S, L sN ( ) se define como la mnima de las longitudes de todos los L.F.S.R quegeneren (s0, s1, ..., sN-1). L sN ( ) siempre es menor que N y, adems, es una funcinmontonamente no decreciente a medida que N va creciendo. Por convenio, se imponeque la secuencia todo-ceros tiene una complejidad lineal cero.

    Si un L.F.S.R. de longitud L sN ( ) que genera (s0, s1, ..., sN-1), tambin genera (s0, s1,..., sN-1, sN), entonces L s L sN N+ =1( ) ( ) .

    Cuando un L.F.S.R. de longitud L sN ( ) que genera (s0, s1, ..., sN-1) falla al intentargenerar el siguiente smbolo, el nuevo L.F.S.R. mnimo que genera la secuencia sepuede calcular recursivamente a partir del anterior L.F.S.R. tal como se indica acontinuacin. Se calcula la discrepancia, dN, definida como la diferencia entre el trminoN+1 de la secuencia S, y el trmino N+1 de la secuencia que genera el L.F.S.R. quehemos encontrado que puede generar los primeros n trminos de esa secuencia. En elcaso binario, slo puede valer 0 o 1. Cuando la discrepancia es cero, estamos en elprimer caso, en el que el L.F.S.R. que genera la secuencia hasta el trmino N, tambin lohace hasta el trmino N+1. Cuando la discrepancia es diferente de cero, el nuevoL.F.S.R se calcula como:

    C D C D d d D C DN N N mm n m+ = 1 1( ) ( ) ( )

    donde m es la longitud de la secuencia antes del ltimo cambio de longitud del registrode desplazamiento mnimo, cuando:

    L s L s

    L s L s

    m N

    m N

    ( ) ( )

    ( ) ( ).