Dilithium算法的实现方法和装置制造方法及图纸

技术编号:28722324 阅读:77 留言:0更新日期:2021-06-06 04:22
本发明专利技术揭示了一种Dilithium算法的实现方法和装置,该方法包括:选择Dilithium算法的参数,所述参数包括n、c、k、l、d、ω、η、β、q、γ1、γ2,其中,n=256,c=60,k=5,l=4,d=14,ω=96,η=3,β=175,q为22比特的素数且q=1mod 512;γ1是满足[log2(2(γ

【技术实现步骤摘要】
Dilithium算法的实现方法和装置


[0001]本专利技术涉及到数据签名领域,特别是涉及到一种Dilithium算法的实现方法和装置。

技术介绍

[0002]随着量子计算机的发展,传统的数字签名算法如非对称加密算法RSA、基于椭圆曲线数字签名算法ECDSA等面临被破解的风险。Dilithium是一种基于模格的数字签名算法,该算法涉及多个参数,参数的不同选择将对算法的安全性和相关效率有较大影响;现有技术中一般采用随机选择参数的方法,难以确保Dilithium算法的高效性和安全性,虽然现有技术中也有推荐的128量子比特安全的参数,其仍然存在上述问题。

技术实现思路

[0003]鉴于上述问题,本专利技术提出了一种Dilithium算法的实现方法和装置以便提供克服上述问题或者至少部分地解决上述问题。
[0004]为了实现上述专利技术目的,本专利技术提出一种Dilithium算法的实现方法,包括:
[0005]选择Dilithium算法的参数,所述参数包括n、c、k、l、d、ω、η、β、q、γ1、γ2,其中,n=256,c=60,k=5,l=4,d=14,ω=96,η=3,β=175,q为22比特的素数且q=1 mod 512;γ1满足γ2是大于245760且整除(q-1)的整数;
[0006]依据所述参数和所述Dilithium算法生成签名密钥对,以及对消息M进行签名。
[0007]可选地,所述q=2101249,所述γ1=131072,所述γ2=262656;或者,所述q=3072001,所述γ1=131072,所述γ2=256000;或者,所述q=3686401,所述γ1=131072,所述γ2=245760;或者,所述q=3870721,所述γ1=131072,所述γ2=258048。
[0008]可选地,所述方法还包括:
[0009]对接收的消息M和签名进行验签,所述签名采用以上任一示例所述的Dilithium算法的实现方法进行签名。
[0010]可选地,所述依据所述参数和所述Dilithium算法生成签名密钥对,以及对消息M进行签名的步骤,包括:
[0011]计算ρ

{0,1}
256

[0012]计算K

{0,1}
256

[0013]计算
[0014]计算
[0015]计算t:=As1+s2;
[0016]计算(t1,t0):=Power2Round
q
(t,d);
[0017]计算tr∈{0,1}
384
:=CRH(ρ||t1);
[0018]返回(pk=(ρ,t1),sk=(ρ,K,tr,s1,s2,t0));其中,pk为私钥,sk为公钥;
[0019]计算
[0020]计算μ∈{0,1}
384
:=CRH(tr||M);
[0021]计算k:=0,(z,h):=


[0022]计算ρ

∈{0,1}
384
:=CHR(K||μ),或者,ρ
′←
{0,1}
384
的随机签名;
[0023]当(z,h)=

时;循环执行如下过程:
[0024]计算
[0025]计算w:=Ay;
[0026]计算w1:=HighBits
q
(w,2γ2);
[0027]计算c∈B
60
:=H(μ||w1);
[0028]计算z:=y+cs1;
[0029]计算(r1,r0):=Decompose
q
(w-cs2,2γ2);
[0030]如果满足||z||

≥γ
1-β,或者满足||r0||

≥γ
2-β,或者满足r1≠w1,则计算(z,h):=

;否则,计算h:=MakeHint
q
(-ct0,w-cs2+ct0,2γ2);
[0031]如果满足||ct0||

≥γ2,或者h中比特1的个数大于ω,则计算(z,h):=

和k:=k+1;
[0032]返回σ=(z,h,c);其中,σ为数字签名结果。
[0033]可选地,所述依据所述参数和所述Dilithium算法生成签名密钥对,以及对消息M进行签名的步骤,包括:
[0034]计算ρ

{0,1}
256

[0035]计算K

{0,1}
256

[0036]计算
[0037]计算
[0038]计算t:=As1+s2;
[0039]计算(t1,t0):=Power2Round
q
(t,d);
[0040]返回(pk=(ρ,t1),sk=(ρ,K,s1,s2));其中,pk为私钥,sk为公钥;
[0041]计算
[0042]计算t:=As1+s2;
[0043]计算(t1,t0):=Power2Round
q
(t,d);
[0044]计算tr∈{0,1}
384
:=CRH(ρ||t1);
[0045]计算μ∈{0,1}
384
:=CRH(tr||M);
[0046]计算k:=0,(z,h):=


[0047]计算ρ

∈{0,1}
384
:=CHR(K||μ),或者,ρ
′←
{0,1}
384
的随机签名;
[0048]当(z,h)=

时;循环执行如下过程:
[0049]计算
[0050]计算w:=Ay;
[0051]计算w1:=HighBits
q
(w,2γ2);
[0052]计算c∈B
60
:=H(μ||w1);
[0053]计算z:=y+cs1;
[0054]计算(r1,r0):=Decompose
q
(w-cs2,2γ2);
[0055]如果满足||z||

≥γ
1-β,或者满足||r0||

≥γ
2-β,或者满足r1≠w1,则计算(z,h):=

;否则,计算h:=MakeHint
q
(-ct0,w-cs2+ct0,2γ2);
[0056]如果满足||ct0||

≥γ2,或者h中比特1的个数大于ω,则计算(z,h):=

和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Dilithium算法的实现方法,其特征在于,包括:选择Dilithium算法的参数,所述参数包括n、c、k、d、ω、η、β、q、γ1、γ2,其中,n=256,c=60,k=5,d=14,ω=96,η=3,β=175,q为22比特的素数且q=1 mod 512;γ1满足γ2是大于245760且整除(q-1)的整数;依据所述参数和所述Dilithium算法生成签名密钥对,以及对消息M进行签名。2.根据权利要求1所述的Dilithium算法的实现方法,其特征在于,所述q=2101249,所述γ1=131072,所述γ2=262656;或者,所述q=3072001,所述γ1=131072,所述γ2=256000;或者,所述q=3686401,所述γ1=131072,所述γ2=245760;或者,所述q=3870721,所述γ1=131072,所述γ2=258048。3.根据权利要求1或2所述的Dilithium算法的实现方法,其特征在于,所述方法还包括:对接收的消息M和签名进行验签,所述签名采用如权利要求1或2所述的Dilithium算法的实现方法进行签名。4.根据权利要求3所述的Dilithium算法的实现方法,其特征在于,所述依据所述参数和所述Dilithium算法生成签名密钥对,以及对消息M进行签名的步骤,包括使用多项式商环R=Z
q
[X]/(X
n
+1);并执行如下步骤:计算ρ

{0,1}
256
;计算K

{0,1}
256
;计算计算计算t:=As1+s2;计算(t1,t0):=Power2Round
q
(t,d);计算tr∈{0,1}
384
:=CRH(ρ||t1);返回(pk=(ρ,t1),sk=(ρ,K,tr,s1,s2,t0));其中,pk为私钥,sk为公钥;计算计算μ∈{0,1}
384
:=CRH(tr||M);计算k:=0,(z,h):=

;计算ρ

∈{0,1}
384
:=CHR(K||μ),或者,ρ
′←
{0,1}
384
的随机签名;当(z,h)=

时;循环执行如下过程:计算计算w:=Ay;计算w1:=HighBits
q
(w,2γ2);计算c∈B
60
:=H(μ||w1);计算z:=y+cs1;计算(r1,r0):=Decompose
q
(w-cs2,2γ2);如果满足||z||

≥γ
1-β,或者满足||r0||

≥γ
2-β,或者满足r1≠w1,则计算(z,h):=

;否则,计算h:=MakeHint
q
(-ct0,w-cs2+ct0,2γ2);
如果满足||ct0||

≥γ2,或者h中比特1的个数大于ω,则计算(z,h):=

和k:=k+1;返回σ=(z,h,c);其中,σ为数字签名结果。5.根据权利要求3所述的Dilithium算法的实现方法,其特征在于,所述依据所述参数和所述Dilithium算法生成签名密钥对,以及对消息M进行签名的步骤,包括使用多项式商环R=Z
q
[X]/(X
n
+1);并执行如下步骤:计算ρ

{0,1}
256
;计算K

{0,1}
256
;计算计算计算t:=As1+s2;计算(t1,t0):=Power2Round
q
(t,d);返回(pk=(ρ,t1),sk=(ρ,K,s1,s2));其中,pk为私钥,sk为公钥;计算计算t:=As1+s2;计算(t1,t0):=Power2Round
q
(t,d);计算tr∈{0,1}
384
:=CRH(ρ||t1);计算μ∈{0,1}
384
:=CRH(tr||M);计算k:=0,(z,h):=

;计算ρ

∈{0,1}
384
:=CHR(K||μ),或者,ρ
′←
{0,1}
384
的随机签名;当(z,h)=

时;循环执行如下过程:计算计算w:=Ay;计算w1:=HighBits
q
(w,2γ2);计算c∈B
60
:=H(μ||w1);计算z:=y+cs1;计算(r1,r0):=Decompos...

【专利技术属性】
技术研发人员:程朝辉周枭淳
申请(专利权)人:深圳奥联信息安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1