stringtranslate.com

ISAAC (cifrado)

ISAAC ( dirección indirecta, desplazamiento, acumulación, adición y conteo ) es un generador de números pseudoaleatorios criptográficamente seguro y un cifrado de flujo diseñado por Robert J. Jenkins Jr. en 1993. [1] El código fuente de la implementación de referencia fue dedicado al dominio público . [2]

“Desarrollé (…) pruebas para romper un generador, y desarrollé el generador para pasar las pruebas. El generador es ISAAC.” [3]

Operación

El algoritmo ISAAC tiene similitudes con RC4 . Utiliza una matriz de 256 enteros de cuatro octetos como estado interno, escribiendo los resultados en otra matriz de 256 enteros de cuatro octetos, desde donde se leen uno a la vez hasta que se vacían, momento en el que se vuelven a calcular. El cálculo consiste en alterar i -elemento con ( i ⊕128)-elemento, dos elementos de la matriz de estado encontrados por indirección, un acumulador y un contador, para todos los valores de i de 0 a 255. Dado que solo se necesitan alrededor de 19 operaciones de 32 bits para cada palabra de salida de 32 bits, es muy rápido en computadoras de 32 bits.

Criptoanálisis

Marina Pudovkina (2001) realizó un criptoanálisis . [4] Su ataque puede recuperar el estado inicial con una complejidad que se aproxima a ser menor que el tiempo necesario para buscar en la raíz cuadrada de todos los estados iniciales posibles. En la práctica, esto significa que el ataque necesita en lugar de . Este resultado no ha tenido ningún impacto práctico en la seguridad de ISAAC. [5]

En 2006, Jean-Philippe Aumasson descubrió varios conjuntos de estados débiles. [6] El cuarto conjunto de estados débiles presentado (y el más pequeño) conduce a una salida altamente sesgada para la primera ronda de ISAAC y permite la derivación del estado interno, similar a una debilidad en RC4 . No está claro si un atacante puede determinar solo a partir de la salida si el generador está en uno de estos estados débiles o no. También demuestra que un ataque anterior [7] es defectuoso, ya que el ataque de Paul - Preneel se basa en un algoritmo erróneo en lugar del ISAAC real. Se propone una versión mejorada de ISAAC, llamada ISAAC+. [5]

Uso fuera de la criptografía

Muchas implementaciones de ISAAC son tan rápidas que pueden competir con otros PRNG de alta velocidad, incluso con aquellos diseñados principalmente para la velocidad y no para la seguridad. Solo existen unos pocos generadores más de tan alta calidad y velocidad en uso. [ cita requerida ] ISAAC se utiliza en la herramienta Unix shred para sobrescribir datos de forma segura. [8] El algoritmo ISAAC también se implementa en la biblioteca Java Apache Commons Math. [9]

Referencias

  1. ^ Robert J. Jenkins Jr., ISAAC. Fast Software Encryption 1996, págs. 41–49.
  2. ^ El código ISAAC
  3. ^ Jenkins, Bob (17 de marzo de 2023). "Pruebas para generadores de números aleatorios".
  4. ^ Marina Pudovkina, Un conocido ataque de texto simple al generador de flujo de claves ISAAC, 2001, Archivo de criptología ePrint: Informe 2001/049, [1].
  5. ^ ab "Sobre el generador pseudoaleatorio ISAAC" (PDF) . Archivo de ePrints de Criptología . Consultado el 21 de agosto de 2016 .
  6. ^ Jean-Philippe Aumasson, Sobre el generador pseudoaleatorio ISAAC. Archivo de Cryptology ePrint, informe 2006/438, 2006.
  7. ^ Souradyuti Paul, Bart Preneel, Sobre la (in)seguridad de los cifrados de flujo basados ​​en matrices y adición modular. Asiacrypt 2006.
  8. ^ GNU coreutils git
  9. ^ "Referencia de Apache Commons Math". Archivado desde el original el 16 de febrero de 2022. Consultado el 16 de febrero de 2022 .

Enlaces externos