关系数据库认证与图像脆弱水印技术详解
关系数据库水印方案的理论性能
在关系数据库的水印方案中,理论性能主要从容量和失真两方面进行评估,这两者都与βi的统计分布、偏移幅度Δ以及属性分布密切相关。
容量性能
容量直接取决于载波组的数量,即满足|βi| < 2α的组。载波数量决定了方案的全局容量,可通过βi的概率密度函数(p.d.f)来确定。βi与元组组Gi相关,它是同一属性An在两个元组子组GA,i和GB,i中的两个圆形直方图质心之间的角度。
对于一个属性θ的圆形数据分布,可看作离散随机变量θ的p.d.f f(θ),θ在有限集{ 2πl / L }l=0,…,L−1中取L个值。θ的平均方向μ可通过有限数量的θ样本进行估计。根据大数定律和中心极限定理,对于任何圆形数据分布f(θ),平均方向估计器的分布趋近于以圆形数据分布的真实平均方向为中心的正态分布。
当调制βi时,实际上是调制同一属性An在组Gi中的两个圆形直方图的平均方向μA,i和μB,i之间的角度。μA,i和μB,i都遵循正态分布,因此βi = μA,i - μB,i遵循中心正态分布N(0, σ²βi),其方差为σ²βi。
给定角度偏移α时,一个元组组成为载波组的概率定义为:
Pcarrier = Φ( 2α / σβi ) - Φ( -2α / σβi )
其中,Φ是正态分布的累积分布函数:
Φ( 2α / σβi ) = (1 / (σβi √(2π))) ∫(从 -∞ 到 2α) e^(-t² / (2σ²βi)) dt
为了确定脆弱方案的全局容量极限,需要估计σ²βi。首先估计平均方向μA,i和μB,i的方差:
σ²μA,i = σ²μB,i = σ²s / (N / (2Ng) R²)
其中,R是质心向量的模,σ²s定义为:
σ²s = ∑(从 l = 0 到 L - 1) sin²(2πl / L) f(2πl / L)
由于βi是两个正态分布随机变量的差,其方差为:
σ²βi = 2σ²s / (N / (2Ng) R²)
需要注意的是,上述βi的正态分布假设在N / (2Ng) ≥ 30时成立。
全局容量CT可通过以下公式计算:
CT = Ng · Pcarrier
在得到全局容量CT后,需要减去用于编码开销的位数|Ov|。|Ov|与βi属于范围[−π, −π + 4α] ∪ [π - 4α, π]的概率相关,其上限为:
|Ov| ≤ Ng · P[−π,−π+4α] ∪ [π−4α,π] = Ng · Pofw
其中,
Pofw = (Φ( π / σβi ) - Φ(π - 4α / σβi )) + (Φ( -(π - 4α) / σβi ) - Φ( -π / σβi ))
最终,可嵌入消息的长度C也有上限:
C ≤ CT - |Ov|
从这些结果可以得出,对于固定的α值,嵌入容量直接取决于属性的统计特性。任何均匀分布的属性都无法进行水印处理,因为σ²βi将趋于无穷大,容量将趋于0。
引入的失真
采用均方误差(MSE)作为数据失真度量。根据属性的p.d.f,提出了两种线性直方图修改策略来调制βi。
第一种策略中,大多数值偏移|Δ|。在属性域范围端点之间跳跃的情况下,偏移变为|L - Δ|。由于元组均匀且相等地分布在Ng组中,可假设每个组包含相同数量的“跳跃”值。因此,MSE计算如下:
MSE = (1 - Pofw) · [(Plim / 2) ((L - Δ)² + Δ²) + (1 - Plim) Δ²]
其中,Plim = Pup + Plow,Pup和Plow分别是属性值落在高和低属性域范围(可能发生“跳跃”)的概率。
Pup = ∑(从 V = L - 1 - Δ 到 L - 1) f(V)
Plow = ∑(从 V = 0 到 Δ) f(V)
该方法的失真直接取决于Δ的值和属性分布。属性域端点的元素数量以及域长度L都有很大影响。
第二种策略中,仅修改一个子组GA,i(或GB,i)中的值,偏移量为2Δ以调制βi。此时MSE为:
MSE = (1 - Pofw) · [(Pup) (L - 2Δ)² + (1 - Pup) (2Δ)²] / 2
这种策略在属性概率分布不集中在域范围中心的情况下效果显著。
实验结果
为了验证上述理论性能,在一个真实的数据库上进行了实验。
数据集和水印方案参数设置
测试数据库来自一个真实的医疗数据库,包含约一百万个元组,每个元组包含十五个属性,如医院标识符、患者住院标识符、患者年龄和住院时长等。将医院标识符和患者住院标识符连接起来作为主键,选择患者年龄和住院时长两个数值属性进行消息嵌入。结果是在30次随机模拟的平均值,每次模拟参数相同但元组不同。
容量结果
研究了属性偏移幅度Δ对最终容量的影响。βi的角度偏移α取决于Δ。当使用属性年龄进行嵌入,固定组数量Ng = 5000,属性偏移幅度Δ在[1, 5]范围内变化时,容量随Δ增加而增加,并符合理论极限。同时,属性失真也随容量增加而增加。
在另一个实验中,评估了根据属性统计矩的容量。使用相同的Δ值对属性年龄和住院时长进行水印处理,同时考虑不同的组数量Ng ∈ {1000, 3000, 5000, 10000}。结果表明,获得的容量符合理论极限,容量取决于用于嵌入的属性的特性,特别是其标准差。方差较小的住院时长属性可以插入更多数据。
失真结果
失真取决于属性分布、偏移幅度Δ以及线性直方图调制策略。使用相同的Δ值(范围为[1, 3])和组数量Ng = 10000对属性年龄和住院时长进行水印处理。实验结果与理论值相符,证实了全局失真不仅取决于Δ,还取决于属性域及其概率分布。但由于所有这些参数都可以在嵌入过程之前计算,因此失真仍然是可预测的。
使用第二种线性直方图修改策略时,失真显著降低。因为这些属性的分布集中在属性域的低端。
以下是相关参数和公式的总结表格:
| 参数 | 含义 | 公式 |
| ---- | ---- | ---- |
| Pcarrier | 载波组概率 | Pcarrier = Φ( 2α / σβi ) - Φ( -2α / σβi ) |
| Φ | 正态分布累积分布函数 | Φ( 2α / σβi ) = (1 / (σβi √(2π))) ∫(从 -∞ 到 2α) e^(-t² / (2σ²βi)) dt |
| σ²βi | βi的方差 | σ²βi = 2σ²s / (N / (2Ng) R²) |
| CT | 全局容量 | CT = Ng · Pcarrier |
| |Ov| | 开销位数上限 | |Ov| ≤ Ng · P[−π,−π+4α] ∪ [π−4α,π] = Ng · Pofw |
| Pofw | 开销概率 | Pofw = (Φ( π / σβi ) - Φ(π - 4α / σβi )) + (Φ( -(π - 4α) / σβi ) - Φ( -π / σβi )) |
| C | 可嵌入消息长度上限 | C ≤ CT - |Ov| |
| MSE(第一种策略) | 均方误差(第一种策略) | MSE = (1 - Pofw) · [(Plim / 2) ((L - Δ)² + Δ²) + (1 - Plim) Δ²] |
| MSE(第二种策略) | 均方误差(第二种策略) | MSE = (1 - Pofw) · [(Pup) (L - 2Δ)² + (1 - Pup) (2Δ)²] / 2 |
下面是关系数据库水印方案容量计算的流程图:
graph TD
A[开始] --> B[确定参数N, Ng, α, R, σ²s]
B --> C[计算σ²βi = 2σ²s / (N / (2Ng) R²)]
C --> D[计算Pcarrier = Φ( 2α / σβi ) - Φ( -2α / σβi )]
D --> E[计算CT = Ng · Pcarrier]
E --> F[计算Pofw = (Φ( π / σβi ) - Φ(π - 4α / σβi )) + (Φ( -(π - 4α) / σβi ) - Φ( -π / σβi ))]
F --> G[计算|Ov| ≤ Ng · Pofw]
G --> H[计算C ≤ CT - |Ov|]
H --> I[结束]
图像脆弱水印算法介绍
引言
数字水印旨在将信号(水印)插入到数字对象中。根据目标的不同,数字水印可分为鲁棒水印和脆弱水印。鲁棒水印用于抵抗去除操作,常用于版权保护;而脆弱水印的主要挑战是识别数字对象是否被修改,特别是在对象内容发生微小变化时。此外,还有半脆弱水印,它能在轻度信号处理操作中存活,但会被更强的改动去除。典型的水印应用包括来源追踪、版权保护、内容完整性保护和认证。
本文主要关注脆弱水印,其应具备以下特性:
- 能够检测和定位数字对象的修改区域。
- 在数字对象的正常使用过程中不可察觉。
- 抵抗旨在不被检测地修改对象的攻击。
目前,脆弱水印还增加了自我恢复的要求,即水印能够将数字内容的受损区域恢复到原始状态。水印可以直接插入到对象的值(如图像的像素或声音的音频样本)中,也可以插入到某些变换域的系数(如傅里叶变换域或离散余弦变换(DCT)域)中。
相关工作
许多工作都使用了Karhunen - Loève变换(KLT)和遗传算法(GA),以下是一些相关的脆弱水印算法:
1. 基于查找表的图像认证算法 :可应用于彩色和灰度图像认证。将二进制水印逐位嵌入到每个像素中。对每个像素应用一个秘密二进制查找表(彩色图像使用三个查找表的函数),将结果与要存储在像素中的水印位进行比较。若值不同,则对像素进行轻微修改,以最小的失真使查找表的结果等于水印位。将像素修改可能引入的误差扩散到尚未处理的最近像素,以保持每个颜色通道的平均强度不变。认证时,对像素应用查找表提取存储的水印,并与原始水印进行比较,若有差异则检测到篡改。
2. 基于z变换零值的图像认证算法 :将图像块的z变换零值插入脆弱水印。将1×N像素的行视为信号进行z变换,然后根据要插入的水印位修改z平面中的实负零值,再将新的零值逆变换为像素值(四舍五入)。验证时,从像素块的z变换的实负零值中提取位,并与原始水印位进行比较。
3. 基于奇异值分解(SVD)的脆弱水印方法 :将图像划分为方形块,对像素值进行最低有效位(LSB)替换后进行SVD变换。然后,使用计算得到的奇异值和水印再次修改像素的LSB,生成水印块。该方法的秘密参数是水印以及用于LSB替换和置换的密钥,还可应用于彩色图像,将水印插入R、G和B通道。
4. 基于混沌映射的图像认证和篡改检测算法 :首先使用Arnold猫映射对图像进行加扰,然后将水印与由秘密密钥生成的混沌序列进行异或运算,结果替换加扰图像的LSB平面。最后,再次应用Arnold猫映射将像素解扰到原始位置。该方法能抵抗复制粘贴、拼接和文本添加等攻击。
5. Lin等人的算法 :将图像划分为块,使用像素值的加权和通过将一个像素的灰度级修改+1或 - 1来嵌入n个认证位。为了增加方法的安全性,要嵌入的水印使用秘密密钥进行变换。
6. 基于KLT的水印插入算法 :将宿主图像划分为块,对每个块进行KLT变换,根据秘密水印定义的酉矩阵修改得到的系数,然后应用逆变换得到标记图像。验证图像的原始性需要原始图像和水印。
7. 基于DCT的脆弱水印方法 :比较不同的智能优化算法(IOA),包括GA。将水印位插入DCT系数的LSB中,IOA用于补偿从实系数空间转换到整数像素域时的舍入误差。
8. Botta等人的算法 :应用GA补偿在图像块的某些选定KLT系数中插入脆弱水印时的像素舍入误差。KLT用于创建秘密嵌入空间,每个选定系数插入一位。
提出的脆弱水印算法
本文提出了一种用于灰度位图图像的脆弱水印算法,用于有效和高效的内容完整性保护。该算法通过实现更精确的函数将水印位存储到KLT系数中,改进了之前的算法。该函数源自Lin等人的工作。虽然这里使用的技术本身并不新颖,但它们的组合使用提高了性能和检测能力,并且与现有技术相比,能产生质量更好的水印图像。
算法的主要步骤如下:
1. KLT变换 :对宿主图像的连续块应用KLT变换。
2. 水印插入 :使用秘密密钥图像定义一些KLT系数,根据加权模和规则修改这些系数,将二进制水印插入其中。
3. 遗传算法优化 :使用遗传算法修改像素值,使得到的块包含水印。由于水印插入的KLT空间是保密的,该方法具有较强的安全性。
实验结果与讨论
通过实验证明,该算法对水印图像的微小修改也具有出色的敏感性。实验结果表明,该算法在内容完整性保护方面表现良好,能够准确检测和定位图像的修改区域。
在实际应用中,用户可以根据具体需求选择合适的参数和调制方式,以满足容量和失真的要求。例如,在对容量要求较高的情况下,可以适当增加属性偏移幅度Δ,但需要注意随之增加的失真;而在对失真要求严格的情况下,可以选择合适的线性直方图修改策略,如第二种策略,以降低失真。
以下是不同水印算法的特点对比表格:
| 算法名称 | 主要技术 | 优点 | 缺点 |
| ---- | ---- | ---- | ---- |
| 基于查找表的算法 | 查找表、误差扩散 | 能保持颜色通道平均强度 | 计算较复杂 |
| 基于z变换零值的算法 | z变换 | 利用信号处理特性 | 对图像块处理有局限性 |
| 基于SVD的算法 | 奇异值分解、LSB替换 | 可应用于彩色图像 | 依赖秘密参数 |
| 基于混沌映射的算法 | 混沌映射、Arnold猫映射 | 抵抗多种攻击 | 加扰和解扰过程复杂 |
| 本文提出的算法 | KLT变换、遗传算法 | 安全性高、对微小修改敏感 | 计算量较大 |
下面是本文提出的图像脆弱水印算法的流程图:
graph TD
A[开始] --> B[输入宿主图像和二进制水印]
B --> C[对宿主图像分块并进行KLT变换]
C --> D[使用秘密密钥图像定义KLT系数]
D --> E[根据加权模和规则修改系数插入水印]
E --> F[使用遗传算法优化像素值]
F --> G[得到水印图像]
G --> H[结束]
综上所述,无论是关系数据库的水印方案还是图像的脆弱水印算法,都在不断发展和完善,以满足不同场景下对数据完整性和安全性的需求。用户可以根据具体情况选择合适的方法和参数,以达到最佳的应用效果。
关系数据库水印与图像脆弱水印技术研究
超级会员免费看
24

被折叠的 条评论
为什么被折叠?



