Posts Tagged ‘RC4’

Ny version av Internet Draft för RC4

June 29th, 2010

Vi (Jag och Simon Josefsson) har precis släppt version 01 av vår Internet Draft med testvektorer för strömkryptot RC4.

Den största förändringen i draften är att vi ändrat en av kryptonycklarna och därmed genererat nya vektorer. Draften innehåller två olika slags nycklar med tillhörande testvektorer för olika nyckellängder. En av dessa nycklar är genererad genom att köra strängen Internet Engineering Task Force genom hashfunktionen SHA-256. Tyvärr inkluderade den gamla strängen radbrytning vilket inte syns i strängen. Detta är nu ändrat.

Andra ändringar är att vi nu även har med testvektorer runt nyckelströmspunkten 4096 Bytes. Vidare har vi förtydligat en del referenser och säkerhetsrekommendationer för RC4. Rent krasst skriver vi att:

The RC4 algorithm does not meet the basic criteria required for an encryption algorithm, as its output is distinguishable from random. The use of RC4 continue to be recommended against; in particular, its use in new specifications is discouraged. This note is intended only to aid the interoperability of existing specifications that make use of RC4.

Vi tar gärna emot kommentarer och synpunkter på draften.

RC4 i programspråket Lua

January 30th, 2009

Tyvärr har jag just nu väldigt lite tid, lust och ork för bloggen. Har dessutom legat sjuk i några dagar.

Det enda jag orkat med är att leka lite med programspråket Lua. Och vad kan vara bättre som kodexempel när man prövar ett nytt språk är strömkryptor RC4?

Så nu finns det en väldigt enkel och ful implementation av RC4 i Lua. Bara att tanka ner från sidan med filer för nedladdning för den som är nyfiken och vill se Lua-fulkod.

Eftersom jag kodar en hel del Python kan jag kanske våga mig på några korta jämförelser mellan Lua och Python:

  • Lua är litet och enkelt. Det går snabbt att greppa grunderna i språket. Ungefär som Python.
  • Att exekvera Lua-program verkar gå fort. Bra prestanda helt enkelt.
  • Kompilering och installation av Lua gick väldigt smidigt. Inga varningar och bra tester för att kontrollera installationen.
  • Debugutskrifter från VM:en när den stöter på fel är inte speciellt tydliga. Python kan dränka dig i kärlek och utskrifter, men det brukar alltid gå att enkelt se var, vad och varför det är fel. Lua ger ibland det något kortfattade “?” som sammanfattning.
  • Lua har inte alls samma mängd med bibliotek med i distributionen som Python. Och de som finns är inte lika välmatade och inte minst lika väldokumenterade som Pythons standardbibliotek.
  • Lua räknar index från ett inte noll. Dock kan man räkna från noll, men tydligen bara ibland. Har man vant sig att allt börjar från noll (typ C, Verilog, Python etc) och dessutom algoritmer är byggda utifrån indexeringar från noll till XYZ blir det lite trixigt att få till det.

(Gissar att jag nu kommer att få massor med ilskna kommentater om Lua…)