黑客攻防从入门到精通(加密与解密篇)
上QQ阅读APP看书,第一时间看更新

技巧与问答

❖ 信息安全领域中应用的Hash算法有什么关键特性?

① 单向性(one-way),从预映射,能够简单迅速地得到散列值,而在计算上不可能构造一个预映射,使其散列结果等于某个特定的散列值,即构造相应的M=H-1(h)不可行。这样,散列值就能在统计上唯一地表征输入值,因此,密码学上的Hash又称为“消息摘要”(message digest),就是要求能方便地将“消息”进行“摘要”,但在“摘要”中无法得到比“摘要”本身更多的关于“消息”的信息。

② 抗冲突性(collision-resistant),即在统计上无法产生2个散列值相同的预映射。给定M,计算上无法找到M',满足H(M)=H(M'),此谓弱抗冲突性;计算上也难以寻找一对任意的M和M',使满足H(M)=H(M'),此谓强抗冲突性。要求“强抗冲突性”主要是为了防范所谓的“生日攻击”(birthday attack),在一个10人的团体中,你能找到和你生日相同的人的概率是2.4%,而在同一团体中,有2人生日相同的概率是11.7%。类似的,当预映射的空间很大的情况下,算法必须有足够的强度来保证不能轻易找到“相同生日”的人。

③ 映射分布均匀性和差分分布均匀性,散列结果中,为0的bit和为1的bit,其总数应该大致相等;输入一个bit的变化,散列结果中将有一半以上的bit改变,这又叫作“雪崩效应”(avalanche effect);要实现使散列结果中出现1bit的变化,则输入中至少有一半以上的bit必须发生变化。其实质是必须使输入中每一个bit的信息,尽量均匀地反映到输出的每一个bit上去;输出中的每一个bit,都是输入中尽可能多bit的信息一起作用的结果。

❖ 数字签名和加密的区别是什么?

① 数字签名采用公开密钥算法实现,数字签名与通常的数据加密算法作用是不同的,它们的实现过程与使用的密钥不同。数字签名使用的是发送方的密钥对,发送方用自己的私有密钥进行加密,接收方用发送方的公开密钥进行解密。数字签名是一个一对多关系:任何拥有发送方公开密钥的人都可验证数字签名的正确性。数字签名是为了证实信息确实是由某个用户发送,对网络中是否有人看到该信息并不关心。

② 数据加密使用的是接受方的密钥对,发送方用接收方的公开密钥进行加密,接受方用自己的私有密钥进行解密。加密是一个多对一的关系:任何知道接受方公开密钥的人都可以向接收方发送加密信息,只有拥有接收方私有密钥的人才能对信息解密。一个用户通常有两个密钥对,一个用来对数字签名进行加密解密,一个用来对私密密钥进行加密解密。

❖ PGP使用之前的设置有哪些?

① 需要对用户自己的密钥进行一些设置。

② 可以把用户生成的一对密钥中的公钥传到PGP公司的公钥服务器上,以后收件人如果想接收用此公钥加密的邮件,需要直接到PGP钥服务器上下载该公钥并进行验证,而不需要把公钥放在电子邮件上一起发送,提高PGP加密的安全性。