[发明专利]基于全同态MAC的消息完整性认证方法有效
申请号: | 201710388082.5 | 申请日: | 2017-05-27 |
公开(公告)号: | CN107294958B | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 潘钊;张跃军;丁代鲁 | 申请(专利权)人: | 宁波大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L9/00;H04L9/06 |
代理公司: | 宁波奥圣专利代理事务所(普通合伙) 33226 | 代理人: | 方小惠 |
地址: | 315211 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 同态 mac 消息 完整性 认证 方法 | ||
1.一种基于全同态MAC的消息完整性认证方法,其特征在于包括以下步骤:
①将原始消息记为m,m∈{0,1},利用全同态加密技术对m进行处理,得到密文c,c为128位二进制数据;
②采用MD5算法对密文c进行处理,得到128位摘要值MAC1;
③发送方将密文c和128位摘要值MAC1通过信道进行传输,发送给接收方;
④接收方接收到密文和128位摘要值MAC1,将接收方接收到的密文记为c1;
⑤采用与所述的步骤②相同的MD5算法对密文c1进行处理,得到128位摘要值MAC2;
⑥对128位摘要值MAC1和128位摘要值MAC2进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过;
所述的步骤②中采用MD5算法对密文c进行处理的具体过程为:
a.在密文c的最低位即右侧先用一个1补位,然后在补位后的1的右侧用若干个0进行补位,得到中间消息,中间消息的长度为512的n倍,n为大于等于1的整数,将该中间消息从左边第一位开始,以512位为单位进行分组,得到n个单元消息,将第k个单元消息记为Nk,k=1,2,…,n;将每个单元消息从左边第一位开始,以32位为单位再次进行分组,每个单元消息被分为16个子单元,其中第k个单元消息Nk中第j个子单元用Mk-j表示,j=1,2,…,16;
b.将MD5算法中的四个32位的链接变量记为A、B、C、D,对A、B、C、D进行初始化,使A、B、C、D的初始值为标准幻数;
c.设置四个中间变量o、p、q、r,并对四个中间变量进行初始化:o=A,p=B,q=C,r=D;
d.依次采用第1个单元消息N1的16个子单元M1-1-M1-16至第n个单元消息Nn的16个子单元Mn-1-Mn-16对四个中间变量o、p、q、r进行n次更新,每次更新中对四个中间变量o、p、q、r进行4轮循环更新,每一轮循环更新包括16步运算:
d-1.设定每次更新时,对四个中间变量o、p、q、r进行4轮循环更新的四个非线性函数为:
F(X,Y,Z)=(XY)|((~X)Z) (1)
G(X,Y,Z)=(XY)|(Y(~Z)) (2)
其中,为与运算符号,|为或运算符号,~为非运算符号,为异或异或运算符号;
d-2.设定第k次更新,对四个中间变量o、p、q、r进行第1轮循环更新时,与非线性函数(1)~(4)有关的操作运算,其中Q为待更新变量,wk-j和tk-j分别为对四个中间变量o、p、q、r第k次更新时设定的已知参数,FF(Q,X,Y,Z,Mk-j,wk-j,tk-j)表示将X+(Q+(F(X,Y,Z)+Mk-j+tk-j)<<<wk-j)的值赋予Q,即更新Q的值,<<<wk-j表示循环左移wk-j位;在对o进行更新时,Q=o,X=p,Y=q,Z=r;在对p进行更新时,Q=p,X=q,Y=r,Z=o;在对q进行更新时,Q=q,X=r,Y=o,Z=p;在对r进行更新时,Q=r,X=o,Y=p,Z=q;
d-3.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第1轮循环更新,结果如下:
第1步运算:o=FF(o,p,q,r,Mk-1,7,0xd76aa478)
第2步运算:r=FF(r,o,p,q,Mk-2,12,0xe8c7b756)
第3步运算:q=FF(q,r,o,p,Mk-3,17,0x242070db)
第4步运算:p=FF(p,q,r,o,Mk-4,22,0xc1bdceee)
第5步运算:o=FF(o,p,q,r,Mk-5,7,0xf57c0faf)
第6步运算:r=FF(r,o,p,q,Mk-6,12,0x4787c62a)
第7步运算:q=FF(q,r,o,p,Mk-7,17,0xa8304613)
第8步运算:p=FF(p,q,r,o,Mk-8,22,0xfd469501)
第9步运算:o=FF(o,p,q,r,Mk-9,7,0x698098d8)
第10步运算:r=FF(r,o,p,q,Mk-10,12,0x8b44f7af)
第11步运算:q=FF(q,r,o,p,Mk-11,17,0xffff5bb1)
第12步运算:p=FF(p,q,r,o,Mk-12,22,0x895cd7be)
第13步运算:o=FF(o,p,q,r,Mk-13,7,0x6b901122)
第14步运算:r=FF(r,o,p,q,Mk-14,12,0xfd987193)
第15步运算:q=FF(q,r,o,p,Mk-15,17,0xa679438e)
第16步运算:p=FF(p,q,r,o,Mk-16,22,0x49b40821)
其中,第k次第1轮循环更新的第1-16步运算中,o、p、q、r如果还没有开始更新,采用其初始值进行计算,如果已更新,则采用其当前运算前被更新后的最新值进行计算;
d-4.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第2轮循环更新,结果如下:
第1步运算:o=GG(o,p,q,r,Mk-2,5,0xf61e2562)
第2步运算:r=GG(r,o,p,q,Mk-7,9,0xc040b340)
第3步运算:q=GG(q,r,o,p,Mk-12,14,0x265e5a51)
第4步运算:p=GG(p,q,r,o,Mk-1,20,0xe9b6c7aa)
第5步运算:o=GG(o,p,q,r,Mk-6,5,0xd62f105d)
第6步运算:r=GG(r,o,p,q,Mk-11,9,0x02441453)
第7步运算:q=GG(q,r,o,p,Mk-16,14,0xd8a1e681)
第8步运算:p=GG(p,q,r,o,Mk-5,20,0xe7d3fbc8)
第9步运算:o=GG(o,p,q,r,Mk-10,5,0x21e1cde6)
第10步运算:r=GG(r,o,p,q,Mk-15,9,0xc33707d6)
第11步运算:q=GG(q,r,o,p,Mk-4,14,0xf4d50d87)
第12步运算:p=GG(p,q,r,o,Mk-9,20,0x455a14ed)
第13步运算:o=GG(o,p,q,r,Mk-14,5,0xa9e3e905)
第14步运算:r=GG(r,o,p,q,Mk-3,9,0xfcefa3f8)
第15步运算:q=GG(q,r,o,p,Mk-8,14,0x676f02d9)
第16步运算:p=GG(p,q,r,o,Mk-13,20,0x8d2a4c8a)
其中,第k次第2轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;
d-5.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第3轮循环更新,结果如下:
第1步运算:o=HH(o,p,q,r,Mk-6,4,0xfffa3942)
第2步运算:r=HH(r,o,p,q,Mk-9,11,0x8771f681)
第3步运算:q=HH(q,r,o,p,Mk-12,16,0x6d9d6122)
第4步运算:p=HH(p,q,r,o,Mk-15,23,0xfde5380c)
第5步运算:o=HH(o,p,q,r,Mk-2,4,0xa4beea44)
第6步运算:r=HH(r,o,p,q,Mk-5,11,0x4bdecfa9)
第7步运算:q=HH(q,r,o,p,Mk-8,16,0xf6bb4b60)
第8步运算:p=HH(p,q,r,o,Mk-11,23,0xbebfbc70)
第9步运算:o=HH(o,p,q,r,Mk-14,4,0x289b7ec6)
第10步运算:r=HH(r,o,p,q,Mk-1,11,0xeaa127fa)
第11步运算:q=HH(q,r,o,p,Mk-4,16,0xd4ef3085)
第12步运算:p=HH(p,q,r,o,Mk-7,23,0x04881d05)
第13步运算:o=HH(o,p,q,r,Mk-10,4,0xd9d4d039)
第14步运算:r=HH(r,o,p,q,Mk-13,11,0xe6db99e5)
第15步运算:q=HH(q,r,o,p,Mk-16,16,0x1fa27cf8)
第16步运算:p=HH(p,q,r,o,Mk-3,23,0xc4ac5665)
其中,第k次第3轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;
d-6.按照o、r、q、p、o、r、q、p、o、r、q、p、o、r、q、p的顺序,对四个中间变量o、p、q、r进行第k次第4轮循环更新,结果如下:
第1步运算:o=II(o,p,q,r,Mk-1,6,0xf4292244)
第2步运算:r=II(r,o,p,q,Mk-8,10,0x432aff97)
第3步运算:q=II(q,r,o,p,Mk-15,15,0xab9423a7)
第4步运算:p=II(p,q,r,o,Mk-6,21,0xfc93a039)
第5步运算:o=II(o,p,q,r,Mk-13,6,0x655b59c3)
第6步运算:r=II(r,o,p,q,Mk-4,10,0x8f0ccc92)
第7步运算:q=II(q,r,o,p,Mk-11,15,0xffeff47d)
第8步运算:p=II(p,q,r,o,Mk-2,21,0x85845dd1)
第9步运算:o=II(o,p,q,r,Mk-9,6,0x6fa87e4f)
第10步运算:r=II(r,o,p,q,Mk-16,10,0xfe2ce6e0)
第11步运算:q=II(q,r,o,p,Mk-7,15,0xa3014314)
第12步运算:p=II(p,q,r,o,Mk-14,21,0x4e0811a1)
第13步运算:o=II(o,p,q,r,Mk-5,6,0xf7537e82)
第14步运算:r=II(r,o,p,q,Mk-12,10,0xbd3af235)
第15步运算:q=II(q,r,o,p,Mk-3,15,0x2ad7d2bb)
第16步运算:p=II(p,q,r,o,Mk-10,21,0xeb86d391)
其中,第k次第4轮循环更新的第1-16步运算中,o、p、q、r采用其当前运算前被更新后的最新值进行计算;
d-7.按照步骤d-3至步骤d-6依次完成四个中间变量o、p、q、r的n次更新后,得到第n次4轮循环更新后中间变量o、p、q、r的最终更新值,将第n次4轮循环更新后o、p、q、r的最终更新值与其初始值分别相加,得到第n次4轮循环更新后的32位的链接变量数据源An、Bn、Cn、Dn,An为第n次4轮循环更新后o的最新值与其初始值的和,Bn为第n次4轮循环更新后p的最新值与其初始值的和,Cn为第n次4轮循环更新后q的最新值与其初始值的和,Dn为第n次4轮循环更新后r的最新值与其初始值的和;
d-8.将An、Bn、Cn、Dn拼接,得到128位摘要值MAC1,MAC1=DnCnBnAn,其中An为最低位,Dn为最高位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宁波大学,未经宁波大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710388082.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:柱状件回转测量的装载装置及驱动方法
- 下一篇:检测仪以及检测系统