SlideShare una empresa de Scribd logo
Capítulo 11
                        Sistemas de Cifra en Flujo

             Seguridad Informática y Criptografía

                                                               Ultima actualización del archivo: 01/03/06
                                                                       Este archivo tiene: 51 diapositivas


                     Material Docente de                                           Dr. Jorge Ramió Aguirre
           v 4.1
                     Libre Distribución                                   Universidad Politécnica de Madrid


            Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el
                   uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales,
            respetando los créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el
           Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de
                                                                                                     Madrid, España.
Curso de Seguridad Informática y Criptografía © JRA
Capítulo 11: Sistemas de Cifra en Flujo                            Página 2




                        Cifrador de flujo básico
  •    Recordando la propuesta de cifrador hecha por Vernam en 1917,
       los cifradores de flujo (sistemas con clave secreta) usarán:
         – Un algoritmo de cifra basado en la función XOR.
         – Una secuencia cifrante binaria y pseudoaleatoria denominada
            S y que se obtiene a partir una clave secreta K compartida por
            emisor y receptor, y un algoritmo generador determinístico.
         – El mismo algoritmo para el descifrado debido el carácter
            involutivo de la función XOR.
                 Clave K                       secuencia cifrante             Clave K

           Algoritmo             S                    C                   S    Algoritmo
          Determinístico             ⊕                                ⊕       Determinístico
                                           Operaciones ⊕ con bits
                MENSAJE M                                                 M MENSAJE

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                               Página 3




    Características de la secuencia cifrante S
                        Condiciones para una clave binaria segura
   •    Período:
         – La clave deberá ser tanto o más larga que el mensaje. En la
             práctica se usará una semilla K de unos 120 a 250 bits en cada
             extremo del sistema para generar períodos superiores a 1035.
   •    Distribución de bits:
         – La distribución de bits de unos (1s) y ceros (0s) deberá ser
             uniforme para que represente a una secuencia pseudoaleatoria.
             Para ello deberá cumplir los postulados de Golomb:
        Rachas de dígitos: uno o más bits entre dos bits distintos.
        Función de autocorrelación fuera de fase AC(k): desplazamiento de k
        bits sobre la misma secuencia Si.

                                               http://ee.usc.edu/faculty_staff/bios/golomb.html     

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                           Página 4




           Rachas de dígitos en una secuencia
                        Rachas de una secuencia S de período T =
                           15
El bit anterior                                                                         El próximo
                        1 1 1 1 0 1 0 1 1 0 0 1 0 0 0                                   bit será un 1
       era un 0


Esta distribución                                                      Rachas de 1s
tan particular se
comentará más                      Rachas de 0s                        1 entre dos 0s
adelante...                         0 entre dos 1s
                                                              Racha de 00s
              Racha de 1111s                    Racha de 11s                00 entre dos 1s

             1111 entre dos 0s                  11 entre dos 0s             Racha de 000s
                                                                            000 entre dos 1s

© Jorge Ramió Aguirre    Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 5




          Distribución de las rachas de dígitos
 Las rachas, es decir la secuencia de dígitos iguales entre
 dos dígitos distintos, deberán seguir una distribución
 estadística de forma que la secuencia cifrante Si tenga un
  comportamiento de clave aleatoria o pseudoaleatoria.
 Para que esto se cumpla, es obvio que habrá mayor
 número de rachas cortas que de rachas largas como se
 observa en el ejemplo anterior.
 Como veremos más adelante, esta distribución seguirá
 una progresión geométrica. Por ejemplo una secuencia Si
 podría tener 8 rachas de longitud uno, 4 de longitud dos,
 2 de longitud tres y 1 de longitud cuatro.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo             Página 6




         Autocorrelación fuera de fase AC(k)

   Función de autocorrelación:
           – Autocorrelación AC(k) fuera de fase de una secuencia
             Si de período T desplazada k bits a la izquierda:
                          AC(k) = (A - F) / T
           Aciertos ⇒ bits iguales    Fallos ⇒ bits diferentes
    Ejemplo
           Si       1 1 1 1 0 1 0 1 1 0 0 1 0 0 0                       Si k = 1

    A=              1 1 1 0 1 0 1 1 0 0 1 0 0 0 1                        A=7; F=8

    F=                                                                AC(1) = -1/15

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 7




     Autocorrelación fuera de fase constante

                 Si      1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

    Como ejercicio, compruebe que para esta secuencia cifrante Si la
    autocorrelación fuera de fase AC(k) para todos los valores de k
    (1 ≤ k ≤ 14) es constante e igual a -1/15. Esta característica será
    importante para que la clave sea considerada buena.

    Es decir, para que una secuencia cifrante S podamos considerarla
    segura y apropiada para una cifra, además de cumplir con la
    distribución de rachas vista anteriormente, deberá presentar una
    autocorrelación fuera de fase AC(k) constante.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 8




    Imprevisibilidad e implementación de Si
   • Imprevisibilidad:
           – Aunque se conozca una parte de la secuencia Si, la
             probabilidad de predecir el próximo dígito no deberá
             ser superior al 50%.
           – Esta característica se definirá a partir de la
             denominada complejidad lineal.
   • Facilidad de implementación:
           – Debe ser fácil construir un generador de secuencia
             cifrante con circuitos electrónicos y chips, con bajo
             coste, alta velocidad, bajo consumo, un alto nivel de
             integración, etc.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 9




              Primer postulado de Golomb G1
   Postulado G1:
           – Deberá existir igual número de ceros que de unos. Se
             acepta como máximo una diferencia igual a la unidad.

              S1         1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
                        En la secuencia S1 de 15 bits, hay 8 unos y 7
                        ceros. Luego sí cumple con el postulado G1.

              S2         0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1
                        En la secuencia S2 de 16 bits, hay 7 unos y 9
                        ceros. Luego no cumple con el postulado G1.

© Jorge Ramió Aguirre     Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo    Página 10




                   Significado del postulado G1

                  Si     1 1 1 1 0 1 0 1 1 0 0 1 0 0 0

      ¿Qué significa esto?

      Si una secuencia Si como la indicada cumple con G1, quiere
      decir que la probabilidad de recibir un bit 1 es igual a la de
      recibir un bit 0, es decir un 50%.
      Por lo tanto, a lo largo de una secuencia Si, independientemente
      de los bits recibidos con anterioridad, en media será igualmente
      probable recibir un “1” que un “0”, pues en la secuencia hay una
      mitad de valores “1” y otra mitad de valores “0”.


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo               Página 11




            Segundo postulado de Golomb G2
  Postulado G2:
          – En un período T, la mitad de las rachas de Si serán de
            longitud 1, la cuarta parte de longitud 2, la octava
            parte de longitud 3, etc.                 Las rachas de
                                                                      esta secuencia
   Si       1 1 1 1 0 1 0 1 1 0 0 1 0 0 0                               están en una
                                                                         diapositiva
                                                                            anterior

  En la secuencia Si de 15 bits, había 4 rachas de longitud uno, 2
  rachas de longitud dos, 1 racha de longitud tres y 1 racha de
  longitud cuatro. Este tipo de distribución en las rachas para
  períodos impares, es típica de las denominadas m-secuencias
  como veremos más adelante en el apartado generadores LFSR.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 12




                   Significado del postulado G2

                    Si      1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
    ¿Qué significa esto?

    Si una secuencia Si como la indicada cumple con G2, quiere
    decir que la probabilidad de recibir un bit 1 o un bit 0, después
    de haber recibido un 1 o un 0 es la misma, es decir un 50%.
    Es decir, recibido por ejemplo un “1”, la cadena “10” deberá ser
    igual de probable que la cadena “11”. Lo mismo sucede con un 0
    al comienzo, o bien un 00, 01, 10, 11, 000, 001, etc. Existirá así
    también una equiprobabilidad en función de los bits ya recibidos.
    Como comprobaremos más adelante, esto va a significar que la
    secuencia pasa por todos sus estados, es decir todos sus
    restos.

© Jorge Ramió Aguirre    Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 13




        Tercer postulado de Golomb G3 (1/2)
   Postulado G3:
           – La autocorrelación AC(k) deberá ser constante
             para todo valor de desplazamiento de k bits.
            Si      1 0 0 1 1 1 0                           Secuencia original
                                               Desplazamiento de un bit a la izquierda

      k=1           0 0 1 1 1 0 1                  AC(1) = (3-7)/7 = -4/7
      k=2           0 1 1 1 0 1 0                   AC(2) = (3-7)/7 = -4/7

      k=3           1 1 1 0 1 0 0                   AC(3) = (3-7)/7 = -4/7
                                                                                         sigue

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo              Página 14




        Tercer postulado de Golomb G3 (2/2)

                    1 0 0 1 1 1 0                   Secuencia original

      k=4           1 1 0 1 0 0 1                  AC(4) = (3-7)/7 = -4/7

      k=5           1 0 1 0 0 1 1                  AC(5) = (3-7)/7 = -4/7

       k=6          0 1 0 0 1 1 1                   AC(6) = (3-7)/7 = -4/7

       k=7          1 0 0 1 1 1 0                   Secuencia original en fase

         La secuencia Si = 1001110 de 7 bits cumple con G3


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 15




           Autocorrelación no constante (1/2)

             Si         0 1 1 1 0 1 0 0                                 Secuencia original

                                                 Desplazamiento de un bit a la izquierda


        k=1 1 1 1 0 1 0 0 0                                  AC(1) = (4-4)/8 = 0

        k=2             1 1 0 1 0 0 0 1                      AC(2) = (4-4)/8 = 0

        k=3             1 0 1 0 0 0 1 1                      AC(3) = (2-6)/8 = -1/2
        k=4             0 1 0 0 0 1 1 1                     AC(4) = (4-4)/8 = 0

                                                                                           sigue

© Jorge Ramió Aguirre     Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo               Página 16




           Autocorrelación no constante (2/2)

             Si         0 1 1 1 0 1 0 0                    Secuencia original

        k=5 1 0 0 0 1 1 1 0                                AC(5) = (2-6)/8 = -1/2

        k=6             0 0 0 1 1 1 0 1                   AC(6) = (4-4)/8 = 0
        k=7             0 0 1 1 1 0 1 0                   AC(7) = (4-4)/8 = 0
        k=8 0 1 1 1 0 1 0 0                               Secuencia original en fase


         La secuencia Si = 01110100 de 8 bits no cumple con G3


© Jorge Ramió Aguirre     Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo            Página 17




                   Significado del postulado G3

             Si         0 1 1 1 0 1 0 0                       No cumple con G3
             Si         1 0 0 1 11 0                          Sí cumple con G3
  ¿Qué significa esto?
 Si una secuencia cumple con el postulado G3 quiere decir
 que, independientemente del trozo de secuencia elegido por
 el atacante, no habrá una mayor cantidad de información que
 en la secuencia anterior. Así, será imposible aplicar ataques
 estadísticos a la secuencia recibida u observada al igual
 como operábamos, por ejemplo y guardando las debidas
 distancias, con el sistema Vigenère y el ataque de Kasiski.

© Jorge Ramió Aguirre     Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                  Página 18




              Generador de congruencia lineal

          xi+1 = (a∗xi ± b)(mod n)                           será la secuencia cifrante


  • Los valores a, b, n caracterizan al generador y se
    utilizarán como clave secreta.
  • El valor x0 se conoce como semilla; es el que inicia el
    proceso generador de la clave Xi.
  • La secuencia se genera desde i = 0 hasta i = n-1.
  • Tiene como debilidad que resulta relativamente fácil
    atacar la secuencia, de forma similar al criptoanálisis
    de los cifradores afines vistos en criptografía clásica.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                       Página 19




   Ejemplo generador de congruencia lineal
     Sea:                            xi+1 = (a∗xi ± b)(mod n)                         Pero...
     a=5     b=1
     n = 16 x0 = 10
                              Si = 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5

     x1 = (5∗10+1) mod 16 = 3                           x9 = (5∗2+1) mod 16 = 11
     x2 = (5∗3+1) mod 16 = 0                           x10 = (5∗11+1) mod 16 = 8
     x3 = (5∗0+1) mod 16 = 1                           x11 = (5∗8+1) mod 16 = 9
     x4 = (5∗1+1) mod 16 = 6                           x12 = (5∗9+1) mod 16 = 14
     x5 = (5∗6+1) mod 16 = 15                          x13 = (5∗14+1) mod 16 = 7
     x6 = (5∗15+1) mod 16 = 12                         x14 = (5∗7+1) mod 16 = 4
     x7 = (5∗12+1) mod 16 = 13                         x15 = (5∗4+1) mod 16 = 5
     x8 = (5∗13+1) mod 16 = 2                          x16 = (5∗5+1) mod 16 = 10
© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                     Página 20




       ¿Algo falla en este tipo de generador?
                                                                      ¿Qué sucede si
      xi+1 = (a∗xi ± b)(mod n)                       Ejercicios       a = 11 b = 1
                                                                      n = 16 x0 = 7?

         ¿Qué sucede si                  ¿Qué sucede si               ¿Qué sucede si
         a=5     b=2                     a=5     b=2                  a=4 b=1
         n = 16 x0 = 10?                 n = 16 x0 = 1?               n = 16 x0 = 10?

                              Saque sus propias conclusiones.
         Como habrá comprobado, este tipo de generadores de secuencia
             cifrante no son criptográficamente nada interesantes.
        Una vez hecho esto personalmente, pase a la siguiente diapositiva.


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo              Página 21




        Debilidad en este tipo de generadores
        Si = (11∗7 + 1) mod 16                            El período que se genera es
        Si = 15, 7                                        sólo de tamaño dos ... 

   Si = (5∗10 + 2) mod 16                                 Se obtiene un período muy
   Si = 4, 6, 0, 2, 12, 14, 8, 10                         bajo y sólo valores pares e
                                                          impares. El primer caso es
   Si = (5∗1 + 2) mod 16
                                                          igual que el de los apuntes
   Si = 7, 5, 11, 9, 15, 13, 3, 1                         pero con b = 2 ...  

        Si = (4∗10 + 1) mod 16                            Peor aún, ya no se genera
        Si = 9, 5, 5, ....                                una secuencia ...   

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                         Página 22




                   Registros de desplazamiento
         Generador de secuencia cifrante con registros de desplazamiento
                                                                                Realimentación
                 g[a(t-1)a(t-2) ...a(t-n+1)]⊕a(t-n)
                                                                                     Si es un bit 0 ó 1
                                           Conexiones de puertas
    ?                                                                                   Si
          S1        S2           S3          S4                Sn-1      Sn
                                                                                Bit que se pierde
        a(t-1)    a(t-2)       a(t-3)      a(t-4)          a(t-n+1) a(t-n)
         Desplazamiento                    a(i) es el contenido de la celda i

        Genera una secuencia con un período máximo 2n
                                                                                     NLFSR
Registros de Desplazamiento Realimentados No Linealmente
Registros de Desplazamiento Realimentados Linealmente
            Por claridad se mantendrá la nomenclatura inglesa                         LFSR

© Jorge Ramió Aguirre      Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                       Página 23




       Introducción a los autómatas celulares
  • Los registros de desplazamiento son un caso especial de los
    denominados autómatas celulares finitos unidimensionales.
  • Este autómata celular finito es un sistema dinámico con un
    total de N células, dispuestas en un espacio unidimensional.
  • Cada célula tendrá en cada instante un estado E y existirá
    una función de transición f que, dependiendo de una
    vecindad establecida entre las células, hará que en cada
    instante de tiempo dicho autómata evolucione.
  • En criptografía interesan los autómatas celulares que sean
    reversibles, es decir, que permitan la evolución hacia atrás.

                                http://www.criptored.upm.es/investigacion/tfc_m317a.htm      

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                      Página 24




                        Generadores NLFSR (1/2)

 Un generador de cuatro celdas (n = 4)

                                              1
                                                                               Este es el estado
                                XOR                                              de las celdas y
                          1
                                                  0                             las operaciones
                Primera
                                                      OR                       previas antes de
                operación            0                           0                 producirse el
                                    AND                     NOT                 desplazamiento
                                                                               de un bit hacia a
                         S1
                         0               S2
                                         1             S3
                                                       1             S4
                                                                     1               la derecha.

                          S1
                                                                                Si
                                         S2            S3                S4
                        Sea la semilla: S1S2S3S4 = 0111                       Operaciones


© Jorge Ramió Aguirre     Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 25




                        Generadores NLFSR (2/2)
                                                            Semilla: S1S2S3S4 = 0111
                                             1
                              XOR
                         1
                                                 0                          Observe que primero
                                                     OR                     se transmite S4S3S2S1 y
                                   0                           0            luego S5S6S7 ... S12.
                                  AND                      NOT
                                                                              Si
                        S1
                        1
                        0              S2
                                       0
                                       1              S3
                                                      1            S4
                                                                   1                1
                        S1              S2            S3               S4
      Si = 1110 1100 1010 0001; su período es máximo, Tmáx = 2n = 24 = 16.
      Se conoce como secuencia de De Bruijn. El contenido de las celdas
      pasará por todos los estados posibles: desde 0000 hasta 1111.
                                       http://mathworld.wolfram.com/deBruijnSequence.html      

© Jorge Ramió Aguirre    Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                    Página 26




                        Generadores lineales LFSR
    a(t) = C1a(t-1) ⊕ C2a(t-2) ⊕ C3a(t-3) ⊕ ... ⊕ Cna(t-n)
     Ci = {1,0} ⇒ conexión/no conexión celda Cn = 1
                  Función única: XOR                                       Tmáx = 2n - 1
   Polinomio asociado:
              f(x) = Cnxn + Cn-1xn-1 + .... + C2x2 + C1x + 1
                                         XOR
                                                                                 Generador
                        C1            C2             C3            C4            LFSR de 4
                                                                                etapas/celdas
                  S1                S2              S3           S4              Si

© Jorge Ramió Aguirre        Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 27




          Tipos de generadores lineales LFSR
      Observación: como la única función de realimentación de un
      LFSR es un XOR, no estará permitida la cadena de todos ceros.

  En función del polinomio asociado tendremos:
  • LFSR con polinomios factorizables
     • No serán criptográficamente interesantes.
  • LFSR con polinomios irreducibles
     • No serán criptográficamente interesantes.
  • LFSR con polinomios primitivos
     • Según los postulados de Golomb, este tipo de polinomio
       que genera todos los estados lineales posibles del cuerpo
       de trabajo n, será el que nos entregue una secuencia
       cifrante de interés criptográfico con período T = 2n –1.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo              Página 28




       Generador LFSR con f(x) factorizable
    Generador f(x) factorizable de cuatro celdas (n = 4)
                                                                 ⊕
   Sea f(x) = x4 + x2 + 1

    f(x) es factorizable porque:
                                                           S1 S2 S3 S4           Si
    Sea f(x1) = f(x2) = (x +x+1)
                               2


    f(x) = f(x1) • f(x2)                                              Problema
    f(x) = (x2+x+1) • (x2+x+1)                 T dependerá de la semilla
    f(x) = x4+2x3+3x2+2x+1                              T ≤ 2n - 1
    Tras la reducción módulo 2                 Y además, habrá períodos
    Luego f(x) = x4 + x2 +1                    secundarios divisores de T.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                         Página 29




   Ejemplo LFSR con f(x) factorizable (1/2)
    f(x) = x4 + x2 + 1
    Sea la semilla:                                         ⊕
    S1S2S3S4 = 0111

                                                      S1 S2 S3 S4
                                                      0 1 1 1                          Si
                        Registro          Bit Si      Registro        Bit Si
                        0111                   1       1110            0
Primer bit:
                        0011                   1        1111            1
resultado de
la operación            1001                   1        0111            1      . . . semilla
S1 = S2 ⊕ S4            1100                   0         Si = 111001           T=6

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                 Página 30




   Ejemplo LFSR con f(x) factorizable (2/2)
    f(x) = x4 + x2 + 1
    Sea ahora la semilla:                                   ⊕
    S1S2S3S4 = 1101

                                                      S1 S2 S3 S4
                                                      1 1 0 1                  Si
                        Registro          Bit Si        S1 S2 S3 S4
                        1101                   1
Primer bit:                                              Si = 101     T es un período
                        0110                   0                      secundario y en
resultado de                                             T=3           en este caso es
la operación            1011                   1
                                                                       incluso menor
S1 = S2 ⊕ S4            1101                   1   . . . semilla       que la semilla.


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo              Página 31




        Generador LFSR con f(x) irreducible
     Generador f(x) irreducible de cuatro celdas (n = 4)
   Sea f(x) = x4 + x3 + x2 + x + 1
        Es imposible factorizar                                       ⊕
        en módulo 2 la función
        f(x) mediante dos
                                                             S1 S2 S3 S4           Si
        polinomios f(x1) y f(x2)
        de grado menor                                                Problema
                Ahora T ya no depende de la semilla
                pero será un factor de Tmáx = 2n – 1 y
                no obtendremos un período máximo.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 32




       Ejemplo de LFSR con f(x) irreducible
    f(x) = x4 + x3 + x2 + x + 1
    Sea la semilla:                                          ⊕
    S1S2S3S4 = 0001

                                                      S1 S2 S3 S4
                                                      0 0 0 1                         Si
                        Registro          Bit Si      Registro        Bit Si
                        0001                   1       0011            1
                        1000                   0        0001            1      . . . semilla
                        1100                   0        Si = 100011 T = 5 siendo
                        0110                   0        Tmáx = 2n - 1 = 24- 1 = 15

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                           Página 33




          Generador LFSR con f(x) primitivo
     Generador f(x) primitivo de cuatro celdas (n = 4)
       Sea f(x) = x4 + x + 1
        f(x) no es factorizable                                  ⊕
        como f(x1)•f(x2) en
        módulo 2. Será además                                                                     Si
        un generador del grupo.                                 S1 S2 S3 S4
       T ya no dependerá de la semilla y será
       el valor máximo Tmáx = 2n - 1. Se van a                       Habrá φ(2n - 1)/n
       generar así las llamadas m-secuencias.                      polinomios primitivos


        Polinomios                 http://mathworld.wolfram.com/PrimitivePolynomial.html           
        Generación polinomios                  http://www.theory.csc.uvic.ca/~cos/gen/poly.html    

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 34




         Ejemplo de LFSR con f(x) primitivo
    Generador f(x) primitivo de cuatro celdas (n = 4)
       f(x) = x4 + x + 1                                               Si = 100100011110101
                                                          ⊕
       S1S2S3S4 = 1001                                         S1 = S1 ⊕ S4
       Registro         Bit Si                                                         Si
                                                         S1 S2 S3 S4
                                                         1 0 0 1
        1001             1
        0100             0         1110              0         1010           0   T = 2n - 1
                                                                                  T = 24 - 1
        0010             0         1111              1         1101           1   T = 15
        0001             1         0111              1         0110           0
        1000             0         1011              1         0011           1
        1100             0         0101              1         1001           T = 15

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 35




  Secuencias de un LFSR con f(x) primitivo
                                       Características
   • Tendrá una secuencia máxima de 2n - 1 bits.
   • Cumplirá con G1:
           – Hay 2n bits 1 y 2n-1 bits 0.
   • Cumplirá con G2:                            m-secuencia
           – El vector binario de las celdas pasa por todos los
             estados excepto la cadena de ceros que está prohibida.
             Distribución típica de rachas de una m-secuencia.
   • Cumplirá con G3:
           – Los aciertos (A) serán iguales a 2n-1 - 1.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                    Página 36




Rachas en Si de un LFSR con f(x) primitivo
        Rachas de Longitud                     Rachas de Ceros        Rachas de Unos
                  1                                2n-3                    2n-3
                  2                                2n-4                    2n-4
                 ...                                ...                     ...
                  p                                2n-p-2                  2n-p-2
                 ...                                ...                     ...
                n-2                                  1                       1
                n-1                                  1                       0
                  n                                  0                       1
               TOTAL                               2n-2                    2n-2
                             Rachas de una m-secuencia
         Sin embargo, no es un generador ideal para la cifra
         porque su Complejidad Lineal es muy baja.
© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                    Página 37




   Debilidad de un LFSR con f(x) primitivo

   Como este tipo de LFSR genera una secuencia de longitud máxima,
   ésta será previsible y se puede encontrar la secuencia completa Si
   de 2n - 1 bits ...
                         ¡ con sólo conocer 2n bits !
   Por ejemplo, si conocemos sólo 2•10 = 20 bits en un sistema de 10
   celdas con un período 210-1 = 1.023, seremos capaces de encontrar
   las conexiones de las celdas o valores de Ci y generar la secuencia
   completa Si. Esta debilidad es la que usa el ataque conocido como
   algoritmo de Berlekamp-Massey.
                        http://planetmath.org/encyclopedia/BerlekampMasseyAlgorithm.html     
             Algoritmo          http://ihome.ust.hk/~trippen/Cryptography/BM/frameset.html   

© Jorge Ramió Aguirre     Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                   Página 38




   Ejemplo de ataque de Berlekamp-Massey
   Si conocemos 2∗n = 8 bits S1S2S3S4S5S6S7S8 de un LFSR
   de 4 celdas C1C2C3C4, tenemos el sistema de ecuaciones:
                  ⊕                                                   Si asignamos valores
        C1 C2 C3                          C4=1                         de esos 2∗n = 8 bits
            S1 S2 S3 S4                         Si                        S1S2S3S4S5S6S7S8
                                                                       seremos capaces de
                                                                      resolver este sistema
   S5 = C1•S1⊕ C2•S2⊕ C3•S3⊕ C4•S4
   S6 = C1•S5⊕ C2•S1⊕ C3•S2⊕ C4•S3                                    Primero se transmite
                                                                       S4S3S2S1 (semilla) y
   S7 = C1•S6⊕ C2•S5⊕ C3•S1⊕ C4•S2                                     luego bits S5S6S7S8.
   S8 = C1•S7⊕ C2•S6⊕ C3•S5⊕ C4•S1
© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                      Página 39




   Solución al ataque de Berlekamp-Massey
  S5 = C1•S1⊕ C2•S2⊕ C3•S3⊕ C4•S4                            Si b1b2b3b4b5b6b7b8 = 11001000
  S6 = C1•S5⊕ C2•S1⊕ C3•S2⊕ C4•S3                             son correlativos y como hay
                                                                cuatro celdas y primero se
  S7 = C1•S6⊕ C2•S5⊕ C3•S1⊕ C4•S2                            transmite la semilla, entonces:
  S8 = C1•S7⊕ C2•S6⊕ C3•S5⊕ C4•S1                                        S1 = 0 S5 = 1
                                                                         S2 = 0 S6 = 0
   1 = C1•0 ⊕ C2•0 ⊕ C3•1⊕ C4•1                                          S3 = 1 S7 = 0
   0 = C1•1 ⊕ C2•0 ⊕ C3•0 ⊕ C4•1                                         S4 = 1 S8 = 0

   0 = C1•0 ⊕ C2•1 ⊕ C3•0 ⊕ C4•0                                         C1 = 1     C2 = 0

                                                                         C3 = 0     C4 = 1
   0 = C1•0 ⊕ C2•0 ⊕ C3•1 ⊕ C4•0
© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 40




    Conclusiones ataque Berlekamp-Massey
   CONCLUSIONES:
   • Como se conoce la configuración del generador LFSR, y
     Si es una m-secuencia de período 2n - 1, entonces por el
     conjunto de n celdas pasarán todos los restos del campo de
     Galois de 2n, excepto la cadena de n ceros que sabemos
     está prohibida en estos sistemas generadores lineales.
   • Para el ejemplo anterior, esto quiere decir que cualquier
     grupo de 2n = 8 dígitos correlativos nos permite generar la
     secuencia máxima, en este caso de 2n = 16 bits.
   • La solución es aumentar la complejidad lineal del
     generador por ejemplo conectando varios LFRs.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 41




                        Complejidad lineal LC
   o Un LFSR con polinomio primitivo de n celdas tendrá una
     complejidad lineal LC igual a n; es decir con 2n bits se
     puede generar la secuencia completa como hemos visto.
   o Lo ideal es que si este LFSR entrega una secuencia Si con
     un período igual a 2n – 1, su LC fuese cercana a este valor.
   o Para aumentar esta LC podemos usar:
      o Operaciones no lineales de las secuencias del LFSR
           o Operaciones de suma
           o Operaciones de multiplicación
      o Filtrado no lineal de los estados del LFSR.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                     Página 42




   Operaciones no lineales con dos registros
                               LC = n1; T = 2n1-1
  Generador primitivo con n1 celdas                                     LC = n1 + n2
                                 LC = n2 T = 2n2-1               ⊕          Si
  Generador primitivo con n2 celdas                                     T = mcm (2n1-1, 2n2-1)
                                                                      Es el modelo usado por A5

                               LC = n1; T = 2n1-1
  Generador primitivo con n1 celdas                                     LC = n1 ∗ n2
                                 LC = n2 T = 2n2-1               ⊗          Si
  Generador primitivo con n2 celdas                                     T = mcm (2n1-1, 2n2-1)


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                           Página 43




    Generadores LFSR con filtrado no lineal
 Generador de Geffe                            • Si a1 es un 0 ⇒ Si es el bit de a2
                  a2
   LFSR 2                0                     • Si a1 es un 1 ⇒ Si es el bit de a3
                                      Si
                        Selector
                  a3                               Luego: Si = a2 ⊕ a1a2 ⊕ a1a3
   LFSR 3                1
                                                   LC = (n1 + 1)n2 ⊕ n1n3
                  a1
   LFSR 1                                           T = mcm (2n1-1, 2n2-1, 2n3-1)
    Se mejora la LC e incluso se aumenta si ponemos más LFSRs pero este
    generador es débil ante ataques por correlación de bits. Existen muchos
    esquemas en esta línea: Beth-Piper, Gollmann, Massey-Rueppel, etc.,
    que no serán tratados en este capítulo.
    Encontrará ataques algebraicos a cifradores de flujo en la siguiente Web.
                                                          http://www.cryptosystem.net/stream      

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 44




                 Algoritmos de cifrado en flujo
   Sistemas más conocidos:
   •    A5:                                    http://www.argo.es/~jcea/artic/hispasec33.htm   
           – Algoritmo no publicado propuesto en 1994. Versiones A5/1
             fuerte (Europa) y A5/2 débil (exportación).
   •    RC4:                        http://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html       
           – Algoritmo de RSA Corp. (Rivest Cipher #4) desarrollado en
             el año 1987, usado en Lotus Notes. Posteriormente se usa
             en el navegador de Netscape desde 1999 y luego en otros
             navegadores más actuales. No es público.
   •    SEAL:           http://www.gemplus.com/smart/rd/publications/pdf/HG97chis.pdf          
           – Algoritmo propuesto por IBM en 1994.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                        Página 45




                        El algoritmo de cifra A5
      El uso habitual de este algoritmo lo encontramos en el
       cifrado del enlace entre el abonado y la central de un
       teléfono móvil (celular) tipo GSM.
      Cada trama de conversación entre A y B tiene 228 bits, de
       los cuales 114 son en sentido A → B y otros 114 en sentido
       B → A. El generador entregará los 228 bits pseudoaleatorios
       para la cifra de cada trama.
      Con cerca de 130 millones de usuarios en Europa y otros
       100 millones de usuarios en el resto del mundo en 1999, el
       sistema A5/1 sucumbió en diciembre de ese año a un ataque
       realizado por Alex Biryukov, Adi Shamir y David Wagner.
                                                             http://cryptome.org/a51-bsw.htm   
                                      http://www.criptored.upm.es/guiateoria/gt_m116a.htm      

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                                  Página 46




         Esquema del algoritmo de cifra A5/1
                                    19         14       C1                      1

   3 registros
   LFSR con                    R1                                                               Una función
                                                        9: bit de reloj
                                                                                              mayoría entre
   m-secuencia
                                         ⊕          f(x1) = x19+x18+x17+x14+1
                                                                                            C1, C2 y C3 hace
                                                                                    1
                                                                                                que sólo los
                                    22                       C2

                    ⊕
                                                                                             registros en los
       Si                                                                                    que coincide el
                               R2
                                                             11: bit de reloj                     bit con ese
   R1 ⇒ n1 = 19                           ⊕           f(x2) = x22+x21+1
                                                                                            valor produzcan
                                                                                            desplazamiento.
   R2 ⇒ n2 = 22                     23                            C3     8              1      En cada paso
                                                                                            habrá dos o tres
   R3 ⇒ n3 = 23                R3                                                                registros en
                                                             11: bit de reloj
                                                                                                movimiento.
  Clave = 64 bits
                                          ⊕           f(x3) = x23+x22+x21+x8+1


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo                          Página 47




    Función mayoría y ejemplo de secuencia
                             F (C1,C2,C3) = C1C2 ⊕ C1C3 ⊕ C2C3
   Si el bit de la celda del registro coincide con el resultado de F,
   dicho registro estará en movimiento y se desplazará, en caso
   contrario no desplazará.
   Esta función mayoría entre las celdas C1, C2 y C3, permite que al
   menos dos de los tres registros se desplacen en cada paso.
        C1     C2       C3                                   C1    C2      C3
        0      0         0     Desplazan todos               1     0        0   No desplaza R1
        0      0         1     No desplaza R3                1     0        1   No desplaza R2
        0      1         0     No desplaza R2                1     1        0   No desplaza R3
        0      1         1     No desplaza R1                1     1        1   Desplazan todos

© Jorge Ramió Aguirre        Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 48




  Consideraciones sobre el período de A5/1
   El período T vendrá dado por el mínimo común múltiplo de los tres
   períodos individuales:
                             T = mcm (2n1 - 1, 2n2 - 1, 2n3 - 1)
   Como n1, n2 y n3 son primos entre sí, también lo serán los valores
   (2n1 -1), (2n2 - 1) y (2n3 - 1). Luego el período T será el producto:
                                               T = T1∗T2∗T3
    Entonces T = (219-1)(222-1)(223-1) = 524.287∗4.194.303∗8.388.607
                        T = 18.446.702.292.280.803.327 < 264
   Este valor demasiado bajo  sucumbe ante ataques distribuidos tal
   como veremos cuando se estudien debilidades del algoritmo DES.

© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo   Página 49




         Registros y función mayoría en A5/2
   • Usa los mismos tres registros de desplazamiento con polinomio
     primitivo que A5/1:
          – f(x1) = x19 + x18 + x17 + x14 + 1
          – f(x2) = x22 + x21 + 1
          – f(x3) = x23 + x22 + x21 + x8 + 1
   • Además, usa un cuarto registro R4 con un polinomio primitivo:
          – f(x4) = x17 + x12 + 1
   • Usa cuatro copias de una función mayoría F para cada uno de los
     cuatro registros que se define como:
          – F(x1,x2,x3) = x1x2 + x1x3 + x2x3


© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo            Página 50




                        Otras operaciones de A5/2
          – En R1 las entradas a la función F1 son las celdas 13, 15 y 16.
          – En R2 las entradas a la función F2 son las celdas 10, 14 y 17.
          – En R3 las entradas a la función F3 son las celdas 14, 17 y 19.
          – En R4 las entradas a la función F4 son las celdas 4, 8 y 11. La
            salida de esta copia determina qué registros de R1,R2,R3 se
            desplazarán en el ciclo.
   • Complementación de celdas y sumas en salida de F:
          – En R1 se complementa la celda 15 y se suma la celda 19 a F.
          – En R2 se complementa la celda 17 y se suma la celda 22 a F.
          – En R3 se complementa la celda 14 y se suma la celda 23 a F.
                                                                       Fin del capítulo
© Jorge Ramió Aguirre    Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo    Página 51




                 Cuestiones y ejercicios (1 de 3)
    1. ¿Por qué en los sistemas de cifra en flujo se usa una función XOR
       tanto en emisor como en receptor? ¿Son las claves aquí inversas?
    2. Si tenemos una clave de 16 bits, ¿cuál es el período máximo que
       podremos lograr en una secuencia cifrante lineal? ¿Por qué?
    3. ¿Qué rachas encuentra en la secuencia 110100111010100?
    4. ¿Por qué es lógico esperar más rachas cortas que rachas largas?
    5. Si en una secuencia cifrante se observa una correlación fuera de
       fase no constante, ¿qué significa? ¿Podríamos hacer un ataque
       similar al que permite romper el sistema de cifra polialfabético de
       Vigenère?
    6. A nivel de probabilidades de ocurrencia de bits, ¿qué significan los
       postulados de Golomb G1 y G2?
    7. ¿Qué significa que una secuencia cifrante pase por todos los estados
       o restos posibles? ¿Cuál sería en este caso su período?
© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo              Página 52




                 Cuestiones y ejercicios (2 de 3)
    •    ¿Qué secuencias se obtiene con un generador de congruencia lineal
         en el que a = 7, b = 4 y n = 8? ¿Y si ahora hacemos a = 3?
    •    ¿Qué tipo de ataque podríamos intentar para romper una secuencia
         cifrante obtenida con un generador de congruencia lineal?
    •    ¿Por qué en un registro de desplazamiento siempre se realimenta el
         bit de la última celda, es decir bit que sale a línea?
    •    En el generador NLFSR de los apuntes si se cambia la función
         AND por una OR, ¿qué sucede con la secuencia? Saque
         conclusiones.
    •    Decimos que los generadores LFSR tienen asociado un polinomio
         f(x) = anxn + an-1xn-1 + an-2xn-2 + ... + a2x2 + a1x + 1, donde ai toma los
         valores de 0 ó 1. ¿Por qué f(x) termina en 1?
    •    ¿Qué polinomio elegiría para un generador con LFSR, un
         polinomio factorizable, uno irreducible o uno primitivo? ¿Por qué?
© Jorge Ramió Aguirre   Madrid (España) 2006
Capítulo 11: Sistemas de Cifra en Flujo           Página 53




                 Cuestiones y ejercicios (3 de 3)
    1. ¿Por qué no está permitida la cadena de n ceros en un generador
       LFSR de n etapas y en cambio sí en los NLFSR?
    2. En el generador LFSR con f(x) primitivo de 4 etapas, la secuencia
       pasa por todos los restos excepto 0000. Si usamos hora una semilla
       distinta, ¿debemos hacer otra vez todos los cálculos o no? ¿Por qué?
    3. Justifique la distribución de las rachas en una m-secuencia. ¿Por
       qué tiene ese comportamiento extraño al final de las rachas largas?
    4. ¿Qué debilidad de los sistemas LFSR con polinomios primitivos usa
       el algoritmo de Berlekamp-Massey para realizar el ataque?
    5. En un ataque de Berlekamp-Massey, ¿importa en qué posición de la
       secuencia se encuentran los 2n bits? ¿Por qué?
    6. ¿Por qué cree que el algoritmo A5/1 es débil? ¿Cuál fue el peor
       error cometido por sus creadores?
    Software de laboratorio de flujo: próximamente en página web de la asignatura.
© Jorge Ramió Aguirre   Madrid (España) 2006

Más contenido relacionado

La actualidad más candente

Developer's Guide to JavaScript and Web Cryptography
Developer's Guide to JavaScript and Web CryptographyDeveloper's Guide to JavaScript and Web Cryptography
Developer's Guide to JavaScript and Web Cryptography
Kevin Hakanson
 
computer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentationcomputer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentation
Alex Punnen
 
Social engineering
Social engineeringSocial engineering
Social engineering
Alexander Zhuravlev
 
Email Security: The Threat Landscape
Email Security: The Threat LandscapeEmail Security: The Threat Landscape
Email Security: The Threat Landscape
Nuspire Networks
 
Cyber Kill Chain.pptx
Cyber Kill Chain.pptxCyber Kill Chain.pptx
Cyber Kill Chain.pptx
Vivek Chauhan
 
CONVENTIONAL ENCRYPTION
CONVENTIONAL ENCRYPTIONCONVENTIONAL ENCRYPTION
CONVENTIONAL ENCRYPTION
SHUBHA CHATURVEDI
 
Web security
Web securityWeb security
Web security
Subhash Basistha
 
Metodos de Autentificacion
Metodos de AutentificacionMetodos de Autentificacion
Metodos de Autentificacion
Maryfi
 
Cryptography
CryptographyCryptography
Cryptography
Niharjyoti Sarangi
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
Sam Bowne
 
Data Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignData Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application Design
Eric Maxwell
 
Cryptography and Network Security William Stallings Lawrie Brown
Cryptography and Network Security William Stallings Lawrie BrownCryptography and Network Security William Stallings Lawrie Brown
Cryptography and Network Security William Stallings Lawrie Brown
Information Security Awareness Group
 
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbharCross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Sandeep Kumbhar
 
2. public key cryptography and RSA
2. public key cryptography and RSA2. public key cryptography and RSA
2. public key cryptography and RSA
Dr.Florence Dayana
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
Kapil Nagrale
 
Social engineering
Social engineeringSocial engineering
Social engineering
Robert Hood
 
Social engineering attacks
Social engineering attacksSocial engineering attacks
Social engineering attacks
Ramiro Cid
 
Social engineering
Social engineering Social engineering
Social engineering
Vîñàý Pãtêl
 
6. cryptography
6. cryptography6. cryptography
6. cryptography
7wounders
 
CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management
Sam Bowne
 

La actualidad más candente (20)

Developer's Guide to JavaScript and Web Cryptography
Developer's Guide to JavaScript and Web CryptographyDeveloper's Guide to JavaScript and Web Cryptography
Developer's Guide to JavaScript and Web Cryptography
 
computer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentationcomputer-security-and-cryptography-a-simple-presentation
computer-security-and-cryptography-a-simple-presentation
 
Social engineering
Social engineeringSocial engineering
Social engineering
 
Email Security: The Threat Landscape
Email Security: The Threat LandscapeEmail Security: The Threat Landscape
Email Security: The Threat Landscape
 
Cyber Kill Chain.pptx
Cyber Kill Chain.pptxCyber Kill Chain.pptx
Cyber Kill Chain.pptx
 
CONVENTIONAL ENCRYPTION
CONVENTIONAL ENCRYPTIONCONVENTIONAL ENCRYPTION
CONVENTIONAL ENCRYPTION
 
Web security
Web securityWeb security
Web security
 
Metodos de Autentificacion
Metodos de AutentificacionMetodos de Autentificacion
Metodos de Autentificacion
 
Cryptography
CryptographyCryptography
Cryptography
 
CISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development SecurityCISSP Prep: Ch 9. Software Development Security
CISSP Prep: Ch 9. Software Development Security
 
Data Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application DesignData Synchronization Patterns in Mobile Application Design
Data Synchronization Patterns in Mobile Application Design
 
Cryptography and Network Security William Stallings Lawrie Brown
Cryptography and Network Security William Stallings Lawrie BrownCryptography and Network Security William Stallings Lawrie Brown
Cryptography and Network Security William Stallings Lawrie Brown
 
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbharCross site scripting (xss) attacks issues and defense - by sandeep kumbhar
Cross site scripting (xss) attacks issues and defense - by sandeep kumbhar
 
2. public key cryptography and RSA
2. public key cryptography and RSA2. public key cryptography and RSA
2. public key cryptography and RSA
 
Buffer overflow attacks
Buffer overflow attacksBuffer overflow attacks
Buffer overflow attacks
 
Social engineering
Social engineeringSocial engineering
Social engineering
 
Social engineering attacks
Social engineering attacksSocial engineering attacks
Social engineering attacks
 
Social engineering
Social engineering Social engineering
Social engineering
 
6. cryptography
6. cryptography6. cryptography
6. cryptography
 
CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management CNIT 129S: Ch 7: Attacking Session Management
CNIT 129S: Ch 7: Attacking Session Management
 

Similar a cifra flujo

11 cifraflujo
11 cifraflujo11 cifraflujo
11 cifraflujo
Roberto Moreno Doñoro
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujo
Calzada Meza
 
Cifrado de flujo viri y ana
Cifrado de flujo viri y anaCifrado de flujo viri y ana
Cifrado de flujo viri y ana
Kristian Martinez Sandoval
 
Criptosistemas
CriptosistemasCriptosistemas
Criptografia moderna
Criptografia modernaCriptografia moderna
Criptografia moderna
José Tomás Diarte Añazco
 
10 ciframoderna
10 ciframoderna10 ciframoderna
10 ciframoderna
Roberto Moreno Doñoro
 
Aes tipo de encriptacion ppt utp
Aes tipo de encriptacion  ppt  utp Aes tipo de encriptacion  ppt  utp
Aes tipo de encriptacion ppt utp
Home
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Oscar Javier Jimenez Revelo
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
Victor Fernando Monroy Dipp
 
Electronica digital
Electronica digitalElectronica digital
Electronica digital
Leonel Ibarra
 
Codigo de transmision
Codigo de transmisionCodigo de transmision
Codigo de transmision
Felipe Olive
 
Common Scrambling Algorithm al descubierto
Common Scrambling Algorithm  al descubiertoCommon Scrambling Algorithm  al descubierto
Common Scrambling Algorithm al descubierto
ronroneo
 
S itema07
S itema07S itema07
S itema07
giovannirojas
 
PDH
PDHPDH
Eventos analógicos y digitales
Eventos analógicos y digitalesEventos analógicos y digitales
Eventos analógicos y digitales
aaron argos garcia
 
Detección y corrección de errores
Detección y corrección de erroresDetección y corrección de errores
Detección y corrección de errores
santi_rafael7777
 
9. Electrónica Digital PDF
9. Electrónica Digital PDF9. Electrónica Digital PDF
9. Electrónica Digital PDF
JeffersonJosARIASHUA
 
Codigos..
Codigos..Codigos..
Codigos..
musmezambrano92
 
Aclarando dudas sobre RSA
Aclarando dudas sobre RSAAclarando dudas sobre RSA
Aclarando dudas sobre RSA
Eventos Creativos
 
12 cifrasimetrica
12 cifrasimetrica12 cifrasimetrica
12 cifrasimetrica
Roberto Moreno Doñoro
 

Similar a cifra flujo (20)

11 cifraflujo
11 cifraflujo11 cifraflujo
11 cifraflujo
 
Criptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujoCriptosistemas de cifrado en flujo
Criptosistemas de cifrado en flujo
 
Cifrado de flujo viri y ana
Cifrado de flujo viri y anaCifrado de flujo viri y ana
Cifrado de flujo viri y ana
 
Criptosistemas
CriptosistemasCriptosistemas
Criptosistemas
 
Criptografia moderna
Criptografia modernaCriptografia moderna
Criptografia moderna
 
10 ciframoderna
10 ciframoderna10 ciframoderna
10 ciframoderna
 
Aes tipo de encriptacion ppt utp
Aes tipo de encriptacion  ppt  utp Aes tipo de encriptacion  ppt  utp
Aes tipo de encriptacion ppt utp
 
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo CódigoCodificación Convolucional, Decodificador de Viterbi y Turbo Código
Codificación Convolucional, Decodificador de Viterbi y Turbo Código
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
 
Electronica digital
Electronica digitalElectronica digital
Electronica digital
 
Codigo de transmision
Codigo de transmisionCodigo de transmision
Codigo de transmision
 
Common Scrambling Algorithm al descubierto
Common Scrambling Algorithm  al descubiertoCommon Scrambling Algorithm  al descubierto
Common Scrambling Algorithm al descubierto
 
S itema07
S itema07S itema07
S itema07
 
PDH
PDHPDH
PDH
 
Eventos analógicos y digitales
Eventos analógicos y digitalesEventos analógicos y digitales
Eventos analógicos y digitales
 
Detección y corrección de errores
Detección y corrección de erroresDetección y corrección de errores
Detección y corrección de errores
 
9. Electrónica Digital PDF
9. Electrónica Digital PDF9. Electrónica Digital PDF
9. Electrónica Digital PDF
 
Codigos..
Codigos..Codigos..
Codigos..
 
Aclarando dudas sobre RSA
Aclarando dudas sobre RSAAclarando dudas sobre RSA
Aclarando dudas sobre RSA
 
12 cifrasimetrica
12 cifrasimetrica12 cifrasimetrica
12 cifrasimetrica
 

Más de G Hoyos A

curvas elipticas
 curvas elipticas curvas elipticas
curvas elipticas
G Hoyos A
 
correo seguro
 correo seguro correo seguro
correo seguro
G Hoyos A
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmos
G Hoyos A
 
gestion seguridad informatica
 gestion seguridad informatica gestion seguridad informatica
gestion seguridad informatica
G Hoyos A
 
calidad de la informacion
calidad de la informacioncalidad de la informacion
calidad de la informacion
G Hoyos A
 
Cripto clasica
Cripto clasicaCripto clasica
Cripto clasica
G Hoyos A
 
Presentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucenaPresentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucena
G Hoyos A
 
S box
S boxS box
S box
G Hoyos A
 
Xor
XorXor
Unixsec
UnixsecUnixsec
Unixsec
G Hoyos A
 
Transposicion
TransposicionTransposicion
Transposicion
G Hoyos A
 
Sellado de tiempo_timestamp
Sellado de tiempo_timestampSellado de tiempo_timestamp
Sellado de tiempo_timestamp
G Hoyos A
 
Protocolo gestor claves
Protocolo gestor clavesProtocolo gestor claves
Protocolo gestor claves
G Hoyos A
 
Problema rsa
Problema rsaProblema rsa
Problema rsa
G Hoyos A
 
Pki
PkiPki
Número primo fuerte
Número primo fuerteNúmero primo fuerte
Número primo fuerte
G Hoyos A
 
Metodo kasiski
Metodo kasiskiMetodo kasiski
Metodo kasiski
G Hoyos A
 
Modos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloquesModos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloques
G Hoyos A
 
Hc
HcHc
Generador pseudoaleatorio de_números
Generador pseudoaleatorio de_númerosGenerador pseudoaleatorio de_números
Generador pseudoaleatorio de_números
G Hoyos A
 

Más de G Hoyos A (20)

curvas elipticas
 curvas elipticas curvas elipticas
curvas elipticas
 
correo seguro
 correo seguro correo seguro
correo seguro
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmos
 
gestion seguridad informatica
 gestion seguridad informatica gestion seguridad informatica
gestion seguridad informatica
 
calidad de la informacion
calidad de la informacioncalidad de la informacion
calidad de la informacion
 
Cripto clasica
Cripto clasicaCripto clasica
Cripto clasica
 
Presentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucenaPresentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucena
 
S box
S boxS box
S box
 
Xor
XorXor
Xor
 
Unixsec
UnixsecUnixsec
Unixsec
 
Transposicion
TransposicionTransposicion
Transposicion
 
Sellado de tiempo_timestamp
Sellado de tiempo_timestampSellado de tiempo_timestamp
Sellado de tiempo_timestamp
 
Protocolo gestor claves
Protocolo gestor clavesProtocolo gestor claves
Protocolo gestor claves
 
Problema rsa
Problema rsaProblema rsa
Problema rsa
 
Pki
PkiPki
Pki
 
Número primo fuerte
Número primo fuerteNúmero primo fuerte
Número primo fuerte
 
Metodo kasiski
Metodo kasiskiMetodo kasiski
Metodo kasiski
 
Modos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloquesModos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloques
 
Hc
HcHc
Hc
 
Generador pseudoaleatorio de_números
Generador pseudoaleatorio de_númerosGenerador pseudoaleatorio de_números
Generador pseudoaleatorio de_números
 

cifra flujo

  • 1. Capítulo 11 Sistemas de Cifra en Flujo Seguridad Informática y Criptografía Ultima actualización del archivo: 01/03/06 Este archivo tiene: 51 diapositivas Material Docente de Dr. Jorge Ramió Aguirre v 4.1 Libre Distribución Universidad Politécnica de Madrid Este archivo forma parte de un curso completo sobre Seguridad Informática y Criptografía. Se autoriza el uso, reproducción en computador y su impresión en papel, sólo con fines docentes y/o personales, respetando los créditos del autor. Queda prohibida su comercialización, excepto la edición en venta en el Departamento de Publicaciones de la Escuela Universitaria de Informática de la Universidad Politécnica de Madrid, España. Curso de Seguridad Informática y Criptografía © JRA
  • 2. Capítulo 11: Sistemas de Cifra en Flujo Página 2 Cifrador de flujo básico • Recordando la propuesta de cifrador hecha por Vernam en 1917, los cifradores de flujo (sistemas con clave secreta) usarán: – Un algoritmo de cifra basado en la función XOR. – Una secuencia cifrante binaria y pseudoaleatoria denominada S y que se obtiene a partir una clave secreta K compartida por emisor y receptor, y un algoritmo generador determinístico. – El mismo algoritmo para el descifrado debido el carácter involutivo de la función XOR. Clave K secuencia cifrante Clave K Algoritmo S C S Algoritmo Determinístico ⊕ ⊕ Determinístico Operaciones ⊕ con bits MENSAJE M M MENSAJE © Jorge Ramió Aguirre Madrid (España) 2006
  • 3. Capítulo 11: Sistemas de Cifra en Flujo Página 3 Características de la secuencia cifrante S Condiciones para una clave binaria segura • Período: – La clave deberá ser tanto o más larga que el mensaje. En la práctica se usará una semilla K de unos 120 a 250 bits en cada extremo del sistema para generar períodos superiores a 1035. • Distribución de bits: – La distribución de bits de unos (1s) y ceros (0s) deberá ser uniforme para que represente a una secuencia pseudoaleatoria. Para ello deberá cumplir los postulados de Golomb: Rachas de dígitos: uno o más bits entre dos bits distintos. Función de autocorrelación fuera de fase AC(k): desplazamiento de k bits sobre la misma secuencia Si. http://ee.usc.edu/faculty_staff/bios/golomb.html  © Jorge Ramió Aguirre Madrid (España) 2006
  • 4. Capítulo 11: Sistemas de Cifra en Flujo Página 4 Rachas de dígitos en una secuencia Rachas de una secuencia S de período T = 15 El bit anterior El próximo 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 bit será un 1 era un 0 Esta distribución Rachas de 1s tan particular se comentará más Rachas de 0s 1 entre dos 0s adelante... 0 entre dos 1s Racha de 00s Racha de 1111s Racha de 11s 00 entre dos 1s 1111 entre dos 0s 11 entre dos 0s Racha de 000s 000 entre dos 1s © Jorge Ramió Aguirre Madrid (España) 2006
  • 5. Capítulo 11: Sistemas de Cifra en Flujo Página 5 Distribución de las rachas de dígitos Las rachas, es decir la secuencia de dígitos iguales entre dos dígitos distintos, deberán seguir una distribución estadística de forma que la secuencia cifrante Si tenga un comportamiento de clave aleatoria o pseudoaleatoria. Para que esto se cumpla, es obvio que habrá mayor número de rachas cortas que de rachas largas como se observa en el ejemplo anterior. Como veremos más adelante, esta distribución seguirá una progresión geométrica. Por ejemplo una secuencia Si podría tener 8 rachas de longitud uno, 4 de longitud dos, 2 de longitud tres y 1 de longitud cuatro. © Jorge Ramió Aguirre Madrid (España) 2006
  • 6. Capítulo 11: Sistemas de Cifra en Flujo Página 6 Autocorrelación fuera de fase AC(k) Función de autocorrelación: – Autocorrelación AC(k) fuera de fase de una secuencia Si de período T desplazada k bits a la izquierda: AC(k) = (A - F) / T Aciertos ⇒ bits iguales Fallos ⇒ bits diferentes Ejemplo Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Si k = 1 A= 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 A=7; F=8 F= AC(1) = -1/15 © Jorge Ramió Aguirre Madrid (España) 2006
  • 7. Capítulo 11: Sistemas de Cifra en Flujo Página 7 Autocorrelación fuera de fase constante Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Como ejercicio, compruebe que para esta secuencia cifrante Si la autocorrelación fuera de fase AC(k) para todos los valores de k (1 ≤ k ≤ 14) es constante e igual a -1/15. Esta característica será importante para que la clave sea considerada buena. Es decir, para que una secuencia cifrante S podamos considerarla segura y apropiada para una cifra, además de cumplir con la distribución de rachas vista anteriormente, deberá presentar una autocorrelación fuera de fase AC(k) constante. © Jorge Ramió Aguirre Madrid (España) 2006
  • 8. Capítulo 11: Sistemas de Cifra en Flujo Página 8 Imprevisibilidad e implementación de Si • Imprevisibilidad: – Aunque se conozca una parte de la secuencia Si, la probabilidad de predecir el próximo dígito no deberá ser superior al 50%. – Esta característica se definirá a partir de la denominada complejidad lineal. • Facilidad de implementación: – Debe ser fácil construir un generador de secuencia cifrante con circuitos electrónicos y chips, con bajo coste, alta velocidad, bajo consumo, un alto nivel de integración, etc. © Jorge Ramió Aguirre Madrid (España) 2006
  • 9. Capítulo 11: Sistemas de Cifra en Flujo Página 9 Primer postulado de Golomb G1 Postulado G1: – Deberá existir igual número de ceros que de unos. Se acepta como máximo una diferencia igual a la unidad. S1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 En la secuencia S1 de 15 bits, hay 8 unos y 7 ceros. Luego sí cumple con el postulado G1. S2 0 1 0 1 1 1 0 0 1 0 0 1 0 0 0 1 En la secuencia S2 de 16 bits, hay 7 unos y 9 ceros. Luego no cumple con el postulado G1. © Jorge Ramió Aguirre Madrid (España) 2006
  • 10. Capítulo 11: Sistemas de Cifra en Flujo Página 10 Significado del postulado G1 Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 ¿Qué significa esto? Si una secuencia Si como la indicada cumple con G1, quiere decir que la probabilidad de recibir un bit 1 es igual a la de recibir un bit 0, es decir un 50%. Por lo tanto, a lo largo de una secuencia Si, independientemente de los bits recibidos con anterioridad, en media será igualmente probable recibir un “1” que un “0”, pues en la secuencia hay una mitad de valores “1” y otra mitad de valores “0”. © Jorge Ramió Aguirre Madrid (España) 2006
  • 11. Capítulo 11: Sistemas de Cifra en Flujo Página 11 Segundo postulado de Golomb G2 Postulado G2: – En un período T, la mitad de las rachas de Si serán de longitud 1, la cuarta parte de longitud 2, la octava parte de longitud 3, etc. Las rachas de esta secuencia Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 están en una diapositiva anterior En la secuencia Si de 15 bits, había 4 rachas de longitud uno, 2 rachas de longitud dos, 1 racha de longitud tres y 1 racha de longitud cuatro. Este tipo de distribución en las rachas para períodos impares, es típica de las denominadas m-secuencias como veremos más adelante en el apartado generadores LFSR. © Jorge Ramió Aguirre Madrid (España) 2006
  • 12. Capítulo 11: Sistemas de Cifra en Flujo Página 12 Significado del postulado G2 Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 ¿Qué significa esto? Si una secuencia Si como la indicada cumple con G2, quiere decir que la probabilidad de recibir un bit 1 o un bit 0, después de haber recibido un 1 o un 0 es la misma, es decir un 50%. Es decir, recibido por ejemplo un “1”, la cadena “10” deberá ser igual de probable que la cadena “11”. Lo mismo sucede con un 0 al comienzo, o bien un 00, 01, 10, 11, 000, 001, etc. Existirá así también una equiprobabilidad en función de los bits ya recibidos. Como comprobaremos más adelante, esto va a significar que la secuencia pasa por todos sus estados, es decir todos sus restos. © Jorge Ramió Aguirre Madrid (España) 2006
  • 13. Capítulo 11: Sistemas de Cifra en Flujo Página 13 Tercer postulado de Golomb G3 (1/2) Postulado G3: – La autocorrelación AC(k) deberá ser constante para todo valor de desplazamiento de k bits. Si 1 0 0 1 1 1 0 Secuencia original Desplazamiento de un bit a la izquierda k=1 0 0 1 1 1 0 1 AC(1) = (3-7)/7 = -4/7 k=2 0 1 1 1 0 1 0 AC(2) = (3-7)/7 = -4/7 k=3 1 1 1 0 1 0 0 AC(3) = (3-7)/7 = -4/7 sigue © Jorge Ramió Aguirre Madrid (España) 2006
  • 14. Capítulo 11: Sistemas de Cifra en Flujo Página 14 Tercer postulado de Golomb G3 (2/2) 1 0 0 1 1 1 0 Secuencia original k=4 1 1 0 1 0 0 1 AC(4) = (3-7)/7 = -4/7 k=5 1 0 1 0 0 1 1 AC(5) = (3-7)/7 = -4/7 k=6 0 1 0 0 1 1 1 AC(6) = (3-7)/7 = -4/7 k=7 1 0 0 1 1 1 0 Secuencia original en fase La secuencia Si = 1001110 de 7 bits cumple con G3 © Jorge Ramió Aguirre Madrid (España) 2006
  • 15. Capítulo 11: Sistemas de Cifra en Flujo Página 15 Autocorrelación no constante (1/2) Si 0 1 1 1 0 1 0 0 Secuencia original Desplazamiento de un bit a la izquierda k=1 1 1 1 0 1 0 0 0 AC(1) = (4-4)/8 = 0 k=2 1 1 0 1 0 0 0 1 AC(2) = (4-4)/8 = 0 k=3 1 0 1 0 0 0 1 1 AC(3) = (2-6)/8 = -1/2 k=4 0 1 0 0 0 1 1 1 AC(4) = (4-4)/8 = 0 sigue © Jorge Ramió Aguirre Madrid (España) 2006
  • 16. Capítulo 11: Sistemas de Cifra en Flujo Página 16 Autocorrelación no constante (2/2) Si 0 1 1 1 0 1 0 0 Secuencia original k=5 1 0 0 0 1 1 1 0 AC(5) = (2-6)/8 = -1/2 k=6 0 0 0 1 1 1 0 1 AC(6) = (4-4)/8 = 0 k=7 0 0 1 1 1 0 1 0 AC(7) = (4-4)/8 = 0 k=8 0 1 1 1 0 1 0 0 Secuencia original en fase La secuencia Si = 01110100 de 8 bits no cumple con G3 © Jorge Ramió Aguirre Madrid (España) 2006
  • 17. Capítulo 11: Sistemas de Cifra en Flujo Página 17 Significado del postulado G3 Si 0 1 1 1 0 1 0 0 No cumple con G3 Si 1 0 0 1 11 0 Sí cumple con G3 ¿Qué significa esto? Si una secuencia cumple con el postulado G3 quiere decir que, independientemente del trozo de secuencia elegido por el atacante, no habrá una mayor cantidad de información que en la secuencia anterior. Así, será imposible aplicar ataques estadísticos a la secuencia recibida u observada al igual como operábamos, por ejemplo y guardando las debidas distancias, con el sistema Vigenère y el ataque de Kasiski. © Jorge Ramió Aguirre Madrid (España) 2006
  • 18. Capítulo 11: Sistemas de Cifra en Flujo Página 18 Generador de congruencia lineal xi+1 = (a∗xi ± b)(mod n) será la secuencia cifrante • Los valores a, b, n caracterizan al generador y se utilizarán como clave secreta. • El valor x0 se conoce como semilla; es el que inicia el proceso generador de la clave Xi. • La secuencia se genera desde i = 0 hasta i = n-1. • Tiene como debilidad que resulta relativamente fácil atacar la secuencia, de forma similar al criptoanálisis de los cifradores afines vistos en criptografía clásica. © Jorge Ramió Aguirre Madrid (España) 2006
  • 19. Capítulo 11: Sistemas de Cifra en Flujo Página 19 Ejemplo generador de congruencia lineal Sea: xi+1 = (a∗xi ± b)(mod n) Pero... a=5 b=1 n = 16 x0 = 10 Si = 10, 3, 0, 1, 6, 15, 12, 13, 2, 11, 8, 9, 14, 7, 4, 5 x1 = (5∗10+1) mod 16 = 3 x9 = (5∗2+1) mod 16 = 11 x2 = (5∗3+1) mod 16 = 0 x10 = (5∗11+1) mod 16 = 8 x3 = (5∗0+1) mod 16 = 1 x11 = (5∗8+1) mod 16 = 9 x4 = (5∗1+1) mod 16 = 6 x12 = (5∗9+1) mod 16 = 14 x5 = (5∗6+1) mod 16 = 15 x13 = (5∗14+1) mod 16 = 7 x6 = (5∗15+1) mod 16 = 12 x14 = (5∗7+1) mod 16 = 4 x7 = (5∗12+1) mod 16 = 13 x15 = (5∗4+1) mod 16 = 5 x8 = (5∗13+1) mod 16 = 2 x16 = (5∗5+1) mod 16 = 10 © Jorge Ramió Aguirre Madrid (España) 2006
  • 20. Capítulo 11: Sistemas de Cifra en Flujo Página 20 ¿Algo falla en este tipo de generador? ¿Qué sucede si xi+1 = (a∗xi ± b)(mod n) Ejercicios a = 11 b = 1 n = 16 x0 = 7? ¿Qué sucede si ¿Qué sucede si ¿Qué sucede si a=5 b=2 a=5 b=2 a=4 b=1 n = 16 x0 = 10? n = 16 x0 = 1? n = 16 x0 = 10? Saque sus propias conclusiones. Como habrá comprobado, este tipo de generadores de secuencia cifrante no son criptográficamente nada interesantes. Una vez hecho esto personalmente, pase a la siguiente diapositiva. © Jorge Ramió Aguirre Madrid (España) 2006
  • 21. Capítulo 11: Sistemas de Cifra en Flujo Página 21 Debilidad en este tipo de generadores Si = (11∗7 + 1) mod 16 El período que se genera es Si = 15, 7 sólo de tamaño dos ...  Si = (5∗10 + 2) mod 16 Se obtiene un período muy Si = 4, 6, 0, 2, 12, 14, 8, 10 bajo y sólo valores pares e impares. El primer caso es Si = (5∗1 + 2) mod 16 igual que el de los apuntes Si = 7, 5, 11, 9, 15, 13, 3, 1 pero con b = 2 ...   Si = (4∗10 + 1) mod 16 Peor aún, ya no se genera Si = 9, 5, 5, .... una secuencia ...    © Jorge Ramió Aguirre Madrid (España) 2006
  • 22. Capítulo 11: Sistemas de Cifra en Flujo Página 22 Registros de desplazamiento Generador de secuencia cifrante con registros de desplazamiento Realimentación g[a(t-1)a(t-2) ...a(t-n+1)]⊕a(t-n) Si es un bit 0 ó 1 Conexiones de puertas ? Si S1 S2 S3 S4 Sn-1 Sn Bit que se pierde a(t-1) a(t-2) a(t-3) a(t-4) a(t-n+1) a(t-n) Desplazamiento a(i) es el contenido de la celda i Genera una secuencia con un período máximo 2n NLFSR Registros de Desplazamiento Realimentados No Linealmente Registros de Desplazamiento Realimentados Linealmente Por claridad se mantendrá la nomenclatura inglesa LFSR © Jorge Ramió Aguirre Madrid (España) 2006
  • 23. Capítulo 11: Sistemas de Cifra en Flujo Página 23 Introducción a los autómatas celulares • Los registros de desplazamiento son un caso especial de los denominados autómatas celulares finitos unidimensionales. • Este autómata celular finito es un sistema dinámico con un total de N células, dispuestas en un espacio unidimensional. • Cada célula tendrá en cada instante un estado E y existirá una función de transición f que, dependiendo de una vecindad establecida entre las células, hará que en cada instante de tiempo dicho autómata evolucione. • En criptografía interesan los autómatas celulares que sean reversibles, es decir, que permitan la evolución hacia atrás. http://www.criptored.upm.es/investigacion/tfc_m317a.htm  © Jorge Ramió Aguirre Madrid (España) 2006
  • 24. Capítulo 11: Sistemas de Cifra en Flujo Página 24 Generadores NLFSR (1/2) Un generador de cuatro celdas (n = 4) 1 Este es el estado XOR de las celdas y 1 0 las operaciones Primera OR previas antes de operación 0 0 producirse el AND NOT desplazamiento de un bit hacia a S1 0 S2 1 S3 1 S4 1 la derecha. S1 Si S2 S3 S4 Sea la semilla: S1S2S3S4 = 0111 Operaciones © Jorge Ramió Aguirre Madrid (España) 2006
  • 25. Capítulo 11: Sistemas de Cifra en Flujo Página 25 Generadores NLFSR (2/2) Semilla: S1S2S3S4 = 0111 1 XOR 1 0 Observe que primero OR se transmite S4S3S2S1 y 0 0 luego S5S6S7 ... S12. AND NOT Si S1 1 0 S2 0 1 S3 1 S4 1 1 S1 S2 S3 S4 Si = 1110 1100 1010 0001; su período es máximo, Tmáx = 2n = 24 = 16. Se conoce como secuencia de De Bruijn. El contenido de las celdas pasará por todos los estados posibles: desde 0000 hasta 1111. http://mathworld.wolfram.com/deBruijnSequence.html  © Jorge Ramió Aguirre Madrid (España) 2006
  • 26. Capítulo 11: Sistemas de Cifra en Flujo Página 26 Generadores lineales LFSR a(t) = C1a(t-1) ⊕ C2a(t-2) ⊕ C3a(t-3) ⊕ ... ⊕ Cna(t-n) Ci = {1,0} ⇒ conexión/no conexión celda Cn = 1 Función única: XOR Tmáx = 2n - 1 Polinomio asociado: f(x) = Cnxn + Cn-1xn-1 + .... + C2x2 + C1x + 1 XOR Generador C1 C2 C3 C4 LFSR de 4 etapas/celdas S1 S2 S3 S4 Si © Jorge Ramió Aguirre Madrid (España) 2006
  • 27. Capítulo 11: Sistemas de Cifra en Flujo Página 27 Tipos de generadores lineales LFSR Observación: como la única función de realimentación de un LFSR es un XOR, no estará permitida la cadena de todos ceros. En función del polinomio asociado tendremos: • LFSR con polinomios factorizables • No serán criptográficamente interesantes. • LFSR con polinomios irreducibles • No serán criptográficamente interesantes. • LFSR con polinomios primitivos • Según los postulados de Golomb, este tipo de polinomio que genera todos los estados lineales posibles del cuerpo de trabajo n, será el que nos entregue una secuencia cifrante de interés criptográfico con período T = 2n –1. © Jorge Ramió Aguirre Madrid (España) 2006
  • 28. Capítulo 11: Sistemas de Cifra en Flujo Página 28 Generador LFSR con f(x) factorizable Generador f(x) factorizable de cuatro celdas (n = 4) ⊕ Sea f(x) = x4 + x2 + 1 f(x) es factorizable porque: S1 S2 S3 S4 Si Sea f(x1) = f(x2) = (x +x+1) 2 f(x) = f(x1) • f(x2) Problema f(x) = (x2+x+1) • (x2+x+1) T dependerá de la semilla f(x) = x4+2x3+3x2+2x+1 T ≤ 2n - 1 Tras la reducción módulo 2 Y además, habrá períodos Luego f(x) = x4 + x2 +1 secundarios divisores de T. © Jorge Ramió Aguirre Madrid (España) 2006
  • 29. Capítulo 11: Sistemas de Cifra en Flujo Página 29 Ejemplo LFSR con f(x) factorizable (1/2) f(x) = x4 + x2 + 1 Sea la semilla: ⊕ S1S2S3S4 = 0111 S1 S2 S3 S4 0 1 1 1 Si Registro Bit Si Registro Bit Si 0111 1 1110 0 Primer bit: 0011 1 1111 1 resultado de la operación 1001 1 0111 1 . . . semilla S1 = S2 ⊕ S4 1100 0 Si = 111001 T=6 © Jorge Ramió Aguirre Madrid (España) 2006
  • 30. Capítulo 11: Sistemas de Cifra en Flujo Página 30 Ejemplo LFSR con f(x) factorizable (2/2) f(x) = x4 + x2 + 1 Sea ahora la semilla: ⊕ S1S2S3S4 = 1101 S1 S2 S3 S4 1 1 0 1 Si Registro Bit Si S1 S2 S3 S4 1101 1 Primer bit: Si = 101 T es un período 0110 0 secundario y en resultado de T=3 en este caso es la operación 1011 1 incluso menor S1 = S2 ⊕ S4 1101 1 . . . semilla que la semilla. © Jorge Ramió Aguirre Madrid (España) 2006
  • 31. Capítulo 11: Sistemas de Cifra en Flujo Página 31 Generador LFSR con f(x) irreducible Generador f(x) irreducible de cuatro celdas (n = 4) Sea f(x) = x4 + x3 + x2 + x + 1 Es imposible factorizar ⊕ en módulo 2 la función f(x) mediante dos S1 S2 S3 S4 Si polinomios f(x1) y f(x2) de grado menor Problema Ahora T ya no depende de la semilla pero será un factor de Tmáx = 2n – 1 y no obtendremos un período máximo. © Jorge Ramió Aguirre Madrid (España) 2006
  • 32. Capítulo 11: Sistemas de Cifra en Flujo Página 32 Ejemplo de LFSR con f(x) irreducible f(x) = x4 + x3 + x2 + x + 1 Sea la semilla: ⊕ S1S2S3S4 = 0001 S1 S2 S3 S4 0 0 0 1 Si Registro Bit Si Registro Bit Si 0001 1 0011 1 1000 0 0001 1 . . . semilla 1100 0 Si = 100011 T = 5 siendo 0110 0 Tmáx = 2n - 1 = 24- 1 = 15 © Jorge Ramió Aguirre Madrid (España) 2006
  • 33. Capítulo 11: Sistemas de Cifra en Flujo Página 33 Generador LFSR con f(x) primitivo Generador f(x) primitivo de cuatro celdas (n = 4) Sea f(x) = x4 + x + 1 f(x) no es factorizable ⊕ como f(x1)•f(x2) en módulo 2. Será además Si un generador del grupo. S1 S2 S3 S4 T ya no dependerá de la semilla y será el valor máximo Tmáx = 2n - 1. Se van a Habrá φ(2n - 1)/n generar así las llamadas m-secuencias. polinomios primitivos Polinomios http://mathworld.wolfram.com/PrimitivePolynomial.html  Generación polinomios http://www.theory.csc.uvic.ca/~cos/gen/poly.html  © Jorge Ramió Aguirre Madrid (España) 2006
  • 34. Capítulo 11: Sistemas de Cifra en Flujo Página 34 Ejemplo de LFSR con f(x) primitivo Generador f(x) primitivo de cuatro celdas (n = 4) f(x) = x4 + x + 1 Si = 100100011110101 ⊕ S1S2S3S4 = 1001 S1 = S1 ⊕ S4 Registro Bit Si Si S1 S2 S3 S4 1 0 0 1 1001 1 0100 0 1110 0 1010 0 T = 2n - 1 T = 24 - 1 0010 0 1111 1 1101 1 T = 15 0001 1 0111 1 0110 0 1000 0 1011 1 0011 1 1100 0 0101 1 1001 T = 15 © Jorge Ramió Aguirre Madrid (España) 2006
  • 35. Capítulo 11: Sistemas de Cifra en Flujo Página 35 Secuencias de un LFSR con f(x) primitivo Características • Tendrá una secuencia máxima de 2n - 1 bits. • Cumplirá con G1: – Hay 2n bits 1 y 2n-1 bits 0. • Cumplirá con G2: m-secuencia – El vector binario de las celdas pasa por todos los estados excepto la cadena de ceros que está prohibida. Distribución típica de rachas de una m-secuencia. • Cumplirá con G3: – Los aciertos (A) serán iguales a 2n-1 - 1. © Jorge Ramió Aguirre Madrid (España) 2006
  • 36. Capítulo 11: Sistemas de Cifra en Flujo Página 36 Rachas en Si de un LFSR con f(x) primitivo Rachas de Longitud Rachas de Ceros Rachas de Unos 1 2n-3 2n-3 2 2n-4 2n-4 ... ... ... p 2n-p-2 2n-p-2 ... ... ... n-2 1 1 n-1 1 0 n 0 1 TOTAL 2n-2 2n-2 Rachas de una m-secuencia Sin embargo, no es un generador ideal para la cifra porque su Complejidad Lineal es muy baja. © Jorge Ramió Aguirre Madrid (España) 2006
  • 37. Capítulo 11: Sistemas de Cifra en Flujo Página 37 Debilidad de un LFSR con f(x) primitivo Como este tipo de LFSR genera una secuencia de longitud máxima, ésta será previsible y se puede encontrar la secuencia completa Si de 2n - 1 bits ... ¡ con sólo conocer 2n bits ! Por ejemplo, si conocemos sólo 2•10 = 20 bits en un sistema de 10 celdas con un período 210-1 = 1.023, seremos capaces de encontrar las conexiones de las celdas o valores de Ci y generar la secuencia completa Si. Esta debilidad es la que usa el ataque conocido como algoritmo de Berlekamp-Massey. http://planetmath.org/encyclopedia/BerlekampMasseyAlgorithm.html  Algoritmo http://ihome.ust.hk/~trippen/Cryptography/BM/frameset.html  © Jorge Ramió Aguirre Madrid (España) 2006
  • 38. Capítulo 11: Sistemas de Cifra en Flujo Página 38 Ejemplo de ataque de Berlekamp-Massey Si conocemos 2∗n = 8 bits S1S2S3S4S5S6S7S8 de un LFSR de 4 celdas C1C2C3C4, tenemos el sistema de ecuaciones: ⊕ Si asignamos valores C1 C2 C3 C4=1 de esos 2∗n = 8 bits S1 S2 S3 S4 Si S1S2S3S4S5S6S7S8 seremos capaces de resolver este sistema S5 = C1•S1⊕ C2•S2⊕ C3•S3⊕ C4•S4 S6 = C1•S5⊕ C2•S1⊕ C3•S2⊕ C4•S3 Primero se transmite S4S3S2S1 (semilla) y S7 = C1•S6⊕ C2•S5⊕ C3•S1⊕ C4•S2 luego bits S5S6S7S8. S8 = C1•S7⊕ C2•S6⊕ C3•S5⊕ C4•S1 © Jorge Ramió Aguirre Madrid (España) 2006
  • 39. Capítulo 11: Sistemas de Cifra en Flujo Página 39 Solución al ataque de Berlekamp-Massey S5 = C1•S1⊕ C2•S2⊕ C3•S3⊕ C4•S4 Si b1b2b3b4b5b6b7b8 = 11001000 S6 = C1•S5⊕ C2•S1⊕ C3•S2⊕ C4•S3 son correlativos y como hay cuatro celdas y primero se S7 = C1•S6⊕ C2•S5⊕ C3•S1⊕ C4•S2 transmite la semilla, entonces: S8 = C1•S7⊕ C2•S6⊕ C3•S5⊕ C4•S1 S1 = 0 S5 = 1 S2 = 0 S6 = 0 1 = C1•0 ⊕ C2•0 ⊕ C3•1⊕ C4•1 S3 = 1 S7 = 0 0 = C1•1 ⊕ C2•0 ⊕ C3•0 ⊕ C4•1 S4 = 1 S8 = 0 0 = C1•0 ⊕ C2•1 ⊕ C3•0 ⊕ C4•0 C1 = 1 C2 = 0 C3 = 0 C4 = 1 0 = C1•0 ⊕ C2•0 ⊕ C3•1 ⊕ C4•0 © Jorge Ramió Aguirre Madrid (España) 2006
  • 40. Capítulo 11: Sistemas de Cifra en Flujo Página 40 Conclusiones ataque Berlekamp-Massey CONCLUSIONES: • Como se conoce la configuración del generador LFSR, y Si es una m-secuencia de período 2n - 1, entonces por el conjunto de n celdas pasarán todos los restos del campo de Galois de 2n, excepto la cadena de n ceros que sabemos está prohibida en estos sistemas generadores lineales. • Para el ejemplo anterior, esto quiere decir que cualquier grupo de 2n = 8 dígitos correlativos nos permite generar la secuencia máxima, en este caso de 2n = 16 bits. • La solución es aumentar la complejidad lineal del generador por ejemplo conectando varios LFRs. © Jorge Ramió Aguirre Madrid (España) 2006
  • 41. Capítulo 11: Sistemas de Cifra en Flujo Página 41 Complejidad lineal LC o Un LFSR con polinomio primitivo de n celdas tendrá una complejidad lineal LC igual a n; es decir con 2n bits se puede generar la secuencia completa como hemos visto. o Lo ideal es que si este LFSR entrega una secuencia Si con un período igual a 2n – 1, su LC fuese cercana a este valor. o Para aumentar esta LC podemos usar: o Operaciones no lineales de las secuencias del LFSR o Operaciones de suma o Operaciones de multiplicación o Filtrado no lineal de los estados del LFSR. © Jorge Ramió Aguirre Madrid (España) 2006
  • 42. Capítulo 11: Sistemas de Cifra en Flujo Página 42 Operaciones no lineales con dos registros LC = n1; T = 2n1-1 Generador primitivo con n1 celdas LC = n1 + n2 LC = n2 T = 2n2-1 ⊕ Si Generador primitivo con n2 celdas T = mcm (2n1-1, 2n2-1) Es el modelo usado por A5 LC = n1; T = 2n1-1 Generador primitivo con n1 celdas LC = n1 ∗ n2 LC = n2 T = 2n2-1 ⊗ Si Generador primitivo con n2 celdas T = mcm (2n1-1, 2n2-1) © Jorge Ramió Aguirre Madrid (España) 2006
  • 43. Capítulo 11: Sistemas de Cifra en Flujo Página 43 Generadores LFSR con filtrado no lineal Generador de Geffe • Si a1 es un 0 ⇒ Si es el bit de a2 a2 LFSR 2 0 • Si a1 es un 1 ⇒ Si es el bit de a3 Si Selector a3 Luego: Si = a2 ⊕ a1a2 ⊕ a1a3 LFSR 3 1 LC = (n1 + 1)n2 ⊕ n1n3 a1 LFSR 1 T = mcm (2n1-1, 2n2-1, 2n3-1) Se mejora la LC e incluso se aumenta si ponemos más LFSRs pero este generador es débil ante ataques por correlación de bits. Existen muchos esquemas en esta línea: Beth-Piper, Gollmann, Massey-Rueppel, etc., que no serán tratados en este capítulo. Encontrará ataques algebraicos a cifradores de flujo en la siguiente Web. http://www.cryptosystem.net/stream  © Jorge Ramió Aguirre Madrid (España) 2006
  • 44. Capítulo 11: Sistemas de Cifra en Flujo Página 44 Algoritmos de cifrado en flujo Sistemas más conocidos: • A5: http://www.argo.es/~jcea/artic/hispasec33.htm  – Algoritmo no publicado propuesto en 1994. Versiones A5/1 fuerte (Europa) y A5/2 débil (exportación). • RC4: http://www.wisdom.weizmann.ac.il/~itsik/RC4/rc4.html  – Algoritmo de RSA Corp. (Rivest Cipher #4) desarrollado en el año 1987, usado en Lotus Notes. Posteriormente se usa en el navegador de Netscape desde 1999 y luego en otros navegadores más actuales. No es público. • SEAL: http://www.gemplus.com/smart/rd/publications/pdf/HG97chis.pdf  – Algoritmo propuesto por IBM en 1994. © Jorge Ramió Aguirre Madrid (España) 2006
  • 45. Capítulo 11: Sistemas de Cifra en Flujo Página 45 El algoritmo de cifra A5  El uso habitual de este algoritmo lo encontramos en el cifrado del enlace entre el abonado y la central de un teléfono móvil (celular) tipo GSM.  Cada trama de conversación entre A y B tiene 228 bits, de los cuales 114 son en sentido A → B y otros 114 en sentido B → A. El generador entregará los 228 bits pseudoaleatorios para la cifra de cada trama.  Con cerca de 130 millones de usuarios en Europa y otros 100 millones de usuarios en el resto del mundo en 1999, el sistema A5/1 sucumbió en diciembre de ese año a un ataque realizado por Alex Biryukov, Adi Shamir y David Wagner. http://cryptome.org/a51-bsw.htm  http://www.criptored.upm.es/guiateoria/gt_m116a.htm  © Jorge Ramió Aguirre Madrid (España) 2006
  • 46. Capítulo 11: Sistemas de Cifra en Flujo Página 46 Esquema del algoritmo de cifra A5/1 19 14 C1 1 3 registros LFSR con R1 Una función 9: bit de reloj mayoría entre m-secuencia ⊕ f(x1) = x19+x18+x17+x14+1 C1, C2 y C3 hace 1 que sólo los 22 C2 ⊕ registros en los Si que coincide el R2 11: bit de reloj bit con ese R1 ⇒ n1 = 19 ⊕ f(x2) = x22+x21+1 valor produzcan desplazamiento. R2 ⇒ n2 = 22 23 C3 8 1 En cada paso habrá dos o tres R3 ⇒ n3 = 23 R3 registros en 11: bit de reloj movimiento. Clave = 64 bits ⊕ f(x3) = x23+x22+x21+x8+1 © Jorge Ramió Aguirre Madrid (España) 2006
  • 47. Capítulo 11: Sistemas de Cifra en Flujo Página 47 Función mayoría y ejemplo de secuencia F (C1,C2,C3) = C1C2 ⊕ C1C3 ⊕ C2C3 Si el bit de la celda del registro coincide con el resultado de F, dicho registro estará en movimiento y se desplazará, en caso contrario no desplazará. Esta función mayoría entre las celdas C1, C2 y C3, permite que al menos dos de los tres registros se desplacen en cada paso. C1 C2 C3 C1 C2 C3 0 0 0 Desplazan todos 1 0 0 No desplaza R1 0 0 1 No desplaza R3 1 0 1 No desplaza R2 0 1 0 No desplaza R2 1 1 0 No desplaza R3 0 1 1 No desplaza R1 1 1 1 Desplazan todos © Jorge Ramió Aguirre Madrid (España) 2006
  • 48. Capítulo 11: Sistemas de Cifra en Flujo Página 48 Consideraciones sobre el período de A5/1 El período T vendrá dado por el mínimo común múltiplo de los tres períodos individuales: T = mcm (2n1 - 1, 2n2 - 1, 2n3 - 1) Como n1, n2 y n3 son primos entre sí, también lo serán los valores (2n1 -1), (2n2 - 1) y (2n3 - 1). Luego el período T será el producto: T = T1∗T2∗T3 Entonces T = (219-1)(222-1)(223-1) = 524.287∗4.194.303∗8.388.607 T = 18.446.702.292.280.803.327 < 264 Este valor demasiado bajo  sucumbe ante ataques distribuidos tal como veremos cuando se estudien debilidades del algoritmo DES. © Jorge Ramió Aguirre Madrid (España) 2006
  • 49. Capítulo 11: Sistemas de Cifra en Flujo Página 49 Registros y función mayoría en A5/2 • Usa los mismos tres registros de desplazamiento con polinomio primitivo que A5/1: – f(x1) = x19 + x18 + x17 + x14 + 1 – f(x2) = x22 + x21 + 1 – f(x3) = x23 + x22 + x21 + x8 + 1 • Además, usa un cuarto registro R4 con un polinomio primitivo: – f(x4) = x17 + x12 + 1 • Usa cuatro copias de una función mayoría F para cada uno de los cuatro registros que se define como: – F(x1,x2,x3) = x1x2 + x1x3 + x2x3 © Jorge Ramió Aguirre Madrid (España) 2006
  • 50. Capítulo 11: Sistemas de Cifra en Flujo Página 50 Otras operaciones de A5/2 – En R1 las entradas a la función F1 son las celdas 13, 15 y 16. – En R2 las entradas a la función F2 son las celdas 10, 14 y 17. – En R3 las entradas a la función F3 son las celdas 14, 17 y 19. – En R4 las entradas a la función F4 son las celdas 4, 8 y 11. La salida de esta copia determina qué registros de R1,R2,R3 se desplazarán en el ciclo. • Complementación de celdas y sumas en salida de F: – En R1 se complementa la celda 15 y se suma la celda 19 a F. – En R2 se complementa la celda 17 y se suma la celda 22 a F. – En R3 se complementa la celda 14 y se suma la celda 23 a F. Fin del capítulo © Jorge Ramió Aguirre Madrid (España) 2006
  • 51. Capítulo 11: Sistemas de Cifra en Flujo Página 51 Cuestiones y ejercicios (1 de 3) 1. ¿Por qué en los sistemas de cifra en flujo se usa una función XOR tanto en emisor como en receptor? ¿Son las claves aquí inversas? 2. Si tenemos una clave de 16 bits, ¿cuál es el período máximo que podremos lograr en una secuencia cifrante lineal? ¿Por qué? 3. ¿Qué rachas encuentra en la secuencia 110100111010100? 4. ¿Por qué es lógico esperar más rachas cortas que rachas largas? 5. Si en una secuencia cifrante se observa una correlación fuera de fase no constante, ¿qué significa? ¿Podríamos hacer un ataque similar al que permite romper el sistema de cifra polialfabético de Vigenère? 6. A nivel de probabilidades de ocurrencia de bits, ¿qué significan los postulados de Golomb G1 y G2? 7. ¿Qué significa que una secuencia cifrante pase por todos los estados o restos posibles? ¿Cuál sería en este caso su período? © Jorge Ramió Aguirre Madrid (España) 2006
  • 52. Capítulo 11: Sistemas de Cifra en Flujo Página 52 Cuestiones y ejercicios (2 de 3) • ¿Qué secuencias se obtiene con un generador de congruencia lineal en el que a = 7, b = 4 y n = 8? ¿Y si ahora hacemos a = 3? • ¿Qué tipo de ataque podríamos intentar para romper una secuencia cifrante obtenida con un generador de congruencia lineal? • ¿Por qué en un registro de desplazamiento siempre se realimenta el bit de la última celda, es decir bit que sale a línea? • En el generador NLFSR de los apuntes si se cambia la función AND por una OR, ¿qué sucede con la secuencia? Saque conclusiones. • Decimos que los generadores LFSR tienen asociado un polinomio f(x) = anxn + an-1xn-1 + an-2xn-2 + ... + a2x2 + a1x + 1, donde ai toma los valores de 0 ó 1. ¿Por qué f(x) termina en 1? • ¿Qué polinomio elegiría para un generador con LFSR, un polinomio factorizable, uno irreducible o uno primitivo? ¿Por qué? © Jorge Ramió Aguirre Madrid (España) 2006
  • 53. Capítulo 11: Sistemas de Cifra en Flujo Página 53 Cuestiones y ejercicios (3 de 3) 1. ¿Por qué no está permitida la cadena de n ceros en un generador LFSR de n etapas y en cambio sí en los NLFSR? 2. En el generador LFSR con f(x) primitivo de 4 etapas, la secuencia pasa por todos los restos excepto 0000. Si usamos hora una semilla distinta, ¿debemos hacer otra vez todos los cálculos o no? ¿Por qué? 3. Justifique la distribución de las rachas en una m-secuencia. ¿Por qué tiene ese comportamiento extraño al final de las rachas largas? 4. ¿Qué debilidad de los sistemas LFSR con polinomios primitivos usa el algoritmo de Berlekamp-Massey para realizar el ataque? 5. En un ataque de Berlekamp-Massey, ¿importa en qué posición de la secuencia se encuentran los 2n bits? ¿Por qué? 6. ¿Por qué cree que el algoritmo A5/1 es débil? ¿Cuál fue el peor error cometido por sus creadores? Software de laboratorio de flujo: próximamente en página web de la asignatura. © Jorge Ramió Aguirre Madrid (España) 2006

Notas del editor

  1. NOTAS SOBRE EL TEMA:
  2. NOTAS SOBRE EL TEMA:
  3. NOTAS SOBRE EL TEMA:
  4. NOTAS SOBRE EL TEMA:
  5. NOTAS SOBRE EL TEMA:
  6. NOTAS SOBRE EL TEMA:
  7. NOTAS SOBRE EL TEMA:
  8. NOTAS SOBRE EL TEMA:
  9. NOTAS SOBRE EL TEMA:
  10. NOTAS SOBRE EL TEMA:
  11. NOTAS SOBRE EL TEMA:
  12. NOTAS SOBRE EL TEMA:
  13. NOTAS SOBRE EL TEMA:
  14. NOTAS SOBRE EL TEMA:
  15. NOTAS SOBRE EL TEMA:
  16. NOTAS SOBRE EL TEMA:
  17. NOTAS SOBRE EL TEMA:
  18. NOTAS SOBRE EL TEMA:
  19. NOTAS SOBRE EL TEMA:
  20. NOTAS SOBRE EL TEMA:
  21. NOTAS SOBRE EL TEMA:
  22. NOTAS SOBRE EL TEMA:
  23. NOTAS SOBRE EL TEMA:
  24. NOTAS SOBRE EL TEMA:
  25. NOTAS SOBRE EL TEMA:
  26. NOTAS SOBRE EL TEMA:
  27. NOTAS SOBRE EL TEMA:
  28. NOTAS SOBRE EL TEMA:
  29. NOTAS SOBRE EL TEMA:
  30. NOTAS SOBRE EL TEMA:
  31. NOTAS SOBRE EL TEMA:
  32. NOTAS SOBRE EL TEMA:
  33. NOTAS SOBRE EL TEMA:
  34. NOTAS SOBRE EL TEMA:
  35. NOTAS SOBRE EL TEMA:
  36. NOTAS SOBRE EL TEMA:
  37. NOTAS SOBRE EL TEMA:
  38. NOTAS SOBRE EL TEMA:
  39. NOTAS SOBRE EL TEMA:
  40. NOTAS SOBRE EL TEMA:
  41. NOTAS SOBRE EL TEMA:
  42. NOTAS SOBRE EL TEMA:
  43. NOTAS SOBRE EL TEMA:
  44. NOTAS SOBRE EL TEMA:
  45. NOTAS SOBRE EL TEMA:
  46. NOTAS SOBRE EL TEMA:
  47. NOTAS SOBRE EL TEMA:
  48. NOTAS SOBRE EL TEMA:
  49. NOTAS SOBRE EL TEMA:
  50. NOTAS SOBRE EL TEMA:
  51. NOTAS SOBRE EL TEMA:
  52. NOTAS SOBRE EL TEMA:
  53. NOTAS SOBRE EL TEMA: