《安徽工程大学信息安全原理及应用第6讲报文鉴别技术.ppt》由会员分享,可在线阅读,更多相关《安徽工程大学信息安全原理及应用第6讲报文鉴别技术.ppt(102页珍藏版)》请在金锄头文库上搜索。
1、第第6讲讲报文鉴别技术报文鉴别技术11.报文鉴别(报文鉴别(消息认证消息认证)的概念)的概念v报文鉴别(报文鉴别(MessageAuthentication)Message:消息、报文。:消息、报文。Authentication:鉴别、认证。鉴别、认证。鉴别:消息的接收者对消息进行的验证。鉴别:消息的接收者对消息进行的验证。v真实性:消息确实来自于其真正的发送者,而非假冒;真实性:消息确实来自于其真正的发送者,而非假冒;v完整性:消息的内容没有被篡改。完整性:消息的内容没有被篡改。6.1概述概述2.消息鉴别的必要性消息鉴别的必要性v网络通信的安全威胁网络通信的安全威胁泄漏泄漏v消息的内容被泄漏
2、没有合法权限的人或程序。消息的内容被泄漏没有合法权限的人或程序。伪造伪造v以假冒源点的身份向网络中插入报文;以假冒源点的身份向网络中插入报文;v例如,攻击者伪造消息发送给目的端,却声称该消息源来自一个已例如,攻击者伪造消息发送给目的端,却声称该消息源来自一个已授权的实体。授权的实体。6.1概述概述2.消息鉴别的必要性消息鉴别的必要性消息篡改消息篡改v内容篡改:以插入、删除、调换或修改等方式篡改消息;内容篡改:以插入、删除、调换或修改等方式篡改消息;v序号篡改:在依赖序号的通信协议中(如序号篡改:在依赖序号的通信协议中(如TCP)等,对通信双方)等,对通信双方报文序号的进行篡改,包括插入、删除和
3、重排序等;报文序号的进行篡改,包括插入、删除和重排序等;v时间篡改:对报文进行延迟或回放,破坏其时间上的完整性。时间篡改:对报文进行延迟或回放,破坏其时间上的完整性。行为抵赖行为抵赖v接收端否认收到某报文;接收端否认收到某报文;v源点否认发过某报文。源点否认发过某报文。6.1概述概述3.鉴别与保密的关系鉴别与保密的关系v是构成信息系统安全的两个方面,但属于两个不同属性上的是构成信息系统安全的两个方面,但属于两个不同属性上的问题:问题:鉴别不能自动提供保密性;鉴别不能自动提供保密性;保密性也不能自然提供鉴别功能。保密性也不能自然提供鉴别功能。6.1概述概述4.报文鉴别系统的功能报文鉴别系统的功能
4、v从层次角度上来看,报文鉴别系统的功能一般可以划分成两个基本的层次。从层次角度上来看,报文鉴别系统的功能一般可以划分成两个基本的层次。 鉴别算法鉴别算法:在较低的层次上,系统需要提供某种报文鉴别函数:在较低的层次上,系统需要提供某种报文鉴别函数f 来产来产生一个用于实现报文鉴别的鉴别符或鉴别码;生一个用于实现报文鉴别的鉴别符或鉴别码;鉴别协议鉴别协议:消息的接收者通过鉴别协议完成对报文合法性的鉴别,底:消息的接收者通过鉴别协议完成对报文合法性的鉴别,底层的鉴别函数通常作为一个原语,为高层鉴别协议的各项功能提供服层的鉴别函数通常作为一个原语,为高层鉴别协议的各项功能提供服务;务;鉴别函数鉴别函数
5、f 是决定鉴别系统特性的主要因素。是决定鉴别系统特性的主要因素。6.1概述概述5.鉴别函数的分类鉴别函数的分类根据鉴别符的生成方式,鉴别函数可以分为以下几类:根据鉴别符的生成方式,鉴别函数可以分为以下几类:v基于报文加密方式的鉴别基于报文加密方式的鉴别:以整个报文的密文作为鉴别符。以整个报文的密文作为鉴别符。v报文鉴别码(报文鉴别码(MAC)方式。方式。v散列函数方式散列函数方式:采用一个公共散列函数,将任意长度的报文采用一个公共散列函数,将任意长度的报文映射为一个定长的散列值,并以散列值作为鉴别符。映射为一个定长的散列值,并以散列值作为鉴别符。6.1概述概述6.2基于报文加密方式的鉴别基于报
6、文加密方式的鉴别v1.对称密钥加密方式对称密钥加密方式:加密的同时提供保密和鉴别。:加密的同时提供保密和鉴别。对称密钥加密方式对称密钥加密方式v问题:问题:B如何判断收到的密文如何判断收到的密文X的合法性?的合法性?v如果消息如果消息M是具有某种语法特征的文本,或者是具有某种语法特征的文本,或者M本身具有一本身具有一定的结构定的结构:B可通过分析可通过分析Y的语法或结构特征。的语法或结构特征。v如果消息如果消息M是完全随机的二进制比特序列:是完全随机的二进制比特序列:B无法判断是否无法判断是否正确恢复密文。正确恢复密文。v解决办法:强制明文使其具有某种结构。解决办法:强制明文使其具有某种结构。
7、这种结构易于识别、不能被复制,同明文相关,并且不依赖于加密。这种结构易于识别、不能被复制,同明文相关,并且不依赖于加密。v解决办法例子解决办法例子:附加报文鉴别结构:附加报文鉴别结构对称密钥加密方式对称密钥加密方式附加报文鉴别结构附加报文鉴别结构v源点源点A对消息明文对消息明文M首先利用校验函数首先利用校验函数F计算出消息的校验码计算出消息的校验码C=F(M);校验码校验码C=F(M)被附加到原始消息明文上,生成新的明文被附加到原始消息明文上,生成新的明文MC;利用密钥利用密钥K对明文对明文MC进行加密,得到密文进行加密,得到密文X=EKMC;将密文将密文X发送给接收端发送给接收端B附加报文鉴
8、别结构附加报文鉴别结构v终点终点B接收密文接收密文 X;用密钥用密钥K解密得到明文解密得到明文Y=DK(X),其中,其中Y被视为附加校验码的消息,被视为附加校验码的消息,即即Y=MC;利用校验函数利用校验函数F 计算明文计算明文Y中消息部分的校验码中消息部分的校验码F(M)。若校验码相。若校验码相匹配,即匹配,即F(M)=C,则可确认报文是可信的,则可确认报文是可信的,M就是原始消息就是原始消息M,并且可以确认该报文就是来自并且可以确认该报文就是来自A的,因为任何随机的比特序列是不可的,因为任何随机的比特序列是不可能具有这种期望的数学关系的。能具有这种期望的数学关系的。v2.公开密钥加密方式公
9、开密钥加密方式:提供报文鉴别和签名功能:提供报文鉴别和签名功能,不提供保,不提供保密功能。密功能。MEMMMEDDEKUb(M)EKRa(M)MEEDDMEKRa(M)EKRa(M)EKUb(EKRa(M)6.3报文鉴别码(消息认证码)报文鉴别码(消息认证码)v另一种可行的消息鉴别技术是使用报文或消息鉴别码另一种可行的消息鉴别技术是使用报文或消息鉴别码(messageauthenticationcode,MAC):核心是一个类似):核心是一个类似于加密的算法于加密的算法CK()。vCK()在密钥的作用下,以报文内容作为输入,其输出值是一在密钥的作用下,以报文内容作为输入,其输出值是一个较短的定
10、长数据分组,也就是个较短的定长数据分组,也就是MAC,即:,即:MAC CK(M)vMAC被附加在报文中传输,用于消息的合法性鉴别。被附加在报文中传输,用于消息的合法性鉴别。1.采用报文鉴别码的鉴别方式采用报文鉴别码的鉴别方式报文鉴别码的功能报文鉴别码的功能v如果如果B端通过比较发现端通过比较发现MAC匹配,则可确信报文匹配,则可确信报文M没有被篡改没有被篡改过过(完整性)(完整性)若攻击者更改报文内容而未更改若攻击者更改报文内容而未更改MAC,则接收者计算出的,则接收者计算出的MAC将不同将不同于接收到的于接收到的MAC;由于攻击者不知道密钥由于攻击者不知道密钥K,故他不可能计算出一个与更改
11、后报文相对应,故他不可能计算出一个与更改后报文相对应MAC值。值。v接收者接收者B也能够确信报文也能够确信报文M是来自发送者是来自发送者A的的(真实性)(真实性)只有只有A了解密钥了解密钥K,也只有,也只有A能够计算出报文能够计算出报文M所对应的正确的所对应的正确的MAC值。值。v报文认证码的基本用法报文认证码的基本用法1AB:MCk(M)提供认证,因仅提供认证,因仅A和和B共享共享K;MMCC报文鉴别码的功能报文鉴别码的功能v报文认证码的基本用法报文认证码的基本用法2AB:Ek2(MCk(M)提供认证,因仅提供认证,因仅A和和B共享共享K1;提供保密,因;提供保密,因仅仅A和和B共享共享K2
12、;MCCED报文鉴别码的功能报文鉴别码的功能v报文认证码的基本用法报文认证码的基本用法3AB:Ek2(M)Ck1(Ek2(M)提供认证,因仅提供认证,因仅A和和B共享共享K1;提供保;提供保密,因仅密,因仅A和和B共享共享K2;MCCED报文鉴别码的功能报文鉴别码的功能2.MAC函数函数Vs加密函数加密函数v两者类似,都需要密钥。两者类似,都需要密钥。vMAC函数可以是一个单向函数,而加密函数必须是可逆的。函数可以是一个单向函数,而加密函数必须是可逆的。MAC鉴别函数的这个数学性质使得它比加密函数更不易被破解。鉴别函数的这个数学性质使得它比加密函数更不易被破解。vMAC算法不能提供信息的保密性
13、算法不能提供信息的保密性,保密性可以通过对消息加,保密性可以通过对消息加密来提供。密来提供。两种方式:两种方式:1.先计算先计算MAC再加密;再加密;2.先加密再计算先加密再计算MAC。需要两个独立的密钥。需要两个独立的密钥。v基于基于MAC消息鉴别方式其鉴别过程独立于加密和解密过程。消息鉴别方式其鉴别过程独立于加密和解密过程。与基于加密的鉴别方式是不同的;与基于加密的鉴别方式是不同的;鉴别函数与保密函数的分离能提供结构上的灵活性。鉴别函数与保密函数的分离能提供结构上的灵活性。vMAC方式更适合不需要加密保护的数据的鉴别。方式更适合不需要加密保护的数据的鉴别。在某些应用中,鉴别报文的真实性比报
14、文的保密性更重要。在某些应用中,鉴别报文的真实性比报文的保密性更重要。2.MAC函数函数Vs加密函数加密函数3.一种实用的一种实用的MAC算法算法v十进制移位加十进制移位加MAC算法算法vSievi于于1980年向年向ISO提出一项消息认证法的建议,提出一项消息认证法的建议,Davies等等1984这种认证法称为十进制移位加算法这种认证法称为十进制移位加算法(DecimalShiftandAddAlgorithm)简记为简记为DSAA,它特别适用于金融支付中的数值消息交它特别适用于金融支付中的数值消息交换业务,消息按十位十进制数字分段处理不足十位时在右边以换业务,消息按十位十进制数字分段处理不
15、足十位时在右边以0补补齐。下面举例说明齐。下面举例说明,令令:x1=1583492637是要认证的第一组消息,是要认证的第一组消息,b1=5236179902和和b2=4893524771为为认证用的密钥认证用的密钥DSAA算法是以算法是以b1和和b2并行对并行对x1进行运算进行运算v先算先算x1+b1,x1+b2(mod1010),接着根据接着根据b2的第一位数值的第一位数值4对对x1+b1循环右移循环右移4位记作位记作R(4)(x1+b1),再与,再与(x1+b1)相加得相加得R(4)(x1+b1)+(x1+b1)P1(mod1010)v类似地右路在类似地右路在b1的第一位数值的第一位数值
16、5控制下运算结果为控制下运算结果为R(5)(x1+b2)+(x1+b2)=Q1(mod1010)十进制移位加十进制移位加MAC算法算法表表左路左路右路右路第第b1=5236179902b2=4893224771一一+x1=1583492637+x1=1583492637轮轮b1+x1=6819672539b2+x1=6477017408+R(4)(b1+x1)=2539681967+R(5)(b2+x1)=1740864770P1=9359354506Q1=8217882178十进制移位加十进制移位加MAC算法算法第第P1=9359354506Q1=8217882178+x2=52835869
17、00+x2=5283586900二二P1+x2=4642941406Q1+x2=3501469078轮轮+R(8)(P1+x2)=4294140646+R(9)(Q1+x2)=5014690783P2=8937082052Q2=8516159861.十进制移位加十进制移位加MAC算法算法第第P10=7869031447Q10=3408472104十十P10+Q10=1277403551(mod1010)轮轮403551+1277v认证符认证符404828(mod1010)v将第二组消息将第二组消息x2=528358586900分别与分别与P1和和Q1相加其结果又分别以相加其结果又分别以P1和和
18、Q1的第一位控制循环移位后进行相加得到的第一位控制循环移位后进行相加得到P2和和Q2依此类推直至进行十轮后依此类推直至进行十轮后得得P10和和Q10计算计算P10+Q10(mod1010),并将并将结果的后结果的后6位数与前位数与前4位数在位数在(mod1010)下相加得下相加得6位认证符。位认证符。十进制移位加十进制移位加MAC算法算法设计设计MAC函数的要点函数的要点v如果攻击者得到一个如果攻击者得到一个M及其对应的及其对应的MAC,那么他试图构造,那么他试图构造一个消息一个消息M使得使得MAC=MAC在计算上应该是不可行的。在计算上应该是不可行的。vMAC函数应是均匀分布的,即随机选择消
19、息函数应是均匀分布的,即随机选择消息M和和M,MAC=MAC的概率应是的概率应是2-n,其中,其中n是是MAC的位数。的位数。v令令M 为为M的某些已知变换,即:的某些已知变换,即:M=f (M),应保证在这,应保证在这种情况下,种情况下,MAC=MAC的概率为的概率为2-n。4.基于基于DES的报文鉴别码的报文鉴别码v有两种基于有两种基于DES的认证算法,一种按的认证算法,一种按CFB模式,一种按模式,一种按CBC模式运行。在模式运行。在CBC模式下,消息按模式下,消息按64bit分组,不足时以分组,不足时以0补补齐,送入齐,送入DES系统加密,但不输入密文,只取加密结果最左系统加密,但不输
20、入密文,只取加密结果最左边的边的r位作为认证符。位作为认证符。基于基于DES的报文鉴别码的报文鉴别码v采用密码分组链接(采用密码分组链接(CBC)方式的)方式的DES迭代算法,以迭代算法,以0为初始化值。为初始化值。v具体过程:具体过程:被鉴别的报文数据被划分为连续的被鉴别的报文数据被划分为连续的64比特的分段:比特的分段:X1,X2,XN 。若必要,需用若必要,需用0来填充来填充XN的右边,以形成的右边,以形成64比特的数据块。比特的数据块。数据鉴别代码(数据鉴别代码(DAC)的计算方式如下:)的计算方式如下:Y0=0Yi=EK(Xi+Yi-1)i=1,2,N ,K为为56位的密钥位的密钥数
21、据鉴别代码(数据鉴别代码(DAC)就可用算法的最终输出)就可用算法的最终输出YN或或YN最左边的最左边的r比特比特构成(构成(16r64)。)。vr取大小可由通信双方约定。美国联邦电信建议采用取大小可由通信双方约定。美国联邦电信建议采用24bit见见FTSC-1026,而美国金融系统采用而美国金融系统采用32bitABA,198664bit寄存器寄存器DES选选左边左边k位位选选左边左边r位位As+yixi利用工作于利用工作于CFB模式下模式下DESk1.散列函数散列函数v散列函数散列函数(HashFunction):哈希函数、摘要函数哈希函数、摘要函数v若对相当长的文件通过签名认证怎么办若对
22、相当长的文件通过签名认证怎么办?如一个合法文件有数如一个合法文件有数兆字节长兆字节长,若按若按160比特分划成一块一块用相同的密钥独立地签比特分划成一块一块用相同的密钥独立地签每一个块然而这样太慢。每一个块然而这样太慢。v解决办法引入可公开的密码散列函数解决办法引入可公开的密码散列函数(Hashfunction)。它将取。它将取任意长度任意长度的消息做自变量,结果产生的消息做自变量,结果产生规定长度规定长度的消息摘要,如的消息摘要,如使用数字签名标准使用数字签名标准DSS消息摘要为消息摘要为160比特,比特,然后签名消息摘然后签名消息摘要。要。6.3 散列函数报文鉴别散列函数报文鉴别v对数字签
23、名来说,散列函数对数字签名来说,散列函数h是这样使用的:是这样使用的:消息:消息:x任意长任意长消息摘要:消息摘要:Z=h(x)160bits签名:签名:y=sigk(Z)320bits(签名一个消息摘要签名一个消息摘要)验证签名:验证签名:(x,y),其中其中y=sigk(h(x)使用公开的散列函数使用公开的散列函数h,重构重构Z=h(x)然后检验然后检验Verk(Z,y),来看来看Z?=Zv消息摘要是报文中所有比特的函数值。消息摘要是报文中所有比特的函数值。v散列函数是单向函数,是消息认证码的一种变形。散列函数是单向函数,是消息认证码的一种变形。Hash码用于消息认证的各种方法码用于消息认
24、证的各种方法v用对称密码对消息及附加在其后的用对称密码对消息及附加在其后的hash码加密。由于只有码加密。由于只有A和和B共享密钥,所以消息一定是来自共享密钥,所以消息一定是来自A且未被修改过。且未被修改过。hash码提供了认证所需的结构或冗余,并且由于该方法是对整个码提供了认证所需的结构或冗余,并且由于该方法是对整个消息和消息和hash码加密,所以也提供了保密性。码加密,所以也提供了保密性。Hash码用于消息认证的各种方法码用于消息认证的各种方法v用对称密码仅对用对称密码仅对hash加密。加密。hash函数和加密函数的合成函数函数和加密函数的合成函数即是即是MAC。也就是说。也就是说EKH(
25、M)是变长消息是变长消息M和密钥和密钥K的函数,的函数,它产生定长的输出值,若攻击者不知道密钥,则他无法得出它产生定长的输出值,若攻击者不知道密钥,则他无法得出这个值。这个值。Hash码用于消息认证的各种方法码用于消息认证的各种方法v用公钥密码和发送方的私钥仅对用公钥密码和发送方的私钥仅对hash码加密,这种方法可提码加密,这种方法可提供认证,由于只有发送方可以产生加密后的供认证,由于只有发送方可以产生加密后的hash码,所以也码,所以也提供了数字签名。提供了数字签名。v若既希望保证保密性又希望有数字签名,则先用发送方的私若既希望保证保密性又希望有数字签名,则先用发送方的私钥对钥对hash码加
26、密,再用对称密码中的密钥对消息和上述加密码加密,再用对称密码中的密钥对消息和上述加密结果进行加密。这种技术比较常用。结果进行加密。这种技术比较常用。Hash码用于消息认证的各种方法码用于消息认证的各种方法v该方法使用该方法使用hash函数但不使用加密函数。假定通信双方共享函数但不使用加密函数。假定通信双方共享公共的秘密值公共的秘密值S,A将将M和和S联结后联结后再计算再计算hash值,并将其附值,并将其附于于M后。由于后。由于B也知道也知道S,所以,所以B可以计算可以计算hash值,并验证其值,并验证其正确性。正确性。Hash码用于消息认证的各种方法码用于消息认证的各种方法v如果对整个消息和如
27、果对整个消息和hash码加密,则(码加密,则(e)中的方法可提供保)中的方法可提供保密性。密性。Hash码用于消息认证的各种方法码用于消息认证的各种方法2.基本的散列函数报文鉴别基本的散列函数报文鉴别3.仅对散列码进行加密的鉴别方案仅对散列码进行加密的鉴别方案4.散列函数的特性散列函数的特性散列函数散列函数H()的输入可以是任意大小的数据块。的输入可以是任意大小的数据块。散列函数散列函数H()的输出是定长。的输出是定长。计算需要相对简单,易于用软件或硬件实现。计算需要相对简单,易于用软件或硬件实现。单向性:对任意散列码值单向性:对任意散列码值h,要寻找一个,要寻找一个M,使,使H(M)=h在在
28、计算上是不可行的。计算上是不可行的。弱抗冲突性(弱抗冲突性(weakcollisionresistance):对任何给定的报文):对任何给定的报文M,若要寻找不等于,若要寻找不等于M的报文的报文M1使使H(M1)H(M)在计算上在计算上是不可行的。该性质能够防止伪造是不可行的。该性质能够防止伪造。4.散列函数的特性散列函数的特性强抗冲突性(强抗冲突性(strongecollisionresistance):要找到两个报文):要找到两个报文M和和N使使H(M)H(N)在计算上是不可行的。该性质指出了散在计算上是不可行的。该性质指出了散列算法对列算法对“生日攻击生日攻击”的抵抗能力。的抵抗能力。v
29、前三个条件是前三个条件是hash函数实际应用于消息认证中所必须满足的;函数实际应用于消息认证中所必须满足的;第四个条件是指由消息很容易计算出第四个条件是指由消息很容易计算出hash码,但由码,但由hash码不码不能计算出相应的消息。第五条消息可以保证,不能找到与给能计算出相应的消息。第五条消息可以保证,不能找到与给定消息具有相同定消息具有相同hash值的另一消息,因此可以在使用对值的另一消息,因此可以在使用对hash码加密的方法中防止伪造。第六条性质涉及码加密的方法中防止伪造。第六条性质涉及hash函数抗生日函数抗生日攻击这类攻击的能力强弱问题。攻击这类攻击的能力强弱问题。Hash函数应用函数
30、应用v在线投标在线投标:先提交:先提交h(A)、h(B)、h(C),避免对手提前知道价,避免对手提前知道价格,当都收到再公开格,当都收到再公开A、B、C;v清理垃圾邮件:清理垃圾邮件:h(M,R,T)5.简单散列函数的构造简单散列函数的构造v1.纵向冗余检验纵向冗余检验把报文数据划分为若干把报文数据划分为若干n比特定长分组的比特定长分组的B1,B2,Bm。散列函数值散列函数值C的每一个位实际上是各数据分组对应位的一个简单的奇的每一个位实际上是各数据分组对应位的一个简单的奇偶检验偶检验,即,即其中,其中,i=1,2,n , m为为n位输入块的个数,位输入块的个数,C(i)为为C的第的第i位。位。
31、bij为第为第j块的第块的第i位。位。5.简单散列函数的构造简单散列函数的构造v2.循环移位循环移位C0=0初始值。初始值。Ci=ROR(Ci-1) Mi i =(1.n)vROR()表示循环右移表示循环右移1位。位。H(M)=Cn。将输入数据完全随机化,掩盖了数据中规则化的信息。将输入数据完全随机化,掩盖了数据中规则化的信息。5.简单散列函数的构造简单散列函数的构造v3.密码分组链接(密码分组链接(CBC),不用密钥,不用密钥v算法过程:算法过程:将报文将报文M划分成固定长度的分组划分成固定长度的分组M1,M2,MN ;采用类似采用类似DES加密的算法来计算散列码加密的算法来计算散列码C:H
32、0为初始值为初始值Hi=EMi (Hi-1)C=HN (散列码)(散列码)6.安全散列函数的一般结构安全散列函数的一般结构v一个迭代的散列函数。一个迭代的散列函数。v将输入报文分为将输入报文分为L个定长个定长b比特的分组比特的分组Y0,Y1,YL-1。v最后一个分组需要填充至最后一个分组需要填充至b比特。最后一个分组包含了散列比特。最后一个分组包含了散列函数函数H()的输入总长度。的输入总长度。v散列算法中重复使用了一个压缩函数散列算法中重复使用了一个压缩函数f,f ()的输人是前一轮的输人是前一轮的的n比特输出(称为链接变量)以及当前的比特输出(称为链接变量)以及当前的b比特分组,输出比特分
33、组,输出为为n比特的链接变量值。比特的链接变量值。6.安全散列函数的一般结构安全散列函数的一般结构vCV0n比特的链接变量初始值比特的链接变量初始值vCVif (CVi-1,Y i-1)1i LvH(M)CVL6.4 典型的散列算法典型的散列算法MD5消息摘要算法消息摘要算法vMD表示消息摘要表示消息摘要(MessageDigest),单向散列函数输入:,单向散列函数输入:给定一任意长度的消息给定一任意长度的消息输出:输出:长为长为m的散列值。的散列值。v压缩函数的输入:压缩函数的输入:消息分组和前一分组的输出消息分组和前一分组的输出(对第一个函数需初始化向量对第一个函数需初始化向量IV);输
34、出:输出:到该点的所有分组的散列,即分组到该点的所有分组的散列,即分组Mi的散列为的散列为hi=f (Mi,hi1)v循环:循环:该该散散列列值值和和下下一一轮轮的的消消息息分分组组一一起起作作为为压压缩缩函函数数下下一一轮轮的的输输入入,最最后后一分组的散列就是整个消息的散列。一分组的散列就是整个消息的散列。1.MD5消息摘要算法消息摘要算法6.4 典型的散列算法典型的散列算法MD5算法五个步骤:算法五个步骤:1)附加填充位附加填充位2)附加长度附加长度3)初始化初始化MD缓冲区缓冲区4)按按512位的分组处理位的分组处理5)输出输出1.1安全散列函数安全散列函数MD51.填充:填充后使报文
35、长度加上填充:填充后使报文长度加上64比特是比特是512比特的整数倍,即比特的整数倍,即填充后的报文长度填充后的报文长度K对对512取模等于取模等于448(Kmod512=448)。)。填充的比特模式为第一位为填充的比特模式为第一位为1其余各位为其余各位为0,即,即1000。2.附加长度值:将原报文长度的附加长度值:将原报文长度的64比特表示附加在填充后的报比特表示附加在填充后的报文最后。报文长度是填充前原始报文的长度。文最后。报文长度是填充前原始报文的长度。若报文长度大若报文长度大于于264,则使用该长度的低,则使用该长度的低64位位。报文被划分成。报文被划分成L个成个成512比特比特的分组
36、的分组Y0,Y1,YL-1。扩展后报文长度等于。扩展后报文长度等于512L位。位。3.初始化消息摘要(初始化消息摘要(MD)缓存器。)缓存器。MD5使用使用128比特的缓存比特的缓存来存放算法的中间结果和最终的散列值。这个缓存由来存放算法的中间结果和最终的散列值。这个缓存由4个个32比特的寄存器比特的寄存器A,B,C,D构成。构成。MD5寄存器的初始值为:寄存器的初始值为:A0x67452301B0xefcdab89C0x98badcfeD0x103254761.1安全散列函数安全散列函数MD51.1安全散列函数安全散列函数MD5寄存器寄存器0123A01234567B89abcdefCfed
37、cba98D765432104.处理每一个处理每一个512比特的报文分组。处理算法的核心比特的报文分组。处理算法的核心MD5的的压缩函数压缩函数HMD5。HMD5压缩函数由压缩函数由4个结构相似循环组成。个结构相似循环组成。每次循环由一个不同的原始逻辑函数(分别以每次循环由一个不同的原始逻辑函数(分别以F,G,H和和I表示)处理一个表示)处理一个512比特的分组比特的分组Yq 。每个循环都以当前的。每个循环都以当前的正在处理的正在处理的512比特分组比特分组Yq和和128比特缓冲值比特缓冲值ABCD为输入,为输入,然后更新缓冲内容。在循环时还需要使用一个然后更新缓冲内容。在循环时还需要使用一个
38、64位元素的位元素的常数表常数表T。1.1安全散列函数安全散列函数MD5v四轮的操作类似,每轮四轮的操作类似,每轮16次:次:v用用到到一一个个有有64个个元元素素的的表表T1.64,Ti=232abs(sin(i),i的单位为弧度。的单位为弧度。16次次1.1安全散列函数安全散列函数MD5v四四轮轮操操作作的的不不同同之之处处在在于于每每轮轮使使用用的的非非线线性性函函数数不不同同,分分别别为为(其其输输入入/输出均为输出均为32位字位字):F(X,Y,Z)=(XY)(X)Z)G(X,Y,Z)=(XZ)(Y(Z)H(X,Y,Z)=XYZI(X,Y,Z)=Y(X(Z)其中,其中,表示按位与;表
39、示按位与;表示按位或;表示按位或;表示按位反;表示按位反;表示按位异或。表示按位异或。1.1安全散列函数安全散列函数MD5vMD5中每一轮要对缓冲区中每一轮要对缓冲区ABCD进行进行16步迭代,每步迭代形为:步迭代,每步迭代形为:ab+(a+g(b,c,d)+Xk+Tisv其中:其中:a,b,c,d:缓冲区的四个字,它按一定次序随迭代步变化;:缓冲区的四个字,它按一定次序随迭代步变化;g:基本逻辑函数:基本逻辑函数F,G,H,I之一之一s:32位的变量循环左移位的变量循环左移s位位Xk:Mq*16+k(消息第(消息第q个个512位分组的第位分组的第k个个32位字)位字)Ti:矩阵中矩阵中T的第
40、的第i个个32位字位字+:模:模232加法加法1.1安全散列函数安全散列函数MD55.输出:最后第输出:最后第L个阶段产生的输出就是个阶段产生的输出就是128比特的报文摘要,比特的报文摘要,结果保存在缓冲器结果保存在缓冲器ABCD中。第中。第L个分组的输出即是个分组的输出即是128位的位的消息摘要。消息摘要。v特点:特点:MD5算法的运算均为基本运算,比较容易实现且速度很快。算法的运算均为基本运算,比较容易实现且速度很快。1.1安全散列函数安全散列函数MD5vMD5还广泛用于加密和解密技术上,在很多操作系统中,用还广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以户的密码是以MD5值(
41、或类似的其它算法)的方式保存的,值(或类似的其它算法)的方式保存的,用户用户Login的时候,系统是把用户输入的密码计算成的时候,系统是把用户输入的密码计算成MD5值,值,然后再去和系统中保存的然后再去和系统中保存的MD5值进行比较,而系统并不值进行比较,而系统并不“知知道道”用户的密码是什么。用户的密码是什么。RonRivest的贡献的贡献vMD2、MD4和和MD5都是由都是由RonRivest开发的:开发的:vMD2是为是为8位计算机系统设计的;位计算机系统设计的;vMD4开始是为开始是为32位计算机系统开发的,适合小数在前的系统(位计算机系统开发的,适合小数在前的系统(80x86和和pe
42、ntium),),1990开发,简单易于编程,现在被认为是不安全的:开发,简单易于编程,现在被认为是不安全的:用用3轮每轮轮每轮16步,用了三个非线性函数,步,用了三个非线性函数,没有没有Ti常量加常量加每轮没有叠加上轮的结果;每轮没有叠加上轮的结果;vRSA实验室将实验室将MD5描述为描述为“系有安全带的系有安全带的MD4”,虽然比,虽然比MD4慢,慢,但但却被认为是安全的,对大数在前的系统性能较好。却被认为是安全的,对大数在前的系统性能较好。vSHA也是以也是以MD4以基础设计的。以基础设计的。v举例举例:求字符串:求字符串“abc”的的MD5散列值:散列值:abc的二进制表示为的二进制表
43、示为011000010110001001100011。v(1)填充消息(补位):消息长填充消息(补位):消息长l=24,先填充先填充1位位1,然后填,然后填充充423位位0。原始信息:原始信息:011000010110001001100011补位第一步:补位第一步:0110000101100010011000111首先补一个首先补一个“1”补位第二步:补位第二步:01100001011000100110001110.0然后补然后补423个个“0”MD5算法实例算法实例v(2)补充长度:所谓的补长度是将补充长度:所谓的补长度是将原始数据的长度原始数据的长度补到已经进行了补位操作补到已经进行了补位
44、操作的消息后面。通常用一个的消息后面。通常用一个64位的数据来表示原始消息的长度。如果消息长位的数据来表示原始消息的长度。如果消息长度不大于度不大于264,那么第一个字就是,那么第一个字就是0。在进行了补长度的操作以后,整个。在进行了补长度的操作以后,整个消息就变成下面这样了(消息就变成下面这样了(16进制格式)进制格式)。用消息长用消息长24,即,即0x0000000000000018填充,则:填充,则:M0=61626380M1=00000000M2=00000000M3=00000000M4=00000000M5=00000000M6=00000000M7=00000000M8=0000
45、0000M9=00000000M10=00000000M11=00000000M12=00000000M13=00000000M14=00000000M15=00000018MD5算法实例算法实例v(3)初始化:初始化:A:01234567B:89abcdefC:fedcba98D:76543210v(4)主循环:本例只有一个字块,进行处理。主循环:本例只有一个字块,进行处理。v(5)输出(输出(128位):位):消息摘要消息摘要=900150983cd24fb0d6963f7d28e17f72MD5算法实例算法实例2.安全散列函数安全散列函数SHA-1v安全散列算法(安全散列算法(SHA)是
46、由美国国家标准和技术协会)是由美国国家标准和技术协会(NIST)提出的。)提出的。1993年作为美国联邦信息标准;年作为美国联邦信息标准;1995年又发布了其修订版年又发布了其修订版SHA-1;SHA算法也是基于算法也是基于MD4的,其设计也是在的,其设计也是在MD4基础上改进而成的;基础上改进而成的;SHA-1算法允许的最大输入报文的长度算法允许的最大输入报文的长度不超过不超过264比特比特;输出输出160比特的报文摘要。比特的报文摘要。图图SHA1算法算法2.1SHA-1算法的处理步骤算法的处理步骤v2)初始化缓冲区初始化缓冲区SHA要用到两个缓冲区,均有五个要用到两个缓冲区,均有五个32
47、位的寄存器。位的寄存器。第一个缓冲区:第一个缓冲区:A、B、C、D、E;第二个缓冲区:第二个缓冲区:H0、H1、H2、H3、H4。运算过程中还用到一个标记为运算过程中还用到一个标记为W0、W1、W79的的80个个32位字序列位字序列和一个单字的缓冲区和一个单字的缓冲区TEMP。在运算之前,初始化在运算之前,初始化Hj:vH0=0x67452301vH1=0xEFCDAB89vH2=0x98BADCFEvH3=0x10325476vH4=0xC3D2E1F0v1)填充消息填充消息将消息填充为将消息填充为512位的整数倍,填充方法和位的整数倍,填充方法和MD5完全相同。完全相同。2.1SHA-1算
48、法的处理步骤算法的处理步骤v3)按按512位的分组处理输入消息位的分组处理输入消息SHA运算主循环包括四轮,每轮运算主循环包括四轮,每轮20次操作。次操作。逻逻辑辑函函数数序序列列f0、f1、f79,每每个个逻逻辑辑函函数数的的输输入入为为三三个个32位字,输出为一个位字,输出为一个32位字:位字:ft(B,C,D)=(BC)(BD) (0t19)ft (B,C,D)=BCD(20t39)ft(B,C,D)=(BC)(BD)(CD)(40t59)ft (B,C,D)=BCD (60t79)2.1SHA-1算法的处理步骤算法的处理步骤还用到常数字序列还用到常数字序列K0、K1、K79:Kt=0x
49、5A827999 (0t19)Kt=0x6ED9EBA1(20t39) Kt =0x8F1BBCDC(40t59)Kt =0xCA62C1D6(60t79)2.1SHA-1算法的处理步骤算法的处理步骤SHA算法按如下步骤处理每个字块算法按如下步骤处理每个字块Mi:(1)把把Mi分为分为16个字个字W0、W1、W15,其中,其中,W0为最左边的字。为最左边的字。(2)Wt的前的前16个值即时当前分组的个值即时当前分组的16个字。个字。Wt=Xt(3)fort=16to79doletWt=(Wt3Wt8Wt14Wt16)1(4)LetA=H0,B=H1,C=H2,D=H3,E=H4(5)fort=
50、0to79doTEMP=(A5)+ft(B,C,D)+E+Wt+Kt;E=D;D=C;C=(B30);B=A;A=TEMP;(6)LetH0=H0+A,H1=H1+B,H2=H2+C,H3=H3+D,H4=H4+E2.1SHA-1算法的处理步骤算法的处理步骤2.1SHA-1算法的压缩函数算法的压缩函数SHA-1压缩函数第压缩函数第t个步骤的操作过程个步骤的操作过程v4)输出输出在在处处理理完完Mn后后,160位位的的消消息息摘摘要要为为H0、H1、H2、H3、H4级联的结果。级联的结果。2.1SHA-1算法的处理步骤算法的处理步骤v举例举例 求字符串求字符串“abc”的的SHA1散列值:散列值
51、:abc的二进制表示为的二进制表示为011000010110001001100011。v(1)填填充充消消息息:消消息息长长l=24,先先填填充充1位位1,然然后后填填充充423位位0,再用消息长再用消息长24,即,即0x0000000000000018填充。填充。v(2)初始化:初始化:H0=0x67452301H1=0xEFCDAB89H2=0x98BADCFEH3=0x10325476H4=0xC3D2E1F0SHA-1算法实例算法实例v(3)主循环:处理消息字块主循环:处理消息字块1(只有只有1个个),分成,分成16个字计算:个字计算:W0=61626380W1=00000000W2=
52、00000000W3=00000000W4=00000000W5=00000000W6=00000000W7=00000000W8=00000000W9=00000000W10=00000000W11=00000000W12=00000000W13=00000000W14=00000000W15=00000018SHA-1算法实例算法实例v处理完后,处理完后,Hi的值为:的值为:H0=67452301+42541B35=A9993E36H1=EFCDAB89+5738D5E1=4706816AH2=98BADCFE+21834873=BA3E2571H3=10325476+681E6DF6=7
53、850C26CH4=C3D2E1F0+D8FDF6AD=9CD0D89Dv(4)输出:输出:消息摘要消息摘要=A9993E364706816ABA3E25717850C26C9CD0D89DSHA-1算法实例算法实例vSHA1与与MD5的比较的比较vSHA1是在是在MD4的基础上开发的。的基础上开发的。表表3-1SHA-1与与MD5的比较的比较SHA-1MD5Hash值长度值长度160bit128bit分组处理长分组处理长512bit512bit步数步数80(420)64(416)最大消息长最大消息长264bit不限不限非线性函数非线性函数3(第第2、4轮相同轮相同)4常数个数常数个数4642
54、.2RIPEMD-160散列算法散列算法vRIPEMD-160算法是由欧洲的研究人员提出的。算法是由欧洲的研究人员提出的。v使用两条分支,分别包含使用两条分支,分别包含5个循环进行并行处理,以便增加个循环进行并行处理,以便增加在循环间寻找冲突的复杂性。在循环间寻找冲突的复杂性。v两条线在本质上采用相同的逻辑,但在两条分支中引入了尽两条线在本质上采用相同的逻辑,但在两条分支中引入了尽可能多的差异,使两条并行线的组合具有更强的抵御攻击的可能多的差异,使两条并行线的组合具有更强的抵御攻击的能力。能力。v允许任意长度的报文的输入,输出允许任意长度的报文的输入,输出160比特的报文摘要。比特的报文摘要。
55、RIPEMD-160散列算法描述散列算法描述1.对报文进行填充,此步骤与对报文进行填充,此步骤与MD5的操作相同。的操作相同。2.附加长度值,此步骤也与附加长度值,此步骤也与MD5算法相同算法相同3.初始化消息摘要(初始化消息摘要(MD)缓存器。使用)缓存器。使用160比特的缓存来存放比特的缓存来存放算法的中间结果和最终的散列值。这个缓存由算法的中间结果和最终的散列值。这个缓存由5个个32比特的比特的寄存器寄存器A,B,C,D,E构成。构成。RIPEMD-160散列算法描述散列算法描述4.处理报文分组序列。处理算法的核心是一个处理报文分组序列。处理算法的核心是一个10个循环的压缩个循环的压缩函
56、数模块,其中每个循环由函数模块,其中每个循环由16个处理步骤组成。在每个循环个处理步骤组成。在每个循环中使用不同的原始逻辑函数,分别表示为中使用不同的原始逻辑函数,分别表示为f1,f2,f3,f4和和f5。5.在最后一个循环结束后,两条路线的计算结果在最后一个循环结束后,两条路线的计算结果ABCDE、ABCDE以及链接变量的初始值以及链接变量的初始值CVq经过一次相加运算产经过一次相加运算产生最终的输出生最终的输出CVq+1 2.3RIPEMD-160算法的压缩函数算法的压缩函数对对MD5的攻击的攻击v直接攻击直接攻击穷举可能的明文去产生一个和穷举可能的明文去产生一个和H(m)相同的散列结果相
57、同的散列结果,如果攻如果攻击者有一台每秒尝试击者有一台每秒尝试1,000,000,000条明文的机器需要算约条明文的机器需要算约1022年,同时兴许会同时发现年,同时兴许会同时发现m本身。本身。v生日攻击生日攻击只是用概率来指导散列冲突的发现,对于只是用概率来指导散列冲突的发现,对于MD5来说如果尝试来说如果尝试264条明文,那么它们之间至少有一对发生冲突的概率就是条明文,那么它们之间至少有一对发生冲突的概率就是50。一台上面谈到的机器平均需要运行。一台上面谈到的机器平均需要运行585年才能找到一对,年才能找到一对,而且并不能马上变成实际的攻击成果。而且并不能马上变成实际的攻击成果。对对MD5
58、的攻击的攻击v其他攻击其他攻击微分攻击被证明对微分攻击被证明对MD5的一次循环是有效的,但对全部的一次循环是有效的,但对全部4次循次循环无效。环无效。(微分攻击是通过比较分析有特定区别的明文在通过加密后的微分攻击是通过比较分析有特定区别的明文在通过加密后的变化传播情况来攻击加密体系的变化传播情况来攻击加密体系的)还有一种成功的还有一种成功的MD5攻击,不过它是对攻击,不过它是对MD5代码本身做了手代码本身做了手脚,是一种脚,是一种crack而不是而不是hack更算不上更算不上cryptanalysis了。了。三种算法的安全性三种算法的安全性v强行攻击:强行攻击:MD5:2128。SHA-1:2
59、160。RIPEMD-160:2160。v密码分析:密码分析:MD5:最弱。最弱。SHA-1:比:比MD5更能抗密码分析。更能抗密码分析。RIPEMD-160:比比MD5更能抵抗对强抗冲突性的生日攻击。更能抵抗对强抗冲突性的生日攻击。美国美国Hash函数标准函数标准SHA-1的破译的破译2005年年2月月14日,王小云、于红波和尹依群等人完成了日,王小云、于红波和尹依群等人完成了SHA-1的破译。在的破译。在SHA-1的破译工作中,王小云等人采用的破译工作中,王小云等人采用MD5的破译技术,成功解决了的破译技术,成功解决了SHA-1差分分析中的一种不可能差分差分分析中的一种不可能差分问题,这是
60、问题,这是SHA类算法(类算法(SHA-1,SHA-0)分析技术的难点与瓶)分析技术的难点与瓶颈,并解决了难以确定的满足碰撞路线的明文条件以及明文修颈,并解决了难以确定的满足碰撞路线的明文条件以及明文修改技术。这些关键技术的解决最终导致了改技术。这些关键技术的解决最终导致了SHA-1全算法的破译。全算法的破译。美国美国Hash函数标准函数标准SHA-1的破译的破译2005年年2月月15日,在美国洛杉矶召开的万人参加的日,在美国洛杉矶召开的万人参加的RSA年会上,年会上,Rivest、Shamir和和Diffie等等5位世界顶级密码学家首次宣布了位世界顶级密码学家首次宣布了3位中国研究人位中国研
61、究人员关于员关于SHA-1的破译结果。的破译结果。Shamir评论道:评论道:“我相信这将会引起轩然大波,我相信这将会引起轩然大波,设计新的设计新的Hash函数算法极其重要函数算法极其重要”、“这是近几年密码学领域最美妙的这是近几年密码学领域最美妙的(mostwonderful)结果)结果”。Rivest评论道:评论道:“SHA-1的破译令人吃惊的破译令人吃惊”、“数字签名的安全性在降低,这再一次提醒我们需要替换算法数字签名的安全性在降低,这再一次提醒我们需要替换算法”。目前,。目前,关于关于SHA-1被破译的消息又一次引起国际社会的广泛关注,报道日渐增加,被破译的消息又一次引起国际社会的广泛
62、关注,报道日渐增加,NIST再次发表评论,美国再次发表评论,美国华尔街日报华尔街日报、科学科学杂志上也刊登了专门杂志上也刊登了专门报道。相信随着分析技术的明朗化,国际密码学家以及信息安全专家将会报道。相信随着分析技术的明朗化,国际密码学家以及信息安全专家将会进一步意识到进一步意识到SHA-1被破译而带来的潜在危机。被破译而带来的潜在危机。6.5信息隐藏信息隐藏v广义信息隐藏是指为了防止数据泄漏,将该数据嵌入某种载广义信息隐藏是指为了防止数据泄漏,将该数据嵌入某种载体中。古代主要使用密码术和隐写术,其中密码术是为了让体中。古代主要使用密码术和隐写术,其中密码术是为了让信息无法被看懂,隐写术目的是
63、隐蔽机密信息的存在。信息信息无法被看懂,隐写术目的是隐蔽机密信息的存在。信息隐藏应用包括:伪装式隐蔽通信、数字水印和用于数字产品隐藏应用包括:伪装式隐蔽通信、数字水印和用于数字产品的版权保护(数字版权管理)。的版权保护(数字版权管理)。1. 信息隐藏概述信息隐藏概述(1)信息隐藏的历史)信息隐藏的历史v古代的信息隐藏主要包括技术性的隐写术、语言学中的隐写术和用于版古代的信息隐藏主要包括技术性的隐写术、语言学中的隐写术和用于版权保护的隐写术。权保护的隐写术。v技术性的隐写术的历史比较久远。公元前技术性的隐写术的历史比较久远。公元前440年出现了用头发掩盖信息的年出现了用头发掩盖信息的方法,将消息
64、写在头皮上,等到头发长出来后消息被遮盖,这样消息可方法,将消息写在头皮上,等到头发长出来后消息被遮盖,这样消息可以在各个部落中传递。将信函隐藏在信使的鞋底、衣服的皱褶中,妇女以在各个部落中传递。将信函隐藏在信使的鞋底、衣服的皱褶中,妇女的头饰和首饰中实现信息隐藏。的头饰和首饰中实现信息隐藏。v17世纪出现了,采用无形的墨水在特定字母上制作非常小的斑点来实现世纪出现了,采用无形的墨水在特定字母上制作非常小的斑点来实现信息隐藏。信息隐藏。1860年出现了微缩胶片,可以利用信鸽来传递胶片或者将胶年出现了微缩胶片,可以利用信鸽来传递胶片或者将胶片粘贴在无关紧要的杂志等文字材料中的句号或逗号上。片粘贴在
65、无关紧要的杂志等文字材料中的句号或逗号上。v随着化学技术的发展,使用化学方法可以实现比较高级的隐随着化学技术的发展,使用化学方法可以实现比较高级的隐写术,用笔蘸淀粉水在白纸上写字,然后喷上碘水,则淀粉写术,用笔蘸淀粉水在白纸上写字,然后喷上碘水,则淀粉和碘起化学反应后显出棕色字体,化学的进步促使人们开发和碘起化学反应后显出棕色字体,化学的进步促使人们开发更加先进的墨水和显影剂。更加先进的墨水和显影剂。v一些艺术作品中采用隐写术,在一些变形夸张的绘画作品中,一些艺术作品中采用隐写术,在一些变形夸张的绘画作品中,从正面看是一种景象,侧面看又是另一种景象,这其中就可从正面看是一种景象,侧面看又是另一
66、种景象,这其中就可以隐含作者的一些政治主张或异教思想。以隐含作者的一些政治主张或异教思想。(1)信息隐藏的历史)信息隐藏的历史v语言学中的隐写术也是被广泛使用的一种方法。语言学中的隐写术也是被广泛使用的一种方法。具有代表性的是具有代表性的是“藏头诗藏头诗”,又称为,又称为“镶嵌诗镶嵌诗”或者或者“嵌字诗嵌字诗”,是把表明真意的字句分别镶嵌在诗句之中。是把表明真意的字句分别镶嵌在诗句之中。v第二次世界大战期间一位热情的女钢琴家,常为联军作慰问演出,并通第二次世界大战期间一位热情的女钢琴家,常为联军作慰问演出,并通过电台播放自己谱写的钢琴曲。由于联军在战场上接连遭到失败,反间过电台播放自己谱写的钢
67、琴曲。由于联军在战场上接连遭到失败,反间谍机关开始怀疑到这位女钢琴家,可一时又因找不到钢琴家传递情报的谍机关开始怀疑到这位女钢琴家,可一时又因找不到钢琴家传递情报的手段和途径而迟迟不能决断。原来这位德国忠实的女间谍,从联军军官手段和途径而迟迟不能决断。原来这位德国忠实的女间谍,从联军军官那里获得军事情报后,就按照事先规定的密码巧妙地将其编成乐谱,并那里获得军事情报后,就按照事先规定的密码巧妙地将其编成乐谱,并在电台演奏时一次次公开将重要情报通过悠扬的琴声传递出去。在电台演奏时一次次公开将重要情报通过悠扬的琴声传递出去。(1)信息隐藏的历史)信息隐藏的历史(2)信息隐藏的研究内容信息隐藏的研究内
68、容v随着计算机技术和互联网的发展,各种重要信息需要安全的传递,随着计算机技术和互联网的发展,各种重要信息需要安全的传递,比如:政府信息、商务信息、个人隐私等,因此信息隐藏逐步受到比如:政府信息、商务信息、个人隐私等,因此信息隐藏逐步受到重视。信息隐藏相关术语包括:信息隐藏(重视。信息隐藏相关术语包括:信息隐藏(InformationHiding)、)、隐写术(隐写术(Steganography)和数字水印()和数字水印(DigitalWatermarking)。)。分类如图所示。分类如图所示。信息隐藏技术的分类信息隐藏技术的分类v伪装式保密通信伪装式保密通信,利用人类感知系统以及计算机处理系统
69、的冗余,载体可以是任何,利用人类感知系统以及计算机处理系统的冗余,载体可以是任何一种多媒体数据,如音频、视频、图像、甚至文本、数据等,被隐藏的信息也可以一种多媒体数据,如音频、视频、图像、甚至文本、数据等,被隐藏的信息也可以是任何形式(全部作为比特流),这种方法主要用于军队和安全部门。是任何形式(全部作为比特流),这种方法主要用于军队和安全部门。v用于版权保护的数字水印用于版权保护的数字水印将版权所有者的信息,嵌入在要保护的数字多媒体作品中,将版权所有者的信息,嵌入在要保护的数字多媒体作品中,从而防止其他团体对该作品宣称拥有版权,用于盗版跟踪的数字指纹:同一个作品从而防止其他团体对该作品宣称拥
70、有版权,用于盗版跟踪的数字指纹:同一个作品被不同用户买去,售出时不仅嵌入了版权所有者信息,而且还嵌入了购买者信息,被不同用户买去,售出时不仅嵌入了版权所有者信息,而且还嵌入了购买者信息,如果市场上发现盗版,可以识别盗版者。如果市场上发现盗版,可以识别盗版者。v计算机系统中的隐蔽信道计算机系统中的隐蔽信道:在多级安全水平的系统环境中,那些根本不是专门设计:在多级安全水平的系统环境中,那些根本不是专门设计的也不打算用来传输消息的通信路径称为隐蔽信道。这些信道在为某一程序提供服的也不打算用来传输消息的通信路径称为隐蔽信道。这些信道在为某一程序提供服务时,可以被一个不可信的程序用来向它的控制者泄露信息
71、,计算机系统中存在的务时,可以被一个不可信的程序用来向它的控制者泄露信息,计算机系统中存在的安全漏洞也可以被利用作为秘密信道传递信息。安全漏洞也可以被利用作为秘密信道传递信息。(2)信息隐藏的研究内容)信息隐藏的研究内容2.信息隐藏基本原理信息隐藏基本原理vA打算秘密传递一些信息给打算秘密传递一些信息给B,A需要从一个随机消息源中随机选取一个需要从一个随机消息源中随机选取一个无关紧要的消息无关紧要的消息c,当这个消息公开传递时,不会引起怀疑,称这个消息,当这个消息公开传递时,不会引起怀疑,称这个消息c为载体对象。把需要秘密传递的信息为载体对象。把需要秘密传递的信息m隐藏到载体对象隐藏到载体对象
72、c中,此时,载中,此时,载体对象体对象c就变为伪装对象就变为伪装对象c。秘密信息的嵌入过程需要密钥,此密钥称为。秘密信息的嵌入过程需要密钥,此密钥称为伪装密钥。伪装密钥。v载体对象是正常的,不会引起怀疑,伪装对象与载体对象无法区分,无载体对象是正常的,不会引起怀疑,伪装对象与载体对象无法区分,无论从感观上,还是从计算机的分析上,通信的安全性取决于第三方有没论从感观上,还是从计算机的分析上,通信的安全性取决于第三方有没有能力将载体对象和伪装对象区别开来,对伪装对象的正常处理,不应有能力将载体对象和伪装对象区别开来,对伪装对象的正常处理,不应破坏隐藏的信息。破坏隐藏的信息。v信息隐藏可以分为:无密
73、钥信息隐藏、私钥信息隐藏和公钥信息隐藏。信息隐藏可以分为:无密钥信息隐藏、私钥信息隐藏和公钥信息隐藏。(1)无密钥信息隐藏)无密钥信息隐藏v无密钥信息隐藏的过程为:映射无密钥信息隐藏的过程为:映射E:CMC,其中,其中,C:所有可能载体的集合;:所有可能载体的集合;M:所有可能秘密消息的集合;:所有可能秘密消息的集合;C:所有伪装对象的集合。提取过程:映射:所有伪装对象的集合。提取过程:映射D:CM,双方约定嵌入算法和提取算法,算法要求保密。,双方约定嵌入算法和提取算法,算法要求保密。v定义:对一个五元组定义:对一个五元组=C,M,C,D,E,其中,其中C是所有可能载体的集合,是所有可能载体的
74、集合,M是所有可能秘密消息的集合,是所有可能秘密消息的集合,C是所有可能伪装对象的集合。是所有可能伪装对象的集合。vE:CMC是嵌入函数是嵌入函数vD:CM是提取函数是提取函数v若满足性质:对所有若满足性质:对所有mM和和cC,恒有:,恒有:D(E(c,m)=m,则称该五元组为无,则称该五元组为无密钥信息隐藏系统。不同的嵌入算法,对载体的影响不同。选择最合适的载体,密钥信息隐藏系统。不同的嵌入算法,对载体的影响不同。选择最合适的载体,使得信息嵌入后影响最小,即载体对象与伪装对象的相似度最大使得信息嵌入后影响最小,即载体对象与伪装对象的相似度最大(2)私钥信息隐藏)私钥信息隐藏vKerckhof
75、fs准则:密码设计者应该假设对手知道数据加密的方法,准则:密码设计者应该假设对手知道数据加密的方法,数据的安全性必须仅依赖于密钥的安全性。无密钥信息隐藏系统,数据的安全性必须仅依赖于密钥的安全性。无密钥信息隐藏系统,违反了违反了Kerckhoffs准则准则。v定义:对一个六元组定义:对一个六元组=C,M,K,C,DK,EK,其中,其中C是是所有可能载体的集合,所有可能载体的集合,M是所有可能秘密消息的集合,是所有可能秘密消息的集合,K是所有可是所有可能密钥的集合,能密钥的集合,EK:CMKC是嵌入函数,是嵌入函数,DK:CKM是是提取函数,若满足性质:对所有提取函数,若满足性质:对所有mM,c
76、C和和kK,恒有:,恒有:DK(EK(c,m,k),k)=m,则称该六元组为私钥信息隐藏系统私钥的,则称该六元组为私钥信息隐藏系统私钥的传递。传递。(3)公钥信息隐藏)公钥信息隐藏v公钥信息隐藏类似于公钥密码。通信各方使用约定的公钥体公钥信息隐藏类似于公钥密码。通信各方使用约定的公钥体制,各自产生自己的公开钥和私密钥,将公开钥存储在一个制,各自产生自己的公开钥和私密钥,将公开钥存储在一个公开的数据库中,通信各方可以随时取用,私密钥由通信各公开的数据库中,通信各方可以随时取用,私密钥由通信各方自己保存,不予公开。方自己保存,不予公开。3.数字水印数字水印v数字水印数字水印(DigitalWate
77、rmark)技术,是指在数字化的数据内容技术,是指在数字化的数据内容中嵌入不明显的记号。被嵌入的记号通常是不可见或不可察的,中嵌入不明显的记号。被嵌入的记号通常是不可见或不可察的,但是通过计算操作可以检测或者被提取。水印与源数据紧密结但是通过计算操作可以检测或者被提取。水印与源数据紧密结合并隐藏其中,成为源数据不可分离的一部分,并可以经历一合并隐藏其中,成为源数据不可分离的一部分,并可以经历一些不破坏源数据使用价值或商用价值的操作而存活下来。些不破坏源数据使用价值或商用价值的操作而存活下来。根据信息隐藏目的和技术要求,数字水印应具有根据信息隐藏目的和技术要求,数字水印应具有3个基本特性:个基本
78、特性:v隐藏性(透明性)。水印信息和源数据集成在一起,不改变源数据的存储空间;隐藏性(透明性)。水印信息和源数据集成在一起,不改变源数据的存储空间;嵌入水印后,源数据必须没有明显的降质现象;嵌入水印后,源数据必须没有明显的降质现象;水印信息无法为人看见或听见,水印信息无法为人看见或听见,只能看见或听见源数据;只能看见或听见源数据;v鲁棒性(免疫性、强壮性)。鲁棒性是指嵌入水印后的数据经过各种处理操作和鲁棒性(免疫性、强壮性)。鲁棒性是指嵌入水印后的数据经过各种处理操作和攻击操作以后,不导致其中的水印信息丢失或被破坏的能力。攻击操作以后,不导致其中的水印信息丢失或被破坏的能力。处理操作包括:模处
79、理操作包括:模糊、几何变形、放缩、压缩、格式变换、剪切、糊、几何变形、放缩、压缩、格式变换、剪切、D/A和和A/D转换等转换等攻击操作包括:攻击操作包括:有损压缩、多拷贝联合攻击、剪切攻击、解释攻击等等。有损压缩、多拷贝联合攻击、剪切攻击、解释攻击等等。v安全性。指水印信息隐藏的位置及内容不为人所知,这需要采用隐蔽的算法,以安全性。指水印信息隐藏的位置及内容不为人所知,这需要采用隐蔽的算法,以及对水印进行预处理(如加密)等措施。及对水印进行预处理(如加密)等措施。(1)数字水印的基本特性)数字水印的基本特性(2)数字水印产生背景)数字水印产生背景v多媒体通信业务和多媒体通信业务和Interne
80、t“数字化、网络化数字化、网络化”的迅猛发展给信息的广泛传播的迅猛发展给信息的广泛传播提供了前所未有的便利提供了前所未有的便利,各种形式的多媒体作品包括视频、音频、动画、图像等各种形式的多媒体作品包括视频、音频、动画、图像等等纷纷以网络形式发布,但副作用也十分明显:任何人都可以通过网络轻易的取等纷纷以网络形式发布,但副作用也十分明显:任何人都可以通过网络轻易的取得他人的原始作品,尤其是数字化图像、音乐、电影等等,甚至不经作者的同意得他人的原始作品,尤其是数字化图像、音乐、电影等等,甚至不经作者的同意而任意复制、修改,从而侵害了创作者的著作权。从目前的数字水印系统的发展而任意复制、修改,从而侵害
81、了创作者的著作权。从目前的数字水印系统的发展来看,基本上可以分为以下几类:来看,基本上可以分为以下几类:1.所有权确认:多媒体作品的所有者将版权信息作为水印加入公开发布的版本中。所有权确认:多媒体作品的所有者将版权信息作为水印加入公开发布的版本中。侵权行为发生时,所有人可以从侵权人持有的作品中认证他所加入的水印作为所侵权行为发生时,所有人可以从侵权人持有的作品中认证他所加入的水印作为所有权证据。这要求这类水印能够经受各种常用的处理操作,比如对于图像而言,有权证据。这要求这类水印能够经受各种常用的处理操作,比如对于图像而言,要能够经受各种常用的图像处理操作,甚至像打印要能够经受各种常用的图像处理
82、操作,甚至像打印/扫描这样的操作。扫描这样的操作。2.来源确定:为防止未授权的拷贝,出品人可以将不同用户的有关信息来源确定:为防止未授权的拷贝,出品人可以将不同用户的有关信息(如用户名、序列号、城市等等)作为不同水印嵌入作品的合法拷贝中。(如用户名、序列号、城市等等)作为不同水印嵌入作品的合法拷贝中。一旦发现未经授权的拷贝,可以从此拷贝中提取水印来确定他的来源。一旦发现未经授权的拷贝,可以从此拷贝中提取水印来确定他的来源。这要求水印可以经受诸如伪造、去除水印的各种企图,除了所有权确认这要求水印可以经受诸如伪造、去除水印的各种企图,除了所有权确认中所涉及的操作外,主要包括多拷贝联合攻击去除或伪造
83、水印陷害第三中所涉及的操作外,主要包括多拷贝联合攻击去除或伪造水印陷害第三方。方。3.完整性确认:当多媒体作品被用于法庭、医学、新闻及商业时,常需要完整性确认:当多媒体作品被用于法庭、医学、新闻及商业时,常需要确定它们的内容有没有被修改、伪造或特殊处理过。这时可以通过提取确定它们的内容有没有被修改、伪造或特殊处理过。这时可以通过提取水印,确认水印的完整性来证实多媒体数据的完整。最好还能够通过识水印,确认水印的完整性来证实多媒体数据的完整。最好还能够通过识别提取出的水印确定出多媒体数据被篡改的位置。别提取出的水印确定出多媒体数据被篡改的位置。(2)数字水印产生背景)数字水印产生背景4.隐式注释:被嵌入的水印组成内容的注释。比方说,一副照隐式注释:被嵌入的水印组成内容的注释。比方说,一副照片的拍摄时间和地点可以转换成水印信号作为此图像的注释。片的拍摄时间和地点可以转换成水印信号作为此图像的注释。5.使用控制:在一个限制试用软件或预览多媒体作品中,可以使用控制:在一个限制试用软件或预览多媒体作品中,可以插入一个指示允许使用次数的数字水印,每使用一次,就将插入一个指示允许使用次数的数字水印,每使用一次,就将水印自减一次,当水印为水印自减一次,当水印为0时,就不能再使用,但这需要相应时,就不能再使用,但这需要相应硬件和软件的支持。硬件和软件的支持。(2)数字水印产生背景)数字水印产生背景