一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于格的身份基认证密钥协商方法与流程

2022-04-02 06:10:24 来源:中国专利 TAG:


1.本发明涉及通信安全的技术领域,尤其涉及一种基于格的身份基认证密钥协商方法。


背景技术:

2.当前,网络信息系统(如因特网等公共网络基础设施)中广泛部署的绝大多数安全协议是利用diffie-hellman、rsa、ecc等传统公钥密码体制来实现的,这些传统公钥密码体制的安全性往往建立在大整数分解问题、离散对数问题等经典数论难题基础之上。近年来量子计算技术的飞速发展及其在解决大规模计算难题方面的巨大潜能,已经对上述传统公钥密码体制的安全性带来了前所未有的冲击,由此设计和部署可抗量子计算攻击的后量子安全协议方案势在必行。传输层安全(transport layer security,tls)协议是因特网上一个非常重要的基础性安全协议,其应用非常广泛,包括web浏览、ftp文件下载、smtp协议的电子邮件等,其握手子协议主要是一个认证密钥协商协议,用于实现服务器和客户端的相互认证,并生成两端间的共享密钥,该共享密钥后续会用于应用数据的加密与认证,为互联网通信提供端到端的安全服务。
3.tls协议因为其应用的广泛性,一直受到相关业界和学术界的关注,对于此类实用性网络安全协议,不仅要考虑其安全性,而且还要考虑其执行效率及其在实践中是否易于部署。近些年,已有很多关于tls协议的研究。尤其,作为其重要组成部分的握手子协议,由于承担了客户端和服务器端之间的认证密钥建立这一极其重要的任务,更是受到了重点关注,其相关一些典型研究举例如下。bentahar等提出了可适用于tls握手过程的基于椭圆曲线配对的密钥封装机制(key encapsulation mechanism,kem),该方案的计算效率较高,易于实施;banerjee等给出了基于传统椭圆曲线公钥密码方案且依赖于公钥证书系统的tls具体握手过程,通过重构密码加速器和硬件执行等方式节约了握手成本。尽管上述bentahar等的方案和banerjee等的方案执行较为高效,但都是基于传统的经典椭圆曲线密码体制构造而成,因而不能抗量子攻击。bos等提出了适用于tls握手、安全性基于环上带误差的学习问题的格上密钥协商协议,为了实现认证,该方案将格上密钥协商协议与使用rsa或椭圆曲线数字签名的传统身份验证方式结合在了一起,但这种混合形式的方案并非是完全的量子安全方案。最近,banerjee等研究了使用格上基于身份的认证密钥协商协议来构造后量子tls握手方案的方法,并将其应用于tls最新的协议版本
‑‑‑
tls 1.3,以减少通信开销,但其实际所使用的格上认证密钥协商协议实例却是由一个格上基于身份的kem/加密方案和一个newhope kem构建的;最近,schwabe等也提出了无签名的后量子tls 1.3握手方案,通过采用kem而不是调用公钥签名算法来进行服务器身份验证,相对于使用公钥签名机制的显式认证方案,该隐式认证的方案不需要会话密钥的确认,减少了通信规模,缩短了通信时间。
4.diffie-hellman、rsa、ecc等经典公钥密码在当前网络安全体系中仍然占据主导地位,因而在实践中仍然缺乏完善的后量子公钥基础设施(public key infrastructure,
pki)支持。尽管目前也有一些通用基础性后量子认证密钥协商协议提出且原则上可将其应用于tls等实用性网络安全协议方案,但这些基础性协议在实践中的部署大都必须要依赖pki,所以在当下还不能作为后量子密钥协商的完整解决方案。
5.近年来量子计算技术的飞速发展已对当前安全性高度依赖diffie-hellman、rsa、ecc等经典公钥密码体系的公共网络基础设施带来前所未有的挑战,实践量子安全保障已具现实意义。


技术实现要素:

6.针对现有密钥协商方法的安全性较差的技术问题,本发明提出一种基于格的身份基认证密钥协商方法,适用于最新1.3版本传输层安全(transport layer security,tls)协议握手过程的格上基于身份认证密钥协商,方案的安全性依赖于格上困难问题的难解性,可以抵抗量子计算攻击。
7.为了达到上述目的,本发明的技术方案是这样实现的:一种基于格的身份基认证密钥协商方法,其步骤如下:
8.步骤一:客户端和服务器端的通信实体的注册及信息初始化,实现客户端与服务端地稳定连接;
9.步骤二:tls协议握手的协议发起者a生成临时公私钥对(pk*,sk*),并根据消息生成密文ca,使用client hello把密文ca和临时公钥pk*组成的消息(ca,pk*)发送至协议响应者b;sk*为临时私钥;
10.步骤三:协议响应者b接收到消息(ca,pk*)后进行身份认证并生成密文cb和cb*,通过server hello发送给协议发起者a;
11.步骤四:协议发起者a收到消息(cb,cb*)后对密文cb,cb*进行解密和身份验证,如果身份验证通过,协议发起者a计算出会话密钥并与协议响应者b进行密钥导出;否则,协议发起者a拒绝消息(cb,cb*)并直接终止密钥协商。
12.所述步骤一中注册及信息初始化的实现方法为:
13.s1:建立pkg系统需要的密钥生成算法key generation(n,q)和密钥提取算法extract(mpk,msk,id),并选择合适的相关散列函数h;其中,n为正整数,q为素数,mpk,msk分别为系统主公钥和主私钥,id为通信实体的身份标识;
14.s2:通信实体将自己的身份标识id发送给pkg系统,进行实体记录及密钥申请;
15.s3:pkg系统收到通信实体的身份标识id,使用密钥生成算法key generation(n,q)产生并发布系统主公私钥(mpk,msk);
16.s4:pkg系统将系统主公私钥(mpk,msk)及通信实体的身份标识利用密钥提取算法extract(mpk,msk,id)生成通信实体的身份私钥sk;
17.s5:通信实体获得身份信息和身份私钥组成的信息(id,sk),注册及初始化成功。
18.所述步骤二中协议发起者a生成临时公私钥对(pk*,sk*),并根据消息生成密文ca的方法为:协议发起者a调用加密算法keygen生成一个随机的临时公私钥对(pk*,sk*),即(pk*,sk*):=keygen(n,q,ida);协议发起者a随机选取一个消息并调用加密算法enc'生成密文ca:=enc'(mpk,idb,ma);
19.所述步骤三中协议响应者b进行身份认证并生成密文cb和cb*的方法为:调用解密
算法dec'对密文ca进行解密得到ma':=dec'(skb,ca),协议响应者b进行验证操作,即:若ma'=

,则验证不通过,协议发起者b拒绝消息并直接终止协商过程;若ma'≠

,则验证通过,协议响应者b进行以下操作:随机选取消息mb,调用加密算法enc'分别生成密文cb:=enc'(mpk,ida,mb),cb*:=enc'(pk*,ida,mb*),协议响应者b计算出会话密钥kb=h(ma',mb,mb*,pk*,ida,idb);
20.所述协议发起者a对密文cb,cb*进行解密和身份验证的方法为:协议发起者a调用解密算法dec'分别对密文cb,cb*进行解密得到消息mb':=dec'(ska,cb),mb*':=dec'(sk*,cb*),接着协议发起者a进行验证操作,即:若mb'=

或者mb*'=

,则验证不通过,协议发起者a拒绝消息并直接终止协议;否则,则验证通过,协议发起者a计算出会话密钥ka=h(ma,mb',mb*',pk*,ida,idb);
21.其中,为消息域,ida为协议发起者a的身份标识,n为正整数,q为素数,idb为协议响应者b的身份标识,mpk表示系统主公钥,skb表示协议响应者b的身份私钥,ska表示协议发起者a的身份私钥,

表示空即失败。
22.所述加密算法enc'的加密函数enc'(mpk,id,m)的实现方法为:
23.u=r
·
mpk e1;
24.得到密文其中,k=g1(m),r=g2(m),e1=g3(m),e2=g4(m),表示向下取整;且g1,g2,g3,g4为哈希函数,且:为哈希函数,且:m为消息,n表示维度,h1:{0,1}
*
→rq
为哈希函数,rq为多项式环;哈希函数h2:(0,1)
*

{0,1}
mlen
表示将任意输入内容的长度填充为一个固定的长度,为异或操作。
25.所述解密算法dec'的解密函数dec'(sk
id
,c)为:根据输入:sk
id
,c=(u,v,w),则m'=dec(sk
id
,c);
26.若m'=

或enc'(mpk,id,m')≠c,返回

;否者,返回消息m';
27.其中,函数dec(sk
id
,c)的实现方法为:v=2
l
·
v,z=v-u
·
sk
id
∈rq,则得到解密消息
28.所述加密算法keygen的实现方法为:根据输入n、q、id,计算(mpk*,msk*):=key generation(n,q);sk*:=extract(mpk*,msk*,id);pk*:=mpk*;输出(pk*,sk*)。
29.所述key generation(n,q)的实现方法为:(1)(2)f,a:=‖(g,-f)‖,m:=max(a,b);(3)若返回(2);(4)选取ρf,ρg∈rq和rf,使-ρf·
f=rf和-ρg·
g=rg;若gcd(rf,rg)≠1或gcd(rf,q)≠1返回(2);(5)选取u、使u
·
rf v
·
rg=1;f:=qvρg;g:=-quρf;f:=f-k
·
f;g:=g-k
·
g;(6)则mpk:=g
·
f-1
mo
dq
;输出(mpk,msk);
30.其中,n=2k≥1,k为正整数,q为素数,一般n,q要取较大的数值;表示离散高斯分
布;表示反循环矩阵,表示多项式系数g的转置,表示多项式系数f的转置。
31.所述密钥提取算法extract(mpk,msk,id)的实现方法为:计算t:=h1(id);s1 s2·
mpk
*
=t;(s1,s2):=(t,0)-gaussian(msk
*
,α,(t,0));输出sk
id
:=s2;
32.其中,s1、s2为较小的多项式,α表示随机抽样的离散高斯分布,gaussian()表示离散高斯取样本发明的有益效果:基础认证密钥协商(authenticated key agreement,aka)协议由单一格上基于身份的加密方案转换而成,没有使用执行开销较大的公钥签名算法,实现了隐式认证。由于使用了这个格上基于身份的认证密钥协商协议,所提出的tls握手认证密钥协商机制消除了公钥证书,避免了一个庞大公钥基础设施(public key infrastructure,pki)的部署,更加易于实施。仿真测试表明,所构造的基础aka协议在执行效率和安全性方面可与现有一些典型的基础性后量子认证密钥协商协议相比,在量子安全强度、通信量等某些具体性能指标方面具有较为明显的优势,安全性基于格上困难问题,能够抵抗量子计算攻击,在安全性和执行效率上具有更多优势;本发明所提出的tls握手认证密钥协商机制的总体性能也表现良好,与其它相关tls握手方案相比,在计算开销和通信开销等方面也有着较为明显的优势。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
34.图1为本发明的流程示意图。
35.图2为图1所示初始化的流程图。
36.图3为本发明认证密钥协商的示意图。
37.图4为本发明为仿真实验系统拓扑图。
38.图5为本发明的握手方案的运行时间的曲线图。
39.图6为本发明的相关tls握手方案的通信量对比图。
40.图7为本发明的相关tls握手方案的运行时间对比图
具体实施方式
41.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.如图1所示,一种基于格的身份基认证密钥协商方法,基于格上难题构造,可以抗量子攻击,其步骤如下:
43.步骤一:客户端和服务器端的通信实体的注册及信息初始化,实现客户端与服务端地稳定连接。
44.如图2所示,构建pkg系统来代替传统的公钥证书颁发机构(ca),pkg系统进行注册通信实体并对其建立起一套标准的密钥提取流程。主要分为以下步骤:
45.s1:建立pkg系统需要引进dlp-ibe的相关算法key generation(n,q)、extract(mpk,msk,id),并选择合适的相关散列函数h。
46.s2:通信实体a和b将自己的身份标识id
a idb发送给pkg,进行实体记录及相关密钥申请。
47.s3:pkg系统收到通信实体的身份标识,首先会使用key generation(n,q)产生并发布系统主公私钥(mpk,msk),用以后续提取实体的身份私钥。
48.s4:pkg系统将系统主公私钥(mpk,msk)及实体身份标识(id
a idb)结合生成对应实体的身份私钥,即ska=extract(mpk,msk,ida)skb=extract(mpk,msk,ida)。
49.s5:通信实体a和b获得对应的身份信息和身份私钥(ida,ska)、(idb,skb),注册及初始化成功。
50.步骤二:tls协议握手的协议发起者a生成临时公私钥对(pk*,sk*),并根据消息生成密文ca,使用client hello把密文ca和临时公钥pk*组成的消息(ca,pk*)发送至协议响应者b;sk*为临时私钥。作为tls第一次的真实信息交互。
51.步骤三:协议响应者b接收到消息(ca,pk*)后进行身份认证并生成密文cb和cb*,协议响应者b将生成的消息(cb,cb*)作为第二次真实信息交互,通过server hello发送给协议发起者a。
52.步骤四:协议发起者a收到消息(cb,cb*)后对密文cb,cb*进行解密和身份验证,如果身份验证通过,协议发起者a计算出会话密钥并与协议响应者b进行密钥导出;否则,协议发起者a拒绝消息(cb,cb*)并直接终止密钥协商。
53.利用图2的初始化流程对tls客户端a和服务端b进行注册及相关信息的初始化。在tls a端和b端建立稳定连接之后,图3中协议的a端和b端的相关机制可以直接套进tls中的客户端a和服务端b,作为一个通用协议,能够用于多种实际协议,如tls握手。
54.tls 1.3是tls协议的最新版本,相比tls的前一个版本(tls 1.2)改进颇多,其具体改进主要包括删除了一些不安全的加密算法、握手时间减半等。tls 1.3协议只需要一个往返便可以完成握手,相对于低版本的tls 1.2具有更少的时间成本。首先客户端会向服务端发送clienthello,主要包括客户端所支持的tls版本、会话标识符、加密套件列表、压缩算法列表以及随机扩展消息(密钥共享、预共享密钥等);然后服务端回复severhello,主要包括选择的协议版本、加密套件等;服务端发送证书、以及使用对应的私钥对握手消息的签名等;服务端选用客户端发送的随机数生成临时公钥,结合选定的参数计算出共享密钥,并将临时公钥发送给客户端,最后客户端使用证书公钥进行签名认证;获取临时公钥,最终生成共享密钥。
55.tls协议是一个高度模块化的复杂协议体系,其模块就是一些嵌入的密码原语(比如具体的加密算法和密钥协商等)。因此,本发明将提出的格上基于身份的认证密钥协商机制作为一个可抗量子攻击的密钥协商模块嵌入到tls 1.3协议握手过程。虽然,可以去除原tls握手过程的发送证书、证书认证等步骤,但这里没有改变原tls基本协议交互流程,与tls协议标准语义理论上也具有一定的兼容性。
56.由dlp-ibe方案构造一个格上基于身份的认证密钥协商协议,用以嵌入tls 1.3握手过程。此基础协议的构造过程实际上是对等在pkc 2020会议上提出的后量子通用认证密钥交换框架(fo
ake
)的实例化。
57.利用fo
ake
框架可将任意ind-cpa安全的公钥加密(public key encryption,pke)方案转换为一个认证密钥协商协议,且容许所选用的pke方案具有非完美正确性(non-perfect correctness),如像一些基于格的pke可能存在的解密偏差(decryption error)情况。具体来说,在相关认证密钥协商协议构造前可能需要对选定的原始pke方案进行若干改造,首先判断所选定的具有ind-cpa安全性的原始pke方案是否具有不相交的可模拟性(disjoint simulatability,ds)。直观来说,具有ds性质意味着可以有效地抽样与真pke密文计算性不可区分(“可模拟性”)的“伪密文”,同时要求可能的伪密文集合与真密文集合(几乎)是不相交的。实际上对于许多基于格的加密方案来说,因其抽样的样本相对稀疏,本身自然就满足ds性质。如果具有ds特性,就可直接按照fo
ake
构建框架进行转换。若不满足ds性质,也可以对pke方案进行简单改造以使其具有ds性质,其改造的基本方法是“穿刺”消息空间的某处并对其抽样进行消息伪加密,使有效采样的伪密文与真实的pke密文在计算上无法区分,由此可将任何具有ind-cpa安全性的pke方案转化为同时具有ds特性的方案。
58.此外,在具体的实施过程中还需要对pke方案的加密过程进行去随机化和重加密等操作以便于应对其解密可能出现的正确性偏差(correctness error)等某些异常情况,即由原始的公钥加密方案pke和一个哈希函数g,要构造一个公钥加密方案pke',pke'的加密为:enc'(pk,m):=enc(pk,m;g(m)),enc表示pke原来的加密函数。其中,pk为用户长期公钥,m为要加密的消息,g(m)被用作加密函数enc的随机抛币,致使加密函数enc'成为确定性算法。在fo
ake
框架中,上述操作又被称为t转换。
59.如图3所示,在完成通信实体的注册及初始化之后,进行执行相关的密钥协商,主要包括两次的消息交互及最终的密钥导出,具体实现方法为:
60.step1:为了与b协商建立一个共享的会话密钥k,a首先调用算法keygen生成一个随机的临时公私钥对(pk*,sk*),即(pk*,sk*):=keygen(n,q,ida);然后,a随机选取一个消息ma←
m,并调用enc'生成密文ca:=enc'(mpk,idb,ma)。随后a将所生成的(ca,pk*)发送给b。
61.step2:b收到a发来的消息(ca,pk*)后,首先调用dec'对密文ca进行解密得到ma':=dec'(skb,ca),接着b进行验证操作(隐含身份验证机制),即:若ma'=

,则验证不通过,b拒绝消息并直接终止协议;若ma'≠

,则验证通过,b进行以下操作:首先随机选取消息mb,mb*

m,然后调用enc'分别生成密文cb:=enc'(mpk,ida,mb),cb*:=enc'(pk*,ida,mb*),并将(cb,cb*)发送给a。
62.step3:a收到b发来的消息(cb,cb*)后,首先调用dec'分别对密文cb,cb*进行解密得到mb':=dec'(ska,cb),mb*':=dec'(sk*,cb*),接着a进行验证操作,即:若mb'=

or mb*'=

,则验证不通过,a拒绝消息并直接终止协议;否则,则验证通过。
63.step4:通信两端计算正确并验证成功,a和b分别计算ka=h(ma',mb,mb*,pk*,ida,idb)和kb=h(ma,mb',mb*',pk*,ida,idb)。
64.上述通用基础协议可实现通信前在两个通信方间建立共同会话密钥,可以被用于/嵌入多种实际安全协议中。协议参与两方就是通信发起方和通信响应方。
65.格可以被想象成一个具有很多规律分布、离散点的空间。通常使用基向量来更好的描述格,假设一组基向量b={b1,...,bn},则格被定义为基向量的任意线性组合的集合,即其中,表示整数集,bi第i个向量,n为向量个数,x为整数向量。
66.lyubashevsky等深入分析regev等提出的格上带误差的学习(learning with errors,lwe)问题,并在此基上定义了多项式环上带误差的学习(ring learning with errors,rlwe)问题,当选择合适的参数时,rlwe问题的困难性可以规约为理想格上最短向量问题(shortest vector problem,svp
γ
)的最差情形,其中,参数γ的选择与lwe问题的参数有关。目前格上可以定义许多数学难题,且已经确认几乎所有的经典密码概念都可以在格密码中得以实现。
67.lwe问题:设χ为上的一个误差分布,选取任意正整数n和q,均匀随机选取误差e

χ,向量对于一个秘密的随机向量则lwe分布为(a,b=《s,a》 e mod q)。
68.搜索性lwe问题:选取多组lwe分布的抽样求解秘密向量s。
69.判定性lwe问题:选取多组独立抽样其中的每个抽样或者选自lwe分布或者选自均匀分布u,判断抽样是哪种情况分布。
70.rlwe问题:在整数集上定义多项式环:其中,n=2k≥1,k为正整数。选取任意正整数q,类似的可以定义环其中环rq包含所有次数最多为n-1的多项式,多项式的系数均在整数集中。设χ为多项式rq上的误差分布,均匀随机选取误差e

χ,a∈rq,对于一个秘密向量s∈rq,则rlwe分布为a
s,χ
∈rq×rq
:(a,b=s
·
a emod q)。
71.搜索性rlwe问题:选取多组rlwe分布的抽样(ai,bi)∈rq×rq
,求解秘密向量s。
72.判定性rlwe问题:选取多组独立抽样(ai,bi)∈rq×rq
,其中的每个抽样或者选自rlwe分布或者选自均匀分布u,判断抽样是哪种情况的分布。
73.基于身份加密(identity-based encryption,ibe)是一种公钥加密,其用户的公钥来源于用户的身份,如电子邮件、ip地址等。与采用证书方式来获得用户公钥的传统协议不同,ibe的优点在于不需要证书进行验证。它只需要一个可信的第三方—私钥生成方(private key generator,pkg)来生成用户私钥。这里给定相关安全参数λ,则ibe可定义为以下四个算法:
74.(1)setup(1
λ
)

(mpk,msk):pkg系统生成主公钥mpk和主私钥msk,然后,将主私钥msk秘密保管,将主公钥mpk公开发布。
75.(2)extract(mpk,msk,id)

sk
id
:pkg系统生成与用户身份标识id相对应的用户私钥sk
id
,然后,通过一个稳妥保密的途径传给相关用户。
76.(3)encrypt(mpk,id,m)

c:加密者使用主公钥mpk和消息接收方的身份id所派生出的公钥加密消息m,并输出密文c。
77.(4)decrypt(sk
id
,c)

m或

:解密者使用自己的秘密私钥sk
id
解密密文c,并输出明文m,若是无效则返回


78.上述四个步骤中任何消息和用户id,若是满足公式decrypt(sk
id
,encrypt(mpk,id,m))=m,则ibe方案是可行的。
79.ducas等提出了一个执行高效的格上基于身份的加密方案(记为dlp-ibe),该加密方案具有选择明文攻击下不可区分的(indistinguishability under chosen-plaintext attack,ind-cpa)安全性。与其它相关的格上基于身份的加密方案相比,dlp-ibe的密文长度较为合理,加解密速度较快,被认为是一个性能相当高的格上基于身份的加密方案。
80.dlp-ibe方案使用ntru格生成公私钥,加密过程基于rlwe,公钥和密文的空间大小分别为o(n)和o(2n),n为多项式环rq的次数。该方案包括生成主密钥对、提取用户私钥、给定用户身份为用户加密消息以及用户使用私钥解密。根据该方案可以推出下式:
[0081][0082]
其中,q为素数,h1是一个哈希函数,即h1:{0,1}
*
→rq
,可将任意长度的标识符(如id)映射到多项式环rq中。k为{0,1}n的随机取样,r和e1为{-1,0,1}n的随机取样,sk
id
为身份私钥,s=h1(id)-mpk
·
sk
id
表示为环rq中的短元素。
[0083]
这意味着在密钥提取的过程中,主公钥和用户密钥需符合条件:mpk
·
sk
id
s=h1(id),且s为多项式环rq中短元素,r
·
s e
2-e1·
sk
id
的系数在(-q/4,q/4)范围内,便可大概率正确解密。
[0084]
dlp-ibe是格密码方案,遵循rlwe问题假设,取样的样本相对稀疏,在均匀采样下相交的概率可忽略不计,由此dlp-ibe具备ds特性。
[0085]
设消息域为设g1,g2,g3,g4为哈希函数,其定义分别如下:为哈希函数,其定义分别如下:m为消息,n表示维度。哈希函数h1:{0,1}
*
→rq
和h2:(0,1)
*

{0,1}
mlen
,h2可将任意k的长度填充为m的长度。那么,本发明的加密函数enc'(mpk,id,m)为:u=r
·
mpk e1;得到密文其中,k=g1(m),r=g2(m),e1=g3(m),e2=g4(m),q为素数,表示向下取整。
[0086]
解密函数dec'(sk
id
,c)为:根据输入:sk
id
,c=(u,v,w),则m'=dec(sk
id
,c);
[0087]
若m'=

或enc'(mpk,id,m')≠c,返回

;否者,返回m'。
[0088]
其中,函数dec(sk
id
,c)的实现方法为:v=2
l
·
v,z=v-u
·
sk
id
∈rq,则得到解密消息
[0089]
在具体执行解密函数dec'(sk
id
,c)时,pke'首先调用dlp-ibe方案的dec算法对密文c解密,得到m';然后再判断m'是否为

或者将m'使用enc'进行重加密后得到的密文与原密文c是否相同以判断是否存在解密偏差等异常情况。若m'=

或者enc'(mpk,id,m')≠c,则直接返回

;否则,返回m'。
[0090]
同样依据fo
ake
框架规范,在构建具体的协议时,还需要定义一个新的密钥生成算法keygen,其目的是在每次aka协议执行时都生成一对新的随机的临时公私钥。其算法keygen(n,q,id)通过调用原dlp-ibe方案中算法key generation和extract来实现:
[0091]
根据输入n,q,id,(mpk*,msk*):=key generation(n,q);sk*:=extract(mpk*,msk*,id);pk*:=mpk*;输出(pk*,sk*)。其中,key generation(n,q)的实现方法为:
[0092]
输入:n,q,(1)(2)f,a:=‖(g,-f)‖,m:=max(a,b);(3)若返回(2);
[0093]
(4)选取ρf,ρg∈rq和rf,使-ρf·
f=rf和-ρg·
g=rg;
[0094]
若gcd(rf,rg)≠1或gcd(rf,q)≠1返回(2);
[0095]
(5)选取u、使u
·
rf v
·
rg=1;
[0096]
f:=qvρg;g:=-quρf;f:=f-k
·
f;g:=g-k
·
g;
[0097]
(6)则mpk:=g
·
f-1
mod q;输出(mpk,msk)。
[0098]
其中,n=2k≥1,k为正整数,q为素数,一般n,q要取较大的数值。表示离散高斯分布;表示反循环矩阵。表示多项式系数g的转置,表示多项式系数f的转置。
[0099]
extract(mpk*,msk*,id)的实现方法为:
[0100]
t:=h1(id);s1 s2·
mpk
*
=t;(s1,s2):=(t,0)-gaussian(msk
*
,α,(t,0));输出sk
id
:=s2。
[0101]
其中,s1、s2为较小的多项式,α表示随机抽样的离散高斯分布,gaussian()表示离散高斯取样。
[0102]
依据fo
ake
框架,并使用上述经过改造后得到的算法enc'、dec'和keygen构建一个格上身份基认证密钥协商协议,协议的通信双方可以通过两消息的交互协商建立最终的共享会话密钥。
[0103]
此协议在基于身份的密码系统下运行,pkg按照原dlp-ibe的相关算法完成系统初始化过程,产生并发布了系统主公钥mpk以及其它公开参数(如n,q等),并且已为系统中各用户产生并分发了静态长期私钥。假设两个用户a和b之间要运行协议,用户a的身份信息和长期私钥分别为(ida,ska);用户b的身份信息和长期私钥分别为(idb,skb)。设l为协议系统安全参数,设消息域为设h:{0,1}
*

{0,1}
l
为一个在密码学意义上安全的哈希函数。假定a为协议发起者,b为协议响应者,协议执行具体过程如下:
[0104]
(1)为了与协议响应者b协商建立一个共享的会话密钥k,协议发起者a首先调用算法keygen生成一个随机的临时公私钥对(pk*,sk*),即(pk*,sk*):=keygen(n,q,ida);然后,协议发起者a随机选取一个消息并调用加密算法enc'生成密文ca:=enc'(mpk,idb,ma)。随后,协议发起者a将所生成的(ca,pk*)发送给协议响应者b。
[0105]
(2)协议响应者b收到协议发起者a发来的消息(ca,pk*)后,首先调用解密算法dec'对密文ca进行解密得到ma':=dec'(skb,ca),接着协议响应者b进行验证操作,即:若ma'=

,则验证不通过,协议发起者b拒绝消息并直接终止协议;若ma'≠

,则验证通过,协议响应者b进行以下操作:首先随机选取消息mb,然后调用加密算法enc'分别生成密文cb:=enc'(mpk,ida,mb),cb*:=enc'(pk*,ida,mb*),并将消息(cb,cb*)发送给协议发起者a,最终协议响应者b计算出会话密钥k=h(ma',mb,mb*,pk*,ida,idb)。
[0106]
(3)协议发起者a收到协议响应者b发来的消息(cb,cb*)后,首先调用解密算法dec'分别对密文cb,cb*进行解密得到mb':=dec'(ska,cb),mb*':=dec'(sk*,cb*),接着协议发起者a进行验证操作,即:若mb'=

or mb*'=

,则验证不通过,协议发起者a拒绝消息并直接终止协议;否则,则验证通过,协议发起者a计算出会话密钥k=h(ma,mb',mb*',pk*,ida,idb)。
[0107]
本发明所提基础aka协议基于fo
ake
框架构造而成,具体选取具有ind-cpa安全性的格上基于身份的加密方案(dlp-ibe)作为了其中的基本构件。fo
ake
已被其作者证明取得了
ram),系统拓扑如图4所示,包括客户端和服务器端,实现数据的接收和传送。使用python3.7编程,模拟实现了本发明所提协议和方案,设置仿真程序的维度参数n=1024,模数q=12289,消息m的尺寸为1024bits,随机抽样的离散高斯分布类似banerjee等的后量子基于身份密码方案的模拟实施,利用sha3-256对会话密钥导出哈希函数h进行实例化,并借助shake(基于sha3的可扩展输出函数)类函数对所提方案中定义的其它哈希函数进行实例化。
[0116]
albrecht等提出了当前最为权威的针对基于lwe、rlwe问题的密码方案的安全性测试平台,通过如暴力搜索、格基归约等多种攻击方式来度量格密码系统的(量子)安全强度。在该测试平台上输入给定的实施参数对新构建的格上认证密钥协商协议进行安全性测试,最终得到其基础格上aka协议的(量子)安全强度为321(bit)。
[0117]
在仿真测试中,针对本发明基础协议进行了多次稳定模拟实施。下面选取现有一些典型的、具有代表性的格上基本认证密钥协商协议与本发明所提基础格上认证密钥协商协议进行综合性能比较,如表1所示。其中所选取的典型的格密码方案包括bos等的方案bcns-[bos j w,costello c,naehrig m,et al.post-quantum key exchange for the tls protocol from the ring learning with errors problem[c]//proceedings of the 2015ieee symposium on security and privacy(sp 2015).ieee computer society,usa,2015:553-570.]、zhang等的方案(2-zzdsd-100和2-zzdsd-210)-[zhang j,zhang z,ding j,et al.authenticated key exchange from ideal lattices[c]//proceedings of the 34th annual international conference on the theory and applications of cryptographic techniques.springer,berlin,heidelberg,2015:719-751.]、peikert等的方案(peikert-106和peikert-192)-[peikert c.lattice cryptography for the internet[c]//proceedings of the 6th international workshop on post-quantum cryptography.springer,cham,2014:197-219.]、kyber.ake-[bos j,ducas l,kiltz e,et al.crystals-kyber:a cca-secure module-lattice-based kem[c]//proceedings of the 2018ieee european symposium on security and privacy(euros&p 2018).ieee,london,uk,2018:353-367]、saber.ke-[d'anvers j p,karmakar a,sinha roy s,et al.saber:module-lwr based key exchange,cpa-secure encryption and cca-secure kem[c]//proceedings of the 10th international conference on cryptology in africa.springer,cham,2018:282-305.]、frodo-[bos j,costello c,ducas l,et al.frodo:take off the ring!practical,quantum-secure key exchange from lwe[c]//proceedings of the 2016acm sigsac conference on computer and communications security.acm,usa,2016:1006-1018.]和newhope-[alkim e,ducas l,t,et al.post-quantum key exchange-a new hope[c]//proceedings of the 25th usenix security symposium.usenix association,usa,2016:327-343.]。除了格密码方案,还引入一个安全性基于超奇异同源(supersingular isogenies,si)问题的sidh方案和一个安全性基于经典椭圆曲线离散对数(elliptic curve discrete logarithm,ecdl)问题的ecdh-256方案来参与比较。具体比较指标包括协议发起方(initiator)和响应方(responder)的平均计算时间(ms)、通信量(bits)、公私钥长度(bits)、量子安全强度、困难问题假设等。在表1中,与本发明的基础协议作比较的上述
相关典型格密码方案和经典密码方案(ecdh-256)的测试数据主要来源于文献[ni liang,wang nianping,gu weili,zhang qian,liu jizhao,shan fangfang.research on lattice-based quantum resistant authenticated key agreement protocols:a survey[j].computer science,2020,47(9):293-303.](saber.ke表项中的符号
“‑”
表示saber方案的作者并没有给出相关测试数据;ecdh-256表项中的符号
“×”
表示其不具有量子安全性),sidh方案的测试数据来源于文献[bos j,costello c,ducas l,et al.frodo:take off the ring!practical,quantum-secure key exchange from lwe[c]//proceedings of the 2016acm sigsac conference on computer and communications security.acm,usa,2016:1006-1018.]。
[0118]
参与对比的这些格密码协议的作者在其方案的相关文献中往往给出多个可选择(参数)的方案,本发明选取的是其主要方案或性能表现较好的推荐参数方案(以“recommended”标记),由于各后量子密码协议的设计基于不同的计算性难题且具有不同程度的量子安全强度,它们的实施又是依托不同的平台,且采用不同程度的优化,因此对于各方案运行性能进行完全公平比较是不可能的。然而,从表1中还是可以清楚地看出所提基础协议的总体性能整体表现良好,在运行时间方面,相比上述大部分协议要短;在公私钥及通信量方面,相比当前一些典型的后量子格上协议要小。尽管表1中非格方案(如sidh方案和ecdh-256方案)的公私钥及通信量较小,但是sidh的通信双方计算时间过长,ecdh-256方案则是不能抗量子攻击。综合比较,本发明所提基础协议通信开销较小、运行时间较短、密钥规模适中,且具有较强量子安全性——在给出的参数设置下测试其量子安全强度达到321(bit)。而且,本发明所提基础后量子格上认证密钥协商协议是基于身份的密码方案,消除了公钥证书,从而避免庞大pki的部署,更加便于实际应用方案(tls握手子协议)的实施。
[0119]
表1相关基础认证密钥协商协议的性能对比
[0120]
[0121][0122]
在仿真测试中,针对嵌入了所构造的基础aka协议后得到的tls 1.3握手过程也进行了多次稳定模拟实施。图5表示(n=1024)随着所提握手方案实施次数的增加,两端握手运行时间的变化趋势。握手方案的第一次运行需要进行初始化多个参数,所以方案的首次运行时间较长。但随着测试次数的增加,实施过程逐渐趋于稳定,其运行时间可以很好的稳定在60(ms)到70(ms)之间。
[0123]
下面选取了现有一些典型的、常见的相关tls握手方案与本发明所构造的新方案进行性能比较。具体如图6的相关tls握手方案的通信总量(bytes)对比,图7的相关tls握手方案的运行时间(ms)对比,以及表2中对相关tls握手方案的量子安全性、所基于的密码体系和是否依赖pki的对比。其中,bfm表示bentahar等的方案、bwj表示banerjee等的方案、bcns表示bos等的方案、bc表示banerjee等的方案、方案errr、errr
*
、kkdd、kkdd
*
、nnff和nnff
*
来源于文献[schwabe p,stebila d,wiggers t.post-quantum tls without handshake signatures[c]//proceedings of the 2020acm sigsac conference on computer and communications security.acm,new york,ny,usa,2020:1461

1480.]。方案bfm、bwj、bcns、bc的数据指标主要来源于文献[banerjee u,chandrakasan a p.efficient post-quantum tls handshakes using identity-based key exchange from lattices[c]//proceedings of the icc 2020-2020ieee international conference on communications(icc).ieee,dublin,ireland,2020:1-6.]。
[0124]
从图6、图7、表2可以看出,一些基于传统密码体系(如rsa、ecc等)的tls握手方案(如bfm、bwj、errr、errr
*
)的计算和通信开销虽然较小,但这些方案不具有量子安全性。bos等的bcns方案则通过传统公钥签名机制的方式来实现显式认证,所以也并不能算是完全的
量子安全方案,而且,表2中还指出其方案仍需要使用公钥证书和依赖pki机制,在执行过程中对公钥证书的传输又将造成一定的通信和处理开销。
[0125]
表2相关tls握手方案的其它性能对比
[0126][0127]
除了上述方案,表2还选择给出了最近schwabe等提出的若干tls 1.3握手(实例化)方案,其中包括基于rsa传统密码体制的方案errr和errr
*
(“*”表示已缓存证书),以及后量子基于格的方案kkdd、kkdd
*
、nnff和nnff
*
,这些方案没有使用签名,在一定程度上减少了通信成本,但是它们仍然需要使用公钥证书和依赖pki,从图6和图7可以看出相对来说这些方案还是有着不小的运行开销。而且,在目前缺乏后量子pki支持的情况下,依赖pki的方案在当下尚无法作为完整的量子安全实践解决方案。而本发明新构造的tls握手方案使用了格上基于身份的aka协议,可消除公钥证书,不再需要依赖一个庞大的pki,在实践中也便于实施。其基础aka协议又是fo
ake
框架的实例化,由具有ind-cpa安全性的单一的格上基于身份加密方案构造而成,没有使用开销较大的公钥签名算法,实现了隐式认证,运行性能较高,且具有良好的安全性。如图6和图7所示,与现有依赖于pki的后量子tls握手方案(表2中bos等的方案bcns和schwabe等的实例化后量子方案)相比,本发明tls握手方案的通信开销和计算开销更小;与同样采用格上基于身份密码协议所构造的类似后量子tls握手方案(表2中banerjee等的方案bc)相比,所提tls握手方案在通信开销和计算开销方面也有着较为明显的优势。
[0128]
量子信息技术的突飞猛进,使当前网络安全协议中占主导地位的、安全性基于经典数论难题的公钥密码方案遭受巨大冲击,实践量子安全保障已具现实意义。本发明给出了一个可用于tls 1.3握手的格上基于身份的认证密钥协商方法,其内在基础aka协议的构建是对fo
ake
框架的实例化。基础aka协议由单一格上基于身份的加密方案(dlp-ibe方案)构造而成,没有使用执行开销较大的公钥签名,实现了隐式认证。由于使用了这个格上基于身份的认证密钥协商协议,给出的tls 1.3握手认证密钥协商机制消除了公钥证书,避免了一个庞大pki的部署,同时方案的安全性又基于格上困难问题假设,可以抵抗量子攻击。仿真综合测试表明,在推荐参数下,与现有的一些典型的相关基础性协议相比,本发明所构造的基础aka协议具有较高的执行效率和良好的安全性,在(量子)安全强度、通信量等某些具体
性能指标方面具有较为明显的优势;使用了此协议的tls握手方案的总体性能也表现良好,与现有的一些典型的相关tls握手方案相比,在通信总量和运行时间等方面也有着较为明显的优势。
[0129]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献