基于椭圆曲线的无密钥托管问题的多接收者签密方法

文档序号:10660586阅读:266来源:国知局
基于椭圆曲线的无密钥托管问题的多接收者签密方法
【专利摘要】本发明公开了一种基于椭圆曲线的无密钥托管问题的多接收者签密方法,用于解决现有多接收者签密方法存在密钥托管的技术问题。技术方案是首先由用户随机选取一个秘密值作为自己的私钥,而后根据自己的私钥计算出一个验证份额,并将这个验证份额与自己的身份信息一起发送给密钥生成中心KGC。密钥生成中心KGC根据用户发过来的验证份额及身份信息,生成用户的公钥、公钥验证参数和公钥隐藏参数,并发送给用户。用户收到密钥生成中心KGC发送过来的参数后,对公钥进行验证。由于用户的私钥是自己随机选取的秘密值,密钥生成中心KGC只知道用户的公钥和对应的身份信息,故无法获取用户的私钥,无密钥托管。同时,提高了签密效率,减少了带宽。
【专利说明】
基于椭圆曲线的无密钥托管问题的多接收者签密方法
技术领域
[0001] 本发明涉及一种多接收者签密方法,特别是涉及一种基于椭圆曲线的无密钥托管 问题的多接收者签密方法。
【背景技术】
[0002] 在分布式网络应用(例如网络会议、圆桌会议、收费电视等)中,为了克服密钥托管 问题和证书管理问题,保护通信系统中进行会话的所有参与者的身份隐私,以及确保会话 内容仅可以被授权用户正确解密,而非授权用户无法正确解密,需要安全广播技术作为支 持。安全广播是实现一个发送者向多个授权接收者发送相同消息的安全技术,能够实现上 述网络应用的安全需求。
[0003] 文南犬 1 "Anonymous and Provably Secure Certificateless Multireceiver Encryption Without Bilinear Pairing(Security and Communication Networks, 2015)"公开了一种匿名安全的无双线性对的无证书多接收者加密方法。该方法(1)用户(包 括发送者和接收者)随机选取一个秘密值作为自己的一部分私钥,并根据随机选取的秘密 值计算出自己相对应的部分公钥。之后用户将自身的身份信息和部分公钥发送给向密钥生 成中心KGC(Key Generation Center),密钥生成中心KGC为每一个用户计算另一部分公私 钥,并将部分公钥、部分私钥秘密地分发给各个用户;故,用户的公钥由两部分组成:密钥生 成中心KGC发送给用户的部分公钥和用户计算得到的部分公钥;用户的私钥由两部分组成: 密钥生成中心KGC发送给用户的部分私钥和用户随机选取的秘密值;(2)加密时,发送者用 授权接收者的身份信息、授权接收者的公钥以及所要发送的明文消息计算得到密文,并将 密文进行广播;(3)解密时,授权接收者用自己的私钥计算得到明文和中间参数,若该中间 参数与密文中的参数值相等,则授权接收者接受明文消息,否则,拒绝接受。该方法存在的 不足之处是:首先,用户的公私钥都是成对出现的,增加了存储空间,限制了该方案在低带 宽环境中的应用;其次,在该文献提出的方案中,加密过程所需要的椭圆曲线上的数乘运算 过多,增加了计算复杂性,使得算法运算效率过低;同时,该方案没有签名操作,使得接收者 无法对消息的来源进行确认,故方案的安全性有待提高。
[0004] 文献2 "申请号是201610203505.7的中国发明专利"公开了一种可显式验证公钥的 多接收者签密方法。该方法首先由用户随机选取一个秘密值作为自己的私钥,而后根据自 己的私钥计算出一个验证份额,并将这个验证份额与自己的身份信息一起发送给密钥生成 中心KGC。密钥生成中心KGC根据用户发过来的验证份额及其身份信息,生成用户的加密公 钥,并发送给用户。故,用户的公钥由用户身份的哈希值、验证份额的哈希值以及密钥生成 中心KGC发送给用户的加密公钥三部分组成;签密时,发送者用自己的公钥、身份信息以及 授权接收者的身份信息进行计算得到密文,并进行广播;解签密时,授权接收者用自己的私 钥、发送者的身份计算得到明文和中间参数,若该中间参数与密文中的参数值相等,则授权 接收者接受明文消息,否则,拒绝接受。该方法存在的不足之处是:首先,方案虽然解决了基 于身份的多接收者加密的密钥托管问题,但是用户的公钥是由三部分组成的,增加了存储 空间;其次,该专利提出的方案的安全性是基于离散对数困难假设,而在同等安全条件下, 其密钥比椭圆曲线密码系统的密钥更长,故该方案不利于在密码学领域的广泛应用。

【发明内容】

[0005] 为了克服现有多接收者签密方法存在密钥托管的不足,本发明提供一种基于椭圆 曲线的无密钥托管问题的多接收者签密方法。该方法首先由用户随机选取一个秘密值作为 自己的私钥,而后根据自己的私钥计算出一个验证份额,并将这个验证份额与自己的身份 信息一起发送给密钥生成中心KGC。密钥生成中心KGC根据用户发过来的验证份额及身份信 息,生成用户的公钥、公钥验证参数和公钥隐藏参数,并发送给用户。用户收到密钥生成中 心KGC发送过来的参数后,对公钥进行验证,若成立,则接受公钥,否则,拒绝接受,并向密钥 生成中心KGC报错。在此过程中,用户的私钥是自己随机选取的秘密值,密钥生成中心KGC只 知道用户的公钥和对应的身份信息,故无法获取用户的私钥,解决了密钥托管问题;用户的 公钥是一个值而并非公钥对,故解决了通信过程中需要带宽过高的问题;同时,在签密过程 中采用发送者计算与每一个接收者之间的关联信息进行签密操作,使得整个签密过程中使 用的椭圆曲线上的数乘操作次数远远小于同类型方案,故大大提高了签密操作的计算效 率。因此,本方法解决了广播通信时潜在的密钥托管问题、效率过低问题,同时减少了通信 过程中所需要的带宽。
[0006] 本发明解决其技术问题所采用的技术方案是:一种基于椭圆曲线的无密钥托管问 题的多接收者签密方法,其特点是包括以下步骤:
[0007] (1)生成系统参数:
[0008] (la)密钥生成中心KGC选取素数q,确定循环群Gq;
[0009] (lb)密钥生成中心KGC选取一条在循环群GJ:的椭圆曲线E,P为椭圆曲线E上的 点,其阶为P,P为素数;
[0010] (lc)密钥生成中心KGC选取密码系统主密钥s,并将密码系统主密钥s秘密保存;
[0011] (Id)密钥生成中心KGC构造6个密码单向哈希函数,分别记为:
[0012] H。: {0,1 }*-Gq;压:GqXGqX {0,1 }*-Zq*;H2:GqXGq-Zq*;
[0013] H3:Zq^{0,l}1;H4:{0,l} 1^{0,l}1;
[0014] h5: {ο,ιΡχ {o,i}*x {ojpxzJx.-.xzJ-Zq*;
[0015] 其中,Ho,Hi,H2,H3,H4,H5表示密钥生成中心KGC构造的6个密码单向哈希函数,A-B 表示定义域A到值域B的映射,{0,1 表示任意长的0或1构成的串,Gq为密钥生成中心KGC选 取的循环群,X表示笛卡尔乘积,Z,表示基于素数q构成的非零乘法群,1表示明文消息m的 长度,{0,1} 1表示长度为1的〇或1构成的串;
[0016] (le)密钥生成中心KGC选取对称加密算法Ek和对应的对称解密算法Dk,其中k表示 对称密钥;
[0017] (If)密钥生成中心KGC发布密钥生成中心KGC选取循环群Gq、椭圆曲线E、椭圆曲线 E上的点P、6个密码单向哈希函数Ηο,Η!,H2,H3,H4,H5、对称加密算法Ek、对称解密算法Dk,秘密 保存密码系统主密钥s;
[0018] (2)用户注册:
[0019] (2a)用户注册步骤中的用户包括接收者和发送者,均需通过执行下列步骤获取自 己的公钥和私钥;
[0020] (2b)用户随机选取一个整数作为自己的私钥d;
[0021] (2c)按照下式,用户计算验证份额V:
[0022] V = dP
[0023] 其中,V表示用户的验证份额,d表示用户的私钥,P表示椭圆曲线E上的点;
[0024] (2d)用户将自己的验证份额V和自己的身份信息ID发送给密钥生成中心KGC;
[0025] (2e)密钥生成中心KGC收到用户的验证份额V和身份信息ID后,随机选取一个整数 t,按照下式计算用户的公钥验证参数T:
[0026] T = tP
[0027] 其中,T表示用户的公钥验证参数,t表示密钥生成中心KGC随机选取的整数,P表示 椭圆曲线E上的点;
[0028] (2f)按照下式,密钥生成中心KGC计算用户的公钥PK:
[0029] PK = sV-Ho(ID)
[0030] 其中,PK表示用户的公钥,s表示密码系统主密钥,V表示用户的验证份额,Ho表示 密码单向哈希函数,ID表示用户的身份信息;
[0031] (2g)按照下式,密钥生成中心KGC计算用户的公钥隐藏参数X:
[0032] x = s+tHi(T,PK,ID)
[0033] 其中,X表示用户的公钥隐藏参数,s表示密码系统主密钥,t表示密钥生成中心KGC 随机选取的整数,ft表示密码单向哈希函数,T表示用户的公钥验证参数,PK表示用户的公 钥,ID表示用户的身份信息;
[0034] (2h)密钥生成中心KGC将用户的公钥验证参数T、用户的公钥隐藏参数X和用户的 公钥PK发送给用户;
[0035] (2i)用户判断收到的公钥PK是否满足如下等式,若是,则执行步骤(2j),否则,则 执行步骤(2k):
[0036] xV = PK+Ho(ID) +dTHi (T, PK, ID)
[0037] 其中,x表示用户的公钥隐藏参数,V表示用户的验证份额,PK表示用户的公钥,Ho、 ft表示密码单向哈希函数,ID表示用户的身份信息,d表示用户的私钥,T表示用户的公钥验 证参数;
[0038] (2j)密钥生成中心KGC对外公布用户的公钥PK,用户秘密保存自己的私钥d,之后 退出用户注册过程;
[0039] (2k)用户向密钥生成中心KGC报错,并退出用户注册过程;
[0040] (3)发送者签密:
[0041] (3a)发送者S判断自己是否已经执行步骤2的用户注册过程,并获取自己的公钥 PKs和私钥ds,若是,则执行步骤(3b),否则,发送者S执行步骤⑵获取自己的公钥PKs和私钥 ds后,执行步骤(3b);
[0042] (3b)发送者S在已注册的用户中随机选取η个接收者心,1?2, ...,Rn,其中,η表示大 于〇的整数;
[0043] (3c)按照下式,发送者S计算与每一个接收者心之间的关联信息Ks,1:
[0044] Ks,i = ds(PKi+Ho(IDi))
[0045] 其中,KS>1表示发送者S与第i个接收者心之间的关联信息,i = l,2,…,n,n表示发 送者S在已注册的用户中随机选取的接收者的数目,ds表示发送者S的私钥,PL表示第i个接 收者心的公钥,Ho表示密码单向哈希函数,IDi表示第i个接收者心的身份信息;
[0046] (3d)按照下式,发送者S计算每一个接收者心的伪身份值ω1:
[0047] 〇i = H2(Ks,i,Ho(IDi))
[0048] 其中,ω,表示第i个接收者心的伪身份值,i = l,2,…,n,n表示发送者S在已注册的 用户中随机选取的接收者的数目,H2、Ho表示两个密码单向哈希函数,K S>1表示发送者S与第i 个接收者心之间的关联信息,im表示第i个接收者心的身份信息;
[0049] (3e)按照下式,发送者S构造接收者身份信息混合值f(x):
[0051]其中,f(x)表示接收者身份信息混合值,X表示自变量,Π 表示连乘操作,η表示发 送者S在已注册的用户中随机选取的接收者的数目,i表示计数游标,ω,表示第i个接收者心 的伪身份值,u表示发送者S随机选取的整数,mod表示求模操作,q为密钥生成中心KGC选取 的素数;
[0052] (3f)按照下式,发送者S计算密钥验证值J:
[0053] ,/=4?//.;(")
[0054]其中,J表示密钥验证值,δ表示发送者S随机选取的长度为1的0或1构成的串,1表 示明文消息m的长度,Φ表示逐位异或操作,Η3表示密码单向哈希函数,u表示发送者S随机 选取的整数;
[0055] (3g)按照下式,发送者S计算加密消息密文Ζ:
[0056] Z = EHA(S){m)
[0057] 其中,Z表示加密消息密文,Ek表示对称加密算法,k表示对称密钥,k = H4(δ),H4表 示密码单向哈希函数,δ表示发送者s随机选取的长度为1的0或1构成的串,1表示明文消息m 的长度,m表示明文消息;
[0058] (3h)按照下式,发送者S计算密文有效性参数h:
[0059] h = H5(m,Z,J,ao,ai,· · ·,an-1)
[0060] 其中,h表示密文有效性参数,H5表示密码单向哈希函数,m表示明文消息,Z表示加 密消息密文,J表示密钥验证值,a^m,··· 表示接收者身份信息混合值f(x)的系数;
[0061] (3i)发送者S将加密消息密文Z、密钥验证值J、接收者身份信息混合值f(x)的系数 ao, ai,…,aw、密文有效性参数h和发送者S的身份信息IDs构成签密密文C,并对签密密文C 进行广播;
[0062] (4)接收者解密:
[0063] (4a)接收者心完成步骤2的用户注册过程计算出自己的公钥PI和私钥cU后,进行 如下操作进行解密,i = l,2,…,n;
[0064] (4b)按照下式,接收者心计算与发送者S之间的关联信息Ks,1:
[0065] Ks,i = di(PKs+Ho(IDs))
[0066] 其中,KS>1表示发送者S与第i个接收者心之间的关联信息,i = l,2,…,n,n表示发 送者S在已注册的用户中随机选取的接收者的数目,cU表示第i个接收者心的私钥,PKs表示 发送者S的公钥,Ho表示密码单向哈希函数,IDs表示发送者S的身份信息;
[0067] (4c)按照下式,接收者心计算伪身份值ω1:
[0068] 〇i = H2(Ks,i,Ho(IDi))
[0069] 其中,ω,表示第i个接收者心的伪身份值,i = l,2,…,n,n表示发送者S在已注册的 用户中随机选取的接收者的数目,H2、Ho表示两个密码单向哈希函数,K S>1表示发送者S与第i 个接收者心之间的关联信息,im表示第i个接收者心的身份信息;
[0070] (4d)按照下式,接收者心计算发送者S随机选取的整数u:
[0071 ] u = f ( ω i)
[0072] 其中,u表示发送者S随机选取的整数,f(x)表示接收者身份信息混合值,x表示自 变量,表示第i个接收者Ri的伪身份值;
[0073] (4e)按照下式,接收者心计算发送者S随机选取的长度为1的0或1构成的串δ:
[0074] S = J?Nx(u)
[0075] 其中,δ表示发送者S随机选取的长度为1的0或1构成的串,1表示明文消息m的长 度,J表示密钥验证值,?表示逐位异或操作,H 3表示密码单向哈希函数,u表示发送者S随机 选取的整数;
[0076] (4f)按照下式,接收者心计算明文消息m:
[0077] Μ = ΒΗ4{δ)(Ζ)
[0078] 其中,m表示明文消息,Dk表示对称解密算法,k表示对称密钥,k = Η4(δ),Η4表示密 码单向哈希函数,s表示发送者S随机选取的长度为1的0或1构成的串,1表示明文消息m的长 度,Z表示加密消息密文;
[0079] (4g)按照下式,接收者心计算权限参数V:
[0080] W =H5(m,Z,J,ao,ai, . . . ,an-i)
[0081] 其中,V表示权限参数,H5表示密码单向哈希函数,m表示明文消息,Z表示加密消 息密文,J表示密钥验证值,ao,^,··· 表示接收者身份信息混合值f(x)的系数;
[0082] (5)接收者判断权限参数V与密文有效性参数h是否相等;若是,则执行步骤(6), 否则,执行步骤(7);
[0083] (6)接收者接受明文消息,并退出接收者解密过程;
[0084] (7)接收者拒绝明文消息,并退出接收者解密过程。
[0085] 本发明的有益效果是:第一,由于在用户注册中,设置用户的私钥是用户随机选取 的秘密值,密钥生成中心KGC只能得到由用户私钥生成的验证份额和对应的身份信息,不能 得到用户的私钥;同时,密钥生成中心KGC根据验证份额和身份信息生成公钥发送给用户 后,用户可以对公钥的正确性进行验证,克服了现有技术中不能抵抗恶意KGC攻击的问题, 使得本发明具有抵抗恶意KGC攻击的优点。
[0086] 第二,由于在用户注册过程中,设置用户的公钥为一个而非一对,故解决了传输过 程中需要的带宽过高问题,使得本发明具有可适用于带宽不受限制的通信环境中的优点; [0087]第三,由于在发送者签密过程中,采用发送者计算与每一个接收者之间的关联信 息进行签密操作,使得整个签密操作使用的椭圆曲线上的数乘操作次数远远小于同类型方 案,大大提高了签密操作的效率,故解决了签密过程中效率过低的问题,使得本发明具有可 节省运算量的优点。
[0088] 第四,由于在签密过程中,采用接收者身份信息混合值将所有接收者的身份信息 融合在一起作为签密密文的一部分,从而在签密密文中不直接暴露接收者的身份信息列 表,克服了现有技术中的接收者身份隐私泄露问题,使得本发明具有可实现接收者身份匿 名性的优点。
[0089] 下面结合【具体实施方式】对本发明作详细说明。
【具体实施方式】
[0090] 名词解释。
[0091] KGC:密钥生成中心,为可信第三方,负责产生发送者和接收者的公私钥;
[0092] λ:密钥生成中心KGC选取的安全参数;
[0093] q:密钥生成中心KGC选取的素数;
[0094] Gq:密钥生成中心KGC选取的循环群;
[0095] E:椭圆曲线;
[0096] P:椭圆曲线E上的点;
[0097] p:点P的阶,为一个大素数;
[0098] s:密码系统主密钥;
[0099] e :限定域符号,例如yezq'表示y是ZJ中的一个元素;
[0100] Hj:密码单向哈希函数,其中j = 0,l,2,3,4,5;
[0101] A-B:定义域A到值域B的映射;
[0102] {0,1}M壬意长的"〇"或"1"构成的串;
[0103] X:笛卡尔乘积;
[0104] Zq'基于素数q构成的非零乘法群;
[0105] m:明文消息;
[0106] 1:明文消息m的长度;
[0107] {0,1}1:长度为1的"0"或"Γ构成的串;
[0108] k:对称密钥;
[0109] Ek:对称加密算法;
[0110] Dk:对称解密算法;
[0111] params:密码系统参数;
[0112] d:用户的私钥;
[0113] V:用户的验证份额;
[0114] ID:用户的身份信息;
[0115] t:密钥生成中心KGC随机选取的整数;
[0116] T:用户的公钥验证参数;
[0117] PK:用户的公钥;
[0118] X:用户的公钥隐藏参数;
[0119] S:发送者;
[0120] ds:发送者S的私钥;
[0121] Vs:发送者S的验证份额;
[0122] ts:密钥生成中心KGC为发送者S随机选取的整数;
[0123] Ts:发送者S的公钥验证参数;
[0124] PKs:发送者S的公钥;
[0125] XS:发送者S的公钥隐藏参数;
[0126] η:发送者S在已注册的用户中随机选取的接收者的数目;
[0127] Ri:第 i 个接收者,i = l,2,…,η;
[0128] cU:第i个接收者心的私钥;
[0129] I:第i个接收者心的验证份额;
[0130] ti:密钥生成中心KGC为接收者Ri随机选取的整数;
[0131] :第i个接收者心的公钥验证参数;
[0132] Xl:第i个接收者心的公钥隐藏参数;
[0133] Ks,1:发送者S与第i个接收者心之间的关联信息,i = l,2,…,η;
[0134] PKi:第i个接收者Ri的公钥,i = 1,2,…,η;
[0135] IDi:第i个接收者Ri的身份信息,i = 1,2,…,η;
[0136] ω i:第i个接收者Ri的伪身份值,i = 1,2,…,η;
[0137] f(x):接收者身份信息混合值,其中X表示自变量;
[0138] Π:连乘操作;
[0139] u:发送者S随机选取的整数;
[0140] mod:求模操作;
[0141] J:密钥验证值;
[0142] δ:发送者S随机选取的长度为1的"0"或"Γ构成的串;
[0143] Φ:逐位异或操作;
[0144] Ζ:加密消息密文;
[0145] h:密文有效性参数;
[0146] ai:接收者身份信息混合值f (X)的系数,其中i = 0,1,…,η-l;
[0147] IDs:发送者S的身份信息;
[0148] C:签密密文;
[0149] di:第i个接收者Ri的私钥,i = 1,2,…,η;
[0150] l·/:权限参数。
[0151] 本发明基于椭圆曲线的无密钥托管问题的多接收者签密方法具体步骤如下:
[0?52]步骤1,生成系统参数。
[0153]密钥生成中心KGC根据系统安全参数λ选取大素数q,确定循环群Gq,并选取一条在 循环群GJ:的安全椭圆曲线E,P为椭圆曲线E上的点,其阶为p,p为大素数;随机选取密码系 统主密钥s e Z<;并秘密保存,其中e表示限定域符号,Z<;表示基于大素数q构成的非零乘法 群;设明文消息m的长度为1,构造6个密码单向Hash函数,分别记为:
[0154] Ho: {0,1}*^Gq;Hi :Gq X Gq X {0,1};H2 :Gq X Gq^Zq*;
[0155] H3 : Zq*^ {0,1)^1^4 :(0,1}{0,1}1 ;
[0156] H5: {Ο,?Ρχ {0,1}*X {OJPxZqtx …XZq*-Zq*;
[0157] 其中,Ho,Hi,H2,H3,H4,H5表示密钥生成中心KGC构造的6个密码单向哈希函数,A-B 表示定义域A到值域B的映射,{0,1Γ表示任意长的"0"或"Γ构成的串,Gq为密钥生成中心 KGC选取的循环群,X表示笛卡尔乘积,Z<;表示基于大素数q构成的非零乘法群,1表示明文 消息m的长度,{0,1} 1表示长度为1的"0"或"Γ构成的串;
[0158] 密钥生成中心KGC从现有的对称加密算法中任意选取一种对称加密算法Ek,并选 取与该对称加密算法对应的对称解密算法Dk;
[0159] 密钥生成中心KGC构造并公开密码系统参数,密码系统参数的构造方法为:params =<Gq,E,P,Ho,Hi,H2,H3,H4,H5,Ek,Dk>;同时密钥生成中心KGC秘密保存密码系统主密钥s。 [0160]步骤2,发送者注册。
[0161]第一步,发送者S随机选取ds e Z<;作为自己的私钥,并计算自己的验证份额Vs为:Vs = dsP,其中,ds表示发送者S的私钥,e表示限定域符号,Z,表示基于大素数q构成的非零乘 法群,P表示椭圆曲线E上的点。
[0162] 第二步,发送者S将自己的验证份额Vs和身份信息IDs发送给密钥生成中心KGC。密 钥生成中心KGC接收发送者S的验证份额Vs和身份信息IDs后,随机选取整数ts,计算发送者S 的公钥验证参数Ts = tsP和发送者S的公钥PKS = SVS-HQ(IDS),之后计算发送者S的公钥隐藏 参数15=8 +七5111(^5,?1(5,1〇5),其中,了5表示发送者3的公钥验证参数45表示密钥生成中心 KGC为发送者S随机选取的整数,P表示椭圆曲线E上的点,PKs表示发送者S的公钥,S表示密 码系统主密钥,Vs表示发送者S的验证份额,Ηο、^表示密码单向哈希函数,IDs表示发送者S 的身份信息,xs表示发送者S的公钥隐藏参数;
[0163] 密钥生成中心KGC将发送者S的公钥验证参数Ts、发送者S的公钥隐藏参数xs、发送 者S的公钥PKs发送给发送者S。发送者S接收后,判断自己的公钥PKs是否满足验证条件,若 是,则通知密钥生成中心KGC执行本步骤的第三步,否则,向密钥生成中心KGC报错,并退出 发送者注册过程。
[0164] 发送者S的公钥PKs的验证条件是指判断如下等式是否成立,若等式成立,则表示 满足公钥PKs的验证条件,若等式不成立,则表示不满足公钥PKs的验证条件:
[0165] xsVs = PKs+Ho (IDs) +dsTsHi (Ts, PKs, IDs)
[0166] 其中,xs表示发送者S的公钥隐藏参数,Vs表示发送者S的验证份额,PKs表示发送者 S的公钥,Ho、Ηι表示密码单向哈希函数,IDs表示发送者S的身份信息,ds表示发送者S的私 钥,Ts表示发送者S的公钥验证参数。
[0167] 第三步,密钥生成中心KGC对外公布发送者S的公钥PKs,发送者S秘密保存自己的 私钥ds,并退出发送者注册过程。
[0168] 步骤3,接收者注册。
[0169] 第一步,接收者心随机选取cUez,作为自己的私钥,并计算自己的验证份额1为: ViicUP,其中,cU表示接收者心的私钥,e表示限定域符号,z<;表示基于大素数q构成的非零 乘法群,P表示椭圆曲线E上的点。
[0170]第二步,接收者心将自己的验证份额I和身份信息IDi发送给密钥生成中心KGC。密 钥生成中心KGC接收到接收者心的验证份额I和身份信息101后,随机选取整数^,计算接收 者Ri的公钥验证参数Ti = tiP和接收者Ri的公钥PKFsVi-HoaDi),之后计算接收者Ri的公钥 隐藏参数xi = s+tiHi (Ti,PKi,IDi),其中,Ti表示接收者Ri的公钥验证参数,ti表示密钥生成 中心KGC为接收者Ri随机选取的整数,P表示椭圆曲线E上的点,PKi表示接收者Ri的公钥,s表 示密码系统主密钥,Vi表示接收者Ri的验证份额,Ηο、^表示密码单向哈希函数,101表示接收 者Ri的身份信息,xi表示接收者Ri的公钥隐藏参数;
[0171]密钥生成中心KGC将接收者Ri的公钥验证参数Ti、接收者Ri的公钥隐藏参数Xi、接 收者Ri的公钥PKi发送给接收者Ri。接收者Ri接收后,判断自己的公钥PKi是否满足验证条件, 若是,则通知密钥生成中心KGC执行本步骤的第三步,否则,向密钥生成中心KGC报错,并退 出接收者注册过程。
[0172]接收者心的公钥PL的验证条件是指判断如下等式是否成立,若等式成立,则表示 满足公钥PKi的验证条件,若等式不成立,则表示不满足公钥PKi的验证条件:
[0173] XiVi = PKi+Ho(IDi)+diTiHi(Ti,PKi,IDi)
[0174] 其中,xi表示接收者Ri的公钥隐藏参数,Vi表示接收者Ri的验证份额,PKi表示接收 者Ri的公钥,Ηο、Ηι表示密码单向哈希函数,IDi表示接收者Ri的身份信息,di表示接收者Ri的 私钥,Ti表示接收者Ri的公钥验证参数。
[0175] 第三步,密钥生成中心KGC对外公布接收者Ri的公钥PKi,接收者Ri秘密保存自己的 私钥cU,并退出接收者注册过程。
[0176] 步骤4,发送者签密。
[0177] 发送者S执行步骤2进行注册并获取自己的公钥PKs和私钥ds之后,在步骤3已注册 的用户中,随机选取η个接收者Ri,R 2,…,Rn,并计算自己与每一个接收者心之间的关联信息 Ks.izcMPKi+HodDO)和每一个接收者的伪身份值《1 =出(1(5山!1()(10〇),其中,丨=1, 2,...,n,n表示发送者S在已注册用户中随机选取的接收者的数目,ds表示发送者S的私钥, PKi表示第i个接收者Ri的公钥,H〇、H 2表示密码单向哈希函数,IDi表示第i个接收者Ri的身份 信息。
[0178] 发送者S随机选取u e Ζ<Λ构造接收者身份信息混合值:
,其中,e表示限定域符号,Ζ,表示基 于大素数q构成的非零乘法群,f(x)表示接收者身份信息混合值,X表示自变量,Π表示连乘 操作,η表示发送者S在已注册的用户中随机选取的接收者的数目,i表示计数游标,ωι表示 第i个接收者心的伪身份值,u表示发送者S随机选取的整数,mod表示求模操作,q表示密钥 生成中心KGC选取的素数;
[0179] 发送者S随机选取δ e {〇,I}1,计算密钥验证值和加密消息 Z =爲^(叫·其中,s表示发送者S随机选取的长度为1的"0"或"Γ构成的串,e表示限定域 符号,1表示明文消息m的长度,{0,1} 1表示长度为1的"0"或"Γ构成的串,J表示密钥验证 值,Φ表示逐位异或操作,H3、H4表示密码单向哈希函数,u表示发送者S随机选取的整数,Z表 示加密消息密文,E k表示对称加密算法,k = H4(S)为加密时使用的对称密钥,m表示明文消 息;
[0180] 发送者S计算密文有效性参数h = ?(m,Z,J,ao,ai,. . .,an-i),其中,h表示密文有效 性参数,H5表示密码单向哈希函数,m表示明文消息,Z表示加密消息密文,J表示密钥验证 值, &0,&1,一,&"-1表示接收者身份信息混合值汽1)的系数;
[0181] 发送者S构造签密密文ε = υ,Ζ,Ι〇5,1ι,&(),&1,. . .,an-,并将签密密文C进行广播。 [0182]步骤5,接收者解密。
[0183] 接收者心执行步骤3进行注册并获取自己的公钥PI和私钥cU后,按照下式,计算与 发送者S之间的关联信息Ks,1:
[0184] Ks,i = di(PKs+Ho(IDs))
[0185] 其中,KS>1表示发送者S与第i个接收者心之间的关联信息,i = l,2,…,n,n表示发 送者S在已注册的用户中随机选取的接收者的数目,cU表示第i个接收者心的私钥,PKs表示 发送者S的公钥,Ho表示密码单向哈希函数,IDs表示发送者S的身份信息;
[0186] 按照下式,接收者心计算伪身份值ω ,:
[0187] 〇i = H2(Ks,i,Ho(IDi))
[0188] 其中,表示第i个接收者心的伪身份值,H2、Ho表示两个密码单向哈希函数,KS>1 表示发送者s与第i个接收者心之间的关联信息,im表示第i个接收者心的身份信息;
[0189] 按照下式,接收者心计算发送者S随机选取的整数u:
[0190] u = f ( ω i)
[0191] 其中,f(x)表示接收者身份信息混合值,x表示自变量,ω,表示第i个接收者心的伪 身份值。
[0192] 按照下式,接收者心计算发送者S随机选取的长度为1的"0"或"Γ构成的串δ:
[0193] S = J@/I,(u)
[0194] 其中,δ表示发送者S随机选取的长度为1的"0"或"Γ构成的串,1表示明文消息m的 长度,J表示密钥验证值,Θ表示逐位异或操作,H 3表示密码单向哈希函数,u表示发送者S随 机选取的整数;
[0195] 按照下式,接收者心计算明文消息m:
[0196] /η = 〇,/i(,Vi(Z)
[0197] 其中,m表示明文消息,Dk表示对称加密算法,k = H4(S)为解密时使用的对称密钥, H4表示密码单向哈希函数,δ表示发送者S随机选取的长度为1的"0"或"Γ构成的串,1表示 明文消息m的长度,Ζ表示加密消息密文;
[0198] 按照下式,接收者心计算权限参数:
[0199] h7 =H5(m,Z,J,ao,ai, . . . ,an-i)
[0200] 其中,V表示权限参数,H5表示密码单向哈希函数,m表示明文消息,Z表示加密消 息密文,J表示密钥验证值,ao,^,··· 表示接收者身份信息混合值f(x)的系数;
[0201] 步骤6,接收者判断权限参数V与密文有效性参数h是否相等。若是,则执行步骤7, 否则,执行步骤8。
[0202] 步骤7,接收者接受明文消息,并退出接收者解密过程。
[0203] 步骤8,接收者拒绝明文消息,并退出接收者解密过程。
【主权项】
1. 一种基于椭圆曲线的无密钥托管问题的多接收者签密方法,其特征在于包括以下步 骤: (1) 生成系统参数: (la) 密钥生成中心KGC选取素数q,确定循环群Gq; (lb) 密钥生成中心KGC选取一条在循环群Gq上的椭圆曲线E,P为椭圆曲线E上的点,其阶 为P,P为素数; (lc) 密钥生成中心KGC选取密码系统主密钥s,并将密码系统主密钥s秘密保存; (ld) 密钥生成中心KGC构造6个密码单向哈希函数,分别记为: H〇:{0,l}^Gq;Hi:GqXGqX{0,l}^Zq*;H2 = GqXGq^Zq*; H3:Zq^{0,1}1;H4:{0,I}1; H5:10,1}1 X {0,1}*X {0,111XZq*X …XZq^Zq*; 其中,Ho,H1,H2,H3,H4,H5表示密钥生成中心KGC构造的6个密码单向哈希函数,A-B表示 定义域A到值域B的映射,{0,?Γ表示任意长的0或1构成的串,Gq为密钥生成中心KGC选取的 循环群,X表示笛卡尔乘积,表示基于素数q构成的非零乘法群,1表示明文消息m的长度, {0,1} 1表示长度为1的0或1构成的串; (I e)密钥生成中心KGC选取对称加密算法Ek和对应的对称解密算法Dk,其中k表示对称 密钥; (If)密钥生成中心KGC发布密钥生成中心KGC选取循环群Gq、椭圆曲线E、椭圆曲线E上的 点P、6个密码单向哈希函数Ho,H1,H2,H3,H4,H5、对称加密算法Ek、对称解密算法Dk,秘密保存 密码系统主密钥s; (2) 用户注册: (2a)用户注册步骤中的用户包括接收者和发送者,均需通过执行下列步骤获取自己的 公钥和私钥; (2b)用户随机选取一个整数作为自己的私钥d; (2c)按照下式,用户计算验证份额V: V = dP 其中,V表示用户的验证份额,d表示用户的私钥,P表示椭圆曲线E上的点; (2d)用户将自己的验证份额V和自己的身份信息ID发送给密钥生成中心KGC; (2e)密钥生成中心KGC收到用户的验证份额V和身份信息ID后,随机选取一个整数t,按 照下式计算用户的公钥验证参数T: T = tP 其中,T表示用户的公钥验证参数,t表示密钥生成中心KGC随机选取的整数,P表示椭圆 曲线E上的点; (2f)按照下式,密钥生成中心KGC计算用户的公钥PK: PK = SV-Ho(ID) 其中,PK表示用户的公钥,s表示密码系统主密钥,V表示用户的验证份额,Ho表示密码单 向哈希函数,ID表示用户的身份信息; (2g)按照下式,密钥生成中心KGC计算用户的公钥隐藏参数X: x = s+tHi(T,PK,ID) 其中,X表示用户的公钥隐藏参数,S表示密码系统主密钥,t表示密钥生成中心KGC随机 选取的整数,H1表示密码单向哈希函数,T表示用户的公钥验证参数,PK表示用户的公钥,ID 表示用户的身份信息; (2h)密钥生成中心KGC将用户的公钥验证参数T、用户的公钥隐藏参数X和用户的公钥 PK发送给用户; (2i)用户判断收到的公钥PK是否满足如下等式,若是,则执行步骤(2j),否则,则执行 步骤(2k): xV = PK+H〇 (ID) +dTHi (T, PK, ID) 其中,x表示用户的公钥隐藏参数,V表示用户的验证份额,PK表示用户的公钥,出、出表 示密码单向哈希函数,ID表示用户的身份信息,d表示用户的私钥,T表示用户的公钥验证参 数; (2j)密钥生成中心KGC对外公布用户的公钥PK,用户秘密保存自己的私钥d,之后退出 用户注册过程; (2k)用户向密钥生成中心KGC报错,并退出用户注册过程; (3)发送者签密: (3a)发送者S判断自己是否已经执行步骤2的用户注册过程,并获取自己的公钥PKs和私 钥ds,若是,则执行步骤(3b),否则,发送者S执行步骤⑵获取自己的公钥PKs和私钥ds后,执 行步骤(3b); (3b)发送者S在已注册的用户中随机选取η个接收者R1,R2,...,Rn,其中,η表示大于0的 整数; (3c)按照下式,发送者S计算与每一个接收者心之间的关联信息Ks,1: Ks,i = ds(PKi+Ho(IDi)) 其中,Ks,i表示发送者S与第i个接收者Ri之间的关联信息,i = 1,2,…,n,n表示发送者S 在已注册的用户中随机选取的接收者的数目,ds表示发送者S的私钥,PK1表示第i个接收者 心的公钥,Ho表示密码单向哈希函数,ID 1表示第i个接收者心的身份信息; (3d)按照下式,发送者S计算每一个接收者R1的伪身份值ω1: Oi = H2(KsjilHodDi)) 其中,ω ,表示第i个接收者心的伪身份值,i = 1,2,…,η,η表示发送者S在已注册的用户 中随机选取的接收者的数目,Η2、Ηο表示两个密码单向哈希函数,Ks,i表示发送者S与第i个接 收者R 1之间的关联信息,ID1表示第i个接收者心的身份信息; (3e)按照下式,发送者S构造接收者身份信息混合值f(x):其中,f(x)表示接收者身份信息混合值,X表示自变量,Π表示连乘操作,η表示发送者S 在已注册的用户中随机选取的接收者的数目,i表示计数游标,Co1表示第i个接收者心的伪 身份值,u表示发送者S随机选取的整数,mod表示求模操作,q为密钥生成中心KGC选取的素 数; (3f)按照下式,发送者S计算密钥验证值J:其中,J表示密钥验证值,S表示发送者S随机选取的长度为1的O或1构成的串,1表示明 文消息m的长度,?表示逐位异或操作,H3表示密码单向哈希函数,u表示发送者S随机选取 的整数; (3g)按照下式,发送者S计算加密消息密文Z:其中,Z表示加密消息密文,Ek表示对称加密算法,k表示对称密钥,k = H4( δ ),H4表示密 码单向哈希函数,S表示发送者S随机选取的长度为1的O或1构成的串,1表示明文消息m的长 度,m表示明文消息; (3h)按照下式,发送者S计算密文有效性参数h: h - Hs (rn, Z, J, ao, ai, . . . , an-i) 其中,h表示密文有效性参数,H5表示密码单向哈希函数,m表示明文消息,Z表示加密消 息密文J表示密钥验证值,ao,^,··· ,aw表示接收者身份信息混合值f(x)的系数; (3i)发送者S将加密消息密文Z、密钥验证值J、接收者身份信息混合值f(x)的系数a〇, ai,…,aw、密文有效性参数h和发送者S的身份信息IDs构成签密密文C,并对签密密文C进行 广播; (4)接收者解密: (4a)接收者心完成步骤2的用户注册过程计算出自己的公钥PK1和私钥Cl1后,进行如下 操作进行解密,i = l,2,…,n; (4b)按照下式,接收者心计算与发送者S之间的关联信息Ks,1: Ks,i = di(PKs+H〇(IDs)) 其中,Ks,i表示发送者S与第i个接收者Ri之间的关联信息,i = 1,2,…,n,n表示发送者S 在已注册的用户中随机选取的接收者的数目,Cl1表示第i个接收者心的私钥,PKs表示发送者 S的公钥,Ho表示密码单向哈希函数,IDs表示发送者S的身份信息; (4c)按照下式,接收者心计算伪身份值ω1: Oi = H2(KsjilHodDi)) 其中,ω ,表示第i个接收者心的伪身份值,i = 1,2,…,η,η表示发送者S在已注册的用户 中随机选取的接收者的数目,Η2、Ηο表示两个密码单向哈希函数,Ks,i表示发送者S与第i个接 收者R 1之间的关联信息,ID1表示第i个接收者心的身份信息; (4d)按照下式,接收者心计算发送者S随机选取的整数u: u = f ( ω i) 其中,u表示发送者S随机选取的整数,f(x)表示接收者身份信息混合值,x表示自变量, W1表示第i个接收者心的伪身份值; (4e)按照下式,接收者心计算发送者S随机选取的长度为1的O或1构成的串δ:其中,S表示发送者S随机选取的长度为1的O或1构成的串,1表示明文消息m的长度,J表 示密钥验证值,Φ表示逐位异或操作,H3表示密码单向哈希函数,u表示发送者S随机选取的 整数; (4f)按照下式,接收者Ri计算明文消息m:其中,m表示明文消息,Dk表示对称解密算法,k表示对称密钥,k = H4(δ),H4表示密码单 向哈希函数,S表示发送者S随机选取的长度为1的O或1构成的串,1表示明文消息m的长度,Z 表示加密消息密文; (4g)按照下式,接收者心计算权限参数M : h - Hs (rn, Z, J, ao, ai, . . . , an-i) 其中,V表示权限参数,H5表示密码单向哈希函数,m表示明文消息,Z表示加密消息密 文,J表示密钥验证值,a^m,··· ,aw表示接收者身份信息混合值f(x)的系数; (5) 接收者判断权限参数V与密文有效性参数h是否相等;若是,则执行步骤(6),否则, 执行步骤(7); (6) 接收者接受明文消息,并退出接收者解密过程; (7) 接收者拒绝明文消息,并退出接收者解密过程。
【文档编号】H04L9/30GK106027239SQ201610504588
【公开日】2016年10月12日
【申请日】2016年6月30日
【发明人】庞辽军, 赵慧洋, 闫旭霞, 李慧贤
【申请人】西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1