基于寄存器分配的软件水印算法

合集下载

基于栈状态关系的动态软件水印算法

基于栈状态关系的动态软件水印算法

基于栈状态关系的动态软件水印算法许金超;曾国荪【期刊名称】《计算机应用》【年(卷),期】2013(33)4【摘要】针对已有软件水印算法的不足,提出了一种基于栈状态关系的动态软件水印算法.算法通过控制程序运行过程中产生的栈状态转移关系隐藏软件水印,给出了栈状态转移图的概念,并对其满足的性质进行了阐述;给出了详细的嵌入和提取算法,并通过一个具体实例描述了软件水印嵌入过程.对该算法的安全性和效率的实验和分析表明,该算法有着良好的隐蔽性,并能有效抵抗多种攻击.%This paper proposed a new dynamic software watermarking algorithm based on stack-state relations in order to overcome the weakness of the existing software watermarking algorithms. The watermark was hidden in the stack-state relations generated by execution of the program and extracted by recognizing the relationship of stack states in runtime. The paper gave the concept of stack-state transition graph, and explained its properties. It also gave detailed description of the software watermark embedding and extraction algorithms, and explained it through a specific example. The analysis and experiments show that the algorithm does not affect the host program significantly, and has the ability to resist various attacks.【总页数】6页(P1065-1069,1091)【作者】许金超;曾国荪【作者单位】同济大学计算机科学及技术系,上海201804;嵌入式系统与服务计算教育部重点实验室(同济大学),上海201804【正文语种】中文【中图分类】TP391【相关文献】1.基于动态图的软件水印算法 [J], 雷敏;杨榆;胡若翔;谭逢亮2.基于动态特性的常量拆分软件水印算法 [J], 殷柯欣;朱建启3.基于动态图和线程关系的混合软件水印算法 [J], 史宝会;徐振华;武宏4.基于内存操作的动态软件水印算法 [J], 许金超;曾国荪5.一种基于栈分配的软件水印算法 [J], 张海超;陈丹因版权原因,仅展示原文概要,查看原文内容请购买。

编译器后端,寄存器分配算法

编译器后端,寄存器分配算法

编译器后端,寄存器分配算法寄存器分配,是通过将程序变量尽可能地分配到寄存器,从⽽提⾼程序执⾏速度的⼀种⽅法。

寄存器是编译器优化中最为重要的问题之⼀(好的寄存器分配能够提⾼程序执⾏速度超过250%);也是编译器理论中最热点的研究领域之⼀(研究界已经提出来⼤量寄存器分配相关的算法)。

1. 图着⾊(graph coloring)⽅法是解决寄存器分配问题最常⽤的⽅法。

利⽤相交图(interference graph)来表⽰程序变量的⽣命期是否相交,将寄存器分配给变量的问题,可以近似地看成是给相交图着⾊:相交图中,相交的节点不能着同⼀颜⾊;每⼀种颜⾊对应⼀个寄存器。

Chaitin等⼈最早提出了基于图着⾊的寄存器分配⽅法其着⾊思路采⽤了Kempe的着⾊⽅法,即,任意⼀个邻居节点数⽬少于k的节点,都能够被k着⾊。

判断⼀个图是否能够被k(k>=3)种颜⾊着⾊,即k着⾊问题,被Karp证明是⼀个NP-complete问题。

但是,寄存器分配不仅仅是图着⾊的问题。

当寄存器数⽬不⾜以分配某些变量时,就必须将这些变量溢出到内存中,该过程成为spill。

最⼩化溢出代价的问题,也是⼀个NP-complete问题。

如果简化该问题——假设所有溢出代价相等,那么最⼩化溢出代价的问题,等价于k着⾊问题,仍然是NP-complete问题。

此外,如果两个变量的⽣命期仅仅因为出现在同⼀个拷贝指令中⽽相邻,那么,通过将这两个变量分配到同⼀个寄存器,就可以消除该拷贝指令,成为coalescing。

这个⽅向的努⼒在Chaitin的⽂章以后的1/4个世纪,成为推动寄存器分配的主要动⼒之⼀,涌现出了包括aggressive coalescing,conservative coalescing和optimistic coalescing。

但是,将两个变量分配到同⼀个寄存器,等价于将这两个变量合并成同⼀个变量,⽣命期合并,因⽽会加剧相交图的聚簇现象,降低相交图的可着⾊性。

一种基于程序执行时间量化分析的软件水印方法

一种基于程序执行时间量化分析的软件水印方法

第42卷第8期电 子 与 信 息 学 报Vol. 42No. 8 2020年8月Journal of Electronics & Information Technology Aug. 2020一种基于程序执行时间量化分析的软件水印方法张颖君① 陈 恺② 鲍旭华*③①(中国科学院软件研究所可信计算与信息保障实验室 北京 100190)②(中国科学院信息工程研究所信息安全国家重点实验室 北京 100093)③(网神信息技术(北京)股份有限公司 北京 100015)摘 要:当前,应用软件面临的重要问题是不法分子通过软件剽窃、重打包等技术,将恶意负载或广告加载到合法应用软件中,并形成新软件进行发布,给用户和应用软件作者的合法权益带来威胁。

为了实现对应用软件剽窃、重打包等安全风险的测评,该文提出一种基于程序执行时间量化分析的软件水印方法(SW_PET)。

通过生成多种相互抵消功能的操作组,实现对水印信息的时间化编码,并植入应用软件中;在检测过程中,需要提取相应的水印信息,对照之前的时间编码对应的原始水印,比较不同操作的执行时间,判断水印相似度,进而判别原始水印的存在性,完成应用软件合法性的判断。

该方法也可以与其它类型的水印信息相结合,增强水印的鲁棒性。

最后,通过搭建仿真模拟器,实现对不同应用软件水印信息的比较和判断,验证该方法的有效性。

关键词:软件水印;程序执行;水印编码中图分类号:TP309文献标识码:A文章编号:1009-5896(2020)08-1811-09 DOI: 10.11999/JEIT190850A Software Watermarking Method Based on Program Execution TimeZHANG Yingjun① CHEN Kai② BAO Xuhua③①(Trusted Computing and Information Assureance Laboratory, Institute of Software, ChineseAcademy of Sciences, Beijing 100190, China)②(State Key Laboratory of Information Security, Institute of Information Engineering, ChineseAcademy of Sciences, Beijing 100093, China)③(Legendsec Information Technology(Beijing) Inc, Beijing 100015, China)Abstract: Currently, a main problem in software is repackaging or plagiarization, which means attackers can add malicious payloads or advertisements into legitimate APPs through piggybacking, it greatly threatens the users and original developers. In this paper, a novel Software Watermarking method based on Program Execution Time (SW_PET) is proposed. By generating a variety of effect-canceling operations, the watermark information can be encoded into the form of program execution time, and can be embedded into Android APPs.In the detection process, the watermark information is extracted and compared with the original watermark to check whether the APP is repackaged. This method can be combined with other types of watermarks (e.g., picture-based watermarks) in order to enhance the robustness. Finally, the effectiveness of the proposed approach is verified, and the overhead introduced by the watermark is measured, which is demonstrated to be minimal.Key words: Software watermarking; Program execution; Watermark encoding收稿日期:2019-11-01;改回日期:2020-03-20;网络出版:2020-07-08*通信作者: 鲍旭华 *********************基金项目:国家重点研发计划项目(2016QY04W0805),国家自然科学基金(U1836211),大数据协同安全国家工程实验室开放课题Foundation Items: The National Key Research and Development Program of China(2016QY04W0805), The National Natural Science Foundation of China (U1836211), The Open Project of National Engineering Laboratory of Big Data Collaborative Security1 引言随着互联网的不断发展,各种应用程序也呈爆发式增长,应用软件已逐渐成为人们日常生活中不可获缺的工具。

DWT域数字水印算法的FPGA实现

DWT域数字水印算法的FPGA实现

DWT域数字水印算法的FPGA实现彭娅利;白天蕊【摘要】根据离散小波变换原理的特点,提出了一种基于DWT域的数字水印算法,并用FPGA硬件实现其中关键部分的DWT变换.详细介绍了相关模块的设计和时序,并对整个系统进行了综合仿真,验证了设计的正确性.分析与仿真结果表明,与软件实现相比,用FPGA实现水印算法具有高速实时处理的优点.【期刊名称】《微型机与应用》【年(卷),期】2011(030)002【总页数】3页(P55-57)【关键词】DWT;数字水印;FPGA【作者】彭娅利;白天蕊【作者单位】西南交通大学信息科学与技术学院,四川成都610031;西南交通大学信息科学与技术学院,四川成都610031【正文语种】中文【中图分类】TP332.1随着计算机网络和通信技术的飞速发展,数字媒体(包括数字图像、数字视频、数字音频)已得到了广泛的应用,随之而来的数字媒体的信息安全、知识产权保护和认证等问题也变得日益突出。

数字水印作为传统加密方法的有效补充手段,是一种可以在开放的网络环境下保护版权和认证来源以及完整性的新技术[1]。

根据水印的实现过程,图像水印算法可分为空域算法和变换域算法。

空域算法是通过直接改变原始图像的像素值来嵌入水印,通常具有较快的速度,但鲁棒性差,且水印容量也会受到限制;变换域算法是通过改变某些变换系数来嵌入水印,通常具有很好的鲁棒性和不可见性,其实现一般基于图像变换(如 DCT、DFT、DWT 等)。

大多数水印算法采用软件实现,软件实现具有易于应用、升级和适应性较好等特点,但存在速度受限、难以满足实时处理的问题。

而采用硬件实现则可以克服这些问题。

本文基于上述考虑,利用FPGA设计了基于DWT(Discrete Wavelet Transform)域的数字水印算法,其中提升小波变换是该数字水印方案的关键单元之一,采用硬件描述语言Verilog HDL对算法进行描述,并用Model-Sim完成了功能和时序仿真。

一种软件水印算法研究

一种软件水印算法研究

一种软件水印算法研究作者:宋燕红来源:《软件导刊》2012年第07期摘要:作为一种新的软件保护方式,软件水印和传统的软件保护方法相比有着很大的不同。

软件水印算法运用的不单是加密技术,它是通过把一些秘密信息嵌入到软件的代码中,如果有需要,就可以利用这些代码提取软件中所需要的信息,然后利用这些信息来证明软件真正的版权问题。

关键词:软件水印;水印算法;版权保护中图分类号:TP312文献标识码:A文章编号:(2012)作者简介:宋燕红(1969-),女, 河北清河人, 北京电子科技学院副教授,研究方向为计算机软件理论与安全。

0引言目前,绝大部分软件的版权保护都是运用加密的方法,加密方法有两种,分别是硬件加密和软件加密。

通常所说的硬件加密是指在安装、运行软件的时候要用一些特别的硬件来启动,例如Vbox、软件狗、SecuROM或者SafeDISC等;而软件加密是没有必要使用硬件装置的,可以说省去了一些硬件成本,但和硬件加密相比其安全性稍微逊色一些。

我们了解的盗版软件一般分两种:①通过随意复制并分发或刻意去拷贝软件;②未得到版权所有者本人的认可,向个人开发出的程序中放入一小部分或是很大一部分甚至是全部的软件代码。

一般情况下加密技术能够免去第一种较为简单的盗版手段,也能够预防软件被盗,但是就第二种盗版手段,加密了的技术已经没有它的用武之地了,尤其当那些想要盗用版权的人具有较高的破密技能,加密效果更会大打折扣,甚至会失效。

因此,我们要用新技术来杜绝盗版现象的发生,这样便迎来了软件水印技术的时代。

严格意义上来讲,软件水印技术所采用的方法是事后追查,虽然这种技术无法完全阻止盗版的发生,但是能够破坏盗版软件,还可以提供盗版行为的证据。

1水印算法的原理软件水印的想法是受到数字水印的启发而形成的。

近年来数字水印的应用不断扩大,并引起了大家的极大研究兴趣,于是产生了大量的研究成果。

作为信息隐匿的其中一个分支,它的主要技术思想是:通过编码嵌入信息,接着在那些已知的信息例如隐秘的密钥的控制下嵌入一些诸如文本、图像、音频、视频的载体相关信息。

基于内存操作的动态软件水印算法

基于内存操作的动态软件水印算法
关键词:数字版权;软件水印;内存操作 ;水 印算法 中图分类号 :T P 3 9 1 文献标识码:B 文章编号 :1 0 0 0 — 4 3 6 X( 2 0 1 3 ) 0 2 — 0 1 2 8 — 1 0
Dy n a mi c s o f t wa r e wa t e r ma r k i n g a l g o r i t h m b a s e d o n me mo r y o p e r a t i o n
I 引言
随着互 联 网的快速 发 展 ,数字 产 品的分 发变得 简 单快 捷 ,传 播 范 围更加 宽广 。数 字产 品的版权 保 护受 到 了严 峻 的挑 战 ,其 中 ,软 件产 品 的状 况尤 为
不容 乐观 ,软件 盗版 已经成 为软 件开 发者最 大 的威
软件 开发 者 的积 极性 ,为软件 开 发者提 供有 效 的软 件保 护方 法成 为亟待 解决 的 问题 。软件 水 印是软 件 保护 方法 中一 种重 要 的技 术 ,它将 标 志版权 的秘 密 信 息嵌入 到要 保护 的软件 中达至 J l 保 护 的 目的 ,这些
2 . K e y L a b o r a t o r y o f E mb e d d e d S y s t e m a n d S e r v i c e C o mp u t i n g , Mi n i s t r y o f E d u c a t i o n , S h a n g h a i 2 0 1 8 0 4 , C h i n a )
Ab s t r a c t :Me mo r y o p e r a t i o n b a s e d wa t e r ma r k i n g ,a n o v e l a p p r o a c h t o s o twa f re wa t e r ma r k i n g b a s e d o n t h e d y n a mi c me mo r y b e h a v i o r s o f n a t i v e c o d e p r o g r a ms wa s i n t r o d u c e d . Th e d e f i n i t i o n o f d y n a mi c c l u s t e r , me mo y r r e l a t i o n s h i p b e — t we e n c l u s t e r s a n d ma t i r x o f me mo r y r e l a t i o n s h i p wa s g i v e n , a n d a d e t a i l e d d e s c i r p t i o n o f t h e s o f t wa re wa t e m a r rk e m— b e d d i n g a n d e x t r a c t i o n p r o c e d u r e wa s g i v e n . T h e p l a t f o m r i n d e p e n d e n c e , c r e d i b i l i t y , d a t a r a t e a n d c o s t o f t h e a l g o r i t h m

基于.NET栈平衡的软件水印研究与实现的开题报告

基于.NET栈平衡的软件水印研究与实现的开题报告

基于.NET栈平衡的软件水印研究与实现的开题报告一、研究背景随着数字版权的日益重视,保护数字产品版权成为了一个重要的问题。

其中,软件水印技术作为一种隐蔽且有效的数字版权保护方式受到了广泛关注。

软件水印是将一个特定的信息隐藏在软件中,可以通过提取软件水印来定位和追踪盗版行为,从而防止软件的非法复制和分发。

.NET平台是目前常用的软件开发平台之一,其特点是开发速度快、性能高、安全可靠。

因此,.NET平台上的软件水印技术研究对保护数字版权具有重要意义。

二、研究内容本研究将基于.NET平台,通过对.NET框架和语言的深入研究和分析,实现一个基于.NET栈平衡的软件水印系统。

具体研究内容包括:1. .NET平台基础知识与技术研究深入研究.NET平台的基础知识与技术,包括.NET框架、C#语言、等方面,探究其代码的特征及其特殊之处。

2. 软件水印原理与系统设计研究软件水印技术的基本原理和实现方法,设计一个基于.NET栈平衡的软件水印系统,涵盖了软件水印的嵌入和提取功能。

3. 水印嵌入与提取算法研究分析并研究多种水印嵌入和提取算法,探究不同算法间的优缺点和适用场合,并在设计的软件水印系统中实现。

4. 系统性能测试与优化对研究实现的软件水印系统进行各种性能测试,探究其在码量、CPU占用、内存占用、水印提取准确率等方面的表现,并针对性能问题进行优化。

三、研究意义本研究的主要意义在于:1. 提出了一种新的基于.NET栈平衡的软件水印实现思路,丰富了软件水印技术在.NET平台上的应用。

2. 探究了不同的软件水印嵌入与提取算法,对软件水印技术的发展和应用具有参考意义。

3. 设计的软件水印系统可以对盗版软件进行有效的版权保护,具有实用和推广价值。

四、预期成果本研究的预期成果包括:1. 一份基于.NET栈平衡的软件水印研究报告,详细介绍.NET平台软件水印技术的实现方法和应用案例,包括理论分析和系统设计。

2. 一个基于.NET栈平衡的软件水印系统,实现了软件水印的嵌入和提取功能,且具有一定的性能和稳定性。

嵌入式系统软件水印方案研究实现的开题报告

嵌入式系统软件水印方案研究实现的开题报告

嵌入式系统软件水印方案研究实现的开题报告一、选题背景随着现代社会的发展,嵌入式系统的运用越来越广泛,尤其是在电子产品、汽车等领域中,嵌入式系统已成为必不可少的组成部分。

随之而来的问题是嵌入式系统软件的防护和保护问题,如何防范嵌入式系统软件的恶意攻击以及软件的盗版问题成为了摆在开发者和使用者面前必须解决的难题。

一种可行的解决方法就是通过在嵌入式系统软件中嵌入水印来进行软件的溯源和保护。

水印技术是指将一串特定的标识信息嵌入到特定的数据中,从而实现对数据的溯源、提高数据的版权保护能力。

在嵌入式系统领域,对软件进行水印处理是保护嵌入式系统软件安全的重要方法之一。

目前,国内外学者们在嵌入式系统软件水印方案的研究中进行了大量的探索和实践,但是要求软件加密和保护的实际需求是复杂和多样的。

二、研究目的本文将通过对国内外嵌入式系统软件水印方案的研究与分析,以及对相关技术和理论的探究,实现进行针对性的水印方案设计与研究,旨在提高系统软件的版权保护和安全性,达到以下目标:1.调查国内外嵌入式系统软件水印技术的研究现状,分析其发展趋势。

2.针对嵌入式系统软件的特点和需求,提出适合嵌入式系统软件的水印方案。

3.基于提出的水印方案设计并实现嵌入式系统软件水印算法。

4.通过实验与实践验证实现的水印算法的有效性和实用性。

三、研究内容本文的研究内容主要包括以下几个方面:1. 嵌入式系统软件水印技术的研究现状调查:该部分主要通过文献查阅和图书检索等方式,探索国内外嵌入式系统软件水印技术的研究现状,分析水印技术的应用领域以及存在的问题和不足。

2. 嵌入式系统软件水印方案的设计:该部分主要根据以上调查分析的结果,针对嵌入式系统软件的特点和需求,提出适合嵌入式系统软件的水印方案。

3. 嵌入式系统软件水印算法的设计与实现:该部分主要根据设计出的水印方案,具体设计和实现嵌入式系统软件水印算法。

4. 水印算法的验证实验:该部分主要通过实验验证实现的水印算法的有效性和实用性,测试嵌入式系统软件水印的溯源和保护效果。

基于路径的防篡改动态软件水印算法

基于路径的防篡改动态软件水印算法

摘要本文给出了一种改进的动态水印算法,该算法采用基于中国剩余定理的水印分割方法,并通过在程序中同时插入与分割的拓扑图相对应的校验比特串的方法提高其纠错能力和抗篡改能力。

该算法具有编码纠错能力强、抗攻击能力好的特点,同时兼顾了基数-k编码方法编码率高、编码范围广的优点。

关键词软件水印;动态图;路径;防篡改1引言软件水印技术是通过向程序中嵌入识别信息来抗击软件盗版,现今大多数已提出的软件水印算法都存在方方面面的缺点。

根据水印被加载的时刻,软件水印分为静态水印和动态水印。

静态水印存储在可执行的程序代码中,已知的静态水印都易于遭受简单的变形水印攻击,抗攻击能力差,任何代码优化技术都可以破坏水印。

动态水印在程序运行时被构建,存储在程序的执行状态中。

动态水印由于鲁棒性较强,现在受到了广泛的关注。

Collberg和Thomborson[1]提出了一种动态图水印技术,即把软件水印隐藏在程序动态建立的图结构拓扑中。

由于指针结构的引入,使得控制动态图结构的那部分代码不易被分析,因而很难对图进行保持语义变换。

这种技术的基本思想是用图的拓扑结构来代表一个数N,这个数是两个大素数的乘积,在进行水印检测时,先根据图的拓扑结构恢复出N,由于数论中的大数分解难问题,只有合法用户才能将检测到的N分解成大素数P和Q的乘积,从而证明其合法版权。

与静态水印相比,动态图水印算法不容易受到代码最优化和代码迷乱等水印攻击的破坏,但是同样不能很好地抵抗篡改、裁减等恶意攻击。

软件水印的防篡改技术可以对软件及水印本身提供保护,当水印遭到破坏(水印代码被部分删除或优化等),程序能够立即感知并终止软件的运行。

针对静态水印,Holmes (1994)提出了在水印中包含校验和的防篡改措施,但是如果攻击者掌握了校验和算法,就很容易修改校验和,防篡改能力十分有限。

Moskowite和Cooperman[5](1998年)提出了另一种静态水印防篡改技术,即把水印代码嵌入到应用程序的特殊资源中,一旦该图像被篡改就立即终止程序的运行以此达到防篡改的目的。

几种水印算法详解-入门必备

几种水印算法详解-入门必备

水印算法近年来,数字水印技术研究取得了很大的进步,下面对一些典型的算法进行了分析,除特别指明外,这些算法主要针对图像数据(某些算法也适合视频和音频数据)。

空域算法该类算法中典型的水印算法是将信息嵌入到随机选择的图像点中最不重要的像素位(LSB:least significant bits)上,这可保证嵌入的水印是不可见的。

但是由于使用了图像不重要的像素位,算法的鲁棒性差,水印信息很容易为滤波、图像量化、几何变形的操作破坏。

另外一个常用方法是利用像素的统计特征将信息嵌入像素的亮度值中。

Patchwork算法方法是随机选择N对像素点(ai,bi) ,然后将每个ai点的亮度值加 1 ,每个bi点的亮度值减1,这样整个图像的平均亮度保持不变。

适当地调整参数,Patchwork方法对JPEG压缩、FIR滤波以及图像裁剪有一定的抵抗力,但该方法嵌入的信息量有限。

为了嵌入更多的水印信息,可以将图像分块,然后对每一个图像块进行嵌入操作。

变换域算法该类算法中,大部分水印算法采用了扩展频谱通信(spread spectrum communication)技术。

算法实现过程为:先计算图像的离散余弦变换(DCT),然后将水印叠加到DCT域中幅值最大的前k系数上(不包括直流分量),通常为图像的低频分量。

若DCT系数的前k个最大分量表示为D=,i=1 ,… ,k,水印是服从高斯分布的随机实数序列W =,i=1 ,… ,k,那么水印的嵌入算法为di = di(1 + awi),其中常数a为尺度因子,控制水印添加的强度。

然后用新的系数做反变换得到水印图像I。

解码函数则分别计算原始图像I和水印图像I*的离散余弦变换,并提取嵌入的水印W*,再做相关检验以确定水印的存在与否。

该方法即使当水印图像经过一些通用的几何变形和信号处理操作而产生比较明显的变形后仍然能够提取出一个可信赖的水印拷贝。

一个简单改进是不将水印嵌入到DCT域的低频分量上,而是嵌入到中频分量上以调节水印的顽健性与不可见性之间的矛盾。

基于改进的Zigzag置乱的DWT图像水印算法

基于改进的Zigzag置乱的DWT图像水印算法

基于改进的Zigzag置乱的DWT图像水印算法信息的隐藏和伪装技术是图像安全方面的重要研究方向。

常用的置乱算法较为复杂,为了兼顾算法速度和解密的复杂性,提出使用m序列改进Zigzag变换来满足上述两个要求。

由于在各种图像处理过程中,有损压缩对数字水印的生存打击较大,故使用DWT分解来满足抵抗有损压缩的攻击;同时,图像的矩阵的奇异值有很好的鲁棒性,所以为了尽可能的提高图像水印抵抗攻击的稳定性,可以把图像的SVD分解应用于DWT变换中。

实验结果证明,水印是不可见的,可抵御多种攻击,具有很好的鲁棒性;并且水印提取不需要原图像参与,是盲水印方案。

标签:数字水印DWT 奇异值分解Zigzag置乱互联网的飞速发展,使得大量的数字作品在网上传播,再加上数字作品容易复制修改,造成大量的盗版问题,打击了原作者的创作积极性。

近年来数字水印的发展,一定程度上遏制了盗版问题,它通过在被保护的数字对象(如视频、音频、图像)中嵌入某些标志性的秘密信息——水印(watermark)来证明版权归属或者跟踪侵权行为。

它通过一定的算法将水印直接嵌到多媒体内容中,同时不影响原内容的使用和价值,并且水印不能被人的感知系统发觉,数字水印必须很难被清除。

数字水印可以是文本,图像,一串数字,当这些水印要求保密时,可以通过将水印置乱来隐藏信息。

常用的置乱方法有:Tangram算法、幻方变换、Hilbert 曲线变换等等,以上算法较为复杂,计算时间较长。

Zigzag置乱虽然简单,但是它本身存在一个致命的缺陷,被置乱的矩阵首端和末端总有几个元素无法移动位置,故本文提出了用m序列改进Zigzag来实现水印图像的置乱。

奇异值分解(singular value decomposition,SVD)是一种特殊的矩阵变换。

SVD矩阵具有许多优良特性,例如奇异值对矩阵扰动不敏感、奇异值旋转不变性、奇异值比例不变性等等。

把SVD应用于图像处理中,当图像受到轻微影响时,奇异值不会发生明显变化;或者当相对较小的奇异值发生扰动时,图像不会出现较大变化。

软件水印及其研究现状概述

软件水印及其研究现状概述

软件水印及其研究现状概述王叶茂;车生兵【摘要】The development of network technology brings great convenience to the prevalence of digital products,however the software piracy subsequently triggered is increasingly serious,which has a negative impact on the further development of software industry.How to effectively protect the intelligent copyrights of software has became a problem urgently to be solved.As a new technology of software copyrights protection,software watermarking arouses the attentions from the scholars at home and abroad and quite a few research results emerge recently.In this paper,we first give the basic knowledge of software watermarking,and then discuss the basic idea of several typical software watermarking algorithms in recent years,as well as make relevant summary on the performance and characteristics of each algorithm.Finally, we also point out the further research priorities and development trend of the software watermarking.%网络技术的发展,为数字产品的传播带来极大的便利,但随之引发的软件盗版问题也日趋严重,对软件业的进一步发展产生了负面影响,如何有效地保护软件的知识版权成为亟待解决的问题。

一种基于混沌的软件水印算法框架及实现

一种基于混沌的软件水印算法框架及实现

一种基于混沌的软件水印算法框架及实现
芦斌;罗向阳;刘粉林
【期刊名称】《软件学报》
【年(卷),期】2007(18)2
【摘要】针对现有软件水印算法中存在的一些不足,将反逆向工程技术和混沌系统与Easter Egg软件水印的思想相结合,提出了一个基于混沌的软件水印算法框架.该框架通过引入混沌系统,把水印信息散列编码到整个代码当中,以保护全部代码;通过引入反逆向工程技术来抵抗逆向工程攻击,算法框架与软硬件平台无关.在i386体系结构Windows平台下实现了该算法框架,并以该实现为例分析了水印的鲁棒性,讨论了水印的嵌入对程序性能的影响.分析表明,该算法可以有效地抵抗各种语义保持变换攻击,对逆向工程攻击具有较好的抵抗性,鲁棒性较高.
【总页数】10页(P351-360)
【作者】芦斌;罗向阳;刘粉林
【作者单位】信息工程大学,信息工程学院,河南,郑州,450002;信息工程大学,信息工程学院,河南,郑州,450002;信息工程大学,信息工程学院,河南,郑州,450002
【正文语种】中文
【中图分类】TP309
【相关文献】
1.一种基于混沌序列的数字水印算法实现及分析 [J], 杨洁;刘金平;蒋加伏
2.一种基于SCA的DSP软件无线电框架实现 [J], 唐麒;施峻武;吴宇
3.一种基于AOP/IOC的软件框架研究与实现 [J], 赵艳妮;王映辉;雷宇
4.一种基于高速多核DSP的激光捷联惯组软件框架设计与实现 [J], 段祉鸿;李朝阳;狄世超;陈令刚;赵琳
5.一种基于软件总线可重用构件框架的设计与实现 [J], 白涛
因版权原因,仅展示原文概要,查看原文内容请购买。

一种基于移位寄存器的文本水印算法

一种基于移位寄存器的文本水印算法

一种基于移位寄存器的文本水印算法
胡金龙;刘九芬;张卫明;陈嘉勇
【期刊名称】《信息工程大学学报》
【年(卷),期】2011(012)003
【摘要】首先根据线性反馈移位寄存器的性质,设计了一种水印信息模型;然后分析文本数据编码及中英文文本的特点,基于空格和标点替换将水印信息模型生成的信息嵌入到宿主文本中,嵌入过程不改变文本中的文字内容,不增加宿主文本占用的存储空间,充分维护原创.面对删除、替换、增添、格式攻击时,具有较高的稳健性;分别对中英文文档进行试验,实验结果表明了该算法的有效性.
【总页数】6页(P257-262)
【作者】胡金龙;刘九芬;张卫明;陈嘉勇
【作者单位】信息工程大学信息工程学院,河南郑州450002;信息工程大学信息工程学院,河南郑州450002;信息工程大学信息工程学院,河南郑州450002;信息工程大学信息工程学院,河南郑州450002
【正文语种】中文
【中图分类】TN918
【相关文献】
1.一种基于PDF字符颜色的文本水印算法 [J], 陈青;黄鹏波
2.一种基于字符属性值的文本数字水印算法 [J], 邢晓溪
3.一种基于文本图像的纯文本自适应水印算法 [J], 高志荣;蓝雯飞
4.一种基于VBA方法的文本水印算法 [J], 姚展
5.一种基于特征的文本零水印算法研究 [J], 金真伊; 李德
因版权原因,仅展示原文概要,查看原文内容请购买。

软件水印技术综述

软件水印技术综述

软件水印技术综述1 前言目前软件保护主要由软件开发商自己负责,通过加密、序列号、关键文件(Key File)、软件狗(硬件加密锁)等方式实施保护。

软件开发商需要自己花费大量的精力用在软件保护上,而软件水印(Software Watermarking)技术正是为了解决软件知识产权证明而发展起来的。

软件水印是嵌入到程序当中的秘密消息,这些消息应该能够方便而且可靠地提取出来,以证明软件的所有权,并且具有在保证程序功能的情况下不能或者是难以去除该消息的功能。

根据软件水印的提取技术来分,可分为静态水印和动态水印(如图 1)。

静态水印存储在可执行程序代码中,比较典型的是把水印信息放在安装模块部分,或者是指令代码中,或者是调试信息的符号部分。

对于Java 程序,水印信息也可以隐藏在类文件(包括常量池表、方法表、行号表)的任何部分中。

静态水印又可以进一步分为静态数据水印和静态代码水印。

区别于静态水印,动态水印则保存在程序的执行状态中,而不是程序源代码本身。

这种水印可用于证明程序是否经过了迷乱变换处理。

动态水印主要有3 类:执行状态水印、数据结构水印和Easter Egg 水印(复活节彩蛋水印)。

其中,每种情况都需要有预先输入,然后根据输入,程序会运行到某种状态,这些状态就代表水印。

图 1软件水印是近年来才出现的软件版权保护技术,它把程序的版权信息和用户身份信息嵌入到程序中,用来标志作者、发行者、所有者、合法使用者等,并携带版权信息和身份认证信息,可以鉴别出非法复制和盗用的软件产品。

它甚至被认为是数字作品内容保护的最后一道防线。

2 研究现状1969年IBM将计算机软件从硬件中分离出来进行单独销售,之后软件业的发展速度飞快,成为了信息产业的支柱之一,自20世纪90年代以来世界软件产业一直保持着10%~20%的增长速度。

但是由于计算机软件很容易复制,使得软件业成为世界上唯一的能够使每一个顾客成为其产品的制造厂的行业。

一种基于栈分配的软件水印算法

一种基于栈分配的软件水印算法

一种基于栈分配的软件水印算法张海超;陈丹【期刊名称】《计算机与数字工程》【年(卷),期】2012(040)008【摘要】文章通过对堆栈平衡原理的分析,并在借鉴多媒体扩频水印思想的基础上,提出了基于栈分配的软件水印方案.该方案通过对栈大小的修改来嵌入水印信息,嵌入后又采用了栈访问混淆技术使得软件水印信息与程序代码产生紧密的依赖关系.分析表明,水印信息与程序代码之间的这种紧密依赖关系使得该方案能够有效抵抗多种攻击如添加攻击、去除攻击、变形攻击等,具有很高的鲁棒和隐蔽性.%Software watermarking algorithm based on stack allocation is proposed in this paper by analyzing the stack balance principle and draw on the ideas of multi-media spreaD-spectrum watermark. This scheme embeds watermark information by modifying the size of the stack, and then applies the stack access confusion technology to make software watermark information and the program code produce a close dependency. An analysis shows that the tight dependency between the watermark information and the program code makes the algorithm ef-fectively resist various attacks such as additive attack, subtractive attack, and distortive attack etc. Meanwhile the algorithm has a higher ro-bustness and invisibility.【总页数】4页(P71-73,86)【作者】张海超;陈丹【作者单位】南京航空航天大学计算机科学与技术学院南京 210016;南京航空航天大学计算机科学与技术学院南京 210016【正文语种】中文【中图分类】TP301.6【相关文献】1.一种基于数据依赖关系的软件水印算法 [J], 韩旭;刘粉林;赵正2.基于寄存器分配的软件水印算法 [J], 陈智明;向广利3.一种基于线程关系的软件水印算法 [J], 李倩伟;宋薇4.一种基于栈式分配的JVM垃圾收集算法 [J], 陈贤闯;徐小良5.基于栈状态关系的动态软件水印算法 [J], 许金超;曾国荪因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人冗余 的代码 置换代码 、 寄存器分配等方法嵌入到程
由于寄存器的数量是有 限的, 当程序所需的寄存
器数超过系统所能提供 的数量时 , 系统就会抛 出部分 指令到内存 , 因此 , 在给程序中的变量分配寄存器时 ,
尽可能的分配最少的寄存器
序中的。作为寄存器分配的软件水印方法 , P和 Q S Q P
∈E( ,< <k m dn ; v,j ∈E( , G) i j ( o ) V(iv) G) t<j < k mo ) j <k ( o ) ( dn 或 <t m dn 。例 如 : 入 水 印 W = 嵌 00 如 图 1 12 。
x的冲突图图 G= ( E , G V, ) V表示顶点集 , 如果变量 X 和 x,(≠j在 P中同时处 于 活跃 状 态 , (,) i {ii ) 则 ij ∈E
陈 智 明 向广利
( 汉理工 大 学 计 算机 科 学与技 术 学 院 , 武 武汉 4 06 ) 30 3
摘 要: 本文详细介 绍 了基于寄存 器分配的三种软件 水印算法 , P Q S Q I Q , P , P 。这三种 算法都 是通过 为冲 突图添加 边的
方式在程序 中嵌入水 印的 。根据 图染色的寄存 器分配理论 , 我们提 出了一种新的软件 水印算 法一二 次染 色算法( T , S C) 此算法并不需要 添加任何额 外的边 , 只是通 过为 图中的部分顶 点二次 着色方式来嵌入 水印 的。与 前面三种 算法 比较 , S C算法更简洁, T 更有效。 关键词 : 寄存器分配 ; 冲突图; 图染 色; 软件水 印
为了把寄存器分配转化为图染色的模型 , 编译器 首先构造一个冲突图 G(nee neGah , Itf ec r )接下来 , rr p
就是用 K种颜色给这个 冲突图进行 图染色。如果 K 等于 目 标机器的物理寄存器的数 目, 并且这个 图可以
那么 , 我们将每一种颜色对应一个 适用于基于寄存器分配的水印。但是 ,P算法有一个 被 K种颜色染 色, Q 就得到了一个寄存器分配方案。 缺点就是某些情况下无法有效 的识 别嵌入的水印信 物理寄存器 , . 息。C l e obr l g等提出 了一种改进后 的 Q S算法 , P 2 2 图染色问题 P QS 对于程序 P和程序的变量集 X={ ,:X…X } X X, , , 能够准确地提取嵌入的水印。然而 , p 算法中, Qs 嵌入 程序 中的冲突图 G= ( , ) G V E 定义如下 : 的水印信息的长度是很短 的。本 文中, 提出了新 的解
2 1 2月 0 0年 第2 7卷第 2期
湖北第二师范学院学报
J u a fHu e Unv ri fE u ain o r l b i iest o d ct n o y o
Hale Waihona Puke F b2 1 e.0 0V 12 N . o. 7 o2
基于寄存器分配 的软件水印 算法

收 稿 日期 :0 0— 1— 2 2 1 0 0
6 . 6
问题。令 P和 x{ x,。 x, x……x } 分别表示程序 的中 间代码和程序中的变量集。然后 , 我们定义在程序中
果嵌人的 比特位 W = , ; 1那么就在 图中添加边 v 。这 v 里最近和第二近 的意思是 : V,j E G , V, ( i )∈ ( ) ( i ) v V
决方法 , 既能够嵌人足够长度的水印信息 , 又能够准确
地 提取 出水印信息 。 2 寄 存器 分配 与图染 色 问题
V= { , ,, . } E={ x,i Ii i 123 …. n ; ( i ) x, 活跃期 x x 冲突}P中的 x的寄存 器分配 问题相 当于 图的染色 ;
2 1 寄存器的分配 .
算法是非常著名的算法。其思想是 : 首先把嵌入式 的
信息转换为 比特序列, 然后根据需要嵌入的比特序列 ,
对图中的每个顶点 , 将其与由算法计算 出的特定顶点
添加 一 条边 ,以达 到编 码 目的。Q P算 法 最初 开 发 出 来是在 图染色 方法 中嵌 人数字 签名 。这 种方 法 同样 也
随着信息技术应用和计算机 网络的普及 , 软件产
业也得到了迅速的发展 , 成为一种普遍 的数字商品。 同时, 软件盗版问题也 日益突出, 因此软件安全和软件 保护已成为计算机科学研究中的一项重要课题。软件 水 印(o wr W t m ri ) Sf a a r a n 技术是数字水印技术 中 t e e kg
1 引言
寄存器是位于 c u内部的少量的高速存储器 , P 因 此, 同时存放于寄存器的数据也是受限的。经典的寄 存器分配算法是 图染色算法。需要分析程序中的寄存 器中值的活跃期 ; 对于每一个值 的活跃期都对应与图 中的一个顶点。在图中 , 两个顶 点之 间存在边表示这
两个顶点代表的活跃期是有 冲突的。也就是说, 这两 个顶点对应的值在某些时刻是同时存在 的。它们就相 互冲突 , 不能 占有 同一个寄存器 。一个更加精确的定 义是 : 如果顶点 A代表 的活跃期被定义的时候, 顶点 B
中图分类号 :P 9 T 33 文献标识码 : A 文章编号 :6434 2 1 ) - 6 -5 17 —4 X【0 0 20 60 0
作者简介: 陈智明( 99一) 男, 17 , 硕士生 , 究方向为信 息安全。 研 向广利( 93一) 男 , 17 , 河南信阳人 , 副教授 , 博士, 研究方向为网络安 全。

种, 它是软件产品版权保护技术之一 , 可以用来标志
作者、 发行商、 所有者 、 使用者等 , 并携带版权保护信息
和身份认证信息 , 可以鉴别出非法 复制 和盗用的软件
产品。
代表的活跃期还没有结束 , 么 A和 B之 间存在冲 那
突。
软件水印分为动态软件水 印和静态软件水印。静 态水印存储在可执行应用程序 中, 印信息是通过插 水
相关文档
最新文档