加密域水印技术适用于云环境下的隐私保护(加密)和数据安全认证(加水印).通过结合保序加密、离散余弦变换、密码哈希和数字水印技术,提出了加密域数据库认证水印算法.首先对数据进行保序加密,以达到对敏感数据内容的隐私保护;对加密后的数据进行分组和离散余弦变换处理,然后将交流系数的哈希(Hashing)值作为认证信息嵌入到直流系数中来认证数据的完整性;可通过比对交流系数的哈希值和从直流系数中提取的水印信息,来判断加密数据是否受到篡改.水印嵌入设计很好地结合了保序加密的特性,使得对加密数据的水印嵌入不会影响到明文数据的正确恢复,利用密钥对加水印的加密数据库直接解密可得到原数据库.实验结果表明:所提出的算法不仅能够用于保护数据库中的内容隐私,而且能检测出不同程度的篡改和有效认证数据库数据的完整性.
Digital watermarking in encrypted domain is a potential technology for privacy protection (with encryption) and integrity authentication (with watermarking) in cloud computing environments. Based on order-preserving encryption scheme (OPES), discrete cosine transformation (DCT), cryptography hash and watermarking technologies, this paper proposes a new database authentication watermarking algorithm in encrypted domain. Firstly, data in a database are encrypted with OPES for privacy protection. Then, the encrypted data are divided into groups for DCT operations. The watermark bits generated by hashing AC coefficients are embedded into DC coefficients for authenticating the encrypted data. The receiver can determine whether the data have been tampered by matching the hash value of AC coefficients and the extracted watermark bits from DC coefficients. The watermark embedding process in encrypted domain is lossless to plaintext data by exploring order-preserving property of OPES. In the receiver, an illegal user can recover the original database by directly decrypting the watermarked ciphertext data. Experimental results have shown that the algorithm can efficiently detect different tampering operations while protecting data content privacy with the encryption.
加密域信息隐藏技术很好地结合了加密和信息隐藏的优点, 可以在不暴露数据隐私的情况下对数据进行信息隐藏处理, 适用于网络空间安全下的云计算处理, 是信息安全领域的一个研究热点[
随着计算机技术的快速发展以及云计算时代的到来, 人们越来越多地把敏感数据(如涉及个人隐私、具有重大商业价值等)以数据库形式上传到云端进行存储和发布, 此时需要考虑数据隐私及数据安全等问题[
在这种新兴的数据库服务模式中, 将数据库直接交给非可信的数据库服务提供者, 有数据隐私暴露和数据被非法篡改的安全问题, 因此有必要对数据库进行加密并利用数据库水印等技术来保护数据安全.传统上, 数据库安全主要采用用户身份验证和用户权限管理[
数据加密后如何管理和操作, 是数据库加密研究的一个重要方面.目前, 数据库加密的主要技术有随机数求和、多项式函数、存储桶、秘密同态、子密钥和加密智能卡等[
数据库与一般多媒体数据有所不同, 它具有低冗余、低敏感、无序、更新频繁等特点, 嵌入时需要进行特殊的设计, 需要考虑两个问题:①数据冗余小, 数据库不同字段的属性要求不同, 难以找到大量可嵌水印空间; ②进行完整性认证时, 要求水印算法有很强的敏感性.目前, 针对明文数据库有几个水印算法.Agrawal等人[
考虑到云环境下数据隐私保护和数据安全的需要, 本文提出了一种保序加密域数据库认证水印算法.该算法首先对数据库某一属性列数据进行保序加密, 加密数据分组后进行DCT变换, 然后, 每组随机选取一个交流系数并用哈希算法生成认证水印信息; 利用QIM(quantization index modulation)算法将水印嵌入到直流系数中, 然后进行IDCT变换, 得到含水印信息的加密数据库; 数据库的完整性认证可通过比对交流系数的哈希值和直流系数中的水印信息来完成.本文所提出的算法很好地结合了保序加密的特点:(1)利用了保序概率加密引入的冗余, 使得加密数据库里的每个数值都可用于水印嵌入, 没有明文数据库难以寻找嵌入位置的问题; (2)水印嵌入步长根据密文可修改范围进行设计, 确保了加密数据的水印嵌入不会影响到明文数据的正确恢复, 即, 对加水印后的加密数据库直接解密可以得到原数据库.实验结果表明, 本文所提出的加密域水印算法不仅可以用于保护数据库数据的隐私, 而且能检测出不同程度的篡改, 适用于云环境下的数据库数据隐私保护和完整性认证.
Boldyreva等人在文献[
下面是对保序概率加密算法[
若
● 超几何分布
在一个抽球模型中, 假若有
● 随机保序函数
假设有明文域[
明文和密文映射关系
Mapping relation between plaintext and ciphertext
对于
其中,
根据公式(1)、公式(2)可知, 我们可以把构造随机保序函数(
文献[
加密过程: |
解密过程: |
上述算法中, 密钥表(
与文献[
桶划分示意图
Diagram of bucket partitioning
为逐步解决OPE的安全性问题, 越来越多的研究(如文献[
3种OPE算法的比较结果
Comparison result of three OPE algorithms
由
本文提出的数据库认证水印算法的框架如
所提出的数据库认证水印算法框架
Sketch of the proposed database authentication watermarking algorithm
数据库所有者按照第1节OPE系统中描述的保序概率加密算法, 对原数据库数据进行加密, 得到加密数据库, 并将加密数据库传递给信息隐藏者, 将密钥表(
1) 数据分组
设
2) 生成交流系数序列
对每组数据进行DCT变换, 生成的数据组表示为
其中,
3) 生成水印信息
用哈希算法处理所生成的交流系数序列
通过
此时, 水印信息长度为128.当随机选择两个序列进行处理时, 则水印信息为
此时, 水印信息长度为256.由于在每一组的直流系数中嵌入1个比特, 所以水印信息的长度
1) OPE后水印嵌入的影响
明文数据经过OPE后带来了冗余, 利用冗余, 我们希望水印在加密域的嵌入不会对明文造成影响.为此, 我们对密文数据进行逐渐增大的修改操作, 观察修改幅度对明文正确恢复的影响.
不同篡改下明文恢复情况
Recovery results of plaintext after different tampering
明文 | 密文 | 恢复明文 | 密文+1 | 恢复明文 | 密文+2 | 恢复明文 | 密文+3 | 恢复明文 |
27 | 7 | 27 | 8 | 27 | 9 | 27 | 10 | |
28 | 24 | 28 | 25 | 28 | 26 | 28 | 27 | |
29 | 35 | 29 | 36 | 29 | 37 | 29 | 38 | 29 |
30 | 70 | 30 | 71 | 30 | 72 | 30 | 73 | |
… | ||||||||
227 | 7 656 | 227 | 7 657 | 227 | 7 658 | 7 659 | ||
228 | 7 674 | 228 | 7 675 | 228 | 7 676 | 228 | 7 677 | 228 |
230 | 7 755 | 230 | 7 756 | 230 | 7 757 | 230 | 7 758 | 230 |
231 | 7 816 | 231 | 7 817 | 231 | 7 818 | 231 | 7 819 | 231 |
234 | 7 939 | 234 | 7 940 | 234 | 7 941 | 234 | 7 942 | 234 |
结果表明:密文在一定范围内进行改变, 解密后仍可正确恢复出原明文.随着改变程度的增大, 正确恢复明文的可能性就越小.
2) 确定可改变的幅度
上述分析可知:密文改变幅度不超过某一阈值
3) 本文认证水印算法的理论证明
本文水印嵌入算法利用了DCT变换的正交特性——改变直流系数不会影响交流系数, 当水印嵌入到直流系数时, 重新DCT分解后的交流系数不会发生任何改变.为了认证加密数据的完整性, 水印信息由交流系数经过哈希得到, 进而嵌入到直流系数中.在检测端, 类似于水印嵌入过程进行DCT变换得到交流系数和直流系数, 然后通过对比交流系数的哈希值和从直流系数中提取的水印信息来判断数据是否完整.当含水印的加密数据发生改变时, 交流系数及其哈希发生改变, 将不能匹配从直流系数中提取的水印信息, 从而判定发生篡改; 当含水印的加密数据没有改变时, 从直流系数中提取的水印信息将匹配交流系数的哈希值.为了更好地说明DCT下直流和交流系数的正交关系, 我们进行了下面的理论推导.
设
得交流系数:
对
现在开始修改直流系数嵌入水印, 令
对
可得
设:
则展开有:
由和差化积公式:
得:
所以,
同理可证:
即,
上面的理论分析表明:改变直流系数不会影响交流系数, 可通过将交流系数的哈希值嵌入到直流系数来认证加密数据的完整性.
4) 水印嵌入
用交流系数序列生成水印信息
嵌入的基本过程是:根据二值水印
其中,
其中,
在量化水印算法中, 量化步长的取值是一个关键.本文中, 通过对加密数据进行DCT后, 在直流系数中嵌入交流系数的哈希值来认证加密数据的完整性, 防止非法篡改.为了确保含水印的加密数据在解密后仍为原明文数据, 利用保序概率加密的特性, 水印嵌入时量化步长的取值要满足密文可改变范围不超过(-1, 1).由公式(11)可以知道, 含水印的密文值
由公式(20)可知:水印嵌入过程中, 直流系数的最大失真为
公式(23)表明:当量化步长一定范围内取值时, 对含水印的加密数据直接解密可得到原始明文数据.这说明了水印嵌入对数据库明文是一个无损过程, 有助于认证加密数据库的同时不影响数据库的正常使用.
接收者接收到含水印的加密数据库, 首先要对数据库的完整性进行认证, 确保在传输过程中没有被攻击者插入、篡改、伪造等, 这可以通过对比交流系数的哈希和直流系数中嵌入的水印信息来完成.
1) 交流系数的哈希
哈希的生成与水印嵌入过程一致, 主要分成3步.
● 数据分组:对长度为
● 进行DCT:对每组数据进行DCT变换, 获取每组的交流系数组成交流系数序列;
● 生成哈希:用哈希算法处理交流系数序列, 生成哈希值作为对比信息.
2) 水印信息的提取
首先, 从每一组的直流系数
进而根据索引区间提取出1比特水印信息:
重复以上过程, 直到提取出全部水印信息.
3) 完整性认证
将提取的水印信息与交流系数的哈希值作对比:若一致, 则加密数据完整; 否则, 数据已被非法篡改.导致误判的攻击主要为修改密文保留水印信息, 让水印认证通过但数据库数据实则已被篡改.要达到上面的攻击非常困难, 原因是水印算法结合了DCT变换的全局和正交特性, 通过嵌入交流系数的哈希值到直流系数中来进行认证, 这对篡改具有很强的敏感性.由于水印信息足够长(实验中为1 024比特), 漏警概率非常小.
接收者接收到加密数据库后, 可以根据解密过程用密钥表(
目前, 大多数OPE方案都是针对数值型数据而设计的, 但也有部分研究是关于字符数据的保序加密, 如Li等人[
经过OPE的数据库并不能实现所有密文域上的数据库关系运算, 例如, SUM, AVG等运算需要解密后才能实现.但由于保持顺序的关系, 仍可以在不解密情况下进行等式和范围查询(如MAX, MIN, COUNT, GROUPBY, ORDERBY)等关系运算.
加密数据库查询处理
Process of query processing in encrypted database
本文算法使用版本为1.8.0的JVM运行在配置为3.50GHz Intel i5处理器, 4GB运行内存的Windows 7系统上, 通过JDBC方式连接到MySQL 5.6数据库, 实现数据的增、删、改、查操作.首先建立一个数据库, 并建立一张含有几个属性列的表, 实验选取图像大小为128×128的Lena灰度图像的像素值作为实验数据.
将128×128个像素值数据写入数据库某个数值型属性列, 进行保序加密得到加密数据.信息隐藏者对加密数据进行分组, 每组16个数据, 共1 024组, 对每组进行DCT变换后获取其后8个交流系数, 得到8个由1 024个交流系数组成的交流系数序列, 每个序列进行哈希分别得到128比特的二值信息, 然后对这些信息进行合并, 得到1 024比特的水印信息.利用QIM算法将水印信息分别嵌入到1 024个直流系数中, 根据公式(23)可知, 量化步长
直流系数和加密数据的水印失真
Watermark distortion of DC coefficients and encrypted data
在接收端, 接收者可对加密数据库进行完整性认证, 也可根据密钥直接对数据库进行解密, 得到原明文数据库.为了测试篡改对数据库恢复的影响,
部分数据篡改
Tampering partial data
索引号 | 含水印密文值 | 篡改程度 | 篡改后含水印密文值 |
578 | 3 946.187 5 | +0.1 | 3 946.287 5 |
1 575 | 3 912.500 0 | -5 | 3 907.500 0 |
2 291 | 835.062 5 | +50 | 885.062 5 |
10 119 | 697.562 5 | -200 | 497.562 5 |
13 906 | 5 913.562 5 | +350 | 6 263.562 5 |
篡改检测实验:通过比对直流系数中的水印信息(
Tamper detection experiment: by comparing the watermark information in DC coefficients and the hash value generated by AC coefficients to determine whether database has been tampered with
公式(23)表明, 量化步长
不同步长选取对认证水印算法及明文恢复的影响
Influence of different
下面测试本文认证水印算法对于明文数据库的可用性, 明文数据同样是128×128的像素值.为了保持明文顺序不变, 可篡改范围设为(-0.5, 0.5), 由公式(23)计算量化步长为
认证水印算法对明文数据库的可用性测试
Usability testing of authentication watermarking algorithm in original database
从实际意义上来说, 在明文数据库上直接嵌入水印并不明智, 因为明文数据已经遭到了破坏, 尤其对于准确性要求较高的数据库.通过保序概率加密和其引入的冗余, 本文达到了保护隐私、嵌入认证信息和进行关系运算等目的.
下面分析在资源受限的用户端下, 本文的保序概率加密算法和认证水印算法的时间开销(计算时间开销和存储时间开销).为了测试方便, 本文实验的数据库表只含有两个属性列(自增的索引列和待加密数据列), 每一行数据代表一个元组.
加/解密不同元组数所需时间
Time required for encrypting/decrypting different number of tuples
一次性插入或读取不同元组数所需的时间
Time needed to one-time insert/read different number of tuples
不同元组数的认证水印算法时间开销
Time overhead of authentication watermarking algorithm in different number of tuples
本文实现了一种新的保序加密域数据库认证水印算法.数据库所有者首先对数据库某一属性列的敏感数据进行加密, 以保护其内容隐私; 信息隐藏者对加密数据进行水印嵌入处理, 防止数据被非法篡改, 水印嵌入不影响用户对数据的查询和使用; 接收者可通过验证数据库的完整性来确保是否被篡改, 对于拥有加密密钥的接收者, 可直接对加密数据库进行解密, 得到原数据库.本文算法解决了以下几点问题并获得了很好的效果.
1) 通常, 明文数据库中数据冗余非常小, 进行水印保护时难以找到用于嵌入的冗余空间.经过保序加密的数据库数据不仅保护了内容隐私, 而且所有数据都可以进行水印处理, 很好地解决了数据库的保护问题;
2) 水印嵌入过程很好地结合了保序加密的特点, 对加密数据的水印嵌入相对于明文数据是无损的, 对含水印的密文数据库直接解密可得到原数据库.好处是:水印对加密数据提供了认证保护, 但不会影响数据库的使用;
3) 水印算法很好地利用了DCT的全局和正交特性, 将交流系数的哈希值嵌入直流系数, 达到了对数据库的完整性认证, 能够识别不同程度的篡改, 对加密数据的完整性提供了很好的保护.
本文算法适合于网络空间安全大背景下的云数据库服务, 很好地结合了加密和信息隐藏技术, 为数据内容的隐私保护和数据安全提供了一种有效的潜在技术手段.
Zhang XP, Long J, Wang ZC, Cheng H. Lossless and reversible data hiding in encrypted images with public key cryptography. IEEE Trans. on Circuits and Systems for Video Technology, 2016, 26(9):1622-1631.[doi:10.1109/TCSVT.2015.2433194]
Xiang SJ, Luo XR. Reversible data hiding in encrypted image based on homomorphic public key cryptosystem. Ruan Jian Xue Bao/Journal of Software, 2016, 27(6):1592-1601(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/5007.htm [doi:10.13328/j.cnki.jos.005007]
项世军, 罗欣荣.基于同态公钥加密系统的图像可逆信息隐藏算法.软件学报, 2016, 27(6):1592-1601. http://www.jos.org.cn/1000-9825/5007.htm [doi:10.13328/j.cnki.jos.005007]
Huang LS, Tian MM, Huang H. Preserving privacy in big data:A survey from the cryptographic perspective. Ruan Jian Xue Bao/Journal of Software, 2015, 26(4):945-959(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4794.htm [doi:10.13328/j.cnki.jos.004794]
黄刘生, 田苗苗, 黄河.大数据隐私保护密码技术研究综述.软件学报, 2015, 26(4):945-959. http://www.jos.org.cn/1000-9825/4794.htm [doi:10.13328/j.cnki.jos.004794]
doi: 10.1109/ICoICT.2014.6914040]]]>
Tian XX, Wang XL, Gao M, Zhou AY. Database as a service-Security and privacy preserving. Ruan Jian Xue Bao/Journal of Software, 2010, 21(5):991-1006(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/3746.htm [doi:10.3724/SP.J.1001.2010.03746]
田秀霞, 王晓玲, 高明, 周傲英.数据库服务——安全与隐私保护.软件学报, 2010, 21(5):991-1006. http://www.jos.org.cn/1000-9825/3746.htm [doi:10.3724/S P.J.1001.2010.03746]
doi: 10.1145/1231047.1231060]]]>
Murray MC. Database security:What students need to know. Journal of Information Technology Education, 2010, 9:61-77.
Du L, Cao XC, Zhang W, Zhang XP, Liu N, Wei JG. Semi-Fragile watermarking for image authentication based on compressive sensing. Science China Information Sciences, 2016, 59(5):1-3.[doi:10.1007/s11432-016-5542-8]
Schmitz R, Li SJ, Grecos C, Zhang XP. Content-Fragile commutative watermarking-encryption based on pixel entropy. Springer Int'l Publishing, 2015, 9386:474-485.[doi:10.1007/978-3-319-25903-1_41]
doi: 10.1145/1007568.1007632]]]>
Ma YZ, Meng XF. Research on indexing for cloud data management. Ruan Jian Xue Bao/Journal of Software, 2015, 26(1):145-166(in Chinese with English abstract). http://www.jos.org.cn/1000-9825/4688.htm [doi:10.13328/j.cnki.jos.004688]
马友忠, 孟小峰.云数据管理索引技术研究.软件学报, 2015, 26(1):145-166. http://www.jos.org.cn/1000-9825/4688.htm [doi:10.13328/j.cnki.jos.004688]
doi: 10.1007/978-3-642-01001-9_13]]]>
doi: 10.1109/ICDCS.2010.34]]]>
doi: 10.1145/1866835.1866846]]]>
doi: 10.1007/978-3-642-22792-9_33]]]>
Wang C, Cao N, Ren K, Lou WJ. Enabling secure and efficient ranked keyword search over outsourced cloud data. IEEE Trans. on Parallel and Distributed Systems, 2012, 23(8):1467-1479.[doi:10.1109/TPDS.2011.282]
Li K, Zhang WM, Yang C, Yu NH. Security analysis on one-to-many order preserving encryption-based cloud data search. IEEE Trans. on Information Forensics and Security, 2015, 10(9):1918-1926.[doi:10.1109/TIFS.2015.2435697]
doi: 10.1109/SP.2013.38]]]>
doi: 10.1016/B978-155860869-6/50022-6]]]>
Sion R, Atallah M, Prabhakar S. Rights protection for relational data. IEEE Trans. on Knowledge and Data Engineering, 2004, 16(12):1509-1525.[doi:10.1109/TKDE.2004.94]
Zhou F, Zhao HX. Relational database watermarking algorithm based on chaos and DCT. Application Research of Computers, 2012, 29(2):786-788(in Chinese with English abstract).[doi:10.3969/j.issn.1001-3695.2012.02.104]
周飞, 赵怀勋.基于混沌的DCT域关系数据库水印算法.计算机应用研究, 2012, 29(2):786-788.[doi:10.3969/j.issn.1001-3695.2012.02.104]
doi: 10.1109/ICNC.2009.640]]]>
Chen B, Wornell GW. Quantization index modulation:A class of provably good methods for digital watermarking and information embedding. IEEE Trans. on Information Theory, 2001, 47(4):1423-1443.[doi:10.1109/18.923725]
Li YX, Liu GH. Order preserving encryption method for character data in relational databases. Radio Engineering, 2006, 36(4):1-3(in Chinese with English abstract).
李亚秀, 刘国华.关系数据库中字符数据的保序加密方法.无线电工程, 2006, 36(4):1-3.