CN112152805A - 一种认证加密方法、验证解密方法和通信方法 - Google Patents

一种认证加密方法、验证解密方法和通信方法 Download PDF

Info

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
Application number
CN202011023229.9A
Other languages
English (en)
Other versions
CN112152805B (zh
Inventor
李鸿利
王勇慧
贾文义
马永彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XINGTANG COMMUNICATION TECHNOLOGY CO LTD
Original Assignee
XINGTANG COMMUNICATION TECHNOLOGY CO LTD
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XINGTANG COMMUNICATION TECHNOLOGY CO LTD filed Critical XINGTANG COMMUNICATION TECHNOLOGY CO LTD
Priority to CN202011023229.9A priority Critical patent/CN112152805B/zh
Publication of CN112152805A publication Critical patent/CN112152805A/zh
Application granted granted Critical
Publication of CN112152805B publication Critical patent/CN112152805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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通过下面公式获得
Figure BDA0002701332780000031
式中,
Figure BDA0002701332780000032
表示异或运算。
上述进一步改进方案的有益效果是:基于伪随机数发生器生成了密钥流一,进而通过密钥流一中的部分密钥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
Figure BDA0002701332780000033
式中,
Figure BDA0002701332780000034
表示所述Z1[0]与所述Y1的左侧前τ比特数据进行异或。
上述进一步改进方案的有益效果是:基于密文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通过下面公式获得
Figure BDA0002701332780000041
式中,
Figure BDA0002701332780000042
表示Z1[0]与Y1的左侧前τ比特数据进行异或。
上述进一步改进方案的有益效果是:生成消息认证码的方案简单、通用,具有较高的安全性,能够支持产生任意长度的认证码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
Figure BDA0002701332780000061
式中,
Figure BDA0002701332780000062
表示所述Z2[0]与所述Y2的左侧前τ比特数据进行异或。
上述进一步改进方案的有益效果是:基于伪随机数发生器构造了密钥流二,进而通过密钥流二中的Z2[0]对明文P1进行异或加密。如果消息传输过程中密文C未被篡改,获得的密钥流二与密钥流一内容相同,因此起到了对消息进行验证的目的。该方法能够支持任意长度的密文C和附属数据A,具有较高的安全性、可靠性。方法简单,通用。
进一步,所述明文P2通过下面公式获得
Figure BDA0002701332780000063
所述接收端和发送端每端通过如下步骤获得共享密钥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):
Figure BDA0002701332780000101
式中,
Figure BDA0002701332780000102
表示异或运算。
优选地,步骤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
Figure BDA0002701332780000103
式中,
Figure BDA0002701332780000104
表示所述Z1[0]与所述Y1的左侧前τ比特数据进行异或。
上述GHASHH(M)计算流程如下:
1.Partition(M)=M0||M1||…||Mn-1;
2.令Y=0;
3.对于1≤j≤n,计算
Figure BDA0002701332780000111
其中,
Figure BDA0002701332780000112
Figure BDA0002701332780000113
分别为有限域GF(2128)=GF(2)[x]/(x128+x7+x2+x+1)上的加法和乘法。
Figure BDA0002701332780000114
具体定义如下:可以将长度为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)相加,即
Figure BDA0002701332780000115
定义为GF(2)上的多项式相加,即按对应比特异或。
Figure BDA0002701332780000116
具体定义如下:有限域GF(2128)中的两个多项式a(x)和b(x)相乘,首先计算GF(2)上多项式相乘,然后取模f(x)作为
Figure BDA0002701332780000117
的结果,其中f(x)=x128+x7+x2+x+1,为不可约多项式。
优选地,步骤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
Figure BDA0002701332780000141
式中,
Figure BDA0002701332780000142
表示所述Z2[0]与所述Y2的左侧前τ比特数据进行异或。
优选地,步骤S8中的明文P2通过下面公式获得
Figure BDA0002701332780000143
优选地,所述发送端和接收端每端通过如下步骤获得共享密钥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的比特长度。
3.根据权利要求2所述的认证加密方法,其特征在于,所述密文C通过下面公式获得
Figure FDA0002701332770000011
式中,
Figure FDA0002701332770000012
表示异或运算。
4.根据权利要求1-3之一所述的认证加密方法,其特征在于,所述利用密钥流一中的部分密钥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
Figure FDA0002701332770000021
式中,
Figure FDA0002701332770000022
表示所述Z1[0]与所述Y1的左侧前τ比特数据进行异或。
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的比特长度。
8.根据权利要求7所述的验证解密方法,其特征在于,所述根据所述密钥流二中的部分密钥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
Figure FDA0002701332770000041
式中,
Figure FDA0002701332770000042
表示所述Z2[0]与所述Y2的左侧前τ比特数据进行异或。
9.根据权利要求6-8之一所述的验证解密方法,其特征在于,所述明文P2通过下面公式获得
Figure FDA0002701332770000043
所述接收端和发送端每端通过如下步骤获得共享密钥H、K:
根据预先设置的IV0、K0,通过下面公式获得128比特密钥H,以及k比特密钥K
H||K=PRG|H|+|K|(IV0,K0)
式中,|H|和|K|分别表示密钥H和K的比特长度,PRG|H|+|K|()表示伪随机数发生器,其输出结果的比特长度为密钥H和K的比特长度之和。
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并输出,否则,输出无效标识。
CN202011023229.9A 2020-09-25 2020-09-25 一种认证加密方法、验证解密方法和通信方法 Active CN112152805B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
夏红星;郑庆华;: "认证加密算法的发展与研究", 网络安全技术与应用, no. 11 *
肉饼: "AES-GCM 加密简介", Retrieved from the Internet <URL:https://juejin.cn/post/6844904122676690951> *

Cited By (9)

* Cited by examiner, † Cited by third party
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