通用加扰算法 Common Scrambling Algorithm

通用加扰算法 Common Scrambling Algorithm

通用加扰算法(又称CSA)是DVB数字电视广播标准里的加密算法,用于解密视频流。
1994年5月,CSA由ETSI组织制定,由DVB委员会采用,但是在2002年前一直处于保密状态。虽然专利文档中提到了一些信息,但是核心的细节,比如所谓的S盒的排列方式,一直没有公开。没有这个算法的免费实现,就不成问题。
在2002年,FreeDec发布了,它用软件实现了CSA。虽然只是二进制程序,但是它很快被反编译,揭示了CSA中核心的细节,使得算法可以在高级编程语言里重新实现。
随着CSA的全部内容的公开,许多人开始了破解分析,试图寻找它的弱点。如同其他加密算法一样,CSA也有一个弱点,消息的有些部分,比如MPEG的标准头,是已知的或者可预知的。key的长度是64 bit,支持许多不同的加密。以每1微秒尝试1个key的速度进行暴力破解,遍历所有可能的key平均需要300,000年。通过加密消息的可预知部分来计算可能的key,可以减少暴力破解的时间。
当CSA算法使用64bit的key时,实际上只有key的48bit内容未知,因为字节3和字节7都作为校验和使用,可以被轻松的计算出来。
因此,实际上,空间换时间的攻击方法,可以在32 bit内暴力破解,其中16bit来自密码本里建立的内存表格,另外16bit是运行时计算出的校验和,计算的时间复杂度为O(2^16)+O(2^32),如果用FPGA硬件或者定制的单片机来计算,用不了1秒钟。
如果CSA被破解了,加密的DVB传输流就成为可解密的,无视任何条件接收系统的应用。这将严重破坏付费数字电视业务的利益,因为DVB已经被作为欧洲和其他地区的数字地面电视标准,也用于很多卫星电视业务。然而,至今为止,还没有任何攻击方法发布出来。


你可能感兴趣的:(转载文章)