会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 密码体制 / 格公钥密码体制下的盲签密方法

格公钥密码体制下的盲签密方法

申请号 CN201910331538.3 申请日 2019-04-24 公开(公告)号 CN110138543B 公开(公告)日 2022-07-22
申请人 西安邮电大学; 发明人 俞惠芳; 白璐;
摘要 一种格公钥密码体制下的盲签密方法,其特征在于它是由系统初始化、生成用户钥、消息拥有者盲化消息、用户签名并加密、验证步骤组成。本发明借鉴传统密码体制下盲签密和格密码方法,构造出了一种基于格的后量子盲签密方法,盲签密的效率高于先盲签名后加密的效率,并且比基于格上的盲签名方法增加了加密功能,相比于有限域离散对数和椭圆曲线离散对数假设下的盲签密方法,由于在签密方案中增加了确定盲化消息μ,增加了盲化功能,使得签密具有匿名性,从而有效地保护了消息拥有者的隐私,可以抗量子攻击并且计算效率更高,可用于电子签密技术领域。
权利要求

1.一种格公钥密码体制下的盲签密方法,其特征在于它是由下述步骤组成:(1)系统初始化

1)可信方定义模q剩余类环Zq上的n行nk列矩阵G,模q是:v

q=p

其中p为一个大素数,v为有限的正整数;

2)可信方定义三个整数m0,m,m1用作矩阵向量的维数;

3)可信方定义带错误学习的错误率α∈(0,1),选取高斯参数

4)可信方定义环R:R=Zq[x]/f(x)其中f(x)是多项式;

5)可信方定义5个哈希函数:将一个随机长的比特串映射到n维Zq;

是一个通用哈希函数;

选自一个通用哈希函数族;

是一个通用哈希函数,其中k为有限的正整数;

6)可信方定义矩阵集合B:(0) (i) (λ)B={B ,…,B ,…,B }(i)

当0≤i≤λ时,B 是从模q剩余类环中均匀选取的n行nk列的矩阵;

nk×nk T

7)可信方定义一个用于签名的高斯参数ss,定义矩阵Q∈Z 为格Λ(G)的一个基;

8)可信方公开系统参数pp:pp=(G,α,s',R,H0,H1,H2,HF,H3,B,ss,Q)(2)生成用户钥

(0)

1)用户在剩余类环Zq上抽取n行m0列的矩阵A ,在高斯分布 中选取m0行nk列矩阵T;

(1)

2)确定矩阵A :(1) (0)

A =‑A T

3)确定用户公钥PK:(0) (1)

A=[A ||A ]确定用户私钥SK:SK={T};

(3)消息拥有者盲化消息

1)原始消息为M,消息拥有者确定向量化后的消息g:g=H0(M)

2)以零为中心按照离散正态分布随机选择向量c:c=(c1,c2,…,cm)向量c的范数 成立则继续,不满足则重新选择所述向量c,为高斯分布的参数;

3)确定盲化消息μ:‑1

μ=(t g+Ac)modq其中t∈Z,1<t<||B||‑1,消息拥有者将盲化消息μ发给盲签密者S;

(4)盲签密者S签名并加密

1)确定盲签名消息σ':σ'=(σor,y')其中,σor为一个部分盲签名,y'为另一个部分盲签名;

2)盲签密者S去盲变换得到签名σ:σ=t(σ'‑c)T

3)在模q剩余类 环选择一个n维向量s,得到部分密文b :T T

其中σ1'为编码后的部分盲签名,u为一个实数向量,e为噪声向量e的转置,s为高斯参数的转置, 为由接收者验证的公钥Ar构造的n行m2列的矩阵;

4)盲签密者S进行加密得到密文c:c=(u,b,c')T

其中b是部分密文b的转置,c'为通过加密函数得到的部分密文;

(5)验证

1)对密文c进行解密,得到部分签名σ1,如果u为0则终止,否则继续;

2)调用 得到(z,e), 噪声向量e为:如果 或者 则终止,否则继续;

3)检查哈希函数值,确定向量w:w=HF(H1(σ),r2)如果w≠u则终止,否则继续;如果 则终止,否则继续,其中,r2为一个向量;如果 则终止,否则继续;

4)验证发送者的真实性,将变色龙哈希函数的参数 带入下式其中r1为一个nk维的向量,若上式成立则输出μ,否则结束。

2.根据权利要求1所述的格公钥密码体制下的盲签密方法,其特征在于:在系统初始化步骤(1)的步骤4)中,所述的f(x)是;

n n‑1

f(x)=x+anx +…+a2x+a1该多项式的首项系数为1的不可约多项式,即首项系数为1且在Zq中除了1和自身没有其它因式。

说明书全文

格公钥密码体制下的盲签密方法

技术领域

[0001] 本发明属于网络信息安全技术领域,具体涉及到密码学、格公钥密码体制或盲签密方法。

背景技术

[0002] 签密能够以比先签名后加密低得多的计算和通信代价,在一个逻辑步骤内同时完成加密和签名操作。然而,签密作为十分重要的密码原语在格上的构造发展相对缓慢。
[0003] 1996年,Ajtai发现某些著名的格问题的最坏情况复杂性和平均情况复杂性之间存在一种联系。后来Ajtai和Dwork提出了一种基于格理论的公钥密码体制,自此便为公钥密码体制开辟了一个新的领域。GGH公钥密码体制,NTRU公钥密码体制,Regev公钥密码体制等基于格理论的公钥密码体制相继提出。由于它们具有抵抗量子攻击而且运算简单的优点,成为众多学者研究和关注的热点。2013年,Yan等人提出了标准模型下基于格的高效签密方案[5]。2016年,路秀华等人提出了无陷门的格基签密方案。2018年,Gérard和Merckx提出了基于格上签名的后量子签密方案。随着格公钥密码体制的不断发展,基于格的各种签密算法也越来越多。2015年Yan等人提出了一种安全的格上基于身份的签密方案。
[0004] 盲签密以及盲签名在实际应用都得到了广泛的应用。1982年,Chaum提出了第一个盲签名方案,该方案是基于RSA问题的。2005年,Yuan首次提出了一个使用双线性对的可证明安全的基于身份的盲签密,但是此方案使用的双线性对运算过多,计算效率低。随着格的不断发展,使得密码体制的运算效率不断提高并且可以抵抗量子攻击。因此,一些学者开始研究基于格上的盲签名。2016年Tian等人提出了第一个格上基于身份的抗量子攻击的部分盲签名方案,但方案存在签名异常问题;方案中即使诚实的签名者和请求者交互产生的签名也可能是不合格的签名。因此在2018年叶青等人对该方案进行了改进,加入了一个异常签名处理程序来处理不合格的签名,从而可以产生出合格的签名。目前还没有格公钥密码体制下的盲签密方法。

发明内容

[0005] 本发明所要解决的技术问题在于克服上述现有技术的不足,提供一种匿名签密、抵抗量子攻击的格公钥密码体制下的盲签密方法。
[0006] 解决上述技术问题所采用的技术方案是由下述步骤组成:
[0007] A、系统初始化
[0008] (A1)可信方定义模q剩余类环Zq上的n行nk列矩阵G,模q是:
[0009] q=pv
[0010] 其中p为一个大素数,v为有限的正整数。
[0011] (A2)可信方定义三个整数m0,m,m1用作矩阵向量的维数。
[0012] (A3)可信方定义带错误学习的错误率α∈(0,1),选取高斯参数[0013] (A4)可信方定义环R:
[0014] R=Zq[x]/f(x)
[0015] 其中f(x)是多项式。
[0016] (A5)可信方定义5个哈希函数:
[0017] 将一个随机长的比特串映射到n维Zq。
[0018]
[0019] 是一个通用哈希函数。
[0020] 选自一个通用哈希函数族。
[0021] 是一个通用哈希函数,其中k为有限的正整数。
[0022] (A6)可信方定义矩阵集合B:
[0023] B={B(0),…,B(i),…,B(λ)}
[0024] 当0≤i≤λ时,B(i)是从模q剩余类环中均匀选取的n行nk列的矩阵。
[0025] (A7)可信方定义一个用于签名的高斯参数ss,定义矩阵Q∈Znk×nk为格Λ(GT)的一个基。
[0026] (A8)可信方公开系统参数pp:
[0027] pp=(G,α,s',R,H0,H1,H2,HF,H3,B,ss,Q)
[0028] B、生成用户钥
[0029] (B1)用户在剩余类环Zq上抽取n行m0列的矩阵A(0),在高斯分布 中选取m0行nk列矩阵T。
[0030] (B2)确定矩阵A(1):
[0031] A(1)=‑A(0)T
[0032] (B3)确定用户公钥PK:
[0033]
[0034] 确定用户私钥SK:
[0035] SK={T}
[0036] 其中用户取A=[A(0)||A(1)]。
[0037] C、消息拥有者盲化消息
[0038] (C1)原始消息为M,用户确定向量化后的消息g:
[0039] g=H0(M)
[0040] (C2)以零为中心按照离散正态分布随机选择向量c:
[0041] c=(c1,c2,···,cm)
[0042] 向量c的范数 成立则继续,不满足重新抽取即可,其中α为系数, 为高斯分布的参数。
[0043] (C3)确定盲化消息μ:
[0044] μ=(t‑1g+Ac)modq
[0045] 其中t∈Z,1<t<||B||‑1,消息拥有者将盲化消息μ发给盲签名者S。
[0046] D、用户签名并加密
[0047] (D1)确定盲签名消息σ':
[0048] σ'=(σor,y')
[0049] 其中,σor为一个部分盲签名,y'为部分盲签名。
[0050] (D2)用户去盲变换得到签名σ:
[0051] σ=t(σ'‑c)
[0052] (D3)在模q剩余类 环选择一个n维向量s,得到部分密文bT:
[0053]
[0054] 其中σ1'为编码后的部分签名,u为一个实数向量,eT为噪声向量e的转置,sT为高斯参数的转置, 为由接收者的公钥Ar构造的n行m2列的矩阵。
[0055] (D4)用户进行加密得到密文c:
[0056] c=(u,b,c')
[0057] 其中b是部分密文bT的转置,c'为通过加密函数得到的部分密文。
[0058] E、验证
[0059] (E1)对(u,b)进行解密,得到部分签名σ1,如果u为0则终止,否则继续。
[0060] (E2)调用 得到(z,e), 噪声向量e为:
[0061]
[0062] 如果 或者 则终止,否则继续。
[0063] (E3)检查哈希函数值,确定向量w:
[0064] w=HF(H1(σ),r2)
[0065] 如果w≠u则终止,否则继续;如果 则终止,否则继续,其中,r2为一个向量;如果 则终止,否则继续。
[0066] (E4)验证发送者的真实性,将变色龙哈希函数的参数 带入下式
[0067]
[0068] 其中r1为一个nk维的向量,若上式成立则输出μ,否则结束。
[0069] 在本发明的系统初始化步骤A的步骤(A4)中,所述的f(x)是;
[0070] f(x)=xn+anxn‑1+…+a2x+a1
[0071] 该多项式的首项系数为1的不可约多项式,即首项系数为1且在Zq中除了1和自身没有其它因式。
[0072] 本发明借鉴传统密码体制下盲签密和格密码方法,构造出了一种基于格的后量子盲签密方法,盲签密的效率高于先盲签名后加密的效率,并且比基于格上的盲签名方法增加了加密功能,相比于有限域离散对数和椭圆曲线离散对数假设下的盲签密方法,可以抗量子攻击并且提高了运算效率。本发明具有匿名签密、抵抗量子攻击、运算效率高等优点,可用于电子签密领域。

附图说明

[0073] 图1是本发明实施例1的流程图。

具体实施方式

[0074] 下面结合附图和实施例对本发明进一步详细说明,但本发明不限于这些实施例。
[0075] 实施例1
[0076] 本实施例以大素数q为2128为例,在图1中,本实施例的格公钥体制下的盲签密方法由下述步骤组成:
[0077] A、系统初始化
[0078] (A1)可信方定义模q剩余类环Zq上的n行nk列矩阵G,模q是:
[0079] q=pv
[0080] 其中p为一个大素数,v为有限的正整数;本实施例中,p为2,v为128。
[0081] (A2)可信方定义三个整数m0,m,m1用作矩阵向量的维数。
[0082] (A3)可信方定义带错误学习的错误率α∈(0,1),选取高斯参数[0083]
[0084] (A4)可信方定义环R:
[0085] R=Zq[x]/f(x)
[0086] 其中f(x)是多项式。本实施例的f(x)为:
[0087] f(x)=xn+anxn‑1+…+a2x+a1
[0088] 该多项式的首项系数为1的不可约多项式,即首项系数为1且在Zq中除了1和自身没有其它因式。
[0089] (A5)可信方定义5个哈希函数:
[0090] 将一个随机长的比特串映射到n维Zq。
[0091]
[0092] 是一个通用哈希函数。
[0093] 选自一个通用哈希函数族。
[0094] 是一个通用哈希函数,其中k为有限的正整数。
[0095] (A6)可信方定义矩阵集合B:
[0096] B={B(0),…,B(i),…,B(λ)}
[0097] 当0≤i≤λ时,B(i)是从模q剩余类环中均匀选取的n行nk列的矩阵。
[0098] (A7)可信方定义一个用于签名的高斯参数ss,定义矩阵Q∈Znk×nk为格Λ(GT)的一个基。
[0099] (A8)可信方公开系统参数pp:
[0100] pp=(G,α,s',R,H0,H1,H2,HF,H3,B,ss,Q)
[0101] B、生成用户钥(0)
[0102] (B1)用户在剩余类环Zq上抽取n行m0列的矩阵A ,在高斯分布 中选取m0行nk列矩阵T。
[0103] (B2)确定矩阵A(1):
[0104] A(1)=‑A(0)T
[0105] (B3)确定用户公钥PK:
[0106]
[0107] 确定用户私钥SK:
[0108] SK={T}
[0109] 其中用户取A=[A(0)||A(1)]。
[0110] C、消息拥有者盲化消息
[0111] (C1)原始消息为M,用户确定向量化后的消息g:
[0112] g=H0(M)
[0113] (C2)以零为中心按照离散正态分布随机选择向量c:
[0114] c=(c1,c2,···,cm)
[0115] 向量c的范数 成立则继续,不满足重新抽取即可,其中α为系数, 为高斯分布的参数。
[0116] (C3)确定盲化消息μ:
[0117] μ=(t‑1g+Ac)modq
[0118] 其中t∈Z,1<t<||B||‑1,消息拥有者将盲化消息μ发给盲签名者S。
[0119] 由于在签密方案中本发明增加了确定盲化消息μ,增加了盲化功能,使得签密具有匿名性,从而有效地保护了消息拥有者的隐私。
[0120] D、用户签名并加密
[0121] (D1)确定盲签名消息σ':
[0122] σ'=(σor,y')
[0123] 其中,σor为一个部分盲签名,y'为部分盲签名。
[0124] (D2)用户去盲变换得到签名σ:
[0125] σ=t(σ'‑c)T
[0126] (D3)在模q剩余类 环选择一个n维向量s,得到部分密文b :
[0127]
[0128] 其中σ1'为编码后的部分签名,u为一个实数向量,eT为噪声向量e的转置,sT为高斯参数的转置, 为由接收者的公钥Ar构造的n行m2列的矩阵。
[0129] (D4)用户进行加密得到密文c:
[0130] c=(u,b,c')
[0131] 其中b是部分密文bT的转置,c'为通过加密函数得到的部分密文。
[0132] E、验证
[0133] (E1)对(u,b)进行解密,得到部分签名σ1,如果u为0则终止,否则继续;
[0134] (E2)调用 得到(z,e), 噪声向量e为:
[0135]
[0136] 如果 或者 则终止,否则继续。
[0137] (E3)检查哈希函数值,计算向量w:
[0138] w=HF(H1(σ),r2)
[0139] 如果w≠u则终止,否则继续;如果 则终止,否则继续,其中,r2为一个向量;如果 则终止,否则继续。
[0140] (E4)验证发送者的真实性,将变色龙哈希函数的参数 带入下式
[0141]
[0142] 其中r1为一个nk维的向量,若上式成立则输出μ,否则结束。
[0143] 实施例2
[0144] 本实施例以大素数q为2256为例,格公钥体制下的盲签密方法由下述步骤组成:
[0145] A、系统初始化
[0146] (A1)可信方定义模q剩余类环Zq上的n行nk列矩阵G,模q是:
[0147] q=pv
[0148] 其中p为一个大素数,v为有限的正整数;本实施例中,p为2,v为256。
[0149] 该步骤的其它步骤与实施例1相同。
[0150] 其它步骤与实例1相同。
[0151] 实施例3
[0152] 本实施例以大素数q为2512为例,格公钥体制下的盲签密方法由下述步骤组成:
[0153] A、系统初始化
[0154] (A1)可信方定义模q剩余类环Zq上的n行nk列矩阵G,q是:
[0155] q=pv
[0156] 其中p为一个大素数,v为有限的正整数;本实施例中,p为2,v为512。
[0157] 该步骤的其它步骤与实施例1相同。
[0158] 其它步骤与实例1相同。