公钥密码体制的介绍
合集下载
第4章公钥密码体制

密钥
为公钥。 不再需要, 以n,e为公钥。私密钥为d。(p, q不再需要, 可以销毁。 可以销毁。)
RSA算法在计算上的可行性
加密和解密
无论是加密还是解密都需要计算某个整数的模n 整数次幂,即C=Me mod n、M=Cd mod n。但不 、 需要先求出整数的幂再对n取模,而可利用模运 算的性质: (a mod n) * (b mod n)= (a*b) mod n 对于Me mod n,可先求出M1 mod n,M2 mod n, M4 mod n……,再求Me mod n
RSA算法 RSA算法
RSA Algorithm
概况
MIT三位年轻数学家, 1979年发现了一种用数 论构造双钥的方法,称作MIT 体制 MIT体制 MIT 体制,后来被 广泛称之为RSA体制 RSA体制 RSA体制。 它既可用于加密、又可用于数字签字。 RSA算法的安全性基于数论中大整数分解的 困难性。 迄今为止理论上最为成熟完善的公钥密码体 制,该体制已得到广泛的应用。
公钥密码体制有4个组成部分
明文:算法的输入,它们是可读信息或数据,用M 表示; 密文:算法的输出。依赖于明文和密钥,对给定的 消息,不同的密钥产生密文不同。用E表示; 公钥和私钥:算法的输入。这对密钥中一个用于加 密,为Ke,此密钥公开;一个用于解密,为Kd,此 密钥保密。加密算法执行的变换依赖于密钥; 加密、解密算法
选p=7,q=17。 求n=p×q=119,φ(n)=(p-1)(q-1)=96。 取e=5,满足1<e<φ(n),且gcd(φ(n),e)=1。确 定满足d·e=1 mod 96且小于96的d,因为 77×5=385=4×96+1,所以d为77。 因此公开钥为{5,119},秘密钥为{77,119}。 设明文m=19,则由加密过程得密文为 C=195 mod 119≡2476099 mod 119=66 解密为6677mod 119=19
公钥密码体制公钥密码体制

首次公开提出了“公开密钥密码编码学”的概念。
这是一个与对称密码编码截然不同的方案。
提出公开密钥的理论时,其实用性并没有又得到证明:
❖ 当时还未发现满足公开密钥编码理论的算法; ❖ 直到 1978 年,RSA 算法的提出。
2.基本特征
❖ 加密和解密使用两个不同的密钥 公钥PK:公开,用于加密,私钥SK:保密,用作解密 密钥
3.优点
❖ 密钥管理
加密密钥是公开的; 解密密钥需要妥善保存; 在当今具有用户量大、消息发送方与接收方具有明显的信息不对称
特点的应用环境中表现出了令人乐观的前景。 新用户的增加只需要产生一对公共/私有密钥。
❖ 数字签名和认证
只有解密密钥能解密,只有正确的接收者才拥有解密密钥。
缺点:公共密钥系统的主要弱点是加密和解密速度慢。
加密与解密由不同的密钥完成; 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的; 两个密钥中任何一个都可以作为加密而另一个用作解密。
6.公钥密码算法
除RSA算法以外,建立在不同计算问题上的其他公钥密码算法 有:
基于因子分解问题的Rabin算法; 椭圆曲线公钥算法; 基于有限域中离散对数难题的ElGamal公钥密码算法 基于代数编码系统的McEliece公钥密码算法; 基于“子集和”难题的Merkle-Hellman Knapsack(背包)公钥密码算 法; 目前被认为安全的Knapsack型公钥密码算法Chor-Rivest。
实际应用中的加密方式
❖ 混合加密技术 对称密码体制:密钥分发困难 公钥体制:加解密效率低 将对称加密算法的数据处理速度和公钥算法对密钥的保 密功能相结合 利用对称加密算法加密传输数据 利用非对称加密算法交换会话密钥
实际应用中的加密方式
第09-12讲 公钥密码体制

陌生人间的保密通信问题 数字签名的问题
– 传统加密算法无法实现抗抵赖的需求
140000 120000 100000 80000 60000 40000 20000 0
密钥量
50
100
200 300 400 用户数
500
图6-1 用户数与密钥量的对应关系
公钥密码体制
公钥密码又称为双钥密码、非对称密码 公钥密码体制提出的标志性文献:
Q
X1 1
X2 0
X3 2760
Y1 0
Y2 1
Y3 167
16
1
0
1
1
-16
167
88
1
-1
-16
17
88
79
例:取p=47, q=61时, n=2867, (n)=(47-1)(61-1)=2760, 可取SK=167,PK=1223
Extended Euclid(f, d) (设 f >d) (X1,X2,X3)←(1,0,f); (Y1,Y2,Y3)←(0,1,d); :loop if Y3=0 then return gcd(f, d)=0; if Y3=1 then return gcd(f, d)=1; Y2=d-1 mod f; Q=X3/Y3 ; (T1,T2,T3)←(X1-QY1,X2QY2,X3-QY3); (X1,X2,X3)←(Y1,Y2,Y3); (Y1,Y2,Y3)←(T1,T2,T3); got o loop
为了提高加密速度,通常取e为特定的小整数,如 EDI国际标准中规定 e=216+1,ISO/IEC9796中甚 至允许取e=3。这时加密速度一般比解密速度快10 倍以上。
RSA密钥的生成
信息安全概论 ppt 公钥密码体制PPT

公钥密码体制
7
4.1 公钥密码体制的基本原理
如何设计一个公钥算法
公钥和私钥必须相关,而且从公钥到私钥不可推断
必须要找到一个难题,从一个方向走是容易的,从另一个方向 走是困难的
如何把这个难题跟加、解密结合起来
一个实用的公开密钥方案的发展依赖于找到一个陷门单向函数。
陷门单向函数
单向陷门函数是满足下列条件的函数f:
公钥密码体制 4
Bob:
Plain Text E
Cipher Text Network
Cipher Text D
Plain Text
Alice
Secret Key
Bob
公钥密码体制 5
公钥体制的主要特点:
加密和解密能力分开
多个用户加密的消息只能由一个用户解读,(用于公共网络中实现 保密通信)
这一体制的出现为解决计算机信息网中的安全提供了新的理论和 技术基础,被公认为现代公钥密码学诞生的标志。 1978 年, MIT 三位数学家 R.L.Rivest , A.Shamir 和 L.Adleman
发明了一种用数论构造双钥体制的方法,称作MIT体制,后来 被广泛称之为RSA体制。
公钥密码体制
3
4.1 公钥密码体制的基本原理
公钥密码学与其他密码学完全不同:
公钥算法基于数学函数而不是基于替换和置换 使用两个独立的密钥 公钥密码学的提出是为了解决两个问题:
密钥的分配 数字签名
基本思想和要求
用户拥有自己的密钥对(KU,KR),即(公开密钥,私有密钥)
公钥KU公开,私钥KR保密 AB:Y=EKUb(X) B:DKRb(Y)= DKRb(EKUb(X))=X
RSA公钥密码体制

96 mol 5 = 1 用1代替96
5*d – k = 1 d=1 当k的系数最后化为1时,令d=1 情形2:
RSA公钥密码系统 算法示例
密钥生成: 取p=11,q=13,则 n=pq=11x13=143 φ(n)=(p-1)(q-1)=(11-1)x(13-1)=120 因为e与φ(n)互素,则选取e=17 通过ed = 1 mod φ(n)计算得d=113 公钥为(n,e)=(143,17),私钥为d=113
通过例子来探讨如何求解d
例1 取p=3 q=11 f(n)=(p-1)(q-1)=2×10=20 即3×d = 1 mod 20
得出 n=p×q=3×11=33 取e=3,(3与20互质) 则 e×d = 1 mod f(n)
d怎样求解呢? 怎样求解呢? 怎样求解呢
可以用试算的办法来寻找。试算结果见下表:
79*d = 1 mod 3220
d
这里就要用到辗转相除法,解法如下:
79*d = 1 mod 3220
d=1019
k=25 d=19 k=6 d=1 k=0
79*d - 3220*k = 1
用3220对79取模到的余数60代替3220
79*d - 60*k = 1
用79对60取模到的余数19代替79
17*d = 1 mol 120
d = 113 17*d – 120*k = 1 k =16 d=1 当k的系数最后化为1时,令d=1
120 mol 17 = 1 用1代替120
17*d – k = 1
加密: 用公钥e=17对明文m=24进行加密,则密文为:
平方—乘算法
如何求解
解密: 收到密文c=7,利用私钥d=113进行解密:
5*d – k = 1 d=1 当k的系数最后化为1时,令d=1 情形2:
RSA公钥密码系统 算法示例
密钥生成: 取p=11,q=13,则 n=pq=11x13=143 φ(n)=(p-1)(q-1)=(11-1)x(13-1)=120 因为e与φ(n)互素,则选取e=17 通过ed = 1 mod φ(n)计算得d=113 公钥为(n,e)=(143,17),私钥为d=113
通过例子来探讨如何求解d
例1 取p=3 q=11 f(n)=(p-1)(q-1)=2×10=20 即3×d = 1 mod 20
得出 n=p×q=3×11=33 取e=3,(3与20互质) 则 e×d = 1 mod f(n)
d怎样求解呢? 怎样求解呢? 怎样求解呢
可以用试算的办法来寻找。试算结果见下表:
79*d = 1 mod 3220
d
这里就要用到辗转相除法,解法如下:
79*d = 1 mod 3220
d=1019
k=25 d=19 k=6 d=1 k=0
79*d - 3220*k = 1
用3220对79取模到的余数60代替3220
79*d - 60*k = 1
用79对60取模到的余数19代替79
17*d = 1 mol 120
d = 113 17*d – 120*k = 1 k =16 d=1 当k的系数最后化为1时,令d=1
120 mol 17 = 1 用1代替120
17*d – k = 1
加密: 用公钥e=17对明文m=24进行加密,则密文为:
平方—乘算法
如何求解
解密: 收到密文c=7,利用私钥d=113进行解密:
第7讲 公钥密码体制

二、RSA密码体制
参数选择:
独立地选取两大素数p1和p2(各512bit的数), 计算 n=p1×p2 其欧拉函数值(n)=(p1-1)(p2-1) 随机选一整数e, 1e<(n),((n), e)=1(因而在模(n)下e有逆元) d=e-1 mod (n) 公钥为n,e; 私钥为d (p1, p2不再需要,可以销毁)
* MIPS-年指以每秒执行1,000,000条指令的计算机运行一年
二、RSA密码体制
安全性:分解模数n
技术进展使分解算法和计算能力在不断提高,计算所需的硬件费用在不断下降 RSA-129: 110位十进制数字早已能分解。 Rivest等最初悬赏$100的RSA-129,已经 由包括五大洲43个国家600多人参加,用1600台机子同时产生820条指令数据, 通过Internet网,耗时8个月,于1994年4月2日
但数学上至今还未证明分解模就是攻击RSA的最佳方法,
也未证明分解大整数就是NP问题, 可能有尚未发现的多项式时间分解算法。 人们完全可以设想有另外的途径破译RSA, 如求出解密指数d或找到(p1-1)(p2-1)等。 但这些途径都不比分解n来得容易。 甚至Alexi等[1988]曾揭示,从RSA加密的密文恢复某些比特的困难性也和 恢复整组明文一样困难。 这一视在困难性问题是个NP问题,但还没人证明它为NPC问题。
因为(e1, e2,)=1,所以由Euclidean算法有r e1+s e2=1
计算 (y1-1)-r y2s = x mod n (假设r是负数)
二、RSA密码体制
安全性:低加密指数攻击
小的e可加快加密和验证签字速度,且所需的存储密钥空间小
但若加密钥e选择得太小,则容易受到攻击 网中三用户的加密钥e均选3,分别模n1, n2, n3 (互素,否则可求出公因子,而降低安全性)
RSA公钥密码体制简介

当要对明文进行加密时,可先进行预处理, 计算出m2、m3等,这种方法我们称之为窗口法。
32
例:
计算: 152013(mod 2539) 13 23 1 22 0 2 1 1101 B
(e3 , e2 , e1, e0 ) (1,1,0,1)
152013 mod2539
(((1520e3 )2 1520e2 )2 1520e1 )2 1520e0 (mod 2539) ((15202 1520)2 15200 )2 1520 (mod 2539)
14
RSA算法论证
假设截获密文C,从中求出明文M。他知道 M≡Cd mod n ,
因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道,
ed≡1 mod φ(n), e是公开的,要从中求出d,必须先求出φ(n),而 φ(n)是保密的。但他又知道,
φ(n)=(p-1)(q-1),
9
RSA算法论证
于是,M tφ(n) =bq+1,其中b为某整数。 两边同乘M, M tφ(n)+1 =bqM+M 。 因为M=ap,故 M tφ(n)+1 =bqap+M =abn+M 。 取模n得, M φ(n)+1 =M mod n 。
10
RSA算法论证
第二种情况:M=0 当M=0时,直接验证,可知命题成立。
加密过程:c=me mod n 解密过程:m=cd mod n
3
2、工作原理
定义:任给一个正整数m,如果用m去除任意两个整 数a、b所得的余数相同,称a、b对模m同余。记 为: a bmodm,若余数不同,则a、b对模m不同余。 记为: a b modm。
定理: a bmodm ,当且仅当m|(a-b)。
32
例:
计算: 152013(mod 2539) 13 23 1 22 0 2 1 1101 B
(e3 , e2 , e1, e0 ) (1,1,0,1)
152013 mod2539
(((1520e3 )2 1520e2 )2 1520e1 )2 1520e0 (mod 2539) ((15202 1520)2 15200 )2 1520 (mod 2539)
14
RSA算法论证
假设截获密文C,从中求出明文M。他知道 M≡Cd mod n ,
因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道,
ed≡1 mod φ(n), e是公开的,要从中求出d,必须先求出φ(n),而 φ(n)是保密的。但他又知道,
φ(n)=(p-1)(q-1),
9
RSA算法论证
于是,M tφ(n) =bq+1,其中b为某整数。 两边同乘M, M tφ(n)+1 =bqM+M 。 因为M=ap,故 M tφ(n)+1 =bqap+M =abn+M 。 取模n得, M φ(n)+1 =M mod n 。
10
RSA算法论证
第二种情况:M=0 当M=0时,直接验证,可知命题成立。
加密过程:c=me mod n 解密过程:m=cd mod n
3
2、工作原理
定义:任给一个正整数m,如果用m去除任意两个整 数a、b所得的余数相同,称a、b对模m同余。记 为: a bmodm,若余数不同,则a、b对模m不同余。 记为: a b modm。
定理: a bmodm ,当且仅当m|(a-b)。
公钥密码体制

基于公开密钥的加密过程
图4.1 公钥密码体制的通信保密过程
基于公开密钥的鉴别过程
图4.2 公钥密码体制的数字签名和验证签名过程
公钥密钥的应用范围
加密/解密 数字签名(身份鉴别) 密钥交换
5.1.4 公钥密码系统基本思想和要求
1、涉及到各方:发送方、接收方、攻击者 2、涉及到数据:公钥、私钥、明文、密文 3、公钥算法的条件: – 产生一对密钥是计算可行的; – 已知公钥和明文,产生密文是计算可行的; – 接收方利用私钥来解密密文是计算可行的; – 对于攻击者,利用公钥来推断私钥是计算不可行的 – 已知公钥和密文,恢复明文是计算不可行的; – (可选)加密和解密的顺序可交换。
5.1.2 公钥密码体制的起源
公钥密码又称为双钥密码和非对称密码,是1976年 由Diffie和Hellman在其“密码学新方向”一文中提 出的,见划时代的文献:W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976,PP.644-654 RSA公钥算法是由Rivest,Shamir和Adleman在 1978年提出来的, 见Communitions of the ACM. Vol.21.No.2. Feb.1978, PP.120-126
Euler定理: 若a与n为互素的正整数,则: aφ (n)≡1modn,推论: 若n=pq, p≠q都是素数, k是任意整数,mkφ (n)+1≡m k(p-1)(q-1)+1 ≡m mod n, 对任意0≤m≤n 证明φ (n)= (p-1)(q-1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012,Hanaoka等人[44]在CT-RSA会议上给出了一个更强的代理重加密安全模型,并给出了一个通用方法用于构造CCA安全的单向代理重加密方案。Sun等人[45]提出了第一个CCA安全的单向广播代理重加密(Broadcast PRE,BPRE),该方案在标准模型下满足自适应选择密文安全。
在AsiaCCS 2009会议上,Weng等人[33]第一次介绍了条件代理重加密(C-PRE)的概念,当且仅当密文满足委托者设置的条件时。
相对于对称体制中的密钥必须保密,非对称密钥体制有一个可公开的公钥为其最大特征,因此也叫公钥密码体制。在非对称密码体制中,不再有加密密钥和解密密钥之分。可以使用公钥加密,而用私钥解密,这多用于保护数据的机密性;也可以用私钥加密而公钥解密,这多用于保护信息的完整性和不可否认性。1976年,公钥密码体制(Public Key Cryptography,PKC)的概念被Diffie和Hellman[2]首次提出。PKC在整个密码学发展历史中具有里程碑式的意义。随后出现了一些经典的公钥密码体制,比如RSA[3]Rabin算法[4]ElGamal[5]密码体制和椭圆曲线密码体制[6][7][8]等。公钥密码体制的安全性依赖于不同的计算问题,其中RSA密码体制基于大整数分解的困难性,而ElGamal密码体制则基于离散对数问题的困难性。
第三阶段:伴随着相关理论的完善,以及由集成电路和因特网推动的信息化工业浪潮,密码学进入了一个全新爆发的时代:研究文献和成果层出不穷,研究的方向也不断拓展,并成为了一个数学、计算机科学、通信工程学等各学科密切相关的交叉学科,同时各种密码产品也走进了寻常百姓家,从原来局限的特殊领域进入了人民群众的生产、生活之中。
数据接收者需要先利用其自身私钥解密出对称密钥,接着再使用得到的对称密钥解密出共享数据。
一个CKI-PRE方案由多项式时间算法Setup、UserKeyGen、CertGen、SetInitialKey、UpdH、UpdS、SetReKey、Encrypt、ReEncrypt以及Decrypt组成。
密码学是以研究保密通信为内容的学科,是信息安全的核心。密码学中用提供信息安全服务的密码学原语称为密码体制。密码体制提供的基本安全服务有机密性、完整性、认证和不可否认下。机密性是指信息只为授权用户使用,不能泄露给未授权的用户。完整性是指信息在传输或存储过程中,不能被偶然或蓄意的删除、修改、伪造、重放、插入等破坏和丢失的特性。认证时确保通信方的确是他所声称的那位。加密可以看作是一种变换,这种变换将可读的明文信息变换为不可读的密文信息。数字签名也是一种基本的密码原语,它可以取得完整性、认证和不可否认性。
随机预言模型为证明密码体制的安全性提供了一个很好的方法,但是随机预言模型并不反映真实世界的计算。在随机预言模型下安全的密码体制只能说是可能在真实的世界是安全的,不能确保一定在真实的世界是安全的。文献给出了在随机预言模型下安全的密码体制在真实的世界中不安全的例子。许多密码学研究者开始设计在标准模型(不依赖于随机预言模型)下安全的密码体制。移除随机预言模型是需要代价的,通常需要更强的困难问题假设,而且在标准模型下的密码体制通常效率较低。
2003年,基于密钥分享机制,Ivan和Dodis[24]给出了构造单向代理重加密方案的一般方法,即用户私钥被分割成两份,一份分发给代理者,另一份分发给被委托者。
2005年,Ateniese等人[21]首次形式化地描述了代理重加密及其安全模型,并设计出第一个基于双线性对的单向代理重加密方案。
Deng等人[29]提出第一个不依靠双线性对、可证明CCA安全的双向代理重加密方案。
第一章绪论
本章主要阐述了公钥密码体制的研究背景和积极意义,并简单介绍了代理重加密体制的研究现状以及该密码体制在云存储数据共享领域的独特优势。最后,本章介绍了本文的主要研究工作和论文结构。
1.1研究背景与意义
密码学是伴随着信息保密而产生的,但是随着密码学技术本身的不断发展和通信网络技术的不断发展,现代的密码学研究已经远远超越了信息保密的范围,被广泛应用于各种安全和隐私保护应用之中。它是一门古老的学科,又是一门新兴的交叉学科,在今后人类社会的发展历程中必将发挥越来越重要的作用。密码学的发展可分为3个阶段:
且ID没有被 询问过 或 。如果 , 选取 ,计算挑战密文 Encrypt(params, , , ),然后, 返回给 一个挑战密文 。
PRE方案并不直接用于得该协议非常低效。因此,本章利用PRE来处理协议中使用的对称加密算法的对称密钥。
在密码系统中,安全的核心是密钥,一个安全系统无论设计得多么完美,如果其中的密钥安全没办法保证,则整个系统的安全也将是空中楼阁。在实际应用中,非对称密钥管理主要通过公钥基础设施(Public Key Infrastructure,PKI)来对用户的公私钥对进行管理,而且非对称与对称两种体制的密码管理往往是结合在一起使用的。但是,基于PKI的公钥密码系统存在计算开销昂贵的公钥证书管理问题。为避免此问题,Shamir在1984年率先提出了基于身份的公钥密码体制[9](Identity-based Cryptography,IBC)的概念,2001年,第一个安全实用的基于身份公钥加密(Identity-based Encryption,IBE)方案才由Boneh和Franklin[10]基于椭圆曲线上的双线性对构造而来。与基于PKI的传统公钥密码体制相比,IBC不存在繁琐的公钥证书管理问题,用户公钥由惟一标识用户身份信息的ID推导而来,其私钥则是由可信第三方密钥生成中心(Key Generation Center,KGC)生成。诚然,IBC避免了传统PKI中证书管理问题,但由于KGC的存在,使得该密码体制无法摆脱密钥托管问题。随后,Al-Riyami和Paterson[11]于2003年首次提出了基于无证书的公钥密码体制(Certificateless Public Key Cryptography,CL-PKC)的概念,该密码体制不仅可以消除PKI中存在的证书管理问题,也可以克服IBC中存在的密钥托管问题,即CL-PKC继承了IBC的优点而克服了其缺点。此后,多个无证书公钥加密(Certificateless Public KeyEncryption,CL-PKE)方案[12][13][14]被提出。
针对代理重加密密钥的安全性,Yang等人[86]利用可信计算来解决代理重加密中转换钥泄露的问题。为了对代理者的密文权限进行控制,Tang等人[87]提出基于类型代理重加密(Type-based PRE)的概念,该密码系统能够使代理者只转换部分委托者的密文。
Setup:KGC以安全参数 作为Setup算法的输入,然后,KGC返回一个系统主密钥mk和一组公开参数params;
在CT-RSA 2009上,密钥隐私代理重加密(key-private PRE,K-PRE)的概念由Ateniese等人[82]提出,
2010年,Yau[84]和Shao等人[85]分别提出了带关键字的代理重加密(PRE withkeyword research,PRES)的概念,并构造出具体方案。
显示一个密码体制安全的现代方法是可证明安全性。可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么就可以利用该敌手解决某个工人的数学困难问题。例如,如果一个敌手能够在选择密文攻击下攻破RSA的语义安全性,那么就可以利用该敌手分解大整数;
可证明安全的思想就是给定一个算法A,提出一个新算法C,C把A作为子程序。输入给C的是希望解决的困难问题,输入给A的是某个密码算法。然而,如果A是一个积极攻击敌手(选择密文攻击敌手或者适应性选择密文攻击敌手),即A可以对输入公钥进行解密预言机询问或签名预言机询问。算法C要想使用A作为子程序,就得对A的询问提供回答。算法C需要应对以下四个问题:
尽管公钥密码体制已被广泛应用于社会各领域,但公钥密码学依然要不断发展以适应社会的进步。如今,云计算作为一种新兴服务模式,能够方便地为远程用户提供计算和存储资源,从而节省本地开销。一旦数据拥有者将数据上传给半可信的云服务提供商(CloudServiceProvider,CSP),将失去对数据的控制权。因此,出于安全考虑,数据拥有者在上传数据之前需要对数据进行加密处理。考虑如下场景[15][16][17]:数据拥有者Alice希望将其外包在云服务器中的敏感数据与其他用户Bob共享,除了Bob,包括CSP在内的任何人都无法解密这些共享数据。Alice直接将其私钥告知Bob是不可取的,最简单、安全的方法是Alice先将云中数据下载到本地并解密,然后将解密后的消息再用Bob的公钥加密并发送给Bob,此时,Bob可以利用其自身私钥获得共享数据。显然地,此方法牺牲了数据拥有者的计算开销、通信带宽以及本地存储资源,这不符合用户通过云计算节省资源开销的初衷,因此,传统的公钥密码方案无法解决云存储数据安全共享问题。
第一阶段:从古代一直到1949年,密码学都是停留在应用于军事政治等神秘领域的实践技术。从1949年香农(Shannon)发表了《保密系统的信息理论》[1]后,密码学才由理论基础指导而上升为学科。这一阶段,密码学研究的突破并不大,而且应用方面仍然只局限于特殊领域。
第二阶段:以1976年迪菲(Diffie)与赫尔曼(Hellman)发表的论文《密码学的新方向》[2]以及1977年美国发布的数据加密标准(DES)加密算法为标志,密码学进入了现代密码学。
为此,代理重加密(ProxyRe-Encryption,PRE)——一种具备安全转换功能的密码系统,能够有效地实现云存储数据安全共享。在PRE密码系统中,一个半可信代理者扮演着密文转换的角色,它可以将由Alice公钥加密的密文转换为由Bob公钥对同一明文加密的密文,然后Bob可利用其自身私钥解密该转换后的密文。因此,通过利用PRE的思想,当Alice收到Bob的共享请求后,Alice产生一个代理重加密密钥并将该密钥发送给CSP。后者利用该代理重加密密钥能够将Alice存储在云端的外包数据转换为由Bob公钥加密的密文,而无法获知共享数据的内容。然后,Bob可用其自身私钥解密这些共享数据。在共享过程中,数据拥有者无需将数据下载到本地,从而节省开销。此后,代理重加密成为密码学与信息安全领域的一个研究热点,积累了大量研究成果,且在云计算[15][16][17]、数字版权管理[18][19]、加密电子邮件转发[20]、分布式文件系统[21][22]、加密病毒过滤[21][22]等领域的应用前景广阔。
在AsiaCCS 2009会议上,Weng等人[33]第一次介绍了条件代理重加密(C-PRE)的概念,当且仅当密文满足委托者设置的条件时。
相对于对称体制中的密钥必须保密,非对称密钥体制有一个可公开的公钥为其最大特征,因此也叫公钥密码体制。在非对称密码体制中,不再有加密密钥和解密密钥之分。可以使用公钥加密,而用私钥解密,这多用于保护数据的机密性;也可以用私钥加密而公钥解密,这多用于保护信息的完整性和不可否认性。1976年,公钥密码体制(Public Key Cryptography,PKC)的概念被Diffie和Hellman[2]首次提出。PKC在整个密码学发展历史中具有里程碑式的意义。随后出现了一些经典的公钥密码体制,比如RSA[3]Rabin算法[4]ElGamal[5]密码体制和椭圆曲线密码体制[6][7][8]等。公钥密码体制的安全性依赖于不同的计算问题,其中RSA密码体制基于大整数分解的困难性,而ElGamal密码体制则基于离散对数问题的困难性。
第三阶段:伴随着相关理论的完善,以及由集成电路和因特网推动的信息化工业浪潮,密码学进入了一个全新爆发的时代:研究文献和成果层出不穷,研究的方向也不断拓展,并成为了一个数学、计算机科学、通信工程学等各学科密切相关的交叉学科,同时各种密码产品也走进了寻常百姓家,从原来局限的特殊领域进入了人民群众的生产、生活之中。
数据接收者需要先利用其自身私钥解密出对称密钥,接着再使用得到的对称密钥解密出共享数据。
一个CKI-PRE方案由多项式时间算法Setup、UserKeyGen、CertGen、SetInitialKey、UpdH、UpdS、SetReKey、Encrypt、ReEncrypt以及Decrypt组成。
密码学是以研究保密通信为内容的学科,是信息安全的核心。密码学中用提供信息安全服务的密码学原语称为密码体制。密码体制提供的基本安全服务有机密性、完整性、认证和不可否认下。机密性是指信息只为授权用户使用,不能泄露给未授权的用户。完整性是指信息在传输或存储过程中,不能被偶然或蓄意的删除、修改、伪造、重放、插入等破坏和丢失的特性。认证时确保通信方的确是他所声称的那位。加密可以看作是一种变换,这种变换将可读的明文信息变换为不可读的密文信息。数字签名也是一种基本的密码原语,它可以取得完整性、认证和不可否认性。
随机预言模型为证明密码体制的安全性提供了一个很好的方法,但是随机预言模型并不反映真实世界的计算。在随机预言模型下安全的密码体制只能说是可能在真实的世界是安全的,不能确保一定在真实的世界是安全的。文献给出了在随机预言模型下安全的密码体制在真实的世界中不安全的例子。许多密码学研究者开始设计在标准模型(不依赖于随机预言模型)下安全的密码体制。移除随机预言模型是需要代价的,通常需要更强的困难问题假设,而且在标准模型下的密码体制通常效率较低。
2003年,基于密钥分享机制,Ivan和Dodis[24]给出了构造单向代理重加密方案的一般方法,即用户私钥被分割成两份,一份分发给代理者,另一份分发给被委托者。
2005年,Ateniese等人[21]首次形式化地描述了代理重加密及其安全模型,并设计出第一个基于双线性对的单向代理重加密方案。
Deng等人[29]提出第一个不依靠双线性对、可证明CCA安全的双向代理重加密方案。
第一章绪论
本章主要阐述了公钥密码体制的研究背景和积极意义,并简单介绍了代理重加密体制的研究现状以及该密码体制在云存储数据共享领域的独特优势。最后,本章介绍了本文的主要研究工作和论文结构。
1.1研究背景与意义
密码学是伴随着信息保密而产生的,但是随着密码学技术本身的不断发展和通信网络技术的不断发展,现代的密码学研究已经远远超越了信息保密的范围,被广泛应用于各种安全和隐私保护应用之中。它是一门古老的学科,又是一门新兴的交叉学科,在今后人类社会的发展历程中必将发挥越来越重要的作用。密码学的发展可分为3个阶段:
且ID没有被 询问过 或 。如果 , 选取 ,计算挑战密文 Encrypt(params, , , ),然后, 返回给 一个挑战密文 。
PRE方案并不直接用于得该协议非常低效。因此,本章利用PRE来处理协议中使用的对称加密算法的对称密钥。
在密码系统中,安全的核心是密钥,一个安全系统无论设计得多么完美,如果其中的密钥安全没办法保证,则整个系统的安全也将是空中楼阁。在实际应用中,非对称密钥管理主要通过公钥基础设施(Public Key Infrastructure,PKI)来对用户的公私钥对进行管理,而且非对称与对称两种体制的密码管理往往是结合在一起使用的。但是,基于PKI的公钥密码系统存在计算开销昂贵的公钥证书管理问题。为避免此问题,Shamir在1984年率先提出了基于身份的公钥密码体制[9](Identity-based Cryptography,IBC)的概念,2001年,第一个安全实用的基于身份公钥加密(Identity-based Encryption,IBE)方案才由Boneh和Franklin[10]基于椭圆曲线上的双线性对构造而来。与基于PKI的传统公钥密码体制相比,IBC不存在繁琐的公钥证书管理问题,用户公钥由惟一标识用户身份信息的ID推导而来,其私钥则是由可信第三方密钥生成中心(Key Generation Center,KGC)生成。诚然,IBC避免了传统PKI中证书管理问题,但由于KGC的存在,使得该密码体制无法摆脱密钥托管问题。随后,Al-Riyami和Paterson[11]于2003年首次提出了基于无证书的公钥密码体制(Certificateless Public Key Cryptography,CL-PKC)的概念,该密码体制不仅可以消除PKI中存在的证书管理问题,也可以克服IBC中存在的密钥托管问题,即CL-PKC继承了IBC的优点而克服了其缺点。此后,多个无证书公钥加密(Certificateless Public KeyEncryption,CL-PKE)方案[12][13][14]被提出。
针对代理重加密密钥的安全性,Yang等人[86]利用可信计算来解决代理重加密中转换钥泄露的问题。为了对代理者的密文权限进行控制,Tang等人[87]提出基于类型代理重加密(Type-based PRE)的概念,该密码系统能够使代理者只转换部分委托者的密文。
Setup:KGC以安全参数 作为Setup算法的输入,然后,KGC返回一个系统主密钥mk和一组公开参数params;
在CT-RSA 2009上,密钥隐私代理重加密(key-private PRE,K-PRE)的概念由Ateniese等人[82]提出,
2010年,Yau[84]和Shao等人[85]分别提出了带关键字的代理重加密(PRE withkeyword research,PRES)的概念,并构造出具体方案。
显示一个密码体制安全的现代方法是可证明安全性。可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么就可以利用该敌手解决某个工人的数学困难问题。例如,如果一个敌手能够在选择密文攻击下攻破RSA的语义安全性,那么就可以利用该敌手分解大整数;
可证明安全的思想就是给定一个算法A,提出一个新算法C,C把A作为子程序。输入给C的是希望解决的困难问题,输入给A的是某个密码算法。然而,如果A是一个积极攻击敌手(选择密文攻击敌手或者适应性选择密文攻击敌手),即A可以对输入公钥进行解密预言机询问或签名预言机询问。算法C要想使用A作为子程序,就得对A的询问提供回答。算法C需要应对以下四个问题:
尽管公钥密码体制已被广泛应用于社会各领域,但公钥密码学依然要不断发展以适应社会的进步。如今,云计算作为一种新兴服务模式,能够方便地为远程用户提供计算和存储资源,从而节省本地开销。一旦数据拥有者将数据上传给半可信的云服务提供商(CloudServiceProvider,CSP),将失去对数据的控制权。因此,出于安全考虑,数据拥有者在上传数据之前需要对数据进行加密处理。考虑如下场景[15][16][17]:数据拥有者Alice希望将其外包在云服务器中的敏感数据与其他用户Bob共享,除了Bob,包括CSP在内的任何人都无法解密这些共享数据。Alice直接将其私钥告知Bob是不可取的,最简单、安全的方法是Alice先将云中数据下载到本地并解密,然后将解密后的消息再用Bob的公钥加密并发送给Bob,此时,Bob可以利用其自身私钥获得共享数据。显然地,此方法牺牲了数据拥有者的计算开销、通信带宽以及本地存储资源,这不符合用户通过云计算节省资源开销的初衷,因此,传统的公钥密码方案无法解决云存储数据安全共享问题。
第一阶段:从古代一直到1949年,密码学都是停留在应用于军事政治等神秘领域的实践技术。从1949年香农(Shannon)发表了《保密系统的信息理论》[1]后,密码学才由理论基础指导而上升为学科。这一阶段,密码学研究的突破并不大,而且应用方面仍然只局限于特殊领域。
第二阶段:以1976年迪菲(Diffie)与赫尔曼(Hellman)发表的论文《密码学的新方向》[2]以及1977年美国发布的数据加密标准(DES)加密算法为标志,密码学进入了现代密码学。
为此,代理重加密(ProxyRe-Encryption,PRE)——一种具备安全转换功能的密码系统,能够有效地实现云存储数据安全共享。在PRE密码系统中,一个半可信代理者扮演着密文转换的角色,它可以将由Alice公钥加密的密文转换为由Bob公钥对同一明文加密的密文,然后Bob可利用其自身私钥解密该转换后的密文。因此,通过利用PRE的思想,当Alice收到Bob的共享请求后,Alice产生一个代理重加密密钥并将该密钥发送给CSP。后者利用该代理重加密密钥能够将Alice存储在云端的外包数据转换为由Bob公钥加密的密文,而无法获知共享数据的内容。然后,Bob可用其自身私钥解密这些共享数据。在共享过程中,数据拥有者无需将数据下载到本地,从而节省开销。此后,代理重加密成为密码学与信息安全领域的一个研究热点,积累了大量研究成果,且在云计算[15][16][17]、数字版权管理[18][19]、加密电子邮件转发[20]、分布式文件系统[21][22]、加密病毒过滤[21][22]等领域的应用前景广阔。