当前位置: 首页 > 专利查询>宁波大学专利>正文

一种用于乘法器的全同态混淆方法技术

技术编号:20075702 阅读:29 留言:0更新日期:2019-01-15 00:49
本发明专利技术公开了一种用于乘法器的全同态混淆方法,该全同态混淆方法先对乘法器的乘数和被乘数进行全同态加密,然后利用加密后的数据进行乘法运算,当乘法器的第二输入端口有密钥输入时,此时判定输入的密钥与设定的正确的密钥值是否相等,根据其判定结论进行解密得到最终的乘积输出;优点是对乘数和被乘数进行全同态加密,并将积混淆输出,由此避免乘数和被乘数的原始数据被盗用,对乘法器IP核进行保护,提高乘法器在集成电路中安全性。

A Homomorphic Confusion Method for Multipliers

The invention discloses an all-homomorphic obfuscation method for multipliers. The all-homomorphic obfuscation method first encrypts the multiplier and the multiplier, and then multiplies the data after encryption. When the key of the second input port of the multiplier is input, the input key is determined to be equal to the set correct key value, and the decision conclusion is based on the method. The final product output is obtained by decryption. The advantage is to encrypt the multiplier and the multiplier homomorphically and confuse the product with the output, thus avoiding the original data of the multiplier and the multiplier being stolen, protecting the IP core of the multiplier and improving the security of the multiplier in the integrated circuit.

【技术实现步骤摘要】
一种用于乘法器的全同态混淆方法
本专利技术涉及一种全同态混淆方法,尤其是涉及一种用于乘法器的全同态混淆方法。
技术介绍
作为运算单元的一部分,乘法器在数字电路设计中是必不可少的。在硬件电路设计中,乘法器可以直接使用乘法运算符号,在进行逻辑综合时会调用工艺库中的乘法器知识产权(IntellectualProperty,IP)核来完成乘法运算。乘法器作为集成电路中的一个IP核,是可以重复使用的,所以其自身会受到各种攻击,比如IP核盗版等问题。现有的IP核保护是通过硬件混淆即改变IP核的设计来隐藏电路的功能,例如Zhang等提出采用物理不可克隆函数(PhysicalUnclonableFunction,PUF)和有限状态机相结合的硬件混淆方法,有效保护现场可编程门阵列(Field-ProgrammableGateArray,FPGA)器件的IP核,实现Pay-Per-Device的强制付费许可。但是传统IP保护方法很少涉及对乘法器IP核的保护,并且也不涉及对乘法器原始输入数据的保护,所以乘法器在进行乘法运算时,乘数和被乘数是以原始数据输入乘法器中来运算的,这些原始数据很容易被硬件木马等攻击所利用来对电路或者设计进行恶意修改,从而导致整个电路异常运行或者窃取整个电路信息。所以,如何有效保护集成电路中乘法器的运算数据及其自身IP核的安全,已成为亟待解决的问题。
技术实现思路
本专利技术所要解决的技术问题是提供一种用于乘法器的全同态混淆方法,该全同态混淆方法可以对乘数和被乘数进行全同态加密,并将积混淆输出,由此避免乘数和被乘数的原始数据被盗用,对乘法器IP核进行保护,提高乘法器在集成电路中安全性。本专利技术解决上述技术问题所采用的技术方案为:一种用于乘法器的全同态混淆方法,包括以下步骤:(1)将乘法器的第一输入端口记为a',第二输入端口记为b',积输出端口记为c',将二进制乘数记为a”,a”=anan-1…a2a1,n为二进制乘数的位数,二进制被乘数记为b”,b”=bmbm-1…b2b1,m为二进制被乘数的位数,设定一个通过第二输入端口输入乘法器中的l位二进制密钥,将其记为KS,其中l为大于1的整数;(2)采用随机函数随机产生两个大于等于-2且小于等于2的十进制变量r1和r2;(3)在乘法器中设定l位二进制数,将该l位二进制数作为乘法器的正确秘钥;(4)将a”对应的十进制数记为a,b”对应的十进制数记为b,对a和b进行全同态加密,具体加密过程为:A、若m=n,将a加密后得到的数据记为c1,将b加密后得到的数据记为c0,按照以下步骤进行加密:A-1、判定n是否等于1:如果n等于1,令c1=a+p*q+2r1,c0=b+p*q+2r2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(a+2r1)*(b+2r2)<p/2,*为乘运算符号;如果n大于1,令c1=a+p*q+4nr1,c0=b+p*q+4nr2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(a+4nr1)*(b+4nr2)<p/2;A-2、将c1和c0输入到乘法器中执行乘法运算,将此时运算的结果记为c,c=c1*c0;A-3、判定乘法器的第二输入端口b'输入的l位二进制密钥KS与乘法器的正确秘钥是否相等:当输入的l位二进制密钥KS与乘法器的正确秘钥相等时,判定n的值是否等于1:如果n等于1,则将c先对p取模后再对2取模,得到解密后的数据out,该解密后的数据out即为乘法器输出的积,此时out=(cmodp)mod2,mod为取模符号;如果n大于1,则将c先对p取模后再对4n取模,得到解密后的数据out,该解密后的数据out即为乘法器输出的积,此时out=(cmodp)mod4n;当输入的l位二进制密钥KS与乘法器的正确秘钥不相等时,判定n的值是否等于1:如果n等于1,则将c先对p取模后然后对2取模最后按位取反,得到解密后的数据out输出,该解密后的数据out即为乘法器输出的积,此时out=~((cmodp)mod2),~为取反符号。如果n大于1,则将c先对p取模后然后对4n取模最后按位取反,得到解密后的数据out输出,该解密后的数据out即为乘法器输出的积,此时out=~((cmodp)mod4n);B、若n>m,将n除以m的商记为k,余数记为h,对a”进行更新:若h不等于0,在a”的高位即最左边补m-h个0,得a”=a(k+1)m…an+2an+1anan-1…a2a1,其中a(k+1)m…an+2an+1=0…00,若h=0,则a”保持不变;将当前a”的位数除以m的商记为j,将am…a3a2a1对应的十进制记为D1,将a2m…am+3am+2am+1对应的十进制记为D2,以此类推,将ajm…a(j-1)m+3a(j-1)m+2a(j-1)m+1对应的十进制记为Dj,按照以下步骤进行加密:B-1、将Di加密后得到的数据记为ci,i=1,2,…,j,将b加密后得到的数据记为c0;B-2、判定m是否等于1:如果m等于1,令ci=Di+p*q+2r1,c0=b+p*q+2r2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(Di+2r1)*(b+2r2)<p/2;如果m大于1,令ci=Di+p*q+4mr1,c0=b+p*q+4mr2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(Di+4mr1)*(b+4mr2)<p/2;;B-3、将c1,c2,c3,…,cj分别与c0输入到乘法器中执行乘法运算,将ci与c0运算的结果记为Ci,即Ci=ci*c0;B-4、判定乘法器的第二输入端口b'输入的l位二进制密钥KS与设定的正确的l位二进制密钥值是否相等:当输入的l位二进制密钥KS与乘法器的正确秘钥相等时,判定m的值是否等于1:如果m等于1,则将C1,C2,C3,…,Cj分别对p取模后再对2取模,得到解密后的数据,将Ci解密后的数据记为c'i,此时c'i=(Cimodp)mod2,mod为取模符号;则out=则out=c'j*2(j-1)m+c'(j-1)*2(j-2)m+…+c'2*2m+c'1,将数据out输出,数据out即为乘法器输出的积;如果m大于1,则将C1,C2,C3,…,Cj分别对p取模后再对4n取模,得到解密后的数据,将Ci解密后的数据记为c'i,此时c'i=(Cimodp)mod4m,mod为取模符号;则out=c'j*2(j-1)m+c'(j-1)*2(j-2)m+…+c'2*2m+c'1,将数据out输出,数据out即为乘法器输出的积;当输入的l位二进制密钥KS与乘法器的正确秘钥不相等时,判定m的值是否等于1:如果m等于1,则将C1,C2,C3,…,Cj分别对p取模后再对2取模最后按位取反,得到解密后的数据,将Ci解密后的数据记为c'i,即c'i=~(Cimodp)mod2,mod为取模符号;则out=c'j*2(j-1)m+c'(j-1)*2(j-2)m+…+c'2*2m+c'1,将数据out输出,数据out即为乘法器输出的积;如果m大于1,则将C1,C2,C3,…,Cj分别对p取模后再对4n取模最本文档来自技高网...

【技术保护点】
1.一种用于乘法器的全同态混淆方法,其特征在于包括以下步骤:(1)将乘法器的第一输入端口记为a',第二输入端口记为b',积输出端口记为c',将二进制乘数记为a”,a”=anan‑1…a2a1,n为二进制乘数的位数,二进制被乘数记为b”,b”=bmbm‑1…b2b1,m为二进制被乘数的位数,设定一个通过第二输入端口输入乘法器中的l位二进制密钥,将其记为KS,其中l为大于1的整数;(2)采用随机函数随机产生两个大于等于‑2且小于等于2的十进制变量r1和r2;(3)在乘法器中设定l位二进制数,将该l位二进制数作为乘法器的正确秘钥;(4)将a”对应的十进制数记为a,b”对应的十进制数记为b,对a和b进行全同态加密,具体加密过程为:A、若m=n,将a加密后得到的数据记为c1,将b加密后得到的数据记为c0,按照以下步骤进行加密:A‑1、判定n是否等于1:如果n等于1,令c1=a+p*q+2r1,c0=b+p*q+2r2,其中p为正的奇数,q为比p大的正整数,且满足‑p/2

【技术特征摘要】
1.一种用于乘法器的全同态混淆方法,其特征在于包括以下步骤:(1)将乘法器的第一输入端口记为a',第二输入端口记为b',积输出端口记为c',将二进制乘数记为a”,a”=anan-1…a2a1,n为二进制乘数的位数,二进制被乘数记为b”,b”=bmbm-1…b2b1,m为二进制被乘数的位数,设定一个通过第二输入端口输入乘法器中的l位二进制密钥,将其记为KS,其中l为大于1的整数;(2)采用随机函数随机产生两个大于等于-2且小于等于2的十进制变量r1和r2;(3)在乘法器中设定l位二进制数,将该l位二进制数作为乘法器的正确秘钥;(4)将a”对应的十进制数记为a,b”对应的十进制数记为b,对a和b进行全同态加密,具体加密过程为:A、若m=n,将a加密后得到的数据记为c1,将b加密后得到的数据记为c0,按照以下步骤进行加密:A-1、判定n是否等于1:如果n等于1,令c1=a+p*q+2r1,c0=b+p*q+2r2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(a+2r1)*(b+2r2)<p/2,*为乘运算符号;如果n大于1,令c1=a+p*q+4nr1,c0=b+p*q+4nr2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(a+4nr1)*(b+4nr2)<p/2;A-2、将c1和c0输入到乘法器中执行乘法运算,将此时运算的结果记为c,c=c1*c0;A-3、判定乘法器的第二输入端口b'输入的l位二进制密钥KS与乘法器的正确秘钥是否相等:当输入的l位二进制密钥KS与乘法器的正确秘钥相等时,判定n的值是否等于1:如果n等于1,则将c先对p取模后再对2取模,得到解密后的数据out,该解密后的数据out即为乘法器输出的积,此时out=(cmodp)mod2,mod为取模符号;如果n大于1,则将c先对p取模后再对4n取模,得到解密后的数据out,该解密后的数据out即为乘法器输出的积,此时out=(cmodp)mod4n;当输入的l位二进制密钥KS与乘法器的正确秘钥不相等时,判定n的值是否等于1:如果n等于1,则将c先对p取模后然后对2取模最后按位取反,得到解密后的数据out输出,该解密后的数据out即为乘法器输出的积,此时out=~((cmodp)mod2),~为取反符号。如果n大于1,则将c先对p取模后然后对4n取模最后按位取反,得到解密后的数据out输出,该解密后的数据out即为乘法器输出的积,此时out=~((cmodp)mod4n);B、若n>m,将n除以m的商记为k,余数记为h,对a”进行更新:若h不等于0,在a”的高位即最左边补m-h个0,得a”=a(k+1)m…an+2an+1anan-1…a2a1,其中a(k+1)m…an+2an+1=0…00,若h=0,则a”保持不变;将当前a”的位数除以m的商记为j,将am…a3a2a1对应的十进制记为D1,将a2m…am+3am+2am+1对应的十进制记为D2,以此类推,将ajm…a(j-1)m+3a(j-1)m+2a(j-1)m+1对应的十进制记为Dj,按照以下步骤进行加密:B-1、将Di加密后得到的数据记为ci,i=1,2,…,j,将b加密后得到的数据记为c0;B-2、判定m是否等于1:如果m等于1,令ci=Di+p*q+2r1,c0=b+p*q+2r2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(Di+2r1)*(b+2r2)<p/2;如果m大于1,令ci=Di+p*q+4mr1,c0=b+p*q+4mr2,其中p为正的奇数,q为比p大的正整数,且满足-p/2<(Di+4mr1)*(b+4mr2)<p/2;;B-3、将c1,c2,c3,…,cj分别与c0输入到乘法器中执行乘法运算,将ci与c0运算的结果记为Ci,即Ci=ci*c0;B-4、判定乘法器的第二输入端口b'输入的l位二进制密钥KS与设定的正确的l位二进制密钥值是否相等:当输入的l位二进制密钥KS与乘法器的正确秘钥相等时,判定m的值是否等于1:如果m等于1,则将C1,C2,C3,…,Cj分别对p取模后再对2取模,得到解密后的数据,将Ci解密后的数据记为c'i,此时c'i=(Cimodp)mod2,mod为取模符号;则out=则out=c'j*2(j-1)m+c'(j-1)*2(j-2)m+…+c'2*2m+c'1,将数据out输出,数据out...

【专利技术属性】
技术研发人员:张跃军潘钊王佳伟栾志存李立威
申请(专利权)人:宁波大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1