当前,光盘盗版现象非常严重,对我国的软件产业造成了很大的破坏。为了能有效的防止盗版,第一要防止光盘拷贝,第二要防止被破解跟踪,第三要防止硬盘的拷贝。也就是说光盘上的数据复制到硬盘上后,从硬盘上再次刻录,刻录后的光盘无法使用。如果能将这三者有效的结合起来,会达到比较理想的效果。本文就是从光盘的格式出发,结合多种软件加密技术,把软件、光盘和硬盘作为一体,对整个过程进行了加密,可以有效的防止光盘被盗版。
1. 前言
当今世界,光盘及其播放机也许是最成功的消费类电子产品。自从1980年CD(Compact Disc)音乐光盘推出以来,在全球共销售了4亿台光盘播放机和60亿张CD盘片。近几年,它的扩展产品──CD-ROM驱动器在计算机领域也取得了极大的成功。1996年一年,CD-ROM驱动器和音乐CD播放机的总销量就超过了3500万台。
正是由于光盘存储稳定、可靠,并且光盘成本越来越低,从而也导致了CD盗版的严重泛滥。盗版是现今软件工业所面对的最大问题之一,相对于过去以软盘形式发行的软件,以每4秒钟就能生产一片CD的媒体来做为软件发行工具的CD-ROM,其被盗版的程度及损失非软盘可以比拟。软件出版商联盟(Business Software Alliance)发布的一份调查表表明,1997年全球安装的新的商业应用软件中有40%是盗版的。带来约114亿美元的损失。这还没有包括非商业应用软件如游戏和教学软件。如果算在一起,软件出版业每年由于盗版的损失将数以百亿美元。
字串8
2.1 软件方式:
也称为“试后买”方式,这种方式是在CD-ROM上包含了经过了编码保护的程序或资料。经编码保护过的程序通常即为展示版程序,使用者可以很容易在CD-ROM上找到并执行该展示程序,了解程序的功能,经过评估后,如认为其的确符合需要后,即可经由电话或传真通知软件公司,以信用卡付费后取得密码,然后解开受编码保护的程序。但由于经解码后的程序己无保护,可以无限制地被复制。
2.2 硬件方式:
2.2.1软件狗:
这是通常插附在打印机端口上的一种装置。早期时的硬件锁只是在程序执行时会检查硬件锁是否存在而已,对于所谓的软件破解高手而言,他们甚至于不需要有硬件锁在手都可以轻而易举的破解掉保护。至于后期的硬件锁则不单只检查硬件锁是否存在,还会从其中读出资料以备程序解码之用,这种保护对于程序而言是比较有效的,只可惜成本偏高。 字串9
2.2.2 辩识记号:
如SID(Source Ident-ification Code)或IFPI 码。由于生产CD-ROM
的压模厂,其生产设备不管是母盘或模具皆被赋予一独特的ID,这些设备所制造的CD产品,也都会有其ID。如此一来,盗版的源头也就无法藏匿。此种防止盗版方式虽嫌消极,但仍有其些微的遏阻力量。
字串2
2.2.3 导入区:
在CD-ROM上即指导入区区域。一般而言,导入区记载了有关于CD 片的类型,TOC(Track On
CD)等信息,其重要性相当于硬盘的分区表。由于导入区中并不包含用户真正必须的数据,所以一般而言CD-R会自行产生,而不是由用户任意地修改,因此一旦此区域内含有其他重要资料以供判读之用,且由于 CD-R无法制作非正常的导入区 ,因此便能有效地制止非法的复制。可惜的是此种方式无法应用在PC上,因为这牵涉到CD-ROM光驱上的固件(Firmware)必须加上判读程序, 因而无法应用于现今市场上的光驱上。
2.2.4 修改 ISO 结构:
这种方法有隐藏目录、超大档案、垃圾档等。由于CD-ROM 的档案都有其记载起始位址、长度、属性等的指标值,使用者只要对于ISO -9660 的档案规则够熟悉,只要修改这些指标值就可达到上述效果。举例来说,只要修改档案的起始位址就可以造成此档案看得到却不能对此档案作复制的动作,这也是为什么这类型的档案被称为“垃圾”的原因;而超大档案的产生,就是由于修改其长度,其用意在于增加使用者欲将档案拷贝至硬盘时的困扰,降低程序被逆向工程或Debug的可能性。 字串9
2.2.5 不连续轨(坏扇区,指纹):
这种方式类似软盘的激光打孔保护方式。不连续轨的方式只是概念类似激光孔并不真的是激光孔。经过这种方式保护的CD-ROM,不但在经过CD-R的程序做轨对轨的复制时,百分之百会产生读错误(Reading Error)的讯息,也可以避开压模厂的大量翻拷。但如果将其CD-ROM上的档案拷至硬盘再重新烧录成CD-ROM的话,这种保护就不起作用了。
当前也有许多公司做出了自己的光盘防盗版产品,总体来看大致可以分为两类:
一类是TTR,LASERLOCK,Macrovision与C-Dilla等,这些公司的技术都是在光盘上制作出指纹(特殊的轨道、扇区),当然其称呼自然不同,有称其为指纹(fingerprint),也有称其为水印(watermark)。这些指纹无法通过刻录设备或母盘制作设备读取,自然盗版时,盗版盘上就没有这些指纹。然后通过程序来判别这些指纹,从而判断是否盗版盘。对于TTR的防盗版盘,本人曾经将其文件复制到硬盘上,然后通过一光驱模拟软件,模拟后仍能正确执行,因此其指纹中并不含有信息。
另一类是Wave Systems公司等,该公司与提供盘片内容的公司和原始设备制造商建立伙伴关系,同计算机一起捆绑销售CD-ROM和DVD-ROM。要购买CD-ROM和DVD-ROM,消费者必须拥有一种结合了WaveMeter的附加卡或外围设备,或者安装了WaveMeter的新的电脑。一旦WaveMeter通过WaveNet(该公司的交易出来系统)注册,消费者才可以使用CD上的内容。这种办法,当然可以很有效的防止盗版,但是很明显,其费用是很高的,而且要附加软、硬件。
0 12 2351
图4 扰频后的扇区
扰频过的扇区再按照一定的步骤处理,最终刻录到盘片上。
3.2 密码技术
所谓加密,就是把有关的原始数据作为明文P,经过加密函数E的变换,成为所谓的密文C,使无关人员几乎无法读懂、运用。用函数式表达如下:
E(P)= C
所谓解密,就是把密文C,用解密函数D,变换为数据信息的原样P。即D是E的逆变换(函数)。用函数式表达如下:
D(C)=P 或者 D[E(P)]=P
整个密码系统,包括:
1、 明文:原始信息P。
2、 密文:明文变换后的信息C。令局外人难以理解、辨认。
3、 算法:明文和密文之间的变换法则。其形式可以是计算某些量值或某个反复出现的数学问题求解的公式,也可以是相应的程序。解密算法D是加密算法E的逆运算,或叫逆变换,且应是唯一的。
加密算法可以分为分组密码体制和序列密码体制。分组密码即对固定长度的一组明文进行加密的算法,比较著名的算法是DES算法。
下面说明一下DES算法的大致步骤:
假定明文m是0和1组成的长度为64比特的符号串,密钥k也是64比特的0,1符号串。设
m=m1m2...m64
k=k1k2...k64
mi,ki=0或1,i=1,2,...,64
密钥k只有56比特有效,k8, k16, k24, k32, k40, k48, k56, k64这8位是奇偶校验位,在算法中不起作用。
加密过程可以表达如下:
DES(m)=IP-1。T16。T15。...。T2。T1。IP(m)
IP是初始置换,IP-1是它的逆变换。IP-1满足IP。IP-1=IP-1。IP = I
DES的迭代过程流程图如图6: 字串7
图6 DES迭代流程图
加密过程可用数学公式描述为:
由于DES运算是对合运算,所以解密和加密可以共用同一运算,只是子密钥使用的顺序不同。
解密过程可以用如下的数学公式描述: 字串4
DES综合运用了置换、代替、代数多种密码技术,是一种乘积码,在算法上采用迭代结构,从而使结构紧凑,条理清楚。
3.3 光盘加密方案设计
为了能有效的防止盗版,第一要防止光盘拷贝,第二要防止被破解跟踪,第三要防止硬盘的拷贝。也就是说光盘上的数据复制到硬盘上后,从硬盘上再次刻录,刻录后的光盘无法使用。如果能将这三者有效的结合起来,会达到比较理想的效果。
首先对于复制光盘来说,要防止将光盘数据完全复制,制造扇区错误是一种比较好的办法。上面所讲的TTR的防盗版盘,在用光盘测试软件测试时发现,盘片上有许多的坏扇区。这些坏扇区就是用来防止对光盘进行拷贝的。对于TTR的防盗版盘,如果将其文件复制到硬盘,然后用一个光驱虚拟软件将这些文件虚拟成一个光盘的话,仍然可以正常运行。所以TTR声称的指纹并没有含所谓的信息,只是让光盘无法复制而已。但是仅仅制造扇区错误,还是可以破解的,比如在复制的时候,虽然坏的扇区数据读不到,但是可以做到模拟一个坏的扇区,这种方法通过软件就可以达到。因此单纯的坏扇区是不够的,必须和其他方法配合。
字串8
图7 光盘加密过程
在加密时,可以采用DES加密算法。由于DES加密算法是对64位数据的加密。而在这里加密时,是对2340位的数据的加密,因此需要对DES加密算法做一些改进。
将2336位数据分为64位一组,最后一组不够64位,可以不对最后一组(这一组的位置不一定在最后,可以自己随机定义,就进一步增加了解密难度)进行运算。这样就只对2304位字节进行加密运算。对明文m可以表示为:
m = m1.m2....m36
mi都是64比特一组。则密文C为:
C =c1.c2....c36
其中ci=DESk(mi),i=1,2,...,36
这种模式缺点在于明文结构有固定格式时,密文有相当一部分相同,容易暴露明文的数据格式以及它的某些统计特性,因此需要做下面的改进。
每个明文分组mi在加密之前,先和前一组密文的ci-1作异或运算⊕,然后再加密。
第一组加密时可以在存储器中预先置入初始向量c0,即
本文摘自网络,由于原文显示问题,没有图例。请大家原谅!谢谢大家对本站的支持! 字串4