Etikettarkiv: arcfour128

RFC 6229 – Test Vectors for the Stream Cipher RC4

Nu finns RFC 6229 – Test Vectors for the Stream Cipher RC4 publicerad hos Internet Engineering Task Force (IETF).

Detta dokument, skrivet av mig och Simon Josefsson är avsett att underlätta implementationer av strömkryptot RC4 genom att tillhandahålla testvektorer, något som tyvärr saknats. Inte minst viktigt är detta för varianter av RC4 där ett antal av de första nyckelströmsvärden genererade av RC4 förkastas, detta för att förbättra säkerheten. Exempel på denna typ av RC4-varianter är arcfour128 och arcfour256 specificerade i RFC 4345. De testvektorer som finns i vår RFC täcker bland annat in just dessa varianter.

RC4 är ett på många sätt trasigt och svagt krypto och ska inte användas. Tyvärr är ofta verkligheten inte så enkel att det går att helt undvika RC4, detta då algoritmen är väldigt spridd och används i SSL/TLS, WLAN och en oherrans massa applikationer och applikationsspecifika protokoll. Vi ser därför att RFC 6229 bör underlätta vid implementationer och bidra till att bättre varianter som arcfour128 och arcfour256 används där byte till helt andra agoritmer inte fungerar.

Att implementera krypton är intressant och skiljer sig från många andra algoritmer på så sätt att det inte finns något som kan kallas funktionellt nästan korrekt. Antingen är implementationen korrekt eller så är resultatet helfel, bokstavligt talat inte en siffra rätt. Att debugga kryptoimplementationer är därför inte lätt. Tillgång till facit – i form av testvektorer (kallas också Known Answer Test – KAT) och gärna även interntillstånd underlättar betydligt.