绪 论
1.3 研究内容
数字图像比声音、文字等蕴涵更多的信息,因而在多媒体信息中占有举足轻
重的地位,数字图像信息安全是多媒体信息安全的重要组成部分。因此本文以数字图像为基础,研究数字图像信息安全技术。图像信息安全技术包括图像加密和图像认证等。
2
关键技术
2 关键技术
本课题旨在分析数字图像的结构和特点,对数字图像进行加密和解密,即:利用一定的算法对一副图像进行加密以达到不暴露原始图像的目的,然后进行解密以达到恢复原始图像的目的。同时,为了鉴别出图像是否被篡改,要求满足图像认证的要求。认证的目的是检测对图像数据的修改,以确定载体信息的完整性和真实性。可用易碎水印和报文摘要来实现图像认证。虽然只用报文摘要也能达到图像认证的目的,这种方法认证的精确度比较高,但是在传输过程中难免会受到噪声等的干扰,故使用报文摘要可能会达不到预期的目的,同时,因为数字水印也有图像认证的功能,因此,本系统采用报文摘要结合易碎水印来实现该目的。 2.1 报文摘要技术
在信息的安全领域中,对付被动攻击的重要措施是加密,而对付主动攻击中
的篡改和伪造和则要用报文鉴别的方法。报文鉴别是这样一种过程,它使得通信的接收方能够验证所收到的报文的真伪。
近年来,广泛使用报文摘要MD进行报文鉴别。发送端将可变长度的报文m经过报文摘要算法后得出固定长度的报文摘要H(m)。然后对H(m)进行加密,得出EK(H(m)),并将其追加在报文m后面发送出去。接收端将EK(H(m))解密还原为H(m),再将收到的报文进行摘要运算,得出的是否为此 H(m)。如不一样,则可断定收到的报文不是发送端发送的。
报文摘要是多对一的单向散列函数的例子。要做到不可伪造,报文摘要算法必须满足以下两个条件:
(1)任给一个报文摘要值x,若想得到一个报文y使得H(y)=x,则在计算上是不可行的。
(2)若想找到任意两个报文x和y,使得H(x)=H(y),则在计算上是不可行的。
上述的两个条件表明:若(m, H(m))是发送者产生的报文和报文摘要对,则攻击者不可能伪造出另一个报文y,使得y与x具有同样的报文摘要。发送者可以对进行数字签名,使报文成为可检验的和不可抵赖的[2]。
3
关键技术
2.1.1 单向散列函数
要设计一个接收任意长度输入的函数特别是单向散列函数是很困难的事,在
实际中,单向散列函数建立在压缩函数的想法上。给定一长度为m的输入,单向函数输出长为n的散列值。压缩函数的输入是消息分组和文本前一分组的输出。输出是到该点的所有分组的散列,即分组Mi的散列为:
Hi?f?Mi,hi?1? 公式(2-1)
该散列值和下一轮消息分组一起,作为压缩函数下一轮的输入。最后一分组的散列就成为整个消息的散列。散列的信息应该包含整个消息长度的某种二进制表示。这种方法能消除由不同长度的消息可能会具有相同的散列值所带来的潜在的安全问题,这种技术有时称之为增强的MD。 2.1.2 单向散列函数技术
目前的单向散列技术主要有以下几种: (1)Snetru算法
Snetru算法是Rslph Merkle设计的一种单向散列函数,它将任意长度的消息散列成128或256位的值。首先将消息分成为512-m的分组(m是散列值的长度)。若输出是128位散列值,则每分组384位长;若输出是256位散列值,则分组256位长。
(2)N-Hash 算法
N-Hash是由日本电话电报公司的研究人员发明的,他们曾于1990年发明了FEAL。N-Hash使用128位消息分组及一个与FEAL类似的复杂随机函数,并产生128位散列值。每个128位分组的散列是这一分组和上一分组的散列的函数。整个消息的散列是最后一个消息分组的散列。随机初始值I可以是用户设置的任意值(甚至为全零)。
(3)MD4算法
MD4是Ron Rivest设计的单向散列函数,MD表示消息摘要,对于输入消息,算法产生128位散列值(或消息摘要)。
(4)MD5算法
MD5是MD4的改进版,它比MD4更复杂,但设计思想相似,并且也产生128位散列。在一些初始化处理之后,MD5以512位分组来处理输入文本,每一分组又划分为16个32位子分组。算法的输出由四个32位分组组成,将它们级联形成
4
关键技术
一个128位散列值。
(5)安全散列算法
NIST NSA一道设计了与DDS一起使用的安全散列算法SHA,SHA是用于标准的算法,该标准规定一种保证数字签名算法(DSA)安全所必需的安全散列算法(SHA)。当输入是长度小于264位的消息时,SHA产生一称为消息摘要的160位输出,然后将该摘要输入到用于计算消息签名的DSA中。SHA基于的原则与MIT的Ronald L Rivest 教授在设计MD4消息摘要算法时所用的原理相似,并且模仿了该算法。
(6)几种算法的比较
Snefru的安全性取决于可逆分组密码函数E,它用几轮运算使数据随机化。对于轮数少于八的Snefru,已被证明是不安全的,最近,Merkle 建议使用至少八轮的Snefru,但是如此多轮的算法比MD5或SHA要慢得多。N-Hash算法已被证明不安全 。MD5是MD4的改进版,安全性更高,更难于被破译。SHA 算法主要是与数字签名算法一起使用的安全散列算法,与MD4非常相似,主要的改变是添加了扩展转换,并且为产生更快的雪崩效应而将上一轮的输出送至下一轮。本课题使用单向散列函数的目的是为了实现图像认证,故选用安全性较高的MD5算法[4]。 2.2 数字图像技术 2.2.1 数字水印的概念
日程生活中为了鉴别纸币的真伪,人们通常将纸币对着光源,会发现真的纸
币中有清晰的图像信息显示出来,这就是我们熟悉的“水印”。之所以采用水印技术是因为水印有其独特的性质:第一,水印是一种几乎不可见的印记,必须放置于特定环境下才能被看到,不影响物品的使用;第二水印的制作和复制比较复杂,需要特殊的工艺和材料,而且印刷品上的水印很难被去掉。因此水印常也被应用于诸如支票、证书、护照、发票等重要印刷品中,长期以来判定印刷品真伪的一个重要手段就是检验它是否包含水印。
借鉴普通水印的含义和功能,人们采用类似的概念保护诸如数字图像、数字音乐这样的多媒体数据,因此就产生了“数字水印”的概念。所谓“数字水印”是往多媒体数据中添加的某些数字信息,比如将在数码相片中添加摄制者的信息,在数字影碟中添加电影公司的信息等等。与普通水印的特性类似,数字水印在多媒体数据中(如数码相片)也几乎是不可见的,也很难被破坏掉。因此数字水印
5
关键技术
在今天的计算机和互联网时代大有可为[1]。 2.2.2 数字水印的要求
数字水印是往多媒体数据(如图像、声音、视频信号等)中添加某些数字信
息以达到图像认证等作用。在绝大多数的情况下,我们希望添加的信息是不可察觉的,并且希望攻击者在不破坏数据本身质量的情况下无法将水印去掉。同时,在嵌入水印的过程中,我们又不可以破坏原来的文件,即不能让人们发觉水印的存在,因此,不可见性是数字水印的首要要求。
鲁棒性问题对数字水印同样非常重要。有效的数字水印应该能够承受大量不同的物理和几何失真,包括有意的(如恶意攻击)或无意的(如图像压缩,滤波、扫描与复印,噪音污染、尺寸变化等等)。显然在经过这些操作后,鲁棒的水印算法应仍能从水印图像中提取出嵌入的水印或证明水印的存在。若攻击者试图删除水印则将导致多媒体产品的彻底破坏。因此,我们还需要达到鲁棒性的要求。 2.2.3 数字水印的原理及其通用模型
从图像处理的角度看,嵌入水印信号可以视为在强背景下迭加一个弱信号,只要迭加的水印信号强度低于HVS的对比度门限,HVS就无法感到信号的存在。对比度门限受视觉系统的空间、时间和频率特性的影响。因此,通过对原始图像作一定的调整,有可能在不改变视觉效果的情况下嵌入一些信息。从数字通信的角度看,水印嵌入可理解为在一个宽带信道(载体图像)上用扩频通信技术传输一个窄带信号(水印信号)。尽管水印信号具有一定的能量,但分布到信道中任一频率上的能量是难以检测到的。水印的译码(检测)则是一个有噪信道中弱信号的检测问题[3]。
设载体图像为I,水印信号为W,密钥为K,则水印嵌入可用公式(2-2)描述。
Iw?F?I,W,K? 公式(2-2)
式中F表示水印嵌入策略(算法).水印的嵌入过程如图2-1所示。 有两种常用的水印嵌入公式:
ViViw?Vi?aWi
?Vi?1?aWi? 公式(2-3)
w
6