CN109698747A - 一种基于双线性对的身份基身份匿藏密钥协商方法 - Google Patents
一种基于双线性对的身份基身份匿藏密钥协商方法 Download PDFInfo
- Publication number
- CN109698747A CN109698747A CN201910118821.8A CN201910118821A CN109698747A CN 109698747 A CN109698747 A CN 109698747A CN 201910118821 A CN201910118821 A CN 201910118821A CN 109698747 A CN109698747 A CN 109698747A
- Authority
- CN
- China
- Prior art keywords
- user
- key
- aux
- session
- msk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012795 verification Methods 0.000 claims description 32
- 239000003999 initiator Substances 0.000 claims description 13
- 238000009795 derivation Methods 0.000 claims description 12
- 125000004122 cyclic group Chemical group 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000007689 inspection Methods 0.000 claims description 3
- 206010000210 abortion Diseases 0.000 claims description 2
- 230000014759 maintenance of location Effects 0.000 claims 3
- 238000004891 communication Methods 0.000 abstract description 5
- 239000002131 composite material Substances 0.000 description 9
- 238000001162 G-test Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 101100242909 Streptococcus pneumoniae (strain ATCC BAA-255 / R6) pbpA gene Proteins 0.000 description 1
- 101100269618 Streptococcus pneumoniae serotype 4 (strain ATCC BAA-334 / TIGR4) aliA gene Proteins 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种高效的基于双线性对的身份基身份匿藏密钥协商方法,其具有的如下特征使得该方法具有唯一性,是目前最为简洁高效、通信便利灵活、隐私保护、和强安全的身份基密钥协商协议。(1)高效性:每个用户仅需做1个配对运算和3个模指数运算。(2)简洁性:无需主公钥。(3)通信便利和灵活性:通信双方无需事先知晓对方身份。(4)隐私保护:提供身份隐藏保护,和可抵赖隐私保护。(5)强安全性:抗临时密钥泄露的强可证明安全。
Description
技术领域
本发明涉及密码技术领域,具体地说,涉及一种基于双线性对的身份基身份匿藏密钥协商方法。
背景技术
认证密钥交换(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可以是一个带有附加数据的认证加密函数。系统公开参数包括:
系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(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是可为空的消息的集合,在实际应用中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)表示n的多项式;令g1∈G1为G1的生成元,为群GT的单位元;E为一个对称加密函数,Ek(m1,…,mk),k≥1,表示基于对称密钥k对消息m1,…,mk进行加密,具体而言,把m1||…||mk按照约定的编码方式进行加密,||表示字符串链接操作,这里,m1,…,mk的先后顺序可以任意变化。D是与加密函数E对应的解密函数,Dk(c)表示基于对称密钥k对密文c进行解密;系统公开参数:
系统公开参数可以由系统内的用户协商决定,或由可信第三方给定;私钥生成器(Private Key Generator,简称为PKG)生成用户主密钥(Master Secret Key)(mak从或的一个子集中随机选取);公开发布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,以及若则重新选取y,并重新计算Y和PSB;
(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,双线性对G1×G2→GT,整数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(m1,…,mk),k≥1,表示基于对称密钥k对消息m1,…,mk进行加密,具体而言,把m1||…||mk按照约定的编码方式进行加密,||表示字符串链接操作,这儿,m1,…,mk的先后顺序可以任意变化。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,以及若则重新选取y,并重新计算Y和PSB;
(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或会话密钥由
导出。
根据本发明的一个实施例,
其特征在于,用户B收到X之后,检查如果检查不通过则用户B中止运行;令G1是阶为N1的群G′1的q-阶子群,其中N1是整数;检查一个元素的方法包括:(1)显式检查:检查且其中表示的是G′1除去单位元之后剩余元素的集合;或(2)隐式检查:令t1=N1/q为群G1的伴随因子,检查X∈G′1且(3)PS-检查:对于类型-I实现,计算对于类型-II实现,计算 对于类型-III的实现,如果或则用户B中止运行;(4)对于一些特殊的子群安全曲线,只需检查X∈G′1和/或
根据本发明的一个实施例,
其特征在于,令G2是阶为N2的群G′2的q-阶子群,用户A收到Y之后,检查如果检查不通过则用户A中止运行。
根据本发明的一个实施例,
对于基于类型-III非对称双线性对方法实现中,如果IDA只是会话的发起方,则在会话密钥的生成过程中,只使用IDA的私钥同理,如果IDB只是会话的接收方,则在会话密钥的生成过程中,只使用IDB的私钥
根据本发明的一个实施例,
且和/或q是素数,和/或,E是一个认证加密函数,和/或x从或的一个子集中均匀选取,y从或的一个子集中均匀选取。
根据本发明的一个实施例,
且
本发明方法的操作步骤,在不影响功能的前提下,可以任意调换。
附图说明
图1是发明方法一个实例(对称双线性配对类型-I)实现的流程图。
图2是发明方法一个实例(非对称双线性配对类型-II)实现的流程图。
图3是发明方法一个实例(非对称双线性配对类型-III)实现的流程图。
具体实施方式
图1是发明方法一个实例(类型-I对称双线性配对)实现的流程图;其中,G1=G2,双线性对G1×G1→GT,其中G1和GT是两个q阶循环群,其中G1是阶为N1群G′1的q-阶子群,其中伴随因子t1=N1/q,q的二进制长度(记为|q|)为安全参数n的多项式;q可以取合数或素数;一个哈希函数: 其中{0,1}*表示任意长度的0-1串,为群G1的单位元,表示G1中除去之后的元素集合;密钥导出函数KDF:{0,1}*→{0,1}klen×{0,1}klen采用Openssl的AES算法内置KDF或HMAC或SM9所描述的密钥导出函数,其中klen是一个正整数表示加密函数E所需对称密钥的长度;为群GT的单位元;E为一个认证加密函数;D是与加密函数E对应的解密函数, 指的是利用密钥K1对消息(IDA,x)加密得到密文CA,其中K1的二进制长度|K1|=klen;同理,指的是利用密钥K1对消息(IDB,y)加密得到密文CB。指的是利用密钥K1对密文CA解密得到消息(IDA,x);同理,指的是利用密钥K1对密文CB解密得到消息(IDB,y)。表示的是x从中随机选取,表示的是y从中随机选取,表示的是从中随机选取系统主私钥msk。系统公开参数:
在图1中,会话发起方记为A,其私钥记为SKA=(H1(IDA))msk;会话接收方记为B,其私钥记为SKB=(H1(IDB))msk。
密钥协商过程如下:
(1)用户A选取计算X=(H1(IDA))x,用户A将X发送给用户B;
(2)用户B接收到X后,检查X∈G′1,如果检查不通过则中止运行;选取计算Y=(H1(IDB))y,以及若则中止运行;
(3)用户B计算(K1,K2)←KDF(PSB,X||Y),
(4)用户B发送{Y,CB}给用户A;
(5)用户A接收到{Y,CB}后,计算(K1,K2)←KDF(PSA,X||Y);
(6)用户A使用K1解密CB得到(IDB,y),并验证且Y=(H1(IDB))y是否成立;如果验证不通过,用户A中止协议运行;如果验证成功,A进一步计算并将CA发送给用户B;用户A将会话密钥K设置为K2;
(7)用户B接收到CA后,使用K1解密CA得到(IDA,x),验证且X=(H1(IDA))x;若验证失败,用户B中止协议运行;如果验证通过,用户B将会话密钥K设置为K2。
图2是发明方法一个实例(类型-II非对称双线性配对)实现的流程图;其中,G1≠G2,双线性对G1×G2→GT,其中G1、G2和GT是三个q阶循环群,G1是阶为N1群G′1的q-阶子群,其中伴随因子t1=N1/q,q的二进制长度(记为|q|),为安全参数n的多项式;q可以取合数或素数;一个哈希函数: 其中{0,1}*表示任意长度的0-1串,为群G1的单位元,表示G1中除去之后的元素集合;密钥导出函数KDF:{0,1}*→{0,1}klen×{0,1}klen采用Openssl的AES算法内置KDF或HMAC或SM9所描述的密钥导出函数,其中klen是一个正整数表示加密函数E所需对称密钥的长度;为群GT的单位元;ψ:G1→G2是一个可有效计算的从G1到G2同态;E为一个认证加密函数;D是与加密函数E对应的解密函数,指的是利用密钥K1对消息(IDA,x)加密得到密文CA,其中K1的二进制长度|K1|=klen;同理, 指的是利用密钥K1对消息(IDB,y)加密得到密文CB。 指的是利用密钥K1对密文CA解密得到消息(IDA,x);同理, 指的是利用密钥K1对密文CB解密得到消息(IDB,y)。表示的是x从中随机选取,表示的是y从中随机选取,表示的是从中随机选取系统主私钥msk。系统公开参数:
在图2中,会话发起方记为A,其私钥记为SKA=(H1(IDA))msk;会话接收方记为B,其私钥记为SKB=(H1(IDB))msk。
密钥协商过程如下:
(1)用户A选取计算X=(H1(IDA))x,用户A将X发送给用户B;
(2)用户B接收到X后,检查X∈G′1,如果检查不通过则中止运行;选取计算Y=(H1(IDB))y,以及若 则中止运行;
(3)用户B计算(K1,K2)←KDF(PSB,X||Y),
(4)用户B发送{Y,CB}给用户A;
(5)用户A接收到{Y,CB}后,计算(K1,K2)←KDF(PSA,X||Y);
(6)用户A使用K1解密CB得到(IDB,y),并验证且Y=(H1(IDB))y是否成立;如果验证不通过,用户A中止协议运行;如果验证成功,A进一步计算并将CA发送给用户B;用户A将会话密钥K设置为K2;
(7)用户B接收到CA后,使用K1解密CA得到(IDA,x),验证且X=(H1(IDA))x;若验证失败,用户B中止协议运行;如果验证通过,用户B将会话密钥K设置为K2。
图3是发明方法一个实例(类型-III非对称双线性配对)实现的流程图;其中,G1≠G2,双线性对G1×G2→GT,其中G1、G2和GT是三个q阶循环群,G1是阶为N1群G′1的q-阶子群,其中伴随因子t1=N1/q,q的二进制长度(记为|q|)为安全参数n的多项式;对于类型-III的配对,G1通常是定义在有限域Fp上椭圆曲线,记为E(Fp),上阶为q的子群,其中p是一个素数;特别地,对于我国SM9标准所采用的BN曲线,t1=1。q可以取合数或素数;两个哈希函数:其中{0,1}*表示任意长度的0-1串,为群G1的单位元,表示G1中除去之后的元素集合;密钥导出函数KDF:{0,1}*→{0,1}klen×{0,1}klen采用Openssl的AES算法内置KDF或HMAC或SM9所描述的密钥导出函数,其中klen是一个正整数表示加密函数E所需对称密钥的长度;为群GT的单位元;E为一个认证加密加密函数;D是与加密函数E对应的解密函数,指的是利用密钥K1对消息(IDA,x)加密得到密文CA,其中K1的二进制长度|K1|=klen;同理, 指的是利用密钥K1对消息(IDB,y)加密得到密文CB。 指的是利用密钥K1对密文CA解密得到消息(IDA,x);同理, 指的是利用密钥K1对密文CB解密得到消息(IDB,y)。表示的是x从中随机选取,表示的是y从中随机选取,表示的是从中随机选取系统主私钥msk。系统公开参数:
在图3中,会话发起方记为A,其私钥记为 会话接收方记为B,其私钥记为
密钥协商过程如下:
(1)用户A选取计算X=(H1(IDA))x,用户A将X发送给用户B;
(2)用户B接收到X后,检查X∈G′1,如果检查不通过则中止运行;选取计算Y=(H2(IDB))y,以及若则中止运行;
(3)用户B计算(K1,K2)←KDF(PSB,X||Y),
(4)用户B发送{Y,CB}给用户A;
(5)用户A接收到{Y,CB}后,计算(K1,K2)←KDF(PSA,X||Y);
(6)用户A使用K1解密CB得到(IDB,y),并验证且Y=(H2(IDB))y是否成立;如果验证不通过,用户A中止协议运行;如果验证成功,A进一步计算并将CA发送给用户B;用户A将会话密钥K设置为K2;
(7)用户B接收到CA后,使用K1解密CA得到(IDA,x),验证且X=(H1(IDA))x;若验证失败,用户B中止协议运行;如果验证通过,用户B将会话密钥K设置为K2。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
发明方法所具有的如下特征使得该方法具有唯一性,是目前最为简洁高效、通信便利灵活、隐私保护、和强安全的身份基密钥协商协议。
(1)高效性:每个用户仅需做1个配对运算和3个模指数运算。
(2)简洁性:无需主公钥。
(3)通信便利和灵活性:通信双方无需事先知晓对方身份。
(4)隐私保护:提供身份隐藏保护,和可抵赖隐私保护。
(5)强安全性:抗临时密钥泄露的强可证明安全。
下表是发明方法的类型-III实现实例与我国SM9身份基密钥协商的对比图(具体而言,是显式认证的SM9身份基密钥协商),其中,指的是配对运算,exp1指的是G1上模指数运算,exp2指的是G2上模指数运算,expT指的是GT上的模指数运算,G-test指的是群G1元素检验。在比较计算效率时,自方的公钥计算由于可以事先计算存储没有考虑在内(比如,以用户A为例,我们方法不考虑用户公钥H1(IDA)的计算代价),但是计算对方用户公钥的计算代价要考虑在内;另外,我们的协议只有接受者需要做G-test。计算效率我们仅统计最主要的配对、模指数和G-test操作数。注意,如果是BN曲线,G-test比较容易,但是如果是BLS曲线,G-test则会是一个比较耗时的操作,因此我们把G-test也列为主要操作进行比较。
应该理解的是,本发明所公开的实施例不限于这里所公开的特定处理步骤,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。
说明书中提到的“两个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少两个实施例中。因此,说明书通篇各个地方出现的短语“两个实施例”或“实施例”并不一定均指同一实施例。
虽然上述示例用于说明本发明在一个或多个应用中的原理,但对于本领域的技术人员来说,在不背离本发明的原理和思想的情况下,明显可以在形式上、用法及实施的细节上作各种修改而不用付出创造性劳动。因此,本发明由所附的权利要求书来限定。
Claims (6)
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或会话密钥由导出。
2.如权利要求1所述的方法,其特征在于,用户B收到X之后,检查 如果检查不通过则用户B中止运行;令G1是阶为N1的群G′1的q-阶子群,其中N1是整数;检查一个元素的方法包括:(1)显式检查:检查且其中表示的是G′1除去单位元之后剩余元素的集合;或(2)隐式检查:令t1=N1/q为群G1的伴随因子,检查X∈G′1且(3)PS-检查:对于类型-I实现,计算对于类型-II实现,计算对于类型-III的实现, 如果或则用户B中止运行;(4)对于一些特殊的子群安全曲线,只需检查X∈G′1和/或
3.如权利要求1所述的方法,其特征在于,令G2是阶为N2的群G′2的q-阶子群,用户A收到Y之后,检查如果检查不通过则用户A中止运行。
4.如权利要求1所述的方法,对于基于类型-III非对称双线性对方法实现中,如果IDA只是会话的发起方,则在会话密钥的生成过程中,只使用IDA的私钥同理,如果IDB只是会话的接收方,则在会话密钥的生成过程中,只使用IDB的私钥
5.如权利要求1所述的方法,其特征在于,且 和/或q是素数,和/或,E是一个认证加密函数,和/或x从或的一个子集中均匀选取,y从或的一个子集中均匀选取。
6.如权利要求1所述的方法,其特征在于,目
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910118821.8A CN109698747B (zh) | 2019-02-15 | 2019-02-15 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
PCT/CN2019/112511 WO2020164252A1 (zh) | 2019-02-15 | 2019-10-22 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910118821.8A CN109698747B (zh) | 2019-02-15 | 2019-02-15 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109698747A true CN109698747A (zh) | 2019-04-30 |
CN109698747B CN109698747B (zh) | 2021-08-24 |
Family
ID=66234818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910118821.8A Active CN109698747B (zh) | 2019-02-15 | 2019-02-15 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109698747B (zh) |
WO (1) | WO2020164252A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351076A (zh) * | 2019-05-28 | 2019-10-18 | 电子科技大学 | 一种基于身份的身份隐藏认证加密方案 |
CN110380867A (zh) * | 2019-08-14 | 2019-10-25 | 电子科技大学 | 一种基于身份的轻量签名方法及系统 |
CN111447187A (zh) * | 2020-03-19 | 2020-07-24 | 重庆邮电大学 | 一种异构物联网的跨域认证方法 |
WO2020164252A1 (zh) * | 2019-02-15 | 2020-08-20 | 上海扈民区块链科技有限公司 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634115A (zh) * | 2013-11-26 | 2014-03-12 | 常州大学 | 基于身份的认证密钥协商协议产生方法 |
CN106453253A (zh) * | 2016-09-06 | 2017-02-22 | 赵运磊 | 一种高效的基于身份的匿签密方法 |
CN107241190A (zh) * | 2017-08-04 | 2017-10-10 | 南京理工大学 | 一种基于身份的密钥协商构建方法与网络平台 |
US20170316185A1 (en) * | 2016-04-27 | 2017-11-02 | Comcast Cable Communications, Llc | Streamlined Digital Rights Management |
US20180219677A1 (en) * | 2016-10-25 | 2018-08-02 | Southern Methodist University | Method and System for Privacy Preserving Disclosure of a Shared, Identity Linked Secret |
WO2018231753A1 (en) * | 2017-06-12 | 2018-12-20 | Daniel Maurice Lerner | Devices that utilize random tokens which direct dynamic random access |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7817802B2 (en) * | 2006-10-10 | 2010-10-19 | General Dynamics C4 Systems, Inc. | Cryptographic key management in a communication network |
CN104868993A (zh) * | 2015-05-15 | 2015-08-26 | 河海大学 | 一种基于证书的两方认证密钥协商方法及系统 |
CN109698747B (zh) * | 2019-02-15 | 2021-08-24 | 上海扈民区块链科技有限公司 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
-
2019
- 2019-02-15 CN CN201910118821.8A patent/CN109698747B/zh active Active
- 2019-10-22 WO PCT/CN2019/112511 patent/WO2020164252A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634115A (zh) * | 2013-11-26 | 2014-03-12 | 常州大学 | 基于身份的认证密钥协商协议产生方法 |
US20170316185A1 (en) * | 2016-04-27 | 2017-11-02 | Comcast Cable Communications, Llc | Streamlined Digital Rights Management |
CN106453253A (zh) * | 2016-09-06 | 2017-02-22 | 赵运磊 | 一种高效的基于身份的匿签密方法 |
US20180219677A1 (en) * | 2016-10-25 | 2018-08-02 | Southern Methodist University | Method and System for Privacy Preserving Disclosure of a Shared, Identity Linked Secret |
WO2018231753A1 (en) * | 2017-06-12 | 2018-12-20 | Daniel Maurice Lerner | Devices that utilize random tokens which direct dynamic random access |
CN107241190A (zh) * | 2017-08-04 | 2017-10-10 | 南京理工大学 | 一种基于身份的密钥协商构建方法与网络平台 |
Non-Patent Citations (1)
Title |
---|
李坤: "基于身份的认证密钥协商协议研究", 《中国优秀硕士学位论文期刊全文数据库》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020164252A1 (zh) * | 2019-02-15 | 2020-08-20 | 上海扈民区块链科技有限公司 | 一种基于双线性对的身份基身份匿藏密钥协商方法 |
CN110351076A (zh) * | 2019-05-28 | 2019-10-18 | 电子科技大学 | 一种基于身份的身份隐藏认证加密方案 |
CN110380867A (zh) * | 2019-08-14 | 2019-10-25 | 电子科技大学 | 一种基于身份的轻量签名方法及系统 |
CN110380867B (zh) * | 2019-08-14 | 2021-07-06 | 电子科技大学 | 一种基于身份的轻量签名方法及系统 |
CN111447187A (zh) * | 2020-03-19 | 2020-07-24 | 重庆邮电大学 | 一种异构物联网的跨域认证方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020164252A1 (zh) | 2020-08-20 |
CN109698747B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108173639B (zh) | 一种基于sm9签名算法的两方合作签名方法 | |
CN109462481B (zh) | 一种基于非对称双线性对的匿签密方法 | |
CN109698747B (zh) | 一种基于双线性对的身份基身份匿藏密钥协商方法 | |
CN104270249B (zh) | 一种从无证书环境到基于身份环境的签密方法 | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
US9571274B2 (en) | Key agreement protocol | |
CN107437993A (zh) | 一种基于无证书两方认证密钥协商方法和装置 | |
US11870891B2 (en) | Certificateless public key encryption using pairings | |
CN104301108B (zh) | 一种从基于身份环境到无证书环境的签密方法 | |
CN101079701B (zh) | 高安全性的椭圆曲线加解密方法和装置 | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和系统 | |
CN107094108A (zh) | 连接到数据总线的部件和在该部件中实现加密功能的方法 | |
WO2013053058A1 (en) | Generating implicit certificates | |
CN104868993A (zh) | 一种基于证书的两方认证密钥协商方法及系统 | |
CN110784314A (zh) | 无证书的加密信息处理方法 | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
KR20100024605A (ko) | Rsa기반 패스워드 인증을 통한 세션키 분배방법 | |
CN105306212B (zh) | 一种身份隐藏且强安全的签密方法 | |
TW202232913A (zh) | 共享金鑰產生技術 | |
CN106453253B (zh) | 一种高效的基于身份的匿签密方法 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
CN108055134B (zh) | 椭圆曲线点数乘及配对运算的协同计算方法及系统 | |
US20220038267A1 (en) | Methods and devices for secured identity-based encryption systems with two trusted centers | |
KR100453113B1 (ko) | 결정적 디피-헬만군에서id에 기반한 디지털 서명 및 그인증 방법 | |
CN105515775B (zh) | 一种高效且隐私保护的签密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40008151 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Huang Xingzhong Inventor before: Zhao Yunlei Inventor before: Huang Xingzhong |