周婉祎,尹毅峰,王兆博
(郑州轻工业大学计算机与通信工程学院,郑州 450002)
随着信息科技和网络的飞速发展,数字化信息不断地涌入人们的生产和生活中。虽然数字化信息的便捷高效功能极大地促进了社会的发展,但是数据信息在传输或者保存的过程中,一旦被恶意篡改,就会被不法分子所利用,这不仅会影响到个人的安全和利益,而且还会影响企业乃至国家的安全和利益[1]。为此,代理重加密被提出,它为上述问题提供了一种新的解决方法,代理重加密是一种密文转换功能的加密密码体制,通过半可信的代理服务器可以将数据拥有者的密文转换成数据请求者的密文[2‑5]。在重加密的过程中,不能通过密文和转换密钥获得任何关于明文的信息[6‑7],但是在有些场景对时效性有要求的情况下[8],此技术还不够完善,这时就需要代理重加密所生成的密文具有时释性的特点。
Zheng 等[9]利用一种基于类型的代理重加密实现细粒度共享,提出了一种新的数据共享方案,可以实现一般云计算环境下的差异访问控制,并且保护隐私泄露。Liang 等[10]提出了一种支持定时释放的条件代理广播重加密方案,支持对重加密的条件委托,能够抵抗代理和接收者勾结。但是由于非对称加密算法效率没有对称加密算法高,不适合大型数据文件的加密。
针对以上的需求,提出了一种基于时释性的多维虚置换代理重加密方案,将多维虚置换机制、时释性和代理重加密相结合,不仅可以解决对时效性有要求的问题,而且又可以提高效率。用户通过多维虚置换生成安全的对称密钥,使用对称加密算法加密数据文件得到数据密文,然后使用代理重加密算法生成重加密密文。保证了方案的效率和安全性,提高了性能。
为了保护数据信息的安全,更好地解决时效性问题,为其设计出多用户信息共享模型,如图1所示。
图1 多用户信息共享模型
数据拥有者通过构造多维密钥空间,可以生成对称密钥,执行对称加密算法可以将数据明文加密成数据密文,并且上传到代理服务器中,由第三方可信的时间服务器生成时间参数,发送给数据请求者,可以使密文有时效性。
本文用到的符号和其对应的含义如表1所示。
表1 文中的符号和含义
针对传统的代理重加密方案存在的缺陷,本文引入了时间服务器生成时间参数,并且结合了多维虚置换机制,提高传统方案的机密性和效率,根据多用户数据共享模型可以实现的方案具体阐述如下。
(1)系统参数初始化。选取素数q,阶数为q的有限循环群G和GT,一个双线性映射e:G×GT→GT,g是G的生成元。定义哈希函数H0:{0,1}*→Z*q,H1:{0,1}*→G,H2:{0,1}→G,H3:GT→{0,1}L,从Z*q中随机选取一个元素r作为时间服务器的私钥skts=r,并且计算时间服务器的公钥pkts=gr。
(2)初始密钥生成。从Z*q中随机选取元素Xi,Xj分别作为数据拥有用户i和数据请求用户j的私钥,令ski=Xi,skj=Xj,则所对应的公钥分别是pki=gXi,pkj=gXj。
(3)定时释放密钥生成。时间服务器可以生成时间参数T∈{0,1}*,以此来表示发布的时间。通过时间服务器的私钥skts和时间参数T,可以得到定时释放密钥TG,如公式(1)。
(4)对称密钥生成。此阶段需要构造出多维密钥空间,使用基于流密码的轻量级密码算法,构造多维虚置换函数,生成对称密钥,具体的步骤描述如下所示。
①密钥空间构造。将数据拥有用户i的私钥和私有密钥阵列通过哈希映射生成密钥控制阵列ki[n],将其发送给其他的用户,那么每个用户就可以拥有除了自身的私钥之外的不完整虚迭代函数IVPF(i),如公式(2)。
数据拥有用户i把ki[n]代入到不完整虚迭代函数中,就可以得到一个拥有完整密钥参数的多维虚迭代函数MVPF,即n维密钥空间,如公式(3)。其中每一个小空间都映射着一个安全子系统。
②迭代和置换。当每个用户随机选择密钥控制阵列中的m个密钥元素,m个安全子系统分别记作γ1,γ2,…,γm,按照公式(4)进行迭代的操作,就可以获得安全的对称密钥K。
(5)一级密文生成。用户可以根据上一个阶段产生的对称密钥,用公开的对称加密算法实现对数据明文M的安全加密,可以得到所需要的数据密文C1,如公式(5)。选择随机数,ω∈GT,令φ=H0(M,α),经 过 公 式(6)计算可以得到密文C2,然后使用时间服务器的公钥pkts、时间参数T,由公式(7)得到密文C3。最后将所得到的这些密文经过公式(8)计算,得到一级密文CT,同时上传到代理服务器中。
(6)加密对称密钥。这个步骤是加密对称密钥生成密文,用于之后代理重加密生成重加密密文的过程,将对称密钥和用户的公钥通过公式(9)计算,就可以得到此对称密钥的密文CP,并且上传到代理服务器中。
(7)重加密密钥生成。将数据拥有用户i的私钥ski和数据请求用户j的公钥pkj,通过哈希映射生成转换密钥RK1,如公式(10)。然后把时间服务器生成的时间参数T和公钥pkts经过公式(11)的计算得到RK2,最后由公式(12)得到重加密密钥RKi→j,并且上传到代理服务器中。
(8)信息共享。输入对称密钥密文CP和重加密密钥RKi→j,以及时间服务器的时间参数T,通过公式(13)可以计算出重加密密文CTPRE。这个过程是由一个半信任的代理商进行的,不会泄露任何关于密文的消息,其安全性得到了保证。
数据请求者对重加密密文进行解密,可以得到明文M,首先将重加密密文CTPRE和数据请求者的私钥skj进行公式(14)解密后得到对称密钥K,再使用K解密数据密文C1,获得明文,如公式(15)。
3.1.1 重放攻击保护
在本方案中,只有在设定的时间有效期内数据请求方才可以解密获得明文,当数据请求者收到密文并将其解密后可以获得对应的反向密钥,因为该反向密钥存在一定的时效性,所以在这个时间到达之前,可以保存此反向密钥。然而当攻击者进行重放攻击时,解密信息获得相同的反向密钥后将丢弃该信息,不予传递此信息,并且不能获得服务器的认证,以此来确保时间陷门始终是限时的。因此本方案可以抵抗重放攻击。
3.1.2 中间人攻击保护
当攻击者介入用户之间,即使攻击者获得所有在公开网络信道传输的所有参数,但是其密钥信息即便是公钥也不会对外公开,因此中间人无法得到以密文形式传输的任何秘密信息。在生成对称密钥的过程中,并没有直接地传递其对称密钥,其中虚置换函数和多维密钥空间的构造都需要安全子系统,然而安全子系统并不能在公开信道中传输,所以攻击者就无法构建完整的多维密钥空间,也就不能进行后续的一系列操作。攻击者无法通过通信中产生的不完整迭代函数破译出用户的密钥阵列,同时由于多维虚置换函数具有自编译性,如果攻击者强行进行攻击破译的话,那么将会面临多维函数变异类,因此攻击者无法实施攻击。
3.1.3 选择密文安全
在任意的概率多项式时间内,解决DBDH问题的优势是可以忽略不计的,因此本文提出的方案是选择密文攻击安全。假设存在攻击者A和挑战者C。
A向C发出系统参数初始化、时间陷门生成、初始密钥的生成、对称密钥生成、一级密文生成、加密对称密钥、重加密密钥生成、代理重加密密文生成的相关询问,C向A返回查询的结果。C通过系统参数初始化和初始密钥生成算法,生成相应的公钥和私钥,以及时间服务器的私钥,运行重加密密钥算法获得重加密密钥,并发送给A。A自己选择两条等长的明文M0和M1,发送给C,发起挑战。当A询问一级密文生成算法时,对称密钥是保密的。C选取随机比E特nc dry∈p t{io0n,1(},,计算,K用*,M于d,挑T*战)返询回问给的A。密最文终C,*A=返回给C一个猜测值d1∈{0,1},如果d1=d,则说明挑战成功。A在挑战中获胜的概率优势定义为ε,且ε= |Pr[d1=d]-1 2 |可忽略不计,即A在概率多项式时间内猜对的概率可以忽略不计,那么A挑战失败,也可以推出本文的方案是选择密文安全。
将本文方案的计算开销和文献[9]、文献[10]进行对比,设定Tp,Tm,Te,Th,TE/D分别表示为双线性对、点乘运算、幂运算、哈希运算、一次对称加密/解密运算所需时间,根据表2中的比较结果可知,本文的方案在计算开销上小于文献[9]和文献[10],因此我们所提出的方案具有较高的效率。
表2 各方案的时间复杂度对比
针对当前传统的代理重加密方案难以满足加密大量数据文件的效率和应对的时效性要求,设计出一种基于时效性的多维虚置换代理重加密方案,提供了高效灵活并且安全的数据共享服务。利用对称加密算法将数据明文加密,保护数据信息,在保证了数据安全和机密性的前提下,降低计算开销,提高其效率。相较于传统的代理重加密方案,这种方案适用于较大文件的数据共享,可以在短时间内完成,具有很大的优势和使用价值。