jueves, 25 de octubre de 2012

Cifrado de Flujo - Salsa20

Que es Salsa20?

Es un cifrado de flujo que esta construido por una función pseudo-aleatoria basada en 32-bit, ademas de una adición bit a bit (XOR) y las operaciones de rotación, que asigna un 256- bit clave, un 64-bit nonce  y una posición de corriente de 64-bit a una salida de 512-bit.

Esto le da la ventaja a Salsa20 de que el usuario pueda buscar en cualquier posición en la secuencia de salida de manera eficiente. También ofrece una velocidad de alrededor 4-14 ciclos por byte en software modernos y el rendimiento del hardware es razonable.




The Salsa quarter-round function.
Four parallel copies make a round.

Función

Esta elección de las operaciones se evita la posibilidad de ataques de temporización en las implementaciones de software.
El estado inicial se compone de 8 palabras clave, de 2 palabras de la posición de corriente, 2 palabras de nonce (bits corriente esencialmente adicionales de posición), y 4 palabras fijas. 20 rondas de mezcla producir 16 palabras de salida de flujo de cifrado.



Internamente, el sistema de cifrado usa ademas bit a bit, 32-bit adicion mod 2^32, y constante distancia las operaciones de rotacion en un estado interno de 16 palabras de 32 bits.




Cada ronda consta de cuatro cuartos de vuelta operaciones, realizadas en cualquiera de las columnas o las filas del Estado de 16 palabras, dispuestas como un 4 × 4 matriz. Cada 2 rondas, el patrón se repite. Cada cuarto de vuelta modifica 4 palabras.


La función completa se define como sigue:
******
******

Salsa20 realiza 20 rondas de la mezcla en su entrada. Sin embargo, la reducción de variantes redondas Salsa20 / 8 y Salsa20/12 utilizando 8 y 12 vueltas respectivamente También se han introducido. Estas variantes se introdujeron para complementar la Salsa20 original, no para sustituirlo, y aún más eficaces en los puntos de referencia de la eStream Salsa20 ya competitivo.

A partir de 2012 , no hay ataques publicados sobre Salsa20/12 o el completo Salsa20/20; el mejor ataque conocido  rompe 8 de los 12 o 20 rondas.

En 2005, Paul Crowley informó de un ataque a Salsa20 / 5 con una complejidad de tiempo estimado de 2 165 , y ganó el premio de 1.000 dólares EE.UU. Bernstein para "criptoanálisis Salsa20 más interesante".  Este ataque, y todos los ataques posteriores se basan en diferencial truncado criptoanálisis . En 2006, Fischer, Meier, Berbain, Biasse y Robshaw informó de un ataque a Salsa20 / 6 con la complejidad hora estimada de 2 177 , y un ataque relacionada con llave en Salsa20 / 7 con complejidad hora estimada de 2 217.




Referencias:

1 comentario: