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

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

Info

Publication number
CN112187446A
CN112187446A CN202011026219.0A CN202011026219A CN112187446A CN 112187446 A CN112187446 A CN 112187446A CN 202011026219 A CN202011026219 A CN 202011026219A CN 112187446 A CN112187446 A CN 112187446A
Authority
CN
China
Prior art keywords
tag1
plaintext
key
shared
initial vector
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
CN202011026219.0A
Other languages
English (en)
Other versions
CN112187446B (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 CN202011026219.0A priority Critical patent/CN112187446B/zh
Priority claimed from CN202011026219.0A external-priority patent/CN112187446B/zh
Publication of CN112187446A publication Critical patent/CN112187446A/zh
Application granted granted Critical
Publication of CN112187446B publication Critical patent/CN112187446B/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/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/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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]

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;根据明文P1和附属数据A,结合所述IV、共享密钥K1、H生成消息认证码Tag1;根据Tag1和IV结合共享密钥K2生成密钥流Z1;根据Z1对明文进行加密,将获得的密文C和所述Tag1、A、IV发送至接收端。接收端的验证解密方法包括:根据Tag1、IV结合共享密钥K2生成密钥流Z2;根据Z2解析密文C,生成明文P2;根据P2和IV,结合共享密钥K1、H生成消息认证码Tag2;判断Tag1、Tag2是否一致,如果一致,输出明文P2。本发明具有强鲁棒性,实现了抗IV重用、带附属数据的加密解密。

Description

一种认证加密方法、验证解密方法和通信方法
技术领域
本发明涉及通信技术领域,尤其涉及一种认证加密方法、解密方法和通信方法。
背景技术
机密性保护和完整性保护是信息安全的两个重要目标。随着互联网技术的发展,不安全信道中的消息认证变得越来越重要。加密可用于防止传输过程中非法用户对数据进行窃取,保护数据的机密性。消息认证码可用于检测在传输过程中数据是否被篡改,保护数据的完整性,又可以对数据源进行认证。
现有的认证加密方法一般基于分组密码构造,效率和安全界较低,并且在应用过程中,必须保证初始向量不重复使用,不满足强鲁棒性应用需求,如AES-GCM方法。
现有的基于序列密码等伪随机数发生器的加密解密算法虽然具有强鲁棒性,仅能对数据提供机密性保护,完整性保护需要单独增加算法,并且,该方法为仅对明文进行异或加密,必须保证每条消息对应的初始向量不重复,否则无法再对数据进行机密性保护。目前,缺少一种基于伪随机数发生器的通用强鲁棒性认证加密方法及通信方法。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种基于通信认证的加密解密方法,用以解决现有现有技术鲁棒性差、无法对数据同时提供机密性保护和完整性保护的问题。
一方面,本发明实施例提供了一种认证加密方法,应用于发送端,包括如下步骤:
生成可重复使用的初始向量IV;
根据待发送的明文P1和附属数据A,结合与接收端共享的密钥K1、H以及所述初始向量IV生成消息认证码Tag1;
根据所述消息认证码Tag1和所述初始向量IV,结合与接收端共享的密钥K2生成密钥流Z1;
根据所述密钥流Z1对明文P1进行加密,将获得的密文C和所述消息认证码Tag1、附属数据A、初始向量IV一起发送至接收端,以使所述接收端解密获得明文。
上述技术方案的有益效果如下:提供了一种通用的带附属数据的认证加密(AEAD)方法,用于对通信数据提供机密性和完整性保护,该方法具有抗IV(初始向量)重用性。在5G移动通信系统中,可利用本方法对发送端待传输的数据进行认证加密,在接收端对接收到的密文进行验证解密,是一种可证明安全且高效的强鲁棒性AEAD方法,能够有效提高通信安全和通信效率。
基于上述方法的进一步改进,所述根据待发送的明文P1和附属数据A,结合与接收端共享的密钥K1、H以及所述初始向量IV生成消息认证码Tag1,进一步包括如下步骤:
将明文P1和附属数据A分别转换成N比特分组形式,对转换结果进行编码,获得编码结果Encode(A,P1);
根据上述获得的Encode(A,P1),结合与接收端共享的密钥H,通过下面公式获得泛哈希值X
X=GHASHH(Encode(A,P1))
式中,H表示共享密钥,GHASHH()表示泛哈希函数;
根据上述获得的X和初始向量IV,结合与接收端共享的密钥K1,通过下面公式获得消息认证码Tag1
Figure BDA0002702179090000031
式中,PRGτ()表示伪随机数发生器,τ表示伪随机数发生器输出结果的比特长度,τ等于消息认证码Tag1的比特长度,Convv()表示转换函数,v表示转换后数据串的比特长度,
Figure BDA0002702179090000032
表示异或运算。
上述进一步改进方案的有益效果是:基于伪随机发生器提供了一种通用的带附属数据的认证加密方法,用于对明文数据提供机密性和完整性保护,对附属数据提供完整性保护,具有抗IV重用安全性(强鲁棒性)、灵活性、通用性,能够支持任意安全的伪随机数发生器构造,不但能够提供任意长度明文P1的机密性和完整性保护功能,还能够提供任意长度附属数据A的完整性保护功能。
进一步,所述编码结果Encode(A,P1)通过下面公式获得
Encode(A,P1)=Partition(A)||Partition(P1)||LA||LP1
式中,LP1表示所述明文P1的比特长度的64比特形式,LA表示所述附属数据A的比特长度的64比特形式,||表示拼接运算。
上述进一步改进方案的有益效果是:编码方案简单、通用,能够生成明文P1和附属数据A的唯一编码结果,支持任意长度的明文P1和附属数据A,为生成有效的消息认证码Tag1奠定了基石。
进一步,所述根据消息认证码Tag1和初始向量IV,结合与接收端共享的密钥K2生成密钥流Z1,进一步包括如下步骤:
通过下面公式,将Tag1转换为v比特长度的数据串Convv(Tag1)
Figure BDA0002702179090000041
式中,MSBv(Tag1)表示Tag1的左侧前v比特数据,|Tag1|表示Tag1的比特长度。
根据上述获得的Convv(Tag1),结合初始向量IV、与接收端共享的密钥K2,通过下面公式获得密钥流Z1
Figure BDA0002702179090000042
式中,|P1|表示明文P1的比特长度。
上述进一步改进方案的有益效果是:基于伪随机数发生器构造了密钥流一,进而通过密钥流一对明文P1进行异或加密。方法简单、通用、高效,能够支持任意长度的明文P1和附属数据A,具有较高的安全性、可靠性。
进一步,所述密文C通过下面公式获得
Figure BDA0002702179090000043
上述进一步改进方案的有益效果是:生成密文C的方案简单、通用,具有较高的安全性,能够支持产生任意长度的密文C。
另一方面,本发明实施例提供了一种验证解密方法,应用于接收端,该验证解密方法包括如下步骤:
接收发送端发送的密文C和消息认证码Tag1、初始向量IV、附属数据A;
根据所述Tag1、IV,结合与发送端共享的密钥K2生成密钥流Z2;
根据所述Z2解析密文C,生成明文P2;
根据所述P2、IV,结合与发送端共享的密钥K1、H生成认证码Tag2;
判断所述Tag1和所述Tag2是否一致,如果一致,输出明文P2,否则,输出无效标识,并删除已经解密的明文P2;
其中,当所述Tag1和所述Tag2一致时,密钥流Z2与发送端加密明文P1获得密文C所使用的密钥流相同。
上述技术方案的有益效果如下:提供了一种通用的带附属数据的验证解密方法,用于对通信数据提供机密性和完整性保护。如果接收到的消息(密文C和消息认证码Tag1、初始向量IV、附属数据A)未被篡改,所述密钥流Z2与发送端加密明文P1获得密文C所使用的密钥流相同。如果被篡改,则密钥流不同。例如,在5G移动通信系统中,可利用本方法在接收端对接收到的密文进行验证解密,是一种可证明安全且高效的AEAD方法,能够有效提高通信安全和通信效率。
基于上述方法的进一步改进,所述根据Tag1、IV结合与发送端共享的密钥K2生成密钥流Z2,包括如下步骤:
通过下面公式,将Tag1转换成v比特长度的数据串Y
Figure BDA0002702179090000051
式中,|Tag1|表示Tag1的比特长度,MSBv(Tag1)表示Tag1的左侧前v比特数据;
根据上述获得的Y,结合初始向量IV、与发送端共享的密钥K2,通过下面公式获得密钥流Z2
Figure BDA0002702179090000052
式中,|C|表示伪随机数发生器PRG的输出结果的比特长度,也是密文C的比特长度。
上述进一步改进方案的有益效果是:基于伪随机发生器提供了一种通用的带附属数据的验证解密方法,用于对明文数据提供机密性和完整性保护,对附属数据提供完整性保护,具有抗IV重用安全性(强鲁棒性)、灵活性、通用性,能够支持任意安全的伪随机数发生器构造,不但能够提供任意长度明文P1的机密性和完整性保护功能,还能够提供任意长度附属数据A的完整性保护功能。
进一步,所述明文P2通过下面公式获得
Figure BDA0002702179090000061
所述根据P2、IV结合与发送端共享的密钥K1、H生成认证码Tag2,进一步包括如下步骤:
将明文P2和附属数据A分别转换成N比特分组形式,对转换结果进行编码,获得编码结果Encode(A,P2);
根据上述获得的Encode(A,P2),结合与发送端共享的密钥H,通过下面公式获得泛哈希值Y
Y=GHASHH(Encode(A,P2))
式中,H表示与发送端共享的密钥,GHASHH()表示泛哈希函数;
根据上述获得的Y结合初始向量IV、与发送端共享的密钥K1,通过下面公式获得认证码Tag2
Figure BDA0002702179090000062
上述进一步改进方案的有益效果是:基于伪随机数发生器构造了认证码Tag2,具有较高的安全性、可靠性。方法简单,通用。
进一步,接收端和发送端通过如下步骤获得共享密钥H、K1、K2:
根据预先设置的IV0、K0,通过下面公式获得128比特密钥H,以及两个k比特密钥K1、K2
H||K1||K2=PRG|H|+|K1|+|K2|(IV0,K0)
式中,|H|、|K1|、|K2|分别表示密钥H、K1和K2的比特长度,PRG()表示伪随机数发生器,其输出结果的比特长度为|H|+|K1|+|K2|。
上述进一步改进方案的有益效果是:通过根据预先设置的IV0、K0自动生成共享密钥H、K,能够在一定程度上保护共享密钥防止被他人直接盗取,同时可减少密钥存储量。
此外,本发明实施例提供了一种包括上述认证加密与验证解密的通信方法,包括如下步骤:
发送端产生可重复使用的初始向量IV,根据待发送的明文P1和附属数据A,结合共享密钥K1、H以及所述初始向量IV生成消息认证码Tag1,根据所述Tag1、所述初始向量IV结合共享密钥K2生成密钥流Z1,根据所述密钥流Z1对明文P1进行加密,将获得的密文C和所述消息认证码Tag1、附属数据A、初始向量IV一起发送至接收端;
接收端接收到所述C和Tag1、IV、A后,根据所述Tag1和IV结合共享密钥K2生成密钥流Z2,根据所述Z2和密文C生成明文P2,进一步根据所述P2、IV结合共享密钥K1、H生成消息认证码Tag2,判断所述Tag1和Tag2是否一致,如果一致,输出明文P2,否则,输出无效标识,并删除已经解密的明文P2。
上述技术方案的有益效果如下:提供了一种通用的加密通信方法,用于对通信数据提供机密性和完整性保护。初始向量IV允许重复使用。例如,在5G移动通信系统中,可利用本方案对发送端待传输的数据进行认证加密,在接收端对接收到的密文进行验证解密,是一种可证明安全且高效的强鲁棒性AEAD方法,能够有效提高通信系统的安全性、健壮性和通信效率。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明实施例1认证加密方法步骤示意图;
图2为本发明实施例3验证解密方法步骤示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
实施例1
本发明的一个具体实施例,公开了一种应用于发送端的认证加密方法,如图1所示,包括如下步骤:
S1.生成可重复使用的初始向量IV;
S2.根据待发送的明文P1和附属数据A,结合与接收端共享的密钥K1、H以及所述初始向量IV生成消息认证码Tag1;
S3.根据所述消息认证码Tag1和所述初始向量IV,结合与接收端共享的密钥K2生成密钥流Z1;
S4.根据所述密钥流Z1对明文P1进行加密,将获得的密文C和所述消息认证码Tag1、附属数据A、初始向量IV一起发送至接收端,以使所述接收端解密获得明文。
实施时,发送端与接收端进行保密通信时,首先假设双方已有共享密钥K1、K2。发送端欲发送明文消息P1给接收端,为了保证通信过程中明文消息P1的机密性和完整性,需要首先对明文消息P1和附属数据A、初始向量IV计算认证码Tag1,进一步根据Tag1和IV对P1进行加密得到密文C,然后将(IV,A,C,Tag1)发送给接收端。值得说明的是,A是无需加密只需提供完整性保护的附属数据。
与现有技术相比,本实施例提供了一种通用的带附属数据的认证加密(AEAD)方法,用于对通信数据提供机密性和完整性保护,该方法具有抗IV(初始向量)重用性。在5G移动通信系统中,可利用本方法对发送端待传输的数据进行认证加密,在接收端对接收到的密文进行验证解密,是一种可证明安全且高效的强鲁棒性AEAD方法,能够有效提高通信安全和通信效率。
实施例2
在实施例1的基础上进行优化,步骤S2进一步包括:
S21.将明文P1和附属数据A分别转换成N比特分组形式,对转换结果进行编码,获得编码结果Encode(A,P1)。优选地,所述Encode(A,P1)通过下面公式获得
Encode(A,P1)=Partition(A)||Partition(P1)||LA||LP1 (1)
式中,LP1表示所述明文P1的比特长度的64比特形式,LA表示所述附属数据A的比特长度的64比特形式,||表示拼接运算。
示例性地,N=128。
假设数据串A=1010101010,则A的比特长度为整数10,A的比特长度的64比特形式为060||1010,LP1含义类似。
如果明文P1、附属数据A分组的最后一个分组小于128比特,使用0填充至128比特。例如:若|A|=256,则Partition(A)=A0||A1;若|A|=192,则Partition(A)=A0||(A1||064)。||表示拼接运算,064表示64个0的拼接,|A|表示A的比特长度。
S22.根据上述获得的Encode(A,P1),结合与接收端共享的密钥H,通过下面公式获得泛哈希值X
X=GHASHH(Encode(A,P1)) (2)
式中,H表示共享密钥,GHASHH()表示泛哈希函数。
S23.根据上述获得的X和初始向量IV,结合与接收端共享的密钥K1,通过下面公式获得消息认证码Tag1
Figure BDA0002702179090000102
式中,PRGτ()表示伪随机数发生器;τ表示伪随机数发生器输出结果的比特长度,等于消息认证码Tag1的比特长度,一般取32至128,具体值由通信系统确定;Convv()表示转换函数;v表示转换后数据串的比特长度,等于初始向量IV的比特长度,如当使用我国商密序列密码算法ZUC-256时,可选取v=184比特;
Figure BDA0002702179090000101
表示异或运算。
值得注意的是,根据应用需求,伪随机数发生器PRG可以使用任何安全的序列密码算法,例如使用我国商密序列密码标准算法ZUC或ZUC-256,也可以通过杂凑算法或分组密码进行构造,例如使用SM3或SM4通过现有的方法构造得到,本领域技术人员能够理解。
上述GHASHH(M)计算流程如下:
1.Partition(M)=M0||M1||…||Mn-1;
2.令Y=0;
3.对于1≤j≤n,计算
Figure BDA0002702179090000111
其中,
Figure BDA0002702179090000112
Figure BDA0002702179090000113
分别为有限域GF(2128)=GF(2)[x]/(x128+x7+x2+x+1)上的加法和乘法。
Figure BDA0002702179090000114
具体定义如下:可以将长度为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 BDA0002702179090000115
定义为GF(2)上的多项式加,即按对应比特异或。
Figure BDA0002702179090000116
具体定义如下:将有限域GF(2128)中的两个多项式a(x)和b(x)相乘,首先计算GF(2)上多项式相乘,然后取模f(x)作为
Figure BDA0002702179090000117
的结果,其中f(x)=x128+x7+x2+x+1,为不可约多项式。
优选地,步骤S3进一步包括:
S31.通过下面公式,将Tag1转换为v比特长度的数据串Convv(Tag1)
Figure BDA0002702179090000118
式中,MSBv(Tag1)表示Tag1的左侧前v比特数据,即从Tag1的左端开始取v比特数据,|Tag1|表示Tag1的比特长度。
S32.根据上述获得的Convv(Tag1),结合初始向量IV、与接收端共享的密钥K2,通过下面公式获得密钥流Z1
Figure BDA0002702179090000119
式中,|P1|表示明文P1的比特长度,具体由通信系统确定,也是伪随机数发生器输出结果的比特长度。
优选地,步骤S4中的密文C通过下面公式获得
Figure BDA0002702179090000121
实施时,发送端与接收端进行保密通信时,首先假设双方已有共享密钥H、K1、K2。发送端欲发送明文消息P1给接收端,为了保证通信过程中明文消息P1的机密性和完整性,需要首先对明文消息P1和附属数据A,以及随机产生的初始向量IV进行计算,获得消息认证码Tag1,然后对Tag1、IV和P1进行计算,加密得到密文C,并获得消息认证码Tag1,然后将(IV,A,C,Tag1)发送给接收端,IV为可重复使用的初始向量。
与实施例1相比,本实施例提供的方法具有抗IV重用安全性、灵活性、通用性,支持任意安全的伪随机数发生器构造,不但能够提供任意长度明文的机密性和完整性保护功能,还能够提供任意长度附属数据的完整性保护功能。
实施例3
本发明的一个具体实施例,公开了一种与实施例1对应的应用于接收端的验证解密方法,如图2所示,包括如下步骤:
S5.接收发送端发送的密文C和消息认证码Tag1、初始向量IV、附属数据A;
S6.根据所述Tag1、IV,结合与发送端共享的密钥K2生成密钥流Z2;
S7.根据所述Z2解析密文C,生成明文P2;
S8.根据所述P2、IV,结合与发送端共享的密钥K1、H生成认证码Tag2;
S9.判断所述Tag1和所述Tag2是否一致,如果一致,输出明文P2(P2=P1),否则,输出无效标识,并删除已经解密的明文P2。
值得注意的是,如果接收到的消息未被篡改,所述Tag1和所述Tag2一致,上述密钥流Z2与发送端加密明文P1获得密文C所使用的密钥流Z1相同。
实施时,接收端接收到发送端的消息(IV,A,C,Tag1)后,首先计算明文P2,进一步需要验证所解密的明文P2是否正确,即通过对比消息认证码Tag1和Tag2来对P2的正确性进行验证,如果比对失败,则返回错误标识符,只有在比对验证成功后才输出明文P2。整个方法起到了对明文消息P1的机密性和完整性进行保护的功能。
实施例4
在实施例3的基础上进行优化,步骤S6进一步包括:
S61.通过下面公式,将Tag1转换成v比特长度的数据串Y
Figure BDA0002702179090000131
式中,|Tag1|表示Tag1的比特长度,MSBv(Tag1)表示Tag1的左侧前v比特数据。
S62.根据上述获得的Y,结合初始向量IV、与发送端共享的密钥K2,通过下面公式获得密钥流Z2
Figure BDA0002702179090000132
式中,|C|表示伪随机数发生器输出结果的比特长度,也是密文C的比特长度。
优选地,步骤S7中的明文P2通过下面公式获得
Figure BDA0002702179090000133
优选地,步骤S8进一步包括:
S81.将明文P2和附属数据A分别转换成N比特分组形式,对转换结果进行编码,获得编码结果Encode(A,P2)。
S82.根据上述获得的Encode(A,P2),结合与发送端共享的密钥H,通过下面公式获得泛哈希值Y
Y=GHASHH(Encode(A,P2)) (10)
式中,H表示与发送端共享的密钥,GHASHH()表示泛哈希函数。
S83.根据上述获得的Y,结合初始向量IV、与发送端共享的密钥K1,通过下面公式获得认证码Tag2
Figure BDA0002702179090000141
优选地,如果需要减少密钥存储量,H、K1、K2可由密钥导出算法计算得到。密钥导出算法的输入为(IV0,K0),IV0表示v比特初始向量(由系统确定),K0表示k比特密钥,运行PRG(IV0,K0),生成128比特密钥H,以及两个k比特密钥K1、K2。
H||K1||K2=PRG|H|+|K1|+|K2|(IV0,K0) (12)
式中,|H|、|K1|、|K2|分别表示密钥H、K1和K2的比特长度,PRG()表示伪随机数发生器,其输出结果的比特长度为|H|+|K1|+|K2。
实施时,接收端接收到发送端的消息(IV,A,C,Tag1)后,首先计算明文P2,进一步需要验证所解密的明文P2是否正确,即通过对比消息认证码Tag1和Tag1来对P2的正确性进行验证,如果比对失败,则返回错误标识符,只有在比对验证成功后才输出明文P2。
与实施例3相比,本实施例提供的方法为序列密码等伪随机发生器提供了一种通用的抗IV重用带附属数据的验证解密方法,用于数据的机密性和完整性保护,并且模式在使用方面具有强鲁棒性,可规避由于操作者使用不当而造成IV重用时带来的安全问题。例如在5G移动通信系统中,以安全的序列密码(如ZUC-256)为基础密码本原,利用本方法对传输数据同时提供机密性和完整性保护,从而提高通信系统的安全性、健壮性和通信效率。同时,模式还可用于IV不便于随消息更新的应用场景,仍保证系统的机密性和完整性。
实施例5
本发明的一个具体实施例,公开了一种包括实施例2所述认证加密与实施例4所述验证解密的通信方法,其特征在于,包括如下步骤:
SS1.发送端产生可重复使用的初始向量IV,根据待发送的明文P1和附属数据A,结合共享密钥K1、H以及所述初始向量IV生成消息认证码Tag1,根据所述Tag1、所述初始向量IV结合共享密钥K2生成密钥流Z1,根据所述密钥流Z1对明文P1进行加密,将获得的密文C和所述消息认证码Tag1、附属数据A、初始向量IV一起发送至接收端;可选地,发送端可将所述密文C和所述Tag1、A以(IV,A,C,Tag1)的形式发送到接收端。
SS2.接收端接收到所述C和Tag1、IV、A后,根据所述Tag1和IV结合共享密钥K2生成密钥流Z2,根据所述Z2和密文C生成明文P2,进一步根据所述P2、IV结合共享密钥K1、H生成消息认证码Tag2,判断所述Tag1和Tag2是否一致,如果一致,输出明文P2(P2=P1),否则,输出无效标识,并删除已经解密的明文P2(P2≠P1)。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种认证加密方法,应用于发送端,其特征在于,所述认证加密方法包括如下步骤:
生成可重复使用的初始向量IV;
根据待发送的明文P1和附属数据A,结合与接收端共享的密钥K1、H以及所述初始向量IV生成消息认证码Tag1;
根据所述消息认证码Tag1和所述初始向量IV,结合与接收端共享的密钥K2生成密钥流Z1;
根据所述密钥流Z1对明文P1进行加密,将获得的密文C和所述消息认证码Tag1、附属数据A、初始向量IV发送至接收端,以使所述接收端解密获得明文。
2.根据权利要求1所述的认证加密方法,其特征在于,所述根据待发送的明文P1和附属数据A,结合与接收端共享的密钥K1、H以及所述初始向量IV生成消息认证码Tag1,进一步包括如下步骤:
将明文P1和附属数据A分别转换成N比特分组形式,对转换结果进行编码,获得编码结果Encode(A,P1);
根据上述获得的Encode(A,P1),结合与接收端共享的密钥H,通过下面公式获得泛哈希值X
X=GHASHH(Encode(A,P1))
式中,H表示共享密钥,GHASHH()表示泛哈希函数;
根据上述获得的X和初始向量IV,结合与接收端共享的密钥K1,通过下面公式获得消息认证码Tag1
Figure FDA0002702179080000011
式中,PRGτ()表示伪随机数发生器,τ表示伪随机数发生器输出结果的比特长度,τ等于消息认证码Tag1的比特长度,Convv()表示转换函数,v表示转换后数据串的比特长度,
Figure FDA0002702179080000023
表示异或运算。
3.根据权利要求2所述的认证加密方法,其特征在于,所述编码结果Encode(A,P1)通过下面公式获得
Encode(A,P1)=Partition(A)||Partition(P1)||LA||LP1
式中,LP1表示所述明文P1的比特长度的64比特形式,LA表示所述附属数据A的比特长度的64比特形式,||表示拼接运算。
4.根据权利要求1-3之一所述的认证加密方法,其特征在于,所述根据消息认证码Tag1和所述初始向量IV,结合与接收端共享的密钥K2生成密钥流Z1,进一步包括如下步骤:
通过下面公式,将Tag1转换为v比特长度的数据串Convv(Tag1)
Figure FDA0002702179080000021
式中,MSBv(Tag1)表示Tag1的左侧前v比特数据,|Tag1|表示Tag1的比特长度。
根据上述获得的Convv(Tag1),结合初始向量IV、与接收端共享的密钥K2,通过下面公式获得密钥流Z1
Figure FDA0002702179080000024
式中,|P1|表示明文P1的比特长度。
5.根据权利要求4所述的认证加密方法,其特征在于,所述密文C通过下面公式获得
Figure FDA0002702179080000022
6.一种验证解密方法,应用于接收端,其特征在于,所述验证解密方法包括如下步骤:
接收发送端发送的密文C和消息认证码Tag1、初始向量IV、附属数据A;
根据所述消息认证码Tag1、初始向量IV,结合与发送端共享的密钥K2生成密钥流Z2;
根据所述密钥流Z2解析密文C,生成明文P2;
根据所述明文P2和初始向量IV,结合与发送端共享的密钥K1、H生成消息认证码Tag2;
判断所述Tag1和所述Tag2是否一致,如果一致,输出明文P2,否则,输出无效标识,并删除已经解密的明文P2;
其中,当所述Tag1和所述Tag2一致时,所述密钥流Z2与发送端加密明文P1获得密文C所使用的密钥流相同。
7.根据权利要求6所述的验证解密方法,其特征在于,所述根据消息认证码Tag1、初始向量IV结合与发送端共享的密钥K2生成密钥流Z2,进一步包括如下步骤:
通过下面公式,将Tag1转换成v比特长度的数据串Y
Figure FDA0002702179080000031
式中,|Tag1|表示Tag1的比特长度,MSBv(Tag1)表示Tag1的左侧前v比特数据;
根据上述获得的Y,结合初始向量IV、与发送端共享的密钥K2,通过下面公式获得密钥流Z2
Figure FDA0002702179080000032
式中,|C|表示伪随机数发生器输出结果的比特长度,也是密文C的比特长度。
8.根据权利要求7所述的验证解密方法,其特征在于,所述明文P2通过下面公式获得
Figure FDA0002702179080000041
所述根据明文P2和初始向量IV,结合与发送端共享的密钥K1、H生成认证码Tag2,进一步包括如下步骤:
将明文P2和附属数据A分别转换成N比特分组形式,对转换结果进行编码,获得编码结果Encode(A,P2);
根据上述获得的Encode(A,P2),结合与发送端共享的密钥H,通过下面公式获得泛哈希值Y
Y=GHASHH(Encode(A,P2))
式中,H表示与发送端共享的密钥,GHASHH()表示泛哈希函数;
根据上述获得的Y结合初始向量IV、与发送端共享的密钥K1,通过下面公式获得认证码Tag2
Figure FDA0002702179080000042
9.根据权利要求8所述的验证解密方法,其特征在于,接收端和发送端通过如下步骤获得共享密钥H、K1、K2:
根据预先设置的IV0、K0,通过下面公式获得128比特密钥H,以及两个k比特密钥K1、K2
H||K1||K2=PRG|H|+|K1|+|K2|(IV0,K0)
式中,|H|、|K1|、|K2|分别表示密钥H、K1和K2的比特长度,PRG()表示伪随机数发生器,其输出结果的比特长度为|H|+|K1|+|K2|。
10.一种包括认证加密与验证解密的通信方法,其特征在于,包括如下步骤:
发送端产生可重复使用的初始向量IV,根据待发送的明文P1和附属数据A,结合共享密钥K1、H以及所述初始向量IV生成消息认证码Tag1,根据所述Tag1、所述初始向量IV结合共享密钥K2生成密钥流Z1,根据所述密钥流Z1对明文P1进行加密,将获得的密文C和所述消息认证码Tag1、附属数据A、初始向量IV一起发送至接收端;
接收端接收到所述C和Tag1、IV、A后,根据所述Tag1和IV结合共享密钥K2生成密钥流Z2,根据所述Z2和密文C生成明文P2,进一步根据所述P2、IV结合共享密钥K1、H生成消息认证码Tag2,判断所述Tag1和Tag2是否一致,如果一致,输出明文P2,否则,输出无效标识,并删除已经解密的明文P2。
CN202011026219.0A 2020-09-25 一种认证加密方法、验证解密方法和通信方法 Active CN112187446B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011026219.0A CN112187446B (zh) 2020-09-25 一种认证加密方法、验证解密方法和通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011026219.0A CN112187446B (zh) 2020-09-25 一种认证加密方法、验证解密方法和通信方法

Publications (2)

Publication Number Publication Date
CN112187446A true CN112187446A (zh) 2021-01-05
CN112187446B CN112187446B (zh) 2024-09-24

Family

ID=

Cited By (1)

* 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规约报文加密方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753308A (zh) * 2009-12-22 2010-06-23 中国科学院软件研究所 一种完整性认证方法
CN107005415A (zh) * 2014-12-03 2017-08-01 耐瑞唯信有限公司 用于加密/解密消息的块加密方法以及实现该方法的密码设备
US20170272239A1 (en) * 2014-08-20 2017-09-21 Nec Corporation Authentication encryption method, authentication decryption method, and information-processing device
CN110034919A (zh) * 2019-04-08 2019-07-19 中国科学院软件研究所 一种适用于zuc-256流密码算法的可变长度认证标签生成方法和通信方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753308A (zh) * 2009-12-22 2010-06-23 中国科学院软件研究所 一种完整性认证方法
US20170272239A1 (en) * 2014-08-20 2017-09-21 Nec Corporation Authentication encryption method, authentication decryption method, and information-processing device
CN107005415A (zh) * 2014-12-03 2017-08-01 耐瑞唯信有限公司 用于加密/解密消息的块加密方法以及实现该方法的密码设备
CN110034919A (zh) * 2019-04-08 2019-07-19 中国科学院软件研究所 一种适用于zuc-256流密码算法的可变长度认证标签生成方法和通信方法及系统

Cited By (2)

* 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规约报文加密方法及装置

Similar Documents

Publication Publication Date Title
EP2691906B1 (en) Method and system for protecting execution of cryptographic hash functions
CN112152805B (zh) 一种认证加密方法、验证解密方法和通信方法
CN111314089B (zh) 一种基于sm2的两方协同签名方法及解密方法
US8090098B2 (en) Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
US8126139B2 (en) Partial encryption and full authentication of message blocks
US6950517B2 (en) Efficient encryption and authentication for data processing systems
US20240143796A1 (en) Protecting data from brute force attack
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
US20070058802A1 (en) Cryptosystem Based on a Jacobian of a Curve
US7570759B2 (en) System and method for secure encryption
JPH11514188A (ja) 暗号キー回復システム
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
JP5171787B2 (ja) サインクリプションシステムおよびサインクリプション生成方法
Švenda Basic comparison of Modes for Authenticated-Encryption (IAPM, XCBC, OCB, CCM, EAX, CWC, GCM, PCFB, CS)
CN112187446B (zh) 一种认证加密方法、验证解密方法和通信方法
CN115549910A (zh) 一种数据传输方法、设备以及存储介质
CN112187446A (zh) 一种认证加密方法、验证解密方法和通信方法
CN114036541A (zh) 一种复合加密存储用户私密内容的应用方法
GB2397203A (en) Method of authenticating a message
JP2000004223A (ja) 暗号・認証システム
JP4000899B2 (ja) 認証付暗号方法及び認証付復号方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体
JP4000900B2 (ja) 認証付暗号方法及び認証付復号方法及び検証方法及び装置及びプログラム及びコンピュータが読み取り可能な記録媒体
CN113765669A (zh) Sm2密钥派生与使用方法
CN116502250A (zh) 一种计算机的加解密方法及装置
JP2001357011A (ja) ユーザ認証装置

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