ISAAC (chiffer)
ISAAC ( indirektion, skift, ackumulera, addera och räkna ) är en kryptografiskt säker pseudoslumptalsgenerator och ett strömchiffer designat av Robert J. Jenkins Jr. 1993. Referensimplementeringskällkoden var dedikerad till det offentliga området .
Drift
ISAAC -algoritmen har likheter med RC4 . Den använder en array med 256 heltal med fyra oktetter som det interna tillståndet, och skriver resultaten till en annan 256 heltalsmatris med fyra oktetter, från vilken de läses en i taget tills de är tomma, då de beräknas om. Beräkningen består av att ändra i -element med ( i ⊕128)-element, två element i tillståndsmatrisen som hittas genom inriktning, en ackumulator och en räknare, för alla värden på i från 0 till 255. Eftersom det bara tar cirka 19 32-bitars operationer för varje 32-bitars utgångsord, det är mycket snabbt på 32-bitars datorer.
Kryptanalys
Kryptanalys har utförts av Marina Pudovkina (2001). Hennes attack kan återställa det initiala tillståndet med en komplexitet som uppskattas vara mindre än den tid som behövs för att söka igenom kvadratroten av alla möjliga initiala tillstånd. I praktiken betyder detta att attacken behöver istället för . Detta resultat har inte haft någon praktisk inverkan på säkerheten för ISAAC.
2006 upptäckte Jean-Philippe Aumasson flera uppsättningar av svaga stater. Den fjärde presenterade (och minsta) uppsättningen av svaga tillstånd leder till en mycket partisk utdata för den första omgången av ISAAC och tillåter härledning av det interna tillståndet, liknande en svaghet i RC4 . Det är inte klart om en angripare bara kan se utdata om generatorn är i något av dessa svaga tillstånd eller inte. Han visar också att en tidigare attack är felaktig, eftersom Paul - Preneel -attacken är baserad på en felaktig algoritm snarare än den verkliga ISAAC. En förbättrad version av ISAAC föreslås, kallad ISAAC+.
Användning utanför kryptografi
Många implementeringar av ISAAC är så snabba att de kan konkurrera med andra höghastighets-PRNG:er, även med de som främst är designade för hastighet och inte för säkerhet. Endast ett fåtal andra generatorer av så hög kvalitet och hastighet finns i användning. ISAAC används i Unix-verktyget shred för att säkert skriva över data. Även ISAAC-algoritmen är implementerad i Java Apache Commons Math-bibliotek.
externa länkar
- Officiell ISAAC-webbplats
- Flera ISAAC-implementeringar på Rosetta Code
- Pascal/Delphi hamn
- Math::Random::ISAAC , en Perl-modulimplementering av algoritmen
- isaac.js , en JavaScript-implementering