基于身份的公钥加密(精选7篇)
基于身份的公钥加密 篇1
1 引言
在云计算环境中,用户将数据上传并存储在云服务器中,由云服务器完成用户指定的数据处理任务。然而在此过程中,用户的隐私可能被恶意的云服务器非法窃取。采用加密技术能够解决隐私保护的问题,但传统加密方法的特性决定了云服务器难以对密文数据进行有效的处理,对密文数据进行关键词检索就是其中一个典型例子。
Boneh等人[1]提出的“关键词可搜索的公钥加密技术”(public key encryption with keyword search,PEKS)是解决上述问题的方法之一,借助该体制,服务器能够在不解密的情况下,根据用户提供的关键词陷门,对服务器中存储的密文进行基于关键词的检索。不仅如此,Boneh还指出,PEKS体制可以在基于身份加密体制(identity based encryption,IBE)[2]的基础上进行构造。在Boneh工作的基础上,人们先后提出多种同类体制,包括支持复杂关键词结构的PEKS体制[3,4,5],匿名以及阈值PEKS体制[6,7],不经意关键词查询体制等等[8,9]。尽管能够实现密文检索功能,但此类体制的应用模式中,用户需要预先对关键词进行加密并上传服务器,在某些应用如全文检索中,这将为用户增加相当大的额外计算开销。
2009年,Gentry[10]提出第一种真正的全同态加密体制,随后出现了多种同类体制,计算效率等性能逐渐趋于实用。借助全同态加密,用户可以将数据加密后上传至云端,且不影响云服务器对密文的运算和处理,解决了数据安全与用户隐私的矛盾。Gentry指出,借助全同态加密,可以将密文检索转化为密文同态意义下的明文检索,从而解决密文检索问题,然而,由于密文关键词的匹配结果不能由服务器进行解密(否则服务器可以通过自行构造关键词,并与用户数据进行匹配的方法,实现对特定用户数据的猜测),因此会导致检索过程需要用户的配合,即以交互协议的形式实现,由此带来额外的计算和通信开销。
针对上述两类方法各自存在的缺点,本文提出一种基于全同态加密的密文检索方案,将全同态加密引入PEKS体制设计中,分别借助LWE问题和前像可采样陷门单向函数实现密文同态运算以及私钥提取的功能,进而构造出具备全同态加密属性的PEKS体制,将关键词加密的计算开销转移到云服务器,使得用户的计算和通信开销最小化。
2 基础知识
2.1 符号说明
在本文中,向量均被默认为以列向量的形式出现,使用粗体小写字母表示,如e;向量的第i个分量表示为e[i],向量e=(e[1],……e[n])的长度定义为其欧几里得长度,向量集合S={e1,……es}的长度则用其中最长向量的长度定义,记为||S||。文中的矩阵使用粗体大写字母表示,如Am×n。向量和矩阵的上标T表示其转置,如AT。
2.2 PEKS体制及其安全性定义
PEKS的定义如下:
定义1(PEKS体制)
PEKS体制的算法可描述为PEKS=(Key Gen,Encrypt,Trapdoor,Test):
(1)(pk,sk)=Key Gen(λ):输入安全参数λ,输出公钥pk和私钥sk;
(2)CW=Encrypt(pk,W):输入公钥pk和关键词W,输出关键词密文CW;
(3)TW=Trapdoor(sk,W);输入私钥sk和关键词W,输出陷门TW;
(4)b=Test(pk,CW,TW*):输入公钥pk、陷门TW*和关键词密文CW,根据W与W*的匹配结果,输出判定值b∈{0,1}。
PEKS体制需要满足一致性和安全性要求。PEKS体制的一致性需要满足:(1)对任意关键词W,Pr[Test(pk,PEKS(pk,W),Trapdoor(sk,W))=1]=1;(2)对任意关键词W1,W2且,Pr[Test(pk,PEKS(pk,W1),Trapdoor(sk,W2))]=1]=0。PEKS体制的安全性通过游戏(Game)的形式定义。
定义2(PEKS体制安全性)
体制的安全性采用游戏的方式刻画,定义一个攻击游戏,参与者是PEKS体制挑战者C和具备多项式时间攻击者A,游戏分为以下阶段:
初始化阶段:C执行算法Key Gen,并将生成的公钥pk交给A。
询问阶段1:A适应性的选择若干个关键词Wi交给C,挑战者执行陌门算法,将相应的陷门TWi反馈给A。
挑战阶段:A根据上个阶段积累的知识,选择两个关键词W0和W1作为挑战交给C,要求W0和W1在询问阶段未出现过。C从二者中随机选择Wb,b∈{0,1},执行Encrypt算法,计算其密文CWb。
询问阶段2:A可以继续适应性的询问关键词对应的陷门,但不能询问W0和W1的陷门。
猜测阶段:A输出be′∈{0,1},be′=b若则认为A赢得游戏。
攻击者A在游戏中的优势定义为,若对于任意多项式时间攻击者,该优势均可忽略,则认为PEKS体制具备选择关键词攻击下的不可区分性安全性(indistinguishability under chosen keyworddattack,IND-CKA)。
2.3 LWE问题与前像可采样陷门单向函数
容错学习问题(Learning with errors,LWE)[11]是“带噪声学习问题”(learning parity with noise,LPN)的一般形式,由于其具有相对较高的计算效率(主要计算形式为向量内积运算)和可靠的安全性归约,因此迅速成为构造格上密码体制的有力工具。
在定义LWE问题之前,首先给出Regev定义的两个概率分布:(1)DΛ,r,e是格Λ上以格点c为中心,标准差为的离散正态分布,当c=0时,简写为DΛ,r;特别的,对于整数q≥2,将Zq上的离散正态分布称为“错误分布”,记做χ。(2)对于取定的正整数n和Zqn上的向量S,定义一个Zqn×Zq上的概率分布As,χ,其变量具备(a,aT·s+χ)的形式,其中a是Zqn上均匀分布的变量,而x则随机取自错误分布χ,加法和向量乘法运算均在模q意义下进行。
定义3(LWE问题):给定素数q,正整数n和Zq上的错误分布,LWE问题实例包含一个特定的谕示O,该谕示或是由密钥s∈Zqn确定的伪随机噪声采样器OS,或是一个真随机采样器OR:
OS:其输出形如(ui,vi)=(ui,uiTS+xi)∈Zqn×Zq,其中,噪声值
OR:输出均匀随机分布的(ui,vi)=∈Zqn×Zq。
LWE问题要求攻击者在有限次访问谕示O之后,对谕示输出的随机性进行判定。将攻击者的优势定义为攻击者的优势,若在密钥S随机选择的情况下,该优势不可忽略,则称攻击者成功解决LWE问题。
Gentry等人[12]提出一种前像可采样的陷门单向函数,函数实现从离散正态分布到近似均匀分布的映射,并在拥有陷门的情况下,将近似均匀分布还原为最初的离散正态分布,输出满足原分布的变量。在定义函数之前,首先给出一个命题:
命题1[12]:
对于素数q=q(n)和m≥5nlogq,存在一个多项式时间算法Sample D[*],输入为参数1n,输出一个矩阵A∈Zqn×m和满秩的向量集合S⊂Λ⊥(A,q)={e∈Zqm:A·e=0 mod q},其中Λ⊥(A,q)可以看做Zqm上的格,矩阵A的概率分布与Zqn×m上的均匀分布不可区分,S的长度||S||≤m2.5。
在命题1的基础上定义函数fA:
定义4(前像可采样陷门单向函数):
对于命题1中的矩阵A,函数fA:Zqm→Zqn,定义为fA(e)=A·emod q满足性质(1)当输入向量e取自分布时,函数输出向量的概率分布与Zqn上的均匀分布不可区分;(2)在陷门S的作用下,逆函数fA-1(u):Zqn→Zqm的输出向量ee′服从分布且满足A·ee′=umodq。
3 体制构造
体制的构造思想是利用基于身份全同态加密体制的特性,将关键词作为身份加密体制中的身份信息,生成特定随机消息的密文;用户进行查询时,提供目标关键词的对应的身份私钥,服务器利用私钥对关键词解密,能够得到正确解密结果的意味命中。本文借助前像可采样陷门单向函数实现身份私钥的提取,进行构造出一个具备全同态特性的PEKS体制(以下称为FPEKS体制),其具体算法描述如下:
(1)密钥生成算法FPEKS-Setup(1n):按照命题2中的算法生成矩阵A∈Zqn×m及其陷门S∈⊂Λ⊥(A,q),分别作为FPEKS体制的公钥pk和私钥sk。
(2)关键词加密算法PEKS-Enc(pk,W,M):对于关键词W,算法的处理过程分为两步,用户执行第一步,第二步由云服务器完成:
第一步:用户计算关键词W的哈希值u=H(W)∈Zqn,发送给云服务器;
第二步:云服务器随机选择校验消息M={m1,……mλ}∈{0,1}λ,对于其中每个mi∈{0,1},随机选择向量,计算Pi=AT·Si+2·Xi∈Zqm。并利用收到的向量u,计算
最终得到关键字密文Cw={c1,……cλ,M}。
(3)陷门生成算法FPEKS-Trapdoo(W):对于待查询关键词W*对应的向量u*=H(W*),在随机喻示模型下,该向量的概率分布与Zqn上的均匀随机分布统计不可区分,因此可利用定义2中的函数fA-1对u*进行前像采样,得到向量TW=e*←fA-1(u*),且根据定义2可知,e*的概率分布满足
(4)验证算法FPEKS-Test(pk,TW,C):对于输入的公钥pk,陷门TW=e*和密文C={c1,……,cλ,M},对每个Ci分别计算mi*=((vi-<e*,pi>)modq)mod2。
如果{mi*,……,mλ*}=M,输出1;否则,输出0。
4 体制分析
FPEKS体制的一致性由前像可采样陷门单向函数的单向性和哈希函数的抗碰性保证:根据定义2可知,函数的输出向量e服从分布且满足A·e=umodq,当且仅当u*=u时,有A·e=u*modq,进而有mi*=mi=((vi-<e*,pi>)modq)mod2,即{mi*,……,mλ*}=M。
在随机谕示模型下,FPEKS体制的安全性归约到LWE体制的难解性,具体描述如下:
定理1:若存在PEKS体制的多项式时间攻击者,在攻击游戏中的优势ε不可忽略,则可构造多项式时间算法,以ε/2的优势解决LWE问题。
证明:假设存在FPEKS体制的多项式时间攻击者A,利用A的能力,构造LWE问题求解算法F如下:
对于给定素数q,正整数n和Zq上的错误分布,F访问谕示O,得到一组LWE问题实例(ui,vi)∈Zqn×Zq,i=0,……m,按照定义*,F需要对谕示反馈的随机性做出判断。F执行如下的FPEKS攻击游戏,并在游戏中以挑战者的身份调用攻击者A:
初始化阶段:F将(ui,vi)∈Zqn×Zq,i=0,……m组合成Zq上的n×m矩阵A,每个ui作为A的列向量。将矩阵A作为公钥pk交给A。
哈希函数谕示:F按照如下方式为A构造哈希函数谕示:对于输入的关键词W,F随机选择并计算u=A·e,根据定义2[f函数的定义],u的分布于均匀随机分布不可区分。在输出的同时,F记录三元组(W,u,e)。
询问阶段1:对于A提交的每个关键词Wi,F在随机谕示访问记录中查询(Wi,ui,ei),若找到,则将ei作为陷门TWi反馈给A,否则判定为非法访问,拒绝输出(即假设默认合法的陷门询问之前,询问者已经访问过哈希函数谕示)。
挑战阶段:A选择两个关键词W0和W1作为挑战交给F,F随机选择Wb,并调用Encrypt算法生成关键词密文,在得到的密文中,分别用LWE实例中的{v1,……,vm}和v0代替密文中的p和v。
询问阶段2:A继续询问关键词对应的陷门,F的反馈方式与阶段1相同。
猜测阶段:A输出be′∈{0,1},若be′=b则F猜测LWE实例中的谕示O=Os,否则猜测O=OR。
由挑战阶段的密文构造方式可知,当O=OS时,攻击者A得到的是正常的关键词密文,由于A是FPEKS体制的攻击者,因此A的猜测具有不可忽略的优势ε,而当O=OR时,A得到的是随机向量,其猜测的优势为0。故此,算法F根据A的猜测对谕示O的随机性进行猜测,能够以ε/2的优势解决LWE问题。
5 结语
关键词可搜索公钥加密技术是实现密文检索的有效手段之一,而全同态加密技术是解决云计算用户数据隐私保护问题的有效手段,本文将全同态加密的思想引入关键词可搜索公钥加密体制的设计中,提出一种具备密文同态运算能力的PEKS体制设计方案,具备较低的客户端计算复杂度,更加适合于云计算应用模式。
摘要:针对现有体制中用户生成关键词密文时的计算开销问题,引入全同态加密的思想,提出一种基于LWE问题,具备密文同态运算属性的关键词可搜索公钥加密方案,实现了计算开销由用户端向服务器端的转移。在随机谕示模型下,将体制的安全性归约到LWE问题难解性,并给出证明。
关键词:可搜索公钥加密,全同态加密,LWE问题,前像可采样陷门单向函数
参考文献
[1]Dan B,Crescenzo G D,Ostrovsky R,et al.Public Key Encryption with Keyword Search[M]//Advances in Cryptology-EUROCRYPT 2004.Springer Berlin Heidelberg:2004:506-522.
[2]Shamir A.Identity-Based Cryptosystems and Signature Schemes[M]//Advances in Cryptology.Springer Berlin Heidelberg:1984:47-53.
[3]Cao N,Wang C,Li M,et al.Privacy-Preserving Multi-Keyword Ranked Search over Encrypted Cloud Data[J].Parallel&Distributed Systems IEEE Transactions on.2014,25(01):222-233.
[4]Li J,Wang Q,Wang C,et al.Fuzzy keyword search over encrypted data in cloud computing[J].Infocom,2010,2009(09):1-5.
[5]Kamara S,Papamanthou C.Parallel and Dynamic Searchable SymmetricEncryption[M]//Financial Cryptography and Data Security.Springer Berlin Heidelberg:2013:258-274.
[6]Dong Jin Park,Kihyun Kim,Pil Joong Lee.Public key encryption with conjunctive field keyword search[C]//International Conference on Information Security Applications.SpringerVerlag:2004:73-86.
[7]Yong H H,Lee P J.Public Key Encryption with Conjunctive Keyword Search and Its Extension to a Multi-user System[C]//InternationalConference on Pairing-Based Cryptography.Springer-Verlag:2007:2-22.
[8]Regev,Oded.New lattice based cryptographic constructions[J].Journal of the Acm,2002,51(06):407-416.
[9]Gentry C,Peikert C,Vaikuntanathan V.Trapdoors for hard lattices and new cryptographic constructions.[J].Electronic Colloquium on Computational Complexity,2015(14):197-206.
抗密钥泄漏的基于身份的加密方案 篇2
基于身份的加密方案 (IBE) 是一类很重要的密码系统, 在有泄漏情况下, 设计抗泄漏的基于身份的加密方案 (LR-IBE) , 也引起了很多研究者的关注。文献[8]通过构造HASH证明系统给出了抗泄漏的加密方案的通用构造, 得到的抗泄漏量为L/4的方案, L是私钥长度。文献[11]推广了文献[8]的方法构造出了基于身份的哈希证明系统且在有界恢复模型下构造了抗泄漏的方案, 其所用的假设为q-ABHDE假设, 在证明中要依赖于敌手的查询次数, 一方面增加了安全性证明的难度, 另外一方面让系统的安全性能受损。在文献[16]中给出了基于平方判定性Diffie-Hellman困难问题假设 (SquareDBDH) 的IBE, 不用依赖于敌手的查询次数, 不仅简化了证明而且提高了系统的安全性能, 但是没有抗泄漏功能。
现给出了一个基于Square-DBDH假设的抗泄漏的IBE, Square-DBDH假设类似于DBDH假设, 但每个Square-DBDH元组所含元素比DBDH要少一个, 这样公钥的长度就可以变短了, 从另外一个角度提高了性能;并且Square-DBDH假设蕴含了DBDH假设, 但是它们的计算难解性是一样的[17]。现给出的方案充分保证抗泄漏性能, 方案的相对泄漏率可以达到1/2, 而且具有较短的公钥。
1 预备知识
1.1 双线性映射
假设G和G1是大素数p阶的乘法群, 对于一个映射e, 如果满足:
(1) 双线性:任给g, h∈G;x, y∈zp;e (gx, hy) =e (g, h) xy;
(2) 非退化性:e (g, g) ≠1;
(3) 可计算性:任给g, h∈G, 存在有效算法计算e (g, h) 。
则称e为双线性映射。
1.2 Square-DBDH假设
给定三元组g, gx, gy, 其中x, y←zp, β←{0, 1}。如果β=1, T=e (g, g) x2y;否则, 在G1中随机选取一个元素T。给定 (g, gx, gy, T) , 输出一个关于β的猜测β'。如果一个算法在解决SquareDBDH问题时, 称该算法有优势ε。
如果没有敌手在t时间内能以超过ε的优势解决Square-DBDH问题, 就称Square-DBDH问题是 (t, ε) 困难的。
1.3 提取器
两个随机变量A与B的统计距离, 一个随机变量A的不确定性度量 (最小熵) H" (A) =-lg{maxxPr[ (A=x) ]}。
A在给定条件B时的平均最小熵为
定义1对于一个函数Ext:G{0, 1}r→{0, 1}n, 其中G是一个群, U是{0, 1}n上的均匀分布, S是{0, 1}r上的均匀分布, 如果满足条件:任给A∈G且H" (A) >k, k是一个正整数, 都有SD{[Ext (A, S) , S], (U, S) }≤ε (ε可以忽略) ;就称Ext为强度 (k, ε) 的提取器。
事实1[18]若A、B、C为随机变量, B最多有2λ个值, λ是一个正整数 (在下文中具体表示泄漏的上界) , 那么
要说明的是:本小节中的A, B均表示形式上的随机变量, 在下文中也用A表示一个敌手、B表示一个仿真者, 很容易从语境中区分开来。
2 构造抗泄漏的IBE
2.1 本文构造的抗泄漏的IBE方案
设计抗泄漏的基于身份的加密方案Φ有以下四个算法构成:
(1) Setup:设置算法, 运行双线性群生成算法GROUPGEN (1κ) → (p, G, G1, e) , 其中κ是系统安全参数, 随机选择x←Zp, 计算gx=h, 哈希函数:H:{0, 1}*→G, 明文空间是M={0, 1}n, λ是一个泄漏的上界, Ext:G1×{0, 1}r→{0, 1}n是一个强度为 (logp-λ, ε) 的提取器, 主公钥为mpk= (g, h) , 主私钥为msk=x。
(2) Ken Gen:私钥产生算法, 对于一个给定的身份ID, 随机选择t←Zp, 计算H (ID) =u, 产生身份ID的私钥skID= ( (uh-t) x, t) = (d1, d2) 。
(3) Encryption:加密算法, 对于身份ID来说, 给定一个明文消息m←M。随机选取y←Zp, 和s←{0, 1}r, 产生的密文:
(4) Decryotion:解密, 划分c= (c1, c2, c3, c4) , 私钥skID= (d1, d2) , 计算得到明文:
所构造的方案是正确的, 因为h=gx, d1= (uh-t) x, 所以
2.2 抗泄漏的IBE的安全性实验
为了刻画敌手在边信道攻击和冷启动攻击下的能力, 给出了以下抗泄漏的IBE实验。
EXP1:
设置算法:挑战者产生主公钥和主私钥, 把主公钥给敌手。
查询阶段1:敌手能进行两类查询, 私钥查询和泄漏查询。
私钥查询, 敌手选定ID给挑战者, 挑战者给出对应的私钥skID。
泄漏查询, 对于给定身份ID的私钥skID, 一般是这样建模的, 敌手可以自适应的选取泄漏函数fi作用于skID, 挑战者返回给敌手fi (skID) , fi (skID) 的输出长度记为λi, 对此所做的限制是∑λi小于一个给定的上界λ。
挑战:敌手选定两个明文m0和m1和一个没有被查询过的身份ID*并把它们发给挑战者, 挑战者随机地选取β←{0, 1}, 用ID*加密mβ得到密文C*发给敌手。
查询阶段2:与查询阶段1类似, 不同之处是不能进行泄漏查询, 且对身份ID*不能进行私钥查询。
猜测:敌手输出一个猜测比特β', 如果β'=β敌手就获胜。
对于一个IBE方案, 如果任意的概率多项式时间 (PPT) 敌手A在上述所定义的实验中获得的优势 (记为AdvAEXP1) 都是可以忽略的, 即:AdvAEXP1≤ε, 就称这个加密方案是抗泄漏安全的。
现给出的方案Φ在EXP1中是抗泄露安全的, 具体证明在下一小节给出。
3 安全性证明
定理1如果Square-DBDH假设成立、Ext是一个强度为 (k, ε) 的提取器, 则上一小节给出的方案是抗泄漏安全的, 其中泄漏量λ=logp-k。
为了证明定理, 再定义一个实验EXP2, EXP2和EXP1除了挑战阶段略有不同之外, 其它部分都一样, 具体如下。
EXP2
挑战阶段:敌手选定m0和m1和一个没有被查询过的身份ID*发给挑战者, 挑战者随机的选取β←{0, 1}, 用ID*加密mβ得到密文c*返还给敌手。加密如下:
其中t*是身份ID*的私钥sk*ID的标签, w、y是zp中的随机值, 挑战密文c*= (c1*, c2*, c3*, c4*) , 要强调的是当w不等于y时, 这个挑战密文不是一个有效密文, 因为此时只有在标签t*下才可以解密。
方案的正确性分两步来证明, 第一步证明PPT敌手A在EXP1和EXP2的取得的优势之差是可以忽略的, 第二步证明在EXP2中任何PPT敌手A的优势是可以忽略的, 那么总的来说, 任何PPT敌手A在EXP1中的优势是可以忽略的。具体由以下两个引理来证明。
引理1任何PPT敌手A在EXP1和EXP2获得的优势之差都是可忽略的, 即
证明总体思路, 用反证法, 如果存在一个敌手A在EXP1和EXP2获得的优势之差是不可忽略的, 即:AdvAEXP1-AdvAEXP2≥ε, 那么通过A就可以构造一个模拟者B使得B能以不可忽略的优势破坏Square-DBDH问题, 这与Square-DBDH是困难的假设矛盾, 因此引理得证, 下面给出具体证明。
初始设置B设定h=gx, 主私钥是msk=x, 选择一个合适的提取器Ext, 把主公钥mpk= (g, h) 发给敌手A。
Hash查询当敌手A提供一个身份ID给B时, B选择两个随机的值δ, t←zp计算gδht作为H (ID) 返还给敌手 (即:H (ID) =gδht) 。
查询阶段1敌手A能进行两类查询, 私钥查询和泄漏查询。
私钥查询, 敌手A给定ID, 模拟者B给出对应的私钥:其中,
泄漏查询, 对于A给定的私钥skID可以通过查询获得相应的泄漏信息, A自适应的选取泄漏函数fi作用于skID, 得到fi (skID) , fi (skID) 的长度记为λi, 对此所做的限制是∑λi小于一个给定的上界λ。
挑战敌手A选定m0和m1和一个身份ID*, 发给模拟者B, 模拟者B随机地选取β←{0, 1}, 用ID*的私钥sk*ID= (hδ*, t*) = (d1*, d2*) 加密mβ得到密文c*发给敌手A。加密如下:
查询阶段2与查询阶段1类似。
猜测敌手A输出一个比特的猜测β', 如果β'=β模拟者B就输出1, 否则输出0。
在上述实验中模拟者B破坏Square-DBDH假设的优势是不可忽略的。因为有以下两种情况。
(2) 如果, 则有:
由上可知, 。这样, 敌手B就以超过ε的优势解决Square-DBDH问题, 与Square-DBDH问题的困难性假设矛盾, 从而引理得证。
引理2对于任何PPT敌手A而言, A在EXP2中的优势是可以忽略的, 即:AdvAEXP2≤ε。
证明因为在实验2中Q=e (u*, hy) ×e (h, h) t* (w-y) 。t*是身份ID*对应私钥sk*ID的标签。因为H (ID*) =gδht*, 所以t*=lgh (H (ID*) g-δ*) =lghH (ID*) -δ*/x。在对于敌手A来说, 除了c4*之外, 所有其它变量都是固定的。由于δ*是随机的, 所以对固定的H (ID*) 来说t*是在zp上的随机均匀分布。这事实上说明Q=e (u*, hy) ×e (h, h) t* (w-y) 是G1上的均匀分布。
由引理1可以得到AdvAEXP1-AdvAEXP2≤ε, 从而AdvAEXP1≤AdvAEXP2+ε;由引理2可以得到AdvAEXP2≤ε, 那么AdvAEXP1≤AdvAEXP2+ε≤ε+ε=2ε, 故定理得证。因此, 给出的方案是抗泄漏且安全的, 相对泄漏率 (泄漏量和私钥长度的比值) 为, 其中k是提取器的安全参数 (是一个定值) , 只要参数P足够大, α就可以接近1/2。
4 结束语
基于身份加密的主密钥弹性泄漏 篇3
近期,各种各样的边信道攻击[8—11]和冷启动攻击[12]可以泄漏密码系统的秘密信息,致使原先设计的方案的安全性受到破坏。因此,抗泄漏的密码方案的设计就成了信息安全领域的一个热点研究问题。已经取得了一些相关成果:抗泄漏的流密码[13]、抗泄漏的签名方案[14、15]、抗泄漏的加密方案[16—18]。
在抗泄漏的IBE方案中[19—22],还没有抗主密钥泄漏的方案。本文构造了一个能抵抗主密钥泄漏的加密方案。基于DBDH困难问题假设可以获得方案的安全性。运用信息论中熵的理论,通过选择强度较好的提取器,主密钥的相对泄漏率几乎可以达到1。
1基本知识
1.1DBDH假设
DBDH问题:设G和GT都是阶为素数p的乘法循环群,e是一个双线性映射,给定元组(g,ga,gb,gc,T)∈G4×GT作为输入,当T=e(g,g)abc时输出1,否则输出0。对于算法A解决DBDH问题来说,输出υ∈{0,1}的优势AdvADBDH定义为:
式中,是随机选取的,R∈GT和A选择的比特也是随机的。
如果任何概率多项式敌手A在t时间内解决群G上的DBDH问题具有的优势AdvADBDH都是可以忽略的(也就是AdvADBDH≤ε,ε为一个可以忽略的值),则称(t,ε)-DBDH假设成立。
1.2提取器
随机变量X和Y的统计距离定义为:,随机变量X的最小熵定为:
定义1一个函数:
Ext:{0,1}n×{0,1}r→{0,1}m称为强度为(k,ε)的提取器,只要满足条件:Λ是{0,1}m上的均匀分布,S是{0,1}r上的均匀分布,若对于X∈{0,1}n且,就有SD[Ext(X,S),Λ]≤ε。
结论1若X、Y、Z为随机变量,Y最多有2λ个值,λ是一个正整数(在下文中具体表示泄漏的上界),那么:
2本文的加密方案
加密方案由四个算法组成:设置算法,密钥生成算法,加密算法,解密算法。
2.1设置算法
给定一个安全参数,运行群生成算法G(k)获得元组(p,G,GT,e)。随机选择群G的一个生成元g、元素u和中一个元素α。计算e(g,g)α。选择两个哈希函数:H1:{0,1}*→G和。公钥参数PP为PP=[g,u,e(g,g)α,H1,H2],主私钥为msk=α。
2.2密钥产生算法
对于身份ID,随机选择,计算d0=gαur、d1=gr。进一步计算。接着,计算d2=[H1(ID)utagk]r。输出私钥skID=(d0,d1,d2)。
2.3加密算法
对于身份ID来说,要对明文M加密,算法随机选择,计算:
输出密文C=(C0,C1,C2,C3)。
2.4解密算法
把密文C划分为(C0,C1,C2,C3),用私钥skID=(d0,d1,d2)来解密,过程如下:计算tagc=H2(C0,C1,C2)和tagk=H2(d0,d1),比较是否e[H1(ID)utagc,C1]=e(C3,g)。如果不等,算法终止。若相等的话,接着判断是否tagc=tagk,若相等算法终止;否则:
3方案的正确性和安全性与抗泄漏特性
3.1正确性
定理1 2节给出的方案是正确的。
证明:
由于。所以方案是可以正确解密的。
3.2安全性
定理2如果H1和H2是作为随机语言机的话,那么所给的方案在DBDH假设成立的情况下是选择密文安全的。
证明:类似文献[7]。
3.3抗泄漏特性
定理3本文所给方案的主密钥相对泄漏率η=λ/lg(p)≈1,其中λ表示主私钥的泄漏量。
证明:假设主密钥没有泄漏的话,从信息论的角度来说,主私钥α对于敌手来说具有的熵是lgp,也就是。当主密钥有λ比特信息泄漏时,用C来表示这个泄漏量(C有2λ个值),由结论1可知,。只要所选的提取器的强度是[lgp-λ,ε],那么就有SD((Ext(e(g,gα)s,t),t,C,A),(Λ,t,C,A))≤ε,Λ是对应的均匀分布。因此,我们只要选取性能足够好的提取器,λ的取值就可以和lgp很接近,且C0=MExt[e(g,g)αs,t]以ε距离接近均匀分布。那么,从信息论的角度很好地隐藏了密文,敌手在安全性游戏中获得的优势至多为2ε,因此可以得到η=λ/lgp≈1。
4结束语
本文构造的基于身份加密方案是可以抵抗主私钥泄漏的。可以发现提取器的性能越好,方案的抗泄漏性能就越好,几乎可以泄漏整个主私钥。抗泄漏加密方案研究尽管取得了一些成果,但是由于它是密码研究领域刚兴起的研究方向,所以还有很多没有解决的问题,比如说抗泄漏的随机数的产生、抗泄漏的密钥交换协议都还是公开的问题。
摘要:最近几年,各种各样的边信道攻击导致密码系统的秘密信息不同程度泄漏,为此密码学研究者掀起了抗泄漏的密码方案的研究热潮。构造出了一个可以抵抗主密钥泄漏的基于身份加密方案。给出了方案的正确性证明,基于DBDH假设证明了方案的安全性,用信息论熵的理论给出了抗泄漏的性能分析,主密钥的相对泄漏率几乎可以达到1。
公钥加密技术与应用 篇4
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理, 使其成为不可读的一段代码, 通常称为“密文”, 使其只能在输入相应的密钥之后才能显示明文, 通过这种途径来达到保护数据不被非法窃取、阅读的目的。该过程的逆过程为解密, 即将该编码信息转化为其原来数据的过程。
二、公摇加密的方法
计算机加密技术主要分为两大类:“对称式”和“非对称式”。对称式加密就是加密和解密使用同一个密钥, 通常称之为“Session Key”这种加密技术目前被广泛采用, 如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法。
非对称式加密算法就是加密和解密所使用的不是同一个密钥, 通常有两个密钥, 称为“公钥”和“私钥”, 两个必需配对使用, 缺一不可以打开加密文件。“公钥”以对外公布, “私钥”由持有人一个人秘密保存。因为对称式的加密方法假如是在网络上传输加密文件就很难把密钥告诉对方, 不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥, 且其中的“公钥”是可以公开的, 也就不怕别人知道, 收件人解密时只要用自己的私钥即可
以, 这样就很好地避免了密钥的传输安全性问题。公钥加密的过程参见图1:
三、密钥的使用和管理
假如用户重复使用同样密钥, 那么密钥同其它密码一样存在安全性的问题。即使用户私钥不对外公开也很难保证私钥长期的保密性。另外使用一个特定密钥加密的信息越多, 提供给窃听者的材料也就越多, 从某种意义上来讲也就越不安全了。因此, 一般强调仅将一个对话密钥用于一条信息的传输中, 或者建立定时更换密钥的机制以减小密钥泄漏的可能性[1]。
在多密钥管理体系中, 假设用户甲想和用户乙进行秘密通信, 用户甲首先和KDC进行通信, 用只有用户甲和KDC协商的唯一密钥对数据加密, 用户甲告诉KDC他想和用户乙进行通信, KDC为双方用户之间的随机选择一个对话密钥, 并生成标签, 标签由KDC和用户乙之间的密钥加密, 并在用户甲启动和乙对话时, 用户甲把标签交给乙。标签的作用是让甲确信和他交谈的是乙, 而不是其他人。由于标签只有用户乙和KD协商的密钥进行加密, 所以即使冒充乙的用户得到甲发出的标签也不可能进行解密, 从而保证计算机数据的安全性。
四、加密技术的应用
1、公钥加密技术在软件商务系统的应用
电子商务 (E-business) 要求顾客可以从事各种商务活动。在过去, 用户为了防止信用卡的号码被窃取到, 一般是通过电话订货, 然后使用用户的信用卡进行付款。现在人们开始用RSA (一种公开/私有密钥) 的加密技术, 提高信用卡交易的安全性, 从而使电子商务走向实用成为可能。
2、公钥加密技术在防盗版领域的应用
公钥加密算法是不依靠硬件来实现, 可以对软件的知识产权进行保护。目前RSA非对称密钥算法普遍用来生成软件密钥, 加密光盘, 制作加密狗等用途, 也可以算作软加密类中。
3、公钥加密技术在软件VPN系统的应用
通过VPN软件安全传输数据已广泛用于各个领域之中。利用VPN, 当发送方发送数据时, 数据首先被用户湍连接到路由器通过硬件对数据进行非对称密钥加密, 当达到目的路由器时, 该路由器再通过双方协商的密钥对数据解密, 从而保证数据传输的安全性。
五、结束语
上述对加密技术的讨论, 让我们了解并掌握一些方法, 为自己创造一个相对更安全的环境来使用互联网。而现代科技飞速发展, 加密技术不断推陈出新, 必定会有更多更完善的加密技术为我们服务。
参考文献
[1]杨海东、安宗旭:《加强全民动员, 确保信息安全》, 《安徽电子信息职业技术学院学报》, 2005年第2期。
[2]贾义、赵楠:《信息安全和RSA》, 《教育理论与实践》, 2009年第36期。
[3]李兴明、何宏、王成友:《对我国信息安全的几点思考》, 《重庆工业高等专科学校学报》, 2004年第5期。
[4]张立宪、叶玉丹:《信息安全与防御》, 《安徽电子信息职业技术学院学报》, 2005年第1期。
基于身份的公钥加密 篇5
1 机会网络安全路由架构建设的必然性
所谓的机会网络,就是利用大家的各种社会活动所创造的机遇性机会对信息进行传输,其将网络断路当做一种常态,将每一次节点的移动都当做一次新的传输机会,即使面对再恶劣的环境也可以以完全颠覆传统网络的处理方式对数据进行处理,其概念来源极为广泛,与容迟网络、移动的自组织网络以及社会网络等都有着极为密切的关系。从当前社会网络的蓬勃发展来看,机会网络越来越广泛的的应用前景是毋庸置疑,尤其是低成本手持通信设备高速普及的今天,以日常生活中的移动对数据进行传输与共享极为普遍。
由于机会网络是一种公共通信设施,其网络建立在开放式的环境下,在其网络中进行上传或者接受等信息的传输时,随时都有遭受窃听、截取、修改、重放等方式攻击的威胁[2],而传统的网络公钥密码体制对公钥的约束较多,公钥的使用必然要先依赖于所谓的认证中心的可信第三方存在,统一由认证中心为用户颁发公钥证书。因此,公钥证书中认证中心的签名信息就将用户身份与看似随机的公钥信息紧密联系在了预期,所有用户身份与公钥一定要经过认证中心签名才是合法的,因而认证中心成为网络路由架构下的关键核心部门,对用户公钥证书的生命周期中任何一个环节都要负责。此类证书的使用不但耗费了巨大的计算与存储开销,管理工作比较纷繁复杂,而且处于系统中心地位的证书认证机构有着非常高的要求,系统负担极重,最重要的是对用户信息数据保密性不强,安全性存在极大的缺陷[3]。
由此可见,在机会网络中建立起以身份加密的安全路由架构,保护开放性环境下用户资料和数据的安全,是非常有必要的,也是当前信息化社会建设迫切需要解决的问题之一。
2 基于身份加密的机会网络安全路由架构的基本概况
在机会网络中,网路节点都是以“存储-携带-转发”的基本模式对所传输的消息进行路由,任意一个节点都需要通过自身具备的知识来进行计算,做出判断,选用最佳的路由策略。
机会网络根据转发策略的区别可以分为基于散播的路由、基于效用值的路由以及基于移动的路由等3种,其中,最受关注的要数以节点的社会上下文作为效用值,对转发策略进行制定的路由协议。运用移动通信设备携带者的社会属性(即,社会上下文)来预测节点的下一次相遇性机会,可以制定更有效的路由策略,通过身份加密的用户隐私保护策略则重点保护用户的社会上下文不暴露给更多不受信任的节点,保护用户隐私[3]。例如,当源节点NS要想目的节点ND发送消息M时,NS首先将ND的档案合并生成消息头Header(M),再发给2跳内的邻居节点,邻居节点会通过对比自身的档案消息与Header(M)的属性消息,得到匹配度再发回给NS,NS最终会选择匹配度较高的节点作为随后的2跳路由选择,如此推进,直到到达ND。
基于身份加密的机会网络安全路由架构通过关键字可搜索的加密算法为节点的社会上下文设置了相匹配的陷门,虽然中继节点仍然可以计算上下文匹配度、制定相应的转发策略,但是不会暴露任何源节点NS属性信息。同时,节点的社会上下文信息会合成相应的公钥对信息进行加密[4]。
基于身份加密的机会网络安全路由架构一方面对方案的安全模型进行建设,另一方面也对基于身份密码体制下的强指定验证者签名、签密、多签密、多接收者匿名签密以及面向群组的加密和签密、安全密钥分发协议等密码学方案的安全性定义与具体实现进行了重点的研究,方案甚至可以满足代理签名与强指定验证者签名情况的安全特性,可以有效的防止签名滥用与签名内容的泄露。
3 机会网络安全路由架构具体内容
3.1 基于IBE的安全路由算法
为了避免信息加密阶段因为身份证书的获取与验证带来不必要的麻烦,可以运用身份密码学架构,提供在节点与私钥间无交互通信的情况下实现的安全服务,本方案需要运用到高效可搜索的加密算法,该算法是IBE的一种变形,通过该算法为节点的属性生成陷门,为节点隐私提供保护,并通过节点的社会上下文生成公私钥数据对,保障消息的机密性和安全性;通过设置相关功能函数,分别对系统参数的初始化、陷门、密钥、消息头的生成以及信息的解密等进行处理[5]。如,设网络中的节点NX有m个社会属性,但是在每一个社会属性下又要设计一些相关的函数对相关数据进行管理和推演,该类函数一般都是强密码的。如,可以设置消息分块函数,当需要传输的消息过大时,可以运行该函数将消息分成n比特的消息块,方便传输,使加解密过程更迅捷。
3.2 安全架构在机会网络中的具体实施
最开始,将网络中节点按照社会上下文中相关属性的不同被划分为诸多不同的社区定义为本架构在机会网络中实施时的安全假设。至此,某一个相同社会属性的接地同属于一个社区,而提供了这种安全假设后,属于同一社区内的用户就可以相互信任,且某一个节点为本社区内任意节点透露其共有的属性并不会被视为隐私的泄露。同时,任意节点的社会上下文具备唯一性,可以作为节点身份的代表。例如,在Comi社区中的节点都有相同的社会属性i,社区内节点见透露属性i时并不会被视为隐私泄露。
在上述安全假设基础上,架构中所有中继节点在制定转发策略时,可以轻而易举的发现自身档案与目的节点的档案之间共同的社会属性,快速计算其匹配度。如果社会属性不同,中继节点就无法获得任何信息,可以对社会上下文的隐私起到极好的保护作用[6]。
例如,在Propicman协议模型中,要在机会网络中部署实施了安全架构的S-Propicman协议,要先建立参数系统,初始化节点,节点NS将需要发送给节点ND的消息M以数据包的形式逐步发送,结果多个节点NX的转发后,消息数据包得到ND处,ND运行诸如DEC等消息加解密算法解密数据包,即可获取明文数据M。
3.3 身份加密安全架构在机会网络中的安全性
3.3.1 社会上下文的隐私性
高效可搜索的加密方案具备抵抗不可区分的自适应选择关键字符攻击的能力,可以保证节点只有在拥有对方节点的陷门时,才可以获取消息源头中的相关属性信息,而且相关环节专门负责生成并保存社会属性的私钥,其陷门的分发仅仅针对内部用户,这也就避免了单一节点被捕获可能造成的属性私钥泄露情况的发生。
3.3.2 信息的机密性
在架构中生成公钥并加密消息都是以目的节点的社会上下文属性为基础的,目的节点是唯一可以解密的节点;同时,也可以引入对称密钥来进行消息的加密,运用节点社会上下文生成的公私钥对对称密钥进行加解密,极大的提高了算法的性能也保证了消息的机密性[7]。
3.3.3 通信节点的匿名性
架构中源节点发送的数据包中包含了根据目的节点的社会上下文生成的可搜索消息头和消息秘闻,但并不包含任何源节点的消息,可见数据包在结果多跳的路由转发后,攻击节点就无法从截获的数据包中取得相关数据源节点的丁点身份信息,实现了发送者的匿名性。
4 结语
机会网络融移动的自组织网络、容迟网络、社会网络等诸多概念为一体,可以通过移动节点的相遇性机会对消息进行传输和共享。基于身份认证的机会网络安全路由架构其实就是针对目前机会网络中极为流行的基于社会中上下文的路由转发协议,来设计基于身份加密的信息安全架构,以此保证节点社会中上下文的隐私性与信息的保密性。此安全路由架构可以通过搜索方便的加密算法来为任意一个节点的社会属性设计相应的陷门,导致中继节点在可计算自身和目的节点之间社会上下文匹配度、可制定相应的转发路由策略的同时,却无法获取目的节点与属性相关的任何信息,同时,也可以使用节点的社会上下文产生公钥对信息进行加密,多次实验仿真数据表明,此安全路由架构可以确保信息的机密性,且本方案中的部署在网络报文投递率和报文的平均时延方面并未造成明显的影响,不失为一种实用、高效、稳定的机会网络安全路由架构。
参考文献
[1]沈二琳,李德其.基于MCPK的移动网络安全路由方案[J].广西计算机信息,2010,(26):74-77.
[2]王永芝,季磊,胡一度.使用对技术的基于身份密码学研究综述[J].安庆师范学院学报,2009.8,1l(3):56-59.
[3]陆乾容,杜少敏.机会网络研究进展及其安全路由架构[J].中国计算机研究,2008,(5):12-23.
[4]许娟,刘军燕.机会网络及其数据管理的概念、问题与进展[J].软件学报,2009,8,1l(3):56-59.
[5]钟桓昌,刘鼎铭.无线Ad hoc网络及其安全路由架构研究难点[J].中国计算机研究,2007,(5):46-57.
[6]刘光耀,冯凡卡,刘军.一种WSN的非一致性数据故障检测机制[J].软件学报,2010,(12):112-115.
基于身份的公钥加密 篇6
1 知识理论基础
1.1 基础IBE理论
IBE与其他传统的密码方案不同的是, 首先将用户信息进行有效的收集进而利用准确的运算得出具体数值, 在此类方案中需要用户如实填写自己的用户信息作为身份验证的标志, 例如, 可以将自己的邮箱作为身份检验的依据, 这种方案本身运作比较灵活, 在申请的范围内, 根据用户的不同安全级别, 可以访问相应不同程度的隐私内容。
1.2 共享秘密门限
共享秘密门限这种方案的工作内容是, 如果将核心的秘密用A来表示, 那么在一个公式中将每个算法的程序分成B个步骤, 即B1, B2, B3……BN, 从中将这N个步骤继续计算得出原始秘密值T, 如果不运用这种方法则无法算出T值。
1.3 DHT网络内容
DHT作为一种基本建设工具, DHT的主要工作原理是利用数据的分布情况在网络系统中进行搜索、管理、储存等功能, 这种DHT的主要特色是规模大, 范围分布比较广且松散, 因为DHT网络储存信息的自身特点, 利用效率较高, 并且会自动清除旧数据和信息, 以上的几点因素保证了DHT网络的抗攻击能力比较好, 是建立安全自毁方案, 保证其顺利开展的基本保障[1]。
2 假设方案和目标设计
首先, 应该根据方案的内容特质, 进而设计方案和拟定设计目标, 例如, 在设计的整体过程中首先考虑的是制定有效时间范围, 在有效的时间内, 确定网络隐私的过期时间, 其次确定自毁目标, 建立一个全新的数据系统, 在传输的过程中确保供应商的存储力度, 这种方法的运用都可以在根本上确保网络内容的隐私安全。
2.1 目标设计
首先方案在目标设计方面应该包括以下内容:现有的基础安全设施和科学工具, 采用合理的密码管理系统, 控制细粒度访问, 对目标的要求不仅要具备强大的抗攻击能力, 保证其过期后能够进行自毁行为。
2.2 设计方案
⑴具有时效特色的隐私内容, 自毁方案的主要目的是为了解决隐私内容的安全问题, 首先应该制定有效的时间范围, 保证用户在这个时间段内能对授权内容进行正常访问。⑵连接网络, 确保供应商和使用者的网络连接无误, 并保证网速的流畅性, 让数据能够双方面进行换取和替换, 方便用户之间进行数据交流。⑶确保用户和可信服务器的可信程度, 首先, 确保用户的可信度, 这种可信度是保证用户不会因为自己的原因盗取密钥的数据, 其次是方案的建立者, 要确保其可信的程度, 最后应该确保可信服务器万无一失。⑷供应商的储存服务可信度, 供应商在储存方面并不十分可信, 部分供应商在提供服务的同时, 会向相关的政治机构泄露信息数据[2]。
3 构造方案
建立ISS方案的主要依据是要保证用户的隐私安全问题, 另一方面要确保安全的增值服务, 如果将自毁方案进行系统内容的分析和归纳, 可以将具体的实施步骤分为以下几点:⑴建立系统, 首先在系统最开始运作的时候, 应该建立参考模型, 确定参数, 决定建立方向, 为以后的步骤发展打好基础。⑵划分安全等级, 首先应该将隐私信息中涵盖的内容进行划分, 不同的隐私划分水平来满足客户的不同需求, 其次, 不同的密钥主要是根据用户不同的安全等级来划分的, 应该提高密钥的整体利用率。⑶处理网络隐私内容, 根据用户的不同需求, 来划分不同内容的隐私模块, 并将这些不同的隐私模块进行共享交流, 并将方案进行一定的密钥管理, 将重点数据调入到相关网络中, 增强攻击能力, 对网络隐私内容进行有效的处理。⑷控制有效范围内的细粒度, 首先对有效的客户信息进行掌控, 并从供应商手中调取相应的有效数值, 最后将解密内容进行运算, 有效的控制范围内的细粒度能够方便不同的用户访问不同安全级别的内容。⑸自毁超过时效的网络隐私内容, 将超过时间范围的网络隐私内容安装安全自毁程序, 首先应该保证网络中的有效信息数据能够进行自我更新, 并且能够更新空间, 舍弃过期的安全隐私内容[3]。
总结:随着全球科技水平的不断提高, 各种有利于隐私内容存储和研究的数据和文件等第三方服务器得到了深度的发展和研究, 基于身份加密的安全自毁方案成为了当下对于网络安全隐私保护的一种热门机制, 本文对面向网络内容隐私的基于身份加密的安全自毁方案进行了简要探析, 希望对用户的网络隐私内容的安全访问提供良好的发展环境。
摘要:随着我国科学技术的快速发展, 网络内容隐私安全问题成为了现阶段人们热门讨论的话题, 其中在身份加密方面的安全自毁方案成为了当下比较受欢迎的研究解决方法, 根据网络内容的性质和要求, 采取不同的安全自毁方式, 其次加强高科技的手段和密码方法的研究力度, 提高网络内容整体的隐私安全水平, 本文将对面向网络内容隐私的基于身份加密的安全自毁方案进行简要的研究。
关键词:网络内容,隐私,身份加密,安全自毁,措施
参考文献
[1]郭莉, 牛温佳, 李刚.《网络安全行为分析》专辑前言[J].计算机学报.2014, 01:3-4.
[2]吴越, 李建华, 林闯.机会网络中的安全与信任技术研究进展[J].计算机研究与发展.2013, 02:278-290.
基于身份的公钥加密 篇7
1 私钥加密
1.1 概述
私钥加密,也称为对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。因此,通信双方都必须获得这把钥匙,并保持钥匙的秘密。
DES (Data Encryption Standard) 和TripleDES是私钥加密的两种实现。DES和TripleDES基本算法一致,只是TripleDES算法提供的key位数更多,加密可靠性更高。DES使用的密钥key为8字节,初始向量IV也是8字节。TripleDES使用24字节的key,初始向量IV也是8字节。两种算法都是以8字节为一个块进行加密,一个数据块一个数据块的加密,一个8字节的明文加密后的密文也是8字节。如果明文长度不为8字节的整数倍,添加值为0的字节凑满8字节整数倍。所以加密后的密文长度一定为8字节的整数倍。
私钥加密算法的优点是保密强度高,加、解密速度快,适合加密大量数据。攻击者如果对加密后的数据进行破译,惟一的办法就是对每个可能的密钥执行穷举搜索。而采用这种加密技术,即使使用最快的计算机执行这种搜索,耗费的时间也相当长。如果使用较大的密钥,破译将会更加困难。在实际应用中,加密数据采用的密钥一般都有时效性,比如几天更换一次密钥和IV,如果攻击者采用穷举法试图破译加密后的数据,等到好不容易试出了密钥,加密者早已采用新的密钥对网络中传输的数据进行加密了,因此利用穷举搜索的方法破译加密后的数据实际上是没有意义的。
DES算法加密与解密算法过程如图1所示。
1.2 在.NET编程中的应用
在.NET Framework中,公共语言运行时CLR (Common Language Runtime)使用面向流的设计实现私钥加密,该设计的核心是Cryp-toStream,实现CryptoStream的任何被加密的对象都可以和实现Stream的任何对象链接起来。实现对称加密算法的类主要有:
DESCryptoServiceProvider———DES加密算法(可用密钥长度为64位)
TripleDESCryptoServiceProvider———TripleDES加密算法(可用密钥长度为128—192位)
为了使用流进行加密解密处理,.NET Framework还提供了CryptoStream类,该类用于定义将数据流链接到加密转换的流。实现CryptoStream的任何加密对象均可以和实现Stream的任何对象链接起来,因此一个对象的流式处理输出可以馈送到另一个对象的输入,而不需要分别存储中间结果,即不需要存储第一个对象的输出。
C#编程过程中使用的主要代码:
2 公钥加密
2.1 私钥加密存在的问题
私钥加密的缺点是双方使用相同的密钥和IV进行加密、解密。由于接收方必须知道密钥和IV才能解密数据,因此发送方需要先将密钥和IV传递给接收方。这就有一个问题,如果攻击者截获了密钥和IV,也就等于知道了如何解密数据!
2.2 公钥加密
公钥加密也叫不对称加密,这种技术使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。不对称加密产生的主要原因有两个,一是对称加密的密钥分配问题,另一个是由于对数字签名的需求。
不对称加密使用一个需要保密的私钥和一个可以对任何人公开的公钥,即使用公钥/私钥对来加密和解密数据。公钥和私钥都在数学上相关联,用公钥加密的数据只能用私钥解密,反之,用私钥加密的数据只能用公钥解密。两个密钥对于通信会话都是惟一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。
私钥加密算法使用长度可变的缓冲区,而公钥加密算法使用固定大小的缓冲区,无法像私钥算法那样将数据链接起来成为流,因此无法使用与对称操作相同的流模型。这是编写程序时必须注意的问题。
为什么不对称加密更不容易被攻击呢?关键在于对私钥的管理上。在对称加密中,发送方必须先将解密密钥传递给接收方,接收方才能解密。如果避免通过不安全的网络传递私钥,不就解决这个问题了吗?
不对称加密的关键就在于此。使用不对称加密算法加密数据后,私钥不是发送方传递给接收方的,而是接收方先生成一个公钥私钥对,在接收被加密的数据前,先将该公钥传递给发送方;从公钥推导出私钥是不可能的,所以不怕通过网络传递时被攻击者截获公钥。发送方得到此公钥后,使用此公钥加密数据,再将加密后的数据通过网络传递给接收方;接收方收到加密后的数据后,再用私钥进行解密。由于没有传递私钥,从而保证了数据安全性。
虽然公钥加密解决了用对称加密传递消息必须传递密钥的问题,但是由于公钥加密无法使用流进行处理,因此与对称加密相比效率较低,不适用于加密大量数据的场合。在实际应用中,一般将两种加密方法配合使用。其基本思想是:用公钥加密算法加密私钥加密算法的密钥,用私钥加密算法加密实际数据。
具体设计思路可以简单描述为:A和B相互传递加密的数据前,B首先生成一个公钥加密算法使用的公钥/私钥对,假定公钥为publicKey,私钥为privateKey,然后B将公钥publicKey通过网络传递给A;A接收到此公钥后,根据此公钥初始化公钥加密对象,并用此对象加密使用私钥加密算法的密钥key,并将加密后的密钥key通过网络传递给B;这样,A和B都有了一个共同使用的私钥加密的密钥,然后双方用此密钥加密数据,并将加密后的数据传递给对方,对方收到加密后的数据后,再用密钥key解密数据。
通过这种方式,在不安全的网络上传递加密后的数据时,虽然攻击者可以截获公钥,但是由于用公钥加密的数据只能用私钥解密,而私钥并没有通过网络传递,因此攻击者无法通过公钥publicKey破译加密后的密钥key,因此也无法破译加密的消息。
在实际应用中,一般使用TCP协议通过网络传输数据。对于比较重要的数据,必须进行加密解密处理。一般实现方案为:
1) 传输双方均各自生成一个公钥/私钥对。
2) 通过TCP协议交换公钥。
3) 双方各自生成一个对称加密用的私钥,并使用对方的公钥加密新创建的私钥。
4) 双方将加密后的对称加密用的私钥发送给对方,以便对方利用此私钥解密。
5) 双方使用对称加密进行会话。
公钥加密数据网络传输过程为:
在通过网络传输数据之前,发送方先读取一个数据块,进行加密,并将加密后的数据保存在内存流中,然后计算加密后的数据长度,最后将数据长度和内存流中的数据转换成字节序列,通过网络流发送给接收方;接收方接收数据时,首先从网络流中获取要读取的加密后的数据量的大小值,然后根据获取的要读取的字节数,从网络流中读取数据,并解密这些数据到内存流中,再把内存流中的数据转换成字节序列,从而形成原始数据。对于较大的不能一次传输的数据,循环执行这个过程,直到数据全部传输完毕。
2.3 公钥加密在.NET编程中的应用
.NET Framework提供以下实现不对称加密算法的类:
DSACryptoServiceProvider
RSACryptoServiceProvider
以RSACryptoServiceProvider类为例在C#编程过程中的应用代码为:
参考文献
[1]何明星, 范平志.新一代私钥加密标准AES进展与评述[J].计算机应用研究, 2001 (10) .
[2]秦志光.密码算法的现状和发展研究[J].计算机应用, 2004 (2) .
[3]微软公司.面向.NET的Web应用程序设计[M].北京:高等教育电子音像出版社, 2009.
[4]罗平, 孙永东, 刘唯义.两种快速高效公钥算法[J].大庆石油学院学报, 2002, (4) .
【基于身份的公钥加密】推荐阅读:
基于身份公钥密码体制06-25
基于身份加密体制06-13
基于身份的签名01-08
基于身份的密码体制12-21
基于属性的加密02-15
基于DES的加密算法08-30
基于USB的加密狗09-19
网络身份:网络身份的五大要素12-28
生物的道德身份11-02
女性身份的演变11-08