This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: "Qrpff" – news · newspapers · books · scholar · JSTOR (September 2011) (Learn how and when to remove this message) |
qrpff is a Perl script created by Keith Winstein and Marc Horowitz of the MIT SIPB. It performs DeCSS in six or seven lines. The name itself is an encoding of "decss" in rot-13. The algorithm was rewritten 77 times to condense it down to six lines.
In fact, two versions of qrpff exist: a short version (6 lines) and a fast version (7 lines). Both appear below.
Short:
#!/usr/bin/perl # 472-byte qrpff, Keith Winstein and Marc Horowitz <sipb-iap-dvd@mit.edu> # MPEG 2 PS VOB file -> descrambled output on stdout. # usage: perl -I <k1>:<k2>:<k3>:<k4>:<k5> qrpff # where k1..k5 are the title key bytes in least to most-significant order s''$/=\2048;while(<>){G=29;R=142;if((@a=unqT="C*",_)&48){D=89;_=unqb24,qT,@ b=map{ord qB8,unqb8,qT,_^$a}@INC;s/...$/1$&/;Q=unqV,qb25,_;H=73;O=$b<<9 |256|$b;Q=Q>>8^(P=(E=255)&(Q>>12^Q>>4^Q/8^Q))<<17,O=O>>8^(E&(F=(S=O>>14&7^O) ^S*8^S<<6))<<9,_=(map{U=_%16orE^=R^=110&(S=(unqT,"\xb\ntd\xbz\x14d"));E ^=(72,@z=(64,72,G^=12*(U-2?0:S&17)),H^=_%64?12:0,@z)}(16..271))^((D>>=8 )+=P+(~F&E))for@a}print+qT,@a}';s//\$$&/g;s/q/pack+/g;eval
Fast:
#!/usr/bin/perl -w # 531-byte qrpff-fast, Keith Winstein and Marc Horowitz <sipb-iap-dvd@mit.edu> # MPEG 2 PS VOB file on stdin -> descrambled output on stdout # arguments: title key bytes in least to most-significant order $_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=( $m=(11,10,116,100,11,122,20,100))&110;$t^=(72,@z=(64,72,$a^=12*($_%16 -2?0:$m&17)),$b^=$_%64?12:0,@z)}(16..271);if((@a=unx"C*",$_)&48){$h =5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a)}@ARGV;s/...$/1$&/;$ d=unxV,xb25,$_;$e=256|(ord$b)<<9|ord$b;$d=$d>>8^($f=$t&($d>>12^$d>>4^ $d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t^ (($h>>=8)+=$f+(~$g&$t))for@a}print+x"C*",@a}';s/x/pack+/g;eval
The fast version is actually fast enough to decode a movie in real-time.
qrpff and related memorabilia was sold for $2,500 at The Algorithm Auction, the world's first auction of computer algorithms.
References
- McCullagh, Declan (8 March 2001). "Descramble That DVD in 7 Lines". Wired. Retrieved 26 April 2013.
- Hotz, Robert (27 May 2015). "What's Hot in the Art World? Algorithms". Wall Street Journal. Retrieved 27 May 2015.
- "Keith Winstein – qrpff". Artsy. Retrieved 18 June 2015.
External links
Perl | |
---|---|
Things | |
Frameworks | |
Software | |
Related | |
Books | |
People | |
This multimedia software-related article is a stub. You can help Misplaced Pages by expanding it. |