(计算机软件与理论专业论文)基于二次剩余的混和型软件水印研究.pdf_第1页
(计算机软件与理论专业论文)基于二次剩余的混和型软件水印研究.pdf_第2页
(计算机软件与理论专业论文)基于二次剩余的混和型软件水印研究.pdf_第3页
(计算机软件与理论专业论文)基于二次剩余的混和型软件水印研究.pdf_第4页
(计算机软件与理论专业论文)基于二次剩余的混和型软件水印研究.pdf_第5页
已阅读5页,还剩49页未读 继续免费阅读

(计算机软件与理论专业论文)基于二次剩余的混和型软件水印研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着计算机软件业和互联网的迅猛发展,针对软件的盗版与破解也随之泛滥起 来。因此,如何对软件版权以及软件程序核心内容进行保护,已经成为软件安全领 域中的一些棘手问题。目前的软件版权保护技术主要有基于加密方法和信息隐藏技 术两种。在信息隐藏领域,主要有三种软件版权保护技术,分别是代码混淆、软件 水印和篡改抵制技术。本文详细研究了目前软件水印技术,针对水印鲁棒性不高的 缺陷,提出了一种基于二次剩余理论的软件水印方案。 软件水印从嵌入和提取方式分为静态软件水印和动态软件水印。静态软件水印 具有嵌入提取方便的优点,但是抗攻击性能较差,无法应用于对水印强度要求高的 场合。相反,动态软件水印技术具有抗攻击性能强的特点,动态图软件水印技术是 目前最好的动态软件水印技术之一其核心思想是将水印信息编码成拓扑图结构, 从而使对拓扑图进行变换的保持语义攻击难以实现。提取过程是在用户输入提取密 钥后在内存中建立拓扑图,然后用解码算法将图结构恢复成水印信息,其鲁棒性更 高,隐蔽性更强。 动态图软件水印技术的核心部分就是图的编解码问题。在目前基本的编码方式 中,p p c r 枚举编码由于其结构上的优势,鲁棒性是最好的,但是缺点是数据率较 低。本文提出了基于二次剩余理论的水印方案,首先根据电子协议得到哈希值日, 然后根据r a b i n 密码体制得到二次剩余c ,把c 转换为基于二叉树的基数编码的数 据结构,当水印图被篡改时能由编码函数感知并终止程序的运行。同时为了增强水 印的鲁棒性,又采用附加了基数x 链表的p p c t 编码方案,把通过r a b i n 密码体制 反算得出的4 个解转换为该数据结构。该方案充分利用了p p c t 在结构上的优势, 又结合了基数置编码数据率高的特点。如果攻击者破坏了其中一个结构,可以从另 外结构恢复出一个解m ,再根据r a b i n 密码体制验证该值的有效性。 关键词:软件版权保护、软件水印技术、二次剩余定理、常量编码、二 叉树基数k 编码、p p c t 编码 a b s t r a c t r e s e a r c ho nm i x e ds o f t w a r ew a t e r m a r k i n g b a s e do l lq u a d r a t i cr e s i d u e a b s t r a c t a st h ei m p e t u o u sd e v e l o p m e n to fc o m p u t e rs o f t w a r ei n d u s t r ya n di m e m e t ,t h e s o i t w a r ep i r a c ya n dc r a c k i n gw h i c hi sa i m i n ga ts o r w a r ea r er u n n i n gr a m p a n t l y s oh o w t op r o t e c tt h ec o p y r i g h ta n dk e m e lc o n t e n to ft h es o r w a r ei sb e c o m i n gai n t r a c t a b l e p r o b l e mi n s o 仔w a r es e c u r i t yf i e l d a tp r e s e n t ,t h e r ea r et w ok i n d so ft e c h n o l o g i e si n s o f t w a r ep r o t e c t i o n :e n c r y p t i o na n di n f o r m a t i o nh i d m g i ni n f o r m a t i o nh i d i n gf i e l d ,t h e r e a r et h r e ek i n d so ft e c h n o l o g i e sf o rs o f t w a r ep r o t e c t i o n :c o d eo b f u s c a t i n g , s o f t w a r e w a t e r m a r k i n ga n dt a m p e rp r o o f i n g t i l i sp a p e rs t u d i e ss o f t w a r ew a t e r m a r k i n gd e t a i l e d l y a n df o rt h es h o r t c o m i n go fw e a kr o b u s t n e s so fs o f t w a r ew a t e r m a r k , t h i sd i s s e r t a t i o np u t f o r w a r dan e w h e m ew h i c hb a s e so nq u a d r a t i cr e s i d u et h e o r y s o f t w a r ew a t e r m a r k i n gi sd i v i d e di n t os t a t i cw a t e r m a r ka n dd y n a m i cw a t e r m a r kv i a e m b e d d i n ga n de x t r a c t i n gm o d e 。s t a t i cw a t e r m a r kh a st h ef e a t u r eo fe a s yt oe m b e da n d e x t r a c t , b u ti t sa n t i a t t a c k i n ga b i l i t yi sb a da n dc a l l tb eu s ei nt h es i t u a t i o nw h o s e d e m a n di sh i g h e r i no p p o s i t i o nt os t a t i cw a t e r m a r k ,d y n a m i cw a t e r m a r kh a st h ef e a t u r e o fa n t i a t t a c k i n g ,ni so n eo ft h eb e s ts o f t w a r ew a t e r m a r k s i t sk e r n e l i d e ai st r a n s f o r m w a t e r m a r ki n f o r m a t i o ni n t ot o p o l o g ys t r u c t t t r e ,t h e nm a k es e m a n t i c s - p r e s e r v i n ga t t a c k i n g u n s u c c e s s f u l l y 1 1 l ee x t r a c t i n gp r o c e d u r ei sa f t e ru s c ri n p u ts e c r e tk e y , t h et o p o l o g yg r a p h i sc r e a t e di nh e a p ,a n da tl a s ti ti sr e c o v e r e dt ow a t e r m a r kd a t av i ad e c o d ea l g o r i t h m i t s r o b u s t n e s sa n dh i d i r i gp e r f o r m a n c ea r es t r o n g e r 1 1 把c o r eo fd y n a m i cw a t e r m a r ki st h ee n c o d i n ga n dd e c o d i n go fg r a p h s a tp r e s e n t , t h ep p c te n u m e r a t i o ne n c o d e si st h eb e s to n ef o ri th a sa d v a n t a g ei ns t r u c t u r ea n d r o b u s t n e s s b u ti t ss h o r t c o m i n gi sl o wd a t ar a t e t l l i sp a p e rb r i n g so u taq u a d r a t i c r e s i d u e - b a s e dw a t e r m a r k i n gs c h e m e a tf i r s t ,h a s hv a l u ei sg o tf r o me l e c t r o n i cl i c e n s e t h e nq u a d r a t i cr e s i d u eci sc a i c l l l a t e db yr a b i nc i p h e rs c h e m e a tl a s t , ci st r a n s l a t e di n t o b i n a r yt r e e b a s e dr a d i x kd a t as t r u c t u r e ,w h e nt h ew a t e r m a r ki st a m p e r e dt h ep r o g r a m w i l lt e r m i n a t ee x e c u t i n g ,a tt h es a m et i m e ,i no r d e rt oe n h a n c et h er o b u s t n e s so f w a t e r m a r k , t h ec o m b i n a t i o no fr a d i x - ka n dp p c te n c o d i n gs c h e m ei sa d o p t e di l lt h i s p a p e r t h er e s o l u t i o n sw h i c ha l ec o n v e r s e l yd e d u c e dv i ar a b i ns c h e m ea r et r a n s l a t e di n t o t h i sc o m p o u n ds t r u c l u r e ,t h i ss c h e m ef u l l ym a k e su s eo ft h ea d v a n t a g eo fp p c ti n s t r u c t u r ea n df e a t u r eo fr a d i x ki i lk g hd a t ar a t e i fa t t a c k e rd e s t r o y so n eo ft h e s e s 仃u c 咖s a n o t h e rr e s o l u t i o nmc a nb er e c o v e r e dv i at h er e s ts t r u c t u r ea n dv e r i f yi t s v a l i d i t yb yr a b i nc i p h e rs y s t e m k e y w o r d :s o f t w a r ec o p y r i g h tp r o t e c t i o n ,s o f t w a r ew a t e r m a r k i n g ,q u a d r a t i c r e s i d u e , c o n s t a n te n c o d e ,b i n a r yt r e e - b a s e dr a d i x - ke n c o d e ,p p c te n c o d e 青岛大学硕士学位论文 学位论文独创性声明 本人声明,所呈交的学位论文系本人在导师指导下独立完成的研究成果。文中 依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上 已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或成 果。 本人如违反上述声明,愿意承担由此引发的一切责任和后果。 论文作者签名:日期:z 7 年f 月日 学位论文知识产权权属声明 本人在导师指导下所完成的学位论文及相关的职务作品,知识产权归属学校。 学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权利。本人离校 后发表或使用学位论文或与该论文直接相关的学术论文或成果时,署名单位仍然为 青岛大学。 本学位论文属于: 保密口,在 年解密后适用于本声明。 不保密 ( 请在以上方框内打“4 ”) 论文作者签名: 导师签名: 压啦 日期:伽7 年,月日 日期彩印年j ,月,多日 ( 本声明的版权归青岛大学所有,未经许可,任何单位及任何个人不得擅自使用) 第一章绪论 1 1 课题背景及研究意义 第一章绪论 计算机网络技术的飞速发展,为数字信息传播提供了极大的便利,越来越多的 知识产品以电子版的方式在网上传播。数字信号处理和网络传输技术可以对数字媒 体的原版进行无限制的任意编辑、修改、拷贝和散布,造成数字产品的知识产权保 护和信息安全的问题日益突出,并成为数字世界的一个非常重要和紧迫的议题。因 此,如何防止知识产品被非法复制及传播,是急需解决的问题。随着计算机软件被 应用到工农业生产和人们日常生活的各个领域,随之而来的软件盗版则是日益猖獗 u j 为了保护软件产品的知识产权,许多软件版权保护技术被陆续开发出来,其中 代码混淆( c o d eo b f u s c a t i o n ) 、软件水印( s o f t w a r ew a t e r m a r k i n g ) 和防篡改 f r a m p e r - p r o o f m g ) 是近几年涌现出的保护软件版权的热点技术【2 j 以前,针对软件版权的保护主要是通过加密的方式进行。比如常见的软件狗技 术就使用在计算机并口或u s b 口上的硬件产品来对软件进行保护的。其工作原理是 程序通过调用软件狗开发套件提供的接口模块对软件狗操作,软件狗响应该操作并 通过接口模块将相应数据返回给程序,程序可以对返回值进行判定并采取相应的动 作,如果返回无效的响应,表明没有正确的软件狗,应用程序可以自动终止运行。 但是,就如同在多媒体技术领域一样,加密技术并不是保护软件产品版权的万能钥 匙,一旦加密机制被破解,则软件产品的版权保护也就无从谈起了。 为了能够开发出和加密机制互补的软件产品保护技术,国际上开始提出并尝试 一种新的关于信息安全的概念,开发设计不同于密码学的技术,即将机密资料信息 秘密的隐藏于一般的文件中,然后再通过网络传递。由于这些机密资料并不像加密 过的文件一样是一堆乱码,而是看起来和其他非机密性的一般资料无异,因而不易 被盗版者察觉,也就不会被盗版者破解。而这种特点是密码技术所欠缺的,也是信 息隐藏技术的基本思想。数字化的信息隐藏技术是一种全新的技术,最开始的时候 主要应用于数字图像、音频和视频等多媒体信息的版权保护研究,随着这种技术的 不断发展,逐渐发展出了在可执行文件中隐藏信息的技术,即针对软件产品的信息 隐藏技术。 1 2 软件保护的研究现状 目前,针对软件版权的攻击方法主要有三种,最普遍的攻击形式是软件盗版, 第二种形式是逆向工程,第三种形式是代码篡改。一般来说,如果软件能被专利、 青岛大学硕士学位论文 版权、契约、贸易安全法等合法形式保护,那么对软件的攻击可以被阻止。遗憾的 是,发现破坏软件版权的行为通常很困难,即使发现了违法行为,通过法律手段获 得补偿也是非常昂贵的,甚至是不可能的。正因为如此,用技术方法来保护软件开 发商的知识产权是非常重要的。针对上述三种攻击形式,三种相应的保护软件知识 产权的技术应用而生,用代码混淆技术阻止逆向工程,用软件水印技术对抗软件盗 版,用防篡改技术防范代码篡改n l 。 1 2 1 代码混淆技术 攻击软件知识版权的方法之一是软件逆向工程方法。软件逆向工程,就是通过 分析软件目标系统,认定系统的构件及其相互关系,并经过高层抽象或其它形式来 展现软件目标系统的过程。逆向工程师通过反汇编器或反编译器可以反编译应用程 序,然后去分析它的数据结构和控制流图。这既可以用手工完成,也可以借助一些 自动化工具。只要应用程序被反编译过来,程序就会一览无遗,有被黑客发现安全 漏洞的可能。为减小逆向工程的威胁,最有效的办法是代码混淆,另外两种方法是 反编译和反汇编。 代码混淆技术最初主要是用来保护软件产品的不正当再处理,它能被用来在可 执行文件中存储额外的信息。这种技术试图把一个程序p 变换成一个功能等价的程 序p ,而p 相对p 更难以阅读和理解,对其进行逆向工程也就更困难。在技术的角 度上说,代码混淆技术和代码优化技术( c o d eo p t i m i z a t i o n ) 的基本原理相似,只是二 者的应用方向相反,代码优化是使程序的结构更加合理。执行效率和阅读性更高。 代码混淆的目的有两个:一是使程序被自动反编译变的更困难;二是即使程序 被成功反编译,也更难被阅读和理解。被代码混淆技术处理过的程序代码,依然遵 照原来的文件格式和指令集,执行结果也与被处理前一样。只是被处理后的程序代 码变得无规则,难以成功地被反编译。同时,代码混淆是不可逆的,在处理的过程 中一些不影响正常运行的信息将永久丢失,这些信息的丢失使程序变得更加难以阅 读和理解。但是,代码混淆技术的特点也使其成为攻击软件水印技术的有效手段。 特别是针对静态软件水印的攻击效果十分显著。另外,代码馄淆技术还可以结合动 态软件水印技术抵御针对软件指纹技术的合谋攻击。由于类似c t 算法等动态图软件 水印技术能够有效的防止代码混淆技术对水印信息的破坏,所以可以综合利用这两 种技术。在不同的产品拷贝中嵌入不同的指纹信息,然后对每份拷贝进行全面的代 码混淆( 不能仅仅对嵌入指纹信息的部分进行处理) ,这使通过合谋比较各拷贝中的 不同之处来发现水印和指纹信息变的毫无意义。 1 2 2 软件水印技术 软件水印是近年来出现的一种针对软件盗版的新的保护软件版权的技术,也是 本论文研究的重点内容,有关软件水印技术的详细内容将在后续章节中详细介绍。 第一章绪论 1 2 3 篡改抵制技术 在很多情况下,只要程序被修改过,就需要阻止该程序的运行。例如,在下列 情况下,程序p 就不能允许运行:( 1 ) p 己被嵌入水印,构造标记的代码已被改动; ( 2 ) p 被感染了病毒;( 3 ) p 是一种电子商务应用程序,其代码中安全性比较敏感 的部分被修改过。 上述的几种修改,称为篡改攻击( t a m p e r i n ga t t a c k s ) 。篡改抵制技术就是用来防 护对软件的篡改,保护可信任的软件能在恶意的主机上有效运行。防篡改技术有基 于软件的和基于硬件的两种。 1 2 3 1 基于软件的防篡改技术 基于软件的防篡改技术仅仅依靠软件机制来防范篡改。主要的技术有:代码混 淆、代码加密技术等代码混淆技术在1 2 1 节中己经阐述。 代码加密技术就是利用密码技术,防止来自恶意攻击者的窥探和访问。普遍采 用的方法是利用公钥算法实现的数字签名来防止应用软件被攻击,实现方法如下。 应用程序的源代码在连接编译器时,利用程序发布方的私钥对其进行加密,即 对程序进行签名。签名与程序绑定在一起,就有了对该程序是否被篡改进行检验的 依据。签名一旦成功,就具有确定性,无法伪造,也不可否认。当然,程序发布方 的公钥应该公开,以此作为程序使用者验证签名来自正确发布方的依据。实现方案 主要有两种: 方案一:在操作系统中设置验证服务程序,当应用程序装入内存运行时,先进 行签名验证,如果没有篡改,则可继续运行;否则,给出提示信息,退出运行。这 种方案只是给出警告信息,不会对操作系统带来不良影响,但要改变操作的功能, 只有操作系统的设计者才可完成,使用者是无法实现的。 方案二:在程序的开始代码中加入校验代码,当应用程序装入内存执行时,先 进行签名验证,如果没有篡改,则可继续进行:否则,给出提示信息,退出运行。这 种方案,程序只有在运行校验代码后才能发觉被篡改,如果病毒先于校验代码运行, 则只能事后给出被篡改的信息。 1 2 3 2 基于硬件的防篡改技术 基于硬件的防篡改技术是指将软件和硬件配套使用,通过安全的硬件设备来防 范篡改。基于硬件的数字版权管理( d r m ) 方法,就是提供一个可信任的硬件空间, 存放被保护的数字内容,执行得到许可的应用,防止外部软件的攻击。如内容加密、 认证、权限实现等d r m 服务就是在这种可信任的空间中完成。 例如,现在微软为实现可信任的计算,正在发展一种称为“p a l l a d i u m 的体系结 构。 p a l l a d i u m 体系结构能为d r m 系统的实现提供一个可信任的环境。 p a l l a d i u m 将提供一种保护d r m 应用不被其它软件窥探和修改的机制,从而保证只有被用户 青岛大学硕士学位论文 信任并被授予访问权的软件才能访问指定的数字内容。当然,这种技术能否成功, 还取决于许多其他因素。 1 2 3 3 发现篡改的三种主要方式 ( 1 ) 检查可执行程序本身,看它是否与原始的相同。为了加速测试,可采用像m d 5 这样的信息摘要算法。 ( 2 ) 检查程序运行的最终结果的有效性。这种方法也称为程序检验或结果检验。 ( 3 ) 加密可执行程序,由此可阻止任何人修改它,除非他能解密它。 1 3 本文的目的及研究内容 数字水印是- - 1 3 相对较新的学科,有很多技术难题并没有得到解决,但它在知 识产权保护方面的作用越来越突出,因而成为国内外研究的热点之一。特别是应用 在多媒体信息上的数字水印,得到了广泛的关注。在国内外都可以找到不少有关这 些方面文献资料。相反,数字水印在计算机软件版权保护上的应用是一个很新的课 题,它一开始并没有像多媒体数字水印一样吸引众多学者的注意力。但是,随着软 件盗版现象的日益猖撅,人们开始寻找传统方法外的新的软件保护技术,这时,软 件数字水印走进了人们的视线,并且得到越来越多学者的关注。跟国内人们保护知 识产权意识有关,软件数字水印在国内起步相对比较晚,并没有吸引很多学者和软 件开发商的注意力。目前,软件数字水印的研究主要集中在欧美。随着人们保护知 识产权意识的提高和保护软件版权的需要,软件数字水印会越来越得到人们的重视。 本文的目的在于研究和分析现有静态软件数字水印和动态软件数字水印的优缺 点,提出一个改进的动态图水印方案。该方案中使用m d 5 或者s h a 1 散列函数对 许可协议进行散列后得到一个散列值m 。然后用二次剩余方法把散列值加密得到水 印数据c ,根据r a b i n 算法求得4 个解,以动态图结构作为载体,把4 个解嵌入程 序中,同时引入防篡改技术对水印结构进行保护。除此之外,引入受信任的第三方 公证人对版权进行认证和仲裁,让用户在前述散列值上用其私钥签名算法签名,并 把签名后的数据提交公证人。一旦版权所有人发现软件被盗版,可以会同公证人对 许可协议进行签名验证,在许可协议没有篡改的情况下可以从软件本身提取水印, 通过r a b i n 密码算法,可以对提取的水印数据进行分解。如果能够成功分解此值, 则说明开发商拥有软件版权,如果许可协议签名认证失败,则说明用户篡改了协议, 也有盗版嫌疑。本文的侧重点在于水印生成、嵌入、防篡改及签名认证协议的设计。 1 4 论文主要成果 本论文主要成果有: 4 第一章绪论 ( 1 ) 论文对已有算法进行了深入分析研究,针对存在的缺点,提出了一种混和水 印方案。 ( z ) 对许可协议采用m d 5 生成签名,然后采用二次剩余算法加密签名生成水印信 息,然后反算出4 个解,把4 个解采用改进的动态图方法嵌入软件,提高了 软件水印的鲁棒性,同时使用常量编码算法抵抗水印篡改。 ( 3 ) 引入公证人以完成认证协议,通过签名认证使开发商和用户都没有可能抵赖 自己的行为和发生的事实,签名认证有效的前提下才进行水印提取认证,签 名一旦无效,则根本不必进行水印提取就知道用户一方存在问题。从而把版 权认证放在一种公开的公证的透明的环境下。 1 5 论文的组成 第一章介绍了课题研究的目的和意义,软件保护的现状和进展,软件界通常采 用的软件保护方法,包括硬件保护方式和软件防篡改方式,软件水印是版权认证的 一个较好手段和趋势。 第二章介绍了软件水印的模型的概念( 检测,鲁棒性,隐蔽性和数据率) 、分类 及对软件水印的攻击方法,重点介绍了动态图水印。最后介绍了常见的软件水印技 术,并分析了优缺点。 第三章专门介绍了常见的动态图水印编码原理,包括基数k 编码和p p c t 编码, 详细阿述了c t 水印算法;介绍了针对动态图水印的各种攻击和保护对策。 第四章本文提出了采用两种动态图混和水印结构方案,即采用基于二叉树结构 的基数编码和p p c t 结构结合基数循环链表编码的方法,提高动态图水印的鲁棒性。 该算法在多个水印与宿主程序之间建立功能性的依赖关系,对真实水印起到了防篡 改的作用,增加了攻击者的攻击难度,从而可对该类水印进行有效的保护。 第五章讨论了针对动态图软件水印的常量编码防篡改措施及其性能分析。分别 研究了二叉树基数编码中的编码函数问题和m p p c t 中的伪水印结构问题。 第六章对课题做了总结和展望。 第二章软件水印技术 2 1 软件水印概述 第二章软件水印技术 数字水印就是被永久镶嵌在其他数据( 宿主数据) 中具有可鉴别性的数字信号或 模式,而且不影响宿主数据的可用性。数字水印是信息隐藏技术的最重要的一个分支, 也是目前国际学术界研究的一个前沿热门方向。它可为计算机网络上的多媒体数据 ( 产品) 的版权保护等问题提供一个潜在的有效的解决方法。如果没有稳健性的要求, 数字水印与信息隐藏从本质上来说是完全一致的。在绝大多数情况下,希望添加的水 印信息是不可察觉的或不可见的,但在某些使用可见数字水印的特定场合,版权保护 标志不要求被隐去,并且希望攻击者在不破坏数据本身质量的情况下无法将水印去 掉。发展数字水印技术的原动力是为了提供多媒体数据的版权保护,但人们发现数字 水印还具有一些其他的重要应用,如数字文件真伪鉴别、网络的秘密通信和隐含标注 等,在软件产品中通过数字水印保护版权的技术也成为人们关注的内容。 软件水印技术的概念与多媒体数字水印技术相似,就是在软件产品中嵌入作者、 发行者、所有者的版权信息,也可以标识软件使用者的身份信息( 软件指纹) ,其目的 是证明版权所有者的合法身份或者确认参与盗版的用户,给利用法律手段追究盗版者 的侵权行为提供技术支持。软件水印技术就是在程序p 中嵌入水印结构形生成目标程 序只,其中矿应该具有以下特点f ,j 。 ( 1 ) 鲁棒性:在只遭受各种代码转换攻击( 如代码优化、代码混淆等) 之后,仍能 将矿可靠的查找和识别,即矿在只遭受攻击后是可恢复的; ( 2 ) 隐蔽性:p 和只的静态特性无差异,即形具有隐秘性; ( 3 ) 高数据率:矽具有较高的数据率,以有限的数据结构表示更大的数据: ( 4 ) 便易性:p 和只在功能上应无明显差异; ( 5 ) 故意性:具有某种数学特性可以用来证明其在只中的存在是人为的结果。 2 2 软件水印模型 软件水印属于数字水印的一种,因此定义也和数字水印类似,就是将软件的版权 信息、用户的身份信息和其他一些相关的内容嵌入到软件的过程。下面给出软件水印 的一个形式化理论模型t ”。 2 2 1 软件水印的基本定义 为了能够达到证明携带水印的程序版权归属问题,必须能够充分说明检测到的水 6 青岛大学硕士学位论文 印不是一种偶然发生的现象,而是事先设计好的,其中人为因素是最主要的。 定义l :设水印矽为一个数学结构集合,旦p 定义为个谓词函数:v w e 矿:,( 叻表 示“w 是水印”,我们说形为一个合格的软件水印如果概率事件s x 芒w ,尸( x ) 趋于零 定义2 :设p 为一个程序集合,则称将水印w 加入p p 的过程叫做一次水印的嵌入, 嵌入的生成的程序为p ,这是称p 为水印w 的宿主 定义3 :定义d o m ( p ) 为程序p 可以接受的输入序列,定义o u t ( p ,) 为程序,在接受输 入,后的输出,定义s ( e ,) 为程序p 在接受输入,后的内部状态,令 双,dj 为这一 状态的大小。 有了以上几个定义,即可讨论软件水印的识别、抗攻击性、隐蔽性和数据嵌入率。 2 2 2 软件水印识别 在程序几中的数字水印w 的抗攻击能力定义为该程序仇可以承受的所有对数字 水印的攻击。首先,需要给针对软件水印的攻击下一个定义:所谓攻击就是指针对程 序的变换。如果程序经过转换仍然保持对同样的输入,有同样的输出,称为语义保持 变换;或者程序经过转换后保持软件的状态( 即内部状态被保持) 不变,称为状态保持 变换;如果两者都不保持,称为裁减变换。下面是它的形式化定义: 定义4 :变换r 是将一个程序从一种形式交化为另一种形式的转换集合,它包括语煲 保持的变换z ow - t ,保持内部状态的变换z 0c 7 , t ,和裁减变换z kc t ,其中: 7 二= f :tp ep ,ie d o m ( p ) ,d o m ( p ) = d o m ( t ( p ) ) ,o u t ( p ,d = o 埘o ( p ) ,d 7 1 埘。 ,:t i p e p ,i e d b 坍( p ) ,s ( p d ) = s ( “力,) = p :t i 劲p ,3 1 d o m ( p ) ,u 仨d o m ( t ( p ) ) v o u t ( p ,d o u t ( t i p ) ,d ) 易知,状态保持变换一定是语义保持的,但是,有些形式语义保持的变换( 如程 序优化) 不是状态保持的,因此有死。cz 二。 定义5 :相对于一个程序变换t t ,程序p 。p 中的软件水印w e w 可被识别的条件 是:如果存在一个识别器耳:( p x 回哼矿和一个输入序列j ,满足 v t 皇t :p ( r ,( f ( p ,) ,s o ( p ,) ,d ”= p ( 叻 从这个定义出发可以区分各种不同类型的检测器: 也( 以,s ( a ,功是抗攻击能力最差的数字水印检测器,任何程序转换作用在被保 护程序上都能使得数字水印检测失败。 r 。( “,s ( “,d ) 是抗攻击能力比较好的数字水印检测器,它可以抵抗任何一种保 持语义的程序转换的攻击。 墨,s ( p ,d ) 是一种理想的数字水印检测器,它可以抵抗任何程序转换的攻击。 r r p ,) 是静态数字水印检测器,只能检测嵌入在程序文本中的数字水印而不能 7 第二章软件水印技术 从程序运行状态中检测数字水印。 r ,( 元s ( p ,j ”是纯动态数字水印检测器,只能检测嵌入在程序运行状态中的数字 水印而不能从程序文本中检测数字水印。 2 2 3 软件水印抗攻击能力 软件数字水印的抗攻击能力定义为软件水印系统鲁棒性,是衡量一个软件水印系 统优劣的最主要的指标之一。软件水印的鲁棒性包括尺度鲁棒性、空间鲁棒性和运行 期鲁棒性三类。软件水印可能会遭受攻击者的诸多方式的攻击,包括静态分析攻击、 动态分析攻击、代码混淆攻击等等。攻击者可以嵌入大量其他信息来湮没原来的数字 水印,从而导致数字水印的检测失败。 但是这神攻击会增加程序的状态和大小,如果只有在程序的状态和大小增加为原 来的,倍时数字水印才会被湮没,那就说这种数字水印的抗攻击能力是r 空间和r 尺度 的。 定义6 ( r 空间鲁棒性) :相对于一个程序变换t t ,程序p 。p 中的软件水印w w 是 ,空间抗攻击的条件是存在一个数字水印检测器霹和一个在一个输入序列,并且 v f t :( 尸( 彤( r ( 凡) ,s o ( m 伽p ( 叻j 鹗亟掣r i j l p * ,j l 对于一些嵌入在程序文本或者静态程序数据的数字水印,同样可以通过嵌入其他 信息到程序文本或静态程序数据来湮没原来的数字水印。这样会增加程序代码的大 小。 定义7 ( r 尺度鲁棒性) :相对于一个程序变换t t ,程序p 。p 中的软件水印w w 是 ,尺度抗攻击的条件是存在一个数字水印检测器坼和一个在一个输入序列,并且 v t t :( 以月r p ( ,。) ,s ( ,( p ,) ,) ) ) 尸( w ) :亭竺饕盟r f i p w l 最后,许多对软件数字水印的攻击都会导致程序运行时间的增加,如果因此而导 致运行时间增加的太多( 至少会导致其中一个输入的运行时间增加的太多) 。那么这种 攻击并没有什么实际的意义的。 定义s ( r 时间鲁棒性) 相对于一个程序变换t e t ,程序p 。p 中的软件水印w w 是 时闻抗攻击的条件是存在一个数字水印检测器墨和一个在一个输入序列j ,并且 v ,t :( 户( 彤( r ( p 。) ,s ( f ( 凡) ,) ) ) p ( 叻j 罢竺蔓譬= f 颦鲁2 ,3 i d o m ( p ) l m e l , p - ,j 2 2 4 软件水印的隐秘性 软件数字水印的某些类型的数字水印抗静态分析的攻击能力比较弱。如果嵌入水 印的程序的某些属性远远不同于该程序类型所具有的属性,将会引起人们对水印位置 青岛大学硕士学位论文 的猜疑。 定义9 ( 水印的隐秘性) 根据静态测量方法m ,如果m ( p ) 一膨p ,) f ,则称该数字水 印是静态隐秘的如果m ( s ( p ,功一m ( s ( p ,功 o ,则表达式( 1 ) 和( 1 ) ,表达式( 2 ) 和( 2 3 具有相同的意思。 o ) x = y + z :( 1 ) 石= p ( j ,+ z ) 2 ; ( 一! ) x = 】,+ l ;( 2 f ) x = j ,+ l o g o 尸 第二章软件水印技术 模块并行化 在多处理器系统中,并行化可以提高系统的运行和处理效率。但这里的模块并行 化不是为了提高效率,而是为了扰乱程序原来的流程。可以创建一个执行不相关任务 的虚构进程与原进程并行,或者将原来前后不相关的几个模块并行处理。 简单流程图复杂化 通过附加一些判断条件p 和q 9 ,把原来比较简单的流程图复杂化为。如图2 3 所示,( i i ) l 圈复杂化为( i ) 和( 1 1 1 ) 。 ( i i ) 图2 3 复杂化流程 循环语句变换 这种变换是改变循环语句的书写方式,将一层循环变为多层循环,将多层循环变 为一层循环等。例如: f o r ( i = o ;i n ;i n f o r o = o ;j n ;j 十n a i 】0 】_ b i 】d 】; f o r ( i = o ;i n ;i 十n a f i = c b 【i 】; d 【i 】- - + ( i 1 ) f o r ( i = o ;i n ;i + - - 6 4 ) f o r o - - = o ;j n ;j + - - - - - 6 4 ) f m m = i ;m m i n ( i + 6 3 ,n ) ;m 十一 f o r ( n = j m m i n g + 6 3 ,n ) ;f l * ) a i m i n = h i m 】【n 】; f o r ( i = o ;i n ;i 、 a 【i 】= c + b i l l ; f o r ( i = o ;i n ;i + + 、 d 嘲- i ( i 1 ) ; 内嵌、轮廓技术 内嵌o n l i n e ) 是优化编译的一种方法,它可以改变程序的调用关系。内嵌是将子函 1 4 青岛大学硕士学位论文 数体中的全部内容拷贝到调用该子函数的主函数中,这种优化处理是不可逆的。当程 序经过内嵌优化后,在程序中将不会再找到有关该子函数的任何信息。与此相反,还 有一种形象地称为轮廓( o u t l i n e ) 的技术,它是将主函数中的一部分代码提取出来作为子 函数,供主函数调用,这对于优化程序设计很有用 假设p ,q 是子程序,只,最,足和q l ,q 2 ,q ;可以是子程序,也可以是一组语句。 内嵌和轮廓技术如图2 4 所示。 ( i ) 用子程序代码代替调用嵌入到程序内( ) 把一段代码作为子程序调用 图2 4 内嵌外嵌示意图 2 4 2 2 数据变换 数据编码 比如用j = c l + i + c 2 替代i ,其中d ,c 2 是常量。如下程序是等价的 h a t 滓1 : i n t j = f l * i - t t 2 ; w h i l e ( i n ) w h i l e o n * c l + c 2 ) a i i l 一: a ( j - c 2 ) c 1 = 改变变量的存储方式和生存周期 在j a v a 程序中,一个整型变量可以看做是i n t e g e r 类的一个对象。在一个函数内部 定义的变量是内部变量,它只在本函数范围内有效,称其为局部变量。而在函数外定 义的变量是全局变量,它可以为本文件中其他函数共用。其有效范围是从定义变量的 位置开始到本源文件结束。可以把个局部变量改为全局变量,这不会影响程序的运 行。 第二章软件水印技术 i n t i = 1 : w h i l e ( i 1 0 0 ) a 【i l = ; i 抖; i n t e g e r i - - n e wi n t e r g e r ( 1 ) ; w h i l e ( i v a l u e 或( 1 ,o ) 时,表示矿= t r u e ,也可以用0 或3 代 表f a l s e ;用1 或2 代表t u r e 。图2 5 ( i i ) ( 1 1 1 ) 表示两个布尔变量4 和b 的与运算、或 运算。 pq v 2 p 十q 0of o o1t l 1ot2 l1f 3 ( i ) 变量拆分 a a n d ol23 03ooo 13l23 b 202l3 330o3 a o r 0l23 o3l23 1l122 b 2221l ( ) 与运算( 皿或运算 图2 5 拆分变量 软件混淆技术是对程序中的数据、代码或控制流等实施保持语义的交换,得到与 原程序功能等价、形式更为复杂的程序。混淆技术既可作为水印攻击手段又可作为软 件保护手段:在无法准确定位水印的情况下,攻击者可对整个程序实施保持语义的混 淆变换攻击,达到篡改或移去水印的目的;而软件所有者可利用该技术增加攻击者实 施逆向工程以盗用关键模块的难度。 1 6 青岛大学硕士学位论文 2 5 软件水印算法研究现状 1 9 9 6 年,d a v i d s o n 提出了为可执行程序模块提供签名和验证的一种方法,可执行 程序模块的签名是通过调整模块内的程序指令的顺序面得到的。为了在可执行程序模 块内嵌入签名,一组具有某种执行流程的特定程序段给挑选出来,然后这些程序段重 新排序构造程序模块的签名。d a v i d s o n 水印算法简单准确,效率高,但其缺点是嵌入 的信息量比较少;其次是可靠性不高。即使用户在对水印信息一点都不了解的情况下, 只要利用d a v i d s o n 水印算法嵌入多个其它水印,就足以破坏版权所有者嵌入的原来的 水印信息。 m o s k o w i t z 提出将部分特定的计算机代码以数字水印方式编码嵌入到数据中的方 案。( 1 ) 产生嵌入或检测数字水印所需的隐秘密钥。( 2 ) 当程序源代码被编译和组装威中 间代码形式时,从中选取必需的一个或多个代码源作为嵌入到一个或多个数据源中的 水印信息。( 3 ) 在( 1 ) 中产生的隐秘密钥控制下,利用c o o p e r m a n 中的算法,把上面在( 2 ) 中选取的必需代码源嵌入到相应的数据资源中。( 4 ) 在程序中加入检测数字水印所需的1 代码源,和指定代码源和数据源之间对应关系的额外数据源,并采用周期内存变动技 术防止恶意用户分析程序代码,从而破解程序。最后把它们组装为可执行程序。 m o s k o w i t z 算法的一大缺陷就是使用的局限性,它只适合包含比较丰富的多媒体数据 源的计算机程序。丽且数据源的多寡直接与算法的安全性相挂钩,数据源越少,则能 够被嵌入的“必需”代码源的数就越少,从而程序被破解的难度就越小,越就是抗攻击 能力越差。 s t e r n 提出了利用扩频通信原理的水印算法1 1 3 j ,把指定的一些代码段的出现频率 作为标记水印的对象,然后在保持程序正确性的前提下修改程序,使得特定代码段的 出现频率与嵌入水印后的相同,从而达到嵌入数字水印的目的。其缺点也是非常明显 的,第一,算法比较复杂,操作性和实用性比较差。第二,水印的检测需要嵌入水印 前的程序代码、原水印信息和提取向量所必需的代码段集合,因此检测过程复杂,进 一步限制它的实用性。第三,不能很有效的抵抗代码优化、反编译一编译、压缩等攻 击。 c o l l b e r g 和t h o m b o r s o n 提出了一种动态图水印算法 j ,其思想是让程序运行时在 内存中动态创建一个数据结构作为数字水印信息的载体。由于指针的副作用,这些数 据结构将很难被分析,因此c o u b e r g 水印具有良好的隐秘性和健壮性 a k i t om o n d e n 提出一种针对单一j a v a 类的纯静态水印算法叫。在j a v a 程序内嵌 入哑方法( 从来不会被执行的方法) ,作为水印信息的空何或者说是水印的载体,为 了避免攻击者轻易识别出这个哑方法,应该手工加入加入一个不透明谓词,如i f ( c o n d i t i o n ) d u m m y ,而且条

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论