SlideShare una empresa de Scribd logo
1 de 233
Descargar para leer sin conexión
Criptograf´ y Seguridad en
          ıa
      Computadores
  Tercera Edici´n (Versi´n 2.01). Marzo de 2003
               o        o




                                 Manuel Jos´ Lucena L´pez
                                           e         o
                                        e-mail: mlucena@ujaen.es
2




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
—¿Qu´ significa habla, amigo y entra? —pregunt´ Merry.
    e                                        o
—Es bastante claro —dijo Gimli—. Si eres un amigo, dices la contrase˜a y las puertas se
                                                                    n
abren y puedes entrar.
—S´ —dijo Gandalf—, es probable que estas puertas est´n gobernadas por palabras. . .
  ı                                                  e

                                                                  El Se˜or de Los Anillos
                                                                       n
                                                                            J.R.R. Tolkien




Manuel J. Lucena L´pez
                  o                             Criptograf´ y Seguridad en Computadores
                                                          ıa
4




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
Copyright

    c 1999-2003 de Manuel Jos´ Lucena L´pez. Todos los derechos reservados.
                             e         o
   Este documento puede ser distribuido libre y gratuitamente bajo cualquier soporte siempre
que se respete su integridad.
   Queda prohibida su venta sin permiso expreso del autor.




Manuel J. Lucena L´pez
                  o                              Criptograf´ y Seguridad en Computadores
                                                           ıa
6




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
Agradecimientos

                                                                   A Loles, ella sabe por qu´.
                                                                                            e
                                    A los chicos de Kript´polis, por darme esta oportunidad.
                                                         o
                                                  A mis alumnos, por aguantarme cada a˜o.
                                                                                      n
 A Borja Arber´s, Alejandro Benab´n, Manuel C´tedra, Jes´s Cea, Dextar, Gabriel Horacio
                 a                   e             a         u
   D´ Luis Esc´nez, L´zaro Escudero, Sacha Fuentes, David Garc´ Luis Garc´ Alfonso
     ıez,          a      a                                           ıa,          ıa,
 Gonz´lez, Germ´n J´come, Juan Mart´ Juan Andr´s Olmo, Juan Ram´n Moral, Antonio
       a           a a                   ın,            e                  o
     Jes´s Navarro, Alejandro Noguera, Jos´ A. Ramos, Carlos Romeo, Javier Rubio, Felipe
         u                                    e
 Santos, V´ıctor A. Villagra, y a todos aquellos que, enviando sugerencias o correcciones, han
                                                                 ayudado a mejorar esta obra.
  A todos los que alguna vez han compartido sus conocimientos, por enriquecernos a todos.




Manuel J. Lucena L´pez
                  o                               Criptograf´ y Seguridad en Computadores
                                                            ıa
8




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
Prefacio

    El presente documento ha sido elaborado originalmente como apoyo a la asignatura “Crip-
tograf´ y Seguridad en Computadores”, de 3er Curso de Ingenier´ T´cnica en Inform´tica de
       ıa                                                       ıa e                 a
Gesti´n, de la Universidad de Ja´n, empleando el procesador de textos L TE
      o                         e                                     A X 2ε , y los editores
gr´ficos XFig y Gimp. Puede descargarse su ultima versi´n, as´ como eventuales correcciones
  a                                         ´           o     ı
en la siguiente direcci´n web:
                       o

                              http://wwwdi.ujaen.es/~mlucena

    No se pretende que estos apuntes sustituyan a la bibliograf´ de la asignatura, ni a las
                                                                   ıa
clases te´ricas, sino que sirvan m´s bien como complemento a las notas que el alumno debe
         o                         a
tomar en clase. Asimismo, no debe considerarse un documento definitivo y exento de errores,
si bien ha sido elaborado con detenimiento y revisado exhaustivamente. El autor pretende que
sea mejorado y ampliado con cierta frecuencia, lo que probablemente desembocar´ en sucesivas
                                                                                  a
versiones, y para ello nadie mejor que los propios lectores para plantear dudas, buscar errores,
y sugerir mejoras.

                                                                     Ja´n, 3 de marzo de 2003.
                                                                       e




Manuel J. Lucena L´pez
                  o                                Criptograf´ y Seguridad en Computadores
                                                             ıa
10




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
´
Indice general

I    Preliminares                                                                                      19

1. Introducci´n
             o                                                                                         21
     1.1. C´mo Leer esta Obra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
           o                                                                                           21
     1.2. Algunas notas sobre la Historia de la Criptograf´ . . . . . . . . . . . . . . . . .
                                                          ıa                                           22
     1.3. N´meros Grandes
           u                     . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   25
     1.4. Acerca de la Terminolog´ Empleada . . . . . . . . . . . . . . . . . . . . . . . .
                                 ıa                                                                    25
     1.5. Notaci´n Algor´
                o       ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       27

2. Conceptos B´sicos sobre Criptograf´
              a                      ıa                                                                29
     2.1. Criptograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                    ıa                                                                                 29
     2.2. Criptosistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      30
     2.3. Esteganograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                      ıa                                                                               31
     2.4. Criptoan´lisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                  a                                                                                    32
     2.5. Compromiso entre Criptosistema y Criptoan´lisis . . . . . . . . . . . . . . . . .
                                                   a                                                   33
     2.6. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      34



II    Fundamentos Te´ricos de la Criptograf´
                    o                      ıa                                                          37

3. Teor´ de la Informaci´n
       ıa               o                                                                              39
     3.1. Cantidad de Informaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                               o                                                                       39
     3.2. Entrop´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                ıa                                                                                     40
     3.3. Entrop´ Condicionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                ıa                                                                                     42
     3.4. Cantidad de Informaci´n entre dos Variables . . . . . . . . . . . . . . . . . . .
                               o                                                                       44

Manuel J. Lucena L´pez
                  o                                     Criptograf´ y Seguridad en Computadores
                                                                  ıa
12                                                                              ´
                                                                                INDICE GENERAL


     3.5. Criptosistema Seguro de Shannon . . . . . . . . . . . . . . . . . . . . . . . . . .         44
     3.6. Redundancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       45
     3.7. Desinformaci´n y Distancia de Unicidad . . . . . . . . . . . . . . . . . . . . . .
                      o                                                                               46
     3.8. Confusi´n y Difusi´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                 o          o                                                                         47
     3.9. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     48

4. Introducci´n a la Complejidad Algor´
             o                        ıtmica                                                          49
     4.1. Concepto de Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       49
     4.2. Complejidad Algor´
                           ıtmica       . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   51
          4.2.1. Operaciones Elementales . . . . . . . . . . . . . . . . . . . . . . . . . . .        52
     4.3. Algoritmos Polinomiales, Exponenciales y Subexponenciales . . . . . . . . . . .             53
     4.4. Clases de Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       53
     4.5. Algoritmos Probabil´
                             ısticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      54
     4.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      55

5. Fundamentos de Aritm´tica Modular
                       e                                                                              57
     5.1. Aritm´tica Modular. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . .
               e                                                                                      57
          5.1.1. Algoritmo de Euclides . . . . . . . . . . . . . . . . . . . . . . . . . . . .        58
          5.1.2. Complejidad de las Operaciones Aritm´ticas en Zn . . . . . . . . . . . .
                                                     e                                                59
     5.2. C´lculo de Inversas en Zn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
           a                                                                                          60
          5.2.1. Existencia de la Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . .       60
          5.2.2. Funci´n de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                      o                                                                               61
          5.2.3. Algoritmo Extendido de Euclides . . . . . . . . . . . . . . . . . . . . . .          62
     5.3. Teorema Chino del Resto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         63
     5.4. Exponenciaci´n. Logaritmos Discretos . . . . . . . . . . . . . . . . . . . . . . .
                      o                                                                               64
          5.4.1. Algoritmo de Exponenciaci´n R´pida . . . . . . . . . . . . . . . . . . .
                                          o   a                                                       64
          5.4.2. El Problema de los Logaritmos Discretos          . . . . . . . . . . . . . . . . .   65
          5.4.3. El Problema de Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . .            65
     5.5. Importancia de los N´meros Primos . . . . . . . . . . . . . . . . . . . . . . . .
                              u                                                                       66
     5.6. Algoritmos de Factorizaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                                   o                                                                  66
          5.6.1. M´todo de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                  e                                                                                   67

Manuel J. Lucena L´pez
                  o                                    Criptograf´ y Seguridad en Computadores
                                                                 ıa
´
INDICE GENERAL                                                                                      13


        5.6.2. M´todo p − 1 de Pollard . . . . . . . . . . . . . . . . . . . . . . . . . . .
                e                                                                                   68
        5.6.3. M´todos Cuadr´ticos de Factorizaci´n . . . . . . . . . . . . . . . . . . .
                e           a                    o                                                  69
   5.7. Tests de Primalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       70
        5.7.1. M´todo de Lehmann . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                e                                                                                   70
        5.7.2. M´todo de Rabin-Miller . . . . . . . . . . . . . . . . . . . . . . . . . . .
                e                                                                                   71
        5.7.3. Consideraciones Pr´cticas . . . . . . . . . . . . . . . . . . . . . . . . . .
                                 a                                                                  71
        5.7.4. Primos fuertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       72
   5.8. Anillos de Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       72
        5.8.1. Polinomios en Zn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       73
   5.9. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     74


6. Introducci´n a las Curvas El´
             o                 ıpticas                                                              75
   6.1. Curvas El´
                 ıpticas en R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       75
        6.1.1. Suma en E(R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         76
   6.2. Curvas El´
                 ıpticas en GF (n)      . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   78
                 ıpticas en GF (2n ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
   6.3. Curvas El´                                                                                  79
        6.3.1. Suma en E(GF (2n )) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .        79
   6.4. El Problema de los Logaritmos Discretos en Curvas El´
                                                            ıpticas . . . . . . . . . .             80
   6.5. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     80


7. Aritm´tica Entera de M´ ltiple Precisi´n
        e                u               o                                                          81
   7.1. Representaci´n de enteros largos . . . . . . . . . . . . . . . . . . . . . . . . . .
                    o                                                                               81
   7.2. Operaciones aritm´ticas sobre enteros largos . . . . . . . . . . . . . . . . . . . .
                         e                                                                          82
        7.2.1. Suma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       82
        7.2.2. Resta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      83
        7.2.3. Multiplicaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                           o                                                                        84
        7.2.4. Divisi´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                     o                                                                              86
   7.3. Aritm´tica modular con enteros largos . . . . . . . . . . . . . . . . . . . . . . .
             e                                                                                      89
   7.4. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     90


8. Criptograf´ y N´ meros Aleatorios
             ıa   u                                                                                 91

Manuel J. Lucena L´pez
                  o                                  Criptograf´ y Seguridad en Computadores
                                                               ıa
14                                                                             ´
                                                                               INDICE GENERAL


      8.1. Tipos de Secuencias Aleatorias . . . . . . . . . . . . . . . . . . . . . . . . . . .    91
           8.1.1. Secuencias pseudoaleatorias . . . . . . . . . . . . . . . . . . . . . . . . .    91
           8.1.2. Secuencias criptogr´ficamente aleatorias . . . . . . . . . . . . . . . . . .
                                     a                                                             92
           8.1.3. Secuencias totalmente aleatorias . . . . . . . . . . . . . . . . . . . . . .     92
      8.2. Generaci´n de Secuencias Aleatorias Criptogr´ficamente V´lidas . . . . . . . .
                   o                                   a          a                                93
           8.2.1. Obtenci´n de Bits Aleatorios . . . . . . . . . . . . . . . . . . . . . . . .
                         o                                                                         93
           8.2.2. Eliminaci´n del Sesgo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                           o                                                                       95
           8.2.3. Generadores Aleatorios Criptogr´ficamente Seguros . . . . . . . . . . . .
                                                 a                                                 96



III     Criptograf´ de Llave Privada
                  ıa                                                                              99

9. Criptograf´ Cl´sica
             ıa  a                                                                                101
      9.1. Algoritmos Cl´sicos de Cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
                        a
           9.1.1. Cifrados Monoalfab´ticos . . . . . . . . . . . . . . . . . . . . . . . . . . 102
                                    e
           9.1.2. Cifrados Polialfab´ticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
                                    e
           9.1.3. Cifrados por Sustituci´n Homof´nica . . . . . . . . . . . . . . . . . . . . 104
                                        o       o
           9.1.4. Cifrados de Transposici´n . . . . . . . . . . . . . . . . . . . . . . . . . . 104
                                         o
      9.2. M´quinas de Rotores. La M´quina ENIGMA . . . . . . . . . . . . . . . . . . . 105
            a                       a
           9.2.1. Un poco de Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
           9.2.2. Consideraciones Te´ricas Sobre la M´quina ENIGMA . . . . . . . . . . 108
                                    o                a
           9.2.3. Otras M´quinas de Rotores . . . . . . . . . . . . . . . . . . . . . . . . . 109
                         a

10.Cifrados por Bloques                                                                           111
      10.1. Cifrado de producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
           10.1.1. Redes de Feistel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
           10.1.2. Cifrados con Estructura de Grupo . . . . . . . . . . . . . . . . . . . . . 114
           10.1.3. S-Cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
      10.2. El Algoritmo DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
           10.2.1. Claves D´biles en DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
                           e
      10.3. Variantes de DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
           10.3.1. DES M´ltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
                        u

Manuel J. Lucena L´pez
                  o                                    Criptograf´ y Seguridad en Computadores
                                                                 ıa
´
INDICE GENERAL                                                                                   15


        10.3.2. DES con Subclaves Independientes . . . . . . . . . . . . . . . . . . . . . 118
        10.3.3. DES Generalizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
        10.3.4. DES con S-Cajas Alternativas . . . . . . . . . . . . . . . . . . . . . . . . 119
   10.4. El algoritmo IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
   10.5. El algoritmo Rijndael (AES)     . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
        10.5.1. Estructura de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
        10.5.2. Elementos de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
        10.5.3. Las Rondas de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
        10.5.4. C´lculo de las Subclaves . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
                 a
        10.5.5. Seguridad de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
   10.6. Modos de Operaci´n para Algoritmos de Cifrado por Bloques . . . . . . . . . . 126
                         o
        10.6.1. Modo ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
        10.6.2. Modo CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
        10.6.3. Modo CFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
        10.6.4. Otros Modos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
   10.7. Criptoan´lisis de Algoritmos Sim´tricos . . . . . . . . . . . . . . . . . . . . . . 130
                 a                       e
        10.7.1. Criptoan´lisis Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . 130
                        a
        10.7.2. Criptoan´lisis Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
                        a

11.Cifrados de Flujo                                                                           131
   11.1. Secuencias Pseudoaleatorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
   11.2. Tipos de Generadores de Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . 132
        11.2.1. Generadores S´
                             ıncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
        11.2.2. Generadores As´
                              ıncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
   11.3. Registros de Desplazamiento Retroalimentados . . . . . . . . . . . . . . . . . . 133
        11.3.1. Registros de Desplazamiento Retroalimentados Lineales . . . . . . . . . 133
        11.3.2. Registros de Desplazamiento Retroalimentados No Lineales . . . . . . . 134
        11.3.3. Combinaci´n de Registros de Desplazamiento . . . . . . . . . . . . . . . 135
                         o
   11.4. Otros Generadores de Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
        11.4.1. Algoritmo RC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
        11.4.2. Algoritmo SEAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Manuel J. Lucena L´pez
                  o                                 Criptograf´ y Seguridad en Computadores
                                                              ıa
16                                                                             ´
                                                                               INDICE GENERAL


IV     Criptograf´ de Llave P´ blica
                 ıa          u                                                                   139

12.Algoritmos Asim´tricos de Cifrado
                  e                                                                              141
     12.1. Aplicaciones de los Algoritmos Asim´tricos . . . . . . . . . . . . . . . . . . . . 141
                                              e
          12.1.1. Protecci´n de la Informaci´n . . . . . . . . . . . . . . . . . . . . . . . . 142
                          o                 o
          12.1.2. Autentificaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
                              o
     12.2. El Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
          12.2.1. Seguridad del Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . 146
          12.2.2. Vulnerabilidades de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 146
     12.3. Otros Algoritmos Asim´tricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
                                e
          12.3.1. Algoritmo de Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . 149
          12.3.2. Algoritmo de ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
          12.3.3. Algoritmo de Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
          12.3.4. Algoritmo DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
     12.4. Criptograf´ de Curva El´
                     ıa           ıptica . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
          12.4.1. Cifrado de ElGamal sobre Curvas El´
                                                    ıpticas . . . . . . . . . . . . . . . . 153
     12.5. Los Protocolos SSL y TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
     12.6. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

13.M´todos de Autentificaci´n
    e                     o                                                                      157
     13.1. Firmas Digitales. Funciones Resumen       . . . . . . . . . . . . . . . . . . . . . . . 157
          13.1.1. Longitud Adecuada para una Signatura . . . . . . . . . . . . . . . . . . 158
          13.1.2. Estructura de una Funci´n Resumen . . . . . . . . . . . . . . . . . . . . 159
                                         o
          13.1.3. Algoritmo MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
          13.1.4. El Algoritmo SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
          13.1.5. Funciones de Autentificaci´n de Mensaje . . . . . . . . . . . . . . . . . . 164
                                           o
     13.2. Autentificaci´n de Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
                       o
     13.3. Autentificaci´n de Usuario Mediante Contrase˜a . . . . . . . . . . . . . . . . . 165
                       o                              n
          13.3.1. Ataques Mediante Diccionario . . . . . . . . . . . . . . . . . . . . . . . . 166
     13.4. Dinero Electr´nico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
                        o
     13.5. Esteganograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
                       ıa

Manuel J. Lucena L´pez
                  o                                    Criptograf´ y Seguridad en Computadores
                                                                 ıa
´
INDICE GENERAL                                                                                     17


    13.6. Certificados X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

14.PGP                                                                                           171
    14.1. Fundamentos e Historia de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . 171
    14.2. Estructura de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
         14.2.1. Codificaci´n de Mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . 172
                          o
         14.2.2. Firma Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
         14.2.3. Armaduras ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
         14.2.4. Gesti´n de Claves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
                      o
         14.2.5. Distribuci´n de Claves y Redes de Confianza . . . . . . . . . . . . . . . 175
                           o
         14.2.6. Otros PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
    14.3. Vulnerabilidades de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176



V    Seguridad en Redes de Computadores                                                          179

15.Seguridad en Redes                                                                            181
    15.1. Importancia de las Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
    15.2. Redes Internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
    15.3. Redes Externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
         15.3.1. Intranets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
    15.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

16.Hackers                                                                                       187
    16.1. El Hielo y los Vaqueros    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
    16.2. C´mo act´a un Hacker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
           o      u
         16.2.1. Protocolo TCP/IP. Demonios y Puertos . . . . . . . . . . . . . . . . . . 189
         16.2.2. Desbordamientos de Buffer . . . . . . . . . . . . . . . . . . . . . . . . . 191
         16.2.3. Suplantando Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
         16.2.4. Borrando las Huellas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
         16.2.5. Ataques Pasivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
         16.2.6. Ataques Coordinados      . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Manuel J. Lucena L´pez
                  o                                   Criptograf´ y Seguridad en Computadores
                                                                ıa
18                                                                             ´
                                                                               INDICE GENERAL


     16.3. C´mo Protegerse del Ataque de los Hackers . . . . . . . . . . . . . . . . . . . . 193
            o
     16.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

17.Virus                                                                                         195
     17.1. Origen de los Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
     17.2. Anatom´ de un Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
                 ıa
          17.2.1. M´todos de Contagio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
                   e
          17.2.2. La Fase Destructiva de un Virus . . . . . . . . . . . . . . . . . . . . . . 197
     17.3. Cu´ndo son Peligrosos los Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
             a
     17.4. Protegerse frente a los Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198



VI     Ap´ndices
         e                                                                                       199

A. Criptograf´ Cu´ntica
             ıa  a                                                                               201
     A.1. Mec´nica Cu´ntica y Criptograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . 201
             a       a                  ıa
     A.2. Computaci´n Cu´ntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
                   o    a
     A.3. Expectativas de Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

B. Ayudas a la Implementaci´n
                           o                                                                     205
     B.1. DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
          B.1.1. S-Cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
          B.1.2. Permutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
          B.1.3. Valores de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
     B.2. IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
     B.3. MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

C. Ejercicios Resueltos                                                                          223




Manuel J. Lucena L´pez
                  o                                    Criptograf´ y Seguridad en Computadores
                                                                 ıa
Parte I

                         Preliminares




Manuel J. Lucena L´pez
                  o              Criptograf´ y Seguridad en Computadores
                                           ıa
Cap´
   ıtulo 1

Introducci´n
          o

    A lo largo de 1995 y principios de 1996, los profesores Jos´ Ignacio Pel´ez S´nchez, Antonio
                                                               e            a    a
S´nchez Solana y Manuel Jos´ Lucena L´pez elaboraron una Colecci´n de Apuntes para la
 a                               e         o                              o
asignatura ‘Criptograf´ y Seguridad en Computadores’, impartida en tercer curso de Inge-
                         ıa
nier´ T´cnica en Inform´tica de Gesti´n, en la Universidad de Ja´n. Varios a˜os han pasado
    ıa e                    a            o                           e            n
desde entonces, y, como cab´ esperar en una disciplina de tan r´pida evoluci´n, las cosas han
                              ıa                                   a            o
cambiado. Algunos algoritmos han perdido parte de su inter´s —como es el caso de DES, que
                                                               e
fue vencido  1 el verano de 1998—, nuevas t´cnicas han surgido o se han popularizado —PGP
                                             e
es un claro ejemplo de que para el usuario de a pie se puede conseguir aut´ntica privacidad—,
                                                                             e
temas que antes ten´ un inter´s limitado se han convertido en fundamentales —la r´pi-
                       ıan         e                                                        a
da expansi´n de Internet obliga no s´lo al profesional, sino al usuario medio, a tener ciertos
            o                          o
conocimientos b´sicos sobre seguridad—, etc.
                  a
    La presente colecci´n de apuntes naci´ con la vocaci´n de intentar cubrir en la medida de
                        o                 o              o
lo posible ese vac´ Sin embargo, la escasez de documentaci´n en Espa˜ol sobre Criptograf´
                  ıo.                                        o           n                     ıa,
y las dificultades que encontraban muchos alumnos para complementar bibliogr´ficamente la
                                                                                   a
asignatura, unido todo ello a la sorprendente difusi´n del anterior texto hizo surgir en el autor
                                                    o
la idea de distribuir esta obra en formato electr´nico y de forma gratuita.
                                                 o


1.1.      C´mo Leer esta Obra
           o

    Esta obra ha sido organizada en cinco partes:


 1. Preliminares. Aqu´ se incluyen todos los conceptos b´sicos y se introduce la terminolog´
                      ı                                 a                                  ıa
    empleada en el resto del libro. Su lectura es recomendable incluso para las personas que
    ya conocen el tema, puesto que puede evitar cierta confusi´n en los t´rminos empleados
                                                               o          e
   1
     En realidad, el ataque que logr´ tener ´xito se realiz´ por la fuerza bruta, por lo que no podemos hablar
                                    o       e              o
en un sentido estricto de derrota. De hecho, a´n no se ha encontrado ninguna debilidad seria en su dise˜o; lo
                                               u                                                         n
que s´ qued´ patente es que su longitud de clave es demasiado peque˜a.
      ı     o                                                          n


Manuel J. Lucena L´pez
                  o                                        Criptograf´ y Seguridad en Computadores
                                                                     ıa
22                                                                              1. Introducci´n
                                                                                             o


       a lo largo de la obra.

 2. Fundamentos Te´ricos de la Criptograf´ Se desarrollan brevemente los resultados te´ri-
                     o                      ıa.                                         o
    cos sobre los que se va a apoyar el resto del libro. Si usted no domina las Matem´ticas,
                                                                                     a
    o simplemente no tiene inter´s en estos fundamentos, puede pasarla por alto.
                                 e

 3. Criptograf´ de Llave Privada. Se introduce la Criptograf´ Cl´sica, as´ como los algo-
              ıa                                            ıa a         ı
    ritmos sim´tricos de cifrado.
               e

 4. Criptograf´ de Llave P´blica. En esta parte se estudian los algoritmos asim´tricos y los
              ıa          u                                                    e
    m´todos de autentificaci´n. Adem´s se incluye un cap´
     e                     o         a                    ıtulo sobre PGP.

 5. Seguridad en Redes de Computadores. Esta es la parte menos te´rica y quiz´ m´s pr´ctica
                                                                 o           a a     a
    desde el punto de vista de la seguridad (no desde el punto de vista criptogr´fico). Se
                                                                                 a
    estudian en ella brevemente los problemas que se dan en redes de computadoras, para
    que el lector pueda comenzar a elaborar por s´ mismo estrategias de protecci´n de la
                                                   ı                              o
    informaci´n.
              o

    Este texto no tiene por qu´ ser le´ cap´
                               e       ıdo    ıtulo por cap´ıtulo, aunque se ha organizado de
manera que los contenidos m´s b´sicos aparezcan primero. La parte de fundamentos te´ricos
                             a a                                                          o
est´ orientada a personas con unos conocimientos m´
   a                                                                   ´
                                                       ınimos sobre Algebra y Programaci´n,  o
pero puede ser ignorada si el lector est´ dispuesto a creerse lo que encuentre en posteriores
                                         a
cap´ıtulos. La recomendaci´n del autor en este sentido es clara: si es su primer contacto con la
                          o
Criptograf´ deje los fundamentos te´ricos justo para el final, o correr´ el riesgo de perderse
            ıa,                       o                                   a
entre conceptos que, si de una parte son necesarios para una comprensi´n profunda del tema,
                                                                          o
no son imprescindibles a la hora de empezar a adentrarse en este apasionante mundo.
    Se ha pretendido que todos los conceptos queden suficientemente claros con la sola lectura
de este libro, pero se recomienda vivamente que si el lector tiene inter´s por profundizar en
                                                                        e
cualquiera de los aspectos tratados aqu´ consulte la bibliograf´ para ampliar sus conocimien-
                                       ı,                      ıa
tos, pudiendo emplear como punto de partida las propias referencias que aparecen al final de
este documento, aunque por desgracia, algunas de las m´s interesantes est´n en ingl´s.
                                                          a                a         e


1.2.      Algunas notas sobre la Historia de la Criptograf´
                                                          ıa

    La Criptograf´ moderna nace al mismo tiempo que las computadoras. Durante la Segunda
                  ıa
Guerra Mundial, en un lugar llamado Bletchley Park, un grupo de cient´ ıficos entre los que se
encontraba Alan Turing, trabajaba en el proyecto ULTRA tratando de descifrar los mensa-
jes enviados por el ej´rcito alem´n con los m´s sofisticados ingenios de codificaci´n ideados
                      e          a            a                                   o
hasta entonces: la m´quina ENIGMA y el cifrado Lorenz. Este grupo de cient´
                     a                                                        ıficos dise˜´ y
                                                                                        no
utiliz´ el primer computador de la Historia, denominado Colossus —aunque esta informaci´n
      o                                                                                   o
permaneci´ en secreto hasta mediados de los 70—.
            o
   Desde entonces hasta hoy ha habido un crecimiento espectacular de la tecnolog´ crip-
                                                                                ıa
togr´fica, si bien la mayor parte de estos avances se manten´ —y se siguen manteniendo,
    a                                                      ıan

Manuel J. Lucena L´pez
                  o                                Criptograf´ y Seguridad en Computadores
                                                             ıa
1.2. Algunas notas sobre la Historia de la Criptograf´
                                                     ıa                                       23


seg´n algunos— en secreto. Financiadas fundamentalmente por la NSA (Agencia Nacional
   u
de Seguridad de los EE.UU.), la mayor parte de las investigaciones hasta hace relativamente
poco tiempo han sido tratadas como secretos militares. Sin embargo, en los ultimos a˜os,
                                                                                 ´         n
investigaciones serias llevadas a cabo en universidades de todo el mundo han logrado que la
Criptograf´ sea una ciencia al alcance de todos, y que se convierta en la piedra angular de
           ıa
asuntos tan importantes como el comercio electr´nico, la telefon´ m´vil, o las nuevas platafor-
                                                o               ıa o
mas de distribuci´n de contenidos multimedia. Esta dualidad civil–militar ha dado lugar a una
                 o
curiosa doble historia de la Criptograf´ en la que los mismos algoritmos eran descubiertos,
                                       ıa,
con pocos a˜os de diferencia, primero por equipos de an´nimos militares y posteriormente por
            n                                           o
matem´ticos civiles, alcanzando unicamente estos ultimos el reconocimiento p´blico por sus
       a                          ´                 ´                           u
trabajos.
    Muchas son las voces que claman por la disponibilidad p´blica de la Criptograf´ La ex-
                                                                u                      ıa.
periencia ha demostrado que la unica manera de tener buenos algoritmos es que ´stos sean
                                  ´                                                   e
accesibles, para que puedan ser sometidos al escrutinio de toda la comunidad cient´ ıfica. Ejem-
plos claros de oscurantismo y de sus nefastas consecuencias han sido la ca´ del algoritmo que
                                                                          ıda
emplean para su autentificaci´n los tel´fonos celulares GSM en menos de cuarenta y ocho ho-
                              o         e
ras desde que su c´digo fuera descubierto, el controvertido y manifiestamente in´til algoritmo
                   o                                                              u
de protecci´n de los DVD, o las infructuosas iniciativas de las casas discogr´ficas encamina-
            o                                                                  a
das a impedir la pirater´ por citar algunos. La seguridad no debe basarse en mantener los
                          ıa,
algoritmos ocultos —puesto que ´stos, aparte de suscitar poca confianza en los usuarios, tarde
                                  e
o temprano acaban siendo analizados y descritos— sino en su resistencia demostrada tanto
te´rica como pr´cticamente, y la unica manera de demostrar la fortaleza de un algoritmo es
  o              a                  ´
someti´ndolo a todo tipo de ataques. Uno de los cap´
       e                                              ıtulos m´s conocidos de esta historia ocu-
                                                               a
rri´ en el verano de 1999, cuando un programador denunci´ una supuesta puerta trasera en el
   o                                                         o
c´digo criptogr´fico de todas las versiones del sistema operativo Windows. Como este c´digo
 o              a                                                                          o
permanece en secreto, y se considera delito su an´lisis —¿Qu´ pensar´ usted si se compra un
                                                   a            e      ıa
coche y se le proh´ desarmarlo para ver c´mo funciona?—, es desgraciadamente imposible
                   ıbe                        o
que Microsoft pueda despejar cualquier sombra de duda sobre la seguridad de sus sistemas
operativos. La pretensi´n de establecer sistemas de patentes sobre el software viene a agravar
                        o
la situaci´n, con un claro perjuicio tanto de los usuarios como de las peque˜as empresas fren-
          o                                                                 n
te al poder de las grandes corporaciones. Por desgracia, parece que a nuestros gobiernos les
interesan m´s los beneficios de las multinacionales que los intereses de los ciudadanos.
             a
    Es imposible desligar la Criptograf´ moderna de todas las consideraciones pol´
                                        ıa                                             ıticas, fi-
los´ficas y morales que suscita. Recordemos, por ejemplo, que el software criptogr´fico est´ su-
   o                                                                               a        a
jeto en EE.UU. a las mismas leyes que el armamento nuclear, y que en Europa se pretende
elaborar legislaciones parecidas. Una consecuencia inmediata de esto es que las versiones que se
exportan de los exploradores de Internet m´s extendidos (Netscape y Explorer), incorporaban
                                             a
hasta hace poco tiempo una seguridad d´bil, impidiendo, por ejemplo, establecer conexiones
                                           e
realmente seguras para conectarse a un banco —con el agravante de que no se informaba de ello
adecuadamente al usuario—. Si bien esta situaci´n se ha visto aliviada, debido a la relajaci´n
                                                 o                                             o
de estas restrictivas leyes, a´n queda mucho camino por recorrer. Otra de las l´
                              u                                                 ıneas de debate
es la intenci´n de algunos gobiernos de almacenar todas las claves privadas de sus ciudadanos,
             o
necesarias para firmar digitalmente, y considerar ilegales aquellas que no est´n registradas. Es
                                                                             e

Manuel J. Lucena L´pez
                  o                                 Criptograf´ y Seguridad en Computadores
                                                              ıa
24                                                                              1. Introducci´n
                                                                                             o


como pedirnos a todos que le demos a la polic´ una copia de las llaves de nuestra casa —con
                                               ıa
el pretexto, por supuesto, de luchar contra el terrorismo y el narcotr´fico—.
                                                                      a
    Existe un falaz argumento que algunos esgrimen en contra del uso privado de la Cripto-
graf´ proclamando que ellos nada tienen que ocultar. Estas personas insin´an que cualquiera
    ıa,                                                                    u
que abogue por el uso libre de la Criptograf´ es poco menos que un delincuente, y que la ne-
                                             ıa
cesita para encubrir sus cr´
                           ımenes. En ese caso, ¿por qu´ esas personas que no tienen nada que
                                                        e
ocultar no env´ todas sus cartas en tarjetas postales, para que todos leamos su contenido?,
               ıan
o ¿por qu´ se molestan si alguien escucha sus conversaciones telef´nicas?. Defender el ´mbito
          e                                                        o                   a
de lo privado es un derecho inalienable de la persona, que en mi opini´n debe prevalecer sobre
                                                                      o
la obligaci´n que tienen los estados de perseguir a los delincuentes. D´mosle a los gobiernos
           o                                                            e
poder para entrometerse en nuestras vidas, y acabar´n haci´ndolo, no les quepa duda.
                                                      a      e
    En el ojo del hurac´n se encuentra la red Echelon, que constituye una de las mayores
                        a
amenazas contra la libertad de toda la Historia de la Humanidad. B´sicamente se trata de
                                                                        a
una red, creada por la NSA en 1980 —sus precursoras datan de 1952— en colaboraci´n           o
con Gran Breta˜a, Australia y Nueva Zelanda, para monitorizar pr´cticamente todas las
                n                                                        a
comunicaciones electr´nicas —tel´fono, e-mail y fax principalmente— del planeta, y buscar
                     o           e
de manera autom´tica ciertas palabras clave. La informaci´n obtenida ir´ a la NSA, que
                  a                                            o             ıa
luego podr´ a su vez brind´rsela a otros pa´
           ıa             a                 ıses. El pretexto es, nuevamente, la lucha contra el
terrorismo, pero podr´ ser empleada tanto para espionaje industrial —como presuntamente
                     ıa
ha hecho durante a˜os el Gobierno Franc´s, poniendo a disposici´n de sus propias compa˜´
                   n                      e                        o                       nıas
secretos robados a empresas extranjeras—, como para el control de aquellas personas que
pueden representar amenazas pol´  ıticas a la estabilidad de la sociedad moderna. La Uni´n   o
Europea reconoci´ la existencia de Echelon, pero hasta la fecha nadie ha exigido a ning´n
                 o                                                                           u
gobierno explicaci´n alguna; es m´s, parece que los planes de la U.E. a respecto pasan por
                  o               a
el despliegue de su propia red de vigilancia electr´nica, llamada Enfopol, en la que lleva
                                                      o
trabajando unos doce a˜os.
                        n
    La red Enfopol tendr´ caracter´
                         ıa       ısticas tan aterradoras como la posesi´n de todas las claves
                                                                        o
privadas de los ciudadanos europeos, la monitorizaci´n de tel´fonos, buzones de voz, faxes,
                                                      o        e
chats y correo electr´nico, adem´s de la incorporaci´n de puertas traseras a los proveedores
                     o          a                    o
de Internet. Existe un documento de la U.E. —ENFOPOL 112 10037/95—, firmado por todos
y cada uno de los miembros de la Uni´n, en el que se aprueba la creaci´n de esta red. Sin
                                       o                                  o
embargo, ninguno de los estados miembros ha confirmado ni desmentido nada al respecto.
Este secretismo es m´s que preocupante, pues deja a la supuesta democracia en que vivimos
                     a
maniatada frente a un asunto tan importante, impidiendo que se abra el imprescindible de-
bate p´blico que deber´ anteceder a tan grave asunto. ¿Qu´ nos queda de la Libertad y la
       u                ıa                                   e
Democracia si se nos ocultan asuntos tan importantes por nuestro bien?. Afortunadamente, el
proyecto Enfopol se encuentra paralizado, pero, ¿por cu´nto tiempo?
                                                        a
    No cabe duda de que la informaci´n se est´ convirtiendo en la mayor fuente de poder que
                                     o       a
ha conocido la Humanidad, y que la Criptograf´ es una herramienta esencial para su control.
                                              ıa
Es necesario, pues, que los ciudadanos de a pie conozcan sus ventajas e inconvenientes, sus
peligros y leyendas. Dicen que vivimos en Democracia pero, si a la gente no se le muestra toda
la informaci´n relevante de manera honesta e imparcial, ¿C´mo va a poder decidir su futuro?
             o                                            o

Manuel J. Lucena L´pez
                  o                                Criptograf´ y Seguridad en Computadores
                                                             ıa
1.3. N´meros Grandes
      u                                                                                        25


Esta obra pretende poner su peque˜o granito de arena en ese sentido.
                                 n



1.3.     N´ meros Grandes
          u

    Los algoritmos criptogr´ficos emplean claves con un elevado n´mero de bits, y usualmente
                             a                                      u
se mide su calidad por la cantidad de esfuerzo que se necesita para romperlos. El tipo de
ataque m´s simple es la fuerza bruta, que simplemente trata de ir probando una a una todas
          a
las claves. Por ejemplo, el algoritmo DES tiene 256 posibles claves. ¿Cu´nto tiempo nos llevar´
                                                                        a                       ıa
probarlas todas si, pongamos por caso, dispusi´ramos de un computador capaz de hacer un
                                                 e
mill´n de operaciones por segundo? Tardar´
     o                                       ıamos. . . ¡m´s de 2200 a˜os! Pero ¿y si la clave del
                                                          a           n
ejemplo anterior tuviera 128 bits? El tiempo requerido ser´ de 1024 a˜os.
                                                              ıa         n
    Es interesante dedicar un apartado a tratar de fijar en nuestra imaginaci´n la magnitud real
                                                                            o
de este tipo de n´meros. En la tabla 1.1 podemos observar algunos valores que nos ayudar´n a
                 u                                                                        a
comprender mejor la aut´ntica magnitud de muchos de los n´meros que veremos en este texto.
                         e                                   u
Observ´ndola podremos apreciar que 1024 a˜os es aproximadamente cien billones de veces la
        a                                    n
edad del universo (y eso con un ordenador capaz de ejecutar el algoritmo de codificaci´n     o
completo un mill´n de veces por segundo). Esto nos deber´ disuadir de emplear mecanismos
                  o                                         ıa
basados en la fuerza bruta para reventar claves de 128 bits.
    Para manejar la tabla con mayor rapidez, recordemos que un mill´n es aproximadamente
                                                                     o
220 ,y que un a˜o tiene m´s o menos 2
                 n         a             24 segundos. Recorrer completamente un espacio de

claves de, por ejemplo, 256 bits a raz´n de un mill´n por segundo supone 2256−44 = 2212 a˜os
                                      o            o                                     n
de c´lculo.
    a



1.4.     Acerca de la Terminolog´ Empleada
                                ıa

    En muchos libros sobre Criptograf´ aparecen t´rminos como encriptar y desencriptar,
                                          ıa          e
adoptados con toda probabilidad del verbo anglosaj´n encrypt. El lector podr´ comprobar
                                                       o                           a
que este tipo de expresiones ha sido evitado en el presente texto, debido a la existencia de pa-
labras perfectamente v´lidas que pertenecen al idioma castellano, como son cifrar-descifrar y
                        a
codificar-decodificar (o descodificar). La opini´n del autor es que s´lo deben emplearse t´rminos
                                             o                    o                     e
for´neos cuando nuestro riqu´
   a                           ısimo idioma carezca de expresiones adecuadas para representar
las ideas en cuesti´n. Esta ultima es la situaci´n en la que se encuentra la palabra estegano-
                   o         ´                  o
graf´ hispanizaci´n del t´rmino ingl´s steganography —que a su vez proviene del t´
    ıa,            o       e            e                                              ıtulo del
libro ‘Steganographia’, escrito por Johannes Trithemius en 1518—.
    El lector podr´ advertir que en este texto aparece el t´rmino autentificaci´n, en lugar
                  a                                        e                   o
de autenticaci´n. Quisiera hacer notar en este punto que ambos t´rminos son correctos y
               o                                                   e
est´n recogidos en el Diccionario de la Real Academia, y que aqu´ empleo el primero de ellos
   a                                                            ı
simplemente porque me gusta m´s que el otro.
                                 a

Manuel J. Lucena L´pez
                  o                                 Criptograf´ y Seguridad en Computadores
                                                              ıa
26                                                                              1. Introducci´n
                                                                                             o




  Valor                                                        N´mero
                                                                u

  Probabilidad de ser fulminado por un rayo (por d´ıa)         1 entre 9.000.000.000 (233 )
  Probabilidad de ganar el primer premio de la Loter´ Primi-
                                                    ıa         1 entre 13.983.816 (223 )
  tiva Espa˜ola
           n
  Probabilidad de ganar el primer premio de la Primitiva y     1 entre 256
  caer fulminado por un rayo el mismo d´ıa

  Tiempo hasta la pr´xima glaciaci´n
                    o              o                           14.000 (214 ) a˜os
                                                                                n
  Tiempo hasta que el Sol se extinga                           10 9 (230 ) a˜ os
                                                                            n
  Edad del Planeta Tierra                                      109 (230 ) a˜os
                                                                            n
  Edad del Universo                                            1010 (234 ) a˜os
                                                                             n

  N´mero
    u      de ´tomos en el Planeta Tierra
              a                                                1051   (2170 )
  N´mero
    u      de ´tomos en el Sol
              a                                                1057   (2189 )
  N´mero
    u      de ´tomos en la V´ L´ctea
              a             ıa a                               1067   (2223 )
  N´mero
    u      de ´tomos en el Universo (excluyendo materia os-
              a                                                1077   (2255 )
  cura)

  Masa de la Tierra                                            5,9 × 1024 (282 ) Kg.
  Masa del Sol                                                 2 × 1030 (2100 ) Kg.
  Masa estimada del Universo (excluyendo materia oscura)       1050 (2166 ) Kg.

  Volumen de la Tierra                                         1021 (269 ) m3
  Volumen del Sol                                              1027 (289 ) m3
  Volumen estimado del Universo                                1082 (2272 ) m3

                          Cuadro 1.1: Algunos n´meros grandes
                                               u




Manuel J. Lucena L´pez
                  o                             Criptograf´ y Seguridad en Computadores
                                                          ıa
1.5. Notaci´n Algor´
           o       ıtmica                                                                    27


1.5.    Notaci´n Algor´
              o       ıtmica

    En este libro se describen varios algoritmos de inter´s en Criptograf´ La notaci´n emplea-
                                                         e               ıa.        o
da en ellos es muy similar a la del lenguaje de programaci´n C, con objeto de que sea accesible
                                                            o
al mayor n´mero de personas posible. Si usted no conoce este lenguaje, siempre puede acudir
            u
a cualquier tutorial b´sico para poder entender los algoritmos de este libro, y despu´s llevar a
                       a                                                             e
cabo sus propias implementaciones en cualquier otro lenguaje de programaci´n. Sin embargo,
                                                                               o
aunque la notaci´n que uso es parecida, no es exactamente la misma: all´ donde el empleo de
                   o                                                         ı
un C puro pon´ en peligro la claridad en la descripci´n de los algoritmos, me he permitido
                ıa                                       o
peque˜as licencias. Tampoco he tenido en cuenta ni mucho menos la eficiencia de tiempo o
      n
memoria para estos algoritmos, por lo que mi sincero consejo es que no intenten cortar y pegar
para realizar sus propias implementaciones.




Manuel J. Lucena L´pez
                  o                                Criptograf´ y Seguridad en Computadores
                                                             ıa
28                                                1. Introducci´n
                                                               o




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
Cap´
   ıtulo 2

Conceptos B´sicos sobre
             a
Criptograf´
          ıa

2.1.    Criptograf´
                  ıa

    Seg´n el Diccionario de la Real Academia, la palabra Criptograf´ proviene del griego
        u                                                               ıa
κρυπτ oς, que significa oculto, y γρ´ ϕ ιν, que significa escritura, y su definici´n es: “Arte de
        ´                            α                                         o
escribir con clave secreta o de un modo enigm´tico”. Obviamente la Criptograf´ hace a˜os que
                                             a                                ıa       n
dej´ de ser un arte para convertirse en una t´cnica, o m´s bien un conglomerado de t´cnicas,
   o                                         e          a                              e
que tratan sobre la protecci´n —ocultamiento frente a observadores no autorizados— de la
                              o
informaci´n. Entre las disciplinas que engloba cabe destacar la Teor´ de la Informaci´n, la
          o                                                           ıa                 o
Teor´ de N´meros —o Matem´tica Discreta, que estudia las propiedades de los n´meros
     ıa      u                    a                                                    u
enteros—, y la Complejidad Algor´   ıtmica.
    Existen dos trabajos fundamentales sobre los que se apoya pr´cticamente toda la teor´
                                                                 a                       ıa
criptogr´fica actual. Uno de ellos, desarrollado por Claude Shannon en sus art´
        a                                                                    ıculos “A Mat-
hematical Theory of Communication” (1948) y “Communication Theory of Secrecy Systems”
(1949), sienta las bases de la Teor´ de la Informaci´n y de la Criptograf´ moderna. El se-
                                   ıa                o                   ıa
gundo, publicado por Whitfield Diffie y Martin Hellman en 1976, se titulaba “New directions
in Cryptography”, e introduc´ el concepto de Criptograf´ de Llave P´blica, abriendo enor-
                              ıa                         ıa          u
memente el abanico de aplicaci´n de esta disciplina.
                                 o
   Conviene hacer notar que la palabra Criptograf´ s´lo hace referencia al uso de c´digos,
                                                      ıa o                             o
por lo que no engloba a las t´cnicas que se usan para romper dichos c´digos, conocidas en su
                             e                                         o
conjunto como Criptoan´lisis. En cualquier caso ambas disciplinas est´n ´
                         a                                            a ıntimamente ligadas;
no olvidemos que cuando se dise˜a un sistema para cifrar informaci´n, hay que tener muy
                                   n                                   o
presente su posible criptoan´lisis, ya que en caso contrario podr´
                            a                                    ıamos llevarnos desagradables
sorpresas.
  Finalmente, el t´rmino Criptolog´ aunque no est´ recogido a´n en el Diccionario, se
                  e                ıa,               a          u
emplea habitualmente para agrupar tanto la Criptograf´ como el Criptoan´lisis.
                                                     ıa                a

Manuel J. Lucena L´pez
                  o                               Criptograf´ y Seguridad en Computadores
                                                            ıa
30                                                     2. Conceptos B´sicos sobre Criptograf´
                                                                     a                      ıa


2.2.      Criptosistema

     Definiremos un criptosistema como una qu´
                                            ıntupla (M, C, K, E, D), donde:

       M representa el conjunto de todos los mensajes sin cifrar (lo que se denomina texto
       claro, o plaintext) que pueden ser enviados.

       C representa el conjunto de todos los posibles mensajes cifrados, o criptogramas.

       K representa el conjunto de claves que se pueden emplear en el criptosistema.

       E es el conjunto de transformaciones de cifrado o familia de funciones que se aplica a
       cada elemento de M para obtener un elemento de C. Existe una transformaci´n diferente
                                                                                 o
       Ek para cada valor posible de la clave k.

       D es el conjunto de transformaciones de descifrado, an´logo a E.
                                                             a

Todo criptosistema ha de cumplir la siguiente condici´n:
                                                     o

                                        Dk (Ek (m)) = m                                     (2.1)

es decir, que si tenemos un mensaje m, lo ciframos empleando la clave k y luego lo desciframos
empleando la misma clave, obtenemos de nuevo el mensaje original m.
     Existen dos tipos fundamentales de criptosistemas:

       Criptosistemas sim´tricos o de clave privada. Son aquellos que emplean la misma clave
                           e
       k tanto para cifrar como para descifrar. Presentan el inconveniente de que para ser
       empleados en comunicaciones la clave k debe estar tanto en el emisor como en el receptor,
       lo cual nos lleva preguntarnos c´mo transmitir la clave de forma segura.
                                       o

       Criptosistemas asim´tricos o de llave p´blica, que emplean una doble clave (kp , kP ).
                             e                   u
       kp se conoce como clave privada y kP se conoce como clave p´blica. Una de ellas sirve
                                                                        u
       para la transformaci´n E de cifrado y la otra para la transformaci´n D de descifrado. En
                            o                                             o
       muchos casos son intercambiables, esto es, si empleamos una para cifrar la otra sirve para
       descifrar y viceversa. Estos criptosistemas deben cumplir adem´s que el conocimiento de
                                                                        a
       la clave p´blica kP no permita calcular la clave privada kp . Ofrecen un abanico superior
                 u
       de posibilidades, pudiendo emplearse para establecer comunicaciones seguras por canales
       inseguros —puesto que unicamente viaja por el canal la clave p´blica, que s´lo sirve para
                                ´                                      u           o
       cifrar—, o para llevar a cabo autentificaciones.

   En la pr´ctica se emplea una combinaci´n de estos dos tipos de criptosistemas, puesto
             a                                o
que los segundos presentan el inconveniente de ser computacionalmente mucho m´s costosos
                                                                                    a
que los primeros. En el mundo real se codifican los mensajes (largos) mediante algoritmos
sim´tricos, que suelen ser muy eficientes, y luego se hace uso de la criptograf´ asim´trica para
   e                                                                          ıa    e
codificar las claves sim´tricas (cortas).
                        e

Manuel J. Lucena L´pez
                  o                                 Criptograf´ y Seguridad en Computadores
                                                              ıa
2.3. Esteganograf´
                 ıa                                                                            31


Claves D´biles
        e

    En la inmensa mayor´ de los casos los conjuntos M y C definidos anteriormente son
                          ıa
iguales. Esto quiere decir que tanto los textos claros como los textos cifrados se representan
empleando el mismo alfabeto —por ejemplo, cuando se usa el algoritmo DES, ambos son
cadenas de 64 bits—. Por esta raz´n puede darse la posibilidad de que exista alg´n k ∈ K tal
                                  o                                               u
que Ek (M ) = M , lo cual ser´ catastr´fico para nuestros prop´sitos, puesto que el empleo de
                             ıa        o                       o
esas claves dejar´ todos nuestros mensajes ¡sin codificar!.
                 ıa
    Tambi´n puede darse el caso de que ciertas claves concretas generen textos cifrados de poca
           e
calidad. Una posibilidad bastante com´n en ciertos algoritmos es que algunas claves tengan
                                       u
la siguiente propiedad: Ek (Ek (M )) = M , lo cual quiere decir que basta con volver a codificar
el criptograma para recuperar el texto claro original. Estas circunstancias podr´ llegar a
                                                                                    ıan
simplificar enormemente un intento de violar nuestro sistema, por lo que tambi´n habr´ que
                                                                                  e       a
evitarlas a toda costa.
    La existencia de claves con estas caracter´ısticas, como es natural, depende en gran me-
dida de las peculiaridades de cada algoritmo en concreto, y en muchos casos tambi´n de los
                                                                                    e
par´metros escogidos a la hora de aplicarlo. Llamaremos en general a las claves que no co-
    a
difican correctamente los mensajes claves d´biles (weak keys en ingl´s). Normalmente en un
                                            e                        e
buen criptosistema la cantidad de claves d´biles es cero o muy peque˜a en comparaci´n con el
                                          e                          n              o
n´mero total de claves posibles. No obstante, conviene conocer esta circunstancia para poder
 u
evitar en la medida de lo posible sus consecuencias.



2.3.     Esteganograf´
                     ıa

    La esteganograf´ —o empleo de canales subliminales— consiste en ocultar en el interior
                     ıa
de una informaci´n, aparentemente inocua, otro tipo de informaci´n (cifrada o no). Este
                   o                                                 o
m´todo ha cobrado bastante importancia ultimamente debido a que permite burlar diferentes
  e                                       ´
sistemas de control. Supongamos que un disidente pol´ıtico quiere enviar un mensaje fuera de
su pa´ burlando la censura. Si lo codifica, las autoridades jam´s permitir´n que el mensaje
      ıs,                                                       a          a
atraviese las fronteras independientemente de que puedan acceder a su contenido, mientras
que si ese mismo mensaje viaja camuflado en el interior de una imagen digital para una
inocente felicitaci´n navide˜a, tendr´ muchas m´s posibilidades de llegar a su destino. Como
                   o        n        a         a
es de suponer, existen tantos mecanismos para llevar a cabo este camuflaje como nuestra
imaginaci´n nos permita.
          o
    Menci´n especial merece el uso de la esteganograf´ para exportar informaci´n sin violar
           o                                            ıa                          o
las leyes restrictivas que, con respecto a la Criptograf´ fuerte, existen en algunos pa´
                                                         ıa                               ıses. El
mensaje se env´ como texto claro, pero entremezclado con cantidades ingentes de basura. El
                 ıa
destinatario emplear´ t´cnicas esteganogr´ficas para separar la informaci´n util del resto. Esta
                      a e                  a                               o ´
t´cnica se conoce como chaffing and winnowing, que vendr´ a traducirse como llenar de paja y
 e                                                          ıa
separar el grano de la paja. En consecuencia, tenemos un mecanismo para transmitir informa-
ci´n no cifrada, pero que s´lo puede ser reconstruida por el destinatario, con lo que en realidad
  o                         o

Manuel J. Lucena L´pez
                  o                                 Criptograf´ y Seguridad en Computadores
                                                              ıa
32                                                     2. Conceptos B´sicos sobre Criptograf´
                                                                     a                      ıa


hemos logrado protegerla sin usar en ning´n momento ning´n algoritmo de codificaci´n. Este
                                           u                u                       o
sistema surgi´ en marzo de 1998, propuesto por Ronald L. Rivest —uno de los creadores de
              o
RSA—, como desaf´ a la pol´
                   ıo         ıtica restrictiva del Gobierno de los EE.UU. con respecto a la
Criptograf´ No deja de ser en cierto modo una curiosidad, debido a lo enormemente grandes
          ıa.
que son los mensajes en comparaci´n con la cantidad de texto util que se puede incluir en
                                    o                             ´
ellos.



2.4.     Criptoan´lisis
                 a

    El criptoan´lisis consiste en comprometer la seguridad de un criptosistema. Esto se puede
               a
hacer descifrando un mensaje sin conocer la llave, o bien obteniendo a partir de uno o m´s a
criptogramas la clave que ha sido empleada en su codificaci´n. No se considera criptoan´lisis
                                                            o                            a
el descubrimiento de un algoritmo secreto de cifrado; hemos de suponer por el contrario que
los algoritmos siempre son conocidos.
    En general el criptoan´lisis se suele llevar a cabo estudiando grandes cantidades de pares
                           a
mensaje-criptograma generados con la misma clave. El mecanismo que se emplee para obte-
nerlos es indiferente, y puede ser resultado de escuchar un canal de comunicaciones, o de la
posibilidad de que el objeto de nuestro ataque responda con un criptograma cuando le envie-
mos un mensaje. Obviamente, cuanto mayor sea la cantidad de pares, m´s probabilidades de
                                                                          a
´xito tendr´ el criptoan´lisis.
e           a            a
    Uno de los tipos de an´lisis m´s interesantes es el de texto claro escogido, que parte de que
                           a      a
conocemos una serie de pares de textos claros —elegidos por nosotros— y sus criptogramas
correspondientes. Esta situaci´n se suele dar cuando tenemos acceso al dispositivo de cifrado
                               o
y ´ste nos permite efectuar operaciones, pero no nos permite leer su clave —por ejemplo, las
  e
tarjetas de los tel´fonos m´viles GSM—. El n´mero de pares necesarios para obtener la clave
                   e       o                   u
desciende entonces significativamente. Cuando el sistema es d´bil, pueden ser suficientes unos
                                                                 e
cientos de mensajes para obtener informaci´n que permita deducir la clave empleada.
                                             o
     Tambi´n podemos tratar de criptoanalizar un sistema aplicando el algoritmo de descifra-
           e
do, con todas y cada una de las claves, a un mensaje codificado que poseemos y comprobar
cu´les de las salidas que se obtienen tienen sentido como posible texto claro. Este m´todo
   a                                                                                   e
y todos los que buscan exhaustivamente por el espacio de claves K, se denominan ataques
por la fuerza bruta, y en muchos casos no suelen considerarse como aut´nticas t´cnicas de
                                                                          e        e
criptoan´lisis, reserv´ndose este t´rmino para aquellos mecanismos que explotan posibles de-
         a            a            e
bilidades intr´
              ınsecas en el algoritmo de cifrado. Se da por supuesto que el espacio de claves
para cualquier criptosistema digno de inter´s ha de ser suficientemente grande como para
                                              e
que un ataque por la fuerza bruta sea inviable. Hemos de tener en cuenta no obstante que
la capacidad de c´lculo de las computadoras crece a gran velocidad, por lo que algoritmos
                    a
que hace unos a˜os eran resistentes frente a ataques por la fuerza bruta hoy pueden resultar
                  n
inseguros, como es el caso de DES. Sin embargo, existen longitudes de clave para las que
resultar´ imposible a todas luces un ataque de este tipo. Por ejemplo, si dise˜´ramos una
        ıa                                                                      na
m´quina capaz de recorrer todas las combinaciones que pueden tomar 256 bits, cuyo consumo
  a

Manuel J. Lucena L´pez
                  o                                 Criptograf´ y Seguridad en Computadores
                                                              ıa
2.5. Compromiso entre Criptosistema y Criptoan´lisis
                                              a                                                         33


       ınimo en cada cambio de estado1 , no habr´ energ´ suficiente en el Universo para que
fuera m´                                        ıa     ıa
pudiera completar su trabajo.
    Un par de m´todos de criptoan´lisis que han dado interesantes resultados son el an´lisis
                  e                    a                                                     a
diferencial y el an´lisis lineal (ver secci´n 10.7, p´gina 130). El primero de ellos, partiendo de
                    a                      o         a
pares de mensajes con diferencias m´    ınimas —usualmente de un bit—, estudia las variaciones
que existen entre los mensajes cifrados correspondientes, tratando de identificar patrones co-
munes. El segundo emplea operaciones XOR entre algunos bits del texto claro y algunos bits
del texto cifrado, obteniendo finalmente un unico bit. Si realizamos esto con muchos pares de
                                               ´
texto claro-texto cifrado podemos obtener una probabilidad p en ese bit que calculamos. Si p
                                                     1
est´ suficientemente sesgada (no se aproxima a 2 ), tendremos la posibilidad de recuperar la
   a
clave.
    Otro tipo de an´lisis, esta vez para los algoritmos asim´tricos, consistir´ en tratar de
                     a                                         e                 ıa
deducir la llave privada a partir de la p´blica. Suelen ser t´cnicas anal´
                                         u                   e           ıticas que b´sicamente
                                                                                     a
intentan resolver los problemas de elevado coste computacional en los que se apoyan estos
criptosistemas: factorizaci´n, logaritmos discretos, etc. Mientras estos problemas gen´ricos
                           o                                                              e
permanezcan sin soluci´n eficiente, podremos seguir confiando en estos algoritmos.
                        o
   La Criptograf´ no s´lo se emplea para proteger informaci´n, tambi´n se utiliza para per-
                  ıa      o                                    o        e
mitir su autentificaci´n, es decir, para identificar al autor de un mensaje e impedir que nadie
                      o
suplante su personalidad. En estos casos surge un nuevo tipo de criptoan´lisis que est´ enca-
                                                                          a            a
minado unicamente a permitir que elementos falsos pasen por buenos. Puede que ni siquiera
        ´
nos interese descifrar el mensaje original, sino simplemente poder sustituirlo por otro falso y
que supere las pruebas de autentificaci´n.
                                        o
    Como se puede apreciar, la gran variedad de sistemas criptogr´ficos produce necesaria-
                                                                        a
mente gran variedad de t´cnicas de criptoan´lisis, cada una de ellas adaptada a un algoritmo
                          e                   a
o familia de ellos. Con toda seguridad, cuando en el futuro aparezcan nuevos mecanismos de
protecci´n de la informaci´n, surgir´n con ellos nuevos m´todos de criptoan´lisis. De hecho, la
         o                 o        a                       e                 a
investigaci´n en este campo es tan importante como el desarrollo de algoritmos criptogr´ficos,
           o                                                                              a
y esto es debido a que, mientras que la presencia de fallos en un sistema es posible demostrarla,
su ausencia es por definici´n indemostrable.
                           o


2.5.       Compromiso entre Criptosistema y Criptoan´lisis
                                                    a

    En la secci´n 3.5 (p´g. 44) veremos que pueden existir sistemas idealmente seguros, capaces
               o        a
de resistir cualquier ataque. Tambi´n veremos que estos sistemas en la pr´ctica carecen de
                                     e                                       a
inter´s, lo cual nos lleva a tener que adoptar un compromiso entre el coste del sistema —
     e
tanto computacional como de almacenamiento, e incluso econ´mico— frente a su resistencia
                                                                 o
a diferentes ataques criptogr´ficos.
                              a
      La informaci´n posee un tiempo de vida, y pierde su valor transcurrido ´ste. Los datos sobre
                  o                                                          e
  1
     Seg´n las Leyes de la Termodin´mica existe una cantidad m´
        u                          a                          ınima de energ´ necesaria para poder modificar
                                                                            ıa
el estado de un sistema.


Manuel J. Lucena L´pez
                  o                                      Criptograf´ y Seguridad en Computadores
                                                                   ıa
34                                                    2. Conceptos B´sicos sobre Criptograf´
                                                                    a                      ıa


la estrategia de inversiones a largo plazo de una gran empresa, por ejemplo, tienen un mayor
periodo de validez que la exclusiva period´ ıstica de una sentencia judicial que se va a hacer
p´blica al d´ siguiente. Ser´ suficiente, pues, tener un sistema que garantice que el tiempo
  u          ıa               a
que se puede tardar en comprometer su seguridad es mayor que el tiempo de vida de la propia
informaci´n que ´ste alberga. Esto no suele ser f´cil, sobre todo porque no tardar´ lo mismo un
          o       e                              a                                 a
oponente que disponga de una unica computadora de capacidad modesta, que otro que emplee
                                ´
una red de supercomputadores. Por eso tambi´n ha de tenerse en cuenta si la informaci´n que
                                               e                                          o
queremos proteger vale m´s que el esfuerzo de criptoan´lisis que va a necesitar, porque entonces
                          a                              a
puede que no est´ segura. La seguridad de los criptosistemas se suele medir en t´rminos del
                   e                                                                 e
n´mero de computadoras y del tiempo necesarios para romperlos, y a veces simplemente en
  u
funci´n del dinero necesario para llevar a cabo esta tarea con garant´ de ´xito.
     o                                                                 ıas    e
    En cualquier caso hoy por hoy existen sistemas que son muy poco costosos —o incluso
gratuitos, como algunas versiones de PGP—, y que nos garantizan un nivel de protecci´n   o
tal que toda la potencia de c´lculo que actualmente hay en el planeta ser´ insuficiente para
                             a                                           ıa
romperlos.
    Tampoco conviene depositar excesiva confianza en el algoritmo de cifrado, puesto que en
el proceso de protecci´n de la informaci´n existen otros puntos d´biles que deben ser tratados
                       o                  o                         e
con un cuidado exquisito. Por ejemplo, no tiene sentido emplear algoritmos con niveles de
seguridad extremadamente elevados si luego escogemos contrase˜as (passwords) rid´
                                                                   n                 ıculamente
f´ciles de adivinar. Una pr´ctica muy extendida por desgracia es la de escoger palabras clave
 a                          a
que contengan fechas, nombres de familiares, nombres de personajes o lugares de ficci´n, etc.
                                                                                         o
Son las primeras que un atacante avispado probar´ Tampoco es una pr´ctica recomendable
                                                      ıa.                   a
anotarlas o dec´ırselas a nadie, puesto que si la clave cae en malas manos, todo nuestro sistema
queda comprometido, por buenos que sean los algoritmos empleados.



2.6.    Seguridad

    El concepto de seguridad en la informaci´n es mucho m´s amplio que la simple protecci´n
                                            o              a                                o
de los datos a nivel l´gico. Para proporcionar una seguridad real hemos de tener en cuenta
                      o
m´ltiples factores, tanto internos como externos. En primer lugar habr´ que caracterizar el
  u                                                                    ıa
sistema que va a albergar la informaci´n para poder identificar las amenazas, y en este sentido
                                      o
podr´ıamos hacer la siguiente subdivisi´n:
                                       o


 1. Sistemas aislados. Son los que no est´n conectados a ning´n tipo de red. De unos a˜os a
                                         a                   u                        n
    esta parte se han convertido en minor´ debido al auge que ha experimentado Internet.
                                           ıa,

 2. Sistemas interconectados. Hoy por hoy casi cualquier ordenador pertenece a alguna red,
    enviando y recogiendo informaci´n del exterior casi constantemente. Esto hace que las
                                    o
    redes de ordenadores sean cada d´ m´s complejas y supongan un peligro potencial que
                                     ıa a
    no puede en ning´n caso ser ignorado.
                     u

Manuel J. Lucena L´pez
                  o                                Criptograf´ y Seguridad en Computadores
                                                             ıa
2.6. Seguridad                                                                               35


    En cuanto a las cuestiones de seguridad que hemos de fijar podr´
                                                                  ıamos clasificarlas de la
siguiente forma:

 1. Seguridad f´ısica. Englobaremos dentro de esta categor´ a todos los asuntos relacionados
                                                             ıa
    con la salvaguarda de los soportes f´ ısicos de la informaci´n, m´s que de la informaci´n
                                                                 o    a                      o
    propiamente dicha. En este nivel estar´   ıan, entre otras, las medidas contra incendios y
    sobrecargas el´ctricas, la prevenci´n de ataques terroristas, las pol´
                    e                   o                                 ıticas de backup, etc.
    Tambi´n se suelen tener en cuenta dentro de este punto aspectos relacionados con la
           e
    restricci´n de acceso f´
             o             ısico a las computadoras unicamente a personas autorizadas.
                                                      ´

 2. Seguridad de la informaci´n. En este apartado prestaremos atenci´n a la preservaci´n
                               o                                         o                  o
    de la informaci´n frente a observadores no autorizados. Para ello podemos emplear tan-
                    o
    to criptograf´ sim´trica como asim´trica, estando la primera unicamente indicada en
                 ıa     e                e                           ´
    sistemas aislados, ya que si la emple´ramos en redes, al tener que transmitir la clave por
                                         a
    el canal de comunicaci´n, estar´
                           o         ıamos asumiendo un riesgo excesivo.

 3. Seguridad del canal de comunicaci´n. Los canales de comunicaci´n rara vez se consideran
                                     o                            o
    seguros. Debido a que en la mayor´ de los casos escapan a nuestro control, ya que
                                        ıa
    pertenecen a terceros, resulta imposible asegurarse totalmente de que no est´n siendo
                                                                                  a
    escuchados o intervenidos.

 4. Problemas de autentificaci´n. Debido a los problemas del canal de comunicaci´n, es
                              o                                                   o
    necesario asegurarse de que la informaci´n que recibimos en la computadora viene de
                                            o
    quien realmente creemos que viene. Para esto se suele emplear criptograf´ asim´trica
                                                                            ıa    e
    en conjunci´n con funciones resumen (ver secci´n 13.1, p´gina 157).
               o                                  o         a

 5. Problemas de suplantaci´n. En las redes tenemos el problema a˜adido de que cualquier
                            o                                         n
    usuario autorizado puede acceder al sistema desde fuera, por lo que hemos de confiar en
    sistemas fiables para garantizar que los usuarios no est´n siendo suplantados por intrusos.
                                                           a
    Normalmente se emplean mecanismos basados en password para conseguir esto.

 6. No repudio. Cuando se recibe un mensaje no s´lo es necesario poder identificar de forma
                                                 o
    un´ıvoca al remitente, sino que ´ste asuma todas las responsabilidades derivadas de la
                                    e
    informaci´n que haya podido enviar. En este sentido es fundamental impedir que el
              o
    emisor pueda repudiar un mensaje, es decir, negar su autor´ sobre ´l.
                                                              ıa       e




Manuel J. Lucena L´pez
                  o                                Criptograf´ y Seguridad en Computadores
                                                             ıa
36                         2. Conceptos B´sicos sobre Criptograf´
                                         a                      ıa




Manuel J. Lucena L´pez
                  o      Criptograf´ y Seguridad en Computadores
                                   ıa
Parte II

         Fundamentos Te´ricos de la
                       o
               Criptograf´
                         ıa




Manuel J. Lucena L´pez
                  o           Criptograf´ y Seguridad en Computadores
                                        ıa
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia
Criptografia

Más contenido relacionado

Similar a Criptografia (7)

Hackers - Los clanes de la RED 2000
Hackers - Los clanes de la RED 2000Hackers - Los clanes de la RED 2000
Hackers - Los clanes de la RED 2000
 
Criptologia
CriptologiaCriptologia
Criptologia
 
Sudoku
SudokuSudoku
Sudoku
 
Inteligencia artificial.
Inteligencia artificial.Inteligencia artificial.
Inteligencia artificial.
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Criptografia
CriptografiaCriptografia
Criptografia
 

Criptografia

  • 1. Criptograf´ y Seguridad en ıa Computadores Tercera Edici´n (Versi´n 2.01). Marzo de 2003 o o Manuel Jos´ Lucena L´pez e o e-mail: mlucena@ujaen.es
  • 2. 2 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 3. —¿Qu´ significa habla, amigo y entra? —pregunt´ Merry. e o —Es bastante claro —dijo Gimli—. Si eres un amigo, dices la contrase˜a y las puertas se n abren y puedes entrar. —S´ —dijo Gandalf—, es probable que estas puertas est´n gobernadas por palabras. . . ı e El Se˜or de Los Anillos n J.R.R. Tolkien Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 4. 4 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 5. Copyright c 1999-2003 de Manuel Jos´ Lucena L´pez. Todos los derechos reservados. e o Este documento puede ser distribuido libre y gratuitamente bajo cualquier soporte siempre que se respete su integridad. Queda prohibida su venta sin permiso expreso del autor. Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 6. 6 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 7. Agradecimientos A Loles, ella sabe por qu´. e A los chicos de Kript´polis, por darme esta oportunidad. o A mis alumnos, por aguantarme cada a˜o. n A Borja Arber´s, Alejandro Benab´n, Manuel C´tedra, Jes´s Cea, Dextar, Gabriel Horacio a e a u D´ Luis Esc´nez, L´zaro Escudero, Sacha Fuentes, David Garc´ Luis Garc´ Alfonso ıez, a a ıa, ıa, Gonz´lez, Germ´n J´come, Juan Mart´ Juan Andr´s Olmo, Juan Ram´n Moral, Antonio a a a ın, e o Jes´s Navarro, Alejandro Noguera, Jos´ A. Ramos, Carlos Romeo, Javier Rubio, Felipe u e Santos, V´ıctor A. Villagra, y a todos aquellos que, enviando sugerencias o correcciones, han ayudado a mejorar esta obra. A todos los que alguna vez han compartido sus conocimientos, por enriquecernos a todos. Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 8. 8 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 9. Prefacio El presente documento ha sido elaborado originalmente como apoyo a la asignatura “Crip- tograf´ y Seguridad en Computadores”, de 3er Curso de Ingenier´ T´cnica en Inform´tica de ıa ıa e a Gesti´n, de la Universidad de Ja´n, empleando el procesador de textos L TE o e A X 2ε , y los editores gr´ficos XFig y Gimp. Puede descargarse su ultima versi´n, as´ como eventuales correcciones a ´ o ı en la siguiente direcci´n web: o http://wwwdi.ujaen.es/~mlucena No se pretende que estos apuntes sustituyan a la bibliograf´ de la asignatura, ni a las ıa clases te´ricas, sino que sirvan m´s bien como complemento a las notas que el alumno debe o a tomar en clase. Asimismo, no debe considerarse un documento definitivo y exento de errores, si bien ha sido elaborado con detenimiento y revisado exhaustivamente. El autor pretende que sea mejorado y ampliado con cierta frecuencia, lo que probablemente desembocar´ en sucesivas a versiones, y para ello nadie mejor que los propios lectores para plantear dudas, buscar errores, y sugerir mejoras. Ja´n, 3 de marzo de 2003. e Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 10. 10 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 11. ´ Indice general I Preliminares 19 1. Introducci´n o 21 1.1. C´mo Leer esta Obra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 21 1.2. Algunas notas sobre la Historia de la Criptograf´ . . . . . . . . . . . . . . . . . ıa 22 1.3. N´meros Grandes u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.4. Acerca de la Terminolog´ Empleada . . . . . . . . . . . . . . . . . . . . . . . . ıa 25 1.5. Notaci´n Algor´ o ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2. Conceptos B´sicos sobre Criptograf´ a ıa 29 2.1. Criptograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 29 2.2. Criptosistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.3. Esteganograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 31 2.4. Criptoan´lisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 32 2.5. Compromiso entre Criptosistema y Criptoan´lisis . . . . . . . . . . . . . . . . . a 33 2.6. Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 II Fundamentos Te´ricos de la Criptograf´ o ıa 37 3. Teor´ de la Informaci´n ıa o 39 3.1. Cantidad de Informaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 39 3.2. Entrop´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 40 3.3. Entrop´ Condicionada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ıa 42 3.4. Cantidad de Informaci´n entre dos Variables . . . . . . . . . . . . . . . . . . . o 44 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 12. 12 ´ INDICE GENERAL 3.5. Criptosistema Seguro de Shannon . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.6. Redundancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.7. Desinformaci´n y Distancia de Unicidad . . . . . . . . . . . . . . . . . . . . . . o 46 3.8. Confusi´n y Difusi´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o o 47 3.9. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4. Introducci´n a la Complejidad Algor´ o ıtmica 49 4.1. Concepto de Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2. Complejidad Algor´ ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.1. Operaciones Elementales . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.3. Algoritmos Polinomiales, Exponenciales y Subexponenciales . . . . . . . . . . . 53 4.4. Clases de Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.5. Algoritmos Probabil´ ısticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5. Fundamentos de Aritm´tica Modular e 57 5.1. Aritm´tica Modular. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . e 57 5.1.1. Algoritmo de Euclides . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.1.2. Complejidad de las Operaciones Aritm´ticas en Zn . . . . . . . . . . . . e 59 5.2. C´lculo de Inversas en Zn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 60 5.2.1. Existencia de la Inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 5.2.2. Funci´n de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 61 5.2.3. Algoritmo Extendido de Euclides . . . . . . . . . . . . . . . . . . . . . . 62 5.3. Teorema Chino del Resto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.4. Exponenciaci´n. Logaritmos Discretos . . . . . . . . . . . . . . . . . . . . . . . o 64 5.4.1. Algoritmo de Exponenciaci´n R´pida . . . . . . . . . . . . . . . . . . . o a 64 5.4.2. El Problema de los Logaritmos Discretos . . . . . . . . . . . . . . . . . 65 5.4.3. El Problema de Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . 65 5.5. Importancia de los N´meros Primos . . . . . . . . . . . . . . . . . . . . . . . . u 66 5.6. Algoritmos de Factorizaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 66 5.6.1. M´todo de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 67 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 13. ´ INDICE GENERAL 13 5.6.2. M´todo p − 1 de Pollard . . . . . . . . . . . . . . . . . . . . . . . . . . . e 68 5.6.3. M´todos Cuadr´ticos de Factorizaci´n . . . . . . . . . . . . . . . . . . . e a o 69 5.7. Tests de Primalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.7.1. M´todo de Lehmann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 70 5.7.2. M´todo de Rabin-Miller . . . . . . . . . . . . . . . . . . . . . . . . . . . e 71 5.7.3. Consideraciones Pr´cticas . . . . . . . . . . . . . . . . . . . . . . . . . . a 71 5.7.4. Primos fuertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.8. Anillos de Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5.8.1. Polinomios en Zn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.9. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6. Introducci´n a las Curvas El´ o ıpticas 75 6.1. Curvas El´ ıpticas en R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.1.1. Suma en E(R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.2. Curvas El´ ıpticas en GF (n) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 ıpticas en GF (2n ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3. Curvas El´ 79 6.3.1. Suma en E(GF (2n )) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.4. El Problema de los Logaritmos Discretos en Curvas El´ ıpticas . . . . . . . . . . 80 6.5. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 7. Aritm´tica Entera de M´ ltiple Precisi´n e u o 81 7.1. Representaci´n de enteros largos . . . . . . . . . . . . . . . . . . . . . . . . . . o 81 7.2. Operaciones aritm´ticas sobre enteros largos . . . . . . . . . . . . . . . . . . . . e 82 7.2.1. Suma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.2.2. Resta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.2.3. Multiplicaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 84 7.2.4. Divisi´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 86 7.3. Aritm´tica modular con enteros largos . . . . . . . . . . . . . . . . . . . . . . . e 89 7.4. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 8. Criptograf´ y N´ meros Aleatorios ıa u 91 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 14. 14 ´ INDICE GENERAL 8.1. Tipos de Secuencias Aleatorias . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.1.1. Secuencias pseudoaleatorias . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.1.2. Secuencias criptogr´ficamente aleatorias . . . . . . . . . . . . . . . . . . a 92 8.1.3. Secuencias totalmente aleatorias . . . . . . . . . . . . . . . . . . . . . . 92 8.2. Generaci´n de Secuencias Aleatorias Criptogr´ficamente V´lidas . . . . . . . . o a a 93 8.2.1. Obtenci´n de Bits Aleatorios . . . . . . . . . . . . . . . . . . . . . . . . o 93 8.2.2. Eliminaci´n del Sesgo . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 95 8.2.3. Generadores Aleatorios Criptogr´ficamente Seguros . . . . . . . . . . . . a 96 III Criptograf´ de Llave Privada ıa 99 9. Criptograf´ Cl´sica ıa a 101 9.1. Algoritmos Cl´sicos de Cifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 a 9.1.1. Cifrados Monoalfab´ticos . . . . . . . . . . . . . . . . . . . . . . . . . . 102 e 9.1.2. Cifrados Polialfab´ticos . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 e 9.1.3. Cifrados por Sustituci´n Homof´nica . . . . . . . . . . . . . . . . . . . . 104 o o 9.1.4. Cifrados de Transposici´n . . . . . . . . . . . . . . . . . . . . . . . . . . 104 o 9.2. M´quinas de Rotores. La M´quina ENIGMA . . . . . . . . . . . . . . . . . . . 105 a a 9.2.1. Un poco de Historia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.2.2. Consideraciones Te´ricas Sobre la M´quina ENIGMA . . . . . . . . . . 108 o a 9.2.3. Otras M´quinas de Rotores . . . . . . . . . . . . . . . . . . . . . . . . . 109 a 10.Cifrados por Bloques 111 10.1. Cifrado de producto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.1.1. Redes de Feistel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 10.1.2. Cifrados con Estructura de Grupo . . . . . . . . . . . . . . . . . . . . . 114 10.1.3. S-Cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.2. El Algoritmo DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.2.1. Claves D´biles en DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 e 10.3. Variantes de DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 10.3.1. DES M´ltiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 u Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 15. ´ INDICE GENERAL 15 10.3.2. DES con Subclaves Independientes . . . . . . . . . . . . . . . . . . . . . 118 10.3.3. DES Generalizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 10.3.4. DES con S-Cajas Alternativas . . . . . . . . . . . . . . . . . . . . . . . . 119 10.4. El algoritmo IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 10.5. El algoritmo Rijndael (AES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 10.5.1. Estructura de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 10.5.2. Elementos de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10.5.3. Las Rondas de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 10.5.4. C´lculo de las Subclaves . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 a 10.5.5. Seguridad de AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 10.6. Modos de Operaci´n para Algoritmos de Cifrado por Bloques . . . . . . . . . . 126 o 10.6.1. Modo ECB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.6.2. Modo CBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.6.3. Modo CFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 10.6.4. Otros Modos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 10.7. Criptoan´lisis de Algoritmos Sim´tricos . . . . . . . . . . . . . . . . . . . . . . 130 a e 10.7.1. Criptoan´lisis Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . 130 a 10.7.2. Criptoan´lisis Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 a 11.Cifrados de Flujo 131 11.1. Secuencias Pseudoaleatorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.2. Tipos de Generadores de Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.2.1. Generadores S´ ıncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.2.2. Generadores As´ ıncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 11.3. Registros de Desplazamiento Retroalimentados . . . . . . . . . . . . . . . . . . 133 11.3.1. Registros de Desplazamiento Retroalimentados Lineales . . . . . . . . . 133 11.3.2. Registros de Desplazamiento Retroalimentados No Lineales . . . . . . . 134 11.3.3. Combinaci´n de Registros de Desplazamiento . . . . . . . . . . . . . . . 135 o 11.4. Otros Generadores de Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 11.4.1. Algoritmo RC4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 11.4.2. Algoritmo SEAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 16. 16 ´ INDICE GENERAL IV Criptograf´ de Llave P´ blica ıa u 139 12.Algoritmos Asim´tricos de Cifrado e 141 12.1. Aplicaciones de los Algoritmos Asim´tricos . . . . . . . . . . . . . . . . . . . . 141 e 12.1.1. Protecci´n de la Informaci´n . . . . . . . . . . . . . . . . . . . . . . . . 142 o o 12.1.2. Autentificaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 o 12.2. El Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 12.2.1. Seguridad del Algoritmo RSA . . . . . . . . . . . . . . . . . . . . . . . . 146 12.2.2. Vulnerabilidades de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 146 12.3. Otros Algoritmos Asim´tricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 e 12.3.1. Algoritmo de Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . 149 12.3.2. Algoritmo de ElGamal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 12.3.3. Algoritmo de Rabin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 12.3.4. Algoritmo DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 12.4. Criptograf´ de Curva El´ ıa ıptica . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 12.4.1. Cifrado de ElGamal sobre Curvas El´ ıpticas . . . . . . . . . . . . . . . . 153 12.5. Los Protocolos SSL y TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 12.6. Ejercicios Propuestos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 13.M´todos de Autentificaci´n e o 157 13.1. Firmas Digitales. Funciones Resumen . . . . . . . . . . . . . . . . . . . . . . . 157 13.1.1. Longitud Adecuada para una Signatura . . . . . . . . . . . . . . . . . . 158 13.1.2. Estructura de una Funci´n Resumen . . . . . . . . . . . . . . . . . . . . 159 o 13.1.3. Algoritmo MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 13.1.4. El Algoritmo SHA-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 13.1.5. Funciones de Autentificaci´n de Mensaje . . . . . . . . . . . . . . . . . . 164 o 13.2. Autentificaci´n de Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 o 13.3. Autentificaci´n de Usuario Mediante Contrase˜a . . . . . . . . . . . . . . . . . 165 o n 13.3.1. Ataques Mediante Diccionario . . . . . . . . . . . . . . . . . . . . . . . . 166 13.4. Dinero Electr´nico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 o 13.5. Esteganograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 ıa Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 17. ´ INDICE GENERAL 17 13.6. Certificados X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 14.PGP 171 14.1. Fundamentos e Historia de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . 171 14.2. Estructura de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 14.2.1. Codificaci´n de Mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . 172 o 14.2.2. Firma Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 14.2.3. Armaduras ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 14.2.4. Gesti´n de Claves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 o 14.2.5. Distribuci´n de Claves y Redes de Confianza . . . . . . . . . . . . . . . 175 o 14.2.6. Otros PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 14.3. Vulnerabilidades de PGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 V Seguridad en Redes de Computadores 179 15.Seguridad en Redes 181 15.1. Importancia de las Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 15.2. Redes Internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 15.3. Redes Externas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 15.3.1. Intranets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 15.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 16.Hackers 187 16.1. El Hielo y los Vaqueros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 16.2. C´mo act´a un Hacker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 o u 16.2.1. Protocolo TCP/IP. Demonios y Puertos . . . . . . . . . . . . . . . . . . 189 16.2.2. Desbordamientos de Buffer . . . . . . . . . . . . . . . . . . . . . . . . . 191 16.2.3. Suplantando Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 16.2.4. Borrando las Huellas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 16.2.5. Ataques Pasivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 16.2.6. Ataques Coordinados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 18. 18 ´ INDICE GENERAL 16.3. C´mo Protegerse del Ataque de los Hackers . . . . . . . . . . . . . . . . . . . . 193 o 16.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 17.Virus 195 17.1. Origen de los Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 17.2. Anatom´ de un Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 ıa 17.2.1. M´todos de Contagio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 e 17.2.2. La Fase Destructiva de un Virus . . . . . . . . . . . . . . . . . . . . . . 197 17.3. Cu´ndo son Peligrosos los Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 a 17.4. Protegerse frente a los Virus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 VI Ap´ndices e 199 A. Criptograf´ Cu´ntica ıa a 201 A.1. Mec´nica Cu´ntica y Criptograf´ . . . . . . . . . . . . . . . . . . . . . . . . . . 201 a a ıa A.2. Computaci´n Cu´ntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 o a A.3. Expectativas de Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 B. Ayudas a la Implementaci´n o 205 B.1. DES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 B.1.1. S-Cajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 B.1.2. Permutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 B.1.3. Valores de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 B.2. IDEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 B.3. MD5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 C. Ejercicios Resueltos 223 Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 19. Parte I Preliminares Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 20.
  • 21. Cap´ ıtulo 1 Introducci´n o A lo largo de 1995 y principios de 1996, los profesores Jos´ Ignacio Pel´ez S´nchez, Antonio e a a S´nchez Solana y Manuel Jos´ Lucena L´pez elaboraron una Colecci´n de Apuntes para la a e o o asignatura ‘Criptograf´ y Seguridad en Computadores’, impartida en tercer curso de Inge- ıa nier´ T´cnica en Inform´tica de Gesti´n, en la Universidad de Ja´n. Varios a˜os han pasado ıa e a o e n desde entonces, y, como cab´ esperar en una disciplina de tan r´pida evoluci´n, las cosas han ıa a o cambiado. Algunos algoritmos han perdido parte de su inter´s —como es el caso de DES, que e fue vencido 1 el verano de 1998—, nuevas t´cnicas han surgido o se han popularizado —PGP e es un claro ejemplo de que para el usuario de a pie se puede conseguir aut´ntica privacidad—, e temas que antes ten´ un inter´s limitado se han convertido en fundamentales —la r´pi- ıan e a da expansi´n de Internet obliga no s´lo al profesional, sino al usuario medio, a tener ciertos o o conocimientos b´sicos sobre seguridad—, etc. a La presente colecci´n de apuntes naci´ con la vocaci´n de intentar cubrir en la medida de o o o lo posible ese vac´ Sin embargo, la escasez de documentaci´n en Espa˜ol sobre Criptograf´ ıo. o n ıa, y las dificultades que encontraban muchos alumnos para complementar bibliogr´ficamente la a asignatura, unido todo ello a la sorprendente difusi´n del anterior texto hizo surgir en el autor o la idea de distribuir esta obra en formato electr´nico y de forma gratuita. o 1.1. C´mo Leer esta Obra o Esta obra ha sido organizada en cinco partes: 1. Preliminares. Aqu´ se incluyen todos los conceptos b´sicos y se introduce la terminolog´ ı a ıa empleada en el resto del libro. Su lectura es recomendable incluso para las personas que ya conocen el tema, puesto que puede evitar cierta confusi´n en los t´rminos empleados o e 1 En realidad, el ataque que logr´ tener ´xito se realiz´ por la fuerza bruta, por lo que no podemos hablar o e o en un sentido estricto de derrota. De hecho, a´n no se ha encontrado ninguna debilidad seria en su dise˜o; lo u n que s´ qued´ patente es que su longitud de clave es demasiado peque˜a. ı o n Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 22. 22 1. Introducci´n o a lo largo de la obra. 2. Fundamentos Te´ricos de la Criptograf´ Se desarrollan brevemente los resultados te´ri- o ıa. o cos sobre los que se va a apoyar el resto del libro. Si usted no domina las Matem´ticas, a o simplemente no tiene inter´s en estos fundamentos, puede pasarla por alto. e 3. Criptograf´ de Llave Privada. Se introduce la Criptograf´ Cl´sica, as´ como los algo- ıa ıa a ı ritmos sim´tricos de cifrado. e 4. Criptograf´ de Llave P´blica. En esta parte se estudian los algoritmos asim´tricos y los ıa u e m´todos de autentificaci´n. Adem´s se incluye un cap´ e o a ıtulo sobre PGP. 5. Seguridad en Redes de Computadores. Esta es la parte menos te´rica y quiz´ m´s pr´ctica o a a a desde el punto de vista de la seguridad (no desde el punto de vista criptogr´fico). Se a estudian en ella brevemente los problemas que se dan en redes de computadoras, para que el lector pueda comenzar a elaborar por s´ mismo estrategias de protecci´n de la ı o informaci´n. o Este texto no tiene por qu´ ser le´ cap´ e ıdo ıtulo por cap´ıtulo, aunque se ha organizado de manera que los contenidos m´s b´sicos aparezcan primero. La parte de fundamentos te´ricos a a o est´ orientada a personas con unos conocimientos m´ a ´ ınimos sobre Algebra y Programaci´n, o pero puede ser ignorada si el lector est´ dispuesto a creerse lo que encuentre en posteriores a cap´ıtulos. La recomendaci´n del autor en este sentido es clara: si es su primer contacto con la o Criptograf´ deje los fundamentos te´ricos justo para el final, o correr´ el riesgo de perderse ıa, o a entre conceptos que, si de una parte son necesarios para una comprensi´n profunda del tema, o no son imprescindibles a la hora de empezar a adentrarse en este apasionante mundo. Se ha pretendido que todos los conceptos queden suficientemente claros con la sola lectura de este libro, pero se recomienda vivamente que si el lector tiene inter´s por profundizar en e cualquiera de los aspectos tratados aqu´ consulte la bibliograf´ para ampliar sus conocimien- ı, ıa tos, pudiendo emplear como punto de partida las propias referencias que aparecen al final de este documento, aunque por desgracia, algunas de las m´s interesantes est´n en ingl´s. a a e 1.2. Algunas notas sobre la Historia de la Criptograf´ ıa La Criptograf´ moderna nace al mismo tiempo que las computadoras. Durante la Segunda ıa Guerra Mundial, en un lugar llamado Bletchley Park, un grupo de cient´ ıficos entre los que se encontraba Alan Turing, trabajaba en el proyecto ULTRA tratando de descifrar los mensa- jes enviados por el ej´rcito alem´n con los m´s sofisticados ingenios de codificaci´n ideados e a a o hasta entonces: la m´quina ENIGMA y el cifrado Lorenz. Este grupo de cient´ a ıficos dise˜´ y no utiliz´ el primer computador de la Historia, denominado Colossus —aunque esta informaci´n o o permaneci´ en secreto hasta mediados de los 70—. o Desde entonces hasta hoy ha habido un crecimiento espectacular de la tecnolog´ crip- ıa togr´fica, si bien la mayor parte de estos avances se manten´ —y se siguen manteniendo, a ıan Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 23. 1.2. Algunas notas sobre la Historia de la Criptograf´ ıa 23 seg´n algunos— en secreto. Financiadas fundamentalmente por la NSA (Agencia Nacional u de Seguridad de los EE.UU.), la mayor parte de las investigaciones hasta hace relativamente poco tiempo han sido tratadas como secretos militares. Sin embargo, en los ultimos a˜os, ´ n investigaciones serias llevadas a cabo en universidades de todo el mundo han logrado que la Criptograf´ sea una ciencia al alcance de todos, y que se convierta en la piedra angular de ıa asuntos tan importantes como el comercio electr´nico, la telefon´ m´vil, o las nuevas platafor- o ıa o mas de distribuci´n de contenidos multimedia. Esta dualidad civil–militar ha dado lugar a una o curiosa doble historia de la Criptograf´ en la que los mismos algoritmos eran descubiertos, ıa, con pocos a˜os de diferencia, primero por equipos de an´nimos militares y posteriormente por n o matem´ticos civiles, alcanzando unicamente estos ultimos el reconocimiento p´blico por sus a ´ ´ u trabajos. Muchas son las voces que claman por la disponibilidad p´blica de la Criptograf´ La ex- u ıa. periencia ha demostrado que la unica manera de tener buenos algoritmos es que ´stos sean ´ e accesibles, para que puedan ser sometidos al escrutinio de toda la comunidad cient´ ıfica. Ejem- plos claros de oscurantismo y de sus nefastas consecuencias han sido la ca´ del algoritmo que ıda emplean para su autentificaci´n los tel´fonos celulares GSM en menos de cuarenta y ocho ho- o e ras desde que su c´digo fuera descubierto, el controvertido y manifiestamente in´til algoritmo o u de protecci´n de los DVD, o las infructuosas iniciativas de las casas discogr´ficas encamina- o a das a impedir la pirater´ por citar algunos. La seguridad no debe basarse en mantener los ıa, algoritmos ocultos —puesto que ´stos, aparte de suscitar poca confianza en los usuarios, tarde e o temprano acaban siendo analizados y descritos— sino en su resistencia demostrada tanto te´rica como pr´cticamente, y la unica manera de demostrar la fortaleza de un algoritmo es o a ´ someti´ndolo a todo tipo de ataques. Uno de los cap´ e ıtulos m´s conocidos de esta historia ocu- a rri´ en el verano de 1999, cuando un programador denunci´ una supuesta puerta trasera en el o o c´digo criptogr´fico de todas las versiones del sistema operativo Windows. Como este c´digo o a o permanece en secreto, y se considera delito su an´lisis —¿Qu´ pensar´ usted si se compra un a e ıa coche y se le proh´ desarmarlo para ver c´mo funciona?—, es desgraciadamente imposible ıbe o que Microsoft pueda despejar cualquier sombra de duda sobre la seguridad de sus sistemas operativos. La pretensi´n de establecer sistemas de patentes sobre el software viene a agravar o la situaci´n, con un claro perjuicio tanto de los usuarios como de las peque˜as empresas fren- o n te al poder de las grandes corporaciones. Por desgracia, parece que a nuestros gobiernos les interesan m´s los beneficios de las multinacionales que los intereses de los ciudadanos. a Es imposible desligar la Criptograf´ moderna de todas las consideraciones pol´ ıa ıticas, fi- los´ficas y morales que suscita. Recordemos, por ejemplo, que el software criptogr´fico est´ su- o a a jeto en EE.UU. a las mismas leyes que el armamento nuclear, y que en Europa se pretende elaborar legislaciones parecidas. Una consecuencia inmediata de esto es que las versiones que se exportan de los exploradores de Internet m´s extendidos (Netscape y Explorer), incorporaban a hasta hace poco tiempo una seguridad d´bil, impidiendo, por ejemplo, establecer conexiones e realmente seguras para conectarse a un banco —con el agravante de que no se informaba de ello adecuadamente al usuario—. Si bien esta situaci´n se ha visto aliviada, debido a la relajaci´n o o de estas restrictivas leyes, a´n queda mucho camino por recorrer. Otra de las l´ u ıneas de debate es la intenci´n de algunos gobiernos de almacenar todas las claves privadas de sus ciudadanos, o necesarias para firmar digitalmente, y considerar ilegales aquellas que no est´n registradas. Es e Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 24. 24 1. Introducci´n o como pedirnos a todos que le demos a la polic´ una copia de las llaves de nuestra casa —con ıa el pretexto, por supuesto, de luchar contra el terrorismo y el narcotr´fico—. a Existe un falaz argumento que algunos esgrimen en contra del uso privado de la Cripto- graf´ proclamando que ellos nada tienen que ocultar. Estas personas insin´an que cualquiera ıa, u que abogue por el uso libre de la Criptograf´ es poco menos que un delincuente, y que la ne- ıa cesita para encubrir sus cr´ ımenes. En ese caso, ¿por qu´ esas personas que no tienen nada que e ocultar no env´ todas sus cartas en tarjetas postales, para que todos leamos su contenido?, ıan o ¿por qu´ se molestan si alguien escucha sus conversaciones telef´nicas?. Defender el ´mbito e o a de lo privado es un derecho inalienable de la persona, que en mi opini´n debe prevalecer sobre o la obligaci´n que tienen los estados de perseguir a los delincuentes. D´mosle a los gobiernos o e poder para entrometerse en nuestras vidas, y acabar´n haci´ndolo, no les quepa duda. a e En el ojo del hurac´n se encuentra la red Echelon, que constituye una de las mayores a amenazas contra la libertad de toda la Historia de la Humanidad. B´sicamente se trata de a una red, creada por la NSA en 1980 —sus precursoras datan de 1952— en colaboraci´n o con Gran Breta˜a, Australia y Nueva Zelanda, para monitorizar pr´cticamente todas las n a comunicaciones electr´nicas —tel´fono, e-mail y fax principalmente— del planeta, y buscar o e de manera autom´tica ciertas palabras clave. La informaci´n obtenida ir´ a la NSA, que a o ıa luego podr´ a su vez brind´rsela a otros pa´ ıa a ıses. El pretexto es, nuevamente, la lucha contra el terrorismo, pero podr´ ser empleada tanto para espionaje industrial —como presuntamente ıa ha hecho durante a˜os el Gobierno Franc´s, poniendo a disposici´n de sus propias compa˜´ n e o nıas secretos robados a empresas extranjeras—, como para el control de aquellas personas que pueden representar amenazas pol´ ıticas a la estabilidad de la sociedad moderna. La Uni´n o Europea reconoci´ la existencia de Echelon, pero hasta la fecha nadie ha exigido a ning´n o u gobierno explicaci´n alguna; es m´s, parece que los planes de la U.E. a respecto pasan por o a el despliegue de su propia red de vigilancia electr´nica, llamada Enfopol, en la que lleva o trabajando unos doce a˜os. n La red Enfopol tendr´ caracter´ ıa ısticas tan aterradoras como la posesi´n de todas las claves o privadas de los ciudadanos europeos, la monitorizaci´n de tel´fonos, buzones de voz, faxes, o e chats y correo electr´nico, adem´s de la incorporaci´n de puertas traseras a los proveedores o a o de Internet. Existe un documento de la U.E. —ENFOPOL 112 10037/95—, firmado por todos y cada uno de los miembros de la Uni´n, en el que se aprueba la creaci´n de esta red. Sin o o embargo, ninguno de los estados miembros ha confirmado ni desmentido nada al respecto. Este secretismo es m´s que preocupante, pues deja a la supuesta democracia en que vivimos a maniatada frente a un asunto tan importante, impidiendo que se abra el imprescindible de- bate p´blico que deber´ anteceder a tan grave asunto. ¿Qu´ nos queda de la Libertad y la u ıa e Democracia si se nos ocultan asuntos tan importantes por nuestro bien?. Afortunadamente, el proyecto Enfopol se encuentra paralizado, pero, ¿por cu´nto tiempo? a No cabe duda de que la informaci´n se est´ convirtiendo en la mayor fuente de poder que o a ha conocido la Humanidad, y que la Criptograf´ es una herramienta esencial para su control. ıa Es necesario, pues, que los ciudadanos de a pie conozcan sus ventajas e inconvenientes, sus peligros y leyendas. Dicen que vivimos en Democracia pero, si a la gente no se le muestra toda la informaci´n relevante de manera honesta e imparcial, ¿C´mo va a poder decidir su futuro? o o Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 25. 1.3. N´meros Grandes u 25 Esta obra pretende poner su peque˜o granito de arena en ese sentido. n 1.3. N´ meros Grandes u Los algoritmos criptogr´ficos emplean claves con un elevado n´mero de bits, y usualmente a u se mide su calidad por la cantidad de esfuerzo que se necesita para romperlos. El tipo de ataque m´s simple es la fuerza bruta, que simplemente trata de ir probando una a una todas a las claves. Por ejemplo, el algoritmo DES tiene 256 posibles claves. ¿Cu´nto tiempo nos llevar´ a ıa probarlas todas si, pongamos por caso, dispusi´ramos de un computador capaz de hacer un e mill´n de operaciones por segundo? Tardar´ o ıamos. . . ¡m´s de 2200 a˜os! Pero ¿y si la clave del a n ejemplo anterior tuviera 128 bits? El tiempo requerido ser´ de 1024 a˜os. ıa n Es interesante dedicar un apartado a tratar de fijar en nuestra imaginaci´n la magnitud real o de este tipo de n´meros. En la tabla 1.1 podemos observar algunos valores que nos ayudar´n a u a comprender mejor la aut´ntica magnitud de muchos de los n´meros que veremos en este texto. e u Observ´ndola podremos apreciar que 1024 a˜os es aproximadamente cien billones de veces la a n edad del universo (y eso con un ordenador capaz de ejecutar el algoritmo de codificaci´n o completo un mill´n de veces por segundo). Esto nos deber´ disuadir de emplear mecanismos o ıa basados en la fuerza bruta para reventar claves de 128 bits. Para manejar la tabla con mayor rapidez, recordemos que un mill´n es aproximadamente o 220 ,y que un a˜o tiene m´s o menos 2 n a 24 segundos. Recorrer completamente un espacio de claves de, por ejemplo, 256 bits a raz´n de un mill´n por segundo supone 2256−44 = 2212 a˜os o o n de c´lculo. a 1.4. Acerca de la Terminolog´ Empleada ıa En muchos libros sobre Criptograf´ aparecen t´rminos como encriptar y desencriptar, ıa e adoptados con toda probabilidad del verbo anglosaj´n encrypt. El lector podr´ comprobar o a que este tipo de expresiones ha sido evitado en el presente texto, debido a la existencia de pa- labras perfectamente v´lidas que pertenecen al idioma castellano, como son cifrar-descifrar y a codificar-decodificar (o descodificar). La opini´n del autor es que s´lo deben emplearse t´rminos o o e for´neos cuando nuestro riqu´ a ısimo idioma carezca de expresiones adecuadas para representar las ideas en cuesti´n. Esta ultima es la situaci´n en la que se encuentra la palabra estegano- o ´ o graf´ hispanizaci´n del t´rmino ingl´s steganography —que a su vez proviene del t´ ıa, o e e ıtulo del libro ‘Steganographia’, escrito por Johannes Trithemius en 1518—. El lector podr´ advertir que en este texto aparece el t´rmino autentificaci´n, en lugar a e o de autenticaci´n. Quisiera hacer notar en este punto que ambos t´rminos son correctos y o e est´n recogidos en el Diccionario de la Real Academia, y que aqu´ empleo el primero de ellos a ı simplemente porque me gusta m´s que el otro. a Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 26. 26 1. Introducci´n o Valor N´mero u Probabilidad de ser fulminado por un rayo (por d´ıa) 1 entre 9.000.000.000 (233 ) Probabilidad de ganar el primer premio de la Loter´ Primi- ıa 1 entre 13.983.816 (223 ) tiva Espa˜ola n Probabilidad de ganar el primer premio de la Primitiva y 1 entre 256 caer fulminado por un rayo el mismo d´ıa Tiempo hasta la pr´xima glaciaci´n o o 14.000 (214 ) a˜os n Tiempo hasta que el Sol se extinga 10 9 (230 ) a˜ os n Edad del Planeta Tierra 109 (230 ) a˜os n Edad del Universo 1010 (234 ) a˜os n N´mero u de ´tomos en el Planeta Tierra a 1051 (2170 ) N´mero u de ´tomos en el Sol a 1057 (2189 ) N´mero u de ´tomos en la V´ L´ctea a ıa a 1067 (2223 ) N´mero u de ´tomos en el Universo (excluyendo materia os- a 1077 (2255 ) cura) Masa de la Tierra 5,9 × 1024 (282 ) Kg. Masa del Sol 2 × 1030 (2100 ) Kg. Masa estimada del Universo (excluyendo materia oscura) 1050 (2166 ) Kg. Volumen de la Tierra 1021 (269 ) m3 Volumen del Sol 1027 (289 ) m3 Volumen estimado del Universo 1082 (2272 ) m3 Cuadro 1.1: Algunos n´meros grandes u Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 27. 1.5. Notaci´n Algor´ o ıtmica 27 1.5. Notaci´n Algor´ o ıtmica En este libro se describen varios algoritmos de inter´s en Criptograf´ La notaci´n emplea- e ıa. o da en ellos es muy similar a la del lenguaje de programaci´n C, con objeto de que sea accesible o al mayor n´mero de personas posible. Si usted no conoce este lenguaje, siempre puede acudir u a cualquier tutorial b´sico para poder entender los algoritmos de este libro, y despu´s llevar a a e cabo sus propias implementaciones en cualquier otro lenguaje de programaci´n. Sin embargo, o aunque la notaci´n que uso es parecida, no es exactamente la misma: all´ donde el empleo de o ı un C puro pon´ en peligro la claridad en la descripci´n de los algoritmos, me he permitido ıa o peque˜as licencias. Tampoco he tenido en cuenta ni mucho menos la eficiencia de tiempo o n memoria para estos algoritmos, por lo que mi sincero consejo es que no intenten cortar y pegar para realizar sus propias implementaciones. Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 28. 28 1. Introducci´n o Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 29. Cap´ ıtulo 2 Conceptos B´sicos sobre a Criptograf´ ıa 2.1. Criptograf´ ıa Seg´n el Diccionario de la Real Academia, la palabra Criptograf´ proviene del griego u ıa κρυπτ oς, que significa oculto, y γρ´ ϕ ιν, que significa escritura, y su definici´n es: “Arte de ´ α o escribir con clave secreta o de un modo enigm´tico”. Obviamente la Criptograf´ hace a˜os que a ıa n dej´ de ser un arte para convertirse en una t´cnica, o m´s bien un conglomerado de t´cnicas, o e a e que tratan sobre la protecci´n —ocultamiento frente a observadores no autorizados— de la o informaci´n. Entre las disciplinas que engloba cabe destacar la Teor´ de la Informaci´n, la o ıa o Teor´ de N´meros —o Matem´tica Discreta, que estudia las propiedades de los n´meros ıa u a u enteros—, y la Complejidad Algor´ ıtmica. Existen dos trabajos fundamentales sobre los que se apoya pr´cticamente toda la teor´ a ıa criptogr´fica actual. Uno de ellos, desarrollado por Claude Shannon en sus art´ a ıculos “A Mat- hematical Theory of Communication” (1948) y “Communication Theory of Secrecy Systems” (1949), sienta las bases de la Teor´ de la Informaci´n y de la Criptograf´ moderna. El se- ıa o ıa gundo, publicado por Whitfield Diffie y Martin Hellman en 1976, se titulaba “New directions in Cryptography”, e introduc´ el concepto de Criptograf´ de Llave P´blica, abriendo enor- ıa ıa u memente el abanico de aplicaci´n de esta disciplina. o Conviene hacer notar que la palabra Criptograf´ s´lo hace referencia al uso de c´digos, ıa o o por lo que no engloba a las t´cnicas que se usan para romper dichos c´digos, conocidas en su e o conjunto como Criptoan´lisis. En cualquier caso ambas disciplinas est´n ´ a a ıntimamente ligadas; no olvidemos que cuando se dise˜a un sistema para cifrar informaci´n, hay que tener muy n o presente su posible criptoan´lisis, ya que en caso contrario podr´ a ıamos llevarnos desagradables sorpresas. Finalmente, el t´rmino Criptolog´ aunque no est´ recogido a´n en el Diccionario, se e ıa, a u emplea habitualmente para agrupar tanto la Criptograf´ como el Criptoan´lisis. ıa a Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 30. 30 2. Conceptos B´sicos sobre Criptograf´ a ıa 2.2. Criptosistema Definiremos un criptosistema como una qu´ ıntupla (M, C, K, E, D), donde: M representa el conjunto de todos los mensajes sin cifrar (lo que se denomina texto claro, o plaintext) que pueden ser enviados. C representa el conjunto de todos los posibles mensajes cifrados, o criptogramas. K representa el conjunto de claves que se pueden emplear en el criptosistema. E es el conjunto de transformaciones de cifrado o familia de funciones que se aplica a cada elemento de M para obtener un elemento de C. Existe una transformaci´n diferente o Ek para cada valor posible de la clave k. D es el conjunto de transformaciones de descifrado, an´logo a E. a Todo criptosistema ha de cumplir la siguiente condici´n: o Dk (Ek (m)) = m (2.1) es decir, que si tenemos un mensaje m, lo ciframos empleando la clave k y luego lo desciframos empleando la misma clave, obtenemos de nuevo el mensaje original m. Existen dos tipos fundamentales de criptosistemas: Criptosistemas sim´tricos o de clave privada. Son aquellos que emplean la misma clave e k tanto para cifrar como para descifrar. Presentan el inconveniente de que para ser empleados en comunicaciones la clave k debe estar tanto en el emisor como en el receptor, lo cual nos lleva preguntarnos c´mo transmitir la clave de forma segura. o Criptosistemas asim´tricos o de llave p´blica, que emplean una doble clave (kp , kP ). e u kp se conoce como clave privada y kP se conoce como clave p´blica. Una de ellas sirve u para la transformaci´n E de cifrado y la otra para la transformaci´n D de descifrado. En o o muchos casos son intercambiables, esto es, si empleamos una para cifrar la otra sirve para descifrar y viceversa. Estos criptosistemas deben cumplir adem´s que el conocimiento de a la clave p´blica kP no permita calcular la clave privada kp . Ofrecen un abanico superior u de posibilidades, pudiendo emplearse para establecer comunicaciones seguras por canales inseguros —puesto que unicamente viaja por el canal la clave p´blica, que s´lo sirve para ´ u o cifrar—, o para llevar a cabo autentificaciones. En la pr´ctica se emplea una combinaci´n de estos dos tipos de criptosistemas, puesto a o que los segundos presentan el inconveniente de ser computacionalmente mucho m´s costosos a que los primeros. En el mundo real se codifican los mensajes (largos) mediante algoritmos sim´tricos, que suelen ser muy eficientes, y luego se hace uso de la criptograf´ asim´trica para e ıa e codificar las claves sim´tricas (cortas). e Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 31. 2.3. Esteganograf´ ıa 31 Claves D´biles e En la inmensa mayor´ de los casos los conjuntos M y C definidos anteriormente son ıa iguales. Esto quiere decir que tanto los textos claros como los textos cifrados se representan empleando el mismo alfabeto —por ejemplo, cuando se usa el algoritmo DES, ambos son cadenas de 64 bits—. Por esta raz´n puede darse la posibilidad de que exista alg´n k ∈ K tal o u que Ek (M ) = M , lo cual ser´ catastr´fico para nuestros prop´sitos, puesto que el empleo de ıa o o esas claves dejar´ todos nuestros mensajes ¡sin codificar!. ıa Tambi´n puede darse el caso de que ciertas claves concretas generen textos cifrados de poca e calidad. Una posibilidad bastante com´n en ciertos algoritmos es que algunas claves tengan u la siguiente propiedad: Ek (Ek (M )) = M , lo cual quiere decir que basta con volver a codificar el criptograma para recuperar el texto claro original. Estas circunstancias podr´ llegar a ıan simplificar enormemente un intento de violar nuestro sistema, por lo que tambi´n habr´ que e a evitarlas a toda costa. La existencia de claves con estas caracter´ısticas, como es natural, depende en gran me- dida de las peculiaridades de cada algoritmo en concreto, y en muchos casos tambi´n de los e par´metros escogidos a la hora de aplicarlo. Llamaremos en general a las claves que no co- a difican correctamente los mensajes claves d´biles (weak keys en ingl´s). Normalmente en un e e buen criptosistema la cantidad de claves d´biles es cero o muy peque˜a en comparaci´n con el e n o n´mero total de claves posibles. No obstante, conviene conocer esta circunstancia para poder u evitar en la medida de lo posible sus consecuencias. 2.3. Esteganograf´ ıa La esteganograf´ —o empleo de canales subliminales— consiste en ocultar en el interior ıa de una informaci´n, aparentemente inocua, otro tipo de informaci´n (cifrada o no). Este o o m´todo ha cobrado bastante importancia ultimamente debido a que permite burlar diferentes e ´ sistemas de control. Supongamos que un disidente pol´ıtico quiere enviar un mensaje fuera de su pa´ burlando la censura. Si lo codifica, las autoridades jam´s permitir´n que el mensaje ıs, a a atraviese las fronteras independientemente de que puedan acceder a su contenido, mientras que si ese mismo mensaje viaja camuflado en el interior de una imagen digital para una inocente felicitaci´n navide˜a, tendr´ muchas m´s posibilidades de llegar a su destino. Como o n a a es de suponer, existen tantos mecanismos para llevar a cabo este camuflaje como nuestra imaginaci´n nos permita. o Menci´n especial merece el uso de la esteganograf´ para exportar informaci´n sin violar o ıa o las leyes restrictivas que, con respecto a la Criptograf´ fuerte, existen en algunos pa´ ıa ıses. El mensaje se env´ como texto claro, pero entremezclado con cantidades ingentes de basura. El ıa destinatario emplear´ t´cnicas esteganogr´ficas para separar la informaci´n util del resto. Esta a e a o ´ t´cnica se conoce como chaffing and winnowing, que vendr´ a traducirse como llenar de paja y e ıa separar el grano de la paja. En consecuencia, tenemos un mecanismo para transmitir informa- ci´n no cifrada, pero que s´lo puede ser reconstruida por el destinatario, con lo que en realidad o o Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 32. 32 2. Conceptos B´sicos sobre Criptograf´ a ıa hemos logrado protegerla sin usar en ning´n momento ning´n algoritmo de codificaci´n. Este u u o sistema surgi´ en marzo de 1998, propuesto por Ronald L. Rivest —uno de los creadores de o RSA—, como desaf´ a la pol´ ıo ıtica restrictiva del Gobierno de los EE.UU. con respecto a la Criptograf´ No deja de ser en cierto modo una curiosidad, debido a lo enormemente grandes ıa. que son los mensajes en comparaci´n con la cantidad de texto util que se puede incluir en o ´ ellos. 2.4. Criptoan´lisis a El criptoan´lisis consiste en comprometer la seguridad de un criptosistema. Esto se puede a hacer descifrando un mensaje sin conocer la llave, o bien obteniendo a partir de uno o m´s a criptogramas la clave que ha sido empleada en su codificaci´n. No se considera criptoan´lisis o a el descubrimiento de un algoritmo secreto de cifrado; hemos de suponer por el contrario que los algoritmos siempre son conocidos. En general el criptoan´lisis se suele llevar a cabo estudiando grandes cantidades de pares a mensaje-criptograma generados con la misma clave. El mecanismo que se emplee para obte- nerlos es indiferente, y puede ser resultado de escuchar un canal de comunicaciones, o de la posibilidad de que el objeto de nuestro ataque responda con un criptograma cuando le envie- mos un mensaje. Obviamente, cuanto mayor sea la cantidad de pares, m´s probabilidades de a ´xito tendr´ el criptoan´lisis. e a a Uno de los tipos de an´lisis m´s interesantes es el de texto claro escogido, que parte de que a a conocemos una serie de pares de textos claros —elegidos por nosotros— y sus criptogramas correspondientes. Esta situaci´n se suele dar cuando tenemos acceso al dispositivo de cifrado o y ´ste nos permite efectuar operaciones, pero no nos permite leer su clave —por ejemplo, las e tarjetas de los tel´fonos m´viles GSM—. El n´mero de pares necesarios para obtener la clave e o u desciende entonces significativamente. Cuando el sistema es d´bil, pueden ser suficientes unos e cientos de mensajes para obtener informaci´n que permita deducir la clave empleada. o Tambi´n podemos tratar de criptoanalizar un sistema aplicando el algoritmo de descifra- e do, con todas y cada una de las claves, a un mensaje codificado que poseemos y comprobar cu´les de las salidas que se obtienen tienen sentido como posible texto claro. Este m´todo a e y todos los que buscan exhaustivamente por el espacio de claves K, se denominan ataques por la fuerza bruta, y en muchos casos no suelen considerarse como aut´nticas t´cnicas de e e criptoan´lisis, reserv´ndose este t´rmino para aquellos mecanismos que explotan posibles de- a a e bilidades intr´ ınsecas en el algoritmo de cifrado. Se da por supuesto que el espacio de claves para cualquier criptosistema digno de inter´s ha de ser suficientemente grande como para e que un ataque por la fuerza bruta sea inviable. Hemos de tener en cuenta no obstante que la capacidad de c´lculo de las computadoras crece a gran velocidad, por lo que algoritmos a que hace unos a˜os eran resistentes frente a ataques por la fuerza bruta hoy pueden resultar n inseguros, como es el caso de DES. Sin embargo, existen longitudes de clave para las que resultar´ imposible a todas luces un ataque de este tipo. Por ejemplo, si dise˜´ramos una ıa na m´quina capaz de recorrer todas las combinaciones que pueden tomar 256 bits, cuyo consumo a Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 33. 2.5. Compromiso entre Criptosistema y Criptoan´lisis a 33 ınimo en cada cambio de estado1 , no habr´ energ´ suficiente en el Universo para que fuera m´ ıa ıa pudiera completar su trabajo. Un par de m´todos de criptoan´lisis que han dado interesantes resultados son el an´lisis e a a diferencial y el an´lisis lineal (ver secci´n 10.7, p´gina 130). El primero de ellos, partiendo de a o a pares de mensajes con diferencias m´ ınimas —usualmente de un bit—, estudia las variaciones que existen entre los mensajes cifrados correspondientes, tratando de identificar patrones co- munes. El segundo emplea operaciones XOR entre algunos bits del texto claro y algunos bits del texto cifrado, obteniendo finalmente un unico bit. Si realizamos esto con muchos pares de ´ texto claro-texto cifrado podemos obtener una probabilidad p en ese bit que calculamos. Si p 1 est´ suficientemente sesgada (no se aproxima a 2 ), tendremos la posibilidad de recuperar la a clave. Otro tipo de an´lisis, esta vez para los algoritmos asim´tricos, consistir´ en tratar de a e ıa deducir la llave privada a partir de la p´blica. Suelen ser t´cnicas anal´ u e ıticas que b´sicamente a intentan resolver los problemas de elevado coste computacional en los que se apoyan estos criptosistemas: factorizaci´n, logaritmos discretos, etc. Mientras estos problemas gen´ricos o e permanezcan sin soluci´n eficiente, podremos seguir confiando en estos algoritmos. o La Criptograf´ no s´lo se emplea para proteger informaci´n, tambi´n se utiliza para per- ıa o o e mitir su autentificaci´n, es decir, para identificar al autor de un mensaje e impedir que nadie o suplante su personalidad. En estos casos surge un nuevo tipo de criptoan´lisis que est´ enca- a a minado unicamente a permitir que elementos falsos pasen por buenos. Puede que ni siquiera ´ nos interese descifrar el mensaje original, sino simplemente poder sustituirlo por otro falso y que supere las pruebas de autentificaci´n. o Como se puede apreciar, la gran variedad de sistemas criptogr´ficos produce necesaria- a mente gran variedad de t´cnicas de criptoan´lisis, cada una de ellas adaptada a un algoritmo e a o familia de ellos. Con toda seguridad, cuando en el futuro aparezcan nuevos mecanismos de protecci´n de la informaci´n, surgir´n con ellos nuevos m´todos de criptoan´lisis. De hecho, la o o a e a investigaci´n en este campo es tan importante como el desarrollo de algoritmos criptogr´ficos, o a y esto es debido a que, mientras que la presencia de fallos en un sistema es posible demostrarla, su ausencia es por definici´n indemostrable. o 2.5. Compromiso entre Criptosistema y Criptoan´lisis a En la secci´n 3.5 (p´g. 44) veremos que pueden existir sistemas idealmente seguros, capaces o a de resistir cualquier ataque. Tambi´n veremos que estos sistemas en la pr´ctica carecen de e a inter´s, lo cual nos lleva a tener que adoptar un compromiso entre el coste del sistema — e tanto computacional como de almacenamiento, e incluso econ´mico— frente a su resistencia o a diferentes ataques criptogr´ficos. a La informaci´n posee un tiempo de vida, y pierde su valor transcurrido ´ste. Los datos sobre o e 1 Seg´n las Leyes de la Termodin´mica existe una cantidad m´ u a ınima de energ´ necesaria para poder modificar ıa el estado de un sistema. Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 34. 34 2. Conceptos B´sicos sobre Criptograf´ a ıa la estrategia de inversiones a largo plazo de una gran empresa, por ejemplo, tienen un mayor periodo de validez que la exclusiva period´ ıstica de una sentencia judicial que se va a hacer p´blica al d´ siguiente. Ser´ suficiente, pues, tener un sistema que garantice que el tiempo u ıa a que se puede tardar en comprometer su seguridad es mayor que el tiempo de vida de la propia informaci´n que ´ste alberga. Esto no suele ser f´cil, sobre todo porque no tardar´ lo mismo un o e a a oponente que disponga de una unica computadora de capacidad modesta, que otro que emplee ´ una red de supercomputadores. Por eso tambi´n ha de tenerse en cuenta si la informaci´n que e o queremos proteger vale m´s que el esfuerzo de criptoan´lisis que va a necesitar, porque entonces a a puede que no est´ segura. La seguridad de los criptosistemas se suele medir en t´rminos del e e n´mero de computadoras y del tiempo necesarios para romperlos, y a veces simplemente en u funci´n del dinero necesario para llevar a cabo esta tarea con garant´ de ´xito. o ıas e En cualquier caso hoy por hoy existen sistemas que son muy poco costosos —o incluso gratuitos, como algunas versiones de PGP—, y que nos garantizan un nivel de protecci´n o tal que toda la potencia de c´lculo que actualmente hay en el planeta ser´ insuficiente para a ıa romperlos. Tampoco conviene depositar excesiva confianza en el algoritmo de cifrado, puesto que en el proceso de protecci´n de la informaci´n existen otros puntos d´biles que deben ser tratados o o e con un cuidado exquisito. Por ejemplo, no tiene sentido emplear algoritmos con niveles de seguridad extremadamente elevados si luego escogemos contrase˜as (passwords) rid´ n ıculamente f´ciles de adivinar. Una pr´ctica muy extendida por desgracia es la de escoger palabras clave a a que contengan fechas, nombres de familiares, nombres de personajes o lugares de ficci´n, etc. o Son las primeras que un atacante avispado probar´ Tampoco es una pr´ctica recomendable ıa. a anotarlas o dec´ırselas a nadie, puesto que si la clave cae en malas manos, todo nuestro sistema queda comprometido, por buenos que sean los algoritmos empleados. 2.6. Seguridad El concepto de seguridad en la informaci´n es mucho m´s amplio que la simple protecci´n o a o de los datos a nivel l´gico. Para proporcionar una seguridad real hemos de tener en cuenta o m´ltiples factores, tanto internos como externos. En primer lugar habr´ que caracterizar el u ıa sistema que va a albergar la informaci´n para poder identificar las amenazas, y en este sentido o podr´ıamos hacer la siguiente subdivisi´n: o 1. Sistemas aislados. Son los que no est´n conectados a ning´n tipo de red. De unos a˜os a a u n esta parte se han convertido en minor´ debido al auge que ha experimentado Internet. ıa, 2. Sistemas interconectados. Hoy por hoy casi cualquier ordenador pertenece a alguna red, enviando y recogiendo informaci´n del exterior casi constantemente. Esto hace que las o redes de ordenadores sean cada d´ m´s complejas y supongan un peligro potencial que ıa a no puede en ning´n caso ser ignorado. u Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 35. 2.6. Seguridad 35 En cuanto a las cuestiones de seguridad que hemos de fijar podr´ ıamos clasificarlas de la siguiente forma: 1. Seguridad f´ısica. Englobaremos dentro de esta categor´ a todos los asuntos relacionados ıa con la salvaguarda de los soportes f´ ısicos de la informaci´n, m´s que de la informaci´n o a o propiamente dicha. En este nivel estar´ ıan, entre otras, las medidas contra incendios y sobrecargas el´ctricas, la prevenci´n de ataques terroristas, las pol´ e o ıticas de backup, etc. Tambi´n se suelen tener en cuenta dentro de este punto aspectos relacionados con la e restricci´n de acceso f´ o ısico a las computadoras unicamente a personas autorizadas. ´ 2. Seguridad de la informaci´n. En este apartado prestaremos atenci´n a la preservaci´n o o o de la informaci´n frente a observadores no autorizados. Para ello podemos emplear tan- o to criptograf´ sim´trica como asim´trica, estando la primera unicamente indicada en ıa e e ´ sistemas aislados, ya que si la emple´ramos en redes, al tener que transmitir la clave por a el canal de comunicaci´n, estar´ o ıamos asumiendo un riesgo excesivo. 3. Seguridad del canal de comunicaci´n. Los canales de comunicaci´n rara vez se consideran o o seguros. Debido a que en la mayor´ de los casos escapan a nuestro control, ya que ıa pertenecen a terceros, resulta imposible asegurarse totalmente de que no est´n siendo a escuchados o intervenidos. 4. Problemas de autentificaci´n. Debido a los problemas del canal de comunicaci´n, es o o necesario asegurarse de que la informaci´n que recibimos en la computadora viene de o quien realmente creemos que viene. Para esto se suele emplear criptograf´ asim´trica ıa e en conjunci´n con funciones resumen (ver secci´n 13.1, p´gina 157). o o a 5. Problemas de suplantaci´n. En las redes tenemos el problema a˜adido de que cualquier o n usuario autorizado puede acceder al sistema desde fuera, por lo que hemos de confiar en sistemas fiables para garantizar que los usuarios no est´n siendo suplantados por intrusos. a Normalmente se emplean mecanismos basados en password para conseguir esto. 6. No repudio. Cuando se recibe un mensaje no s´lo es necesario poder identificar de forma o un´ıvoca al remitente, sino que ´ste asuma todas las responsabilidades derivadas de la e informaci´n que haya podido enviar. En este sentido es fundamental impedir que el o emisor pueda repudiar un mensaje, es decir, negar su autor´ sobre ´l. ıa e Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 36. 36 2. Conceptos B´sicos sobre Criptograf´ a ıa Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa
  • 37. Parte II Fundamentos Te´ricos de la o Criptograf´ ıa Manuel J. Lucena L´pez o Criptograf´ y Seguridad en Computadores ıa