[发明专利]一种基于双线性对的身份基身份匿藏密钥协商方法有效
申请号: | 201910118821.8 | 申请日: | 2019-02-15 |
公开(公告)号: | CN109698747B | 公开(公告)日: | 2021-08-24 |
发明(设计)人: | 赵运磊;黄兴忠 | 申请(专利权)人: | 上海扈民区块链科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 陈斌 |
地址: | 202156 上海市崇*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种高效的基于双线性对的身份基身份匿藏密钥协商方法,其具有的如下特征使得该方法具有唯一性,是目前最为简洁高效、通信便利灵活、隐私保护、和强安全的身份基密钥协商协议。(1)高效性:每个用户仅需做1个配对运算和3个模指数运算。(2)简洁性:无需主公钥。(3)通信便利和灵活性:通信双方无需事先知晓对方身份。(4)隐私保护:提供身份隐藏保护,和可抵赖隐私保护。(5)强安全性:抗临时密钥泄露的强可证明安全。 | ||
搜索关键词: | 一种 基于 双线 身份 匿藏 密钥 协商 方法 | ||
【主权项】:
1.一种基于双线性对的身份基身份匿藏密钥协商方法,其特征在于,所述方法包括在三种类型的双线性配对中的实现方法,分别描述如下:基于类型‑I对称双线性配对方法实现系统建立:生成系统公开参数,包括:一个安全参数n,双线性对![]()
整数q,其中G1和GT是三个q阶循环群,q的二进制长度(记为|q|)为n的多项式;一个哈希函数:
其中{0,1}*表示任意长度的0‑1串,
为群G1的单位元,
表示G1中除去
之后的元素集合;一个密钥导出函数KDF:{0,1}*→{0,1}p(n),其中p(n)表示n的多项式;令g1∈G1为G1的生成元,
为群GT的单位元;E为一个对称加密函数,Ek(m)表示基于对称密钥k对消息m∈{0,1}*进行加密;D是与加密函数E对应的解密函数,Dk(c)表示基于对称密钥k对密文c进行解密;系统公开参数:
系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(Private Key Generator,简称为PKG)生成用户主密钥(Master Secret Key)
(msk从
或
的一个子集中随机选取,其中
的取值范围为1到q‑1中的整数);公开发布SysPar,保密保存msk,用户私钥生成:具有身份ID∈{0,1}*的用户在PKG注册,PKG根据主密钥msk和用户身份生成用户私钥:SKID=(H1(ID))msk,为了描述方便起见,下述的描述中会话发起方记为A,其私钥记为SKA=(H1(IDA))msk;会话接收方记为B,其私钥记为SKB=(H1(IDB))msk,密钥协商过程:(1)用户A选取
计算X=(H1(IDA))x,用户A将{X,auxX}发送给用户B,其中auxX是可为空的消息的集合;(2)用户B接收到{X,auxX}后,检查
如果检查失败则中止运行;选取
计算Y=(H1(IDB))y,以及
(3)用户B计算(K1,K2)←KDF(PSB,X||Y||aux),
其中“||”是字符串联结符,
是包含IDB的一个消息集合的可为空的子集,
且可为空,auxY是可为空的消息的集合;K1和K2相同或不同,K1=(KA,KB),KA和KB相同或不同;(4)用户B发送{Y,CB,auxY}给用户A;(5)用户A接收到{Y,CB,auxY}后,检查或不检查
计算![]()
计算(K1,K2)←KDF(PSA,X||Y||aux);(6)用户A使用KB解密CB得到
并验证
且Y=(H1(IDB))y是否成立;如果验证不通过,用户A中止协议运行;如果验证成功,A进一步计算
并将CA发送给用户B,其中
是包含IDA’的一个消息集合的可为空的消息集合;用户A将会话密钥K设置为K2或K1或会话密钥由
导出;(7)用户B接收到CA后,使用KA解密CA得到
验证
且X=(H1(IDA))x;若验证失败,用户B中止协议运行;如果验证通过,用户B将会话密钥K设置为K2或K1或会话密钥由
导出;基于类型‑II非对称双线性对方法实现系统建立:生成系统公开参数,包括:一个安全参数n,双线性对![]()
整数q,其中G1、G2和GT是三个q阶循环群,q的二进制长度(记为|q|)为n的多项式;一个哈希函数:
其中{0,1}*表示任意长度的0‑1串,
为群G1的单位元,
表示G1中除去
之后的元素集合;一个可有效计算的同态ψ:G1→G2;一个密钥导出函数KDF:{0,1}*→{0,1}p(n),其中p(n)表示n的多项式;令g1∈G1为G1的生成元,
为群GT的单位元;E为一个对称加密函数,Ek(m)表示基于对称密钥k对消息m∈{0,1}*进行加密;D是与加密函数E对应的解密函数,Dk(c)表示基于对称密钥k对密文c进行解密;系统公开参数:![]()
系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(Private Key Generator,简称为PKG)生成用户主密钥(Master Secret Key)
(msk从
或
的一个子集中随机选取);公开发布SysPar,保密保存msk,用户私钥生成:具有身份ID∈{0,1}*的用户在PKG注册,PKG根据主密钥msk和用户身份生成用户私钥:SKID=(H1(ID))msk,为了描述方便起见,下述的描述中会话发起方记为A,其私钥记为SKA=(H1(IDA))msk;会话接收方记为B,其私钥记为SKB=(H1(IDB))msk,密钥协商过程:(1)用户A选取
计算X=(H1(IDA))x,用户A将{X,auxX}发送给用户B,其中auxX是可为空的消息的集合;(2)用户B接收到{X,auxX}后,检查
如果检查失败则中止运行;选取
计算Y=(H1(IDB))y,以及
(3)用户B计算(K1,K2)←KDF(PSB,X||Y||aux),
其中
是包含IDB的一个消息集合的可为空的子集,![]()
且可为空,auxY是可为空可为的消息的集合;K1和K2相同或不同,K1=(KA,KB),KA和KB相同或不同;(4)用户B发送{Y,CB,auxY}给用户A;(5)用户A接收到{Y,CB,auxY}后,检查或不检查
计算![]()
计算(K1,K2)←KDF(PSA,X||Y||aux);(6)用户A使用KB解密CB得到
并验证
且Y=(H1(IDB))y是否成立;如果验证不通过,用户A中止协议运行;如果验证成功,A进一步计算
并将CA发送给用户B,其中
是包含IDA的一个消息集合的可为空的子集;用户A将会话密钥K设置为K2或K1或会话密钥由
导出;(7)用户B接收到CA后,使用KA解密CA得到
验证
且X=(H1(IDA))x;若验证失败,用户B中止协议运行;如果验证通过,用户B将会话密钥K设置为K2或K1或会话密钥由
导出,基于类型‑III非对称双线性对方法实现系统建立:生成系统公开参数,包括:一个安全参数n,双线性对![]()
但没有任何G2→G1或G1→G2的有效可计算的同态,整数q,其中G1、G2和GT是三个q阶循环群,q的二进制长度(记为|q|)为n的多项式;两个哈希函数:
其中{0,1}*表示任意长度的0‑1串,
为群G1的单位元,
表示G1中除去
之后的元素集合;
为群G2的单位元,
表示G2中除去
之后的元素集合;一个密钥导出函数KDF:{0,1}*→{0,1}p(n),其中p(n)表示n的多项式;令g1∈G1为G1的生成元,g2∈G2为G2的生成元,
为群GT的单位元;E为一个对称加密函数,Ek(m)表示基于对称密钥k对消息m∈{0,1}*进行加密;D是与加密函数E对应的解密函数,Dk(c)表示基于对称密钥k对密文c进行解密;系统公开参数:
系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(Private Key Generator,简称为PKG)生成用户主密钥(Master Secret Key)
(msk从
或
的一个子集中随机选取,其中
的取值范围为1到q‑1中的整数,且q为一个整数);公开发布SysPar,保密保存msk,用户私钥生成:具有身份ID∈{0,1}*的用户在PKG注册,PKG根据主密钥msk和用户身份生成用户私钥:
其中当ID作为会话发起者时使用
当ID作为会话接收者时使用
为了描述方便起见,下述的描述中会话发起方记为A,其私钥记为![]()
会话接收方记为B,其私钥记为![]()
密钥协商过程:(1)用户A选取
计算X=(H1(IDA))x,用户A将{X,auxX}发送给用户B,其中auxX是可为空的消息的集合;(2)用户B接收到{X,auxX}后,检查
如果检查失败则中止运行;选取
计算Y=(H2(IDB))y,以及
(3)用户B计算(K1,K2)←KDF(PSB,X||Y||aux),
其中
是包含IDB的一个消息集合的可为空的子集,![]()
且可为空,auxY是可为空的消息的集合;K1和K2相同或不同,K1=(KA,KB),KA和KB相同或不同;(4)用户B发送{Y,CB,auxY}给用户A;(5)用户A接收到{Y,CB,auxY}后,检查或不检查
计算
计算(K1,K2)←KDF(PSA,X||Y||aux);(6)用户A使用KB解密CB得到
并验证
且Y=(H2(IDB))y是否成立;如果验证不通过,用户A中止协议运行;如果验证成功,A进一步计算
并将CA发送给用户B,其中
是包含IDA的一个消息集合的可为空的子集;用户A将会话密钥K设置为K2或K1或会话密钥由
导出;(7)用户B接收到CA后,使用KA解密CA得到
验证
且X=(H1(IDA))x;若验证失败,用户B中止协议运行;如果验证通过,用户B将会话密钥K设置为K2或K1或会话密钥由
导出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海扈民区块链科技有限公司,未经上海扈民区块链科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910118821.8/,转载请声明来源钻瓜专利网。