Función de Compresión DB

Las funciones de compresión de longitud DB (Doble Bloque) generan el doble de bits procesados por el cifrado de bloque subyacente comparadas con las funciones de compresión BU.

 

MDC-2.

El algoritmo MDC-2 (Manipulation Detection Code, Código de detección de manipulación) emplea dos iteraciones separadas del esquema Matyas-Meyer-Oseas. Por lo tanto, genera un valor hash de longitud doble en relación con el cifrado del bloque subyacente. Originalmente fue diseñado para su uso con DES, pero es aplicable a cualquier cifrado de bloque que se ajuste a esta construcción. Por esa razón, las funciones g y ˜g están destinadas a producir claves adecuadas para DES. Se diferencian ligeramente entre sí para evitar que se generen claves débiles o semi-débiles.

 

Estas funciones deben personalizarse para utilizarlas en otros cifrados de bloque que no sean DES, ya que probablemente requieran una longitud diferente. Los valores iniciales que alimentan las funciones g y ˜g ya están definidos, el valor IV en  hexadecimal es 0x5252525252525252. La contraparte es el valor IV de 4 bits desplazado 0x2525252525252525. Es posible que estos valores también deban personalizarse para servir al cifrado de bloque deseado.

 

Después de cada iteración de Matyas-Meyer-Oseas, se intercambian las mitades correctas de las dos salidas. Ambos Hi y H˜i forman la salida preliminar. La salida final de Hf || H˜ es definida por las fórmulas iteradas de

Esquema MDC-2
Esquema MDC-2

 

donde:   1 ≤ i ≤ f, H0 = IV Vector de Inicialización (IV)0 = IV˜

 

El ratio usando la función MDC-2 es:

n longitud de bits de entrada igual a la longitud de bits de salida.

2 operaciones de cifrado de bloque para una salida independientemente del valor hash de longitud doble.

 

 

 

MDC-4.

La función de compresión MDC-4 se puede considerar como una extensión de MDC-2. Emplea cuatro iteraciones separadas del esquema Matyas-Meyer-Oseas respectivamente (dos iteraciones de MDC-2). Los dos esquemas MDC-2 en MDC-4 están conectados de manera similar a los dos esquemas Matyas-Meyer-Oseas en MDC-2. De este modo, las funciones g, ˜g y los valores iniciales IV, IV˜ dentro de MDC-2 permanecen sin cambios, pero con Gi − 1 y ˜Gi − 1 como valores de realimentación. Las salidas preliminares resultantes Hi y ˜Hi se transfieren a la compresión MDC-2 siguiente. En lugar de xi esta vez, la salida preliminar Gi − 1 y ˜Gi − 1 del esquema general sirven como entrada.

Esquema MDC-4
Esquema MDC-4

 

La salida final Gf || ˜Gf se define por la fórmula iterada

 

 

donde 1 ≤ i ≤ f, H0 = IV y ˜H0 = IV˜.  y

 

 

donde 1 ≤ i ≤ f, G0 = IV y G˜0 = IV˜.

 

El ratio usando la función MDC-4 es:

debido a que necesita cuatro operaciones de cifrado de bloque para una salida independientemente del valor hash de doble longitud.

 

Hirose.

La función de compresión de Shoichi Hirose consiste en un cifrado de bloque (n, n + |xi|) más una permutación p. El cifrado del bloque  es instanciado dos veces con dos valores de realimentación Hi – 1 , Gi – 1 y xi que sirven como entrada. La permutación libre de punto fijo p precede a una de las instancias de cifrado de bloque que siguen más ampliamente el esquema de Davies-Meyer, pero con la diferencia de que la entrada clave es una concatenación del valor de realimentación Hi – 1 y la entrada xi. La permutación p se especifica como:

 

Esquema Hirose
Esquema Hirose

p (Gi – 1, Hi – 1, xi) = (Gi – 1 ⊕ c, Hi – 1, xi),

 

donde c denota una constante no cero con n bits de longitud.

 

La salida final Hf || Gf se define por la fórmula iterada

 

 

donde 1 ≤ i ≤ f, H0 = IV y G0 = IV˜.

 

El ratio usando la función Hirose es:

dado que la entrada xi concatenada con la realimentación Hi – 1 sirve como la clave de  k = n + | xi | bits de longitud, por lo tanto | xi | = k – n.