1. Red de Sustitución y Permutación 2. Red Feistel

Anuncio
Criptografı́a - 2016
.
1.
Red de Sustitución y Permutación
Los algoritmos en bloque de este tipo incorporan rondas que combinan operaciones de sustitución (incorporan la propiedad de confusión) y de permutación
(incluyen la propiedad de difusión).
Estos algoritmos tienen tres fases en cada una de sus rondas:
1. Fase de sustitución por medio de cajas-S, que representan una función
no lineal en el campo de Galois GF (2b ).
2. Fase de permutación que permite difusión por medio de una transformación lineal GF (2b )m .
3. Fase de mezcla con la subclave, tı́picamente mediante una OR exclusiva,
que permite mantener la confidencialidad.
De las tres fases, solo la mezcla con la subclave provee de privacidad, ya que
la sustitución y la permutación son parte pública del algoritmos, a menos que
dependan de la clave de usuario.
fases modificando únicamente la subclave de ronda.
Una desventaja de este tipo de algoritmos es que debe invertirse la red para
poder descifrar el texto. En otro tipo de algoritmos el ingresar las subclaves en
orden inverso al cifrado permite recuperar el texto plano.
2.
Red Feistel
Una red Feistel es un sistema criptográfico caracterizado por cifrar mitades de
bloque, a través de una función de generación de números pseudoaleatorios.
Este tipo de cifrado fue concebido por Hörst Feistel, criptógrafo de IBM, en
1973. La propuesta de este tipo de algoritmos trabaja como una red de sustitución/permutación. Sin embargo, este proceso es un generador f de números
pseudoaleatorios, cuya finalidad es obtener una secuencia de cifrado lo más
aleatoria posible, donde los bits están uniformemente distribuidos. La salida
de la función f cifra como un algoritmo de cifrado en flujo una mitad de bloque; para compensar, la siguiente ronda intercambia las mitades y se aplica el
mismo proceso.
Los pasos que sigue una red Feistel para trabajar son:
1. La entrada a la ronda i es un bloque de texto dividido en dos secciones:
Li−1 ||Ri−1 .
2. Una función fi (consistente en operaciones de sustitución, permutación
y mezcla con subclave de ronda) es aplicada a la sección derecha de la
entrada: fi (Ri−1 , ki ).
3. Se calcula el valor de operar (mediante una XOR) la sección izquierda y
la sección derecha transformada: Li−1 ⊕ fi (Ri−1 , ki ).
4. La ronda termina cuando se hace un intercambio de secciones:
Li = Ri−1 ||Ri = Li−1 ⊕ fi (Ri−1 , ki )
Esta construcción es recursiva; es decir, la salida entra nuevamente a las tres
1
Comúnmente, las operaciones de sustitución se llevan a cabo con base en cajas
de sustitución (caja-S), la cual puede ser predeterminada estándar (DES), calculada según la clave dada por el usuario (Blowfish) o predeterminada según
necesidades del usuario (GOST). Antes y después de la aplicación de las cajasIng. Aldo Jiménez Arteaga
Criptografı́a - 2016
S se realizan otras operaciones de sustitución, generalmente para combinar el
bloque de texto con la subclave en turno.
La permutación del bloque de datos se lleva a cabo mediante desplazamientos
de bits, al aplicar cajas de permutación (caja-P) o bien mediante operaciones
algebraicas como la multiplicación matricial (Twofish); esta operación puede
llevarse a cabo antes o después de la sustitución.
3.
Modos de Operación
Los modos de operación sirven para dar robustez a los algoritmos en bloque,
evitando ataques por repetición al insertar bloques similares o iguales para obtener la clave. Además, permiten un cifrado en flujo al tomar como generador
de clave al algoritmo de cifrado en bloque.
con el texto cifrado anterior mediante una XOR. Para operar el primer bloque
se utiliza un vector de inicialización secreto (una semilla aleatoria). Este modo
evita los ataques por repetición al enmascarar el texto plano, pero un error en
el cifrado o la transmisión se propagará a los bloques siguientes.
Cipher Feedback (CFB). Este modo realimenta la entrada al cifrado con el
propio cifrado, utilizando byte por byte (cifrado en flujo). Un vector de inicialización entra al algoritmo de cifrado junto con la clave. El vector cifrado se
opera con el texto plano mediante una XOR y la salida es el texto cifrado final
que se convierte en un nuevo vector en claro para seguir cifrando. Puesto que
el algoritmo de cifrado exige un bloque constante, el vector de inicialización
se almacena en un registro de corrimiento donde la nueva entrada es el byte
cifrado anterior (similar a un generador por LFSR).
Electronic Code Book (ECB). Cada bloque del texto plano se cifra de manera independiente, utilizando una única clave. En este modo de operación se
espera que a cada bloque de texto plano se corresponda un texto cifrado (función inyectiva). Una vulnerabilidad del modo tı́pica es que si en el texto a cifrar
un mismo bloque se repite, el texto cifrado también se repetirá.
Output Feedback (OFB). Este modo opera de manera similar al CFB, pero
la diferencia radica en que la realimentación se da antes de realizar la XOR con
el texto plano convirtiendo al vector de inicialización, la clave y el algoritmo
de cifrado en bloque en un algoritmo de cifrado en flujo.
Cipher Block Chaining (CBC). Es un modo de cifrado por encadenamiento de bloques. Antes de ser cifrado el bloque de texto plano actual se opera
2
Ing. Aldo Jiménez Arteaga
Criptografı́a - 2016
Counter (CTR). Genera la clave a partir del cifrado de la concatenación de
un nonce y un contador. El contador es una función que garantiza una salida
aperiódica; el proceso más popular es un contador que incrementa su valor
de uno en uno. Cada bloque de texto plano se cifrará con una secuencia que
depende de la clave de usuario, el nonce y del valor del contador
3
Ing. Aldo Jiménez Arteaga
Descargar