技术领域
[0001] 本
发明属于网络信息安全技术领域,具体涉及到
密码学或多变量公钥
密码体制或无证书公钥密码体制或广播多重签名方法。
背景技术
[0002] 多重签名按照有无签名顺序分为有序多重签名和广播多重签名,它可以实现多个用户对同一个
电子文件进行签名和认证。目前,大多数广播多重签名都是基于传统公钥密码体制,其安全性主要基于大整数分解问题或离散对数问题的难解性。量子
算法的出现和
量子计算机的即将诞生,将会对基于传统公钥密码体制的广播多重签名方法构成威胁,并且基于身份的广播多重签名方法存在密钥托管问题。因此,研究具有抗量子计算特性的无证书广播多重签名方法具有重要意义。
[0003] 多变量公钥密码作为后量子密码的主要候选者之一,其安全性主要基于有限域上二次多变量多项式方程组问题和多项式同构问题的难解性,具有计算效率高、运算速度快、抵抗量子计算攻击等优点,非常适用于计算能
力、存储能力、通信能力有限的设备上。但是,目前没有基于无证书的多变量广播多重签名方法,如何采用无证书公钥密码体制构建多变量广播多重签名是密码学中当前需要迫切解决的一个技术问题。
发明内容
[0004] 本发明所要解决的技术问题在于克服上述
现有技术的缺点,提供一种签名、验证计算量小,签名长度不随用户个数变化的基于无证书的多变量广播多重签名方法。
[0005] 解决上述技术问题所采用的技术方案由下述步骤组成:
[0006] A、建立系统参数
[0007] (A1)密钥生成中心定义特征为p、阶为q的有限域K。
[0008] (A2)密钥生成中心定义有限域K上的n元r个多变量方程组:
[0009] P=(p1(x1,x2,···,xn),···,pi(x1,x2,···,xn),···,pr(x1,x2,···,xn))
[0010] 每个方程组pi是关于变量x为x1,x2,…,xn的非线性二次方程,其中i为1,2,…,r,n和r为有限的正整数:
[0011]
[0012] 其中,每个系数α、β、γ和变量x都在有限域K内。
[0013] (A3)密钥生成中心选取密码学安全Hash函数H:
[0014] {0,1}*×Kn→Kn
[0015] 其中,Kn是有限域K上的n维空间向量。
[0016] (A4)密钥生成中心公开系统参数Z:
[0017] Z=(K,p,q,r,n,H)
[0018] B、生成部分密钥
[0019] (B1)密钥生成中心选取安全的多变量加密算法,其核心变换Q是Kn→Kn的可逆二次变换,并在Kn→Kn上随机选取可逆仿射变换T和可逆仿射变换S,确定系统公钥Q'、系统私钥Q'-1:
[0020] 系统公钥Q':
[0021] 系统私钥Q'-1:T、Q、S
[0022] 式中 表示映射。
[0023] (B2)密钥生成中心选取Kn→Kn上的可逆仿射变换T0和可逆仿射变换S0,确定部分公钥Q0'、部分私钥Q0'-1:
[0024] 部分公钥Q0':
[0025] 部分私钥Q0'-1:
[0026] (B3)密钥生成中心公开系统公钥Q',并且通过秘密信道将部分私钥Q0'-1给多重签名者。
[0027] C、生成签名密钥
[0028] 每个签名者Nu选取Kn→Kn上的可逆仿射变换Tu和可逆仿射变换Su,确定签名公钥pku、签名私钥sku:
[0029] 签名公钥pku:
[0030] 签名私钥sku:
[0031] 其中,u是签名者的个数,u为1,2,···,t,t为有限的正整数。
[0032] D、签名
[0033] (D1)每个签名者Nu选择一个随机数ru,ru∈Kn,确定vu:
[0034] vu=Q'(ru)
[0035] 并把vu广播给其他签名者Nj,其中,j为1,2,···,t;且j≠u。
[0036] (D2)每个签名者Nu确定v、哈希值h:
[0037]
[0038] h=H(m||v)
[0039] 式中||表示连接。
[0040] (D3)每个签名者Nu用自己的签名私钥sku,确定自己的部分签名σu:
[0041]
[0042] 并将消息m、vu、部分签名σu发送给收集者C。
[0043] (D4)收集者C确定v、哈希值h:
[0044]
[0045] h=H(m||v)
[0046] (D5)收集者C用签名者Nu的签名公钥pku确定hu':
[0047]
[0048] (D6)收集者C验证hu'与h是否相等;如果全都相等,部分签名σu成功,收集者C确定最终的多重签名σ:
[0049]
[0050] 否则,部分签名σu失败。
[0051] (D7)收集者C发送消息m、v、多重签名σ给验证者V。
[0052] E、验证
[0053] (E1)验证者V确定签名者Nu的公钥积pk、哈希值h:
[0054]
[0055] h=H(m||v)
[0056] (E2)验证者V确定h":
[0057] h"=pk(σ/ht-1)
[0058] (E3)验证者V验证h"与h是否相等,如果相等,多重签名成功;否则,多重签名失败。
[0059] 在本发明的建立系统参数步骤A中,本发明的特征p为素数,阶q为p的不为0的正整数次方。
[0060] 本发明在多变量公钥密码体制下结合无证书公钥密码体制和广播多重签名技术,提出了一种基于无证书的多变量广播多重签名方法,该方法采用无证书公钥密码体制解决了基于身份的公钥密码体制的密钥托管问题。本发明最终的多重签名长度与签名者的个数无关,多重签名的验证时间与验证单个部分签名时间一致,具有签名、验证计算量小,能抵抗量子计算攻击等优点,可以用于车载网络、教育系统等领域。
附图说明
具体实施方式
[0062] 下面结合附图和实施例对本发明进一步详细说明,但本发明不限于这些实施例。
[0063] 实施例1
[0064] 本实施例以特征p为2、阶q为256的有限域K,n为42、r为24多变量方程组为例,基于无证书的多变量广播多重签名方法由下述步骤组成(如图1所示):
[0065] A、建立系统参数
[0066] (A1)密钥生成中心定义特征为p、阶为q的有限域K,本实施例中,p为2,阶q为256。
[0067] (A2)密钥生成中心定义有限域K上的n元r个多变量方程组,本实施例中,n为42,r为24。
[0068] P=(p1(x1,x2,···,x42),···,pi(x1,x2,···,x42),···,p24(x1,x2,···,x42))
[0069] 每个方程组pi是关于变量x为x1,x2,…,x42的非线性二次方程,其中i为1,2,…,24:
[0070]
[0071] 其中,每个系数α、β、γ和变量x都在有限域K内。
[0072] (A3)密钥生成中心选取密码学安全Hash函数H:
[0073] {0,1}*×K42→K42
[0074] 其中K42是有限域K上的42维空间向量。
[0075] (A4)密钥生成中心公开系统参数Z:
[0076] Z=(K,p,q,r,n,H)
[0077] 其中p为2、q为256、n为42、r为24。
[0078] B、生成部分密钥
[0079] (B1)密钥生成中心选取安全的多变量加密算法,其核心变换Q是K42→K42的可逆二次变换,并在K42→K42上随机选取可逆仿射变换T和可逆仿射变换S,确定系统公钥Q'、系统私钥Q'-1:
[0080] 系统公钥Q':
[0081] 系统私钥Q'-1:T、Q、S
[0082] 式中 表示映射。
[0083] (B2)密钥生成中心选取K42→K42上的可逆仿射变换T0和可逆仿射变换S0,确定部分公钥Q0'、部分私钥Q0'-1:
[0084] 部分公钥Q0':
[0085] 部分私钥Q0'-1:
[0086] (B3)密钥生成中心公开系统公钥Q',并且通过秘密信道将部分私钥Q0'-1给多重签名者。
[0087] C、生成签名密钥
[0088] 每个签名者Nu选取K42→K42上的可逆仿射变换Tu和可逆仿射变换Su,确定签名公钥pku、签名私钥sku:
[0089] 签名公钥pku:
[0090] 签名私钥sku:
[0091] 其中,u是签名者的个数,u为1,2,···,t,t为有限的正整数。
[0092] D、签名
[0093] (D1)每个签名者Nu选择一个随机数ru,ru∈K42,确定vu:
[0094] vu=Q'(ru)
[0095] 并把vu广播给其他签名者Nj,其中,j为1,2,···,t;且j≠u。
[0096] (D2)每个签名者Nu确定v、哈希值h:
[0097]
[0098] h=H(m||v)
[0099] 式中||表示连接。
[0100] (D3)每个签名者Nu用自己的签名私钥sku,确定自己的部分签名σu:
[0101]
[0102] 并将消息m、vu、部分签名σu发送给收集者C。
[0103] (D4)收集者C确定v、哈希值h:
[0104]
[0105] h=H(m||v)
[0106] (D5)收集者C用签名者Nu的签名公钥pku确定hu':
[0107]
[0108] (D6)收集者C验证hu'与h是否相等;如果全都相等,部分签名σu成功,收集者C确定最终的多重签名σ:
[0109]
[0110] 否则,部分签名σu失败。
[0111] (D7)收集者C发送消息m、v、多重签名σ给验证者V。
[0112] E、验证
[0113] (E1)验证者V确定签名者Nu的公钥积pk、哈希值h:
[0114]
[0115] h=H(m||v)
[0116] (E2)验证者V确定h":
[0117] h"=pk(σ/ht-1)
[0118] (E3)验证者V验证h"与h是否相等,如果相等,多重签名成功;否则,多重签名失败。
[0119] 本实施例采用无证书公钥密码体制解决了基于身份的公钥密码体制的密钥托管问题。本发明最终的多重签名长度与签名者的个数无关,多重签名的验证时间与验证单个部分签名时间一致,具有签名、验证计算量小,能抵抗量子计算攻击等优点。
[0120] 实施例2
[0121] 本实施例以特征p为2、阶q为256的有限域K,n为30、r为25多变量方程组为例,基于无证书的多变量广播多重签名方法由下述步骤组成:
[0122] A、建立系统参数
[0123] (A1)密钥生成中心定义特征为p、阶为q的有限域K,本实施例中,p为2,阶q为256。
[0124] (A2)密钥生成中心定义有限域K上的n元r个多变量方程组,本实施例中,n为30,r为25。
[0125] P=(p1(x1,x2,···,x30),···,pi(x1,x2,···,x30),···,p25(x1,x2,···,x30))
[0126] 每个方程组pi是关于变量x为x1,x2,…,x30的非线性二次方程,其中i为1,2,…,25:
[0127]
[0128] 其中,每个系数α、β、γ和变量x都在有限域K内。
[0129] (A3)密钥生成中心选取密码学安全Hash函数H:
[0130] {0,1}*×K30→K30
[0131] 其中K30是有限域K上的30维空间向量。
[0132] (A4)密钥生成中心公开系统参数Z:
[0133] Z=(K,p,q,r,n,H)
[0134] 其中p为2、q为256、n为30、r为25。
[0135] B、生成部分密钥
[0136] (B1)密钥生成中心选取安全的多变量加密算法,其核心变换Q是K30→K30的可逆二次变换,并在K30→K30上随机选取可逆仿射变换T和可逆仿射变换S,确定系统公钥Q'、系统-1私钥Q' :
[0137] 系统公钥Q':
[0138] 系统私钥Q'-1:T、Q、S
[0139] 式中 表示映射。
[0140] (B2)密钥生成中心选取K30→K30上的可逆仿射变换T0和可逆仿射变换S0,确定部分公钥Q0'、部分私钥Q0'-1:
[0141] 部分公钥Q0':
[0142] 部分私钥Q0'-1:
[0143] (B3)密钥生成中心公开系统公钥Q',并且通过秘密信道将部分私钥Q0'-1给多重签名者。
[0144] C、生成签名密钥
[0145] 每个签名者Nu选取K30→K30上的可逆仿射变换Tu和可逆仿射变换Su,确定签名公钥pku、签名私钥sku:
[0146] 签名公钥pku:
[0147] 签名私钥sku:
[0148] 其中,u是签名者的个数,u为1,2,···,t,t为有限的正整数。
[0149] D、签名
[0150] (D1)每个签名者Nu选择一个随机数ru,ru∈K30,确定vu:
[0151] vu=Q'(ru)
[0152] 并把vu广播给其他签名者Nj,其中,j为1,2,···,t;且j≠u。
[0153] (D2)每个签名者Nu确定v、哈希值h:
[0154]
[0155] h=H(m||v)
[0156] 式中||表示连接。
[0157] (D3)每个签名者Nu用自己的签名私钥sku,确定自己的部分签名σu:
[0158]
[0159] 并将消息m、vu、部分签名σu发送给收集者C。
[0160] (D4)收集者C确定v、哈希值h:
[0161]
[0162] h=H(m||v)
[0163] (D5)收集者C用签名者Nu的签名公钥pku确定hu':
[0164]
[0165] (D6)收集者C验证hu'与h是否相等;如果全都相等,部分签名σu成功,收集者C确定最终的多重签名σ:
[0166]
[0167] 否则,部分签名σu失败。
[0168] (D7)收集者C发送消息m、v、多重签名σ给验证者V。
[0169] 其它步骤与实施例1相同。
[0170] 实施例3
[0171] 本实施例以特征p为2、阶q为512的有限域K,n为42、r为24多变量方程组为例,基于无证书的多变量广播多重签名方法由下述步骤组成:
[0172] A、建立系统参数
[0173] (A1)密钥生成中心定义特征为p、阶为q的有限域K,本实施例中,p为2,阶q为512。
[0174] (A2)密钥生成中心定义有限域K上的n元r个多变量方程组,本实施例中,n为42,r为24。
[0175] P=(p1(x1,x2,···,x42),···,pi(x1,x2,···,x42),···,p24(x1,x2,···,x42))
[0176] 每个方程组pi是关于变量x为x1,x2,…,x42的非线性二次方程,其中i为1,2,…,24:
[0177]
[0178] 其中,每个系数α、β、γ和变量x都在有限域K内。
[0179] (A3)密钥生成中心选取密码学安全Hash函数H:
[0180] {0,1}*×K42→K42
[0181] 其中K42是有限域K上的42维空间向量。
[0182] (A4)密钥生成中心公开系统参数Z:
[0183] Z=(K,p,q,r,n,H)
[0184] 其中p为2、q为512、n为42、r为24。
[0185] 其它步骤与实施例1相同。
[0186] 根据上述原理,还可以设计出另外一种具体的基于无证书的多变量广播多重签名方法,但均在本发明的保护范围内。