CN104320249B - 一种基于身份的抗弹性泄漏加密方法 - Google Patents
一种基于身份的抗弹性泄漏加密方法 Download PDFInfo
- Publication number
- CN104320249B CN104320249B CN201410614545.1A CN201410614545A CN104320249B CN 104320249 B CN104320249 B CN 104320249B CN 201410614545 A CN201410614545 A CN 201410614545A CN 104320249 B CN104320249 B CN 104320249B
- Authority
- CN
- China
- Prior art keywords
- key
- user
- private key
- task distributor
- online task
- 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.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于身份的抗弹性泄漏加密方法,属于数据加密领域。一种基于身份的抗弹性泄漏加密方法,包括可信第三方私钥生成中心模块和用户模块两个模块,其中可信第三方私钥生成中心模块包括在线任务分配器和密钥生成器,在线任务分配器与密钥生成器之间通过的安全信道双向连接;用户模块为用户终端,包括密文验证器、加密器、解密器;采用***设置,加密步骤,解密步骤对用户资料进行加密和解密操作,本发明从而能极大的降低加密方程的计算代价,提高整个***的运行效率,且具有更短的密钥长度和更高的相对密钥泄漏比。
Description
技术领域
本发明涉及数据加密领域,更具体地说,涉及一种基于身份的抗弹性泄漏加密方法。
背景技术
在传统的公钥密码***中,主要采用公钥证书基础设施PKI(Public KeyInfrastructure)来验证公钥和用户身份的相关性。用户身份和公钥之间的关联通过证书机构(Certification Authority:CA)发放的公钥证书实现。这种方式的证书管理过程需要很高的计算开销和存储开销。
基于身份的密码体制的思想由Shamir在1984年首先提出。在该体制中,公钥就是用户的身份信息(或者是直接由用户的身份信息导出),比如网络内某主机的IP地址或某用户的Email地址。PKG根据用户的公钥由身份信息直接计算得出,所以在使用公钥的过程中就不需要存放或证书的目录,也不需要第三方(CA)提供服务,只需要维护一个PKG产生的认证的公开***参数目录,这个开销远低于维护一个所有用户的公钥目录所需的开销。因此,基于身份的密码体制的优势就在于它简化了传统基于证书的公钥体制下负担最重的密钥管理过程。
传统密码学安全模型都是基于这样的假设:只有用户知道密码学算法在计算过程中产生的随机秘密信息,而攻击者是完全不知道的,攻击者只能够对算法进行输入输出,却不能访问内部的用户程序和具体算法。但是,最近几十年出现的各种各样的边信道攻击可以证明在现实中,这样的假设是不存在的。这些攻击相当于提供给了攻击者一些攻击能力,即由于计算过程中的物理泄漏,攻击者可以看到算法执行部分的内部秘密状态。传统模型中可证安全的方案在很多有独创性的边信道攻击下是不安全的。现存的边信道攻击主要包括时序攻击、电磁辐射、能量功耗、冷启动攻击以及故障检测等。因此,密钥的泄漏问题已经成为密码体制安全的最大威胁。目前已出现一些解决方法,例如,具有前向安全的密码***,秘密分享,密钥隔离,入侵弹性和代理重加密等,但上述方法不能完全解决或只能部分解决密钥泄漏问题,最近提出用泄漏函数定义抗密钥泄漏密码学(即弹性泄漏密码学)是解决密钥泄漏问题的最有力工具之一,因此,对弹性泄漏密码学的课题研究具有重要意义。
相对于仅利用密码设备合法的输入或者输出进行攻击,即主信道攻击行为,边信道攻击(或泄漏攻击)已严重威胁到传统已证安全的密码***的安全性,成为目前密码***设计及其安全性分析所面临的一个重大挑战。在现实世界中,不可能人为地预测出密码***在物理实现过程中可能遇到的所有泄漏攻击,所以,一个可行的方法是:构建抗密钥泄漏密码***,使其在密码原型遭遇泄漏攻击的环境下是可证安全的。基本思路是:首先提出形式化的泄漏模型来刻画攻击者的泄漏攻击能力和手段,即在泄漏攻击过程中攻击者能够获得哪些信息;然后在不同的泄漏模型下提出可证安全的密码方案,即抗泄漏密码算法。目前主要存在的泄漏模型以及在这些模型下构建的密码方案有:计算泄漏(only computationleaks information,简称OCLI),相对泄漏模型(relative-leakage model),有界恢复模型(bounded-retrieval model,简称BRM),持续泄漏模型(continual leakage model,简称CLM),事后泄漏(After-the-Fact Leakage)。
1984年,Shamir首先提出了基于身份的公钥密码***,试图通过使用用户的身份(如名称或电子邮件/IP地址)作为公钥来减少对基础设施的需求。第一个真正实用的安全IBE方案是由Boneh和Franklin在2001年提出的,他们的***使用了双线性映射,且在随机预言模型中证明了安全性。Canetti等人提出了一个可以在标准模型中证明安全性的基于身份加密***,但是是在一个更弱的“选择身份”安全模型中,该模型要求攻击者必须在攻击之前公布要挑战的目标身份。2004年,Boneh和Boyen提出了一个在选择身份模型中更加实用的基于身份加密***。不久之后,Boneh和Boyen提出了一个标准模型中完全安全的基于身份加密方案,即攻击者可以自适应的选择要挑战的目标身份。2005年,Waters简化了Boneh和Boyen提出的的方案,充分提高了方案的效率。Gentry也提出了一个标准模型中完全安全的基于身份加密***,且与在他之前已提出的基于身份加密***相比较,有三大优点:更高的计算效率,更短的公开参数和“紧”安全性。然而,以上的基于身份加密方案都没有考虑信息泄漏,由于边信道攻击的存在,这些方案可能在现实世界中是不安全的。因此,如何在基于身份加密方案中实现弹性泄漏是一个有趣且富有挑战性的课题。
为了解决上述问题,Alwen等人提出了一个基于身份的哈希证明***(IB-HPS)的思想,他们将Cramer和Shoup的哈希证明***的概念推广到了基于身份的环境里。此外,他们还在有界恢复模型下提出了三个弹性泄漏基于身份加密方案,分别基于格、二次剩余(QR)和截断增强的双线性Diffie-Hellman指数(q-TABDHE)假设证明了方案的安全性。Chow等人基于Boneh-Boyen方案,Waters方案以及Lewko-Waters方案,分别提出了三个新的相对泄漏模型下弹性泄漏基于身份加密方案,三个方案都是在标准模型中安全的。但上述方案的加密方程的计算代价很大,运行效率低、指数操作多、密钥公钥和私钥长、相对密钥泄漏比低。
发明内容
1.要解决的技术问题
针对现有技术中存在的,加密步骤的计算代价很大,运行效率低、指数操作多、密钥公钥和私钥长、相对密钥泄漏比低的问题,本发明提供了一种基于身份的抗弹性泄漏加密方法。它可以实现更低的计算代价,更短的密钥公钥和私钥长度和更高的相对密钥泄漏比。
2.技术方案
本发明的目的通过以下技术方案实现。
一种基于身份的抗弹性泄漏加密***,包括可信第三方私钥生成中心模块和用户模块两个模块,其中可信第三方私钥生成中心模块包括在线任务分配器和密钥生成器,在线任务分配器分别与密钥生成器之间通过的安全信道双向连接;
用户模块为用户终端,包括密文验证器、加密器、解密器;
所述的在线任务分配器与密钥生成器双向连接;所述的在线任务分配器与密文验证器、加密器和解密器连接;加密器分别与在线任务分配器、密钥生成器连接;密文验证器分别与在线任务分配器、和解密器连接。
更进一步的,所述的可信第三方私钥生成中心模块包括有设置好的主公钥和主私钥。
更进一步的,所述的安全信道,通过X.509证书、对称密码算法、密钥交换协议或消息摘要安全技术构建。
一种基于身份的抗弹性泄漏加密方法,包括如下步骤:
(a)、***设置:
PKG为可信第三方私钥生成中心模块,PKG设置***参数设置算法如下:
令G和GT是两个具有相同的阶为p的乘法循环群(其中p是一个大素数),双线性映射e:G×G→GT,g是G的生成元。PKG随机选择元素g,h1,h2∈G,α∈Zp,以及哈希函数H,计算g1=gα,最后输出主公钥mpk=(g,g1,h1,h2,H)和主私钥msk=α;
(b)、加密步骤:
步骤1:在线任务分配器将用户身份比特串id∈Zp\{α}发送给密钥生成器;
步骤2:密钥生成器对得到的用户身份比特串id∈Zp\{α}做处理:随机选择元素s1,s2∈Zp,计算和后输出用户的私钥skid=(d1,s1,d2,s2),若id=α,则密钥生成器重新选择随机数α∈Zp,重新计算用户的私钥后发送至在线任务分配器;
步骤3:加密器设置泄漏参数λ=λ(n),其中n是安全参数,Ext:GT×{0,1}t→{0,1}k是平均情况(logp-λ,ε)-强提取器,其中λ≤logp-ω(logn)-k,且ε=ε(n)是n的可忽略函数,加密器选取H:G×GT×{0,1}t×{0,1}k→Zp单向哈希函数;
步骤4:在线任务分配器将用户身份比特串发送给加密器;
步骤5:加密器利用PKG的主公钥mpk=(g,g1,h1,h2,H)和得到的用户的身份id∈Zp,对消息m∈{0,1}k进行加密,加密器独立随机的选择元素r∈Zp,s∈{0,1}t,计算u=g1 rg-r·id,v=e(g,g)r,β=H(u,v,s,w),y=e(g,h2)re(g,h1)rβ,获得消息m的密文是c=(u,v,s,w,y),加密器将消息的密文c发送给在线任务分配器;
(c)、解密步骤:
步骤6:在线任务分配器把得到的密钥通过安全信道传给用户;
步骤7:用户将得到的用户密钥skid发送给解密器和密文验证器;
步骤8:在线任务分配器将待解密消息密文发送给密文验证器;
步骤9:密文验证器计算β=H(u,v,s,w),并利用得到的私钥skid=(d1,s1,d2,s2),对得到的密文c=(u,v,s,w,y)进行结构合法性验证,等式不成立,执行步骤10;等式成立,执行步骤11;
步骤10:密文验证器重新向加密器询问密文,加密器重新执行步骤5;
步骤11:密文验证器将验证通过的密文c发送给解密器;
步骤12:解密器利用得到的私钥skid=(d1,s1,d2,s2),对得到的密文c=(u,v,s,w,y)进行解密,则解密的消息为获得解密消息。
更进一步的,在步骤5中,对于w和y计算值e(g,h1),将e(g,h1)的计算结果保存,后续计算直接进行提取,每个具体的加密都会用到e(g,h1),所以当第一个加密的时候计算e(g,h1),并把结果存储下来,对以后的身份加密就不用再计算e(g,h1),直接调用存储下来的结果。
更进一步的,在步骤5中,对于y计算值e(g,h2),将e(g,h2)的计算结果保存,后续计算直接进行提取。
3.有益效果
相比于现有技术,本发明的优点在于:
(1)在公钥参数方面,第三方私钥生成中心模块的公钥,相对于Gentry在2006年提出的方案中主公钥mpk=(g,g1,h1,h2,h3,H),本发明设置的主公钥mpk=(g,g1,h1,h2,H),公钥长度比现有方案的公钥长度缩短了1/6,长度更短,效率更高;
(2)在私钥参数方面,第三方私钥生成中心模块私钥,相对于Gentry在2006年提出的方案:PKG随机选择元素rid,i∈Zp,i∈{1,2,3},计算然后输出用户的私钥本发明中:PKG随机选择元素s1,s2∈Zp,计算 然后输出用户的私钥skid=(d1,s1,d2,s2),本发明的私钥比Gentry方案短1/3,长度更短,效率更高;
(3)在加密计算方面:相对于现有技术方案中需4个配对计算,本发明只需3个配对计算,本发明的配对计算比现有的方案节省了1/4,计算量减少,计算速度,效率提高;
(4)在抗私钥泄漏方面:现有方案中容许私钥的相对泄漏量为私钥长度的1/6,本发明中容许私钥的相对泄漏量为私钥长度的1/4,本发明容许的私钥相对泄漏率比已有方案高,安全性更好。
附图说明
图1为标准的基于身份加密方案简单流程图;
图2为本发明***模块流程图;
图3抗泄漏加密***实例示意图。
具体实施方式
下面结合说明书附图和具体的实施例,对本发明作详细描述。
实施例1
本发明是在Gentry的IBE方案和Alwen等人的弹性泄漏IBE方案的基础上改进而来的,改进后的方案具有更低的计算代价,更短的密钥(公钥/私钥)长度和更高的相对密钥泄漏比。
下面先对相关概念进行说明:
1、双线性对(Bilinear Pairing)
这里简要介绍双线性映射的基本定义和它需满足的性质。
令G和GT是两个具有相同的阶为p的乘法循环群,其中p是一个大素数。g是群G的生成元,可计算的双线性映(Bilinear Map)e:G×G→GT具有以下性质:
(1)双线性(Bilinearity):对于任意的u,v∈G和a,b∈Zp,均有e(ua,vb)=e(u,v)ab;
(2)非退化性(Non-degeneracy):对于G的生成元g,得到e(g,g)≠1;
(3)可计算性(Computability):存在有效的多项式时间算法能够计算出e(u,v)∈GT,其中u,v∈G。
则称G为双线性群,GT为目标群。在实际应用中,可以利用修改的有限域椭圆曲线上的Tate配对或Weil配对来构造可计算的双线性映射。
定义中群G还可以是加法群;双线性映射e(,)是对称的,即e(ga,gb)=e(g,g)ab=e(gb,ga)。
2、最小熵和随机提取器
攻击者通过泄漏攻击,使得私钥或***内部的秘密状态(如算法的随机值)遭到泄漏,破坏***的安全性。那么,在加密***存在多大的泄漏时,***仍旧保持其安全性。最小熵就是用来衡量***遭到泄漏的程度,即对应变量(如私钥)的不确定性。而在实际构造方案时,对明文消息加密后再利用提取器对其进行随机化,使得密文与均匀分布的随机变量具有不可区分性。
在一个有限定义域Ω上的两个随机变量X和Y的统计距离定义为:
如果SD(X,Y)≤ε,则称这两个变量X,Y是ε-接近的。
定义1最小熵:一个随机变量X的最小熵定义为:即是对变量X的最坏情况预测。
定义2平均最小熵:随机变量X的平均最小熵是指在已知随机变量Z的情况下X的不可预测性,定义为:
即攻击者在获得一个相关变量Z的值之后对变量X的最坏情况预测。
注意,对于一个分布或随机变量Z,z←Z表示在Z中抽样一个随机值z。
引理1:已知三个随机变量X,Y,Z,其中Y最多有2r可能的值,则:
特别地,
提取器是用来从具有足够最小熵的弱随机值中提取完全随机值。
定义3提取器:若有效地随机函数Ext:{0,1}u×{0,1}t→{0,1}v是一个平均情况(l,ε)-强提取器,则对任意的变量(X,Z)满足X∈{0,1}u和能够得到SD((Z,S,Ext(X;S)),(Z,S,Uv))≤ε,其中S是在{0,1}t上均匀分布的。
定义4ρ-通用哈希函数族:设H是由函数h:{0,1}u→{0,1}v所组成的函数族。若对任意m1≠m2∈{0,1}u有Prh←H[h(m1)=h(m2)]≤ρ,则称H为ρ-通用哈希函数族。
引理2剩余哈希引理:假设由函数h:{0,1}u→{0,1}v组成的函数族H是ρ-通用哈希函数族。若且则称Ext(x,h)=h(x)为(m,ε)-强提取器,其中h是在H上均匀分布的。
3、q-TABDHE(truncated augmented bilinear Diffie-Hellman exponent)困难问题及假设。
定义5q-TABDHE假设:假设存在一个群生成算法,输入为1n,其中n为安全参数,输出为元组(G,GT,g,e(·,·),p),其中G,GT是两个阶为大素数p的群。定义两个分布:
和
其中g′←G,α←Zp,Z←GT。对于任意算法A,A在q-TABDHE困难问题中的区分优势为
若对于任意的概率多项式时间(PPT)算法A有其中negl(n)表示可忽略函数,则q-TABDHE假设成立。
根据上述的q-TABDHE假设以及双线性配对、最小熵和随机提取器的描述,下面将进一步说明现有的基于身份的典型的加密方法。
如图1,首先给出一个标准的基于身份加密方案简单流程图。
如图1所示,基于身份的加密***包括***参数设置模块(Setup)、用户密钥生成模块(KeyGen)、加密模块(Encrypt)、解密模块(Decrypt)。
1、***参数设置模块(Setup):
令G和GT是两个具有相同的阶为p的乘法循环群(其中p是一个大素数),双线性映射e:G×G→GT,g是G的生成元。PKG随机选择元素g,h1,h2,h3∈G,α∈Zp,以及哈希函数H∈H。计算g1=gα,最后输出主公钥mpk=(g,g1,h1,h2,h3,H)和主私钥msk=α。(注:PKG即密钥生成中心)
2、用户密钥生成模块(KeyGen):
PKG随机选择元素rid,i∈Zp,i∈{1,2,3},计算然后输出用户的私钥如果id=α,那么PKG终止,即不会生成一个私钥,且重新选择随机数α∈Zp。
3、加密模块(Encrypt):
令λ=λ(n)是泄漏参数,其中n是安全参数。Ext:GT×{0,1}t→{0,1}k是平均情况(logp-λ,ε)-强提取器,其中λ≤logp-ω(logn)-k,且ε=ε(n)是n的可忽略函数。Η={H:G×GT×{0,1}t×{0,1}k→Zp}是通用单向哈希函数集合。发送者输入消息m∈{0,1}k和用户身份id∈Zp,发送者独立随机的选择元素r∈Zp,s∈{0,1}t,计算u=g1 rg-r·id,v=e(g,g)r,w=Ext(e(g,h1)r,s)⊕m,β=H(u,v,s,w),y=e(g,h2)re(g,h3)rβ,最后发送者将密文c=(u,v,s,w,y)发送给接受者。
4、解密模块(Decrypt):
接受者输入密文c=(u,v,s,w,y)和用户私钥skid,接受者计算β=H(u,v,s,w),并对得到的密文c=(u,v,s,w,y)进行结构合法性验证:若验证失败,接受者终止并输出终止符⊥,否则输出解密的消息
根据上述的<Setup、KeyGen、Encrypt、Decrypt>算法,即实现了现有的基于身份加密方法。在该基于身份加密方法中,用户的公钥就是用户的身份,因此无需像基于证书的密码***那样子进行繁琐的证书管理。
但是该方案有一个非常大的缺点:就是发送者在对密文进行加密的时候,加密方程的计算代价很大,有4个Pairing运算(一个e运算即一个Pairing运算),而Pairing运算的计算代价很大,所以这极大的影响了整个***的运行效率;另外,在密钥生成过程中使用了6个指数操作。
本发明给出一个改进的基于身份加密方法和***,从而能极大的降低加密方程的计算代价,提高整个***的运行效率,且具有更短的密钥(公钥/私钥)长度和更高的相对密钥泄漏比。
一种基于身份的抗弹性泄漏加密方法,包括如下步骤:
(a)、***设置:
PKG为可信第三方私钥生成中心模块,PKG设置***参数设置算法如下:
令G和GT是两个具有相同的阶为p的乘法循环群(其中p是一个大素数),双线性映射e:G×G→GT,g是G的生成元。PKG随机选择元素g,h1,h2∈G,α∈Zp,以及哈希函数H,计算g1=gα,最后输出主公钥mpk=(g,g1,h1,h2,H)和主私钥msk=α;
(b)、加密步骤:
步骤1:在线任务分配器将用户身份比特串id∈Zp\{α}发送给密钥生成器;
步骤2:密钥生成器对得到的用户身份比特串id∈Zp\{α}做处理:随机选择元素s1,s2∈Zp,计算和后输出用户的私钥skid=(d1,s1,d2,s2),若id=α,则密钥生成器重新选择随机数α∈Zp,重新计算用户的私钥后发送至在线任务分配器;
步骤3:加密器设置泄漏参数λ=λ(n),其中n是安全参数,Ext:GT×{0,1}t→{0,1}k是平均情况(logp-λ,ε)-强提取器,其中λ≤logp-ω(logn)-k,且ε=ε(n)是n的可忽略函数,加密器选取H:G×GT×{0,1}t×{0,1}k→Zp单向哈希函数;
步骤4:在线任务分配器将用户身份比特串发送给加密器;
步骤5:加密器利用PKG的主公钥mpk=(g,g1,h1,h2,H)和得到的用户的身份id∈Zp,对消息m∈{0,1}k进行加密,加密器独立随机的选择元素r∈Zp,s∈{0,1}t,计算u=g1 rg-r·id,v=e(g,g)r,β=H(u,v,s,w),y=e(g,h2)re(g,h1)rβ,获得消息m的密文是c=(u,v,s,w,y),加密器将消息的密文c发送给在线任务分配器。对于w和y计算值e(g,h1),将e(g,h1)的计算结果保存,后续计算直接进行提取,对于y计算值e(g,h2),将e(g,h2)的计算结果保存,后续计算直接进行提取。
(c)、解密步骤:
步骤6:在线任务分配器把得到的密钥通过安全信道传给用户;
步骤7:用户将得到的用户密钥skid发送给解密器和密文验证器;
步骤8:在线任务分配器将待解密消息密文发送给密文验证器;
步骤9:密文验证器计算β=H(u,v,s,w),并利用得到的私钥skid=(d1,s1,d2,s2),对得到的密文c=(u,v,s,w,y)进行结构合法性验证,等式不成立,执行步骤10;等式成立,执行步骤11;
步骤10:密文验证器重新向加密器询问密文,加密器重新执行步骤5;
步骤11:密文验证器将验证通过的密文c发送给解密器;
步骤12:解密器利用得到的私钥skid=(d1,s1,d2,s2),对得到的密文c=(u,v,s,w,y)进行解密,则解密的消息为获得解密消息。
基于此方法的一种基于身份的抗弹性泄漏加密***,包括可信第三方私钥生成中心模块和用户模块两个模块,其中可信第三方私钥生成中心模块包括在线任务分配器和密钥生成器,在线任务分配器与密钥生成器之间通过的安全信道双向连接。
用户模块为用户终端,包括密文验证器、加密器、解密器。
所述的在线任务分配器与密钥生成器双向连接;所述的在线任务分配器与密文验证器、加密器和解密器连接;加密器分别与在线任务分配器、密钥生成器连接;密文验证器分别与在线任务分配器、和解密器连接。
安全信道是指信息以加密的形式在网络中传播,网络攻击者尽管可以截获在网络中传输的全部数据,但攻击者无法获取数据中包含的有用信息。建立安全信道主要有两个功能:(1)验证通信双方的身份;(2)协商安全信道要用的加密密钥。
可以通过使用X.509证书、对称密码算法、密钥交换协议或消息摘要安全技术来构建安全信道,通过安全信道来保证消息的完整性和机密性。
实施例2
下面将对如上所述的依照本发明的加密***应用于企业中的情形进行说明。
依照本发明的步骤,当在XXX公司使用本发明的加密***时候,可以将XXX公司的每个员工的工***看做是一个员工U,其身份信息为id,由用户私钥生成模块根据***参数和id生成该用户U的私钥skid,并存放与员工的个人工卡中。
在某个员工须对某个文件进行加密的时候,员工只需在***中输入解密员工的工***即可。而对该文件有阅读权限的解密员工在需要阅读文件的时候,只需利用工卡进行刷卡即可。
尤其适用于对与***运行效率和***安全性要求高的电子政务和商务。
如图3,本发明的实现要由硬件***来提供运行的场所,硬件***可以使用现有的网络***,因为现在的网络传输***是十分普遍和易于实现的。本发明是具有抗泄漏功能的加密算法,这是由软件来实现的。第三方私钥生成中心模块和用户模块两个模块,第三方私钥生成中心模块包括了***参数生成模块和私钥生成模块,本发明的软件实现中具有***参数生成模块、私钥生成模块、用户模块中的加密模块和解密模块。在网络***硬件中,有终端用户和服务器两种角色之分。终端用户为普通的网络用户,其实使用用户终端,第三方私钥生成中心模块包括了***参数生成模块和私钥生成模块,其由服务器运行,加密和解密模块由终端用户执行用户终端。对于终端用户而言即可以加密数据,也可以对发送给他的数据进行解密。用户A的身份信息为IA,用户B的身份信息为IB。用户私钥生成模块根据***参数和身份信息生成用户的私钥和并由服务器分别通过安全信道发给用户A和用户B,让他们保管自己的密钥。服务器把整个单位的用户身份都公开,事实上服务器要维护一个公钥目录表。比如说,用户B要加密一个消息m给用户A的话,用户B把用户A的身份信息IA和消息m作为输入,调用加密器模块就可以生成相应的密文C。密文C通过网络传给用户A,用户A收到密文C之后,会调用解密模块用自己的密钥来解密密文C进而得到消息m。
结合图2,图3,给出本发明对给出实施例的具体的实现过程:
在线任务分配器和密钥生成器功能由实施例中服务器运行。加密器、解密器和密文验证器功能由终端用户***完成。
PKG为可信第三方私钥生成中心模块,PKG设置***参数设置算法,生成两个具有相同的阶为p的乘法循环群(其中p是一个大素数)G和GT,选定双线性映射e:G×G→GT,g是G的生成元。随机选择元素g,h1,h2∈G,α∈Zp,以及哈希函数H∈H。计算g1=gα,最后输出主公钥mpk=(g,g1,h1,h2,H)和主私钥msk=α。
用户密钥生成(KeyGen):
步骤1:在线任务分配器(服务器中的本发明的***设置模块来完成)将用户用户A的身份标识IA∈Zp\{α}对应的比特串发送给密钥生成器(服务器中运行的私钥生成模块);
步骤2:密钥生成器对得到的用户A的身份标识IA做以下处理:首先随机选择元素s1,s2∈Zp,计算然后输出用户用户A的私钥如果IA=α,则密钥生成器重新选择随机数α∈Zp,计算用户的私钥,发送给在线任务分配器;在线任务分配器把对应私钥通过安全信道发给用户A。
需要说明的是:对每一个用户,***都用类似的方法生成用户的私钥且同样通过安全信道传递对应私钥给相应的用户。
加密(Encrypt):(本实施例中,用户B要完成的功能。)
步骤3:用户B调用终端用户的加密模块:关于泄漏参数λ=λ(n),其中n是安全参数,选定Ext:GT×{0,1}t→{0,1}k是平均情况(logp-λ,ε)-强提取器,其中λ≤logp-ω(logn)-k,且ε=ε(n)是n的可忽略函数。选择单向哈希函数H:G×GT×{0,1}t×{0,1}k→Zp;这一步是加密器初始要完成的功能;
步骤4:用户B通过在线任务分配器(服务器)获得用户用户A的身份标识IA对应的比特串;
步骤5:加密器利用PKG发布的主公钥mpk=(g,g1,h1,h2,H)和得到的用户A的身份标识IA∈Zp,对消息m∈{0,1}k进行加密。加密器独立随机的选择元素r∈Zp,s∈{0,1}t,计算v=e(g,g)r,β=H(u,v,s,w),y=e(g,h2)re(g,h1)rβ,则消息m的密文是c=(u,v,s,w,y)。加密器将消息的密文c发送给在线任务分配器;
解密(Decrypt):(本实施例中,用户A要完成的功能。)
步骤6:在线任务分配器把得到的密钥通过安全信道传给用户用户A,用户用户A将得到的用户密钥发送给密文验证器;
步骤7:在线任务分配器把得到的用户用户A的密钥通过安全信道传给用户用户A,用户将得到的用户密钥发送给解密器;
步骤8:在线任务分配器将待解密消息密文发送给密文验证器;如果通过验证,转向步骤9,否则提示密文无效。
步骤9:密文验证器计算β=H(u,v,s,w),并利用得到的私钥对得到的密文c=(u,v,s,w,y)进行结构合法性验证,等式不成立,执行步骤10;
步骤10:密文验证器重新向加密器询问密文(通过服务器进行),加密器重新执行步骤5,直到等式成立,接收者可以确认密文是由加密器产生的,执行步骤11;
步骤11:密文验证器将验证通过的密文c发送给解密器;
步骤12:解密器利用得到的私钥对得到的密文c=(u,v,s,w,y)进行解密,则解密的消息为
Claims (3)
1.一种基于身份的抗弹性泄漏加密方法,包括如下步骤:
构建***,可信第三方私钥生成中心模块和用户模块两个模块,其中可信第三方私钥生成中心模块包括在线任务分配器和密钥生成器,在线任务分配器与密钥生成器之间通过的安全信道双向连接;
用户模块为用户终端,包括密文验证器、加密器、解密器;
所述的在线任务分配器与密钥生成器双向连接;所述的在线任务分配器与密文验证器、加密器和解密器连接;加密器分别与在线任务分配器、密钥生成器连接;密文验证器分别与在线任务分配器、和解密器连接;
(a)、***设置:
PKG为可信第三方私钥生成中心模块,PKG设置***参数设置算法如下:
令G和GT是两个具有相同的阶为p的乘法循环群(其中p是一个大素数),双线性映射e:G×G→GT,g是G的生成元;PKG随机选择元素g,h1,h2∈G,α∈Zp,以及哈希函数H,计算g1=gα,最后输出主公钥mpk=(g,g1,h1,h2,H)和主私钥msk=α;
(b)、加密步骤:
步骤1:在线任务分配器将用户身份比特串id∈Zp\{α}发送给密钥生成器;
步骤2:密钥生成器对得到的用户身份比特串id∈Zp\{α}做处理:随机选择元素s1,s2∈Zp,计算和后输出用户的私钥skid=(d1,s1,d2,s2),若id=α,则密钥生成器重新选择随机数α∈Zp,重新计算用户的私钥后发送至在线任务分配器;
步骤3:加密器设置泄漏参数λ=λ(n),其中n是安全参数,Ext:GT×{0,1}t→{0,1}k是平均情况(logp-λ,ε)-强提取器,其中λ≤logp-ω(logn)-k,且ε=ε(n)是n的可忽略函数,加密器选取H:G×GT×{0,1}t×{0,1}k→Zp单向哈希函数;
步骤4:在线任务分配器将用户身份比特串发送给加密器;
步骤5:加密器利用PKG的主公钥mpk=(g,g1,h1,h2,H)和得到的用户的身份id∈Zp,对消息m∈{0,1}k进行加密,加密器独立随机的选择元素r∈Zp,s∈{0,1}t,计算u=g1 rg-r·id,v=e(g,g)r,β=H(u,v,s,w),y=e(g,h2)re(g,h1)rβ,获得消息m的密文是c=(u,v,s,w,y),加密器将消息的密文c发送给在线任务分配器;
(c)、解密步骤:
步骤6:在线任务分配器把得到的密钥通过安全信道传给用户;
步骤7:用户将得到的用户密钥skid发送给解密器和密文验证器;
步骤8:在线任务分配器将待解密消息密文发送给密文验证器;
步骤9:密文验证器计算β=H(u,v,s,w),并利用得到的私钥skid=(d1,s1,d2,s2),对得到的密文c=(u,v,s,w,y)进行结构合法性验证,等式不成立,执行步骤10;等式成立,执行步骤11;
步骤10:密文验证器重新向加密器询问密文,加密器重新执行步骤5;
步骤11:密文验证器将验证通过的密文c发送给解密器;
步骤12:解密器利用得到的私钥skid=(d1,s1,d2,s2),对得到的密文c=(u,v,s,w,y)进行解密,则解密的消息为获得解密消息。
2.根据权利要求1所述的抗弹性泄漏加密方法,其特征在于:在步骤5中,对于w和y计算值e(g,h1),将e(g,h1)的计算结果保存,后续计算直接进行提取。
3.根据权利要求1所述的抗弹性泄漏加密方法,其特征在于:在步骤5中,对于y计算值e(g,h2),将e(g,h2)的计算结果保存,后续计算直接进行提取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410614545.1A CN104320249B (zh) | 2014-11-04 | 2014-11-04 | 一种基于身份的抗弹性泄漏加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410614545.1A CN104320249B (zh) | 2014-11-04 | 2014-11-04 | 一种基于身份的抗弹性泄漏加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104320249A CN104320249A (zh) | 2015-01-28 |
CN104320249B true CN104320249B (zh) | 2017-09-19 |
Family
ID=52375424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410614545.1A Active CN104320249B (zh) | 2014-11-04 | 2014-11-04 | 一种基于身份的抗弹性泄漏加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104320249B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301788B (zh) * | 2016-08-12 | 2019-03-19 | 武汉大学 | 一种支持用户身份认证的群组密钥管理方法 |
CN106656498B (zh) * | 2017-01-12 | 2019-10-01 | 河海大学 | 一种基于身份的抗事后持续辅助输入泄漏加密***及方法 |
CN108737096A (zh) * | 2017-04-25 | 2018-11-02 | 杭州弗兰科信息安全科技有限公司 | 一种用于群组通信的密钥管理*** |
EP3628114A4 (en) | 2017-07-06 | 2020-09-30 | Beijing Didi Infinity Technology and Development Co., Ltd. | DATA TRANSMISSION SYSTEMS AND METHODS |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523093A (zh) * | 2011-12-16 | 2012-06-27 | 河海大学 | 一种带标签的基于证书密钥封装方法及*** |
CN102594570A (zh) * | 2012-04-11 | 2012-07-18 | 福建师范大学 | 基于等级身份加密的密钥门限算法 |
CN103269272A (zh) * | 2013-05-22 | 2013-08-28 | 河海大学 | 一种基于短期证书的密钥封装方法 |
CN103986574A (zh) * | 2014-05-16 | 2014-08-13 | 北京航空航天大学 | 一种基于身份的分层广播加密方法 |
-
2014
- 2014-11-04 CN CN201410614545.1A patent/CN104320249B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102523093A (zh) * | 2011-12-16 | 2012-06-27 | 河海大学 | 一种带标签的基于证书密钥封装方法及*** |
CN102594570A (zh) * | 2012-04-11 | 2012-07-18 | 福建师范大学 | 基于等级身份加密的密钥门限算法 |
CN103269272A (zh) * | 2013-05-22 | 2013-08-28 | 河海大学 | 一种基于短期证书的密钥封装方法 |
CN103986574A (zh) * | 2014-05-16 | 2014-08-13 | 北京航空航天大学 | 一种基于身份的分层广播加密方法 |
Non-Patent Citations (3)
Title |
---|
基于身份加密的主密钥弹性泄漏;于启红等;《科学技术与工程》;20140508;第14卷(第13期);217-219 * |
抗密钥泄漏的基于身份的加密方案;于启红等;《科学技术与工程》;20131008;第13卷(第28期);8310-8314 * |
抗泄漏的基于身份的分层加密方案;于启红等;《计算机应用研究》;20140416;第31卷(第6期);1863-1868 * |
Also Published As
Publication number | Publication date |
---|---|
CN104320249A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tseng et al. | A chaotic maps-based key agreement protocol that preserves user anonymity | |
CN104270249B (zh) | 一种从无证书环境到基于身份环境的签密方法 | |
CN105743646B (zh) | 一种基于身份的加密方法及*** | |
CN101977112B (zh) | 一种基于神经网络混沌吸引子的公钥密码加密和解密方法 | |
CN105024994A (zh) | 无对运算的安全无证书混合签密方法 | |
CN103731261A (zh) | 加密重复数据删除场景下的密钥分发方法 | |
CN111277412B (zh) | 基于区块链密钥分发的数据安全共享***及方法 | |
CN107154845A (zh) | 一种基于属性的bgn型密文解密外包方案 | |
CN104767611B (zh) | 一种从公钥基础设施环境到无证书环境的签密方法 | |
CN105635135A (zh) | 一种基于属性集及关系谓词的加密***及访问控制方法 | |
CN110519226B (zh) | 基于非对称密钥池和隐式证书的量子通信服务端保密通信方法和*** | |
CN111786790A (zh) | 一种隐私保护的带关键词搜索的基于身份加密方法和*** | |
CN106713349B (zh) | 一种能抵抗选择密文攻击的群组间代理重加密方法 | |
CN104320249B (zh) | 一种基于身份的抗弹性泄漏加密方法 | |
Guo et al. | A Secure and Efficient Mutual Authentication and Key Agreement Protocol with Smart Cards for Wireless Communications. | |
Khatarkar et al. | A survey and performance analysis of various RSA based encryption techniques | |
CN101882996B (zh) | 一种基于身份的分布式***中信息加密与解密的方法 | |
Zhang et al. | Robust and efficient password authenticated key agreement with user anonymity for session initiation protocol‐based communications | |
Wang et al. | Key escrow protocol based on a tripartite authenticated key agreement and threshold cryptography | |
CN101964039B (zh) | 一种版权对象的加密保护方法和*** | |
CN110048852B (zh) | 基于非对称密钥池的量子通信服务站数字签密方法和*** | |
Elashry et al. | A resilient identity‐based authenticated key exchange protocol | |
Qin et al. | Strongly secure and cost-effective certificateless proxy re-encryption scheme for data sharing in cloud computing | |
Ahila et al. | State of art in homomorphic encryption schemes | |
CN103684764A (zh) | 一种具有前向安全的高效公钥加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |