目录第一章绪论11.1 研究背景与意义1第二章预备知识52.1 复杂性理论52.2 可证明安全理论62.2.1 困难问题假设62.2.2 形式化证明方法82.3 公钥密码体制92.3.1 PKE形式化定义92.3.2 PKE的安全模型102.5 密钥泄露102.5.1 问题描述102.5.2 解决方法112.6 本章小结12致14 / 第一章 绪 论本章主要阐述了公钥密码体制的研究背景和积极意义,并简单介绍了代理重加密体制的研究现状以与该密码体制在云存储数据共享领域的独特优势最后,本章介绍了本文的主要研究工作和论文结构1.1 研究背景与意义密码学是伴随着信息而产生的,但是随着密码学技术本身的不断发展和通信网络技术的不断发展,现代的密码学研究已经远远超越了信息的围,被广泛应用于各种安全和隐私保护应用之中它是一门古老的学科,又是一门新兴的交叉学科,在今后人类社会的发展历程中必将发挥越来越重要的作用密码学的发展可分为3个阶段:第一阶段:从古代一直到1949年,密码学都是停留在应用于军事政治等神秘领域的实践技术从1949年香农(Shannon)发表了《系统的信息理论》[1]后,密码学才由理论基础指导而上升为学科。
这一阶段,密码学研究的突破并不大,而且应用方面仍然只局限于特殊领域第二阶段:以1976年迪菲(Diffie)与赫尔曼(Hellman)发表的论文《密码学的新方向》[2]以与1977年美国发布的数据加密标准(DES)加密算法为标志,密码学进入了现代密码学第三阶段:伴随着相关理论的完善,以与由集成电路和因特网推动的信息化工业浪潮,密码学进入了一个全新爆发的时代:研究文献和成果层出不穷,研究的方向也不断拓展,并成为了一个数学、计算机科学、通信工程学等各学科密切相关的交叉学科,同时各种密码产品也走进了寻常百姓家,从原来局限的特殊领域进入了人民群众的生产、生活之中在信息社会,加密体制为保证信息的性提供了重要的技术手段根据密钥的特点,可将加密体制分为对称密钥体制和非对称密钥体制两种在对称加密体制中,通信双方为了建立一个安全的信道进行通信,需要选择相同的密钥,并将密钥秘密保存根据对明文的加密方式不同,对称密码算法又分为分组加密算法和流密码算法分组加密算法将明文分为固定长度的分组进行加密,而流密码算法则将明文按字符逐位加密,二者之间也不是有着不可逾越的鸿沟,很多时候,分组加密算法也可以用于构建流密码算法。
目前,世界上存在的分组密码算法可能有成千上万种,而其中最有名的就是美国的DES、AES以与欧洲的IDEA算法相对于对称体制中的密钥必须,非对称密钥体制有一个可公开的公钥为其最大特征,因此也叫公钥密码体制在非对称密码体制中,不再有加密密钥和解密密钥之分可以使用公钥加密,而用私钥解密,这多用于保护数据的性;也可以用私钥加密而公钥解密,这多用于保护信息的完整性和不可否认性1976年,公钥密码体制(Public Key Cryptography,PKC)的概念被Diffie和Hellman[2]首次提出PKC在整个密码学发展历史中具有里程碑式的意义随后出现了一些经典的公钥密码体制,比如RSA[3] Rabin 算法[4] ElGamal[5]密码体制和椭圆曲线密码体制[6][7][8]等公钥密码体制的安全性依赖于不同的计算问题,其中RSA密码体制基于大整数分解的困难性,而ElGamal密码体制则基于离散对数问题的困难性在密码系统中,安全的核心是密钥,一个安全系统无论设计得多么完美,如果其中的密钥安全没方法保证,则整个系统的安全也将是空中楼阁在实际应用中,非对称密钥管理主要通过公钥基础设施(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 Key Encryption,CL-PKE)方案[12][13][14]被提出尽管公钥密码体制已被广泛应用于社会各领域,但公钥密码学依然要不断发展以适应社会的进步如今,云计算作为一种新兴服务模式,能够方便地为远程用户提供计算和存储资源,从而节省本地开销一旦数据拥有者将数据上传给半可信的云服务提供商(Cloud Service Provider,CSP),将失去对数据的控制权因此,出于安全考虑,数据拥有者在上传数据之前需要对数据进行加密处理考虑如下场景[15][16][17]:数据拥有者Alice希望将其外包在云服务器中的敏感数据与其他用户Bob共享,除了Bob,包括CSP在的任何人都无法解密这些共享数据Alice直接将其私钥告知Bob是不可取的,最简单、安全的方法是Alice先将云中数据下载到本地并解密,然后将解密后的消息再用Bob的公钥加密并发送给Bob,此时,Bob可以利用其自身私钥获得共享数据显然地,此方法牺牲了数据拥有者的计算开销、通信带宽以与本地存储资源,这不符合用户通过云计算节省资源开销的初衷,因此,传统的公钥密码方案无法解决云存储数据安全共享问题。
为此,代理重加密(Proxy Re-Encryption,PRE)——一种具备安全转换功能的密码系统,能够有效地实现云存储数据安全共享在PRE密码系统中,一个半可信代理者扮演着密文转换的角色,它可以将由Alice公钥加密的密文转换为由Bob公钥对同一明文加密的密文,然后Bob可利用其自身私钥解密该转换后的密文因此,通过利用PRE的思想,当Alice收到Bob的共享请求后,Alice产生一个代理重加密密钥并将该密钥发送给CSP后者利用该代理重加密密钥能够将Alice存储在云端的外包数据转换为由Bob公钥加密的密文,而无法获知共享数据的容然后,Bob可用其自身私钥解密这些共享数据在共享过程中,数据拥有者无需将数据下载到本地,从而节省开销此后,代理重加密成为密码学与信息安全领域的一个研究热点,积累了大量研究成果,且在云计算[15][16][17]、数字管理[18][19]、加密电子转发[20]、分布式文件系统[21][22]、加密病毒过滤[21][22]等领域的应用前景广阔2003年,基于密钥分享机制,Ivan和Dodis[24]给出了构造单向代理重加密方案的一般方法,即用户私钥被分割成两份,一份分发给代理者,另一份分发给被委托者。
2005年,Ateniese等人[21]首次形式化地描述了代理重加密与其安全模型,并设计出第一个基于双线性对的单向代理重加密方案Deng等人[29]提出第一个不依靠双线性对、可证明CCA安全的双向代理重加密方案2012,Hanaoka 等人[44]在CT-RSA会议上给出了一个更强的代理重加密安全模型,并给出了一个通用方法用于构造CCA安全的单向代理重加密方案Sun等人[45]提出了第一个CCA安全的单向广播代理重加密(Broadcast PRE,BPRE),该方案在标准模型下满足自适应选择密文安全在AsiaCCS 2009会议上,Weng等人[33]第一次介绍了条件代理重加密(C-PRE)的概念,当且仅当密文满足委托者设置的条件时在CT-RSA 2009上,密钥隐私代理重加密(key-private PRE,K-PRE)的概念由Ateniese等人[82]提出,2010年,Yau[84]和Shao等人[85]分别提出了带关键字的代理重加密(PRE with keyword research,PRES)的概念,并构造出具体方案针对代理重加密密钥的安全性,Yang 等人[86]利用可信计算来解决代理重加密中转换钥泄露的问题。
为了对代理者的密文权限进行控制,Tang等人[87]提出基于类型代理重加密(Type-based PRE)的概念,该密码系统能够使代理者只转换部分委托者的密文Setup:KGC以安全参数作为Setup算法的输入,然后,KGC返回一个系统主密钥mk和一组公开参数params;在一个无证书的密码系统中,用户的私钥是由KGC(Key Generation Center)生成的部分私钥和由用户选择的秘密值组成的Game I (Type I敌手):该游戏为敌手和挑战者之间进行的安全游戏初始化阶段:挑战者以一个安全参数作为Setup算法的输入,然后返回一组系统公开参数params和一个主密钥mk且ID没有被询问过或如果,选取,计算挑战密文Encrypt(params,,,),然后,返回给一个挑战密文PRE方案并不直接用于加密数据拥有者的外包数据,而是利用对称加密算法保护用户数据的性,否则就会使得该协议非常低效因此,本章利用PRE来处理协议中使用的对称加密算法的对称密钥数据接收者需要先利用其自身私钥解密出对称密钥,接着再使用得到的对称密钥解密出共享数据一个CKI-PRE方案由多项式时间算法Setup、UserKeyGen、CertGen、SetInitialKey、UpdH、UpdS、SetReKey、Encrypt、ReEncrypt以与Decrypt组成。
密码学是以研究通信为容的学科,是信息安全的核心密码学中用提供信息安全服务的密码学原语称为密码体制密码体制提供的基本安全服务有性、完整性、认证和不可否认下性是指信息只为授权用户使用,不能泄露给未授权的用户完整性是指信息在传输或存储过程中,不能被偶然或蓄意的删除、修改、伪造、重放、插入等破坏和丢失的特性认证时确保通信方的确是他所声称的那位加密可以看作是一种变换,这种变换将可读的明文信息变换为不可读的密文信息数字签名也是一种基本的密码原语,它可以取得完整性、认证和不可否认性显示一个密码体制安全的现代方法是可证明安全性可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么就可以利用该敌手解决某个工人的数学困难问题例如,如果一个敌手能够在选择密文攻击下攻破RSA的语义安全性,那么就可以利用该敌手分解大整数;可证明安全的思想就是给定一个算法A,提出一个新算法C,C把A作为子程序输入给C的是希望解决的困难问题,输入给A的是某个密码算法然而,如果A是一个积极攻击敌手(选择密文攻击敌手或者适应性选择密文攻击敌手),即A可以对输入公钥进行解密预言机询问或签名预言机询问算法C要想使用A作为子程序,就得对A的询问提供回答。
算法C需要应对以下四个问题:为了回避这个问题,可以使用随机预言机模型随机预言是一个理想的Hash函数对于每一个新的询问,随机。