1. 引言
在数字信息飞速传播的当下,多媒体数据在网络中的传输极为频繁,水印和加密技术的结合在多个关键领域有着重要的作用。在数字版权管理领域,内容创作者和发行商通过将版权信息以水印的形式嵌入数字作品,并利用加密技术保护水印和作品,防止盗版和未经授权的传播[1]。在医疗数据共享场景中,医院和科研机构需要在保证患者隐私的前提下,将医疗影像等数据分享给合作方进行研究分析,水印与加密技术结合可确保数据来源可追溯且内容不被非法获取[2]。在金融交易领域,电子票据、合同等重要文件需确保其完整性和真实性,水印和加密技术结合能够有效防止文件被篡改或伪造[3]。
同态加密是密码学领域的一项重要技术,对密文进行特定的计算操作,其结果与对明文进行相同计算操作后再加密的结果一致[4]。这一特性使得同态加密在云计算、数据外包等场景中具有巨大的应用潜力,能够在保证数据机密性的前提下实现数据的高效处理[5]。然而,传统的同态加密算法在面对复杂多变的安全威胁时,逐渐暴露出一些局限性[6]。
为了进一步保障信息安全,将同态加密与水印技术相结合,形成了同态加密水印算法。现有的基于公钥加密方案的水印算法,在一定程度上提高了水印嵌入与提取过程中的安全性[7]。但是,基于经典密码体制的算法在面对量子计算机强大的计算能力时,其安全性正面临严峻挑战[8]。量子计算机能够在短时间内破解传统加密算法,这对基于经典公钥加密方案的水印算法构成了巨大的安全威胁[9]。
CEW (Commutative Encryption Watermarking)交换加密水印算法是一种将加密和水印技术结合,实现二者操作顺序可交换的方案[10]。传统的水印加密方案将加密与水印固定顺序,这存在显著局限性,一旦改变可能导致密文异常或水印无法正确提取。而CEW交换加密水印方案打破了这一限制,无论先进行加密还是先进行水印嵌入,最终生成的密文数据和水印提取的结果都不受影响[11]。在军事通讯和医疗领域中具有重要作用。
本文创新性地提出了一种基于Kyber加密方案[12]交换加密水印算法。Kyber是一种基于格的后量子密码算法,具备较强的抗量子攻击能力,能够有效保障加密数据在水印嵌入与提取过程中的安全性[13]。Kyber加密与Patchwork水印算法[14]相结合的CEW方案,不仅确保了信息在传输过程中的安全性,防止信息被泄露,还实现了加密与水印嵌入操作的互换。这种算法设计确保了水印嵌入与数据加密的顺序不影响密文数据的生成和水印提取,显著提升了水印嵌入的机密性和多媒体数据的安全性,在量子环境下展现出了显著的抗攻击优势。
2. 理论基础
本节将对CEW [10],Kyber密码体制[13]所具备的加法同态特性以及Patchwork水印算法[14]展开论述,并详细介绍本文提出的基于Kyber交换加密水印算法的基本原理。
2.1. 交换加密水印
交换加密水印方案是将数字水印和加密技术结合的一个重要方向,主要用于在加密数据中嵌入水印,并且保证水印提取能够在数据加密后进行,且不泄露数据内容。CEW方案的核心思想是加密与水印嵌入的操作是可互换的,而且不影响水印的提取。CEW方案能够有效防止数据篡改和水印攻击。下图1是交换加密水印算法的流程图。
Figure 1. Flowchart of the exchange encryption watermarking algorithm
图1. 交换加密水印算法流程图
图1中,X为原始数据,E是加密函数,W是数字水印函数,k是加密密钥,w是嵌入的水印信息。一方面,使用加密密钥k对x进行加密操作,生成加密后的数据,之后将水印信息嵌入其中;另一方面,可先将水印信息嵌入得到含水印的图像,再使用加密密钥k进行加密。之后,对经过上述操作的数据进行解密得到含水印的明文载体Xw以恢复原始数据,同时也可以在密文域中提取水印信息w’,用于验证版权归属等。
当前,多数CEW算法为防止加密与水印相互干扰,都通过操作的独立性的来实现。这种方式下,水印操作数对用户完全可见,由于缺乏加密保护,使得多媒体信息数据的安全性有所降低。针对这一问题,人们将正交分解应用于基于独立操作的CEW (CEWod) [15],试图提升多媒体信息的安全性。然而,CEWod本质上仍属于基于独立操作的CEW算法,并没有从根本上解决CEW的安全问题。在本文中,运用同态加密技术,不仅弱化了对特定加密算法和水印算法的限制,还进一步增强了水印方案的安全性。
2.2. Kyber加法同态加密算法
Kyber加法同态加密算法基于整数编码技术,实现了整数加法同态,首先通过编码将整数映射到明文多项式上,然后进行后续的加密操作。
2.2.1. 整数编码
编码算法Encode (M):
令M表示整数,其二进制表示为bin (M);
将bin (M)分组为长度为dp − 1的子串,并在每个子串前面添加一个0,得到向量:
(1)
其中,bini表示第i个子串,l为分组的总数;
将每个向量元素转换为十进制整数:
(2)
其中,deci表示将二进制串bini转换为十进制的结果;
如果向量长度l < n,则在向量前面补零,使其长度达到n,即
(3)
解码算法decode (m):
令整数向量
,取其逆序
,计算:
(4)
2.2.2. 算法步骤
算法主要包含四个部分:密钥生成,加密,解密和同态加法,参数集如表1。
Table 1. Algorithm parameter set
表1. 算法参数集
符号 |
定义 |
n |
环Rq上多项式的次数 |
k |
模格的维数 |
q |
环Rq上多项式的系数模 |
η1,η2 |
噪声分布参数 |
du,dv,dp |
压缩参数 |
输入安全参数n (须满足为2的幂),产生算法参数集parameters:模格的维数k;多项式模q (须满足q = 1 mod 2n);多项式环
;噪声分布
。
本方案的具体算法包含四个部分:密钥生成,加密,解密和同态加法。
a) 密钥生成KeyGen(parameters):
输入参数集parameters中的模维数k,多项式模q,以及噪声分布参数
,
。
取样生成随机矩阵和向量:
;
,
。
计算公钥:
。
输出公钥pk: = (t, A),私钥sk: = s。
b) 加密算法Enc (pk, M):
输入公钥pk,整数
,以及参数集parameters中的压缩参数du,dv,dp。取样产生随机向量和噪声向量:
,
,
。
对M进行编码m = encode (M),计算:
(5)
进行压缩:
(6)
输出密文
。
c) 解密算法Dec (sk, c):
输入私钥sk,密文c,以及参数集parameters中的压缩参数du,dv。对密文进行解压缩:
(7)
计算:
(8)
对m进行解码M = decode (m)。输出解密结果M。
d) 同态加法Add (c1, c2):
输入两组密文c1,c2,以及参数集parameters中的压缩参数du,dv。对两组密文求和:
(9)
输出密文c’。
2.3. Patchwork水印算法
Patchwork是一种基于图像的水印算法,通常用于图像数字水印的研究中。它主要通过改变图像的像素点来进行水印嵌入,目的是在保证水印信息不可见的情况下,提供足够的鲁棒性。它能够抵抗图像的常见攻击,如裁剪、压缩、噪声添加等。Patchwork水印的核心是分别改变图像不同区域的像素值,通常这些区域具有一定关系,被改变的这些区域称为“patch”。Patchwork水印算法具体流程为:
a) 图像分割:首先将图像分成两个区域,且两个区域的像素点接近。这两个区域中的数据分别是集合
和
,
,
,改变每个区域的像素点用于水印的嵌入。
b) 水印嵌入:对于X区域,将所有像素点增加a,对于Y区域,将所有像素点减少a,使得这些区域的像素点发生微小的变化,这些变化是不可感知的。
c) 水印提取:通过计算均值来确定是否含有水印信息,计算均值的公式为:
(10)
其中
和
分别是嵌入x水印后的像素值:
,
。
假设a = 1,要嵌入的载体图像为8 * 8的灰度图像,根据Patchwork水印算法规则,嵌入的水印算法为:
(11)
嵌入水印后,计算均值提取水印:
(12)
其中,s的值将决定是否带有载波水印,若s ≈ 2含有水印载波,水印信息为1,若s ≈ 0表示无水印,水印信息为0。
3. 基于Kyber与Patchwork交换加密水印算法
Kyber加密算法和Patchwork水印算法的结合可以形成一种安全且具有鲁棒性的加密水印方案。在此方案中,Kyber算法用于加密载体信息,可以实现在嵌入水印前加密,也可以实现先嵌入水印后加密;Patchwork算法则用于将水印信息嵌入原始图像或加密图像中,在水印提取时实现在密文域提取水印和在解密后的明文域提取水印。算法总体结构如图2所示。
Figure 2. Algorithm overall structure diagram
图2. 算法总体结构图
3.1. 交换加密水印算法基本原理
基于Kyber加密算法与Patchwork水印算法的CEW算法包括如下步骤:
a) 数据集合选取:从载体图像中筛选特定数据子集,依据像素点坐标之和的奇偶性,将所选数据重新划分为两个互斥集合,分别记为
和
,其中
,
,在实际图像的像素空间中,集合X内的像素值xi,j对应像素点的坐标之和为偶数,而集合Y内的像素值yi,j对应像素点的坐标索引之和为奇数。
b) 水印嵌入:对集合X中的所有像素点执行加法操作,增加值为a;对集合Y中的所有像素点执行减法操作,减少值亦为a。参数a的取值需通过严谨的实验分析与理论推导确定,以在保障水印提取准确率的同时,最大程度维持嵌入水印后载体图像的视觉质量与结构完整性,确保图像的各项质量评估指标,如峰值信噪比(PSNR)、误码率(BER)等,处于可接受范围。
c) 水印提取:过程同公式(10)。
3.2. 含水印密文载体的生成
首先在原始载体数据中选择一些数据,然后计算这些像素值下标的值,再按照下标值的奇偶性分配组成两个集合
。
3.2.1. 先嵌入水印后加密
在明文中嵌入水印:
(13)
其中,
是带水印的明文。
然后对含水印的明文进行加密:
(14)
其中,
,
,
。
的加密过程与
相同。
3.2.2. 先加密后嵌入水印
对载体图像的每个像素点加密,具体过程与含水印的明文进行加密类似:
(15)
其中,
,
,
。
的加密过程与
相同。
同理,对水印信息a也进行加密:
(16)
然后,在密文中嵌入水印:
(17)
得到的
即含有水印的密文载体图像。
3.3. 水印信息的提取
3.3.1. 在解密后的明文提取水印
首先引入如下的结论。
定理:对利用上述先嵌入水印后加密与先加密后嵌入水印所得到的含水印的密文进行解密时,当密钥相同时,解密结果是相同的,即:
(18)
证明:
为
加密的结果,所以有
(19)
为
与
进行加法同态加密的结果,所以此处证明算法加法同态的正确性:
令
,对于两组由相同公钥加密得到的密文
,
,做加法时,已经有m1 + m2 = m3,对等式左边,有
(20)
对等式右边,有
(21)
由式(20) (21)可得
(22)
因此在密文上,
,满足加法同态,即
(23)
同理也可证明
的正确性,定理成立。
水印提取过程同式(10)。
3.3.2. 在密文中提取水印
对于含有水印的密文载体图像:
直接计算:
(24)
由于
(25)
所以当
时,水印信息为0;当
时,水印信息为1。
4. 实验结果分析
4.1. 实验设置
本次实验选用一幅256 * 256大小的lena灰度图作为原始载体,运用Patchwork水印算法和Kyber加密算法进行加密和嵌入水印,旨在探索并实现嵌入水印和加密的顺序可以交换,并能抵抗量子攻击。
峰值信噪比(PSNR)是衡量水印算法性能的重要参数,实验中通过该指标来评估含水印图像与原图的失真程度,PSNR值越高,说明图像质量损失越小,水印隐蔽性越强。假设原始图像用r表示,解密后含水印的图像记为r’,使用(i, j)表示图像的像素坐标,其中h代表图像的高度,w表示图像的宽度,M为嵌入的水印总比特数。
峰值信噪比(PSNR)的计算公式为:
(26)
在数字水印技术应用中,原始图像的像素值通常在0至255区间。但是,当采用加密算法对图像进行处理时,可能会导致部分像素值突破常规范围,出现负值或超出255上限的情况,但是本算法使用Kyber算法加密操作,不会出现像素值溢出的情况。Kyber算法所采用的参数中q = 3329超出了像素值表示范围,无法可视化地表示出来,本文采取了标准化的方法来解决该问题。在密文输出时,将0~3329等比例转化到0~255再输出为图像,当进行密文上的运算时,首先进行逆运算将0~256等比例转化到0~3329,从而保证运算的正确性。
4.2. 实验结果分析
图3(a)是原始载体图像和利用Kyber算法加密后得到的密文图像,图3(b)是嵌入水印后的含水印密文图像和解密后含水印的明文图像,含水印的明文图像计算得到的PSNR值为25.41 dB。其中,由于Kyber算法的密文膨胀原因,对256 × 256的图像加密将得到较多的密文数据,图3(b)中的密文图像以及后续的密文图像仅为256 × 1部分像素所对应密文的图像,剩余256 × 255部分密文图像与之类似,在此不展示。图4分别是原始图像,嵌入水印信息之后的含水印图像和解密后的含水印图像以及密文含水印图像,图4(b)的PSNR值为48.13 dB,解密后的含水印图像PSNR值为43.62 dB,实验结果表明,该算法在明文域和密文域均能完整提取水印内容并准确还原原始图像。经解密处理后的水印图像效果良好。
Figure 3. Experimental results in the encrypted domain
图3. 加密域下的实验结果图
Figure 4. Experimental results in plaintext domain
图4. 明文域下的实验结果图
上述实验为嵌入一个比特的水印信息的实验结果,此外还可嵌入字母和图片作为水印信息嵌入图像,嵌入后的水印信息在明文域和密文域都能准确的提取出来。
4.3. 水印算法的性能测试
为验证算法的适用性与抗鲁棒性,本研究另选取lena、cameraman两幅256 × 256标准测试图像进行实验。计算不同水印嵌入量下的PSNR值,其中表2记录密文域不同嵌入容量下的PSNR,表3反映明文域不同嵌入容量下的PSNR值。测试发现:当嵌入容量减少时,明文域和密文域内的PSNR值均呈现提升趋势。在嵌入容量较低时,含水印的图像解密后能较好的恢复原图像,在嵌入容量较高时,也能获得比较清晰的图像。
Table 2. PSNR (dB) under different embedding capacities in the ciphertext domain
表2. 密文域不同嵌入容量下的PSNR (dB)
原始图像 |
0.0312 |
0.0156 |
0.0078 |
0.0039 |
Lena |
25.41 |
28.13 |
31.17 |
34.15 |
cameraman |
24.20 |
27.33 |
31.60 |
33.16 |
Table 3. PSNR (dB) under different embedding capacities in plaintext domain
表3. 明文域不同嵌入容量下的PSNR (dB)
原始图像 |
0.0625 |
0.0312 |
0.0156 |
0.0078 |
0.0039 |
Lena |
25.05 |
30.07 |
36.09 |
42.11 |
48.13 |
cameraman |
24.20 |
30.07 |
36.09 |
42.11 |
48.13 |
与其他加密域的水印算法文献[10]、文献[16]和文献[17]进行比较结果见表4。由表4可见,在无水印攻击时,以256 × 256的Lena灰度图像为例,与文献[10] [16]和[17]中的算法比较,本文水印算法在明文域的PSNR值为48.13 dB,文献[10] [16]和[17]的PSNR值分别为48.13 dB,42.81 dB和50.38 dB,本文算法求得的PSNR值,与其他算法基本上差不多,说明提取出的水印图像与原始图像差异较小,水印图像效果较好,水印图像质量得到了改善,同时还能实现密文域下水印的提取,并且本文算法还具有一定的抗量子攻击性能,由此可见,本文算法的整体性能得到了改善。
Table 4. Comparison of this algorithm with other literature algorithms
表4. 本文算法与其他文献算法比较
水印算法 |
水印图像PSNR (dB) |
水印形式 |
鲁棒性测试 |
文献[10] |
48.13 |
0/1 |
噪声|压缩 |
文献[16] |
50.38 |
0/1 |
噪声|压缩|剪切 |
文献[17] |
42.82 |
二值图像 |
无测试 |
本文算法 |
48.13 |
0/1 |
噪声 |
5. 结论与展望
本文针对传统同态加密水印算法在量子计算环境下的潜在安全风险,提出了一种基于Kyber后量子加密方案的加法同态交换加密水印算法。通过将Kyber加密算法与经典Patchwork水印嵌入技术相结合,实现了加密与水印操作顺序的可交换性,确保密文数据在传输和处理过程中的机密性。基于数字水印提供了数字版权保护的方案。因此,本方案为图像、视频、音频等数字文件的机密性、完整性、真实性,以及版权保护提供了较为完善的解决方案。
下一步的研究着重于在抗量子攻击的同时提高算法的效率,或增强算法的鲁棒性,来进一步提高算法的性能。
基金项目
国家自然科学基金(62472040);中国版权保护中心版权研究课题(BQ2024017)。