Áreas de la Criptología

Criptografía

Ciencia/Arte que estudia los procesos de cifrado y descifrado de los mensajes.

Criptoanálisis

Ciencia encargada del análisis de los mensajes cifrados para descubrir su clave y/o el texto original.

Criptología

Ciencia general que engloba a la Criptografía y al Criptoanálisis y que se encarga de todos los aspectos relativos a la protección de la información.

Nomenclátor

Primeros libros breves de códigos.

¿Qué Protege la Criptografía?

Protección de la información frente a su Desvelado, Alteración, Sustracción y Destrucción. Fases operativas a proteger: el Procesado, el Almacenamiento y la Transmisión de información. Recursos a proteger: el acceso y uso del hardware y software, los privilegios e identidades de los usuarios y máquinas, etc.

¿De Qué Depende la Seguridad de un Sistema Criptográfico?

Del secreto de la clave.

¿Cuál es el Objetivo de la Criptografía?

Transformar reversiblemente un mensaje de modo que el resultado sea indistinguible de una secuencia aleatoriamente distribuida.

¿Características del Cifrado Homofónico?

El espacio de salida es más grande que el de entrada (puede haber varios criptogramas que representan la misma letra).

Hipótesis de Kasiski: Fenómeno y Origen

Se basa en la repetición de bloques de letras en un criptograma. Las repeticiones que aparecen en un criptograma tienen dos orígenes:

  • A veces, las repeticiones se producen por casualidad y están distribuidas al azar en el criptograma.
  • Repeticiones presentes en el texto en claro que se alinean de la misma forma con la clave. La distribución de estas sigue una pauta reconocible.

Las falsas repeticiones se distribuyen al azar, pero las verdaderas se distribuyen según la misma pauta que es múltiplo de la longitud de la clave. Saber el número de letras de la clave es saber el número de alfabetos utilizados, permitiendo así descomponer el problema en la resolución de cifrados monoalfabéticos.

Criptosistema Ideal y Coincidencia de Letras

Si superponemos dos criptogramas de un criptosistema ideal que da una distribución de frecuencia uniforme, la posibilidad de que haya coincidencia en letras es la misma que en la extracción independiente de letras de las dos urnas.

Probabilidad de Extracción de Letras en un Alfabeto de n Elementos

Si tenemos dos urnas con letras de un alfabeto con n elementos, y la probabilidad de sacar cualquier letra es 1/n:

¿Probabilidad de sacar la letra R y luego la H?

Pr = 1/n; Ph = 1/n. Prh = Pr * Ph = (1/n)2.

¿Probabilidad de Sacar Dos Letras Iguales?

Para n = 26, P2 = Σi=A a Z (1/n)2 = 0.0385.

¿Por Qué la Función de Euler Siempre es Par en RSA?

Porque los números primos que se eligen al azar y en secreto en el RSA son impares, y como (p-1) y (q-1) son pares, su producto Φ(n) = (p-1)(q-1) siempre es par.

¿Por Qué el Exponente e en RSA Nunca es Par?

Porque tendría factores comunes con Φ(n), lo que impediría que e fuera coprimo con Φ(n), condición necesaria para que exista su inverso multiplicativo.

Seguridad de un Sistema Secreto

La seguridad de un sistema secreto depende del número de posibles claves. El límite máximo para la seguridad de un sistema de cifrado es el número de posibles funciones reversibles entre el espacio de textos en claro y el de criptogramas. (2n posibles mensajes -> 2n! posibles formas de relacionarlos). La seguridad real la determina la complejidad del ataque más eficaz que tenga éxito.

Sustitución Monoalfabética

Es una permutación del alfabeto, es decir, 27! posibilidades. El problema es saber cómo generarla cada vez que se utilice para cifrar y descifrar. C(K, M) = (a*m + b) mod |A|.

Métodos:

  • Colocar las letras distintas de la palabra clave y luego continuar con las letras no contenidas en ella, en orden alfabético.
  • Utilizar las letras en el orden en que van apareciendo dentro de un texto o frase clave y luego continuar con las ausentes.

Cifrados Homofónicos

La Cifra de Arnol

Este tipo de cifrado es un ejemplo de codificación con libro. El mensaje se escribe tipo “120.9.7”, que se refiere a la página 120, línea 9 y palabra 7.

Cifrado de Beale

Eran instrucciones cifradas indicando dónde se encontraba un tesoro. Los mensajes son secuencias de números. Solo se ha descifrado uno de tres.

Sustitución Polialfabética de Vigenère

Es una generalización de los sistemas de sustitución monoalfabética.

Inconvenientes del modo Key-Autokey:

  • Periodicidad de la clave: Parejas de mensaje y clave que se repiten, producen el mismo símbolo en el criptograma.
  • Estadísticas iguales: Tanto el mensaje en claro como la clave tienen la misma distribución de frecuencias de sus símbolos.
  • Palabras probables: Se prueba a ubicar en el criptograma palabras probables que den una clave que descifre el resto del mensaje.

Sistema Vernam

Es un sistema de sustitución polialfabética. Está diseñado para la transmisión telegráfica y proponía mezclar (XOR) el texto en claro/criptograma con una clave de igual longitud. Emplea una clave aleatoria y de longitud infinita. Las características de frecuencia de los símbolos, la dependencia intersimbólica y la periodicidad desaparecen. Si se reutiliza la clave, la seguridad del sistema se desvanece.

Number Stations

Son estaciones de onda corta (3-30 MHz) de origen desconocido. Usualmente emiten series de números o letras leídas por voces artificiales, tonos musicales o códigos Morse. Las evidencias apuntan a que son empleadas en espionaje.

Sustitución Poligráfica

Es un método de Sustitución Simbólica. Consiste en la sustitución de conjuntos de símbolos (n-gramas) por otros según una Matriz de Sustitución que actúa como clave. La clave del sistema es la matriz de sustitución. El caso más sencillo es sustituir digramas (dos letras) entre sí. Si n es el número de símbolos, el número de posibles digramas es n2; por lo que hay n2! posibles cambios.

Rejillas de Cardano

Consiste en:

  • Se emplea una rejilla cuadrada con un número n par de celdas.
  • Se trazan dos líneas, una vertical y otra horizontal, para dividir la rejilla en cuatro cuadrantes.
  • Se seleccionan y recortan n2/4 celdas del total de celdas en la rejilla. Dichas celdas se eligen de tal forma que estén distribuidas por cada uno de los cuatro cuadrantes y de modo que no se solapen con las de otro si la rejilla se rota.

Para el descifrado se coloca la rejilla sobre el criptograma y se leen las letras de izquierda a derecha y de arriba abajo. Una vez leídas, se gira a la izquierda un cuarto de vuelta y se vuelven a leer las letras expuestas. Este proceso se repite hasta que se completan los cuatro cuartos de giro.

Máquinas de Cifrar

M-209

Máquina que combina el texto original símbolo a símbolo con una secuencia pseudoaleatoria. La secuencia generada solo depende del estado inicial (semilla/clave). La clave es tan larga como el texto a cifrar. Las claves son: ci = (ki – mi) mod 27, mi = (ki – ci) mod 27. La secuencia ki la genera la máquina.

Modo de Uso:

  1. Se elige al azar una letra del abecedario (que se apunta).
  2. Se eligen al azar las posiciones iniciales de los seis rotores de la máquina (que se apuntan).
  3. Con la configuración anterior se cifra 12 veces la letra elegida en el primer paso y se apunta el resultado.
  4. Del resultado anterior se eligen en orden secuencial seis letras que aparezcan en los correspondientes rotores.
  5. Se pone a cero el contador de operaciones y se colocan los rotores en las posiciones obtenidas en la etapa anterior.
  6. Se comienza a cifrar o descifrar el mensaje.

Enigma

La secuencia cifrante se calculaba sin participación del texto que se estuviese cifrando/descifrando. La secuencia cifrante depende de los rotores y reflector utilizados, de su orden, de sus posiciones relativas y de las conexiones en el clavijero. El componente principal son rotores con contactos eléctricos en ambas caras. El cableado entre ambos conjuntos de contactos representa una sustitución ordenada de letras (permutación). Los rotores avanzan una posición cambiando la sustitución que implementan (polialfabetismo). No usar la misma clave para más de 250 caracteres.

Tipos de Criptoanálisis

Ciphertext-only (Solo Criptograma)

El analista solo tiene acceso a una colección limitada de criptogramas.

Known-plaintext (Texto Claro Conocido)

El atacante dispone de un conjunto de criptogramas y de sus correspondientes textos en claro.

Chosen-plaintext (Texto Claro Elegido)

El analista puede obtener los textos en claro correspondientes a un conjunto arbitrario de texto en claro elegidos por él.

Adaptive Chosen-plaintext (Texto Claro Elegido Adaptativo)

El analista puede obtener los textos en claro correspondientes a un conjunto arbitrario de texto en claro elegidos por él y también permite al analista elegir subsecuentes textos en claro basándose en la información obtenida en cifrados anteriores.

Related-key Attack (Ataque de Clave Relacionada)

El atacante puede obtener criptogramas cifrados con dos claves diferentes. Las claves son desconocidas, pero la relación que hay entre ellas es conocida y elegida.

Criptoanálisis de Cifrados por Sustitución

Procedimientos:

  • Análisis de las frecuencias de aparición de los símbolos contenidos en el criptograma y compararlos con los del lenguaje natural.
  • Búsqueda de palabras o patrones probables que transforman un escenario en el que solo se cuenta con el criptograma, en otro en el que también se conoce el texto en claro correspondiente.
  • Resolución de sistemas de ecuaciones para cifrados basados en transformaciones lineales o linealizables. (m1*k1+k0 (mod |A|) = c1, m2*k1+k0 (mod |A|) = c2).

Análisis de Frecuencias

  1. Identificar los símbolos que aparecen.
  2. Determinar la frecuencia de cada uno de ellos.
  3. Identificar los distintos pares de símbolos (digramas) que aparecen.
  4. Determinar las frecuencias de aparición de cada digrama.
  5. Establecer cuál es la frecuencia de las letras anteriores y posteriores.
  6. Identificar y contar los trigramas que aparecen.
  7. Identificar y determinar la frecuencia de las palabras de uno, dos, tres y cuatro letras.

Método Kasiski

Una sustitución monoalfabética va a cambiar qué letras aparecen, pero no cambia la frecuencia con la que lo hacen. En una sustitución polialfabética se dispersan las frecuencias de aparición entre varios números de alfabetos. El ataque más eficiente contra una cifra polialfabética es descomponerla en n problemas monoalfabéticos.

Índice de Coincidencia

Mide cuánto se desvía la distribución de símbolos de criptograma de una distribución al azar. Permite distinguir si lo que tengo es una fuente aleatoria o no. Estima el número de alfabetos usados en cifrado polialfabético. Útil para descartar sustituciones monoalfabéticas. La probabilidad de que dos letras elegidas al azar en un texto sean la misma es: IC = Σi=A a Z fi(fi-1) / N(N-1)

Estimación del Índice de Coincidencia

Si la frecuencia de las letras es fi:

  • El número de pares de letras iguales que pueden formarse, independientemente de la letra que se trate es: P2 = 1/2 Σi=A hasta Z fi*(fi-1).
  • El número de posibles pares que supondrían el mensaje en claro sería: N2total = 1/2 * N(N-1).

El índice de coincidencia es 0.0385 para una distribución uniforme de 26 letras y es 0.0749 para una sustitución monoalfabética en castellano.

Solución de Kerckhoffs

Utiliza los valores K y Kp para indicar cuándo la superposición de dos criptogramas da lugar a dos textos idénticamente cifrados:

  • Dos cifrados monoalfabéticos darán Kp.
  • Dos cifrados polialfabéticos darán Kp si están cifrados con la misma clave y, además, están bien alineados.
  • Si tienen distinta clave o el alineamiento no es perfecto, ambos casos darán K.

Test de Kullback

Determina cuándo un conteo de frecuencias refleja la presencia de un cifrado mono o polialfabético. Puede utilizarse para determinar si el método de Kasiski da resultados correctos o no.

Chi-cuadrado (χ²) Test

Se emplea para comparar dos distribuciones de frecuencias. Permite decir cuándo dos mensajes han sido cifrados con la misma clave, o si se trata de un cifrado mono o polialfabético. El método Kasiski permite en este test extraer qué columnas han sido cifradas con la misma clave.

Tipos de Cifradores

Cifradores de Flujo

Cifran el mensaje símbolo a símbolo o bit a bit de modo secuencial. Cada cifrado es independiente de los demás cifrados.

Cifradores de Bloque

Son sistemas que tratan un bloque de texto en claro cada vez, y dan como resultado un bloque de texto cifrado. La operación de cifrado dentro de un bloque es en paralelo.

Objetivos de Diseño de Cifradores Criptográficos (Shannon)

Dificultar el criptoanálisis basado en el análisis estadístico del criptograma o del posible lenguaje del texto en claro. En un cifrado ideal, toda la estadística del criptograma es independiente de las propiedades del mensaje y de la clave utilizada.

Método de Shannon

Diseñar los cifrados de modo que la confusión y la difusión sean máximas.

Difusión

Capacidad del algoritmo de no dar pistas sobre la clave correcta. Las propiedades estadísticas del texto deben disiparse, distribuirse y mezclarse para dar las estadísticas de todo el criptograma. Cada símbolo del texto en claro debe afectar el valor de todos los símbolos del criptograma. Se consigue con abundantes permutaciones de bits.

Confusión

Capacidad de dispersar sobre los bits de salida cualquier peculiaridad de los bits de entrada. Hace que la relación entre la estadística del criptograma y el valor de la clave de cifrado sea tan compleja como sea posible. Se consigue empleando procesos de sustitución.

Cifrado de Sustitución (en Bloques)

Un cifrador en bloques trabaja sobre conjuntos de n bits consecutivos de texto en claro. Hay 2n diferentes posibles bloques de texto en claro. Para que el algoritmo sea reversible y no singular, el cifrado y descifrado de cada uno de ellos debe dar un solo bloque. Si se usan bloques grandes, su realización es ineficaz y su velocidad de proceso baja.

Cifrado Feistel

Feistel propuso que al usar cifrados que alternasen las sustituciones y las permutaciones (Redes S-P). Las Redes Sustitución-Permutación son una aplicación práctica de los conceptos de Shannon sobre la mezcla de Confusión y Difusión. Se necesitan al menos tres iteraciones en la cadena de Feistel para que todos los bits de entrada en una cadena de Feistel participen en la salida. El cifrado es igual que el descifrado, lo único que cambian son las claves. Solo asegura que es reversible; la seguridad no es su característica.

La seguridad en Feistel (parámetros) depende de:

  • Tamaño del bloque: Grandes bloques implican más difusión, mayor seguridad y menor velocidad de proceso.
  • Tamaño de la clave: Claves largas implican mayor seguridad, ya que son más difíciles de adivinar, pero también son más difíciles de generar y manejar.
  • Número de etapas: Más iteraciones implican más seguridad.
  • Algoritmo de claves intermedias: Cuanto mayor sea su complejidad, mayor resistencia al criptoanálisis.
  • Función de Etapa: Cuanto más compleja, mayor resistencia al criptoanálisis, pero el sistema baja en eficiencia.

Esquema General del DES

Tiene tres fases:

  1. Permutación inicial que no tiene implicaciones criptográficas.
  2. 16 etapas en las que se aplica la misma función de etapa (F) basada en permutaciones y sustituciones, y dependiente de una clave de etapa Ki.
  3. Permutación final inversa de la inicial.

Sigue el diseño de las cadenas de Feistel. La función de etapa combina un bloque expandido de datos con la clave intermedia de etapa. Es la fuente de toda resistencia criptográfica del DES.

Cajas de Sustitución (S-Boxes)

Hay ocho cajas diferentes (tablas de sustitución). Cada una tiene 6 bits de entrada y 4 de salida. Los elementos de la tabla son dígitos hexadecimales. Los dos bits extremos determinan la fila dentro de la caja y los cuatro bits centrales determinan la columna. 32 sustituciones alfabéticas -> 16 letras.

Efecto Avalancha

Un pequeño cambio en el texto en claro o en la clave debe producir un cambio significativo e imprevisible en el criptograma. Si se cambia un bit en la entrada o en la clave, todos los bits del criptograma deben verse afectados y cambiarán con una probabilidad de 1/2.

Modos de Operación

Electronic Codebook (ECB)

Se usa para el cifrado de mensajes de tamaño inferior al del bloque. Se tiene un mensaje en claro y se divide en bloques de 64 bits. A cada valor de entrada le corresponde un valor de salida. No favorece la dispersión sobre todo el criptograma. Mismos textos en claro dan los mismos criptogramas. Los errores solo afectan al bloque en el que se producen. Se puede cifrar en paralelo.

Cipher Block Chaining (CBC)

Modo de encadenamiento con un estado interno del tamaño del bloque a procesar. A la entrada del cifrador se le entrega el XOR del texto en claro y el criptograma anterior. Para el primer bloque, el estado interno contiene un valor de inicialización. El mismo texto en claro produce diferentes criptogramas según la posición del mensaje. El valor inicial puede ser conocido y puede formar parte de la clave. Es el modo de cifrar mensajes con más de un bloque.

Propiedades:

  • No se puede cifrar en paralelo porque necesitamos conocer el bloque anterior.
  • Se puede descifrar en paralelo porque se tienen todos los estados.
  • Si se cambia uno de los bloques del texto en claro, se tienen que recifrar todos los bloques a partir de ese cambio hasta el final.
  • Si ha habido un error, afecta en el descifrado que ese bloque y el siguiente se van a descifrar mal.

Cipher Feedback (CFB) y Output Feedback (OFB)

Permiten emplear un cifrador de bloque como si fuese un cifrador de flujo que permite cifrar en tiempo real. Ambos se pueden ajustar para generar bloques de 1 a n bits menores que el bloque del cifrador. Un mismo texto en claro da diferentes criptogramas según su posición en el mensaje. Elimina la necesidad de completar la longitud del mensaje a un número entero de bloques. La entrada al cifrador es un registro de desplazamiento que en la primera operación contiene el valor de inicialización.

Propiedades del Cipher Feedback (CFB):

  • No se puede cifrar en paralelo porque se necesitan los 8 bits anteriores.
  • Sí se puede descifrar en paralelo porque se toman los 8 bits anteriores del cifrado.
  • Si se cambia un bit, se cambian los bits siguientes y si se produce un error al descifrar, afecta a los 8 siguientes bloques.

Propiedades del Output Feedback (OFB):

  • Se puede precalcular la secuencia cifrante.
  • Genera secuencia pseudoaleatoria (independiente de cifrar o descifrar).

Doble DES

Es clasificado. Claves de 56 bits. Aplicando el principio de cifrado producto, se puede cifrar dos veces con claves distintas. No existe ninguna tercera clave que pueda hacer lo mismo que K2 y K3.

Triple DES (3DES)

Puede emplear dos claves (112 bits) o tres claves (168 bits). Con dos claves, el ataque por coincidencia intermedia requiere 256 cifrados y textos en claro. Con tres claves hay una seguridad equivalente máxima de 120 bits, prácticamente equivalente a la de dos claves.

Ataque por Coincidencia Intermedia

Ciframos el texto en claro con cada una de las 256 claves K1 y almacenamos el resultado en una tabla ordenada. Desciframos el criptograma asociado al texto en claro utilizando 256 claves K2 y cada resultado lo buscamos en la tabla. Si se encuentra, probamos las claves K1 y K2 con el doble DES y el par criptograma-texto claro, y si se cumple la ecuación, se dan por buenas las anteriores claves; en otro caso, continuamos con el descifrado.

IDEA (International Data Encryption Algorithm)

No es una cadena de Feistel porque se divide en cuatro partes y se modifica todo desde el principio (Feistel se divide en dos y se modifica una sola parte). Es reversible ya que la secuencia de cálculo es por construcción reversible, reversible porque de abajo arriba y de arriba abajo es lo mismo. Se utilizan claves distintas en el descifrado, pues hay que hacer los pasos inversos. La longitud del bloque es suficientemente grande para los ataques estadísticos y la longitud de la clave es suficientemente larga para evitar los ataques por fuerza bruta.

Generación del Estado Interno

  • Cifrar el bloque de 64 ceros utilizando los vectores P y S, y reemplazar P1 y P2 con lo que se obtenga.
  • Lo anterior se cifra con los valores actuales de P y S, y reemplaza P3 y P4 con el resultado, etc.
  • Se continúa este proceso hasta que se da valor a las dos últimas celdas de S4, es decir, a S4,254 y S4,255.
  • El proceso completo requiere 521 ejecuciones del algoritmo para generar los vectores P y S partiendo del punto cero.
  • Es un inconveniente cuando la clave cambia frecuentemente.

Cifrado y Descifrado con Blowfish

Emplea dos operaciones: Suma mod 232 y el OR exclusivo bit a bit. No conmutan entre sí estas operaciones. Emplea la cadena de Feistel con 16 etapas y un intercambio final bajo el control de dos claves. La función de etapa no depende de las claves intermedias y es siempre la misma. El descifrado utiliza la misma estructura que en el cifrado y las mismas claves intermedias. El orden de las claves intermedias es el contrario que en el cifrado. El descifrado es la secuencia de cifrado ejecutada al revés.

Ciphertext Stealing (CTS)

Método de uso de un cifrador de bloques. Permite procesar mensajes cuya longitud no es divisible por la longitud del bloque, y sin que se dé la extensión del criptograma. Alteran el tratamiento de los dos últimos bloques del mensaje. Dan lugar al cambio en el orden de transmisión de los dos últimos bloques del criptograma. El resultado es un criptograma con la misma longitud del mensaje original. El procesado del resto de bloques queda inalterado.

AES (Advanced Encryption Standard)

Se basa en una red de Sustitución-Permutación. No utiliza una cadena de Feistel. Puede tener bloques múltiplos de 32 bits, entre 128-256 bits. Opera sobre un estado interno de 4×4 bytes. Para el descifrado se emplean transformaciones inversas con la misma clave.

Cifradores de Flujo

Cifradores que actúan sobre los símbolos individuales a través de la transformación criptográfica que cambia, generando tantas secuencias cifrantes para cifrar o descifrar lo que queramos. Tienen una limitada propagación de errores o no la tienen.

Cifradores Sincrónicos

Aquellos cifradores en los que la secuencia cifrante se genera independientemente del texto en claro o del criptograma (cuando la función de salida h() = suma de OR, se denominan cifradores aditivos).

Cifradores Autosincronizantes

Conocemos el estado interno en los últimos bytes. Son aquellos en los que la secuencia cifrante es generada en función de la clave K y de la realimentación de un conjunto finito de símbolos previos del criptograma. Se recuperan de las interrupciones y pérdidas, ya que tienen una memoria finita. Cada símbolo del texto en claro afecta el cifrado de todos los que le siguen. Son más resistentes que los sincrónicos.

Funciones Hash

No cifran. Son funciones fáciles de calcular en un sentido e imposibles de calcular en el sentido contrario. Es una función capaz de procesar cualquier argumento de entrada. Una función hash comprime un vector de longitud arbitraria en un vector de longitud fija. Ubica uniformemente en la tabla los índices de las claves. Compara la identidad de dos secuencias sin tener que comparar elemento a elemento. Las colisiones son pares de entradas diferentes que dan el mismo valor del hash.

Funciones Resistentes a Colisiones (Condiciones para una Función Hash Correcta):

  • La descripción de la función H() debe ser pública y no requiere ninguna información secreta.
  • El argumento x (mensaje) puede ser de longitud arbitraria y el resultado, H(x), debe ser de longitud fija con n bits (n > 160).
  • Dados H() y su argumento x, el cálculo de H(x) debe ser fácil.
  • La función debe ser de Sentido Único.
  • Debe ser resistente a colisiones, esto es, encontrar dos mensajes distintos x y x’ que tengan el mismo valor hash H(x) = H(x’) debe ser difícil.

Ataques a una Función Hash

Ataque Directo

Consiste en invertir la función H() obteniendo H-1(), que es una función multivaluada (para una entrada da varias posibles salidas).

Ataque Progresivo

Siempre se puede sustituir xj por x’j de manera que ambas cadenas se reúnan más adelante.

Ataque Regresivo

Dado Hi, consiste en producir un par (X’i, Hi-1) tal que h(Xi, Hi-1) = Hi. Son ataques por coincidencia intermedia.

Ataque por Punto Fijo

Aquellos basados en la existencia de puntos h(Xi, Hi-1) = Hi-1. La igualdad se puede dar después de R iteraciones de la función.

Resistencia a Encontrar Colisiones

2(n/2)

Resistencia a Encontrar la Inversa (Preimagen)

2(n-1)

Construcción de una Función Hash

Las funciones hash se basan en una función de compresión con entrada de longitud fija, que procesa bloques sucesivos del mensaje. El mensaje se divide en bloques y se procesa. Siempre se especifica un procedimiento de extensión.

Reglas de Extensión de Mensajes

  • Completar el bloque con ceros.
  • Un uno seguido de ceros, tantos como sean necesarios.
  • Un uno seguido de z ceros, excepto en los r bits finales donde se guarda la representación binaria de la longitud en bits del mensaje original.

Si no se verifica la regla de extensión, el hash falla.

Identification Friend or Foe (IFF)

Identificación criptográfica diseñada para el mando y control de ejércitos. Es un sistema que permite, mediante sistemas de interrogación, distinguir a tropas amigas, determinar su posición y distancia a la que están del interrogador. Solo puede identificar vehículos amigos, pero no hostiles.

MAC: Códigos de Autenticación de Mensajes

Mecanismos de autenticación basados en clave simétrica. La clave secreta debe estar involucrada al principio y al final del cálculo del MAC. Se recomienda que el cálculo de la función de etapa dependa de la clave secreta.

MD4

Si combinas la entrada con la salida, se vuelve no reversible.

Función de Compresión:

Cada etapa consta de tres etapas: F, G y H. La función de etapa tiene la misma estructura en los tres casos; las tres utilizan los mismos 16 bloques de mensaje, pero en órdenes distintos. Las rotaciones son distintas. Cada una de ellas (F, G, H) es una combinación no lineal de las variables de encadenamiento, el bloque de texto y ciertas constantes públicas. El resultado de las tres etapas se suma al valor de entrada de las variables de encadenamiento.

MD5

Función de Compresión:

La etapa consta de cuatro etapas internas: G, G, H e I. Las tres primeras etapas internas utilizan combinaciones no lineales análogas a las de MD4. Se emplean 16 constantes públicas. El resultado de las tres etapas se suma al valor de entrada de las variables de encadenamiento y este es el origen de su sentido único.

Función Hash SHA

Produce 160 bits de salida. Elimina las constantes públicas de la definición de las funciones combinatorias. Incluye nuevas constantes Ki a las que no se le ha dado ninguna explicación.

Paradigma Davis-Meyer

Utilizado en funciones hash para conseguir la irreversibilidad de la función de compresión. Consiste en combinar reversiblemente un valor con el que se obtiene a través de la función reversible que sea suficientemente compleja y no lineal. Los bits a digerir actúan como clave seleccionando la función no lineal. La resistencia frente a la obtención de colisiones depende de la confusión que aporte la función no lineal empleada.

Paradigma Merkle-Damgård

Su objetivo es obtener una función que pueda procesar mensajes de cualquier longitud. Consiste en la iteración de una función de compresión cuya entrada es más grande que su salida. La salida depende del tamaño de la variable de encadenamiento.

Cryptographic Sponges (Funciones Esponja Criptográficas)

Absorción:

Los bloques del mensaje de entrada se mezclan, mediante XOR (símbolo), con parte del estado interno que luego es transformado con la aplicación de la función f.

Estrujado:

Los bloques de salida se extraen de parte del estado interno que luego es transformado con la aplicación de la función f.

Teorema de Fermat

Si p es primo y a un entero positivo no divisible por p, entonces ap-1 ≡ 1 mod p.

Teorema de Euler

Para cualquier a y n que son Primos Relativos, se cumple: aΦ(n) ≡ 1 mod n.

Distribución de Claves en Criptografía Asimétrica

En criptografía simétrica, ambas partes deben conocer la misma clave secreta. La clave tiene que ser distribuida o intercambiada antes de ser usada. El sistema más aceptado es la pre-distribución de claves, es decir, su instalación en los nodos antes de ser desplegados.

Criptografía Asimétrica

La criptografía asimétrica resuelve el problema de la distribución previa y secreta de las claves de cifrado. Son sistemas criptográficos en los que las operaciones de cifrado Ep(M) y descifrado Dp(C) son distintas. Al ser operaciones distintas, estas se realizan bajo control de dos claves diferentes (Pública y Privada). La existencia de dos claves permite guardar una de ellas y hacerla equivalente a una identidad digital. La clave Pública se hace pública mientras que la clave de descifrado privada se mantiene secreta. El cifrado asimétrico elimina la necesidad de un secreto compartido entre los comunicantes.

Criptosistema RSA

Se basa en la diferente complejidad computacional entre multiplicar números primos y factorizar números compuestos. Se eligen al azar y en secreto dos números primos (p y q). Sus longitudes son iguales (si la clave es de 2048 bits, significa que se tienen dos números de 1024 bits). La distancia entre esos dos números primos no debe ser menor de 2112 para evitar roturas del sistema.

Cifrado:

El mensaje puede ser cualquier resto del módulo n, es decir, cualquier número M contenido en [2, n-1], y su criptograma C = Me mod n.

Descifrado:

El mensaje M se recupera, a partir del criptograma C, aplicando la operación inversa: M = Cd mod n.

Criptosistema ElGamal

Sistema de cifrado homomórfico y maleable por diseño, no es adecuado para la transmisión de datos. Emplea un número primo p, que define un grupo multiplicativo Zp sobre el que se realizan todas las operaciones.

Cifrado:

A envía un mensaje M a B. A elige un número aleatorio v y calcula αv mod p. A toma la clave pública de B, Yb, y calcula (Yb)v mod p y luego calcula M*(Yb)v mod p. A envía a B el par C = (αv mod p, M*(Yb)v mod p).

Descifrado:

B recibe un mensaje C de A. B toma el primer elemento del criptograma y usando la clave privada calcula (αv)uB mod p. B obtiene el mensaje original dividiendo M*(Yb)v mod p / (αv)uB mod p = M.

¿En Qué se Basa la Seguridad de RSA?

La seguridad del RSA reside en el coste computacional de factorizar n (n = p*q), lo cual es computacionalmente imposible actualmente. n es difícil de factorizar y fácil de generar.

¿Qué es Φ(n)?

Número de restos que no comparten factor en común con el módulo (primos relativos).

¿Por Qué en ElGamal no se Puede Saber si el Criptograma es Aleatorio o No?

Porque lo que se obtiene es aleatorio.

¿ElGamal es Maleable?

Sí, porque se pueden hacer operaciones en el texto cifrado que afecten al texto en claro.

¿Se Puede Negociar en Público una Clave Secreta?

Sí, con el intercambio de claves Diffie-Hellman se acuerda un valor de α y q (números públicos donde q es un número primo y α es una raíz primitiva de q).

¿Por Qué Nadie se Entera de Nada en Diffie-Hellman si es Público?

Porque no pueden conocer el valor de Xa y Xb (dos números secretos). Habría que resolver el problema del logaritmo discreto, lo cual no se puede con la información que se envían emisor y receptor.

¿Tres Estrategias para Atacar Criptosistemas Mixtos?

  • A través del generador de clave (interceptando el correo y probando claves descifrando).
  • Deducir la clave pública de la privada.
  • Si el cifrador simétrico es débil, realizar un ataque de fuerza bruta.

¿De Qué Depende la Confidencialidad?

De la longitud efectiva de la clave, de su almacenamiento, de su modo de uso, del número de bytes que se han cifrado.

¿De Qué Depende la Autenticación?

De la calidad criptográfica de los algoritmos empleados, de la longitud efectiva de las claves y su almacenamiento, de su modo de uso, del número de bytes de salida de las funciones hash.

Diagramas de Autenticación

  • Si el hash origen y el hash actual son iguales, no significa que los hayan modificado, ya que por el camino se pueden alterar las funciones hash, pues es pública.
  • Para evitar ataques, se da formato a las claves hash.

¿Qué Pasa si Dos Hashes no son Iguales?

O bien que el documento haya sido alterado, o que el bloque de firmas no corresponde con ese documento.

¿Cómo se Ataca un Sistema de Firma Digital?

Buscando colisiones en la función hash o atacando el criptosistema asimétrico (de la clave pública se deduce la privada).

Intercambio de Claves Diffie-Hellman

Se basan en lo fácil que es calcular exponenciales y lo difícil que es calcular logaritmos discretos. Permite que dos usuarios generen en secreto una clave simétrica en presencia de sus atacantes. Se basa en dos números públicos (q, α). El número primo q y un entero α que es una raíz primitiva de q.

Criptosistemas Mixtos

Combinación de algoritmo simétrico y asimétrico. Sirve para cifrar archivos. Protegido por el sistema simétrico. La versión simétrica aporta su mayor velocidad de cifrado, así como su economía computacional, y la versión asimétrica transmite el cifrado al destinatario.

¿Cuál es el Espacio de Claves de una Transposición Columnar con n Columnas?

Con n columnas hay n! formas distintas de intercambiarlas, luego el espacio de claves tiene n! posibilidades.

¿Es Más Seguro Componer Dos Transposiciones Columnares que Hacer Solo una con una Clave Más Larga?

Dos transposiciones no necesariamente son más seguras. Una transposición de columnas es una permutación, por lo que dos transposiciones también serán una permutación. En este segundo caso, la permutación usaría un mayor número de columnas, pero el algoritmo de ataque no sería necesariamente mucho más complejo.

¿Cuáles son las Operaciones Básicas sobre las que se Construyen Todos los Sistemas de Cifrado Clásico?

Sustitución de unos símbolos del mensaje por otros y transposición de los símbolos del mensaje, en ambos casos, con una regla secreta solo conocida por remitente y destinatario.

¿Cuál es la Esencia de Cualquier Propuesta Criptográfica?

La criptografía es la modificación intencionada y secreta de las reglas de codificación de un mensaje, de modo que solo el que conozca las nuevas reglas podrá leerlo.

¿Por Qué se Puede Afirmar que la Máquina Enigma Siempre Implementa una Permutación de 26 Letras?

Cualquier composición de permutaciones es siempre una permutación, y los rotores empleados por la máquina Enigma eran permutaciones concretas de 26 letras o señales eléctricas.

¿Cuáles son las Características de la Clave en Cifrado Vernam?

La clave en un cifrado Vernam debe ser tan larga como el mensaje, debe utilizarse solo una vez y su origen tiene que ser esencialmente aleatorio, al azar y uniformemente distribuido entre todos los posibles símbolos.

Observación y Efectos del Método Kasiski

Kasiski se planteó que la repetición de secuencias dentro de un criptograma puede tener dos orígenes:

  1. Que sean meras casualidades.
  2. Que se deban a repeticiones presentes en el texto en claro que se han alineado del mismo modo con la clave de cifrado.

En el primer caso, las repeticiones serán de pocos caracteres y estarán distribuidas uniformemente en el criptograma; pero, en el segundo caso, las repeticiones podrán ser significativamente más largas y su distancia relativa será un múltiplo entero de la longitud de la clave utilizada.

¿Qué Estima el Índice de Coincidencia de Freeman?

El índice de coincidencia mide la desviación cuadrática (varianza) de una distribución de frecuencias.

Esencia del Paradigma Davis-Meyer para la Irreversibilidad de Funciones Hash

El paradigma de Davis-Meyer consigue la no invertibilidad haciendo que la salida de la función de compresión sea el resultado de una operación XOR entre la salida y la entrada de una función muy compleja gobernada por el bloque de texto, jugando el papel de la clave. La operación compleja suele ser un cifrador simétrico reversible.

¿De Qué Manera las Funciones Hash Procesan Mensajes de Cualquier Longitud?

El paradigma de Merkle-Damgård propone construir una función hash iterando el número de veces que haga falta una función de compresión con más bits de entrada que de salida. La diferencia en el número de los bits de entrada y los de salida son los bits de mensaje que se procesan en cada iteración.

Además de la Definición Concreta de la Función Hash, ¿Qué Otro Aspecto Relacionado con su Uso es Parte Esencial de su Definición?

La regla de extensión del mensaje. Esta regla indica cómo debe completarse el último bloque del mensaje a procesar para poder ser “digerido” por la última iteración de la función hash.

¿Qué Dos Elementos Componen un Esquema de Firma Digital?

Los componentes de un sistema de firma digital son dos:

  1. Un criptosistema asimétrico que permita publicar una clave mientras se mantiene su contraria en secreto.
  2. Una función hash y su regla de extensión que permita procesar mensajes de cualquier longitud y naturaleza.

¿Qué Mide el Efecto Avalancha?

Mide cómo se propaga el cambio de un simple bit, de la entrada o de la clave, sobre los resultados que se obtienen a la salida de cada una de las etapas en un cifrador iterado. Es una manera de medir con qué velocidad se obtiene el deseado efecto de máxima difusión en el cifrador estudiado.

¿Cuál es la Resistencia Criptográfica Máxima de un Cifrado Doble DES?

Debido a la existencia de los ataques por coincidencia intermedia, la resistencia del doble DES no son los 112 bits que indica la longitud de su clave, sino, como mucho, 257 operaciones DES, el almacenamiento intermedio de una tabla ordenada, según la clave, con 256 resultados de 64 bits.

¿Cuál es la Novedad del Algoritmo RC5?

El algoritmo RC5 fue el primero en utilizar operaciones de rotación circular dependientes de los datos que se procesan.

¿En Qué Asimetría Computacional se Basa la Seguridad del RSA?

La seguridad del algoritmo RSA se basa en la diferente complejidad que hay entre:

  1. Multiplicar dos números primos elegidos al azar y en secreto para construir el módulo de la aritmética a emplear.
  2. Factorizar ese mismo número para conocer sus factores.

¿Qué es un Nomenclátor y Cuándo Aparecieron?

Un libro de códigos o nomenclátor es una tabla en la que se relacionan uno o varios códigos con letras, pares o conjuntos de letras, palabras, nombres o expresiones comunes del espacio de mensajes y a las que representan en el criptograma. Los primeros libros breves de códigos, llamados “Nomenclators”, aparecen en el siglo XIV y también son conocidos por el nombre de Método Lavinde.

¿En Qué Consiste el Cifrado Vigenère y Cuál es su Modo Auto-Texto?

El cifrado de Vigenère es un cifrado polialfabético en el que se utilizan tantos alfabetos rotados circularmente como letras haya en ellos. La clave determina qué alfabetos y en qué orden hay que utilizarlos para transformar las letras del texto en claro en sus correspondientes letras en el criptograma. El modo Auto-Texto consiste en comenzar el cifrado según las letras que constituyen la clave y, cuando estas se terminen, en lugar de volver a utilizar la clave circularmente, lo que se hace es utilizar el texto en claro del mensaje como clave de cifrado. De este modo, el mensaje que se cifra se convierte en su misma clave, pero desplazado un número de posiciones igual al tamaño de la clave secreta utilizada.

¿En Qué Consiste el Método Criptográfico Propuesto por Vigenère?

El método de cifrado simétrico conocido como método Vigenère consiste en una sustitución polialfabética con tantos alfabetos como letras tenga la palabra clave. Para un alfabeto de n caracteres, el número de alfabetos es n, y se caracterizan porque cada uno es el mismo que el anterior, pero rotado circularmente a la izquierda. La primera letra del alfabeto rotado coincide con la letra de la clave a la que se le asigna.

¿En Qué Consiste el Método de Hill de Cifrado?

El método de cifrado simétrico propuesto por Hill se trata de una sustitución n-grámica a través de una transformación modular afín e invertible de n símbolos del mensaje en claro en n símbolos del mensaje cifrado. Tanto en el cifrado como en el descifrado, la transformación viene representada por la multiplicación con una matriz de n x n, que constituye la clave secreta del cifrado.

Descripción y Propiedades del Modo de Operación Cipher Block Chaining (CBC)

El modo CBC de cifrado consiste en combinar el bloque que se quiere cifrar con el criptograma del bloque cifrado anterior. Esta combinación debe hacerse a través de una función reversible que, en el caso del modo CBC, es la función XOR. Así, para el cifrado, Ci = EK(Mi ⊕ Ci-1), y para el descifrado Mi = DK(Ci) ⊕ Ci-1. Para obtener el primer bloque cifrado, el primer bloque de mensaje en claro se combina con un Valor Inicial (IV), que puede ser parte de la clave secreta (K, IV) o, en el caso del modo CBC, este valor inicial es siempre nulo (IV = 00…0). Al subordinar el cifrado de un bloque al resultado del cifrado anterior, cada bloque del criptograma depende de todos los bloques de mensaje en claro anteriores. De este modo, un error de transmisión o transcripción de un bloque del criptograma hace que todos los que le sigan den lugar a un descifrado incorrecto. Como consecuencia límite de esta propiedad, el último bloque de criptograma depende de TODOS los bloques del mensaje en claro.

¿Características de Vernam para ser Irrompible?

  • La longitud de la clave tiene que ser igual a la del mensaje que se quiere cifrar (el cifrado de cada mensaje no está correlacionado).
  • La clave debe ser aleatoria y estar uniformemente distribuida sobre todos sus símbolos y debe ser secreta (solo la conocen destinatario y remitente).
  • La clave solo puede utilizarse una sola vez (al combinar dos criptogramas se puede producir la anulación del efecto de la clave y la combinación XOR de los textos en claro).

¿Cuáles son las Características de un Cifrado Homofónico?

En un cifrado homofónico:

  1. A cada símbolo del alfabeto le corresponde un conjunto de símbolos.
  2. El número de símbolos es siempre mayor que el de caracteres a los que codifican.
  3. El número de asignaciones para cada carácter es proporcional a la frecuencia relativa de cada letra (confunde las frecuencias).
  4. Cada código solo representa a una única letra (invertible).

¿Cuáles son los Componentes de un Cifrador de Flujo Genérico?

  • El Estado Interno (σ) que se encontrará en un estado inicial.
  • La Función de Siguiente Estado (f()).
  • La Función Generadora de la Secuencia Cifrante (g()).
  • La Secuencia Cifrante propiamente dicha (Zi).
  • La Función de Salida (h()) que la combina con el texto en claro o con el criptograma.

¿Cómo se Catalogan los Sistemas Secretos Según el Tipo de Claves que Utilizan?

Los sistemas secretos se pueden catalogar en:

  • Sistemas Simétricos: Misma clave de cifrado y descifrado.
  • Sistemas Asimétricos: Claves de cifrado y descifrado distintas, relacionadas entre sí de un modo secreto.

¿Cuáles son las Características Esenciales de Todo Sistema Criptográfico Asimétrico?

Que las operaciones de cifrado y descifrado son distintas y dependen de claves criptográficas diferentes, y que del conocimiento de la clave pública no se puede deducir nada respecto a cuál es su clave privada.

¿Qué es un Sistema Esteganográfico e Indica Cuál es la Hipótesis en la que se Basa su Secreto?

Un sistema esteganográfico es el que oculta el mensaje cuya confidencialidad se pretende proteger, dentro de otro objeto que nada tenga que ver con él y que no resulte sospechoso al atacante. La probabilidad de que el objeto llegue a su destino sin levantar sospechas determina la seguridad de este procedimiento como canal secreto de comunicaciones.

¿Qué Características Debe Tener Toda Función Hash para que se Considere de Sentido Único?

  • La descripción de la función H() debe ser pública y no debe incluir ninguna información secreta.
  • El argumento x puede ser de cualquier longitud.
  • El resultado H(x) debe tener una longitud fija de n bits (con n ≥ 160).
  • Dada la función H() y su argumento x, el cálculo del resultado H(x) debe ser sencillo.
  • La función hash debe ser de Sentido Único y Resistente a Colisiones:
    • Es difícil encontrar un mensaje x tal que H(x) = H(x’).
    • Es difícil encontrar un mensaje x’x tal que H(x’) = H(x).

¿Un Doble Cifrado Vigenère es Más Resistente que un Solo Cifrado Frente al Método Kasiski para el Descubrimiento de la Longitud de la Clave?

El efecto de componer dos sustituciones consecutivas es una sustitución sencilla con una clave distinta. Componer dos cifrados Vigenère da lugar a otro cifrado Vigenère con una clave efectiva más larga que las dos claves empleadas. La longitud de la clave resultante será aquel múltiplo de ambas que coincida (mínimo común múltiplo). La longitud de la clave resultante será máxima cuando ambas longitudes sean primos relativos. La aparición de repeticiones en el criptograma denota repeticiones en el texto en claro que quedan alineadas de la misma forma con la clave, por lo que, para claves efectivas más largas, es más difícil la aparición de repeticiones en una misma cantidad de criptograma. El doble cifrado no invalida el método Kasiski, pero sí aumenta la longitud efectiva de la clave y se precisa más criptograma para que pueda tener efecto el ataque.

¿Por Qué no se Puede Elegir un Número Par como Exponente Público del RSA?

El exponente público en el algoritmo RSA debe ser primo relativo con la función Φ(n) para que pueda calcularse su inversa multiplicativa y así ser reversible el algoritmo. Para que Φ(n) = (p-1)(q-1) y p y q son números impares, Φ(n) es un número par y, por ello, e debe ser necesariamente impar para poder ser primo relativo con Φ(n).

¿Parámetros que Definen una Cadena de Feistel?

El tamaño del bloque y de la clave, el número de etapas, el algoritmo de generación de claves intermedias y la función de etapa.

¿Cuál es la Hipótesis de Feistel?

La hipótesis de Feistel es que si se realizan dos o más cifrados básicos en secuencia, el resultado final será criptográficamente más fuerte que la mera adición de sus componentes.

Observación Fundamental de Kasiski para Descubrir la Longitud de Clave en Sustituciones Polialfabéticas

Si el cifrado consiste en una sustitución polialfabética con una clave de longitud finita, las repeticiones que aparecen en un criptograma pueden tener dos orígenes distintos:

  1. Algunas veces, las repeticiones son producto de la casualidad y están distribuidas al azar sobre todo el criptograma.
  2. Otras son la consecuencia de repeticiones presentes en el texto en claro que se alinean de la misma forma con la clave. En este caso, la distribución de estas sigue una pauta reconocible y su distancia es múltiplo entero de la longitud de la clave.

Elementos de un Cifrador de Flujo Asíncrono

  • Estado Interno: Es la capacidad de memoria que tiene el cifrador y que permite almacenar los distintos estados por los que pasa el cifrador. Su capacidad máxima está determinada por el número de estados distintos que pueda albergar; 2n estados si su tamaño es de n bits.
  • Función de Siguiente Estado: Es una familia de funciones que transforman el estado interno dependiendo de su estado actual y de una clave criptográfica que determina qué función en concreto se va a implementar.
  • Función de Generación: Es una familia de funciones que determina cuál será el símbolo de salida en la secuencia cifrante, dependiendo de cuál sea el contenido del estado interno del cifrador, y de una clave criptográfica que determina qué función de generación en concreto se implementa.
  • Clave Criptográfica: Es un valor secreto que determina cuáles funciones en concreto se van a utilizar para cambiar el estado interno y para generar el símbolo de la secuencia cifrante.
  • Función de Salida: Es la función reversible que combina la secuencia cifrante con el símbolo del criptograma o del mensaje en claro para realizar la operación de descifrado o cifrado.

Esencia del Paradigma Davis-Meyer para la Irreversibilidad de las Funciones Hash

El paradigma de Davis-Meyer consigue la no invertibilidad haciendo que la salida de la función de compresión sea el resultado de una operación XOR entre la salida y la entrada de una función muy compleja gobernada por el bloque de texto, jugando el papel de la clave. La operación compleja suele ser un cifrador simétrico reversible.

¿Es IDEA una Cadena de Feistel?

No es una cadena de Feistel porque se divide en cuatro partes y se modifica todo desde el principio (Feistel se divide en dos y se modifica una sola parte). Es reversible ya que la secuencia de cálculo es por construcción reversible, reversible porque de abajo arriba y de arriba abajo es lo mismo. Se utilizan claves distintas en el descifrado, pues hay que hacer los pasos inversos. La longitud del bloque es suficientemente grande para los ataques estadísticos y la longitud de la clave es suficientemente larga para evitar los ataques por fuerza bruta.

Objetivos de Shannon para el Diseño de Sistemas Secretos de Cifrado

Shannon propone que los sistemas de cifrado se diseñen de modo que la Confusión y Difusión sean máximas.

  • Difusión: Las propiedades estadísticas del texto en claro deben disiparse, distribuirse y mezclarse para dar las estadísticas de todo el criptograma.
  • Confusión: Cualidad de hacer que la relación entre la estadística del criptograma y el valor de la clave de cifrado sea tan compleja como sea posible.