基于变进制规则的方程式软件水印算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n一1
b 生成 密钥 。查找 程序 中可 安全交 换 的方程 式 , ) 并筛 选 出其 中操作数大于等于 n的方程式 ,, 以自左 向右的顺序遍历 厂得到各操作数 的系数 向量 E :( , 一 一, ) 并 将此 ,
与 上 式 矛 盾 , 以 % =b。 又 由 于 0( 一1 !=k一Ⅱ ( — 所 i ) i
( , , ,) 6 3 2 8 。对 ( 1 循 环右移 a 3位 , 变为 ( , , , 4, ) = 3 2 8
6 ; ( ,) 环 右 移 a ) 3 1 循 =1 , 变 为 ( , , , ) ( , ) 位 E 3 6 2 8 ; 2 1 循 环 右移 a =1 , 变 为 ( , , , ) E ( , ) 环 右 移 a : 位 36 82 ; 1 1 循 。
一
定义 1 变进制 数 。满足 定理 1等式 的唯一 序列 { a }=
( a 一 -,。 称为 整数 k对 应 的变进 制 数 , a , -a ) 阶乘 ( 一1 ! i ) 为对应位 的权值 。由定理 1的证 明过程可 以看 出, 变进 制数 实
际上是一 种第 i 位逢 i l的数制 。 进
2 基 于 变进 制规则 的方 程式 软件水 印算 法
2 1 算 法 的主 要思 想 .
根据文献 [ ] 程序 中具有连加 或连乘 的方程式称 为可安 2, 全交换的方程式 , 意交换这些方程式各操作数 的位 置将不会 任 改变方程式的最终结果 , 因此 可以通过重排这些 可安全交换方
进制数 ( , , , ) 3 1 10 。对 厂 自左 向右 遍历 得到 密钥 向量 E =
n一1
1 !=∑b( 一1 !所 以 o =b。也 即 k的表示 方法 是 唯一 ) i ) ,
的。
向量作为密钥 由版权所有者保 留。
c 利用 循 环 右移 重排 序 方 程 式 。其 步 骤 如 下 : ) ( ) 置 迭 代 变 量 i ( ≥i ) 并 令 ( Y 是 的 a设 =n n ≥1 , , )
p≤ n
图2 基 于变进 制规则 的方 程式水 印算法 模型
1 = , 1 q :’
k= 6( 一1 ! n一1 ! 。 ;i ) ≥6( ) ≥( +1 ( ) n一1 ! )
同时 有
W %p ̄ a , W/ 。 p
q +1 g = ,p+1 =
n 一1
个子 集 , 它包含 中从 到 的元素的集合 ; () b 取出变进制第 i 位元 素 a , E ( ,) 对 i1 循环右移 a 位 ; ( ) =i 。如 果 i c i 一1 ≥1执行 步骤 ( ) 否 则迭 代过 程 结 b, 束, 并令 E =E ; R () d 根据系数序列 E 的值对 方程式 ,的各操作数进行重 新排序。 例 1 设需要嵌 入的水印为 W= 1 程序 中满 足条 件的方 2, 程式是 F= x+ y+ z 6 3 2 +8 。根 据 图 3流程 , 可 以转 换为变
・wk.baidu.com
39 ・ 40
计 算 机 应 用 研 究
图 3所 示 。
第2 9卷
方法唯一 。其 中 0 一1 ≤Ⅱ ≤i 。
证明
当数列 { 取各 自的最大值 , a =i a} 即 一1时 , 可 k
取得最大值 :
k ∑ ( 一1 ( 一1 !=∑ ( 一1 ( 一1 !+1 = i )i ) i )i ) —1=
。( )f_ 。( ) a ( ) 一 一 ! n n一 !≤
n—l
得 到 (~ …a) da ,
( 一1 ( 一1 !+n ( )i ) n一1 != )
图3 水印信 息转换 为变 进制数N S 程 —流
( n一1 !一1+a ( ) n一1 != ) ( +1 ( a ) n一1 !一1 a ) <( +1 ( ) n一1 ! )
1 1
∑ ( 一1 ( 一1 !+1 i )i ) 1+1 x1 —1=
∑ (‘ ) i )!+ i 一1 ( 一1 21—1= ∑ ( 一1 ( 一1 !+2X i )i ) 21+2 1—1 =
= 4
∑ ( 一1 ( 一1 !+ i ) i ) 31—1=… =
=
程式操作数的位序来实现水 印信息 的隐藏 。基于变进 制规则
的方程式水 印算法 的主要 思想 是 : 据定 理 1 先将水 印信 息 根 , 表示 为 n 变进 制数 ( 口 , , ; 位 a , … a ) 再在 程序 中找 到操 作数个数 大于等 于 n的可安全 交换方 程式 厂, 并将 , 中各 操 作数的系数序列 E R=( , 一 一, 作 为密钥 向量 ; 印 a) 水 嵌入时 , 据变进制值 并利 用循环 右移操 作对 方程式 , 中各 根 操作数进行重 排序 , 到嵌 入后 的系数 序列 E 得 =( 一 卢 , ,
…
0位 , 变为( , , ,) 3 6 8 2 。迭代结束 , 得到 E =( , , , ) 3682 ,
从 而得到重排 序后 的方 程式 F=3 6 y+ +8 +2 。其 循环 右 z
( 一1 ( ) n一1 !+( ) n一1 !一1 ) =n!一1
( 水 印 的 嵌 入 a ) I ( 水 印 的 识别 b )
当 { 取各 自的最 小值 , a =0时, a} 即 k可取 得最 小值 0 , 所以 k 0 n ∈[ , !一1 。另一 方面 , ] 对于 Vk∈[ , !一1 , 存 0n ]若 在另一个数列 { , b} 使得 k =三6( 一1 !不妨设 Ⅱ ≤6 , i ) , 那么
b 生成 密钥 。查找 程序 中可 安全交 换 的方程 式 , ) 并筛 选 出其 中操作数大于等于 n的方程式 ,, 以自左 向右的顺序遍历 厂得到各操作数 的系数 向量 E :( , 一 一, ) 并 将此 ,
与 上 式 矛 盾 , 以 % =b。 又 由 于 0( 一1 !=k一Ⅱ ( — 所 i ) i
( , , ,) 6 3 2 8 。对 ( 1 循 环右移 a 3位 , 变为 ( , , , 4, ) = 3 2 8
6 ; ( ,) 环 右 移 a ) 3 1 循 =1 , 变 为 ( , , , ) ( , ) 位 E 3 6 2 8 ; 2 1 循 环 右移 a =1 , 变 为 ( , , , ) E ( , ) 环 右 移 a : 位 36 82 ; 1 1 循 。
一
定义 1 变进制 数 。满足 定理 1等式 的唯一 序列 { a }=
( a 一 -,。 称为 整数 k对 应 的变进 制 数 , a , -a ) 阶乘 ( 一1 ! i ) 为对应位 的权值 。由定理 1的证 明过程可 以看 出, 变进 制数 实
际上是一 种第 i 位逢 i l的数制 。 进
2 基 于 变进 制规则 的方 程式 软件水 印算 法
2 1 算 法 的主 要思 想 .
根据文献 [ ] 程序 中具有连加 或连乘 的方程式称 为可安 2, 全交换的方程式 , 意交换这些方程式各操作数 的位 置将不会 任 改变方程式的最终结果 , 因此 可以通过重排这些 可安全交换方
进制数 ( , , , ) 3 1 10 。对 厂 自左 向右 遍历 得到 密钥 向量 E =
n一1
1 !=∑b( 一1 !所 以 o =b。也 即 k的表示 方法 是 唯一 ) i ) ,
的。
向量作为密钥 由版权所有者保 留。
c 利用 循 环 右移 重排 序 方 程 式 。其 步 骤 如 下 : ) ( ) 置 迭 代 变 量 i ( ≥i ) 并 令 ( Y 是 的 a设 =n n ≥1 , , )
p≤ n
图2 基 于变进 制规则 的方 程式水 印算法 模型
1 = , 1 q :’
k= 6( 一1 ! n一1 ! 。 ;i ) ≥6( ) ≥( +1 ( ) n一1 ! )
同时 有
W %p ̄ a , W/ 。 p
q +1 g = ,p+1 =
n 一1
个子 集 , 它包含 中从 到 的元素的集合 ; () b 取出变进制第 i 位元 素 a , E ( ,) 对 i1 循环右移 a 位 ; ( ) =i 。如 果 i c i 一1 ≥1执行 步骤 ( ) 否 则迭 代过 程 结 b, 束, 并令 E =E ; R () d 根据系数序列 E 的值对 方程式 ,的各操作数进行重 新排序。 例 1 设需要嵌 入的水印为 W= 1 程序 中满 足条 件的方 2, 程式是 F= x+ y+ z 6 3 2 +8 。根 据 图 3流程 , 可 以转 换为变
・wk.baidu.com
39 ・ 40
计 算 机 应 用 研 究
图 3所 示 。
第2 9卷
方法唯一 。其 中 0 一1 ≤Ⅱ ≤i 。
证明
当数列 { 取各 自的最大值 , a =i a} 即 一1时 , 可 k
取得最大值 :
k ∑ ( 一1 ( 一1 !=∑ ( 一1 ( 一1 !+1 = i )i ) i )i ) —1=
。( )f_ 。( ) a ( ) 一 一 ! n n一 !≤
n—l
得 到 (~ …a) da ,
( 一1 ( 一1 !+n ( )i ) n一1 != )
图3 水印信 息转换 为变 进制数N S 程 —流
( n一1 !一1+a ( ) n一1 != ) ( +1 ( a ) n一1 !一1 a ) <( +1 ( ) n一1 ! )
1 1
∑ ( 一1 ( 一1 !+1 i )i ) 1+1 x1 —1=
∑ (‘ ) i )!+ i 一1 ( 一1 21—1= ∑ ( 一1 ( 一1 !+2X i )i ) 21+2 1—1 =
= 4
∑ ( 一1 ( 一1 !+ i ) i ) 31—1=… =
=
程式操作数的位序来实现水 印信息 的隐藏 。基于变进 制规则
的方程式水 印算法 的主要 思想 是 : 据定 理 1 先将水 印信 息 根 , 表示 为 n 变进 制数 ( 口 , , ; 位 a , … a ) 再在 程序 中找 到操 作数个数 大于等 于 n的可安全 交换方 程式 厂, 并将 , 中各 操 作数的系数序列 E R=( , 一 一, 作 为密钥 向量 ; 印 a) 水 嵌入时 , 据变进制值 并利 用循环 右移操 作对 方程式 , 中各 根 操作数进行重 排序 , 到嵌 入后 的系数 序列 E 得 =( 一 卢 , ,
…
0位 , 变为( , , ,) 3 6 8 2 。迭代结束 , 得到 E =( , , , ) 3682 ,
从 而得到重排 序后 的方 程式 F=3 6 y+ +8 +2 。其 循环 右 z
( 一1 ( ) n一1 !+( ) n一1 !一1 ) =n!一1
( 水 印 的 嵌 入 a ) I ( 水 印 的 识别 b )
当 { 取各 自的最 小值 , a =0时, a} 即 k可取 得最 小值 0 , 所以 k 0 n ∈[ , !一1 。另一 方面 , ] 对于 Vk∈[ , !一1 , 存 0n ]若 在另一个数列 { , b} 使得 k =三6( 一1 !不妨设 Ⅱ ≤6 , i ) , 那么