1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,1,信息安全原理与实践,Information Security:Principles and Practice,2nd Edition,美,Mark Stamp,著,张 戈译,第1页,第,5,章 哈希函数及其它,2,第2页,5.1,引言,本章内容,加密哈希函数,加密哈希函数标准应用,哈希函数高级应用,加密相关副作用问题,3,第3页,5.2,什么是加密哈希函数,一个加密哈希函数,h,(,x,),,必须满足以下全部条件:,压缩,对于任何长度输入值,x,,输出值,y,=,h,(,x,),长度都比较小。在实际使用
2、中,通常输出值是固定长度,(,比如,160,位长度二进制值,),,而不论输入值长度是多少。,高效,对于任何输入值,x,,必须能够很轻易地计算出,h,(,x,),。当然,伴伴随输入值,x,长度增加,计算,h,(,x,),所需要计算量也会随之增加,不过,这不能增加得太快。,单向,给定任意值,y,,要想找到一个值,x,,使得,h,(,x,)=,y,,将是计算不可行。换一个不一样说法,即对于哈希运算,没有行之有效逆运算。,抗弱碰撞性,给定,x,和,h,(,x,),,要想找到任意,y,,满足,y,x,,而且,h,(,y,)=,h,(,x,),,这是不可能。,抗强碰撞性,要想找到任意,x,和,y,,使得,
3、x,y,,而且,h,(,x,)=,h,(,y,),,这是不可能。也就是说,我们不能够找到任何两个输入,使得它们经过哈希后会产生相同输出值。,4,第4页,哈希函数在数字署名上应用,以前,Alice,对一条消息,M,实施署名,是经过使用她自己私钥进行“加密”计算得到,即要计算,S,=,M,Alice,。假如,Alice,发送消息,M,和署名,S,给,Bob,,,Bob,就能够经过执行验证过程,M,=,S,Alice,来验证该署名有效性。不过,假如消息,M,很大,,M,Alice,就是一个成本很高计算,更不用提发送消息,M,和署名,S,带宽需求了,这二者都会很大。相比之下,在计算一个,MAC,时,加
4、密速度会很快,而且在发送时,我们也仅仅需要伴伴随消息发送少许附加校验位,(,比如,MAC),而已。,使用哈希函数之后,假设,Alice,有一个加密哈希函数,h,。那么,,h(,M,),能够被看做文档,M,一个“指纹”,也就是说,,h,(,M,),比,M,小得多,不过它能够标识出,M,。假如,M,不一样于,M,,那么即使仅仅相差一个单独二进制位,哈希函数执行结果也几乎必定会不一样。而且,哈希函数抗碰撞特征意味着,想要将消息,M,替换为任何不一样消息,M,,使得,h,(,M,)=,h,(,M,),是不可能,1.,一旦哈希值发生相同情况,该怎么办呢?好,这说明你已经发觉了一个碰撞,也就意味着你已经攻
5、破了这个哈希函数,于是你就成为一个著名密码破解教授了。所以,这是个双赢好事。,5,第5页,签名正确方法,假设没有碰撞,那么对,h,(,M,),署名和对消息,M,实施署名效果一样好。实际上,对哈希值实施署名比起仅仅对消息本身实施署名,实际上会愈加安全。,现在数字署名安全性不但依赖于公钥系统安全性,而且也依赖于哈希函数本身安全性,假如二者中有任何一个比较弱,署名体制就可能会被破解。,6,第6页,5.3,生日问题,假如你和其它,N,个人同在一个房间里。那么,,N,必须多大,你才有指望找到最少一个人和你有相同生日呢?或者说:,N,必须多大,才会使得“有某个人与你生日相同”概率大于,1/2,呢?,你生日
6、是在一年中特定一天。假如一个人和你生日不一样,那么他或她生日必定是在其它,364,天中一天。假设全部生日都是概率相等,那么“一个随机选择人不与你生日相同”概率就是,364/365,。这么,全部,N,个人都跟你生日不一样概率就是,(364/365),N,,于是,最少有一个人与你生日相同概率就是:,设置这个表示式等于,1/2,,并解出,N,,得到,N,=253,。,7,第7页,真正生日问题,我们给房间里,N,个人分别编上号码,1,,,2,,,3,,,,,N,。编号为,1,人生日是一年,365,天中一天。假如全部些人生日各不相同,那么编号为,2,人必须与编号为,1,人生日不相同,也就是说,编号为,2
7、人生日只能是剩下,364,天中任意一天。一样,编号为,3,人生日只能是再剩下,363,天中任意一天,依这类推。假设全部生日都是概率相等,考虑上述情况补集,其最终概率计算以下式所示,设置这个表示式等于,1/2,,并解出,N,,我们得到,N,=23,8,生日,悖论,第8页,延伸,对于一个生成,N,位二进制长度输出安全哈希函数来说,一个计算开销大约以,2,N,/2,为因子强力破解方式,就能够对其发起有效攻击。,相比较而言,对于一个密钥长度为,N,位二进制数安全对称密钥加密方案来说,对其强力破解计算开销因子是,2,N,-l,。,所以,安全哈希函数输出必须是对称加密密钥二进制位数大约两倍长,才能够取得
8、与后者基本相当安全水平。,9,第9页,5.4,生日攻击,假设哈希函数,h,生成一个,n,位二进制长输出。,Trudy,标准上能够发起一次生日攻击,详细如下:,Trudy,选择一条“恶意”消息,E,,这是她想让,Alice,署名消息,不过,Alice,并不想对其署名。,Trudy,也创建了一条无害消息,I,,她有信心,Alice,愿意对这条消息署名。,然后,,Trudy,经过对消息实施较小编辑性修改,生成,2,n,/2,条该无害消息,I,变体。这些无害消息,我们分别标识为,I,i,,其中,i=0,1,.,2,n,/2,1,,全部消息都与,I,含义相同,不过既然消息本身不一样,那么它们哈希值也不一
9、样。,一样,,Trudy,创建出,2,n,/2,个恶意消息,E,变体,分别标识为,E,i,,其中,i,=0,1,.,2,n,/2,1,。这些消息也都与原始恶意消息,E,表示一样含义,不过它们哈希值不一样。,Trudy,对全部恶意消息,E,i,以及全部无害消息,I,i,实施哈希运算。根据上述生日问题讨论,她就有希望找到一个碰撞,比喻说,,h,(,E,j,)=,h,(,I,k,),。基于这么一个碰撞,,Trudy,将,I,k,发送给,Alice,,并请,Alice,对其进行署名。既然这条消息看起来没有问题,,Alice,就对其进行署名,并将,I,k,和,h,(,I,k,),Alice,返回给,Tr
10、udy,。既然,h,(,E,j,)=,h,(,I,k,),,那么由此能够得出,h,(,E,j,),Alice,=,h,(,I,k,),Alice,,于是,,Trudy,实际上就已经取得了,Alice,对恶意消息,E,j,署名。,10,第10页,在这个攻击中,,Trudy,取得了,Alice,对于一条,Trudy,自选消息署名,不过并没有以任何方式攻击潜在公开密钥加密系统。,这个攻击是一个针对哈希函数,h,强力攻击,而哈希函数,h,是用于计算数字署名。,为了预防这类攻击,我们能够选择一个哈希函数,使得该哈希函数输出值长度,n,足够大,以至于,Trudy,无法完成,2,n,/2,个哈希值计算。,1
11、1,第11页,5.5,非加密哈希,非加密哈希运算例子,(,1,)其中,每个,X,i,是一个字节,定义哈希函数,h,(,X,),为:,这毫无疑问提供了压缩功效,因为任何长度输入都被压缩为,8,位二进制输出。不过,这个哈希很轻易被破解,因为生日问题结论告诉我们,只需对,2,4,=16,个随机选择输入执行哈希运算,我们就有望找到一个碰撞。,对两个字节进行交换,就总是能够产生一个碰撞,类似以下这种情况:,(,2,)我们将哈希函数,h,(,X,),定义为:,即使该函数在交换输入字节次序情况下能够输出不一样结果,不过依然逃不过生日问题带来麻烦。,12,第12页,循环冗余校验,或简称为,CRC,循环冗余校验
12、码计算本质上是长除法,将余数作为,CRC,计算“哈希”值。与常规长除法不一样,,CRC,在计算中使用,XOR,运算替换了减法。,在一个,CRC,计算过程中,除数被指定作为算法一部分,数据作为被除数。,例子,假设给定除数是,10011,,而有趣是数据恰好是,10101011,。那么,我们先对数据附加上,4,个,0(,附加位数要比除数二进制位数少,1),,然后执行以下长除法运算:,CRC,校验和就是长除法运算余数,在这个例子中,就是,1010,。,13,第13页,5.6,Tiger Hash,MD5,MD,指是消息摘要,(Message Digest),,它前身是,MD4,,而,MD4,本身又继承
13、自,MD2,。,全部,MD,系列算法都是由加密领域大师级人物,Ron Rivest,所创造。,MD5,算法生成,128,位输出值。,SHA-1,算法,SHA,表示安全哈希算法,(Secure Hash Algorithm),,是美国政府一个标准。,SHA-1,算法实际上非常类似于,MD5,算法。两个算法在实践中主要不一样在于,SHA-1,生成,160,位二进制长输出值,比,MD5,提供了更可观安全边际。,14,所谓,雪崩效应,,是全部加密哈希函数都会追求一个理想特征。其目标是:在输入值中任何小改变,都应该级联传递并造成输出结果较大改变,就像雪崩一样。理想情况下,任何输入值改变引发输出值改变都是
14、不相关,这么,攻击者将不得不实施穷举式检索来寻找碰撞。,第14页,Tiger,算法特点,算法输入先被分成,512,位二进制长度分组,假如需要话,就对输入值进行附加填充位,以补足成,512,倍数位长度。,算法输出,192,位二进制长度哈希值。,算法实现中使用了,4,个,S-box,,这,4,个,S-box,每一个都将,8,位二进制位映射为,64,位。,算法还使用了一个“密钥调度”算法,不过因为这里没有密钥概念,该算法实际是施加到了输入分组上。,15,第15页,Tiger,算法过程,首先对输入值,X,进行附加填充位,使其长度满足,512,位二进制长倍数,表示为:,其中每一个,X,i,都是一个,51
15、2,位二进制长分组。,对每一个,X,i,使用一个外层轮运算。假设,a,,,b,和,c,都是,64,位二进制长值。对于第一轮运算,,(,a,b,c,),初始值以,16,进制形式表示以下:,16,第16页,一轮运算之后,输出,(,a,b,c,),就成为后续下一轮运算初始三元组。最终一轮运算之后,最终输出,(,a,b,c,),就是,192,位二进制长哈希值。,首个外层轮函数,F,5,输入是,(,a,b,c,),,假如我们标识,F,5,输出为,(,a,b,c,),,那么,F,7,输入为,(,c,a,b,),。一样地,假如我们标识,F,7,输出为,(,a,b,c,),,那么,F,9,输入为,(,b,c,
16、a,),。,上图每一个函数,F,m,都包含了,8,个下列图所表示内层轮运算。我们再令,W,表示内层轮运算,512,位二进制输入值,其能够表示以下,17,第17页,对于函数,f,m,i,,当,i,=0,1,2,.,7,时,其各自输入值分别如下,其中各自对应函数,f,m,i,-1,输出标识为,(,a,b,c,),。每一个,f,m,i,都依赖于,a,,,b,,,c,,,w,i,和,m,,其中,w,i,是,512,位二进制输入值,W,第,i,个,64,位子分组。,c,写作:,,,其中每一个,c,i,都是一个单独字节。,f,m,i,由下式给定:,每一个,S,i,都是一个,S-box(,即查找表,),,将
17、8,位二进制映射为,64,位二进制。,18,第18页,密钥调度算法,假设令,W,为密钥调度算法,512,位二进制输入值。同上,我们将,W,写作,W,=(,w,0,w,1,w,7,),,其中每一个,w,i,都是一个,64,位二进制值,我们再令,为,w,i,二进制补数。,密钥调度算法以下,其中最终计算结果,W,=(,w,0,w,1,w,7,),给出了该算法输出值。,19,第19页,小结,Tiger,哈希算法共包含,24,轮运算,这,24,轮运算能够看成是,3,个外层轮运算,而这每一个外层运算都包含了,8,个内层轮运算。该算法全部中间步骤产生哈希值都是,192,位二进制值。,该算法中,S-box,
18、设计使得仅仅经过,24,轮运算中,3,轮计算,每一个输入二进制位就会影响到,a,,,b,和,c,三者中每一个。而且,在消息中任何小改变,都将影响到算法中间步骤产生哈希值多个二进制位。,在,f,m,i,计算过程中,最终一步乘法也是该算法设计中一个关键特征。它目标是为了确保,对于一轮运算中每个,S-box,输入,都将在下一轮运算中混入到多个,S-box,中。,20,第20页,5.7,HMAC,HMAC,起源,怎么才能将密钥混入到所谓,HMAC,中呢?,将密钥置于消息体之前,即计算,h,(,K,M),假如我们选择计算,h,(,K,M,),来得到,HMAC,。假如消息,M,=(,B,1,B,2,),,
19、其中每个,B,i,都是,512,位二进制长,则,假如,Trudy,选择了,M,,使得,M,=(,M,X,),,那么,,Trudy,有可能利用以上灯饰从,h,(,K,M,),找到,h,(,K,M,),。因为,对于特定长度,K,,,M,和,X,,有,将密钥附加于消息体之后,即计算,h,(,M,K,),21,假如令,B,为哈希运算分组长度,以字节数表示。对于全部流行哈希算法,B,=64,。,ipad=0 x36,重复,B,次,opad=0 x5C,重复,B,次,那么,消息,M,HMAC,定义为:,这个方案将密钥彻底地混入到哈希运算结果当中。计算一个,HMAC,值即使需要执行两遍哈希运算,不过第二次哈
20、希运算仅作用于少许二进制位并使用了修改附加填充密钥。所以,总开销比起计算,h,(,M,),所需要开销,仅仅多了少许。,更加好,第21页,5.8,哈希函数用途,标准应用,身份认证,消息完整性保护,(,使用,HMAC),消息指纹,错误检测,高效数字署名等,高级应用,网上竞价,垃圾邮件减阻,22,第22页,5.8.1,网上竞价,假设有一个物品在网上拍卖,而,Alice,、,Bob,以及,Charlie,都想要出价竞拍。每一个竞拍者都有一次机会提交一个秘密报价,只有当全部报价都接收到之后,竞拍价格才会公开。依照通例,报价最高竞拍者获胜。,前提:,Alice,、,Bob,以及,Charlie,,三人之间
21、必定是相互不信任,另外,他们也绝对都不会信任和接收竞投价格网上服务。,为了努力消除这些担心,网上服务方提出了以下方案:,每一个竞拍者将确定他们各自竞拍价格,比喻说,,Alice,出价为,A,,,Bob,出价为,B,,,Charlie,出价为,C,,各自确保其报价秘密。然后,,Alice,将提交,h,(,A,),,,Bob,将提交,h,(,B,),,,Charlie,将提交,h,(,C,),。一旦全部三个经过哈希运算报价都已接收到,网上服务方就在线公开公布这些哈希值,以供全部些人查阅。,优点,:,报价哈希值将竞拍者与他们原始报价绑在了一起,而且无需揭示相关报价本身任何信息。,假如率先提交一个报价
22、哈希值并无什么不利原因,而且一旦提交了报价哈希值,便再没有任何方法能够改变报价,那么这个方案预防了如前所述坑骗,,缺陷,:,它可能会遭受前向检索攻击,23,第23页,5.8.2,垃圾邮件减阻,假如,M,为电子邮件消息,,T,为当前时间。电子邮件消息,M,包含了发送方和目标接收方电子邮件地址,不过并不包含任何其它地址。消息,M,发送方必须确定一个值,R,,使得下式成立:,也就是说,发送方必须找到一个值,R,,使得上面等式中哈希运算输出结果中前,N,个二进制位都是,0,。一旦完成了这一步,发送方就发送三元组,(,M,R,T,),。在接收方,Alice,接收该邮件之前,她需要验证时间,T,是否在很快
23、之前,以及验证,h,(,M,R,T,),是否以,N,个,0,开始。,平均而言,发送方就需要执行大约,2,N,次哈希计算。而不论,N,长度是多少,接收方只需执行一次哈希计算便能够验证,h,(,M,R,T,),是否以,N,个,0,开始。,为使这个设计行之有效,我们需要选择一个,N,,使得对应计算开销处于常规电子邮件用户能够接收水平,但其成本又高到了垃圾邮件发送者无法忍受程度。,24,第24页,5.9,其它与加密相关主题,Shamir,秘密共享机制,相关视觉加密技术,随机性问题,信息隐藏,25,第25页,5.9.1,秘密共享,问题?,假设,Alice,和,Bob,想要共享一个秘密信息,S,,以实现以
24、下效果:,Alice,或者,Bob(,当然也包含其它任何人,),都不能独自确定信息,S,,除了瞎猜,再无更加好方法。,Alice,和,Bob,在一起,就能够轻松地确定该信息,S,秘密共享机制,因为其中有两个参加者,而且双方必须协同合作才能恢复出秘密信息,S,。,26,两点决定一条直线,第26页,假设秘密信息,S,是一个实数。经过点,(0,S,),在平面上画一条直线,L,,并给,Alice,指定直线,L,上一点,A,=(,X,0,Y,0,),,给,Bob,指定直线,L,上另一点,B,=(,X,1,Y,1,),。这么,,Alice,和,Bob,各自都不掌握关于,S,任何信息,因为经过一个独立点存在
25、无限多直线。不过,合在一起,两个点,A,和,B,唯一确定了直线,L,,这么就能够确定在,Y,轴上截距,于是进而就取得了值,S,。,27,“,m,out of,n,”型秘密共享机制:,即对于任何,m,n,,其中,n,代表参加者数量,那么其中任意,m,个参加者合作,就能够恢复出共享秘密。,第27页,一条直线是一个一次多项式,它能够由两点唯一确定。,一条抛物线是一个二次多项式,它能够由三个点唯一确定。,普通而言,一个次数为,m,1,多项式能够由,m,个点唯一确定。,对于任意,m,n,,正是上述基本事实使得我们能够结构出一个“,m,out of,n,”型秘密共享机制。,28,第28页,5.9.1.1,
26、密钥托管,怎样处理密钥托管机构信任问题?,经过拥有多个托管机构,并允许用户将其密钥在这些托管机构中,n,个之间进行分割,使得必须得有,n,个托管机构中,m,个协同合作才能恢复出密钥。,Shamir,秘密共享机制能够用于实现这么一个密钥托管方案。,假设,N,=3,和,m,=2,,,Alice,密钥是,S,。使用“,2 out of 3,”方案即可。,比如,,Alice,可能会选择让司法部持有点,(,X,0,Y,0,),,让商务部持有点,(,X,1,Y,1,),,再让,Fred,密钥托管企业持有点,(,X,2,Y,2,),。于是,这三个托管机构中必须最少有两个协同合作才能确定,Alice,密钥,S
27、29,第29页,5.9.1.2,视觉加密技术,视觉秘密共享机制,该机制是绝对安全。,在视觉秘密共享机制,(,也被称作视觉加密技术,),中,解密潜在图像并不需要执行任何计算。,例子:像素分解,30,假如某个特定像素是白色,我们能够经过抛硬币方式来决定是使用图中“,a,”行还是“,b,”行。,对于一个黑色像素,我们经过抛硬币来在“,c,”行和“,d,”行之间选择,然后再使用被选定行来确定对应像素部分。,第30页,假如原始像素是黑色,那么其分解两份重合之后总是生成一个黑色像素。而如果原始像素是白色,那么其分解两份重合之后将生成一个半白半黑像素,这将被视觉感知为灰色。这个结果会损失一定对比度,(
28、黑和灰相对于黑和白,),,不过,原始图像依然能够清楚地区分。,视觉秘密共享例子是一个“,2 out of 2,”型共享方案,31,第31页,5.9.2,随机数,在加密技术领域,生成对称密钥、生成,RSA,密钥对,(,意即随机选取大素数,),以及生成,Diffie-Hellman,秘密指数,这些都需要随机数。,加密技术中随机数必须不但是统计上随机,而且它们还必须要满足严格得多条件,它们必须是不可预测。,惯用伪随机数生成器就是可预测,即给定足够大数量输出值,后续值将能够被很轻易地确定。所以,伪随机数生成器不适合用于加密类应用。,假设有个服务器专门为用户生成对称密钥,并假设它为一系列用户生成了以下
29、密钥:,K,A,给,Alice,使用,K,B,给,Bob,使用,K,C,给,Charlie,使用,K,D,给,Dave,使用,现在假如,Alice,、,Bob,和,Charlie,都不喜欢,Dave,,他们就能够将他们这些信息放在一起,看看是否有利于确定,Dave,密钥。即,Alice,、,Bob,和,Charlie,能够利用对于他们自己密钥,K,A,、,K,B,和,K,C,了解,来考虑这些信息是否有利于确定出,Dave,密钥,K,D,。假如能够依据对于密钥,K,A,、,K,B,和,K,C,了解来预测,K,D,,那么该系统安全性是有缺点。,32,第32页,5.9.2.1,德州扑克,规则,首先给
30、每个玩家发两张牌,正面朝下扣起来作为底牌。然后完成一轮投注。,接下来,翻开三张公共牌,全部玩家都能够看到公共牌,并能够考虑与他们自己手中牌结合使用。,进行第二轮投注之后,再次翻开一张公共牌,随即再进行一轮投注。,最终,翻开最终一张公共牌,这之后还能够再加投一次注。,在全部保持连续跟进到最终玩家中,谁能够从自己手里两张底牌和翻开,5,张公共牌中组成最好一手牌,谁就是获胜者。,ASF,企业开发扑克牌游戏软件在利用随机数来洗一副牌时候,随机数使用方式中有一个严重缺点:这个程序无法产生一个真正随机洗牌结果,于是在游戏中,玩家就有可能实时地确定整副牌情况。,33,第33页,怎样实时地就确定洗牌结果呢?,
31、对于一幅含有,52,张牌扑克来说,共有,52!2,225,种不一样洗牌结果。,AFS,企业德州扑克程序中使用了一个“随机”,32,位二进制整数来确定洗牌结果。所以,在,2,225,种全部可能洗牌结果中,这个程序就不可能产生多于其中,2,32,种不一样洗牌结果。这是一个不可原谅设计缺点!,为了生成“随机”洗牌结果,该程序使用了伪随机数生成器或简称为,PRNG,。在每次洗牌时,该伪随机数生成器都会基于新种子值,但种子值基于一个已知函数,即其值为自午夜,0,点以来所经历毫秒数。因为在一天中包含毫秒数为,实际上就会使得最终能够产生不一样洗牌结果数量小于,2,27,。,攻击者,Trudy,将她时钟与服务
32、器进行同时,她就有可能将需要检测不一样洗牌结果数量降低为小于,2,18,。,实际上,当第一轮公共牌揭晓之后,,Trudy,就能够唯一确定洗牌结果了,于是她就能够知道其它全部玩家最终整手牌情况。,34,第34页,5.9.2.2,随机二进制位生成,真正随机性不但非常难以找到,而且非常难以界定。,真正随机性起源确实存在。比如,放射性衰变就是随机。不过,基于核放射技术计算机必定是不受欢迎。,随机性另一个起源是臭名昭著熔岩灯,能够从其混沌行为中取得随机性。,因为软件本身是,(,也希望是,),有确定性,所以真正随机数必须产生于任何代码之外。,35,第35页,5.9.3,信息隐藏,隐写术,也叫隐藏书写,就是
33、试图隐藏特定信息被传递这一事实。,隐写术有很长历史,尤其是在战争中很久之前就已经在使用。,当代版本隐写术包括在各种媒介中隐藏信息,这些媒介包含诸如图像文件、音频数据,甚至是软件等。,数字水印,是为了某种不尽相同目标而实施信息隐藏。,数字水印分类能够有很各种不一样方式。,不可见水印,在媒介中是不应该能被感知到水印。,可见水印,设计上用于查阅水印,如在一个文档上打上“,TOP SECRET,”标识。,鲁棒水印,设计上用于保持其可读性水印,即使遭受了攻击和破坏。,敏感水印,设计为易损水印,发生任何篡改都将造成破坏或损害,36,第36页,不可见数字水印,典型实例,:将特定信息以某种方式插入到照片当中,
34、使得当照片被破坏时,依然有可能从原始照片所剩下一小块残片中重新构建出整张图像。,例子:,将要使用图像采用,24,位二进制空域色彩分量表示方式,即对于红色向量、绿色向量和蓝色向量分别使用一个字节来表示,各自表示为,R,,,G,,,B,。,因为低位,RGB,值相对不主要,因为其代表了颜色中不易觉察到细微改变。所以我们能够将这些低二进制位用于我们选定其它用途,包含信息隐藏。,37,未包含任何隐藏信息,整本,爱丽丝梦游仙境,书,(,以,PDF,格式,),嵌入在了,RGB,字节低位中,第37页,假设一个,HTML,文件,该文件包含“海象与木匠”这首诗,在,HTML,中,,RGB,字体颜色以以下形式标签所
35、规定,.,其中,,rr,是以十六进制形式表示,R,值,,gg,是以十六进制形式表示,G,值,,bb,是以十六进制形式表示,B,值。,既然,R,,,G,和,B,低位信息不会影响到对颜色感知,那么我们能够将信息隐藏在这些位中。,读取,RGB,色彩分量字节低位就能够生成“隐藏”信息,即,110 010 110 011 000 101,。,38,第38页,鲁棒性,上述两种方法均完全不具备鲁棒性!因为任何一个了解该设计方案攻击者能够和目标接收者一样轻易地读取其中隐藏信息。或者攻击者能够换一个方式,经过将该文件替换为另一个文件,除了,RGB,字节低位信息被完全随机打乱之外,这个新文件与原始文件再没有其它不一样,这么就直接破坏了这些隐藏信息。,但仍然面临重重障碍和问题!,39,对于信息隐藏来说,要想含有鲁棒性,信息必须放在有一定影响力二进制位上。不过,这就提出了一个严峻挑战,因为,对于这些确有影响力二进制位改变必须要非常地小心慎重,方便信息隐藏依然能够保持“不可见性”。,第39页,5.10,小结,Tiger,算法,计算哈希,MAC,(HMAC),正确方法,秘密共享机制,视觉加密技术,随机数,信息隐藏技术,40,第40页,






