一种基于双线性对的身份基身份匿藏密钥协商方法技术

技术编号:21006750 阅读:29 留言:0更新日期:2019-04-30 22:12
本发明专利技术提供了一种高效的基于双线性对的身份基身份匿藏密钥协商方法,其具有的如下特征使得该方法具有唯一性,是目前最为简洁高效、通信便利灵活、隐私保护、和强安全的身份基密钥协商协议。(1)高效性:每个用户仅需做1个配对运算和3个模指数运算。(2)简洁性:无需主公钥。(3)通信便利和灵活性:通信双方无需事先知晓对方身份。(4)隐私保护:提供身份隐藏保护,和可抵赖隐私保护。(5)强安全性:抗临时密钥泄露的强可证明安全。

【技术实现步骤摘要】
一种基于双线性对的身份基身份匿藏密钥协商方法
本专利技术涉及密码
,具体地说,涉及一种基于双线性对的身份基身份匿藏密钥协商方法。
技术介绍
认证密钥交换(AKE),特别是Diffie–Hellman(DH),在现代密码学中扮演着重要的角色,并在公钥密码学和对称密码学之间起到桥梁作用,是一系列广泛标准化并使用的网络安全协议的核心机制。与传统的公钥密码体制下的密钥交换协议相比,基于身份的密钥交换协议将用户的身份作为公钥,可以简化公钥证书管理和发放的问题。但是,原有的安全的基于身份的密钥协商协议均需公开传输用户的身份和公钥信息,并且效率较差。而在移动互联时代,设备的计算和存储能力受限,并且在很多应用中用户的身份信息往往属于敏感信息,需要保护。因此,发展高效的基于身份的身份匿藏密钥协商方法具有重要的理论及应用意义。令G1、G2和GT是三个q阶循环群(q可以是素数,也可以是合数,如RSA模数)。为了描述方便起见,我们记G1、G2和GT为乘法群(所有本专利技术中描述的方案均在G1、G2和GT记为加法群时同样工作),并且在这些群中离散对数问题是难的。一般而言,一个双线性对就是一个从G1×G2到GT的双线性映射,并满足下面性质:(1)双线性性:设g1∈G1,g2∈G2,x,y∈Zq,有(2)非退化性:对于每一个总存在一个g2∈G2,使得其中,是G1的单位元,是GT的单位元;(3)双线性映射可以有效计算。双线性对有下面三种类型:类型-I:G1→G2有一个可有效计算的同构,这时一般记为G1=G2(通常用G表示)。这类双线性对一般可以用超奇异椭圆曲线或超椭圆曲线来实现。类型-II:有一个有效计算群同态G2→G1,但无从G1到G2的可有效计算的同态.这类双线性对一般用素数域上的一般椭圆曲线实现,G1是基域上椭圆曲线群,G2是扩域上椭圆曲线子群,G2→G1的同态一般取迹映射。类型-III:没有任何G2→G1或G1→G2的有效可计算的同态(同态甚至同构一定是存在的,这里是指没有有效计算的同态)。这类双线性对也是用素域上的一般曲线来构造,G2一般取迹映射的核。对于类型-III的配对,G1通常是定义在有限域Fp上椭圆曲线,记为E(Fp),上阶为q的子群,其中p是一个素数。令G∈{G1,G2,}是阶为N的群G’的q-阶子群,其中N是整数。判断一个元素是否X∈G的方法包括:(1)显式验证:检查X∈G′且Xq≠1G,其中1G是群G的单位元;(2)隐式验证:t=N/q为群G的伴随因子,检查X∈G′且Xt≠1G;一般来说,X∈G′和Xt≠1G保证了X不在G′的一个(小的)子群中,该小子群以t的一个因数为阶(但这不能完全保证X∈G,比如,考虑X=-gx)。(3)利用配对检查:令Y∈G1或Y∈G2,检查或(4)对于一些特殊的子群安全曲线,只需检查X∈G′1和/或本专利技术所描述的方法可以在上述三种类型双线性对任一类型上都可以工作,区别在于:对于类型-I双线性对,G1=G2;对于类型-II双线性对,系统公开参数中需要有一个可有效计算的同态ψ:G1→G2,即ψ为将G1中元素映射到G2的可有效计算的同态;对于类型-III双线性对,系统公开参数中不需要有一个可有效计算的同态ψ:G1→G2,但每个用户的私钥由一个增加到两个,分别用于会话发起和会话接收。
技术实现思路
为解决上述问题,本专利技术提供了一种在双线性配对环境下高效的基于身份的身份匿藏密钥协商方法,所述方法包括:基于类型-I对称双线性配对方法实现系统建立:生成系统公开参数,包括:一个安全参数n,双线性对G1×G1→GT,整数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(m1,…,mk),k≥1,表示基于对称密钥k对消息m1,…,mk进行加密,具体而言,把m1||…||mk按照约定的编码方式进行加密,||表示字符串链接操作,这里,m1,…,mk的先后顺序可以任意变化。D是与加密函数E对应的解密函数,Dk(c)表示基于对称密钥k对密文c进行解密;在实际应用中,E可以是一个带有附加数据的认证加密函数。系统公开参数包括:系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(PrivateKeyGenerator,简称为PKG)生成用户主密钥(MasterSecretKey)(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是可为空的消息的集合,在实际应用中auxX可以包含认证加密的附加数据;(2)用户B接收到{X,auxX}后,选取计算Y=(H1(IDB))y,以及若则重新选取y,并重新计算Y和PSB;(3)用户B计算(K1,K2)←KDF(PSB,X||Y||aux),其中“||”是字符串联结符,在本专利技术中“||”联结的字符串的顺序可以任意,是包含IDB的一个消息集合的可为空的子集,且可为空,auxY是可为空的消息的集合;K1和K2相同或不同,K1=(KA,KB),KA和KB相同或不同;在具体应用中,通常使用HMAC作为KDF,KDF的第一个输入是随机密钥种子,后面的输入的顺序可以任意调整;(4)用户B发送{Y,CB,auxY}给用户A,在实际应用中auxY可以包含认证加密的附加数据(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,双线性对G1×G2→GT,整数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)表示本文档来自技高网
...

【技术保护点】
1.一种基于双线性对的身份基身份匿藏密钥协商方法,其特征在于,所述方法包括在三种类型的双线性配对中的实现方法,分别描述如下:基于类型‑I对称双线性配对方法实现系统建立:生成系统公开参数,包括:一个安全参数n,双线性对

【技术特征摘要】
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进行解密;系统公开参数:系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(PrivateKeyGenerator,简称为PKG)生成用户主密钥(MasterSecretKey)(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进行解密;系统公开参数:系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(PrivateKeyGenerator,简称为PKG)生成用户主密钥(MasterSecretKey)(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)...

【专利技术属性】
技术研发人员:赵运磊黄兴忠
申请(专利权)人:上海扈民区块链科技有限公司
类型:发明
国别省市:上海,31

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

1