Loading article…
qrpffは、MIT SIPBのKeith WinsteinとMarc Horowitzによって作成されたPerlスクリプトです。[1] これは、 6行または7行でDeCSSを実行します。名前自体は、 rot-13の「decss」のエンコードです。アルゴリズムは、6行に凝縮するために77回書き直されました。[2]
実際、qrpff には、短縮バージョン (6 行) と高速バージョン (7 行) の 2 つのバージョンが存在します。両方とも以下に表示されます。
短い:
#!/usr/bin/perl
# 472 バイトの qrpff、Keith Winstein および Marc Horowitz <sipb-iap-dvd@mit.edu>
# MPEG 2 PS VOB ファイル -> stdout に暗号解除された出力。
# 使用法: perl -I <k1>:<k2>:<k3>:<k4>:<k5> qrpff
# ここで、k1..k5 はタイトル キー バイトで、最小から最大の順に並べられています
s '' $/ =\ 2048 ; while ( <> ){ G = 29 ; R = 142 ; if (( @a = unqT = "C*" , _ )[ 20 ] & 48 ){ D = 89 ; _ = unqb24 , qT , @
b = map { ord qB8 , unqb8 , qT , _ ^ $a [ -- D ]} @INC ; s/...$/1$&/ ; Q = unqV , qb25 , _ ; H = 73 ; O = $b [ 4 ] << 9 | 256 | $b [ 3 ]; 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" )[ _ / 16 %8 ]); E ^= ( 72 、@z = ( 64 、72 、G ^= 12 * ( U - 2 ?
0 : S & 17 )), H ^= _ %64 ? 12 : 0 , @z )[ _ %8 ]}( 16 .. 271 ))[ _ ] ^ (( D >>= 8
) += P + ( ~ F & E )) for @a [ 128 .. $#a ]} print + qT , @a } ' ; s/[D-HO-U_]/\$$&/g ; s/q/pack+/g ; eval
速い:
#!/usr/bin/perl -w
# 531 バイトの qrpff-fast、Keith Winstein および Marc Horowitz <sipb-iap-dvd@mit.edu>
# stdin 上の MPEG 2 PS VOB ファイル -> stdout 上の暗号解除された出力
# 引数: タイトル キー バイトを最小から最大の順序で
$_ = '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)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24、結合"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$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[128..$#a]}print+x"C*",@a}' ; s/x/pack+/g ; eval
高速バージョンは、実際に映画をリアルタイムでデコードできるほど高速です。
qrpffと関連する記念品は、世界初のコンピュータアルゴリズムのオークションであるアルゴリズムオークションで2,500ドルで販売されました。[3]
参考文献
- ^ McCullagh, Declan (2001年3月8日). 「7行でDVDをデスクランブル」. Wired . 2013年4月26日閲覧。
- ^ Hotz, Robert (2015 年 5 月 27 日). 「アート界でホットなのは何か? アルゴリズム」.ウォール ストリート ジャーナル. 2015 年5 月 27 日閲覧。
- ^ 「Keith Winstein – qrpff」。Artsy 。 2015年6月18日閲覧。
外部リンク
- qrpff (高速) の説明
- CSS デスクランブラーのギャラリー
