第16章 信息指纹及应用
1. 信息指纹
将链接对应为16个字节的随机数,称为该网址的信息指纹。
信息指纹的计算步骤
1) 首先将字符串转换为特别长整数
2) 使用伪随机数产生器算法,将特别长的整数转化成特定长度的伪随机数
(现在常用的使用梅森旋转算法,但所产生的随机数有一定的相关性,破解一个相当于破解了一大批)
信息指纹不可逆,正式网络加密传输所需要的。
互联网上加密要使用基于加密的伪随机数产生器,常用的算法有MD5或者SHA-1等标准。
2. 用途
1) 集合相同的判定
简单的方法:顺序排序然后比较(O(NlogN));将几个集合放到散列表里,然后将另一个的元素一一与散列表比较(O(N))
完美的方法:计算两个集合的指纹,然后进行比较
2) 判定集合基本相同
针对垃圾邮件,或者是比较两个网页是否重复,只需要从中抽取关键词(IDF大的词)进行信息指纹比较
有一定容错能力,相似哈希
3) YouTude的反盗版
视频的匹配有两个核心技术,关键帧的提取和特征的提取。
3. 信息指纹的重复性和相似哈希
1) 信息指纹重复的可能性
假定一个伪随机数产生的范围为0到N-1,如果是128位的二进制, 。
K个指纹不重复的概率为
2) 相似哈希
假定一个网页中有若干个词 ,他们的权重为 ,每个词的信息指纹用一个八位二进制数表示
扩展:将把位二进制的指纹扩展为8个实数,
首先八个全设为0,
看第一个词 ,为0则减去对应的权重,若为1加上对应的权重
再依此看到 ,
收缩:处理完所有的词后, ,正数为1,负数为0.
如果两个网页的相似哈希相差越小,则这两个网页的相似性就越高。
第177章 密码学的数学原理
1. 密码学的自发时代
开始是简单的对应表;(截获多份可以总结规律破解)
后来一对多的对应表;
密码加密的原则:加密函数不应该通过几个自变量核函数就能推出函数本身;同文密电是大忌(日本新老机器的混用)
2. 信息论时代的密码学
信息论是情报学的直接产物。
公开密钥的方法:RSA算法,Rabin算法,El Gamal算法
共同点:有两个完全不同的钥匙,加密和解密,加密与解密数学相关