CN112152805A - 一种认证加密方法、验证解密方法和通信方法 - Google Patents
一种认证加密方法、验证解密方法和通信方法 Download PDFInfo
- Publication number
- CN112152805A CN112152805A CN202011023229.9A CN202011023229A CN112152805A CN 112152805 A CN112152805 A CN 112152805A CN 202011023229 A CN202011023229 A CN 202011023229A CN 112152805 A CN112152805 A CN 112152805A
- Authority
- CN
- China
- Prior art keywords
- key
- tag1
- shared
- ciphertext
- bit length
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000006854 communication Effects 0.000 title claims abstract description 40
- 238000004891 communication Methods 0.000 title claims abstract description 39
- 238000012795 verification Methods 0.000 title claims abstract description 19
- 238000005192 partition Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 230000009286 beneficial effect Effects 0.000 description 11
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种认证加密、验证解密和通信方法,属于通信技术领域,解决了现有技术运行效率和安全界较低、无法对数据同时提供机密性保护和完整性保护的问题。该方法包括:发送端执行加密程序,生成本次加密的初始向量IV,根据共享密钥K和初始向量IV生成密钥流一,根据所述密钥流一对明文P1加密获得密文C,结合附属数据A、共享密钥H生成消息认证码Tag1,将获得的所述C、Tag1与A、IV一起发送至接收端;接收端执行解密程序,根据共享密钥K和接收到的IV生成密钥流二,根据所述密钥流二和接收到的A、C、共享密钥H生成消息认证码Tag2,判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二解析密文C获得明文P2并输出,否则,输出无效标识。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种认证加密方法、验证解密方法和通信方法。
背景技术
机密性保护和完整性保护是信息安全的两个重要目标。随着互联网技术的发展,不安全信道中的消息认证变得越来越重要。加密可用于防止传输过程中非法用户对数据进行窃取,即保护数据的机密性,消息认证码可用于检测在传输过程中数据是否被篡改,即保护数据的完整性,又可以对数据源进行认证。
现有的认证加密方法一般基于分组密码构造,如AES-GCM,虽然使用较为灵活,但其运行效率和安全界较低。
现有的基于序列密码等伪随机数发生器的加密解密算法虽然运行效率和安全界较高,但仅能对数据提供机密性保护,完整性保护(即认证性)需要单独增加算法,影响通信效率。目前,缺少一种基于伪随机数发生器的通用认证加密方法、验证解密方法及通信方法。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种认证加密方法、验证解密方法和通信方法,用以解决现有技术运行效率和安全界较低、无法对数据同时提供机密性保护和完整性保护的问题。
一方面,本发明实施例提供了一种应用于发送端的认证加密方法,包括如下步骤:
生成本次加密的初始向量IV;
根据与接收端共享的密钥K和上述初始向量IV生成密钥流一;
根据所述密钥流一中的部分密钥Z1[1]对明文P1加密获得密文C;利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1;其中,所述部分密钥Z1[0]和所述部分密钥Z1[1]共同构成所述密钥流一;
将获得的所述C、Tag1与所述A、IV一起发送至接收端,以使所述接收端解密获得明文。
上述技术方案的有益效果如下:提供了一种通用的带附属数据的认证加密(AEAD)方法,用于对通信数据提供机密性和完整性保护。例如,在5G移动通信系统中,可利用该方法对发送端待传输的数据进行认证加密,在接收端对接收到的密文进行验证解密,是一种可证明安全且高效的AEAD方法,能够有效提高通信系统的安全性和通信效率。
基于上述方法的进一步改进,所述根据与接收端共享的密钥K和初始向量IV生成密钥流一,进一步包括如下步骤:
根据与接收端共享的密钥K和生成的所述初始向量IV,通过下面公式生成密钥流Z1
Z1=PRGl(IV,K)
式中,PRGl()表示伪随机数发生器,l表示所述Z1的比特长度,l等于Tag1的比特长度和密文C的比特长度之和;
对获得的所述Z1分段,生成预设长度的密钥流Z1[0]、Z1[1]
Z1=Z1[0]||Z1[1]
式中,Z1[0]的比特长度为τ,Z1[1]的比特长度为l-τ,Z1[0]、Z1[1]共同构成密钥流一,并且,Z1[1]的比特长度等于明文P1的比特长度。
上述进一步改进方案的有益效果是:基于伪随机发生器提供了一种通用的带附属数据的认证加密方法,用于对数据提供机密性和完整性保护,具有安全性、灵活性、通用性,能够支持任意安全的伪随机数发生器构造,不但能够提供任意长度明文P1的机密性和完整性保护功能,还能够提供任意长度附属数据A的完整性保护功能。
进一步,所述密文C通过下面公式获得
上述进一步改进方案的有益效果是:基于伪随机数发生器生成了密钥流一,进而通过密钥流一中的部分密钥Z1[1]对明文P1进行异或加密,获得密文C。方法简单、通用,能够支持任意长度的明文P1和附属数据A,具有较高的安全性、可靠性。
进一步,所述利用密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1,包括如下步骤:
将密文C和附属数据A进行编码,获得编码结果Encode(A,C);
根据上述获得的Encode(A,C),结合与接收端共享的密钥H,通过下面公式获得泛哈希值Y1
Y1=GHASHH(Encode(A,C))
式中,GHASHH()表示泛哈希函数;
根据密钥流一中的Z1[0]对上述获得的Y1进行处理,通过下面公式获得消息认证码Tag1
上述进一步改进方案的有益效果是:基于密文C和附属数据A的泛哈希函数构造了消息认证码Tag1,该方法具有可证明安全性和较高的安全界(超生日界安全),能够支持生成任意长度的消息认证码Tag1。
进一步,所述将密文C和附属数据A进行编码,包括如下步骤:
将密文C和附属数据A分别转换成N比特分组形式,获得分组结果Partition(C)、Partition(A);
通过下面公式对上述分组结果编码,获得编码结果Encode(A,C)
Encode(A,C)=Partition(A)||Partition(C)||LA||LC
式中,Partition()表示分组函数,LA表示A的比特长度的64比特形式,LC表示C的比特长度的64比特形式。
上述进一步改进方案的有益效果是:编码方案简单、通用,能够生成密文C和附属数据A的唯一编码结果,支持任意长度的密文C和附属数据A,为生成有效的消息认证码Tag1奠定了基石。
进一步,所述消息认证码Tag1通过下面公式获得
上述进一步改进方案的有益效果是:生成消息认证码的方案简单、通用,具有较高的安全性,能够支持产生任意长度的认证码Tag1。
另一方面,本发明实施例提供了一种应用于接收端的验证解密方法,包括如下步骤:
接收发送端发送的密文C、消息认证码Tag1、附属数据A和初始向量IV;
根据与发送端共享的密钥K和所述初始向量IV生成密钥流二;
根据所述密钥流二中的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2;
判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出,否则,输出无效标识;
其中,所述部分密钥Z2[1]和所述部分密钥Z2[0]共同构成所述密钥流二,以及,当Tag1和Tag2一致时,所述部分密钥Z2[1]与发送端加密明文P1获得密文C所使用的部分密钥Z1[1]相同。
上述技术方案的有益效果如下:提供了一种通用的带附属数据的验证解密方法,用于对通信数据提供机密性和完整性保护。例如,在5G移动通信系统中,可利用本方案在接收端对接收到的密文解密,是一种可证明安全且高效的AEAD方法,能够有效提高通信系统的安全性和通信效率。
基于上述方法的进一步改进,所述根据与发送端共享的密钥K和所述初始向量IV生成密钥流二,进一步包括如下步骤:
根据与发送端共享的密钥K和接收到的初始向量IV,通过下面公式生成密钥流Z2:
Z2=PRGl(IV,K)
式中,PRGl()表示伪随机数发生器,l表示所述Z2的比特长度;
对密钥流Z2进行分段,获得预设长度的密钥流Z2[0]、Z2[1]
Z2=Z2[0] Z2[1]
式中,Z2[0]的比特长度为τ,Z2[1]的比特长度为l-τ,Z2[0]、Z2[1]共同构成密钥流二,并且,Z2[0]的比特长度等于消息认证码Tag1的比特长度,Z2[1]的比特长度等于密文C的比特长度。
上述进一步改进方案的有益效果是:基于伪随机发生器提供了一种通用的带附属数据的验证解密方法,与上述加密方法配套使用,用于对数据提供机密性和完整性保护,具有灵活性、通用性。该方案能够支持任意安全的伪随机数发生器构造,不但能够提供任意长度明文P1的机密性和完整性保护功能,还能够提供任意长度附属数据A的完整性保护功能。
进一步,所述根据所述密钥流二中的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2,进一步包括如下步骤:
将密文C和附属数据A进行编码,获得编码结果Encode(A,C);
根据上述获得的Encode(A,C),结合与发送端共享的密钥H,通过下面公式获得泛哈希值Y2
Y2=GHASHH(Encode(A,C))
式中,GHASHH()表示泛哈希函数;
根据密钥流二中的Z2[0]结合上述获得的Y2,通过下面公式获得消息认证码Tag2
上述进一步改进方案的有益效果是:基于伪随机数发生器构造了密钥流二,进而通过密钥流二中的Z2[0]对明文P1进行异或加密。如果消息传输过程中密文C未被篡改,获得的密钥流二与密钥流一内容相同,因此起到了对消息进行验证的目的。该方法能够支持任意长度的密文C和附属数据A,具有较高的安全性、可靠性。方法简单,通用。
进一步,所述明文P2通过下面公式获得
所述接收端和发送端每端通过如下步骤获得共享密钥H、K:
根据预先设置的IV0、K0,通过下面公式获得128比特密钥H,以及k比特密钥K
H||K=PRG|H|+|K|(IV0,K0)
式中,|H|和|K|分别表示密钥H和K的比特长度,PRG|H|+|K|()表示伪随机数发生器,其输出结果的比特长度为密钥H和K的比特长度之和。
上述进一步改进方案的有益效果是:获得明文P2的方案简单、通用,具有较高的安全性,能够有效保护传输数据的完整性和机密性。通过预先设置的IV0、K0自动生成共享密钥H、K,能够减少密钥存储量。
此外,本发明实施例提供了一种包括认证加密与验证解密的通信方法,包括如下步骤:
发送端根据与接收端共享的密钥K和初始向量IV生成密钥流一,根据所述密钥流一中的部分密钥Z1[1]对明文P1加密获得密文C,利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1,将获得的所述C、Tag1与所述A、IV一起发送至接收端;
接收端接收发送端发送的密文C、消息认证码Tag1、附属数据A和初始向量IV后,根据与发送端共享的密钥K和初始向量IV生成密钥流二,根据所述密钥流二的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2,判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出,否则,输出无效标识。
上述技术方案的有益效果如下:提供了一种通用的带附属数据的包含认证加密解密的通信方法,用于对通信数据提供机密性和完整性保护。例如,在5G移动通信系统中,可利用本方案对发送端待传输的数据进行加密,在接收端对接收到的密文解密,是一种可证明安全且高效的认证加密方法,能够有效提高通信系统的安全性和通信效率。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例1发送端认证加密方法步骤示意图;
图2为本发明实施例3接收端验证解密方法步骤示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
实施例1
本发明的一个具体实施例,公开了一种应用于发送端的认证加密方法,如图1所示,包括如下步骤:
S1.生成本次加密的初始向量IV;
S2.根据与接收端共享的密钥K和上述获得的初始向量IV生成密钥流一;
S3.根据所述密钥流一中的部分密钥Z1[1]对明文P1加密获得密文C;利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1;其中,所述部分密钥Z1[0]和所述部分密钥Z1[1]共同构成所述密钥流一;
S4.将获得的所述C、Tag1与所述A、IV一起发送至接收端,以使所述接收端解密获得明文。
值得注意的是,初始向量IV随消息而变化,每次加密使用的初始向量IV不同,即上一次加密、本次加密和下一次加密使用的初始向量IV各不相同。
与现有技术相比,本实施例提供了一种通用的带附属数据的认证加密(AEAD)方法,用于对通信数据提供机密性和完整性保护。例如,在5G移动通信系统中,可利用该方法对发送端待传输的数据进行认证加密,在接收端对接收到的密文进行验证解密,是一种可证明安全且高效的AEAD方法,能够有效提高通信系统的安全性和通信效率。
实施例2
在实施例1方案的基础上进行优化,步骤S2进一步包括:
S21.根据与接收端共享的密钥K和生成的所述初始向量IV,通过下面公式生成密钥流Z1
Z1=PRGl(IV,K) (1)
式中,PRGl()表示伪随机数发生器,l表示所述Z1的比特长度,l设置为Tag1长度和明文长度之和。
值得注意的是,根据应用需求,上述伪随机数发生器PRG可以使用任何安全的序列密码算法,例如使用我国商密序列密码标准算法ZUC或ZUC-256,也可以通过杂凑算法或分组密码进行构造,例如使用我国商密标准杂凑算法SM3或分组密码SM4通过现有方法构造得到,本领域技术人员能够理解。
S22.对获得的所述Z1分段,生成预设长度的密钥流Z1[0]、Z1[1]
Z1=Z1[0]||Z1[1] (2)
式中,Z1[0]的比特长度为τ,Z1[1]的比特长度为l-τ,Z1[0]、Z1[1]共同构成密钥流一,并且,Z1[1]的比特长度等于明文P1的比特长度。
优选地,步骤S3中的密文C通过下面公式获得(步骤S31):
优选地,步骤S3中的所述利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1,进一步包括如下步骤:
S32.将密文C和附属数据A进行编码,获得编码结果Encode(A,C);
S33.根据上述获得的Encode(A,C),结合接收端共享的密钥H,通过下面公式获得泛哈希值Y1
Y1=GHASHH(Encode(A,C)) (4)
式中,GHASHH()表示泛哈希函数。
S34.根据密钥流一中的Z1[0]对上述获得的Y1进行处理,通过下面公式获得消息认证码Tag1
上述GHASHH(M)计算流程如下:
1.Partition(M)=M0||M1||…||Mn-1;
2.令Y=0;
具体定义如下:可以将长度为128的比特串组成的集合{0,1}128看作包含2128个元素的有限域GF(2128),将GF(2128)中的元素表示为GF(2)上次数小于128的多项式,则{0,1}128中的比特串a127a126…a1a0和GF(2128)中的多项式a(x)=a127x127+a126x126+…+a1x+a0对应,则GF(2128)中的两个多项式a(x)和b(x)相加,即定义为GF(2)上的多项式相加,即按对应比特异或。
优选地,步骤S32进一步包括:
S321.将密文C和附属数据A分别转换成N比特分组形式,获得分组结果Partition(C)、Partition(A)。
N比特分组形式的含义是:以N=128为例,将密文C、附属数据A分别转换成128比特分组形式Partition(C)、Partition(A)。如果密文C、附属数据A分组的最后一个分组小于128比特,使用0填充至128比特。例如:若|A|=256,则Partition(A)=A0||A1;若|A|=192,则Partition(A)=A0||(A1||064),||表示拼接符号认证加密,|A|表示A的比特长度。
S322.通过下面公式对上述分组结果编码,获得编码结果Encode(A,C)
Encode(A,C)=Partition(A)||Partition(C)||LA||LC (6)
式中,Partition()表示分组函数,LA表示A的比特长度的64比特形式,LC表示C的比特长度的64比特形式。
如果密文C的比特长度、附属数据A的比特长度用二进制表示的结果小于64比特,通过高位补0填充至64比特(多个0的级联)。例如,设A=1010101010,则A的比特长度为整数10,A的比特长度的64比特形式(即整数10用64比特串表示)为060||1010;LC含义类似。
优选地,如果需要保护密钥,H、K可由密钥导出算法计算得到,密钥导出算法为的输入为(IV0,K0),IV0表示v比特初始向量(由系统确定),所述发送端通过如下步骤获得共享密钥H、K:
S10.根据预先设置的IV0、K0,通过下面公式获得128比特密钥H,以及k比特密钥K
H||K=PRG|H|+|K|(IV0,K0) (7)
式中,|H|和|K|分别表示密钥H和K的比特长度,PRG|H|+|K|()表示伪随机数发生器,其输出结果的比特长度为密钥H和K的比特长度之和。
与实施例1相比,本实施例提供的方法基于伪随机发生器提供了一种通用的带附属数据的认证加密方法,用于对数据提供机密性和完整性保护,具有可证明安全性、灵活性、通用性,能够支持任意安全的伪随机数发生器构造,不但能够提供任意长度明文P1的机密性和完整性保护功能,还能够提供任意长度附属数据A的完整性保护功能。例如,在5G移动通信系统中,以安全的序列密码(如ZUC-256)为基础密码本原,利用本方法能够对传输数据同时提供机密性和完整性保护,从而提高通信系统的安全性、健壮性和通信效率。
实施例3
本发明的一个具体实施例,公开了一种与实施例1方法配套的应用于接收端的验证解密方法,如图2所示,包括如下步骤:
S5.接收发送端发送的密文C、消息认证码Tag1、附属数据A和初始向量IV;
S6.根据与发送端共享的密钥K和所述初始向量IV生成密钥流二;
S7.根据所述密钥流二中的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2;
S8.判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出,否则,输出无效标识。
值得注意的是,所述部分密钥Z2[1]和所述部分密钥Z2[0]共同构成所述密钥流二,以及,当Tag1和Tag2一致时,所述部分密钥Z2[1]与发送端加密明文P1获得密文C所使用的部分密钥Z1[1]相同。
与现有技术相比,本实施例提供了一种通用的带附属数据的验证解密方法,用于对通信数据提供机密性和完整性保护。例如,在5G移动通信系统中,可利用本方案在接收端对接收到的密文解密,是一种可证明安全且高效的AEAD方法,能够有效提高通信系统的安全性和通信效率。
实施例4
在实施例3的基础上进行优化,步骤S6进一步包括:
S61.根据与发送端共享的密钥K和接收到的初始向量IV,通过下面公式生成密钥流Z2:
Z2=PRGl(IV,K) (8)
式中,PRGl()表示伪随机数发生器,l表示所述Z2的比特长度,设置为Tag1长度和明文P1长度之和,即l=τ+|P|。
S62.对密钥流Z2进行分段,获得预设长度的密钥流Z2[0]、Z2[1]
Z2=Z2[0]||Z2[1] (9)
式中,Z2[0]的比特长度为τ,Z2[1]的比特长度为l-τ,Z2[0]、Z2[1]共同构成密钥流二。Z2[0]的比特长度等于消息认证码Tag1的比特长度,一般取32至128,具体值由通信系统确定,并且,Z2[1]的比特长度等于密文C的比特长度。
优选地,步骤S7进一步包括:
S71.将密文C和附属数据A进行编码,获得编码结果Encode(A,C)。优选地,可使用实施例2所述步骤S321-S322的编码方法,获得密文C和附属数据A的唯一编码结果。
S72.根据上述获得的Encode(A,C),结合与发送端共享的密钥H(泛哈希密钥),通过下面公式获得泛哈希值Y2
Y2=GHASHH(Encode(A,C)) (10)
式中,GHASHH()表示泛哈希函数。
S73.根据密钥流二中的Z2[0]结合上述获得的Y2,通过下面公式获得消息认证码Tag2
优选地,步骤S8中的明文P2通过下面公式获得
优选地,所述发送端和接收端每端通过如下步骤获得共享密钥H、K:
SS0.根据预先设置的IV0、K0,通过下面公式获得128比特密钥H,以及k比特密钥K
H||K=PRG|H|+|K|(IV0,K0) (13)
式中,|H|和|K|分别表示密钥H和K的比特长度,PRG|H|+|K|()表示伪随机数发生器,其输出结果的比特长度为密钥H和K的比特长度之和。
与实施例3相比,本实施例提供的方法是一种通用的带附属数据的验证解密方法,用于对数据提供机密性和完整性保护,具有可证明安全性、灵活性、通用性,能够支持任意安全的伪随机数发生器构造。该方法不但能够提供任意长度明文P1的机密性和完整性保护功能,还能够提供任意长度附属数据A的完整性保护功能。例如,在5G移动通信系统中,以安全的序列密码(如ZUC-256)为基础密码本原,利用本方法能够对传输数据同时提供机密性和完整性保护,从而提高通信系统的安全性和通信效率。
实施例5
本发明的另一个具体实施例,公开了一种包括实施例2认证加密与实施例4验证解密的通信方法。该方法中,发送端和接收端共享泛哈希密钥H及认证加密密钥K,发送端欲发送的明文消息和附属数据(无需机密性保护,但需要完整性保护)分别记为P和A。该通信方法包括如下步骤:
SS1.发送端生成本次加密的初始向量IV,根据与接收端共享的密钥K和初始向量IV生成密钥流一,根据所述密钥流一中的部分密钥Z1[1]对明文P1加密获得密文C,利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1,将获得的所述C、Tag1与所述A、IV一起发送至接收端。优选地,发送端将所述C、Tag1与所述A、IV以(IV,A,C,Tag)的形式通过信道发送给接收端。
SS2.接收端接收发送端发送的密文C、消息认证码Tag1、附属数据A和初始向量IV后,根据与发送端共享的密钥K和初始向量IV生成密钥流二,根据所述密钥流二的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2,判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出,P2=P1。否则,输出无效标识⊥。
实施时,发送端与接收端进行保密通信时,首先假设双方已有共享密钥H、K。发送端欲发送明文消息P1给接收端,为了保证通信过程中明文消息P1的机密性和完整性,需要首先产生本次加密的初始向量IV,对明文消息P1和附属数据A进行加密得到密文C,然后通过密文C和附属数据A获得消息认证码Tag1,之后将(IV,A,C,Tag1)一起发送给接收端,A是无需加密只需提供完整性保护的附属数据。
接收端接收到发送端的消息(IV,A,C,Tag1)后,首先根据附属数据A、密文C、与发送端共享的密钥H生成消息认证码Tag2,对比消息认证码Tag1和Tag2来对解密的正确性进行验证,如果比对失败,则返回错误标示符,只有在比对验证成功后才根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出。整个方法起到了对明文消息P1的机密性和完整性进行保护的功能,以及对附属数据A进行完整性保护的功能。
与现有技术相比,本实施例提供了一种通用的带附属数据的包括认证加密、验证解密的通信方法,用于对通信数据提供机密性和完整性保护。例如,在5G移动通信系统中,可利用本方法对发送端待传输的数据进行加密,在接收端首先对接收到的消息Tag1进行验证,然后对接收到的密文C进行解密,是一种可证明安全且高效的AEAD方法,能够有效提高通信系统的安全性和通信效率。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种认证加密方法,应用于发送端,其特征在于,所述认证加密方法包括如下步骤:
生成本次加密的初始向量IV;
根据与接收端共享的密钥K和初始向量IV生成密钥流一;
根据所述密钥流一中的部分密钥Z1[1]对明文P1加密获得密文C;利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1;其中,所述部分密钥Z1[0]和所述部分密钥Z1[1]共同构成所述密钥流一;
将获得的所述C、Tag1与所述A、IV一起发送至接收端,以使所述接收端解密获得明文。
2.根据权利要求1所述的认证加密方法,其特征在于,所述根据与接收端共享的密钥K和初始向量IV生成密钥流一,进一步包括如下步骤:
根据与接收端共享的密钥K和生成的所述初始向量IV,通过下面公式生成密钥流Z1
Z1=PRGl(IV,K)
式中,PRGl()表示伪随机数发生器,l表示所述Z1的比特长度,l等于Tag1的比特长度和密文C的比特长度之和;
对获得的所述Z1分段,生成预设长度的密钥流Z1[0]、Z1[1]
Z1=Z1[0]||Z1[1]
式中,Z1[0]的比特长度为τ,Z1[1]的比特长度为l-τ,Z1[0]、Z1[1]共同构成密钥流一,并且,Z1[1]的比特长度等于明文P1的比特长度。
5.根据权利要求4所述的认证加密方法,其特征在于,所述将密文C和附属数据A进行编码,进一步包括如下步骤:
将密文C和附属数据A分别转换成N比特分组形式,获得分组结果Partition(C)、Partition(A);
通过下面公式对上述分组结果编码,获得编码结果Encode(A,C)
Encode(A,C)=Partition(A)||Partition(C)||LA||LC
式中,Partition()表示分组函数,LA表示A的比特长度的64比特形式,LC表示C的比特长度的64比特形式。
6.一种验证解密方法,应用于接收端,其特征在于,所述验证解密方法包括如下步骤:
接收发送端发送的密文C、消息认证码Tag1、附属数据A和初始向量IV;
根据与发送端共享的密钥K和所述初始向量IV生成密钥流二;
根据所述密钥流二中的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2;
判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出,否则,输出无效标识;
其中,所述部分密钥Z2[1]和所述部分密钥Z2[0]共同构成所述密钥流二,以及,当Tag1和Tag2一致时,所述部分密钥Z2[1]与发送端加密明文P1获得密文C所使用的部分密钥Z1[1]相同。
7.根据权利要求6所述的验证解密方法,其特征在于,所述根据与发送端共享的密钥K和所述初始向量IV生成密钥流二,进一步包括如下步骤:
根据与发送端共享的密钥K和接收到的初始向量IV,通过下面公式生成密钥流Z2:
Z2=PRGl(IV,K)
式中,PRGl()表示伪随机数发生器,l表示所述Z2的比特长度,l等于Tag1的比特长度和密文C的比特长度之和;
对密钥流Z2进行分段,获得预设长度的密钥流Z2[0]、Z2[1]
Z2=Z2[0]||Z2[1]
式中,Z2[0]的比特长度为τ,Z2[1]的比特长度为l-τ,Z2[0]、Z2[1]共同构成密钥流二,并且,Z2[0]的比特长度等于消息认证码Tag1的比特长度,Z2[1]的比特长度等于密文C的比特长度。
10.一种包括认证加密与验证解密的通信方法,其特征在于,包括如下步骤:
发送端生成本次加密的初始向量IV,根据与接收端共享的密钥K和初始向量IV生成密钥流一,根据所述密钥流一中的部分密钥Z1[1]对明文P1加密获得密文C,利用所述密钥流一中的部分密钥Z1[0]结合附属数据A、与接收端共享的密钥H生成消息认证码Tag1,将获得的所述C、Tag1与所述A、IV一起发送至接收端;
接收端接收发送端发送的密文C、消息认证码Tag1、附属数据A和初始向量IV后,根据与发送端共享的密钥K和初始向量IV生成密钥流二,根据所述密钥流二的部分密钥Z2[0]结合附属数据A、与发送端共享的密钥H生成消息认证码Tag2,判断Tag1和Tag2是否一致,如果一致,根据所述密钥流二中的部分密钥Z2[1]解析密文C获得明文P2并输出,否则,输出无效标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011023229.9A CN112152805B (zh) | 2020-09-25 | 2020-09-25 | 一种认证加密方法、验证解密方法和通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011023229.9A CN112152805B (zh) | 2020-09-25 | 2020-09-25 | 一种认证加密方法、验证解密方法和通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152805A true CN112152805A (zh) | 2020-12-29 |
CN112152805B CN112152805B (zh) | 2024-07-12 |
Family
ID=73897188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011023229.9A Active CN112152805B (zh) | 2020-09-25 | 2020-09-25 | 一种认证加密方法、验证解密方法和通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112152805B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098855A (zh) * | 2021-03-26 | 2021-07-09 | 国网四川省电力公司营销服务中心 | 一种gw376.1规约报文加密方法及装置 |
CN114513311A (zh) * | 2022-02-25 | 2022-05-17 | 上海芯钛信息科技有限公司 | 一种改进消息认证码算法的方法、装置、设备和介质 |
CN115174152A (zh) * | 2022-06-08 | 2022-10-11 | 中国科学院信息工程研究所 | 一种群组测试认证加密方法、验证解密方法及通信方法 |
WO2022237440A1 (en) * | 2021-05-13 | 2022-11-17 | Huawei Technologies Co., Ltd. | Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor |
CN118018329A (zh) * | 2024-04-08 | 2024-05-10 | 苏州萨沙迈半导体有限公司 | 数据通信方法及装置、发送端设备、接收端设备 |
CN118300905A (zh) * | 2024-06-06 | 2024-07-05 | 浙江正泰仪器仪表有限责任公司 | 基于保密认证模式的密文传输方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478548A (zh) * | 2009-01-22 | 2009-07-08 | 上海交通大学 | 数据传输的加密和完整性校验方法 |
CN101753308A (zh) * | 2009-12-22 | 2010-06-23 | 中国科学院软件研究所 | 一种完整性认证方法 |
CN104158788A (zh) * | 2013-05-13 | 2014-11-19 | 普天信息技术研究院有限公司 | 一种端到端传输数据的方法 |
CN106304054A (zh) * | 2016-08-29 | 2017-01-04 | 西安电子科技大学 | 一种lte系统中的保护数据完整性的方法及装置 |
US20170272239A1 (en) * | 2014-08-20 | 2017-09-21 | Nec Corporation | Authentication encryption method, authentication decryption method, and information-processing device |
-
2020
- 2020-09-25 CN CN202011023229.9A patent/CN112152805B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478548A (zh) * | 2009-01-22 | 2009-07-08 | 上海交通大学 | 数据传输的加密和完整性校验方法 |
CN101753308A (zh) * | 2009-12-22 | 2010-06-23 | 中国科学院软件研究所 | 一种完整性认证方法 |
CN104158788A (zh) * | 2013-05-13 | 2014-11-19 | 普天信息技术研究院有限公司 | 一种端到端传输数据的方法 |
US20170272239A1 (en) * | 2014-08-20 | 2017-09-21 | Nec Corporation | Authentication encryption method, authentication decryption method, and information-processing device |
CN106304054A (zh) * | 2016-08-29 | 2017-01-04 | 西安电子科技大学 | 一种lte系统中的保护数据完整性的方法及装置 |
Non-Patent Citations (2)
Title |
---|
夏红星;郑庆华;: "认证加密算法的发展与研究", 网络安全技术与应用, no. 11 * |
肉饼: "AES-GCM 加密简介", Retrieved from the Internet <URL:https://juejin.cn/post/6844904122676690951> * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098855A (zh) * | 2021-03-26 | 2021-07-09 | 国网四川省电力公司营销服务中心 | 一种gw376.1规约报文加密方法及装置 |
CN113098855B (zh) * | 2021-03-26 | 2022-11-01 | 国网四川省电力公司营销服务中心 | 一种gw376.1规约报文加密方法及装置 |
WO2022237440A1 (en) * | 2021-05-13 | 2022-11-17 | Huawei Technologies Co., Ltd. | Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor |
US11838424B2 (en) | 2021-05-13 | 2023-12-05 | Huawei Technologies Co., Ltd. | Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor |
CN114513311A (zh) * | 2022-02-25 | 2022-05-17 | 上海芯钛信息科技有限公司 | 一种改进消息认证码算法的方法、装置、设备和介质 |
CN115174152A (zh) * | 2022-06-08 | 2022-10-11 | 中国科学院信息工程研究所 | 一种群组测试认证加密方法、验证解密方法及通信方法 |
CN118018329A (zh) * | 2024-04-08 | 2024-05-10 | 苏州萨沙迈半导体有限公司 | 数据通信方法及装置、发送端设备、接收端设备 |
CN118300905A (zh) * | 2024-06-06 | 2024-07-05 | 浙江正泰仪器仪表有限责任公司 | 基于保密认证模式的密文传输方法、装置、设备及介质 |
CN118300905B (zh) * | 2024-06-06 | 2024-09-24 | 浙江正泰仪器仪表有限责任公司 | 基于保密认证模式的密文传输方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112152805B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112152805B (zh) | 一种认证加密方法、验证解密方法和通信方法 | |
CN109672518B (zh) | 抗量子攻击的区块链的节点数据处理 | |
CN110677237B (zh) | 一种具有似混沌特性的文件加密方法 | |
CN111314089B (zh) | 一种基于sm2的两方协同签名方法及解密方法 | |
US7110545B2 (en) | Method and apparatus for symmetric-key encryption | |
EP2691906B1 (en) | Method and system for protecting execution of cryptographic hash functions | |
US7571320B2 (en) | Circuit and method for providing secure communications between devices | |
US20200076614A1 (en) | Method of rsa signature or decryption protected using a homomorphic encryption | |
US20080084996A1 (en) | Authenticated encryption method and apparatus | |
CN107395368B (zh) | 无介质环境中的数字签名方法及解封装方法与解密方法 | |
US5345507A (en) | Secure message authentication for binary additive stream cipher systems | |
US20080232591A1 (en) | Simple and efficient one-pass authenticated encryption scheme | |
JPWO2011105367A1 (ja) | ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム | |
CN113711564A (zh) | 用于加密数据的计算机实现的方法和系统 | |
WO2016067524A1 (ja) | 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム | |
Paar et al. | Message authentication codes (MACs) | |
CN112187446B (zh) | 一种认证加密方法、验证解密方法和通信方法 | |
KR20030027459A (ko) | 무선랜에서 송수신되는 패킷의 암호화 및 복호화 방법 | |
Dworkin | Request for review of key wrap algorithms | |
KR102626974B1 (ko) | 화이트박스 암호의 비밀키 보호를 위한 방법 및 시스템 | |
Dubinsky | Cryptography for Payment Professionals | |
JP2000004223A (ja) | 暗号・認証システム | |
JP4000899B2 (ja) | 認証付暗号方法及び認証付復号方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体 | |
JP2001509608A (ja) | デジタル・データのlビットの入力ブロックをlビットの出力ブロックに暗号変換するための方法 | |
Oszywa et al. | Combining message encryption and authentication |
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 |