[发明专利]基于全同态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为最高位。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宁波大学,未经宁波大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710388082.5/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top