五千年(敝帚自珍)

主题:闲聊密码 外一篇——悲惨的DVD(上) -- 代码ABC

共:💬53 🌺445
全看分页树展 · 主题 跟帖
家园 稍微补充几句

楼主对当时巨头们聘请的密码学家颇有瞧不起的意思,不过他们也是迫不得已啊,一来类似于DVD这种类型的保密问题本来就很难,确切地说现在也没有什么很好的办法可以完美地解决;二来当时美国政府有密码出口限制的,40bit密钥已经是出口政策的上限。

另外,每张DVD上实际上是有四百多个加密后的disk key,分别用不同厂家的密钥来加密,当时的确是先获得了xing的密钥,从而可以将dvd内容解密出来,算法公布后又有人发现这一算法很弱(不仅仅是密钥短),于是开发出穷尽密钥的程序。下面就是号称世界上最短的破解css的程序,只有434个字符:(注释不算)

/* efdtt.c Author: Charles M. Hannum <[email protected]> */

/* */

/* Thanks to Phil Carmody <[email protected]> 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;}}

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河