防止数字作品被盗版的方法及其系统的制作方法

文档序号:6579889阅读:392来源:国知局
专利名称:防止数字作品被盗版的方法及其系统的制作方法
技术领域
本发明公开一种防止数字作品被盗版的方法及其系统,特别是一种可控制数字作 品被非法地通过互联网和可移动介质传播的电脑系统以及使用于该电脑系统中的方法。
背景技术
数字作品(包括软件、文本、图像、音频、视频等等)在互联网上的非法传播,即盗 版,长期以来困扰着版权所有者。要阻止非授权用户非法使用数字作品的拷贝,必须要使用某种方式将容易被复制 的数字作品和某种不容易被复制的事物绑定在一起。注册码或序列号是软件发布中常用的一种方式。用户在购买软件后获得注册码或 序列号,软件被安装时必须输入正确的注册码或序列号,安装才能进行。这种方式的本质是 将作品和注册码或序列号绑定在一起,它的缺点是无法防止用户在合法地取得注册码或序 列号之后非法地传播它。机器码加激活码也是一种常用的方式,软件被安装后,根据所在电脑的软硬件特 征生成机器码并且提交给发布者,发布者对机器码进行处理后生成激活码返还给用户,用 户用激活码激活软件,软件只有在激活码和机器码正确匹配时才开始工作。这种方式的本 质是将作品和特定的计算机绑定在一起,它的缺点是用户可以通过虚拟硬件(如Virtual PC.VMWare等)或拦截获取硬件信息的系统调用等方式来控制机器码的生成从而使用非法 获得的机器码,而且它也限制了合法用户升级电脑软硬件,另外是否允许用户在电脑发生 故障或损坏后免费或以较低价格获得新的激活码,也存在两难的选择。加密狗是比较成熟的保护方式,软件安装后必须同带有加密芯片的加密狗配合才 能使用。这种方式的本质是将作品和加密狗绑定在一起,由于加密狗是非常难以复制的,这 种方法可以严格地防止盗版。但加密狗的成本较高,给这种方法的推广带来了困难。另外 是否允许用户在丢失加密狗之后免费或以较低价格获取新的加密狗,也存在两难的选择。本发明提出,将数字作品和一个容量巨大的作品存储库绑定在一起,存储库的容 量大到无法方便地通过互联网和可移动介质复制和传播,这样就以一种低成本的方式控制 了数字作品的非法传播。

发明内容
本发明的核心思想是,用一个容量巨大的作品存储库代替数字作品本身,作为作 品呈现的基础。要呈现数字作品,必须拥有完整的作品存储库。在用户看来,作品库中任一 作品的呈现,都依赖于整个作品库,换言之,作品被“绑定”在了作品库上。这里所言的“呈现”,泛指用户使用数字作品的过程,如软件的运行,文本、图像、视 频在视觉上的呈现,音频在听觉上的呈现,等等。在具体实现中,某一部作品的呈现,可以仅仅依赖于作品库中部分数据块的值,但 是实施本发明的软件对于用户而言是一个黑盒子,也就是说,即使用户了解这样的事实对作品储存库中的内容进行呈现的过程只不过是以作品存储库中某些数据块为输入的一系 列计算而已,用户也无法获知作品存储库中哪些数据块对于呈现某作品是必要的,更无法 获知这一计算过程的细节。因此不通过接收端程序和作品存储库的话,用户就无法直接对 加密的作品进行呈现,也无法对作品储存库进行“精简”,提取出对于播放某作品而言“必 要”的信息。要实现作品和作品库的“绑定”,就要为具体作品库定制作品的发布数据。如果使 用同样的发布数据可以在不同作品存储库上导入并且呈现某一作品,那么就失去了保护的 意义了。作品的接受者必须向发布者提供作品库的一些特征信息,得到发布者根据作品本 身以及用这些信息定制的发布数据,才能够进行成功地呈现。作品的接受者向发布者提供作品库的特征信息的时机有两种,一种是在作品导入 作品存储库之后,一种是在作品导入作品存储库之前。这两种情形有不同的操作流程。导入后提供特征的流程如图1所示,包括如下步骤原始的数字作品被加密后,形成加密文件(图1(a)中的1),同时描述其加密方式 的比特串(图1(a)中的2)被记录下来。加密文件通过光盘、网络等媒介被传播到接收者的电脑上,被导入一个容量足够 大的作品存储库中(图1(a)中的3)。所谓的导入过程泛指根据加密文件的内容来改变作 品存储库中某些数据块所保存的二进制值的过程。图1(b)中的4是导入完成后的作品存 储库,5是作品存储库中一个被改变了的数据块。描述这一导入过程的比特串(图1(b)中 的6)被记录下来。接着接收端程序生成申请码,其中包括描述这一导入过程的比特串以及作品存储 库本身的一些特征信息。申请码被传回给作品的发布者,发布者将这些信息和有关作品发 布包加密方式的信息融合在一起,作为数字作品的许可码(图1(c)中的7)授予接受者。用户使用接收端程序读取许可码,从而对作品储存库中的内容进行呈现,同时也 检查作品存储库本身的一些特征信息是否符合许可码中的记录,以确认该作品存储库就是 生成申请码的那个作品存储库。如图1(d)所示。在图1中,灰色用来表示原始作品由于发布时的加密操作而具有的特征,横向条 纹用来表示由于作品被导入作品存储库而具有的特征,必须拥有同时融合了这两种信息的 许可码,才能对作品存储库中的作品进行呈现。许可码不但同作品本身相关,而且同具体的 作品存储库相关,因此一个许可码只能在某一个作品存储库上播放某一个作品。许可码被 泄露后,不会造成任何危害。申请码和许可码被传送的过程,实际上是某些信息被传送的过程,这一过程如图2 所示。生成发布文件的加密模块,向许可码生成模块提供由原始作品生成发布包的方式,申 请码生成模块向许可码生成模块提供由于作品被导入作品存储库的方式以及作品存储库 本身保持的一些特征,许可码生成模块将这几种信息融合起来之后,生成指示数据提供给 呈现模块,呈现模块利用指示数据处理库中的数据以呈现作品。导入前提供特征的流程如图3所示,包括如下步骤描述作品存储库(图3(a)中的3)若干特征的申请码(图3 (a)中的2)被生成并 且通过某媒介传送至作品的发布方。发布方参考上述的申请码处理原始的数字作品(图3(a)中的1),得到发布包(图3(b)中的 4)。发布包通过光盘、网络等媒介发布到接收端电脑上,被导入作品存储库中。图3 (C) 中的5是导入完成后的作品存储库,6是作品存储库中一个被改变了的数据块。接收端工具读取因该作品而被修改的数据块的值,根据存储库中某些特征,对作 品进行呈现(如图3(d)所示)。在图3中,横向条纹用来表示同作品存储库中保持的某些特征以及与之相关的数 据。图3(b)中生成的发布包被标记有横向条纹,意味着该发布包根据申请码中描述的作品 存储库中保持的某些特征进行了定制。发布包的数据被导入到作品存储库中的某些数据块 中后,这些数据块仍然同这些特征相关,在呈现时,不但要读取这些数据块,还要参考这些 相关特征。在整个过程中,信息被传送的流程如图4所示。接收端的申请码生成模块将作品 存储库的若干特征信息传送给发布端的加密模块。加密模块将根据这些特征定制作品发布 包,发布包中不但包含同作品本身相关的数据,还包括同作品存储库中若干特征相关的呈 现指示。接收端将定制的发布包导入作品存储库后,即可进行呈现。在实际应用中,上述的两种流程可以融合,即在导入前和导入后,都向发布端提供 作品存储库的一些特征,而发布包和许可码均针对作品存储库进行定制。以下详细介绍在流程中各个关键步骤中可以采用的技术。一、原始作品在发布时的加密操作。这里所言的加密操作是非常宽泛的概念,泛指 任何一种使人不能轻易从发布包中获取原始文件的处理措施。加密操作都是有输入参数 的,输入参数决定如何进行加密。它可以是任何一种对称加密算法,对应的输入参数就是密 钥。它可以是任何一种非对称加密算法,对应的输入参数就是加/解密用的密钥对。它可 以是任何一种自定义的可逆操作的序列,譬如选取一些数据块进行交换(即所谓的洗牌动 作),对应的输入参数就是交换前后数据块的对应关系;譬如选取一些数据块同某个比特 串进行相加、异或等运算,对应的输入参数就是数据块的编号、比特串的值和运算的类型。在导入后提供特征的流程中,这些输入参数可以随机地选取和(或)由发布者进 行选取,同时它们被记录下来,供生成许可码之用。在导入前提供特征的流程中,可以参考 申请码中包含的特征信息决定输入参数,这样加密得到的结果就是和特定作品存储库绑定 的了。原则上,不应单纯使用某一种广为人知的加密算法如Blowfish、AES等,这样会很 容易地被猜出是哪种算法。最好采取完全自定义的加密算法,或者至少采取若干种知名加 密算法的组合。二、作品被导入作品存储库。作品被导入作品存储库的过程,可以这样抽象地描 述以作品的发布文件中的比特串和作品存储库中的旧比特串为输入,进行运算形成新的 比特串后,再存入作品存储库。因为过多的读写对存储介质的寿命有损害,而且读写时间太 长也会影响用户体验,所以实践中不太可能把整个作品存储库内的数据块全部读出再全部 重写一遍。在具体的实施中,可以只修改部分数据块的值。因此作品的导入过程包含两个 要素哪些数据块的值被改变了(即哪些数据块是同被导入的作品相关的),以及这些数据 块的值是如何被改变的。关于“如何改变”,最简单的实施方法是直接用作品发布文件中的内容替换作品存储库中数据块的内容。这样做的缺点是不够“黑盒”通过比对作品发布文件中的内容和作 品存储库中数据块的内容,可以很容易地了解其中的对应关系,从而获知作品存储库中哪 些数据块对于呈现某作品是必要的。较好的做法是,对作品发布文件再进行一次加密操作, 用加密后的内容替换作品存储库中数据块的内容。也可以让该作品和其他作品共享数据 块,共享的方式可以有很多,例如二者分别占据块中的奇数字节和偶数字节,或者奇数字节 和偶数字节分别保留两部作品中对应字节的和与差。关于“改变哪些”,最简单的实施方法是寻找一块连续的空闲数据块进行替换。这 样做的缺点是不够黑盒。较好的做法是,用随机或伪随机的方式选取数据块,以保证数据块 的分布比较零散。上述的再加密操作,和其他作品共享数据块的操作,以及选取数据块的操作,都有 一定的自由度、需要一系列的输入参数来限制,这些输入参数应当在不同时间、不同地点具 有不同的值,以保证每一个作品存储库都具有独特的特征。选取输入参数可以参考如下信 息 作品储存库所在的计算机的硬件特征、软件特征,例如操作系统的版本,时区和 语言设置,声卡、显卡、网卡的型号等等; 当前时间; 外存上某文件的修改时间、访问时间等; 随机数发生器的输出,包括伪随机数发生器和基于硬件的真随机数发生器; 网络上某服务器所提供的提示,例如隶属于作品发布者的服务器; 作品储存库中某数据块的值,作品存储库经过多次的作品导入后,其中数据块 的值在某种程度上具有随机性;·作品储存库所保持的某种特征。上述的这些输入参数即可作为描述作品被导入作品存储库的过程的数据。除了为了保存作品发布文件中的内容而直接被修改的数据块之外,还可以有一种 被间接修改的数据块。如果要详尽描述再加密操作、和已有作品共享数据块的操作、以及选 取数据块的操作,可能需要大量的数据,造成申请码太长。为了缩减申请码,可以将上述数 据经过加密后存储在作品存储库内部的某数据块内(即这种数据块被间接修改了),使得 申请码只包含描述上述加密过程的数据和被间接修改的数据块的地址,以及少量描述作品 存储库特征的数据。三、作品存储库保持的特征。所谓“保持的特征”,是指无论作品存储库经历过多少 次操作,其中的某些数据块和(或)其地址经过某种运算后,得到的结果都不变。作品存储 库保持一些自己的特征,可以使每个作品库都是独特的、唯一的,从而实现本发明的“绑定” 要求。—部分特征在作品存储库被创建时就通过设置数据块的值而生成,在导入作品 时,通过精心的安排而避免修改这些特征。维护这些特征的最简单的方式是保证某些数据 块的值永远不被修改。还可以设置“奴隶”数据块,它们隶属于“主人”数据块,“主人”数据 块被更改后,“奴隶”数据块也随之修改,保证“奴隶”数据块和“主人”数据块的值经过某种 运算(例如异或、相加)后得到的值不变,这种不变的特性即为特征。或者在“奴隶”数据 块内保存一系列地址,这些地址所指向的“主人”数据块内的相邻两个字节的差保持不变,
8当“主人”数据块改变后,“奴隶”数据块内保存的地址也随之改变。或者在“奴隶”数据块 内保存一系列地址,这些地址所指向的“主人”数据块内的字节的值保持不变。还可以要求 某些数据块中第η字节的值比第m字节大,在更新数据块时,不满足这一要求的数据不往这 个数据块中保存。还可以要求某些数据块中第η字节的值一定是偶数,在更新数据块时,不 满足这一要求的数据不往这个数据块中保存。等等。另外,还有一部分特征是在导入某作品时生成的,只要该作品还未被删除,这些特 征就会会得到保持。例如因导入某作品而被修改的数据块的值和地址,这些数据块的前后 次序,导入时进行加密所用的密钥,等等。此外,还可以将导入时被修改的数据块视为“主 人”数据块,为它们设置“奴隶”数据块,从而形成一些特征。四、信息的传递。各种信息必须被转换为比特串,才能够通过非易失介质或网络进 行传递。这些比特串有可能被恶意用户读取和分析,尝试破坏本发明的“黑盒”特性。为了 避免被恶意用户破解,可以在形成用于传递的比特串的时候,再进行一次加密,而在读取传 递来的比特串的时候,先进行解密操作。加密解密的算法及其输入参数由发布端软件和接 收端软件的设计者确定,只要保证二者匹配即可。五、绑定。在导入前提供特征的流程中,生成发布包的加密模块负责绑定。在导入 后提供特征的流程中,许可码生成模块负责绑定。所谓绑定,是指将作品的呈现同某个作品 存储库结合在一起。在导入后提交特征的流程中,许可码生成模块掌握多种信息原始作品在发布时 如何进行加密操作、作品如何被导入作品存储库以及作品存储库本身保持的一些特征,它 甚至可以读取没有被加密的原始作品。它的可以综合、交叉地将这些信息融合以生成指导 作品呈现的许可码,以保证许可码和作品存储库高度相关,不同的作品存储库无法混用许 可码。所谓“综合、交叉地融合”,意味着许可码指导呈现模块在完成某种呈现时去参考多方 面的信息,包括作品存储库本身的特征、导入作品的方式以及原始作品的数据,下面是一些 具体的例子 根据作品存储库中保持的某些特征来判断应当用何种算法对作品进行解密; 根据作品存储库中保持的某些特征来计算出对作品存储库中用于存储待呈现 作品的第η个数据块的地址; 根据作品存储库中同待呈现作品相关的第η个数据块的地址计算出对作品解 密所采用的密钥; 根据解密后作品的开头部分中某些数据块的值计算得到作品的其余部分应该 通过对作品存储库的哪些数据块解密而得到;如果不进行“综合、交叉地融合”,只进行简单的处理,也是可行的。例如将作品入 库加密时用的密钥,或者上述导入时被间接修改的数据块的地址,经过加密形成许可码。或 者将原始作品加密时的密钥经过一道加密过程即形成许可码,加密时以申请码中提供的特 征为输入参数。但这样做容易被破解,不如“综合、交叉地融合”更能保证“黑盒”特性。在导入前提交特征的流程中,加密模块所了解的信息仅包括原始作品和作品存储 库的若干特征。它以作品存储库的这些特征为输入参数,对原始作品进行加密;或者加密时 随机选择参数,同时附加一部分数据指导呈现模块如何根据作品存储库的这些特征计算出 解密用的参数。加密后的作品,只有在具备这些特征的作品存储库中,才能进行解密。
六、差错和验证。人在操作软件时都是有可能犯错的,例如将作品A的申请码发 送给作品B的发布者,或者将为作品存储库甲生成的许可码发送给拥有作品存储库乙的用 户。为了快速地查出这些错误,须在申请码和许可码中加入必要的验证信息 在申请码中加入有关作品本身的特征信息,许可码生成模块发现申请码和作品 不对应,则报错。 在许可码中加入有关作品存储库本身的特征信息(此信息来自于申请码)和 (或)作品本身的信息,呈现模块如果发现许可码和作品及作品存储库不对应,则报错。恶意用户可能会生成许多不同的许可码,依次尝试看是否能对作品解密。许可码 中加入验证信息,不但可以提醒用户的无心之失,在恶意用户进行这样的攻击时,此方法还 可以起到增强绑定效果,提高保护程度的作用,只要在报错后的一段时间内拒绝提供服务, 恶意攻击者进行攻击的次数就大大减少了。要保证“黑盒”特性,还必须防止针对软件本身二进制机器代码的逆向分析。只要 投入足够长的时间和人力,使用调试工具(Debugger)来逐条分析二进制机器代码的每条 指令,就能够分析出软件所采用的各种算法,从而利用这些算法从作品存储库或加密文件 中提取出原始作品。因此必须在设计软件的过程中考虑到如何对逆向分析设置阻碍,使盗 版者无法以有限的时间和人力进行成功的破解,可以采取的方法包括 利用编译器删除可执行文件中的符号; 展开子函数,对机器指令序列进行重排优化,以提高逆向分析的难度; 普通的Debugger只能查看虚拟内存中的数据,可以向操作系统申请直接读写 物理内存,这样可以避免软件内部的数据结构被暴露给逆向分析者; 逆向分析者一般只熟悉常见的指令集,如x86,ARM等,可以在软件内部包含一 个自定义的虚拟机,其指令集是不公开的,关键的运算指令在此虚拟机上执行,这样更增加 了一重防护; 在计算过程中插入一些无意义的步骤,例如运算和对内存的读写,这些步骤耗 费CPU的计算时间,但不影响最终的计算结果,也不影响软件对用户表现出的行为,这些冗 余的步骤所对应的机器指令可以起到迷惑逆向分析者的作用; 逆向分析者可以通过截获软件的系统调用,来准确地知道软件正在读写作品存 储库的哪个位置,从而分析出作品存储库的哪些数据块是某作品的“必要”部分,为了阻碍 这种分析,要增加冗余的读写操作,这些操作不破坏作品存储库本身保持的特征和其中存 储的作品,也不影响软件对用户表现出的行为。作品存储库的容量要足够大,大到通过互联网或移动存储介质进行传播非常困 难,以阻止客户在合法获得数字作品的授权后,再非法地将包含该数字作品的整个作品存 储库传播给第三方。数字作品被盗版的严重程度,和传播难度是正相关的。在卡带和录像带流行的时 代,由于复制困难,复制精度也不高,盗版的活动有限。在CD和VCD等数字介质诞生后,精 确复制成本降低,盗版光盘开始泛滥。后来出现了拨号上网,体积较小的数字音乐作品(即 MP3、WMA格式的音频文件)的传播成本近乎为零,非法下载盛行,对音乐产业造成了极大冲 击。但由于带宽的限制,当时视频文件的非法下载还非常有限。再后来随着带宽的改善和 P2P技术(即BT、eMule等软件)的诞生,以及高压缩比的视频格式如MPEG4、RMVB的流行,视频文件的下载速度大大增加,电影的非法下载也泛滥了起来。将作品和容量庞大的作品存储库相绑定,就传播速度而言,相当于作品的体积不 变,而减小了带宽。当盗版的数字作品无法在几天之内通过P2P软件下载而得到,也无法通 过廉价的光盘购得的时候,很多人就会放弃使用盗版了,宁可花适当的钱买个方便。不可否认,相对于把数字作品和电脑硬件或加密狗相绑定的做法,本发明是一种 软性的、不彻底的保护方法,非法用户还是可以通过拷贝整个作品存储库来进行盗版。本方 法只是通过限制作品存储库的最小体积来尽可能增大盗版的难度,降低盗版对版权所有者 利益的侵害。但本发明软性的保护方法,相对于把数字作品和电脑硬件或加密狗相邦定的 做法,也有一个突出的优点,即用户可以备份自己的作品存储库,若发生硬盘或闪存盘的遗 失或硬件故障,可以从备份文件恢复作品存储库。考虑到用户需要备份自己的作品存储库,不应当完全禁止对作品存储库进行整体 拷贝。但作品存储库的整体拷贝如果过于频繁的话,则有很大嫌疑是在进行非法传播,因此 要设法限制整体拷贝的次数,基本思路是让接收端软件能够感知作品存储库所在的软硬件 环境的改变,并且在改变后,要求用户做出解释。具体地说,作品存储库中可以保存如下信 息 作品存储库所在存储介质的特征信息,包括介质的容量、型号等等。 作品存储库的各个数据块在介质上的位置,如硬盘上的哪个磁盘哪个柱面哪个 扇区,等等; 支持接收端软件的系统软件的特征信息,包括操作系统的版本,所包含的组件
等等; 接收端软件所在的硬件平台的特征信息,包括主板、显卡、声卡、网卡等等的型号。当作品存储库被转移到另外的计算机上,或者另外的非易失存储介质上后,接收 端软件就能感知到作品存储库中的所保存的软硬件特征信息和其所在的软硬件环境不符 合。随之接收端软件可以拒绝工作,并且要求用户向软件的发布者或第三方机构提出转移 作品存储库的申请。作品存储库中的所保存的软硬件特征信息是经过非对称加密后的,接收端软件可 以将其解密后读出,而加密方式由软件的发布者或第三方机构掌握。因此要加密软硬件特 征信息,必须向软件的发布者或第三方机构提出申请,请他们代为加密。申请通过后接收端 软件才能得到加密后的软硬件环境的信息,从而将其存储到作品存储库中,并且恢复向用 户提供服务。为了避免恶意用户通过修改可执行文件的二进制代码而绕过对软硬件特征信息 的检查,软硬件特征信息从外存读出后被保存在内存中数据结构的许多不同部分,并且在 接收端软件进行多种操作时都进行特征信息的检查。软件的发布者或第三方机构根据转移作品存储库的申请,可以判断出某一作品存 储库是否被频繁地转移,如果是,就拒绝为该作品存储库的转移而做出的申请。显然,如果在容量巨大的作品存储库中仅仅保留一部作品,是对存储空间的浪费。 但是,正如上文描述过的,作品被存入作品存储库的过程,只需要直接和间接地修改部分数 据块,即只有部分数据块同某一部作品相关。因此,作品存储库中可以包含多部作品,以减少空间浪费。当用户对某作品不再感兴趣时,还可以删除它,使得之后的作品可以重复使用 它曾经占用过的数据块。当作品存储库存储很多部作品的时候,为了改善用户体验,要提供查询、浏览、预 览的功能,以帮助用户快速找到某作品。要支持这些功能,需要在作品存储库中保存这些信 息 作品接收者和作品发布者之间的交易信息。方便用户根据某作品的发布人、入 库时间、为许可码支付的费用和支付的时间等等来查询和浏览作品。 用户通过作品存储库所能呈现的各个作品的概要信息和预览信息。方便用户根 据某作品的标题、介绍、标签、关键字等来查询和浏览作品,在选定某作品后,可以通过预览 其中一小段音频视频或若干张截图来快速了解作品的内容。为了提高检索速度,还可以为这些信息建立索引,从而快速地根据检索条件定位 到某个作品。同数字时代其它类似的防盗版手段一样,本发明对于音视频的二次采样无能为 力。如今音箱和显示器都具有数字接口,如果盗版者有充分的动机,完全可以对经过这些数 字接口的信号进行二次采样(数字作品的制作过程为首次采样),压缩制作音视频作品并 且方便地在网络上传播。但是在盗版者未必对所有的作品都有足够的动机。对于热门的音频视频作品,盗 版的经济利益巨大,即使没有经济利益,仅仅所谓的“成就感”就足以促使一些人进行盗版。 但对于冷门的、小众的音频视频作品,即使原始文件不难得到、不需要二次采样的步骤,提 供下载者也寥寥无几甚至难觅踪迹。这种冷门的、小众的音频视频作品就可以利用本发明 在网络上进行作品发布,面向在地理上非常分散的喜好者,获得一定的收益,而不用担心喜 好者相互之间通过网络非法共享作品。另外,不是所有的数字作品都非常容易进行二次采样。需要同用户交互才能进行 呈现的作品就不能完全通过二次采样来盗版。典型的例子是电脑游戏。如今网络游戏大行 其道,而单机软件则逐渐式微,一个重要原因就是网络游戏需要用户同服务器的交互,因而 很难盗版。利用本发明,单机软件的盗版也变得非常困难。高清晰度图片也需要一定程度的用户交互。由于高清晰度图片的尺寸往往要大于 显示设备的分辨率,如果不进行缩放的话,一次只能显示一个局部。用户需要进行适当的缩 放和拖动,才能在显示设备中看到期望中的局部。如果要进行二次采样,必须将图片置于原 始大小,并且进行若干次拖动和拷屏,得到各个局部的拷屏图片,然后再凭借图像拼接软件 合成原始图片。适当地设计呈现模块,可以阻碍这种方式的二次采样的顺利进行(当然,无 法彻底阻止) 图像或图像的局部随机地或以某种用户不可预知的方式被扭曲变形; 图像或图像的局部随机地或以某种用户不可预知的方式被改变颜色; 用户拖动图像时随机地或以某种用户不可预知的方式增减偏移量。以上这些方法,都可以破坏各个局部的拷屏图片相互之间的连贯性。采取所谓“某 种用户不可预知的方式”是为了保证盗版者无法摸清扭曲、变色和增减偏移量的规律,从而 采取反制措施。调整扭曲、变色和偏移的程度由一系列参数决定,选择这些参数的方法,同 作品导入时选择输入参数的方法相同。
此外,如果工具被频繁地操控来进行拖动等操作的话,进行必要的人机交互,例如 显示一副绘有很多干扰图形的图片,要求用户识别其中的字符,以确认是人而不是软件或 机器在操控接收端工具。有益效果本发明提出了一种有效的机制,使得通过互联网或可移动介质传播盗 版数字作品的难度大大提高,因而减少了 “合法购买却非法散发”的情形,促使大多数用户 通过合法的渠道获得数字作品的使用权,使得数字作品的作者能够获得合理的收益,从而 保护知识产权,促进创意产业发展。


图1 导入后提交特征的操作流程图2 导入后提交特征的流程中各项信息的流转图3 导入前提交特征的操作流程图4 导入前提交特征的流程中各项信息的流转
具体实施例方式实施方式1 (最佳实现方式)在本实施方式中,作品存储库被划分为若干个大小相等的块。所有保存着有意义 的内容的数据块最多和一个作品相关,换言之,不存在多个作品共享一个数据块的情形。存在一些同作品不直接相关、起到辅助作用的数据块。其中一种是总索引块,指示 每个作品的索引块的位置。另外还有一种是常量池,常量池中的数据块的值会改变,但其对 应的常量字节值不变。常量池有两种类型指针常量池,其中的每个数据块都是一个指向作 品存储库中某字节的指针,且其指向的字节的值保持不变;运算常量池,其中的每个数据块 经过某函数计算后得到的字节值不变。常量池中的一个数据块简称一个常量块,所有常量 块都被编号。所有的加密过程被统一地描述为一系列的步骤,每个步骤用四个参数描述<起始地址X终止地址X处理函数X输入参数>在每个步骤中,比特串从起始地址到终止地址之间的内容被读出,处理函数按照 输入参数处理该内容后得到新的内容,再用新的内容替换掉这部分内容。处理函数有若干 个可选,种类包括随机洗牌、对称加密、非对称加密等等,每个不同的处理函数用一个不同 的整数ID来代表。对应的解密过程被描述为次序和加密过程相反的一系列步骤,每个步骤还原加密 过程中对应步骤对比特串所做的修改,每个步骤同样用上述的四个参数来描述。在作品发布时,进行一轮加密操作,同时形成比特串甲,甲中包含了描述对应的解 密操作的若干参数。在作品被导入作品存储库时,再进行一轮加密操作,同时形成比特串乙,乙中包含 了描述对应的解密操作的若干参数。这两次加密操作在进行之前,通过基于硬件的真随机数发生器的输出来决定加密 操作各个步骤如何进行。当所在计算机上没有真随机数发生器时,参考软件发布商所指定 的服务器所提供的真随机数。
13
作品的再加密结束后,参考真随机数,在作品存储库中选择一系列的数据块用于 保存加密后的作品,以及作品的索引块。在索引块中,依次保存这些信息地址列表(用于 指示作品占用了作品存储库的哪些数据块),预览信息,文本描述,封面图片,预览片段,供 搜索用的关键字。接着,对索引块中的地址列表进行加密,同时形成比特串丙,丙中包含了 描述对应的解密操作的若干参数。最后,为该作品选择256个常量块,且它们所对应的常量 字节值覆盖从0到255的所有值;把这些常量块的编号依次保存在索引块中,形成编号数 组,把这些常量块所对应的字节值依次计算出来,可形成字节映射数组。可以预先对编号数 组进行若干轮随机洗牌,以确保字节映射数组中的值是无规律的。字节映射数组可被视为 一个表格,可以通过查表的方式将一个字节值映射为另外一个字节值。字节映射数组只以 编号数组为输入被动态地构建,不会被存储到作品存储库中。将比特串乙、丙串接在一起构成申请码的第一部分,将字节映射数组作为申请码 的第二部分。申请码经过非对称加密算法A处理后,经过网络传递给发布方软件。发布方软件利用对应的非对称解密算法A’还原出比特串乙、丙,将它们和比特串 甲串接起来,接着将其中某些字节用字节映射数组映射为一个新的值,形成许可码。许可码 经过非对称加密算法B处理后,经过网络传递给呈现模块。呈现模块利用对应的非对称解密算法B’还原出许可码,接着以编号数组为输入动 态地构建字节映射数组,利用它将许可码还原为比特串甲、乙、丙。利用比特串丙解密索引 块中的地址列表,接着用比特串甲、乙解密出原始作品以进行呈现。同一作品在不同的作品存储库中,为其生成的字节映射数组不同,因此一个许可 码只能适应于一个作品存储库。实施方式2在本实施方式中,作品存储库被划分为若干个大小相等的块。所有保存着有意义 的内容的数据块最多和一个作品相关,换言之,不存在多个作品共享一个数据块的情形。存在一些同作品不直接相关、起到辅助作用的数据块。其中一种是总索引块,指示 每个作品的索引块的位置。另外还有一种是常量池,常量池中的数据块的值会改变,但其对 应的常量字节值不变。常量池有两种类型指针常量池,其中的每个数据块都是一个指向作 品存储库中某字节的指针,且其指向的字节的值保持不变;运算常量池,其中的每个数据块 经过某函数计算后得到的字节值不变。常量池中的一个数据块简称一个常量块,所有常量 块都被编号。所有的加密过程被统一地描述为一系列的步骤,每个步骤用四个参数描述<起始地址X终止地址X处理函数X输入参数>在每个步骤中,比特串从起始地址开始到终止地址之间的内容被读出,处理函数 按照输入参数处理该内容后得到新的内容,再用新的内容替换掉老的内容。处理函数的种 类包括随机洗牌、对称加密、非对称加密等等,每个不同的处理函数用一个不同的整数ID 来代表。对应的解密过程被描述为次序和加密过程相反的一系列步骤,每个步骤还原加密 过程中对应步骤对比特串所做的修改,每个步骤同样用上述的四个参数来描述。当接收者希望导入某作品时,先在作品存储库中为该作品创建一个索引块。接着, 为该作品选择256个常量块,且它们所对应的常量字节值覆盖从0到255的所有值;把这些常量块的编号依次保存在索引块中,形成编号数组,把这些常量块所对应的字节值依次提 取出来,可以形成字节映射数组。必要时调整编号数组内的次序,以保证字节映射数组中的 值是无规律的。字节映射数组可被视为一个表格,可以通过查表的方式将一个字节值映射 为另外一个字节值。字节映射数组只以编号数组为输入被动态地构建,不会被存储到作品 存储库中。字节映射数组经过非对称加密后,作为申请码,经过网络传递给发布端软件,于此 同时接受者将其希望获得的作品名称告知发布端。发布端软件对申请码解密,还原出字节 映射数组。发布端软件对该作品的原始文件进行加密,形成发布包。同时形成描述对应的解 密过程的比特串甲,比特串甲中的若干参数经字节映射数组转换后,得到许可码。许可码被 附加在发布包的开头,传递给接收端软件。接收端软件在作品存储库中选择一系列的数据块用于存储该作品。存储完成后, 在索引块中,依次保存这些信息地址列表(用于指示作品的其它内容位于作品存储库的 哪些数据块中),预览信息,文本描述,封面图片,预览片段,供搜索用的关键字,以及许可 码。在呈现时,接收端软件根据索引块中的编号数组动态地构建字节映射数组,利用 它将许可码还原为比特串甲。接着按照地址列表从作品存储库中读出加密后的作品,用比 特串甲解密出原始作品以进行呈现。
权利要求
1.一种数字作品发布系统,由发布端工具和接收端工具构成,其特征在于(1)接收端工具能够在非易失存储器上创建作品存储库;(2)接收端工具能够通过某种媒介接收作品的发布包,并且将其导入作品存储库,即 根据发布包的内容修改作品存储库中的数据块,以便之后可以读取这些数据块来呈现该作品; (3)接收端工具使作品存储库内的二进制数据保持一个或多个特征,且每个特征都至 少在一段时间区间内保持不变,或永久保持不变;(4)为了使作品的接收者能够利用某作品存储库呈现某作品,发布端工具至少要通过 某种方式向接收端工具传递一次指示数据,且该指示数据同特定的作品存储库所保持的某 个(某些)特征和(或)该作品被导入作品存储库的方式相关;(5)接收端工具在呈现数字作品时,根据发布端工具所生成的指示数据,以了解和 (或)利用作品存储库所保持的某个(某些)特征以进行正确的呈现;并且(或者)根据 该指示数据检验作品存储库是否具有某个(某些)特征,若无这些特征则拒绝进行正确的 呈现。
2.如权利要求1所述的数字作品发布系统,其特征在于,作品存储库包含足够多的二 进制位,使它无法在短时间内通过网络和(或)移动存储设备进行复制。
3.如权利要求1所述的数字作品发布系统,其特征在于,在导入相同的作品发布包时, 接收端工具由于作品储存库当前的状态、其所在的计算机的硬件特征、软件特征、当前时 间、随机数发生器的输出、作品储存库的当前状态、网络上某服务器所提供的提示和(或) 其它信息的不同,以不同的方式来修改作品存储库中的数据块,并且(或者)为作品存储库 新增不同的特征。
4.如权利要求1所述的数字作品发布系统,其特征在于,所述的接收端工具使作品存 储库内的二进制数据保持的特征,是指具有计算不变性,具体地,是指至少以如下项目中的 一项或多项为输入(1)作品存储库中存储的比特串中的若干数据块的值;(2)作品存储库中存储的比特串中的若干数据块的地址;(3)作品存储库中为了导入某个(某些)作品而被修改的数据块的值;(4)作品存储库中为了导入某个(某些)作品而被修改的数据块的地址;(5)作品存储库中为了导入某个(某些)作品而被修改的数据块同作品的发布包的数 据块之间的映射关系;经过至少包含如下运算中一项或多项的若干操作步骤后,其结果保持不变(1)算术运算;(2)逻辑运算;(3)浮点运算;(4)取数运算,即将某数据视为非易失存储器上的地址,取出该地址处的数据。
5.如权利要求1所述的数字作品发布系统,其特征在于,发布端工具和(或)接收端工 具是由计算机以及运行在计算机上的软件所构成的系统,并且该系统采用了若干反逆向工 程的方法,这些方法至少包括如下技术之一(1)进行计算时某些数据保存在物理内存而不是虚拟内存中;(2)进行计算时某些指令不是某种商用CPU的机器指令,而是某种自定义虚拟机的指令;(3)进行计算时执行一些无意义的操作,这些操作耗费CPU的计算时间,但不影响软件 对用户表现出的行为;(4)进行计算时,选择若干内存位置进行无意义的读写,这些操作耗费CPU的计算时 间,但不影响软件对用户表现出的行为;(5)读写作品存储库时,选择若干数据块进行无意义的读写,这些操作耗费访问非易失 存储器的计算时间,但不影响软件对用户表现出的行为。
6.如权利要求1所述的数字作品发布系统,其特征在于,接收端工具采用显示设备、扬 声器和(或)其他设备对数字作品进行呈现,并且在呈现时采用了若干阻碍用户对所呈现 的作品进行采样的技术,这些技术至少包括如下技术之一(1)图像或图像的局部随机地或以某种用户不可预知的方式被扭曲变形;(2)图像或图像的局部随机地或以某种用户不可预知的方式被改变颜色;(3)用户拖动图像时随机地或以某种用户不可预知的方式增减偏移量;(4)当接收端工具被操控时,进行必要的人机交互,以确认是人而不是软件或机器在操 控接收端工具。
7.如权利要求1所述的数字作品发布系统,其特征在于,作品存储库中至少包含了如 下内容之一(1)作品存储库所在存储介质的特征信息;(2)支持接收端软件的系统软件的特征信息;(3)接收端软件所在的硬件平台的特征信息;(4)作品接收者和作品发布者之间的交易历史信息;(5)用户通过作品存储库所能呈现的各个作品的概要信息和预览信息,和(或)用于快 速检索作品的索引。
8.如权利要求1所述的数字作品发布系统,其特征在于,接收端工具通过某种媒介向 发布端工具传递指示数据,该数据至少是根据如下项目中的一项或多项通过某种计算得到 的(1)生成作品发布包的方式;(2)原始作品;(3)作品存储库所保持的某个(某些)特征的信息;(4)描述作品存储库导入某作品之方式的信息。
9.如权利要求1所述的数字作品发布系统,其特征在于,至少在如下一个或多个步骤 中,数据经历了加密和(或)解密处理(1)生成作品的发布包的过程中;(2)发布包被导入作品存储库的过程中;(3)接收端工具生成向发布端工具传送的数据的过程中;(4)发布端工具生成向接收端工具传送的数据的过程中;(5)接收端工具读取作品存储库中的数据块并且利用其对作品进行呈现的过程中。
10.如权利要求1所述的数字作品发布系统,其特征在于(1)在作品存储库中保存接收端软件所在的软硬件平台的特征信息;(2)经过一定的时间和(或)一定的操作次数后,接收端软件检查其所在的软硬件平台 的特征信息是否同作品存储库中保存的信息一致,如果不一致则锁住作品存储库,即停止 向用户提供某项或某几项服务;(3)用户若希望接收端软件为锁住的作品存储库解锁,则必须向某授权者发送申请,得 到许可后方可进行解锁。
全文摘要
本发明公开一种防止数字作品被盗版的方法及其系统,特别是一种可控制数字作品被非法地通过互联网和可移动介质传播的电脑系统以及使用于该电脑系统中的方法。原始的数字作品被加密后发布到客户端电脑上,被导入一个容量足够大的作品存储库中,接着有关导入方式的信息、作品存储库本身的特征信息被传回给作品的发布者,发布者将这些信息和有关作品加密方式的信息融合在一起,作为数字作品的许可码授予客户。客户按照许可码的指示对作品储存库中的内容进行解密和播放,而无法直接对加密的作品进行播放,也无法从作品储存库中还原出原始的数字作品。作品储存库的容量足够大,通过互联网进行传播非常困难。这样就阻止了客户在合法获得数字作品的授权后,再非法地将数字作品传播给第三方。
文档编号G06F21/22GK101996296SQ200910166358
公开日2011年3月30日 申请日期2009年8月31日 优先权日2009年8月31日
发明者王逵 申请人:欧蜀平
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1