CN107294958B - 基于全同态mac的消息完整性认证方法 - Google Patents
基于全同态mac的消息完整性认证方法 Download PDFInfo
- Publication number
- CN107294958B CN107294958B CN201710388082.5A CN201710388082A CN107294958B CN 107294958 B CN107294958 B CN 107294958B CN 201710388082 A CN201710388082 A CN 201710388082A CN 107294958 B CN107294958 B CN 107294958B
- Authority
- CN
- China
- Prior art keywords
- bit
- message
- ciphertext
- round
- updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Arrangement And Driving Of Transmission Devices (AREA)
Abstract
本发明公开了一种基于全同态MAC的消息完整性认证方法,将原始消息记为m利用全同态加密技术处理,得到密文c,c为128位二进制数据,采用MD5算法对密文c进行处理,得到128位摘要值MAC1,发送方将密文c和128位摘要值MAC1发送给接收方,接收方接收到密文和128位摘要值MAC1,将接收方接收到的密文记为c1,采用MD5算法对密文c1进行处理,得到128位摘要值MAC2,对128位摘要值MAC1和128位摘要值MAC2进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过;优点是将消息以密文的形式在信道中传输,能使发送方和接收方基于密文完成消息的认证,避免了消息被泄露的风险,安全性较高。
Description
技术领域
本发明涉及一种消息完整性认证方法,尤其是涉及一种基于全同态MAC的消息完整性认证方法。
背景技术
现有的消息完整性认证方法是通过构造消息认证码(Message AuthenticationCode,MAC)来对消息进行认证,其原理是在原始消息发送前,发送方通过散列函数计算得到原始消息的摘要值MAC1,在双方(发送方和接收方)共享的会话密钥下,发送方由摘要值MAC1获得消息认证码,然后将消息认证码和原始消息一起发送;接收方收到消息认证码和消息后,先用会话密钥对消息认证码进行解密,得到原始消息的摘要值MAC1,再利用与发送方计算原始消息的摘要值MAC1相同的散列函数计算所收到消息的摘要值MAC2,如果MAC1和MAC2相等,则原始消息没有被篡改,可认证消息的完整性。
但是,现有的消息完整性认证方法均采用的是原始消息在信道中传输,使消息存在被泄露的威胁,导致攻击者可以自由篡改或创建信道中信息。Bellare等基于消息认证码提出了XOR-MAC认证方法,虽然在一定程度上降低了攻击者成功伪造的概率,但是其所传输的仍然是原始消息,仍然存在消息泄露的风险,安全性能不够高。
发明内容
本发明所要解决的技术问题是提供一种将消息以密文的形式在信道中传输,能使发送方和接收方基于密文完成消息的认证,避免了消息被泄露的风险,安全性较高的基于全同态MAC的消息完整性认证方法。
本发明解决上述技术问题所采用的技术方案为:一种基于全同态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)=(X&Y)|((~X)&Z) (1)
G(X,Y,Z)=(X&Y)|(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-159,0xc33707d6)
第11步运算:q=GG(q,r,o,p,Mk-414,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,M k-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为最高位。采用该MD5算法对密文c进行处理,对密文c的任何改动,哪怕改动很小,所计算出的128位摘要值MAC2与未改动的密文c的128位摘要值MAC1之间会存在很大的区别,同时对于一个已知的原始消息和其MAC值,想要找到一个具有相同的MAC值的原始消息(即伪造消息)是非常困难,并且采用该算法由密文c计算获得128位摘要值MAC1这个过程比较简单。
与现有技术相比,本发明的优点在于通过将原始消息记为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进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过,本发明利用全同态允许对密文执行特定的操作后将其输出进行解密,解密所得的结果与对明文(原始消息)进行相同操作的结果相等的特性,先对原始消息(即明文)进行了全同态加密,将消息以密文的形式在信道中传输,再对其构造消息认证码来完成消息的认证,由此能使发送方和接收方基于密文完成消息的认证,认证过程是基于加密后的密文进行处理的,避免了原始消息在传输信道中的传输,可以有效地解决消息被泄露的风险,安全性较高。
具体实施方式
以下结合实施例对本发明作进一步详细描述。
实施例一:一种基于全同态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进行比较,如果两者一致,则消息完整,验证通过,如果两者不一致,则消息已被篡改,验证不通过。
实施例二:一种基于全同态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)=(X&Y)|((~X)&Z) (1)
G(X,Y,Z)=(X&Y)|(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-159,0xc33707d6)
第11步运算:q=GG(q,r,o,p,Mk-414,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为最高位。
Claims (1)
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)=(X&Y)|((~X)&Z) (1)
G(X,Y,Z)=(X&Y)|(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为最高位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710388082.5A CN107294958B (zh) | 2017-05-27 | 2017-05-27 | 基于全同态mac的消息完整性认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710388082.5A CN107294958B (zh) | 2017-05-27 | 2017-05-27 | 基于全同态mac的消息完整性认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107294958A CN107294958A (zh) | 2017-10-24 |
CN107294958B true CN107294958B (zh) | 2020-05-22 |
Family
ID=60094779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710388082.5A Active CN107294958B (zh) | 2017-05-27 | 2017-05-27 | 基于全同态mac的消息完整性认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107294958B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10778409B2 (en) * | 2017-12-15 | 2020-09-15 | Crypto Lab Inc. | Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof |
CN112733514A (zh) * | 2021-01-21 | 2021-04-30 | 浪潮卓数大数据产业发展有限公司 | 一种Bootstrap table导出excel中图片下载的方法 |
CN113609505B (zh) * | 2021-08-17 | 2024-04-12 | 南京数睿数据科技有限公司 | 基于md5加密的数字水印篡改监测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098229A (zh) * | 2006-06-26 | 2008-01-02 | 华为技术有限公司 | 验证待传消息完整性的方法、装置和系统 |
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
CN103428204A (zh) * | 2013-07-29 | 2013-12-04 | 杭州华三通信技术有限公司 | 一种可抵御计时攻击的数据安全实现方法及设备 |
CN105763331A (zh) * | 2014-12-19 | 2016-07-13 | 北大方正集团有限公司 | 一种数据加密方法和数据解密方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7627764B2 (en) * | 2004-06-25 | 2009-12-01 | Intel Corporation | Apparatus and method for performing MD5 digesting |
-
2017
- 2017-05-27 CN CN201710388082.5A patent/CN107294958B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098229A (zh) * | 2006-06-26 | 2008-01-02 | 华为技术有限公司 | 验证待传消息完整性的方法、装置和系统 |
CN103259643A (zh) * | 2012-08-14 | 2013-08-21 | 苏州大学 | 一种矩阵全同态加密方法 |
CN103428204A (zh) * | 2013-07-29 | 2013-12-04 | 杭州华三通信技术有限公司 | 一种可抵御计时攻击的数据安全实现方法及设备 |
CN105763331A (zh) * | 2014-12-19 | 2016-07-13 | 北大方正集团有限公司 | 一种数据加密方法和数据解密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107294958A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6950517B2 (en) | Efficient encryption and authentication for data processing systems | |
JP6740902B2 (ja) | 認証暗号化方法、認証復号方法および情報処理装置 | |
Saha et al. | RK-AES: an improved version of AES using a new key generation process with random keys | |
Joux | Authentication failures in NIST version of GCM | |
WO2010131563A1 (ja) | タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体 | |
CN107294958B (zh) | 基于全同态mac的消息完整性认证方法 | |
Dong et al. | Cube-like attack on round-reduced initialization of Ketje Sr | |
CN112187461A (zh) | 一种基于加密算法的武器装备数据混合加密方法 | |
Yap et al. | On the effective subkey space of some image encryption algorithms using external key | |
Teh et al. | A Chaos‐Based Authenticated Cipher with Associated Data | |
CN114826590B (zh) | 一种分组模式加密方法、解密方法及其装置、设备 | |
Liu et al. | Fault attacks on authenticated encryption modes for GIFT | |
Bogdanov | Cryptanalysis of the KeeLoq block cipher | |
CN109150505A (zh) | 一种用于sap系统的信息传输方法及装置 | |
Li et al. | Differential fault analysis on Camellia | |
CN114065249A (zh) | 一种认证加密方法 | |
Dobraunig et al. | Ascon v1 | |
CN115865313A (zh) | 一种轻量级隐私保护纵向联邦学习模型参数聚合方法 | |
CN111355587B (zh) | 一种基于对抗网络的可认证加密安全通信系统及方法 | |
CN108616351B (zh) | 一种全动态加密解密方法及加密解密装置 | |
CN112866288A (zh) | 一种双明文传输的数据对称加密方法 | |
Bahumik et al. | A symmetric key-based image encryption scheme | |
Yap et al. | Security analysis of GCM for communication | |
WO2021206727A1 (en) | Neural networks | |
Nakahara Jr | Lai-Massey Cipher Designs: History, Design Criteria and Cryptanalysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |