专利名称:一种基于fpga技术的可恢复双重芯核水印认证方法
技术领域:
本发明涉及一种水印认证方法,特别是一种基于FPGA技术的可恢复双重芯核水印认证方法。
背景技术:
随着半导体制造工艺在全球的飞速发展,超大规模集成电路(VLSI)单个芯片上晶体管的数量增长能力到2015年可达到千亿数量级。然而,每12个月芯片制造能力提高约58%,设计能力却只能提高21 %,导致芯片制造能力与设计能力的差距越来越大,原有的垂直型芯片设计模式已无法满足当今芯片设计的需求。数字IP复用技术以特定宿主载体的形式传播,很容易被非法用户得到并对其进行复制篡改据为己用,这样很容易给IP设计企业带来了巨大的损失。因此,为了能在 VLSI设计过程中解决芯核(IP)产品在设计层次、降低产品成本、缩短设计周期和降低市场风险等问题,建立一种新型高效芯核水印技术已势在必行。芯核水印技术与多媒体数字水印的最大区别在于载体数据的不同。IP水印技术的相关特点主要包括以下几点:(I)透明性:芯核的设计和验证过程是相当复杂的任务,经过验证的芯核在功能与时序方面要求比较严格。芯核水印的嵌入不仅需要保证对芯核的功能行为没有任何附加影响,而且还需要有较强的不可见性。(2)安全性:芯核水印必须以隐蔽的方式嵌入到芯核设计,不容易被非法的用户轻易发现和实施各种非法攻击。因而,芯核水印算法在设计时需要考虑如何在不破坏电路正常功能行为的前提下,具有一定的抵抗非法攻击的能力。(3)可靠性:可靠性是评价芯核水印算法好坏的一个重要指标。可信度主要包括两个方面:一是鲁棒性,用来衡量芯核水印的抗攻击能力和带水印的芯核设计中包含多少不可检测水印;二是虚警率,是指在一个无水印的芯核设计中碰巧带有水印的概率。(4)性能开销:在芯核设计中添加水印信息是保证芯核安全性和竞争力的一项补充性措施。但是,这种措施对芯核设计的性能有一定的影响,甚至水印嵌入过程引起的高开销可能成为水印算法的最大缺陷。因而,对于芯核水印来说,需要比较水印前后芯核设计在面积、延时等方面的实际开销。近年来,在芯核版权保护技术中,数字IP水印技术得到了广泛的发展和关注,主要研究工作集中在基于FPGA技术的IP水印研究和基于FSM技术的IP水印研究等领域,J.Lach等人首先提出由约束生成器将待嵌入水印映射为一组附加的约束条件,利用NP问题求解中的3元可满足性问题在物理级中嵌入水印。为了能够有效地解决众多IP水印技术在水印存在的安全性较弱的问题,研究者提出了基于FPGA的可见IP水印隐藏技术、IP水印技术验证平台,并分析了现有IP水印平台在IP水印安全评估过程中的作用。在物理级IP水印的后布局布线图中,A.E.Caldwell等人在文献中提出了基于生物特征的指纹认证水印方法,该方法通过指纹的难伪造特点来对提升芯核水印的安全性能;A.K.Jain和J.Zhang等人在文献中提出在隐藏的bitfile文件中LUT的内容中嵌入带有水印信息的方法,这种方法具有较高的低开销性能。D.Saha等人通过在FPGA设计中嵌入一些设计者的签名信息,然后提出一种零知识协议对SOC设计过程中的版权归属进行验证。Castillo等人利用FPGA的特殊内部结构,在未用的查找表和已用查找表的空隙中写入水印数据。其主要的硬件开销是要增加水印提取的逻辑,在检测到特定的输入序列后,此逻辑将顺次给出水印的存放地址,并路由水印数据到输出端口。Ziener等人提出可以在电源引脚进行嵌入和检测水印信息的方法,这种方法在基于FPGA芯核水印中是首次出现。然而,通过这种方式进行水印提取的开销也相对较大。V.1.Mebin Jose等人提出在芯核设计的行为层嵌入水印生成电路以及测试电路,由此来证明芯核设计的版权归属。采用这种方法进行版权验证时,不需要额外的提取工具,并且当芯片封装之后仍能检测水印。但是,由于生成电路和测试电路的嵌入,从而导致硬件开销非常大。R.S.Chakraborty等人提出对设计的网表层进行模糊处理来达到保护IP版权的目的。这种方法尽管在一定的延时条件下具有较小的面积和功耗开销,但是它的鲁棒性能较差,在一定的非法攻击下,它的安全性不能得到有效的保护。文献[20,21]中分别提出了两种通过自重构水印技术进行芯核水印版权保护的方法,但是这两种方法主要介绍的是在水印生成过程中的自重构处理,文中并不具备水印受损后的性能分析。在上述水印安全保护方案中,尽管研究者提出了很多有效的水印方案,但是这些方案大多还不具备自恢复的功能,水印信息一旦遭到破坏,便不能进行有效恢复。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种基于 FPGA技术的可恢复双重芯核水印认证方法,不仅能使IP版权用户针对非法攻击者的破坏侵权行为进行有效的取证,还能有效地遏制版权盗用者的侵权行为。为解决上述技术问题,本发明所采用的技术方案是:一种基于FPGA技术的可恢复双重芯核水印认证方法,该方法依次包括水印嵌入、水印提取、水印恢复三个部分:所述水印嵌入步骤如下:I)利用广度搜索算法对CLB进行查找,对CLB中的slice通过深度搜索算法进行查找,通过判别slice中F和G的值来判别LUT查找表是否已用,F或G的值为O表示F或G对应的LUT查找表未使用,否则说明该LUT查找表已被使用,并对FPGA中未使用的LUT查找表的坐标信息进行统计;2 )将统计后的未用LUT查找表坐标信息和待嵌入水印信息S=StlS1S2S1、S' =S' QS' iS' fS' n HS或S'的16位二进制信息对应一个LUT查找表坐标,依照这样的规则建立一个可相互映射的索引表S ;其中S为第一重水印,S'为第二重水印;3)根据S=StlS1S2…Sn,选择数对(k, m)且满足k < m,构造一个k-Ι次多项式 f! (x) =H^a1X+..., X 的值为 O, I,..., m, Ei1, a2,..., ak^ 是随机选取的系数,其中a(l=S,H^f1 (ik), ik依次取
之间的整数,计算得到第一重水印的恢复信息H={Hk|k=l,2,…,m},根据S' =S' QS ' j ' fS' n再构造一个k_l次多项式If2(X)=IDc^b1X+...+Iv1Xibpb2,…,Iv1是随机选取的系数,计算得到第二重水印的恢复信息 H' ={H' k|k=l,2,...,m},H' k 由 H' k=f2(ik)计算得到,此时 bQ=S',保存 H 和 H',作为水印恢复时的参数;
4)从第一重水印S=StlS1S^Sn中读取4位16进制的组合逻辑信息,利用组合逻辑匹配的方法,根据位置参数值μ和第二重水印的恢复信息H' ={H' k|k=l,2,...,m}的值,对待嵌入的第一重水印信息和第二重水印的恢复信息H'进行线性转换,达到压缩的效果,其中线性转换模型为AXB+C,(A,B)表示水印嵌入位置的坐标,即位置参数表示的信息,C表示在(A,B)坐标位置处嵌入的相应比特信息,将线性转换后的bit信息以16位为一组嵌入到(A,B)对应的CLB中的LUT查找表中,即改变bitfile自约束文件中对应位置的值,此值也就是索引表δ的冗余信息,为了保证水印的安全,对嵌入的bit信息进行加密,加密的私钥为key,私钥key对应的自恢复阀值为H' k ;从第二重水印S' =S' ^n中读取4位16进制的组合逻辑信息,利用组合逻辑匹配的方法,根据位置参数值μ和第一重水印的恢复信息H={Hk|k=l,2,...,m}的值,将线性转换后的bit信息以16位为一组嵌入到(A,B)对应的CLB中的LUT查找表中,即改变bitfile自约束文件中对应位置的值,此值也就是索引表δ的冗余信息,为了保证水印的安全,对嵌入的bit信息进行加密,加密的私钥为key',私钥key'对应的自恢复阀值为Hk ;其中μ为索引表δ中冗余属性标识符位置参数值;5)根据每一个LUT查找表实现任意4位16进制的组合逻辑信息,依此类推,直至bit信息全部嵌入到冗余属性标识符中;所述水印提取步骤如下:I)提取冗余属性标志信息:若水印未被破坏,利用私钥key和key',根据IP水印嵌入时版权所有者保留的水印位置信息找出未用bitfile自约束文件中所有新插入的冗余属性标识符信息;2)重构索引表δ和冗余组合表达式的映射关系:根据水印嵌入未用LUT查找表后的冗余属性标识符位置 参数值μ计算出索引表S和冗余组合表达式,即水印嵌入时的线性转换模型AXB+C的映射关系,从而求出在索引表δ中AXB+C中C的值对应的LUT查找表位置;3)提取水印:根据映射关系与冗余组合表达式中C的值将储存在相应的LUT查找表中的规则,得到含有实现数字IP水印信息的冗余属性标识符位置信息,从而提取出水印
信息;所述水印恢复的步骤如下:I)从SS1或SS2中提取出关联水印信息P1或P2,其中SS1或SS2包含部分未被破坏的水印信息和可能受损的水印恢复信息H'或H ;其中SS1表示水印嵌入步骤4)、5)中最终嵌入的第一重水印信息,SS2表示水印嵌入步骤4)、5)中最终嵌入的第二重水印信息A用于恢复第二重水印的受损因子H',P2用于恢复第一重水印的受损因子H;2)对关联水印信息P1或P2重新编码,P1编码后的关联水印信息P' 1={Η' k| k=l,2,…},其中H' k是通过提取水印得到的水印恢复信息;匕编码后的关联水印信息P' 2={Hk| i=l,2,…},其中Hk也是通过提取水印方法得到的水印恢复信息;3)利用重新编码得到的关联水印信息P' 1、P' 2和嵌入时选取的数对(k,m),对受损水印信息进行重构处理,将重新编码后产生的关联水印信息P2当成秘密信息重构的子密钥,构造多项式
权利要求
1.一种基于FPGA技术的可恢复双重芯核水印认证方法,其特征在于,该方法依次包括水印嵌入、水印提取、水印恢复三个部分: 所述水印嵌入步骤如下: 1)利用广度搜索算法对CLB进行查找,对CLB中的slice通过深度搜索算法进行查找,通过判别slice中F和G的值来判别LUT查找表是否已用,F或G的值为O表示F或G对应的LUT查找表未使用,否则说明该LUT查找表已被使用,并对FPGA中未使用的LUT查找表的坐标信息进行统计; 2)将统计后的未用LUT查找表坐标信息和待嵌入水印信息S=StlS1S2SpS' =S' QS' ^n HS或S'的16位二进制信息对应一个LUT查找表坐标,依照这样的规则建立一个可相互映射的索引表S ;其中S为第一重水印,S'为第二重水印; 3)根据S=StlS1S2…Sn,选择数对(k,m)且满足k彡m,构造一个k_l次多项式A(X)=Bc^a1X+...+Bk^1Xk-1, X 的值为 O, I,…,m, 2 ^ k ^ m, a1; a2,…,ak_i 是随机选取的系数,其中a^S,Hk=Kik), ik依次取[O,m]之间的整数,计算得到第一重水印的恢复信息H={Hk|k=l,2,..., m},根据已选定的数对(k, m)和 S' =S' QS' 1S/ fS' n 再构造一个k-1次多项式F2(X)=V^b1X+...+V1X1^Sbpb2,...,V1是随机选取的系数,计算得到第二重水印的恢复信息H' ={H' k|k=l,2,...,m},H' k由H' k=f2 (ik)计算得到,此时bQ=S',保存H和H',作为水印恢复时的参数; 4)从第一重水印S=StlS1S^Sn中读取4位16进制的组合逻辑信息,利用组合逻辑匹配的方法,根据位置参数值μ和第二重水印的恢复信息H' ={H' k|k=l,2,...,m}的值,对待嵌入的第一重水印信息和第二重水印的恢复信息H,进行线性转换,达到压缩的效果,其中线性转换模型为AXB+C,(A,B)表示水印嵌入位置的坐标,即位置参数表示的信息,C表示在(A,B)坐标位置处嵌入的相应比特信息,将线性转换后的bit信息以16位为一组嵌入至Ij (A,B)对应的CLB中的LUT查找表中,即改变bitfile自约束文件中对应位置的值,此值也就是索引表S的冗余信息,为了保证水印的安全,对嵌入的bit信息进行加密,加密的私钥为key,私钥key对应的自恢复阀值为H' k ;从第二重水印S' =S' 中读取4位16进制的组合逻辑信息,利用组合逻辑匹配的方法,根据位置参数值μ和第一重水印的恢复信息H={Hk|k=l,2,...,m}的值,将线性转换后的bit信息以16位为一组嵌入至Ij (A,B)对应的CLB中的LUT查找表中,即改变bitfile自约束文件中对应位置的值,此值也就是索引表S的冗余信息,为了保证水印的安全,对嵌入的bit信息进行加密,加密的私钥为key',私钥key'对应的自恢复阀值为Hk ;其中μ为索引表δ中冗余属性标识符位置参数值; 5)根据每一个LUT查找表实现任意4位16进制的组合逻辑信息,依此类推,直至bit信息全部嵌入到冗余属性标识符中; 所述水印提取步骤如下: 1)提取冗余属性标志信息:若水印未被破坏,利用私钥key和key',根据IP水印嵌入时版权所有者保留的水印位置信息找出未用bitfile自约束文件中所有新插入的冗余属性标识符信息; 2)重构索引表δ和冗余组合表达式的映射关系:根据水印嵌入未用LUT查找表后的冗余属性标识符位置参数值μ计算出 索引表S和冗余组合表达式,即水印嵌入时的线性转换模型AXB+C的映射关系,从而求出在索引表δ中AXB+C中C的值对应的LUT查找表位置; 3)提取水印:根据映射关系与冗余组合表达式中C的值将储存在相应的LUT查找表中的规则,得到含有实现数字IP水印信息的冗余属性标识符位置信息,从而提取出水印信息; 所述水印恢复的步骤如下: 1)从SS1或SS2中提取出关联水印信息P1或P2,而SS1或SS2包含部分未被破坏的水印信息和可能受损的水印恢复信息H'或H;其中SS1表示水印嵌入步骤4)、5)中最终嵌入的第一重水印信息,SS2表示水印嵌入步骤4)、5)中最终嵌入的第二重水印信息A用于恢复第二重水印的受损因子H',P2用于恢复第一重水印的受损因子H; 2)对关联水印信息?1或己重新编码,P1编码后的关联水印信息P'k|k=l,.2,…},其中H' k是通过提取水印得到的水印恢复信息;匕编码后的关联水印信息P' 2={Hk| i=l,2,…},其中Hk也是通过提取水印方法得到的水印恢复信息; 3)利用重新编码得到的关联水印信息P'pP' 2和嵌入时选取的数对(k,m),对受损水印信息进行重构处理,将重新编码后产生的关联水印信息P2当成秘密信息重构的子密钥,构造多项式
全文摘要
本发明公开了一种基于FPGA技术的可恢复双重芯核水印认证方法,首先采用一种门限秘密共享方案将待恢复的水印信息作为恢复因子;然后,通过构造特殊表达式组合的形式来压缩水印的预处理信息,并建立恢复因子与待恢复水印信息之间的映射关系;其次,在FPGA设计的bitfile自约束文件中通过插入未用LUT的冗余属性标识符来嵌入自恢复水印信息。通过实验测试与结果表明本发明的方法可在水印受到一定程度的移除攻击后仍能有效地恢复出原始水印信息。同时,该方法也具有资源开销小、水印嵌入信息容量大以及鲁棒性强等优点。
文档编号G06T1/00GK103226674SQ201310193749
公开日2013年7月31日 申请日期2013年5月23日 优先权日2013年5月23日
发明者张大方, 梁伟, 尤志强, 呼彦吉, 黎文伟 申请人:湖南大学