Jon Johanssen, som första gången skrev ett program som avkodaded DVD-skivor för att kunna se filmer på sin dator, frikändes helt i Tingrätten i Oslo i torsdags. Jon stod anklagad för stöld av affärshemligheter då han publicerade sitt program, DeCSS, och därigenom krypteringsalgoritmen på Internet.
DVD-skivor är normalt krypterade för att förhindra piratkopiering men också för att förhindra att skivor som köpts i USA spelas i DVD-spelare i t ex Sverige. Jon, som var 16 år då han skrev programmet, knäckte koden och spred programmet på Internet.
Den amerikansk branchorganisationen Motion Picture Association of America har ägnat avsevärda resurser till att bekämpa siter som spridit programmet och är dom som tryckt på i Norge för att åtala Jon Johanssen.
Rättegången har följts noga på många håll i världen då det är intressant ur många aspekter. Jon hävdade att han bara var intresserad av att titta på den DVD-skiva han köpt på sin egen dator då han inte ville köpa en dyr DVD-spelare. Eftersom inget program fanns att köpa för att titta på DVD-filmer under Linux skrev han helt enkelt sitt eget program.
Läs mer om rättegången i norska Aftenposten (fast på engelska) i och Aftonbladet.
Just spridandet av DeCSS blev snart en stor grej på nätet. Se t ex Dr David S Touretzkys Gallery of DeCSS Descramblers.
För att i någon mån bidra till spridandet ;) följer här den kortase kända C-implementationen på endast 434 bytes.
/* efdtt.c Author: Charles M. Hannum <>
root@ihack.net> */
/* */
/* Thanks to Phil Carmody <
fatphil@asdf.org> for additional tweaks. */
/* */
/* Length: 434 bytes (excluding unnecessary newlines) */
/* */
/* Usage is: cat title-key scrambled.vob | efdtt >clear.vob */
#define m(i)(x[i]^s[i+84])<< unsigned char x[5],y,s[2048];
main(n){for(read(0,x,5);read(0,s,n=2048);
write(1,s ,n))if(s[y=s[13]%8+20]/16%4==1)
{int i=m(1)17^256+m(0)8,k=m(2)0,j=m(4)17^m(3)9^k *2-k%8^8,a=0,c=26;
for(s[y]-=16;--c;j*=2)a=a*2^i&1,i=i/2^j&1<<24;
for(j=127;++j<n ;c=c>y)c+=y=i^i/8^i>>4^i>>12,i=i>>8^y<<17,a^=a>>14,
y=a^a*8^a<<6,a=a>>8^y<<9,k=s [j],k="7Wo~'G_\216"[k&7]+2^"cr3sfw6v;
*k+>/n."[k>>4]*2^k*257/8,s[j]=k^(k&k*2&34) *6^c+~y;}}




