买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】基于考拉兹猜想的软件水印方法_西安电子科技大学;南开大学_201910192448.0 

申请/专利权人:西安电子科技大学;南开大学

申请日:2019-03-14

公开(公告)日:2019-06-25

公开(公告)号:CN109933962A

主分类号:G06F21/16(2013.01)I

分类号:G06F21/16(2013.01)I

优先权:

专利状态码:有效-授权

法律状态:2022.03.01#授权;2019.07.19#实质审查的生效;2019.06.25#公开

摘要:本发明涉及一种基于考拉兹猜想的软件水印方法。该方法包括软件水印的嵌入和提取过程,所述嵌入过程通过分析宿主程序的执行路径选取其部分条件分支结构作为嵌入点,在各嵌入点处施加基于考拉兹猜想的控制流混淆,并构造控制函数以引导混淆组件在特定条件下表达所嵌入水印信息,最后将变换后的宿主源代码编译为携带水印的程序实例。所述的提取过程向被检测程序输入预定的秘密参数配置后监视其执行流,在此过程中识别前述混淆组件受控产生的特有条件跳转模式,在根据考拉兹猜想的定义还原水印信息。对比现有技术,本发明与代码混淆变换高度融合,利用宿主程序自身的控制流结构为水印载体,具有数据率、隐蔽性和抵抗性高的优点。

主权项:1.基于考拉兹猜想的软件水印方法,其特征在于所述方法利用考拉兹猜想将整数域内的每个元素对应至一个独一无二的冰雹序列的特点,结合基于该问题的程序控制流混淆方法以同时实现软件水印的良好隐蔽性和强抗攻击性,而冰雹序列的独特规则还使得该方法所嵌入的水印难以被破坏;所述的软件水印方法的嵌入过程如下:A1预处理宿主程序,监测宿主程序执行过程,并从宿主程序执行路径上获取能够作为水印嵌入点的条件分支结构;A2对步骤A1所提供的嵌入点施加基于考拉兹猜想的控制流混淆;A3特化步骤A2所构造的混淆结构,引入专门构造的控制函数引导混淆结构的控制流行为,并对混淆结构本身及其控制函数实施代码静态特征遮蔽变换,形成用于表达水印的代码组件,且该组件仅当宿主程序被给予秘密输入参数时才会表达正确水印;A4对经过步骤A2和A3修改的宿主源代码进行编译,得到已嵌入软件水印的最终程序实例。

全文数据:基于考拉兹猜想的软件水印方法技术领域本发明涉及软件水印技术。更具体地说,本发明涉及一种利用考拉兹猜想中的考拉兹函数所具有的独特控制流模式、以控制流混淆结构所产生的特殊动态行为的形式嵌入软件水印并在此后需要时予以识别的全新软件水印方法。背景技术在网络时代,随着数字产品的分发变得愈加容易,相关版权保护的现状不容乐观。随着软件产品市场份额的增加,软件版权保护的迫切性日益凸显。根据报告[1],截止2017年,全世界有37%的在运行软件没有得到适当的授权,所对应的商业价值高达463亿美元。软件水印技术是软件版权保护方式中的重要一员,它将标志版权所属的秘密信息嵌入到待保护软件的代码、静态数据资源等内容中以达到保护的目的。这些秘密信息被设计为某种不易被察觉且难以清除的形式,仅在需要时才被提取出来证明载宿主软件的版权所有。由于软件水印能够在盗版发生后有效验证版权,且具有高度不可察觉性,其存在对被保护软件使用体验的影响微乎其微,因此适合软件推广、共享软件传播等许多使用情景。已知的各种软件水印手段例如参见文献[2至23]。软件水印的性能可以通过可信度、数据率、开销、隐蔽性、抗攻击性能等指标进行衡量。根据这些评价标准,目前的软件水印技术存在以下不足:1现有软件水印方法如文献[13、14、15、18]等,所采用的水印载荷代码或识别过程往往暴露出可利用的弱点,使得攻击者可以借助这些弱点发现水印的嵌入位置,或者通过篡改宿主软件令水印无法识别。2现有软件水印方法如文献[5、6、12、16、17、20]等并不能够和宿主程序紧密结合,其水印载荷的构造不能充分利用宿主程序中已有的内容,这一方面导致嵌入软件水印后的程序体积明显变大,另一方面使软件水印和载体程序之间产生一条明显的界线。如文献[5]中提出的GTW算法中软件水印嵌入在不执行的代码中,容易通过统计方式查知。再如文献[12、17、20]等中所使用的CT算法,其用于隐藏软件水印的图数据结构的生成过程和程序的正常流程缺少必要联系,很容易遭到逆向攻击者怀疑。3已有的软件水印算法往往只能应对某些特定的攻击,对许多正常程序变形缺少免疫力,例如优化、混淆以及压缩和加密等操作,这一问题在静态软件水印如文献[2至11]等中尤为突出。4相当一部分软件水印方法中的水印识别与提取过程存在设计上的缺陷,使得攻击者可以利用这些缺陷直接通过篡改嵌入有水印的宿主程序的方式令水印无效化。例如文献[19]所述方法,需要被识别函数具有特定数量的输入参数且需要在识别过程中改写其中的特定参数数值,此种特异性行为显然可能被攻击者利用以判断识别过程;文献[21]所述方法需要利用系统框架所提供的特定API进行进程间通信,而该API的本地代理则处于对攻击者暴露且可被篡改的状态;文献[22]所述方法使用函数指针作为水印的触发点,故攻击者可以钩取所有函数指针以发现其水印相关代码的存在。5不少软件水印算法如文献[12、14、17、23]等效率较低,不能嵌入较大的信息。发明内容本发明的目的在于克服上述现有软件水印技术存在的缺陷,提供一种具备良好数据率、隐蔽性和抗攻击能力的新型软件水印方法。本发明的目的可以通过以下技术方案来实现:一种基于考拉兹猜想的软件水印方法,该方法是一种适用于二进制程序的软件水印的全新方法,该方法从软件水印的嵌入、识别和提取复原等各个环节全面实现了对抗静态程序分析攻击的隐蔽性、对抗先进动态程序分析攻击的高安全强度以及对抗基于语义保留程序变换的变形攻击的健壮性;所述方法利用考拉兹猜想将整数域内的每个元素对应至一个独一无二的冰雹序列的特点,结合基于该问题的程序控制流混淆方法以同时实现软件水印的良好隐蔽性和强抗攻击性,而冰雹序列的独特规则还使得该方法具有较高的数据率,且其所嵌入的水印难以被破坏。所述软件水印方法的嵌入过程包含以下步骤:A1预处理宿主程序,监测宿主程序执行过程,并从宿主程序执行路径上获取可作为水印嵌入点的条件分支结构;A2对步骤A1所提供的嵌入点施加基于考拉兹猜想的控制流混淆;A3特化步骤A2所构造的混淆结构,引入专门构造的控制函数引导混淆结构的控制流行为,并对混淆结构本身及其控制函数实施代码静态特征遮蔽变换,形成用于表达水印的代码组件,且该组件仅当宿主程序被给予秘密输入参数时才会表达正确水印;A4对经过步骤A2和A3修改的宿主源代码进行编译,得到已嵌入软件水印的最终程序实例。所述软件水印嵌入过程的步骤A3中,所述的控制函数应当在宿主程序被给予秘密输入参数时以整数形式返回水印信息的相应数值,使得受控混淆结构的行为被该整数所引导;所采用的代码静态特征遮蔽变换在混合布尔-算术编码的基础上实现。所述软件水印嵌入过程的步骤A3中,所述的秘密输入参数是一个由多组不同输入参数构成的输入序列。所述软件水印方法的识别和提取过程包含以下步骤:B1向被检测程序输入上述水印嵌入过程之步骤A3中所预定的秘密输入参数后执行被检测程序,并监视被检测程序对应的执行流;B2通过对使用秘密输入参数经步骤B1所产生的执行流中的控制转移序列进行匹配,识别出存在于所产生执行流中的共有控制序列模式;B3根据考拉兹函数的定义,对步骤B2所识别出的控制序列模式进行合法性检查以排除不属于冰雹序列的模式;B4根据考拉兹猜想的定义,对经由步骤B2识别出且未被步骤B3所排除的控制序列模式进行回溯计算,还原出导致该序列的整数数值,由此获得所嵌入的水印。所述的软件水印方法的识别和提取过程中,步骤B1中通过动态代码插桩的方式实现对执行流的监视;步骤B2中所识别出的共有控制序列模式仅包括那些同时出现在由秘密输入参数集合中的不同输入所引起的执行流中的序列模式,而不包括那些仅仅在单一执行流中反复出现的序列模式。本发明的优点和有益效果:本发明利用程序中已存在的控制流结构,通过对这些结构施以特化型控制流混淆的方式来嵌入软件水印,并通过检测所构造水印组件在特定输入参数条件下在宿主软件的多个执行流中反复呈现的控制转移序列模式来提取软件水印。本发明方法具有以下几个优点:1数据率高,通过扩展秘密输入参数集合,可以使用少数水印组件叠加承载多个不同的水印信息片段,方便嵌入具有较大数据量的软件水印。2隐蔽性好,软件水印嵌入后程序指令统计特性无显著改变,通过模式匹配、模型检验等静态分析均无法识别水印组件的位置,且水印嵌入前后程序的空间占用变化不明显,运行性能也没有受到显著的影响。模拟分析显示:通过以考拉兹猜想的标准算法模板为样本进行静态模式匹配的方式搜索本发明所构造水印组件时所获得的相似度指标最低时仅有0.113,最高时也只能达到0.760;相对地,将考拉兹猜想的标准算法模板与深度优先算法、贪婪算法、快速排序等经典算法进行模式匹配时所得到的相似度指标则在0.108至0.720之间。上述指标显示出针对本发明的模式匹配攻击无法以显著的相似度差异将本发明构造的水印组件与很多与水印无关的典型算法区分开来,因而很难形成有意义的攻击优势。类似结论也可推广至通过模型检验方法对本发明实施攻击的情形。此外,在SPEC-CINT-2006标准测试集上实施的性能模拟显示本发明的水印嵌入所引起的执行性能开销在-0.253%至0.376%之间,而代码膨胀则可以控制在2KB以内。3抗攻击能力强,水印组件通过控制流行为逻辑表达水印,由此不受软件分发过程中的代码混淆等程序语义保留变换的影响;水印组件构建与控制流混淆结构基础上,因而能够对抗符号执行等先进动态程序分析技术。模拟实验显示本发明所构造的水印组件可以令符号执行所需要维护的并行执行状态数在考拉兹猜想循环过程的14轮内增长至3500个以上,并消耗超过8GB的内存资源。这意味着对携带有本发明所构造水印结构的宿主程序进行动态逆向分析时,现有技术无法在合理的计算成本下破解本发明所嵌入的水印。附图说明图1为本发明的软件水印方法的总体示意图;图2为本发明的软件水印的嵌入过程示意图;图3为本发明的软件水印的具体水印组件实例示意图;图4为本发明的软件水印的识别与提取过程示意图。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。通过参考以下对整个说明书中使用的概念和术语的解释,将有助于更好地理解本发明实施方式的以下阐释。考拉兹函数,这一函数的描述是:函数的输入为一个任意整数;若输入是偶数,则输出等于输入除以2;否则,输出等于输入乘以3后再加1。考拉兹猜想,这一猜想又称为“3x+1问题”,其描述是:对于任意一个大于1的整数,对其反复进行考拉兹函数的计算,则该过程一定会在某一步骤中使得计算所得的整数数值等于1。考拉兹猜想是一个至今仍未被数学界证明的难题——尽管目前人们已在5×260范围内验证了该命题对每个整数均成立。文献[24]称考拉兹猜想是“一个能够模拟‘随机’行为的确定性过程”,本发明利用的正是这种确定性和随机性的矛盾统一。冰雹序列,对于任意一个大于1的整数,考拉兹猜想计算过程所涉及的每一步骤所产生的整数可以组成一个序列,称为该整数所对应的冰雹序列。考拉兹猜想的一个重要特征是:整数与其冰雹序列为一一对应,给定任意两个不同的整数,其各自的冰雹序列一定不同。此外,根据考拉兹函数的定义,其乘3加1操作不可能在一个合式的冰雹序列中连续出现即序列中的一个奇数后尾随的只能是一个偶数。本发明利用上述特征来实现对所嵌入软件水印的识别和提取。基于考拉兹猜想的控制流混淆,该混淆方法可参考文献[25],其简要描述如下:设对于下述的C代码条件分支结构,x为整形变量ifx==Cdo;进行混淆,基于考拉兹猜想的控制流混淆以原条件变量x为种子生成一个新的冗余变量y不妨设y=x+1000,并将上述条件分支包裹在用于计算考拉兹猜想的循环体内,形成如下形式的C代码则根据考拉兹猜想的原理,变量y的数值最终将达到1,则在此时关于x和y的条件逻辑实质上等价于“C-1<x<C+1”,因而在整数域上等价于原条件逻辑“x==C”。而在此前任意时刻,由于变量y的数值大于1,前述关于x和y的条件逻辑总是无法成立,故总体上,混淆结构的最终执行效果等价于原条件分支结构。本发明利用这一混淆方法将携带软件水印信息的考拉兹猜想计算植入宿主程序,使得水印组件以宿主程序自身的控制流结构为根本,从而解决了软件水印与宿主程序的结合问题。混合布尔-算术编码,本发明所应用的混合布尔-算术编码主要参考自文献[26]中定理3所给出的互逆多项式构造方式而非中国专利[27]中所述方法。根据这一定理,给定一个正整数m,令PmZ2n表示整数环Z2n上的一个多项式集合,该集合中的每个元素均为变量x的m次多项式,其中ai为多项式的i次项系数。PmZ2n具有如下约束条件:a1∧1=1表示多项式的1次项系数为奇数;ai2=0,i=2,…,m表示多项式的2次及更高次项系数均为偶数。在这种情况下,对于一个属于集合PmZ2n的多项式fx,设向量{a0,a1,…,am}为fx的各项系数,那么假设gx表示fx的逆多项式,且{b0,b1,…,bm}为gx的各项系数,则其中Am=-a1-mam,而Ak2≤k<m则由给出。上述二式中的∑表示各项之和,jk则表示从j个元素中任取k个元素构成的组合。本发明利用上述定理中以原多项式系数向量为基础派生其逆多项式系数的方法,对所构造的水印组件实施静态代码特征的遮蔽。在本实施例中,基于考拉兹猜想的软件水印方法包括了软件水印的嵌入过程和识别与提取过程,其总体方案如图1所示。为简明起见,本例中假设待嵌入的水印信息的对应整数值为w=3。软件水印的嵌入过程如图2所示:第一步,对宿主程序进行预处理,监测其执行过程。这一过程不仅从所分析的执行路径上选取可作为水印嵌入点的条件分支结构,还将计算出一组能够使得宿主程序在执行时抵达所选条件分支的输入参数集合,该集合将用作事后提取所嵌入软件水印时需要使用的秘密输入参数。在本例中,假设预处理过程所计算出的秘密输入参数为μ={i1,i2},其中i1和i2均为宿主程序输入空间内所允许的具体输入参数且i1≠i2。第二步,由于本发明基于考拉兹猜想的冰雹序列特征,故需要将考拉兹猜想的执行行为注入宿主程序。这一点通过对宿主程序中的嵌入点进行如图3所示的控制流混淆来实现。其中,设宿主程序中的嵌入点b1和b2通过前述预处理步骤对宿主程序的分析选定分别可在输入为i1和i2时被执行,且二者的入口逻辑分别在条件变量x1x2的值取A和B时被满足。本发明通过混淆将b1和b2变换为右侧由l1和l2所描述的控制结构。二混淆结构中的考拉兹函数计算分别由增加额外的冗余变量y1和y2控制,使得当考拉兹猜想流程最终得到y1y2=1时,A1=A+2和A2=A-2能够使得l1中的被混淆入口逻辑在整数域上等价于x1=A,而B1和B2对于l2亦同理。与此同时,冗余变量y1和y2则分别由控制函数和输出。和分别被设计为仅在宿主程序获得i1i2为输入时返回y1y2=3等于待嵌入的水印w。藉由以开源编译器为基础搭建而成的专用程序改写工具,本发明在对宿主程序进行逆向所产生的对应中间语言代码上实施上述混淆变换。第三步,为了避免考拉兹猜想所产生的典型程序结构暴露水印位置,需要对上述混淆结构进行静态特征遮蔽。本发明借助混合布尔-算术编码来实施这一遮蔽处理。对于每个混淆结构,构造一组互逆的关于被混淆逻辑条件变量的混合布尔-算术多项式,并用混淆结构中的冗余变量控制原表达式的部分参数,使得受控表达式仅在冗余变量等于1时才与逆表达式正确互逆。令原表达式的参数在考拉兹猜想计算过程中动态更新,并在考拉兹函数的原子计算中引入奇偶性为偶的噪音量以掩盖其静态特征。与此同时,利用所构造混合布尔-算术多项式的复合配合少量附加计算,同样可以等价地表达被混淆条件分支的入口逻辑。而混淆结构的控制流和静态特征则在这一复杂化处理后得到了遮蔽。第四步,在对宿主程序的中间代码进行修改后,本发明所改造的程序改写工具经过重新编译再次生成二进制实例,即可得到嵌入软件水印后的最终程序。本发明的代码变换以指令级控制流混淆为基础,辅以基于混合布尔-算术编码的静态特征遮蔽,使得本发明所述水印方法在面对模式匹配、模型检验等静态分析手段时具有良好的隐蔽性。模拟分析显示:通过以考拉兹猜想的标准算法模板为样本进行静态模式匹配的方式搜索本发明所构造水印组件时所获得的相似度指标最低时仅有0.113,最高时也只能达到0.760;相对地,将考拉兹猜想的标准算法模板与深度优先算法、贪婪算法、快速排序等经典算法进行模式匹配时所得到的相似度指标则在0.108至0.720之间。上述指标显示出针对本发明的模式匹配攻击无法以显著的相似度差异将本发明构造的水印组件与很多与水印无关的典型算法区分开来,因而很难形成有意义的攻击优势。类似结论也可推广至通过模型检验方法对本发明实施攻击的情形。由于考拉兹猜想在被以符号执行为基础的动态程序分析处理时会引发附带着路径爆炸效应的循环展开,故将使相应分析工具的计算资源被迅速耗尽,从而有效抵抗基于该类分析技术的攻击行为。模拟实验显示本发明所构造的水印组件可以令符号执行所需要维护的并行执行状态数在考拉兹猜想循环过程的14轮内增长至3500个以上,并消耗超过8GB的内存资源。这意味着对携带有本发明所构造水印结构的宿主程序进行动态逆向分析时,现有技术无法在合理的计算成本下破解本发明所嵌入的水印。软件水印的识别与提取过程如图4所示,该过程相对简单,包括以下几个步骤:第一步,分析嵌入有软件水印的宿主程序的二进制代码,并对位于循环体内部的条件分支进行代码插桩。条件分支在二进制代码中的实现形式为一条选择性执行的跳转指令,会根据标志位寄存器置位情况的不同决定其转向跳转目标或者不产生效果并顺序执行下一条指令。因此,本步骤中的代码插桩将被插桩分支的上述两种情形表示为二进制比特0和1,使得被插桩分支在一次循环展开过程中的所有行为被表示为一个二进制串。本发明识别与提取过程将插桩代码产生的此种二进制串成为被插桩分支在一次循环过程中的条件控制转移序列模式以下简称控制序列模式,用于后续步骤中的进一步处理和分析。第二步,依次输入秘密输入参数集合中的每一组参数,并监测宿主程序的各相应执行轨迹,借助第一步中部署的插桩指令获取每条轨迹中所包含的控制序列模式。具体到本例中,识别与提取过程将依次以i1和i2为输入参数执行宿主程序,并获取对应的两条执行轨迹中的全部控制序列模式用于后续步骤。第三步,将取自不同执行轨迹中的条件控制转移序列进行比对,提取出由不同执行轨迹所共有的控制序列模式。具体到本例中,由于被嵌入水印w=3的对应冰雹序列为3→10→5→16→8→4→2→1,故在嵌入水印后的宿主程序以i1为输入执行时,嵌入过程第二步所构造的混淆结构l1内部的考拉兹函数将在l1循环执行的第1轮和第3轮中跳转至乘3加1操作,而在其他各轮次则跳转至除2操作。相同的特征控制流模式将在嵌入水印后的宿主程序随后以i2为输入执行时,在嵌入过程第二步所构造的混淆结构l2内的考拉兹函数中被复现,形成共有控制序列模式。这一共有控制序列模式,将被提取出来供后续步骤进一步处理。第四步,根据考拉兹猜想的定义,对所提取出的控制序列模式进行合法性检查,排除不属于冰雹序列的模式。具体来说,由于考拉兹函数对奇数实施乘3加1操作,故乘3加1操作总是得到偶数结果。因此,考拉兹猜想流程中不可能连续出现两次乘3加1操作。这一特征对应到控制序列模式中即意味着:如果按照识别与提取过程第一步所述将被插桩条件分支的两个跳转目标分别视作0和1来记录控制序列模式的对应二进制串,则由考拉兹函数所产生的二进制串中仅有一种比特值即或者0,或者1会连续出现,而不会发生两种比特值各自均有连续出现的情况。这一特征被用于对前述第三步中提取到的共有控制序列模式进行验证,不能满足这一特征假设的序列不会被认为代表水印信息,并会被丢弃。第五步,再次根据考拉兹猜想的定义,对未被排除的控制序列模式进行回溯计算,还原出导致该序列的整数数值,由此获得所嵌入的水印。具体到本例,不妨假设在提取共有控制序列模式时将考拉兹函数对奇数实施的乘3加1操作对应至二进制比特1,而将对偶数实施的除2操作对应至0,则w=3对应的冰雹序列3→10→5→16→8→4→2→1在循环过程中所对应的控制序列模式被表示为1010000。因此,可以设定r=1为输入这是因为根据考拉兹猜想的假设,1是冰雹序列的已知终点,并在控制序列模式不为空的情况下循环计算:当控制序列模式的最后一位为0时,对r乘以2,并去掉当前控制序列模式的最后一位;否则,对r减去1以后除以3,并同样去掉当前控制序列模式的最后一位。不难理解,这一回溯计算过程将根据给定的控制序列模式1010000忠实地重现1→2→4→8→16→5→10→3这一与软件水印w对应冰雹序列完全相反的计算过程,最终正确地还原出软件水印信息。由于3x+1具有产生冰雹序列这一特异性动态特征,本发明所述的识别与提取过程在水印组件受到控制流级别的语义保留变换干扰的情况下仍然能够有效地完成识别和提取,因而具有良好的健壮性。理解本发明的人可能想到对以上实施方式通过改变结构和实施方式予以变形,如采用[24]中所给出的考拉兹猜想的各种衍生问题作为混淆结构基础、利用[27]中所述的逐位布尔混合表达式代替整数多项式对水印组件实施静态特征遮蔽等。所有此类变形均落入所附权利要求书所限定的本发明的范围之内。参考文献:1.TheSoftwareAlliance,“Softwaremanagement:Securityimperative,businessopportunity,”https:gss.bsa.orgwp-contentuploads201805-2018BSAGSSReporten.pdf,2018.2.R.I.DavidsonandN.Myhrvold,“Methodandsystemforgeneratingandauditingasignatureforacomputerprogram,”Sep.241996,USPatent5,559,884.3.J.P.Sternetal.,“Robustobjectwatermarking:Applicationtocode,”inProceedingsofInternationalWorkshoponInformationHiding,1999,pp.368–378.4.A.Mondenetal.,“Apracticalmethodforwatermarkingjavaprograms,”inProceedingsofthe24thComputerSoftwareandApplicationsConference,2000,pp.191–197.5.R.Venkatesan,V.V.Vazirani,andS.Sinha,“Agraphtheoreticapproachtosoftwarewatermarking,”inProceedingsofthe4thInternationalWorkshoponInformationHiding,2001,pp.157–168.6.G.Arboit,“Amethodforwatermarkingjavaprogramsviaopaquepredicates,”inProceedingsofthe5thInternationalConferenceonElectronicCommerceResearch,2002,pp.102–110.7.R.El-KhalilandA.D.Keromytis,“Hydan:Hidinginformationinprogrambinaries,”inProceedingsoftheInternationalConferenceonInformationandCommunicationsSecurity,2004,pp.187–199.8.C.CollbergandT.R.Sahoo,“Softwarewatermarkinginthefrequencydomain:implementation,analysis,andattacks,”JournalofComputerSecurity,vol.13,no.5,pp.721–755,2005.9.W.ZhuandC.Thomborson,“Extractioninsoftwarewatermarking,”inProceedingsofthe8thworkshoponMultimediaandsecurity,2006,pp.175–181.10.H.LeeandK.Kaneko,“Newapproachesforsoftwarewatermarkingbyregisterallocation,”inProceedingsofthe9thACISInternationalConferenceonSoftwareEngineering,ArtificialIntelligence,Networking,andParallelDistributedComputing,2008,pp.63–68.11.D.Gongetal.,“Hidinginformationininjavaclassfile,”inProceedingsoftheInternationalSymposiumonComputerScienceandComputationalTechnology,2008,pp.160–164.12.C.CollbergandC.Thomborson,“Softwarewatermarking:Modelsanddynamicembeddings,”inProceedingsofthe26thACMSIGPLAN-SIGACTSymposiumonPrinciplesofProgrammingLanguages,1999,pp.311–324.13.C.Collbergetal.,“Dynamicpath-basedsoftwarewatermarking,”inProceedingsoftheACMSIGPLAN2004ConferenceonProgrammingLanguageDesignandImplementation,2004,pp.107–118.14.J.NagraandC.Thomborson,“Threadingsoftwarewatermarks,”inProceedingsofthe6thInternationalWorkshoponInformationHiding,2005,pp.208–223.15.G.MylesandH.Jin,“Self-validatingbranch-basedsoftwarewatermarking,”inProceedingsofInternationalWorkshoponInformationHiding,2005,pp.342–356.16.G.MylesandC.Collberg,“Softwarewatermarkingviaopaquepredicates:Implementation,analysis,andattacks,”ElectronicCommerceResearch,vol.6,no.2,pp.155–171,2006.17.C.Collberg,C.Thomborson,andG.M.Townsend,“Dynamicgraph-basedsoftwarefingerprinting,”ACMTransactionsonProgrammingLanguagesandSystems,vol.29,no.6,2007.18.Y.Ke-xin,Y.Ke,andZ.Jian-qi,“Arobustdynamicsoftwarewatermarking,”inProceedingsoftheInternationalConferenceonInformationTechnologyandComputerScience,vol.1,2009,pp.15–18.19.X.Zhang,F.He,andW.Zuo,“Hashfunctionbasedsoftwarewatermarking,”inProceedingsoftheInternationalWorkshoponDigitalWatermarkingAdvancedSoftwareEngineeringandItsApplications,2008,pp.95–98.20.W.Zhou,X.Zhang,andX.Jiang,“Appink:Watermarkingandroidappsforrepackagingdeterrence,”inProceedingsofthe8thACMSIGSACSymposiumonInformation,ComputerandCommunicationsSecurity,2013,pp.1–12.21.C.Ren,K.Chen,andP.Liu,“Droidmarking:Resilientsoftwarewatermarkingforimpedingandroidapplicationrepackaging,”inProceedingsofthe29thACMIEEEInternationalConferenceonAutomatedSoftwareEngineering,2014,pp.635–646.22.H.Maetal.,“Softwarewatermarkingusingreturn-orientedprogramming,”inProceedingsofthe10thACMSymposiumonInformation,ComputerandCommunicationsSecurity,2015,pp.369–380.23.H.Maetal.,“Integratedsoftwarefingerprintingvianeural-network-basedcontrolflowobfuscation,”IEEETransactionsonInformationForensicsandSecurity,vol.11,no.10,pp.2322–2337,2016.24.J.C.Lagarias,TheUltimateChallenge:The3x+1Problem.AmericanMathematicalSociety,2010.25.Z.Wangetal.,“Linearobfuscationtocombatsymbolicexecution,”inProceedingsofthe16thEuropeanSymposiumonResearchinComputerSecurity,2011,pp.210–226.26.Y.Zhouetal.,“Informationhidinginsoftwarewithmixedboolean-arithmetictransforms,”inProceedingsofInformationSecurityApplications,2007,pp.61–75.27.哈罗德·约瑟夫·约翰逊,顾元祥,周永新.保护以软件为媒介的程序和装置性态的联锁系统和方法.中国专利:200880005942.1,2013-07-17.

权利要求:1.基于考拉兹猜想的软件水印方法,其特征在于所述方法利用考拉兹猜想将整数域内的每个元素对应至一个独一无二的冰雹序列的特点,结合基于该问题的程序控制流混淆方法以同时实现软件水印的良好隐蔽性和强抗攻击性,而冰雹序列的独特规则还使得该方法所嵌入的水印难以被破坏;所述的软件水印方法的嵌入过程如下:A1预处理宿主程序,监测宿主程序执行过程,并从宿主程序执行路径上获取能够作为水印嵌入点的条件分支结构;A2对步骤A1所提供的嵌入点施加基于考拉兹猜想的控制流混淆;A3特化步骤A2所构造的混淆结构,引入专门构造的控制函数引导混淆结构的控制流行为,并对混淆结构本身及其控制函数实施代码静态特征遮蔽变换,形成用于表达水印的代码组件,且该组件仅当宿主程序被给予秘密输入参数时才会表达正确水印;A4对经过步骤A2和A3修改的宿主源代码进行编译,得到已嵌入软件水印的最终程序实例。2.根据权利要求1所述的基于考拉兹猜想的软件水印方法,其特征在于,所述的软件水印嵌入过程中,步骤A3所述的控制函数应当在宿主程序被给予秘密输入参数时以整数形式返回水印信息的相应数值,使得受控混淆结构的行为被该整数所引导;所述的代码静态特征遮蔽变换应当在混合布尔-算术编码的基础上实现。3.根据权利要求1所述的基于考拉兹猜想的软件水印方法,其特征在于,步骤A3所述秘密输入参数是一个由多组不同输入参数构成的输入序列。4.根据权利要求1所述的基于考拉兹猜想的软件水印方法,其特征在于,所述的软件水印方法的识别和提取过程如下:B1向被检测程序输入权利要求1之步骤A3中所预定的秘密输入参数后,执行被检测程序,并监视被检测程序对应的执行流;B2通过对使用秘密输入参数经步骤B1所产生的执行流中的控制转移序列进行匹配,识别出存在于所产生执行流中的共有控制序列模式;B3根据考拉兹函数的定义,对步骤B2所识别出的控制序列模式进行合法性检查以排除不属于冰雹序列的模式;B4根据考拉兹猜想的定义,对经由步骤B2识别出且未被步骤B3所排除的控制序列模式进行回溯计算,还原出导致该序列的整数数值,由此获得所嵌入的水印。5.根据权利要求4所述的基于考拉兹猜想的软件水印方法,其特征在于,所述的软件水印方法的识别和提取过程中,步骤B1中通过动态代码插桩的方式实现对执行流的监视;步骤B2中所识别出的共有控制序列模式仅包括那些同时出现在由秘密输入参数集合中的不同输入所引起的执行流中的序列模式,而不包括那些仅仅在单一执行流中反复出现的序列模式。

百度查询: 西安电子科技大学;南开大学 基于考拉兹猜想的软件水印方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。