CN111817853B - 一种后量子安全的签密算法 - Google Patents

一种后量子安全的签密算法 Download PDF

Info

Publication number
CN111817853B
CN111817853B CN201910907793.8A CN201910907793A CN111817853B CN 111817853 B CN111817853 B CN 111817853B CN 201910907793 A CN201910907793 A CN 201910907793A CN 111817853 B CN111817853 B CN 111817853B
Authority
CN
China
Prior art keywords
vector
polynomial
algorithm
hash function
dimensional
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
Application number
CN201910907793.8A
Other languages
English (en)
Other versions
CN111817853A (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.)
Chinese People's Armed Police Force Sea Police Academy
Original Assignee
Chinese People's Armed Police Force Sea Police Academy
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 Chinese People's Armed Police Force Sea Police Academy filed Critical Chinese People's Armed Police Force Sea Police Academy
Priority to CN201910907793.8A priority Critical patent/CN111817853B/zh
Publication of CN111817853A publication Critical patent/CN111817853A/zh
Application granted granted Critical
Publication of CN111817853B publication Critical patent/CN111817853B/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/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/3247Cryptographic 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 involving digital signatures
    • 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/3236Cryptographic 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 cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

本申请公开了一种后量子安全的签密算法,包括以下步骤:A、系统设置Setup(1n);B、密钥生成算法KeyGen(1n,PP);C、签密算法Signcrypt(msg∈{0,1}l,sks,pkr);D、解签密算法Unsigncrypt(C,skr,pks),本发明构造通用单向哈希函数,将
Figure DDA0002213803900000011
中的元素映射为Rq中的向量。本发明引入封装的思想,结合划分partitioning技术、盆景树技术和调和技术实现CCA2安全性,利用变色龙哈希函数封闭猜测confined guessing技术实现EUF‑ACMA安全性。

Description

一种后量子安全的签密算法
技术领域
本发明涉及签密算法技术领域,尤其涉及一种后量子安全的签密算法。
背景技术
在数字通信中,隐私性、数据完整性和认证是要实现的主要目标。隐私性是通过公钥加密实现的,而数据完整性和认证是由签名实现。签密是一种基本密码原语,可以同时实现公钥加密和签名。但是现有的签密是基于ElGamal和双线性对的,其安全性依赖Diffie-Hellman假设。
为了实现后量子安全的签密方案,李发根等人利用原像可抽样函数和格基签名算法构造了一个随机预言机模型(ROM)下的基于格的签密方案。王凤和等人也利用原像可抽样函数和已有的(indistinguishability against adaptive Chosen CiphertextAttacks,IND-CCA2)安全的加密方案构造了一个基于格的后量子安全的签密方案,该方案是在ROM下可证明安全的。2013年,闫建华等人构造了一个标准模型下安全的基于格的签密方案。在该方案中,闫建华等人首先使用Micciancio和Peikert提出的陷门生成技术构造了一个变色龙哈希函数(chameleon hash function),利用这个变色龙哈希函数将现有的静态选择明文攻击下存在不可伪造安全的(existential unforgeability under staticchosen-message attack,EUF-SCMA)签名方案提升为适应性选择明文攻击下强存在不可伪造安全的(existential unforgeability under adaptive chosen-message attack,EUF-ACMA)签名方案,并且利用一个CCA安全的对称加密方案和抗碰撞的杂凑函数将现有的IND-CCA1安全的加密方案提升到IND-CCA2安全性。2014年,路秀华等人构造了标准模型下安全的基于格的签密方案,该方案使用Boyen的标准模型下SUF-ACMA安全的签名方案,并且采用双模式加密(bimode encryption)方法破除了密文的延展性(malleability)。向新银等人设计了一个格上ROM下基于属性的签密方案。最近,路秀华等人在无陷门签名基础上构造了一个IND-CPA安全的格基签密方案,并结合Fujisaki-Okamoto的转换技术将这个IND-CPA安全的签密方案提升为ROM下IND-CCA2安全的基于格的签密方案。虽然ROM简化了安全证明,但Canetti等人指出当随机预言机被具体化为某个Hash函数时,随机预言机模型下可证明安全的方案可能是不安全的。无独有偶,Leurent和Nguyen也指出随机预言机模型存在理论缺陷。因此,设计标准模型下安全的基于格的签密方案是一项重要的目标。Sato和Shikata提出了一个基于格密码的标准模型下签密方案。G′erard和Merckx构造了一个基于格密码的签密方案。Liu等人于2019年提出了一个随机预言机模型下基于格密码的签密。Zhang等人构造了一个随机预言机模型下基于格密码的多接收者的签密。
下列已有的陷门生成算法和抽样算法是作为本发明调用的子算法:
(陷门基生成算法)存在PPT算法TrapGen,输入参数n,σ=1,
Figure GDA0003644391910000021
和奇素数q,且满足q≡3mod8,其中σ是生成矩阵
Figure GDA0003644391910000022
选取的真随机向量的列数,整数
Figure GDA0003644391910000023
Figure GDA0003644391910000024
m=m1+m2,p=2q-n/2-q-n,随机选取
Figure GDA0003644391910000025
算法以大于等于(1-2q-n/2+q-n)的概率输出
Figure GDA0003644391910000026
和矩阵Ta∈Rm×m,其中
Figure GDA0003644391910000027
是满秩矩阵,
Figure GDA0003644391910000028
是格Λ(rot(aT)T)的陷门基,满足
(1)a与一致分布的统计距离可忽略;
(2)若m1,m2≥log2n,则
Figure GDA0003644391910000029
(左抽样算法)设n为2的幂,素数q>4n,且满足q≡3mod8。存在随机算法e←SampleLeft(a,b,u,Ta,σ)输入向量a,
Figure GDA0003644391910000031
其中rot(aT)T
Figure GDA0003644391910000032
为满秩矩阵,u∈Rq,矩阵Ta∈Rk×k使得
Figure GDA0003644391910000033
是格Λ(rot(aT)T)的陷门基,高斯参数
Figure GDA0003644391910000034
输出向量
Figure GDA0003644391910000035
即[a,b]eT=u,
Figure GDA0003644391910000036
(右抽样算法)存在随机算法
Figure GDA0003644391910000037
输入向量a,
Figure GDA0003644391910000038
其中b=aR+ygb,使得rot(aT)T
Figure GDA0003644391910000039
是满秩矩阵,
Figure GDA00036443919100000310
u∈Rq,矩阵R∈Rm×m
Figure GDA00036443919100000311
使得
Figure GDA00036443919100000312
是Λ(rot(gb))的基,高斯参数
Figure GDA00036443919100000313
输出向量e∈R2m,其分布与
Figure GDA00036443919100000314
统计接近。也即是[a|b]eT=u,
Figure GDA00036443919100000315
(盆景树算法)设n为2的幂,素数q>4n,且满足q≡3mod8。存在确定多项式时间算法ExtBasis(Ta,c=[a,b])输入向量
Figure GDA00036443919100000316
其中
Figure GDA00036443919100000317
Figure GDA00036443919100000318
为满秩矩阵,Ta∈Rm×m满足
Figure GDA00036443919100000319
是格Λ(rot(aT)T)的陷门基,输出矩阵
Figure GDA00036443919100000320
其中
Figure GDA00036443919100000321
是格Λ([rot(aT)T,rot(bT)T])的陷门基,且||Tc||GS=||Ta||GS
(原像可抽样算法)SamplePre(a,Ta,u,σ)输入
Figure GDA00036443919100000322
及其陷门基
Figure GDA00036443919100000323
向量u∈Rq,参数σ,该算法首先选取利用线性代数计算出向量
Figure GDA00036443919100000324
其满足at=u(modq)。然后,输出向量
Figure GDA00036443919100000325
其服从模格
Figure GDA00036443919100000326
上离散高斯分布
Figure GDA00036443919100000327
设公开矩阵gb满足
Figure GDA00036443919100000328
并且
Figure GDA00036443919100000329
Figure GDA00036443919100000330
k=k′,b=2。存在确定多项式时间算法
Figure GDA00036443919100000331
输入u∈Rq,输出
Figure GDA00036443919100000332
满足gbP=u。
发明内容
本发明的目的是提供一种后量子安全的签密算法,以解决上述背景技术中提出的问题。引入封装的设计思想,结合划分技术、盆景树技术和调和技术实现CCA2安全性,利用封闭猜测(confined guessing)技术实现EUF-ACMA安全性,在计算和效率两方面取得平衡。
为了实现上述目的,本发明的技术方案是:
一种后量子安全的签密算法,包括以下步骤:
S1、系统设置Setup(1n):设1n为安全参数,生成系统参数PP如下:
(6)奇素数q满足q≡3mod8,m=2k,κ≥2,Φm(x)=xm/2+1是m阶分圆多项式,设
Figure GDA0003644391910000041
Figure GDA0003644391910000042
其中,
Figure GDA0003644391910000043
是整数集合,
Figure GDA0003644391910000044
是变量为x且系数取自
Figure GDA0003644391910000045
的多项式环;
Figure GDA0003644391910000046
是模m阶分圆多项式Φm(x)=xm/2+1生成的整系数多项式环;
Figure GDA0003644391910000047
是模m阶分圆多项式和模q生成的多项式环;
对于向量
Figure GDA0003644391910000048
表示一种代数结构,称为模格;其中*是一种特殊乘法运算,具体运算如下:
Figure GDA0003644391910000049
(2)随机选取
Figure GDA00036443919100000410
随机选取u∈Rq
Figure GDA00036443919100000411
Figure GDA00036443919100000412
b=2,定义矩阵
Figure GDA00036443919100000413
其中,
Figure GDA00036443919100000414
是一种代数结构,它包含的元素是向量,向量的维数是m,向量的每个分量取自多项式环Rq
Figure GDA0003644391910000051
也是一种代数结构,它包含的元素是向量,向量的维数是
Figure GDA0003644391910000052
(其中
Figure GDA0003644391910000053
表示不超过log q的最大整数),向量的每个分量取自多项式环Rq;在
Figure GDA0003644391910000054
中选取
Figure GDA0003644391910000055
个向量
Figure GDA0003644391910000056
从多项式环中取出的多项式u;从
Figure GDA0003644391910000057
中取出的向量d,它的每个分量是Rq中的元素;gb=[1|b|…|bm-1]是一个m维向量,分量依次为1,b,…,bm-1
Figure GDA0003644391910000058
表示行数为n,列数为
Figure GDA0003644391910000059
主对角线上元素为gb的一个矩阵;在这里,我们设置b=2。
(3)H1
Figure GDA00036443919100000510
是通用单向哈希函数;
ρs(x)=exp(-π||x||2/s2)表示标准n维高斯分布,中心为0,方差为s;对于模格L,s>o,模格上离散高斯分布表示为
Figure GDA00036443919100000511
对于关于变量x的多项式环R,
Figure GDA00036443919100000512
表示多项式
Figure GDA00036443919100000513
的分布,其中系数向量(a0,a1,...,an-1)服从离散高斯分布DL,s抽样。
Figure GDA00036443919100000514
表示m维向量,其每个分量服从分布
Figure GDA00036443919100000515
{0,1}*表示任意长度的比特向量的集合;该通用单向哈希函数是将任意长度比特向量和一个中的向量杂凑,生成
Figure GDA00036443919100000516
中一个向量,这个向量的每个分量服从离散高斯分布
Figure GDA00036443919100000517
(4)H2:{0,1}*→{0,1}l是逐对独立哈希函数;
其中,H2:{0,1}*→{0,1}l:一种哈希函数,输入任意长度比特向量,输出长度为l的比特向量;
(5)H3
Figure GDA00036443919100000518
是通用单向哈希函数,具体构造如下:
Figure GDA00036443919100000519
Figure GDA00036443919100000520
1)计算
Figure GDA0003644391910000061
这一步调用了调和机制。首先需要介绍调和机制:<·>2q,2是交错凑整函数,把
Figure GDA0003644391910000062
上的元素作用到
Figure GDA0003644391910000063
中的元素,具体操作是
Figure GDA0003644391910000064
Figure GDA0003644391910000065
是模2凑整函数,如果x∈I0∪I1,则
Figure GDA0003644391910000066
否则,
Figure GDA0003644391910000067
Figure GDA0003644391910000068
定义调和函数rec:
Figure GDA0003644391910000069
Figure GDA00036443919100000610
对于奇数q,定义随机化函数dbl:
Figure GDA00036443919100000611
其中
Figure GDA00036443919100000612
是随机向量,并且分别以1/2,1/4,1/4的概率取0,1,-1。
Figure GDA00036443919100000613
是对于向量
Figure GDA00036443919100000614
用随机化函数作用于它的每个分量,然后用模2凑整函数作用,得到的向量。
2)计算
Figure GDA00036443919100000615
这一步中,φ是系数嵌入,它将多项式环R中的元素
Figure GDA00036443919100000616
映射为向量(a0,a1,...,an-1)。其实是将多项式的系数取出,按照顺序排成序列,作为一个系数向量。
Figure GDA00036443919100000617
是对于向量
Figure GDA00036443919100000618
用随机化函数作用于它的每个分量,然后用模2凑整函数作用,最后用系数嵌入,得到的向量,再和随机比特向量做水平方向连接,得到的新比特向量。
3)不妨设b′∈{0,1}k′;随机取b0,bi,jRRq,(i,j)∈[d]×[k′1/d],计算哈希函数
Figure GDA00036443919100000619
其中,
Figure GDA00036443919100000620
其中
Figure GDA0003644391910000071
是确定多项式时间算法,输入u∈Rq,输出
Figure GDA0003644391910000072
满足gbP=u;
这一步中,
Figure GDA0003644391910000073
是同态计算函数,其实是一种迭代算法:当d=1时,输出
Figure GDA0003644391910000074
当d=2,
Figure GDA0003644391910000075
其中
Figure GDA0003644391910000076
输入
Figure GDA0003644391910000077
输出向量α,该向量满足
Figure GDA0003644391910000078
所以,
Figure GDA0003644391910000079
其中向量α,该向量满足
Figure GDA00036443919100000710
依次类推,迭代计算这个同态计算函数。
(7)变色龙哈希函数
Figure GDA00036443919100000711
公布公钥
Figure GDA00036443919100000712
保密私钥
Figure GDA00036443919100000713
其中
Figure GDA00036443919100000714
是格
Figure GDA00036443919100000715
的陷门基;函数输入
Figure GDA00036443919100000716
输出
Figure GDA00036443919100000717
步骤解释:符号
Figure GDA00036443919100000718
表示一个映射,其将多项式a(x)∈R映射成
Figure GDA00036443919100000719
中的矩阵,第i行向量为
Figure GDA00036443919100000720
是用映射
Figure GDA00036443919100000721
作用于矩阵
Figure GDA00036443919100000722
的每个表元,实质是把每个表元多项式a(x)∈R映射成
Figure GDA00036443919100000723
中的矩阵,那么从整体上看,就是一个mn×mn阶矩阵。这一步中,先调用陷门基生成算法TrapGen生成格
Figure GDA00036443919100000724
的陷门基
Figure GDA00036443919100000725
是变色龙哈希函数的公钥,这是向量
Figure GDA00036443919100000726
和向量
Figure GDA00036443919100000727
的水平方向连接。
Figure GDA00036443919100000728
是变色龙哈希函数的私钥,具体是一个m×m阶矩阵,其中所有的表元取自多项式环Rq
Figure GDA00036443919100000729
变色龙哈希函数输入
Figure GDA00036443919100000730
计算
Figure GDA00036443919100000731
因为
Figure GDA00036443919100000732
Figure GDA00036443919100000733
中的m维向量,h是离散高斯分布
Figure GDA00036443919100000734
上抽样得到的m维向量,这里
Figure GDA00036443919100000735
的计算是将两个m维向量对应的分量(每个分量都是多项式环Rq中的一个多项式)相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作β。同理,因为
Figure GDA0003644391910000081
Figure GDA0003644391910000082
中的m维向量,s1是离散高斯分布上抽样得到的m维向量,这里
Figure GDA0003644391910000083
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作γ。最后计算β+γ。
(7)高级对称加密算法AES算法∑=(EK,DK);
这一步中,EK表示高级对称加密算法的加密部分,DK表示高级对称加密算法的解密部分。
S2、密钥生成KeyGen(1n,PP):输入安全参数n和系统生成的参数PP,输出签密方的公私钥、解签密方的公私钥。
S3、签密Signcrypt(msg∈{0,1}l,sks,pkr):输入要签密的消息msg、签密方的私钥sks、解签密方的公钥pkr,输出签密密文。
S4、解签密Unsigncrypt(C,skr,pks):输入密文、解签密方私钥skr、签密方的公钥pks,输出被签密的消息。
2、如权利要求1所述的后量子安全的签密算法,其特征在于:所述步骤S2中,运行陷门生成算法TrapGen生成签密方的公私钥对
Figure GDA0003644391910000084
生成解签密方的公私钥对
Figure GDA0003644391910000085
其中,
Figure GDA0003644391910000086
是格
Figure GDA0003644391910000087
的陷门基,
Figure GDA0003644391910000088
是格
Figure GDA0003644391910000089
的陷门基。
3、如权利要求1所述的后量子安全的签密算法,其特征在于:所述步骤S3中包括如下步骤:
a、计算
Figure GDA00036443919100000810
这一步,哈希函数输入消息msg、解签密方的公钥
Figure GDA0003644391910000091
输出服从离散高斯分布
Figure GDA0003644391910000092
的向量h。
b、随机选取
Figure GDA0003644391910000093
计算
Figure GDA0003644391910000094
调用算法
Figure GDA0003644391910000095
利用
Figure GDA0003644391910000096
计算出
Figure GDA0003644391910000097
的陷门基Tr∈R2m
这一步,
Figure GDA0003644391910000098
表示从长度为
Figure GDA0003644391910000099
的比特向量集合
Figure GDA00036443919100000910
上均匀抽样一个比特向量τ。τ[i]表示比特向量τ的第i个分量元素,
Figure GDA00036443919100000911
表示第i个分量元素τ[i]和向量
Figure GDA00036443919100000912
的每个分量相乘,得到的是
Figure GDA00036443919100000913
中一个元素,
Figure GDA00036443919100000914
表示将
Figure GDA00036443919100000915
个是
Figure GDA00036443919100000916
中的元素相加,得到仍是
Figure GDA00036443919100000917
中一个元素,再和发送方的公钥
Figure GDA00036443919100000918
水平方向连接。得到
Figure GDA00036443919100000919
中的一个元素。调用盆景树算法
Figure GDA00036443919100000920
输入模格
Figure GDA00036443919100000921
及其陷门基Tτ∈R2m,生成模格
Figure GDA00036443919100000922
的陷门基Tτ∈R2m
c、随机抽样
Figure GDA00036443919100000923
计算变色龙哈希函数值如下:
Figure GDA00036443919100000924
这个变色龙哈希函数值用来定义uM=u+d·bin(cM)∈Rq,其中
Figure GDA00036443919100000925
利用陷门基Tτ求解方程:
Figure GDA00036443919100000926
的短向量解
Figure GDA00036443919100000927
这一步实质是调用算法
Figure GDA00036443919100000928
输出向量
Figure GDA00036443919100000929
最后输出签名
Figure GDA00036443919100000930
这一步,在离散高斯分布
Figure GDA00036443919100000931
上抽样向量s1
Figure GDA00036443919100000932
是变色龙哈希函数的公钥,这是向量
Figure GDA00036443919100000933
和向量
Figure GDA00036443919100000934
的水平方向连接。
Figure GDA00036443919100000935
是变色龙哈希函数的私钥,具体是一个m×m阶矩阵,其中所有的表元取自多项式环Rq
Figure GDA00036443919100000936
变色龙哈希函数输入
Figure GDA00036443919100000937
计算
Figure GDA0003644391910000101
因为
Figure GDA0003644391910000102
Figure GDA0003644391910000103
中的m维向量,h是离散高斯分布
Figure GDA0003644391910000104
上抽样得到的m维向量,这里
Figure GDA0003644391910000105
的计算是将两个m维向量对应的分量(每个分量都是多项式环Rq中的一个多项式)相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作β。同理,因为
Figure GDA0003644391910000106
Figure GDA0003644391910000107
中的m维向量,s1是离散高斯分布上抽样得到的m维向量,这里
Figure GDA0003644391910000108
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作γ。最后计算β+γ。bin(cM)是将多项式cM的每个系数用二进制展开,得到长度为
Figure GDA0003644391910000109
的比特向量,因为d是
Figure GDA00036443919100001010
中的向量,可以看成是
Figure GDA00036443919100001011
维的向量,d·bin(cM)是将两个向量对应分量相乘,相乘的结果再相加,得到Rq中一个向量。
c、解析v为
Figure GDA00036443919100001012
随机选取s2RRq,抽样
Figure GDA00036443919100001013
随机取r2∈{0,1}l,设c0=H3(r2,v1),依次计算w=s2c0+e2∈Rq
Figure GDA00036443919100001014
Figure GDA00036443919100001015
这一步,因为v是
Figure GDA00036443919100001016
中的向量,
Figure GDA00036443919100001017
表示在水平方向上将向量v分割成两个
Figure GDA00036443919100001018
中的向量。c0=H3(r2,v1)表示哈希函数H3作用于比特向量r2和向量v1,得到c0。w=s2c0+e2表示将向量s2与向量c0相乘,相乘结果与噪声向量e2相加,得到Rq中一个向量。
Figure GDA00036443919100001019
表示随机化函数作用于向量w,得到向量
Figure GDA00036443919100001020
表示交错凑整函数作用于向量
Figure GDA00036443919100001021
得到信号向量c1
Figure GDA00036443919100001022
表示模2凑整函数作用于向量w,得到向量c2
(4)设
Figure GDA00036443919100001023
计算
Figure GDA00036443919100001024
这一步,c3=H1(c1,v2)表示哈希函数H1作用于信号向量c1和向量v2,得到向量c3
Figure GDA00036443919100001025
表示将向量
Figure GDA00036443919100001026
和向量c3在水平方向上连接组成向量E。
(5)抽样
Figure GDA0003644391910000111
计算
Figure GDA0003644391910000112
这一步,
Figure GDA0003644391910000113
表示从m维离散高斯分布
Figure GDA0003644391910000114
上分别抽样向量e3,1和e3,2,并将它们水平方向放置,组成向量e3。c4=s2E+e3:用向量s2分别乘以向量E的两个分量,得到的结果再和向量e3的分量对应相加,得到
Figure GDA0003644391910000115
中一个新向量。
(6)计算
Figure GDA0003644391910000116
最后,输出密文
C=(τ,c0,c1,c3,c4,c5)。
这一步,将H2(c2)作为AES加密算法的密钥,将消息msg、向量v2的系数嵌入得到的向量、向量s1系数嵌入得到的向量、比特向量r2水平方向连接构成的比特串作为AES算法的输入,AES算法输出比特串c5。将标签τ、向量c0、向量c1、向量c3、向量c4、向量c5组成签密密文。
4、如权利要求1所述的后量子安全的签密算法,其特征在于:所述步骤S4包括如下步骤:
(1)计算
Figure GDA0003644391910000117
这一步,
Figure GDA0003644391910000118
表示将向量
Figure GDA0003644391910000119
和向量c3在水平方向上连接组成向量E。
(7)抽样向量
Figure GDA00036443919100001110
其中矩阵
Figure GDA00036443919100001111
的每列向量服从分布
Figure GDA00036443919100001112
这一步,在
Figure GDA00036443919100001113
上的离散高斯分布上抽样向量
Figure GDA00036443919100001114
(8)利用
Figure GDA00036443919100001115
求出方程
Figure GDA00036443919100001116
的短向量解
Figure GDA00036443919100001117
这一步,
Figure GDA00036443919100001118
是先计算c3
Figure GDA00036443919100001119
的乘积,再用c0减去c3
Figure GDA00036443919100001120
的乘积,得到一个差值,记作
Figure GDA0003644391910000121
调用算法
Figure GDA0003644391910000122
输入模格
Figure GDA0003644391910000123
及其陷门基
Figure GDA0003644391910000124
求解满足条件
Figure GDA0003644391910000125
的解
Figure GDA0003644391910000126
(9)计算
Figure GDA0003644391910000127
这一步,
Figure GDA0003644391910000128
是将两个噪声向量
Figure GDA0003644391910000129
Figure GDA00036443919100001210
的竖直放置,用向量c4乘以噪声向量
Figure GDA00036443919100001211
得到向量w1
Figure GDA00036443919100001212
是用调和函数作用于向量w1和向量c1,恢复出
Figure GDA00036443919100001213
(10)计算
Figure GDA00036443919100001214
这一步,将
Figure GDA00036443919100001215
作为AES解密算法的密钥,输入c5,将输出结果在水平方向上进行分割,得到
Figure GDA00036443919100001216
(11)恢复
Figure GDA00036443919100001217
解析
Figure GDA00036443919100001218
验证下列条件:若
Figure GDA00036443919100001219
则输出错误符号⊥,否则,继续;若
Figure GDA00036443919100001220
则输出错误符号⊥,否则,继续;若
Figure GDA00036443919100001221
则输出错误符号⊥。否则,继续;
这一步,
Figure GDA00036443919100001222
是将系数嵌入反作用于
Figure GDA00036443919100001223
得到对应的多项式
Figure GDA00036443919100001224
是将
Figure GDA00036443919100001225
分割成两部分
Figure GDA00036443919100001226
Figure GDA00036443919100001227
(7)计算
Figure GDA00036443919100001228
建立
Figure GDA00036443919100001229
再验证下列两个条件是否成立:
Figure GDA00036443919100001230
若都成立,则输出消息
Figure GDA0003644391910000131
否则,输出错误符号⊥。
这一步,用哈希函数H1作用于解签密得到的信息
Figure GDA0003644391910000132
Figure GDA0003644391910000133
杂凑为
Figure GDA0003644391910000134
上的一个向量
Figure GDA0003644391910000135
因为
Figure GDA0003644391910000136
Figure GDA0003644391910000137
中的m维向量,h是离散高斯分布上抽样得到的m维向量,这里
Figure GDA0003644391910000138
的计算是将两个m维向量对应的分量(每个分量都是多项式环Rq中的一个多项式)相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作β。同理,因为
Figure GDA0003644391910000139
Figure GDA00036443919100001310
中的m维向量,s1是离散高斯分布上抽样得到的m维向量,这里
Figure GDA00036443919100001311
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作γ。最后计算β+γ。
与现有技术相比,本发明具有的优点和积极效果是:
本发明利用同态计算函数构造通用单向哈希函数,它的作用是将
Figure GDA00036443919100001312
中的元素映射为Rq中的向量,其本质上是采用划分(partitioning)技术;本发明在模格上构造变色龙哈希函数,它把
Figure GDA00036443919100001313
中元素杂凑为Rq中的向量,签密的CCA2安全性依赖于变色龙哈希函数的碰撞稳固性、变色龙特性和一致性。一般来说,实现适应性安全有两种思路:第一,使用对偶加密系统。目前还没有基于模格上的对偶加密系统。即使构造出对偶加密系统,其计算效率也很低。第二,使用划分(partitioning)技术。本技术发明采用划分的技术。有两种方法可以将非适应性安全的签名转化为适应性安全的签名:第一,使用一次签名技术。但是,基于格密码的一次签名是在随机预言机模型下构造的。随机预言机模型存在安全隐患。第二,使用变色龙哈希函数。本发明采用构造变色龙哈希函数方法。
此外,本发明引入封装的设计思想,结合划分技术、盆景树技术和调和技术实现CCA2安全性,利用封闭猜测(confined guessing)技术实现EUF-ACMA安全性。在计算和效率两方面取得平衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的流程示意图;
图2为公钥尺寸对比仿真示意图;
图3为私钥尺寸对比仿真示意图;
图4为密文开销对比仿真示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
如图1,图1为发明的流程示意图;本发明的后量子安全的签密算法,包括以下步骤:
S1、系统设置Setup(1n):设1n为安全参数,生成系统参数PP如下:
(1)奇素数q满足q≡3mod8,m=2κ,κ≥2,Φm(x)=xm/2+1是m阶分圆多项式,设
Figure GDA0003644391910000141
Figure GDA0003644391910000142
(2)随机选取
Figure GDA0003644391910000143
其中
Figure GDA0003644391910000144
随机选取u,d∈Rq;取
Figure GDA0003644391910000151
b=2,定义矩阵:
Figure GDA0003644391910000152
(3)H1
Figure GDA0003644391910000153
是通用单向哈希函数;
(4)H2:{0,1}*→{0,1}L是逐对独立哈希函数;
(5)H3
Figure GDA0003644391910000154
是通用单向哈希函数,具体构造如下:
Figure GDA0003644391910000155
Figure GDA0003644391910000156
1)计算
Figure GDA0003644391910000157
2)计算
Figure GDA0003644391910000158
不妨设b′∈{0,1}k′;随机取b0,bi,jRRq,(i,j)∈[d]×[k′1/d],计算哈希函数
Figure GDA0003644391910000159
其中,
Figure GDA00036443919100001510
其中
Figure GDA00036443919100001511
是确定多项式时间算法,输入u∈Rq,输出
Figure GDA00036443919100001512
满足gbP=u;
(6)变色龙哈希函数
Figure GDA00036443919100001513
公布公钥
Figure GDA00036443919100001514
保密私钥
Figure GDA00036443919100001515
其中
Figure GDA00036443919100001516
是格
Figure GDA00036443919100001517
的陷门基。函数输入
Figure GDA00036443919100001518
输出
Figure GDA00036443919100001519
(7)高级对称加密算法AES算法∑=(EK,DK)
S2、密钥生成KeyGen(1n,PP);
S3、签密Signcrypt(msg∈{0,1}l,sks,pkr);
S4、解签密Unsigncrypt(C,skr,pks)。
所述步骤S2中,运行TrapGen算法生成发送者的公私钥对
Figure GDA0003644391910000161
生成接收者的公私钥对
Figure GDA0003644391910000162
其中,
Figure GDA0003644391910000163
是格
Figure GDA0003644391910000164
的陷门基,
Figure GDA0003644391910000165
是格
Figure GDA0003644391910000166
的陷门基。
所述步骤S3中包括如下步骤:
a、计算
Figure GDA0003644391910000167
b、随机选取
Figure GDA0003644391910000168
计算
Figure GDA0003644391910000169
调用算法
Figure GDA00036443919100001610
利用
Figure GDA00036443919100001611
计算出
Figure GDA00036443919100001612
的陷门基Tτ∈R2m;其中,
Figure GDA00036443919100001613
是格
Figure GDA00036443919100001614
的陷门基;
c、随机抽样
Figure GDA00036443919100001615
计算变色龙哈希函数值如下:
Figure GDA00036443919100001616
这个变色龙哈希函数值用来定义uM=u+d·bin(cM)∈Rq,其中
Figure GDA00036443919100001617
利用陷门基Tτ求解方程:
Figure GDA00036443919100001618
的短向量解
Figure GDA00036443919100001619
这一步实质是调用算法
Figure GDA00036443919100001620
输出向量
Figure GDA00036443919100001621
最后输出签名
Figure GDA00036443919100001622
下面检验其三条性质:
碰撞稳固性:假设存在碰撞
Figure GDA0003644391910000171
则t=[h-h′,s1-s1′]≠0是
Figure GDA0003644391910000172
的解,并且
Figure GDA0003644391910000173
Figure GDA0003644391910000174
可解。假设错误,故
Figure GDA0003644391910000175
碰撞稳固。
陷门碰撞:输入
Figure GDA0003644391910000176
求解
Figure GDA0003644391910000177
使得
Figure GDA0003644391910000178
也就是求解短向量s1′满足方程
Figure GDA0003644391910000179
存在概率多项式时间算法输出陷门基
Figure GDA00036443919100001710
利用算法
Figure GDA00036443919100001711
求解短向量
Figure GDA00036443919100001712
一致性:因为
Figure GDA00036443919100001713
可得
Figure GDA00036443919100001714
的分布与R上均匀分布统计接近。另一方面,因为
Figure GDA00036443919100001715
可得
Figure GDA00036443919100001716
的分布与R上均匀分布统计接近。可得
Figure GDA00036443919100001717
的输出分布与R上均匀分布统计接近。
d、解析v为
Figure GDA00036443919100001718
随机选取s2RRq,抽样
Figure GDA00036443919100001719
随机取r2∈{0,1}l,设c0=H3(r2,v1),依次计算w=s2c0+e2∈Rq
Figure GDA00036443919100001720
Figure GDA00036443919100001721
(1)设
Figure GDA00036443919100001722
计算
Figure GDA00036443919100001723
(2)抽样
Figure GDA00036443919100001724
计算
Figure GDA00036443919100001725
(3)计算
Figure GDA00036443919100001726
最后,输出密文C=(τ,c0,c1,c3,c4,c5)。
作为对上述技术方案的改进,所述步骤S4包括如下步骤:
(1)计算
Figure GDA0003644391910000181
(2)抽样向量
Figure GDA0003644391910000182
其中矩阵
Figure GDA0003644391910000183
的每列向量服从分布
Figure GDA0003644391910000184
(1)利用
Figure GDA0003644391910000185
求出方程
Figure GDA0003644391910000186
的短向量解
Figure GDA0003644391910000187
(2)计算
Figure GDA0003644391910000188
(3)计算
Figure GDA0003644391910000189
(4)恢复
Figure GDA00036443919100001810
解析
Figure GDA00036443919100001811
验证下列条件:若
Figure GDA00036443919100001812
则输出错误符号⊥,否则,继续;若
Figure GDA00036443919100001813
则输出错误符号⊥,否则,继续;若
Figure GDA00036443919100001814
则输出错误符号⊥。否则,继续;
(5)计算
Figure GDA00036443919100001815
建立
Figure GDA00036443919100001816
再验证下列两个条件是否成立:
Figure GDA00036443919100001817
若都成立,则输出消息
Figure GDA00036443919100001818
否则,输出错误符号⊥。
正确性分析
Figure GDA00036443919100001819
时,接收者能够以压倒性的概率正确解签密。
证明
观察发现
Figure GDA0003644391910000191
经计算,得到
Figure GDA0003644391910000192
不妨设
Figure GDA0003644391910000193
Figure GDA0003644391910000194
中选取的随机噪声,则有
Figure GDA0003644391910000195
Figure GDA0003644391910000196
Figure GDA0003644391910000197
接收者能够以压倒性的概率正确解签密。
性能分析
下面从四个方面进行性能分析:公钥尺寸、私钥尺寸、密文开销、算法运行时间。设所有哈希函数的输出都是128比特。随机数长度是128比特。
(1)计算开销
用th表示哈希函数运行时间,td表示矩阵乘法时间,tp表示多项式乘法时间,tg表示高斯抽样时间。我们在64位Windows 10Thinkpad X1笔记本和64位Ubuntu 14.4LTSThink Center台式机上使用C/C++PBC库实现了这些加密操作,见Table 1。
Table 1.Time For Cryptography Operation
Cryptography Operation Time
t<sub>h</sub> 0.3ms
t<sub>d</sub> 0.27ms
t<sub>p</sub> 0.44ms
中<sub>g</sub> 0.52ms
Table 2显示了当设置相同的参数n=256,m=512,q=4093时,我们的签密算法与其它基于格密码的签密算法的运行时间对比。
Table 2.Comparison Of Execution Time
KeyGen Signcryption Unsigncryption
[10] 670ms 2212ms 2228ms
[12] 115343ms 69369ms 356515ms
[13] 533ms 912ms 988ms
[20] 808ms 2153ms 1570ms
[21] 624ms 1842ms 622ms
[22] 399ms 757ms 450ms
[23] 604ms 677ms 677ms
Ours 266ms 644ms 716ms
(2)通信开销
在Table 3中,q表示模数,n表示格的维数。公钥尺寸是关于q和n的一个函数。在Table 4中,密文开销是关于q和n的一个函数。对Table 3和Table4中q和n进行具体赋值:q=277063,n=540,可以计算出具体的公钥尺寸、私钥尺寸和密文开销。
Tahle 3.Comparison Of PK/SK Sizes
Figure GDA0003644391910000211
Table4.Comparison Of Ciphertext Overhead
Ciphertext Overhead
[6] n+6n log<sup>2</sup>q
[8] n(6n log<sup>2</sup>q+1)log q
[10] n(3log q+2log 2q+3)log q
[12] 2n(n+5)log<sup>2</sup>q
[13] 24n log<sup>2</sup>q
[20] n+(128+3n+6log(2n log q log n))n log q
121] 256+2n<sup>2</sup>(1+log q)log q
122] 128+2n<sup>2</sup>+4n<sup>2</sup>log<sup>2</sup>q
[23] 796+36n<sup>2</sup>log<sup>3</sup>q
Ours 2n+n(1+3log q)log q
为了更直观地看出效能,我们设置模数q=277063,取不同的维数n。通过仿真,在图2、图3、图4中可以得到几个签密算法(YWL方案、SS方案、GM方案、LHY方案、ZXX方案)的性能对比。图2中,横坐标表示格的维数,纵坐标表示公钥尺寸(单位是KB)。图3中,横坐标表示格的维数,纵坐标表示私钥尺寸(单位是KB)。图4中,横坐标表示格的维数,纵坐标表示密文开销(单位是KB)。从三个图中不难看出我们的签密算法公钥尺寸、私钥尺寸和密文开销低于现有的基于格密码构造的签密。
本发明利用同态计算函数构造通用单向哈希函数,它的作用是将
Figure GDA0003644391910000221
中的元素映射为Rq中的向量。其本质上是采用划分(partitioning)技术;本发明在模格上构造变色龙哈希函数,它把
Figure GDA0003644391910000222
中元素杂凑为Rq中的向量,签密的CCA2安全性依赖于变色龙哈希函数的碰撞稳固性、变色龙特性和一致性。一般来说,实现适应性安全有两种思路:第一,使用对偶加密系统。目前还没有基于模格上的对偶加密系统。即使构造出对偶加密系统,其计算效率也很低。第二,使用划分(partitioning)技术。
本技术发明采用划分的技术。有两种方法可以将非适应性安全的签名转化为适应性安全的签名:第一,使用一次签名技术。但是,基于格密码的一次签名是在随机预言机模型下构造的。随机预言机模型存在安全隐患。第二,使用变色龙哈希函数。本发明采用构造变色龙哈希函数方法。此外,本发明引入封装的设计思想,结合划分技术、盆景树技术和调和技术实现CCA2安全性,利用封闭猜测(confined guessing)技术实现EUF-ACMA安全性。在计算和效率两方面取得平衡。

Claims (5)

1.一种后量子安全的签密算法,其特征在于:包括以下步骤:
S1、系统设置Setup(1n):设1n为安全参数,生成系统参数PP如下:
(1)奇素数q满足q≡3mod8,m=2k,κ≥2,Φm(x)=xm/2+1是m阶分圆多项式,设
Figure FDA0003644391900000011
Figure FDA0003644391900000012
其中,
Figure FDA0003644391900000013
是整数集合,
Figure FDA0003644391900000014
是变量为x且系数取自
Figure FDA0003644391900000015
的多项式环;
Figure FDA0003644391900000016
是模m阶分圆多项式Φm(x)=xm/2+1生成的整系数多项式环;
Figure FDA0003644391900000017
是模m阶分圆多项式和模q生成的多项式环;
对于向量
Figure FDA0003644391900000018
Figure FDA0003644391900000019
表示一种代数结构,称为模格;其中*是一种特殊乘法运算,具体运算如下:
Figure FDA00036443919000000110
(2)随机选取
Figure FDA00036443919000000111
其中l=O(n),随机选取u,d∈Rq;取
Figure FDA00036443919000000112
b=2,定义矩阵
Figure FDA00036443919000000113
其中,
Figure FDA00036443919000000114
是一种代数结构,它包含的元素是向量,向量的维数是m,向量的每个分量取自多项式环Rq
Figure FDA00036443919000000115
也是一种代数结构,它包含的元素是向量,向量的维数是
Figure FDA00036443919000000116
向量的每个分量取自多项式环Rq;在
Figure FDA00036443919000000117
中选取3+l个向量
Figure FDA00036443919000000118
从多项式环中取出的多项式u;从
Figure FDA00036443919000000119
中取出的向量d,它的每个分量是Rq中的元素;gb=[1|b|…|bm-1]是一个m维向量,分量依次为1,b,…,bm-1
Figure FDA00036443919000000120
表示行数为n,列数为
Figure FDA00036443919000000121
主对角线上元素为gb的一个矩阵;在这里,我们设置b=2;
(3)
Figure FDA0003644391900000021
是通用单向哈希函数;
ρs(x)=exp(-π||x||2/s2)表示标准n维高斯分布,中心为0,方差为s;对于模格L,s>0,模格上离散高斯分布表示为
Figure FDA0003644391900000022
对于关于变量x的多项式环R,
Figure FDA0003644391900000023
表示多项式
Figure FDA0003644391900000024
的分布,其中系数向量(a0,a1,...,an-1)服从离散高斯分布DL,s抽样;
Figure FDA0003644391900000025
表示m维向量,其每个分量服从分布
Figure FDA0003644391900000026
{0,1}*表示任意长度的比特向量的集合;该通用单向哈希函数是将任意长度比特向量和一个中的向量杂凑,生成
Figure FDA0003644391900000027
中一个向量,这个向量的每个分量服从离散高斯分布
Figure FDA0003644391900000028
(4)H2:{0,1}*→{0,1}L是逐对独立哈希函数;
其中,H2:{0,1}*→{0,1}l是一种哈希函数,输入任意长度比特向量,输出长度为l的比特向量;
(5)
Figure FDA0003644391900000029
是通用单向哈希函数,具体构造如下:
Figure FDA00036443919000000210
Figure FDA00036443919000000211
1)计算
Figure FDA00036443919000000212
<·>2q,2是交错凑整函数,把
Figure FDA00036443919000000213
上的元素作用到
Figure FDA00036443919000000214
中的元素,具体操作是
Figure FDA00036443919000000215
Figure FDA00036443919000000216
是模2凑整函数,如果x∈I0∪I1,则
Figure FDA00036443919000000217
否则,
Figure FDA00036443919000000218
Figure FDA00036443919000000219
定义调和函数
Figure FDA00036443919000000220
Figure FDA0003644391900000031
对于奇数q,定义随机化函数
Figure FDA0003644391900000032
其中
Figure FDA0003644391900000033
是随机向量,并且分别以1/2,1/4,1/4的概率取0,1,-1;
Figure FDA0003644391900000034
是对于向量
Figure FDA0003644391900000035
用随机化函数作用于它的每个分量,然后用模2凑整函数作用,得到的向量;
2)计算
Figure FDA0003644391900000036
φ是系数嵌入,它将多项式环R中的元素
Figure FDA0003644391900000037
映射为向量(a0,a1,...,an-1);其实是将多项式的系数取出,按照顺序排成序列,作为一个系数向量;
Figure FDA0003644391900000038
是对于向量
Figure FDA0003644391900000039
用随机化函数作用于它的每个分量,然后用模2凑整函数作用,最后用系数嵌入,得到的向量,再和随机比特向量做水平方向连接,得到的新比特向量;
3)不妨设b′∈{0,1}k′;随机取b0,bi,jR Rq,(i,j)∈[d]×[k′1/d],计算哈希函数
Figure FDA00036443919000000310
其中,
Figure FDA00036443919000000311
Figure FDA00036443919000000312
是确定多项式时间算法,输入u∈Rq,输出
Figure FDA00036443919000000313
满足gbP=u;
Figure FDA00036443919000000314
是同态计算函数,其实是一种迭代算法:当d=1时,输出
Figure FDA00036443919000000315
当d=2,
Figure FDA00036443919000000316
其中
Figure FDA00036443919000000317
输入
Figure FDA00036443919000000318
输出向量α,该向量满足
Figure FDA00036443919000000319
所以,
Figure FDA00036443919000000320
其中向量α,该向量满足
Figure FDA00036443919000000321
依次类推,迭代计算这个同态计算函数;
(6)变色龙哈希函数
Figure FDA00036443919000000322
公布公钥
Figure FDA00036443919000000323
保密私钥
Figure FDA00036443919000000324
其中
Figure FDA00036443919000000325
是格
Figure FDA00036443919000000326
的陷门基;函数输入
Figure FDA0003644391900000041
输出
Figure FDA0003644391900000042
符号
Figure FDA0003644391900000043
表示一个映射,其将多项式a(x)∈R映射成
Figure FDA0003644391900000044
中的矩阵,第i行向量为
Figure FDA0003644391900000045
是用映射
Figure FDA0003644391900000046
作用于矩阵
Figure FDA0003644391900000047
的每个表元,实质是把每个表元多项式a(x)∈R映射成
Figure FDA0003644391900000048
中的矩阵,那么从整体上看,就是一个mn×mn阶矩阵;这一步中,先调用陷门基生成算法TrapGen生成格
Figure FDA0003644391900000049
的陷门基
Figure FDA00036443919000000410
Figure FDA00036443919000000411
是变色龙哈希函数的公钥,这是向量
Figure FDA00036443919000000412
和向量
Figure FDA00036443919000000413
的水平方向连接;
Figure FDA00036443919000000414
是变色龙哈希函数的私钥,具体是一个m×m阶矩阵,其中所有的表元取自多项式环Rq
Figure FDA00036443919000000415
变色龙哈希函数输入
Figure FDA00036443919000000416
计算
Figure FDA00036443919000000417
因为
Figure FDA00036443919000000418
Figure FDA00036443919000000419
中的m维向量,h是离散高斯分布
Figure FDA00036443919000000420
上抽样得到的m维向量,这里
Figure FDA00036443919000000421
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作β;同理,因为
Figure FDA00036443919000000422
Figure FDA00036443919000000423
中的m维向量,s1是离散高斯分布上抽样得到的m维向量,这里
Figure FDA00036443919000000424
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作γ;最后计算β+γ;
(7)高级对称加密算法AES算法∑=(EK,DK)
EK表示高级对称加密算法的加密部分,DK表示高级对称加密算法的解密部分;
S2、密钥生成KeyGen(1n,PP);
输入安全参数n和系统生成的参数PP,输出签密方的公私钥、解签密方的公私钥;
S3、签密Signcrypt(msg∈{0,1}l,sks,pkr);
输入要签密的消息msg、签密方的私钥sks、解签密方的公钥pkr,输出签密密文;
S4、解签密Unsigncrypt(C,skr,pks);
输入密文、解签密方私钥skr、签密方的公钥pks,输出被签密的消息。
2.如权利要求1所述的后量子安全的签密算法,其特征在于:
Figure FDA0003644391900000051
表示不超过logq的最大整数。
3.如权利要求1所述的后量子安全的签密算法,其特征在于:所述步骤S2中,运行陷门生成算法TrapGen生成签密方的公私钥对
Figure FDA0003644391900000052
生成解签密方的公私钥对
Figure FDA0003644391900000053
其中,
Figure FDA0003644391900000054
是格
Figure FDA0003644391900000055
的陷门基,
Figure FDA0003644391900000056
是格
Figure FDA0003644391900000057
的陷门基。
4.如权利要求1所述的后量子安全的签密算法,其特征在于:所述步骤S3中包括如下步骤:
a、计算
Figure FDA0003644391900000058
其中,哈希函数输入消息msg、解签密方的公钥
Figure FDA0003644391900000059
输出服从离散高斯分布
Figure FDA00036443919000000510
的向量h;
b、随机选取τ←U({0,1}l),计算
Figure FDA00036443919000000511
调用算法
Figure FDA00036443919000000512
利用
Figure FDA00036443919000000513
计算出
Figure FDA00036443919000000514
的陷门基Tτ∈R2m
其中,τ←U({0,1}l)表示从长度为l的比特向量集合{0,1}l上均匀抽样一个比特向量τ;τ[i]表示比特向量τ的第i个分量元素,
Figure FDA00036443919000000515
表示第i个分量元素τ[i]和向量
Figure FDA0003644391900000061
的每个分量相乘,得到的是
Figure FDA0003644391900000062
中一个元素,
Figure FDA0003644391900000063
表示将l个是
Figure FDA0003644391900000064
中的元素相加,得到仍是
Figure FDA0003644391900000065
中一个元素,再和发送方的公钥
Figure FDA0003644391900000066
水平方向连接;得到
Figure FDA0003644391900000067
中的一个元素;调用盆景树算法
Figure FDA0003644391900000068
输入模格
Figure FDA0003644391900000069
及其陷门基Tr∈R2m,生成模格
Figure FDA00036443919000000610
的陷门基Tτ∈R2m
c、随机抽样
Figure FDA00036443919000000611
计算变色龙哈希函数值如下:
Figure FDA00036443919000000612
这个变色龙哈希函数值用来定义uM=u+d·bin(cM)∈Rq,其中
Figure FDA00036443919000000613
利用陷门基Tτ求解方程:
Figure FDA00036443919000000614
的短向量解
Figure FDA00036443919000000615
这一步实质是调用算法
Figure FDA00036443919000000616
输出向量
Figure FDA00036443919000000617
最后输出签名;
Figure FDA00036443919000000618
其中,在离散高斯分布
Figure FDA00036443919000000619
上抽样向量s1
Figure FDA00036443919000000620
是变色龙哈希函数的公钥,这是向量
Figure FDA00036443919000000621
和向量
Figure FDA00036443919000000622
的水平方向连接;
Figure FDA00036443919000000623
是变色龙哈希函数的私钥,具体是一个m×m阶矩阵,其中所有的表元取自多项式环Rq
Figure FDA00036443919000000624
变色龙哈希函数输入
Figure FDA00036443919000000625
计算
Figure FDA00036443919000000626
因为
Figure FDA00036443919000000627
Figure FDA00036443919000000628
中的m维向量,h是离散高斯分布
Figure FDA00036443919000000629
上抽样得到的m维向量,这里
Figure FDA00036443919000000630
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,每个分量都是多项式环Rq中的一个多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作β;同理,因为
Figure FDA00036443919000000631
Figure FDA00036443919000000632
中的m维向量,s1是离散高斯分布上抽样得到的m维向量,这里
Figure FDA00036443919000000633
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作γ;最后计算β+γ;bin(cM)是将多项式cM的每个系数用二进制展开,得到长度为
Figure FDA0003644391900000071
的比特向量,因为d是
Figure FDA0003644391900000072
中的向量,可以看成是
Figure FDA0003644391900000073
维的向量,d·bin(cM)是将两个向量对应分量相乘,相乘的结果再相加,得到Rq中一个向量;
d、解析v为
Figure FDA0003644391900000074
随机选取s2R Rq,抽样
Figure FDA0003644391900000075
随机取r2∈{0,1}l,设c0=H3(r2,v1),依次计算w=s2c0+e2∈Rq
Figure FDA0003644391900000076
Figure FDA0003644391900000077
因为v是
Figure FDA0003644391900000078
中的向量,
Figure FDA0003644391900000079
表示在水平方向上将向量v分割成两个
Figure FDA00036443919000000710
中的向量;c0=H3(r2,v1)表示哈希函数H3作用于比特向量r2和向量v1,得到c0;w=s2c0+e2表示将向量s2与向量c0相乘,相乘结果与噪声向量e2相加,得到Rq中一个向量;
Figure FDA00036443919000000711
表示随机化函数作用于向量w,得到向量
Figure FDA00036443919000000712
Figure FDA00036443919000000713
表示交错凑整函数作用于向量
Figure FDA00036443919000000714
得到信号向量c1
Figure FDA00036443919000000715
表示模2凑整函数作用于向量w,得到向量c2
(1)设
Figure FDA00036443919000000716
计算
Figure FDA00036443919000000717
c3=H1(c1,v2)表示哈希函数H1作用于信号向量c1和向量v2,得到向量c3
Figure FDA00036443919000000718
表示将向量
Figure FDA00036443919000000719
和向量c3在水平方向上连接组成向量E;
(2)抽样
Figure FDA00036443919000000720
计算
Figure FDA00036443919000000721
Figure FDA00036443919000000722
表示从m维离散高斯分布
Figure FDA00036443919000000723
上分别抽样向量e3,1和e3,2,并将它们水平方向放置,组成向量e3;c4=s2E+e3:用向量s2分别乘以向量E的两个分量,得到的结果再和向量e3的分量对应相加,得到
Figure FDA00036443919000000724
中一个新向量;
(3)计算
Figure FDA0003644391900000081
最后,输出密文C=(τ,c0,c1,c3,c4,c5);
将H2(c2)作为AES加密算法的密钥,将消息msg、向量v2的系数嵌入得到的向量、向量s1系数嵌入得到的向量、比特向量r2水平方向连接构成的比特串作为AES算法的输入,AES算法输出比特串c5;将标签τ、向量c0、向量c1、向量c3、向量c4、向量c5组成签密密文。
5.如权利要求1所述的后量子安全的签密算法,其特征在于:所述步骤S4包括如下步骤:
(1)计算
Figure FDA0003644391900000082
其中,
Figure FDA0003644391900000083
表示将向量
Figure FDA0003644391900000084
和向量c3在水平方向上连接组成向量E;
(1)抽样向量
Figure FDA0003644391900000085
其中矩阵
Figure FDA0003644391900000086
的每列向量服从分布
Figure FDA0003644391900000087
Figure FDA0003644391900000088
上的离散高斯分布上抽样向量
Figure FDA0003644391900000089
(2)利用
Figure FDA00036443919000000810
求出方程
Figure FDA00036443919000000811
的短向量解
Figure FDA00036443919000000812
Figure FDA00036443919000000813
是先计算c3
Figure FDA00036443919000000814
的乘积,再用c0减去c3
Figure FDA00036443919000000815
的乘积,得到一个差值,记作
Figure FDA00036443919000000816
调用算法
Figure FDA00036443919000000817
输入模格
Figure FDA00036443919000000818
及其陷门基
Figure FDA00036443919000000819
求解满足条件
Figure FDA00036443919000000820
的解
Figure FDA00036443919000000821
(3)计算
Figure FDA00036443919000000822
Figure FDA00036443919000000823
是将两个噪声向量
Figure FDA00036443919000000824
Figure FDA00036443919000000825
的竖直放置,用向量c4乘以噪声向量
Figure FDA0003644391900000091
得到向量w1
Figure FDA0003644391900000092
是用调和函数作用于向量w1和向量c1,恢复出
Figure FDA0003644391900000093
(4)计算
Figure FDA0003644391900000094
Figure FDA0003644391900000095
作为AES解密算法的密钥,输入c5,将输出结果在水平方向上进行分割,得到
Figure FDA0003644391900000096
(5)恢复
Figure FDA0003644391900000097
解析
Figure FDA0003644391900000098
验证下列条件:若
Figure FDA0003644391900000099
则输出错误符号⊥,否则,继续;若
Figure FDA00036443919000000910
则输出错误符号⊥,否则,继续;若
Figure FDA00036443919000000911
则输出错误符号⊥;否则,继续;
Figure FDA00036443919000000912
是将系数嵌入反作用于
Figure FDA00036443919000000913
得到对应的多项式
Figure FDA00036443919000000914
Figure FDA00036443919000000915
是将
Figure FDA00036443919000000916
分割成两部分
Figure FDA00036443919000000917
Figure FDA00036443919000000918
(7)计算
Figure FDA00036443919000000919
建立
Figure FDA00036443919000000920
再验证下列两个条件是否成立:
Figure FDA00036443919000000921
若都成立,则输出消息
Figure FDA00036443919000000922
否则,输出错误符号⊥;
用哈希函数H1作用于解签密得到的信息
Figure FDA00036443919000000923
Figure FDA00036443919000000924
杂凑为
Figure FDA00036443919000000925
上的一个向量
Figure FDA00036443919000000926
因为
Figure FDA00036443919000000927
Figure FDA00036443919000000928
中的m维向量,h是离散高斯分布上抽样得到的m维向量,这里
Figure FDA00036443919000000929
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,每个分量都是多项式环Rq中的一个多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作β;同理,因为
Figure FDA0003644391900000101
Figure FDA0003644391900000102
中的m维向量,s1是离散高斯分布上抽样得到的m维向量,这里
Figure FDA0003644391900000103
的计算是将两个m维向量对应的分量相乘得到m个多项式环Rq中的多项式,然后把这m个多项式环Rq中的多项式相加,得到多项式环Rq中的一个多项式,记作γ;最后计算β+γ。
CN201910907793.8A 2019-09-24 2019-09-24 一种后量子安全的签密算法 Active CN111817853B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910907793.8A CN111817853B (zh) 2019-09-24 2019-09-24 一种后量子安全的签密算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910907793.8A CN111817853B (zh) 2019-09-24 2019-09-24 一种后量子安全的签密算法

Publications (2)

Publication Number Publication Date
CN111817853A CN111817853A (zh) 2020-10-23
CN111817853B true CN111817853B (zh) 2022-06-24

Family

ID=72844056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910907793.8A Active CN111817853B (zh) 2019-09-24 2019-09-24 一种后量子安全的签密算法

Country Status (1)

Country Link
CN (1) CN111817853B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259107B (zh) * 2021-06-22 2022-06-21 西安工程大学 一种基于格的双模式加密方法
CN116938454B (zh) * 2023-09-15 2024-01-23 浪潮(北京)电子信息产业有限公司 一种密钥处理方法、设备、介质及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003013052A1 (en) * 2001-07-27 2003-02-13 Korea Advanced Institute Of Science And Technology Cryptosystems based on non-commutatity
CN104038347B (zh) * 2014-06-30 2017-09-05 西安电子科技大学 基于高斯抽样的签名验证方法

Also Published As

Publication number Publication date
CN111817853A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
Perlner et al. Quantum resistant public key cryptography: a survey
EP3566385B1 (en) Homomorphic white box system and method for using same
CN101099329B (zh) 基于椭圆曲线的新陷门单向函数及其用于较短签名和非对称加密的应用
AU2004218638B2 (en) Use of isogenies for design of cryptosystems
Almajed et al. SE-ENC: A secure and efficient encoding scheme using elliptic curve cryptography
Iyer et al. A novel idea on multimedia encryption using hybrid crypto approach
US20070214361A1 (en) Device, System and Method for Fast Secure Message Encryption Without Key Distribution
CN115102688B (zh) 数据处理方法、多项式计算方法及电子设备
Singh et al. Generalisations of NTRU cryptosystem
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
CN110851845A (zh) 一种轻量级单用户多数据的全同态数据封装方法
Gabidulin Attacks and counter-attacks on the GPT public key cryptosystem
CN111817853B (zh) 一种后量子安全的签密算法
Das et al. An efficient method for text encryption using elliptic curve cryptography
Mostafaa et al. Lightweight hybrid encryption system with FPGA design proposal
CN110460442B (zh) 一种基于格的密钥封装方法
US20060251248A1 (en) Public key cryptographic methods and systems with preprocessing
Si et al. An improved RSA signature algorithm based on complex numeric operation function
Sensarma et al. Application of graphs in security
Chunsheng Cryptanalysis of the Smart-Vercauteren and Gentry-Halevi’s fully homomorphic encryption
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
Bhatia et al. Post-Quantum Cryptography
Fu et al. An efficient implementation of RSA digital signature algorithm
CN113094721A (zh) 一种基于模上错误学习的后量子口令认证密钥交换方法
Yadav et al. Key Cryptographic Methods in the Cloud: A Comparative Study

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