阅读 70

压缩包密码哈希值?哈希算法1!

1974年图灵奖(IT界的诺贝尔奖)获得者、《计算机程序设计艺术》(TAOCP)作者、美国计算机科学家、斯坦福大学退休教授高德纳(Donald Knuth, 1938-)在他出版于2000年的书《排序和搜索》中考证了“哈希”(hash)一词作为计算机术语的来历。“哈希”这个词在英文中的本意是“把东西切碎”、“把事情弄的一团糟”的意思。用到计算机的语境里,也是借用了这个词的本意,指把数据切碎、弄乱掉,乱到你根本无法恢复出原来的数据。就像把一本《红楼梦》撕成无数碎片,丢到火炉里一把火烧掉,从灰烬里捡回来几十个依稀可辨的字,把这几十个字拼凑起来,就是这本红楼梦的残片。就是上帝,恐怕也难以从这残片还原出原来那本《红楼梦》的全部内容。“哈希”则比这火炉有一个更优秀的特点,那就是对于同样的内容,每次焚毁后都会剩下同样的残片,仿佛时光倒流、事件重演一般。具有这种计算“哈希”功能的计算机函数就叫做“哈希函数”(hash function),计算的结果就叫做“哈希值”(hash value)。据高德纳考证,美国IBM公司的图书馆和信息科学家汉斯·彼得·鲁恩(Hans Peter Luhn)在1953年的笔记中首次使用了“哈希函数”这个概念。这个词迅速流传开来,得到了广泛的使用。虽然直到70年代末,它才正式出现在学术刊物上。

哈希,又叫做“摘要”,“散列”,或者“杂凑”。哈希不是一种信息压缩技术,虽然它也会大量丢弃数据,只产生一个固定长度的摘要。对照片或者音乐进行有损压缩,追求的是还原度和保真度;对数据做哈希计算,追求的结果恰恰相反。哈希也不是一种加密技术,虽然它的计算结果变得像密码一样无法理解。加密是为了解密,哈希则是为了无法解密。哈希也不是一种随机数计算技术,虽然它的计算结果看上去像随机数一样无规律可循。真随机数是非确定性的,每次计算结果都不同;哈希的结果虽然看似无章可循,但是只要输入的内容是相同的,结果必定相同。

密码学哈希函数(CHF, Cryptographic Hash Function),则是一类具有独特性质的哈希函数。所有这些性质中,有三个性质是非常关键的:第一个性质就是,计算结果的分布非常稀疏,几乎不会出现两份不同的输入内容算出来同样的哈希值,这个性质叫做“免碰撞性”(collision-free)。第二个性质就是,计算结果毫无规律,你很难通过变换输入内容,然后对比内容及其哈希之间的规律,试图破译一个陌生哈希值的原始输入内容,这个性质叫做“隐藏性”(hiding)。第三个性质就是,给出一个指定的哈希值,找到一个输入内容,能够计算出这个哈希值的最有效方法,就是穷举尝试,又称作暴力破解,这个性质叫做“谜题友好性”(puzzle-friendly)。而密码学哈希函数的这三个特性,对于中本聪成功设计出比特币,起到了决定性的关键作用。

#欧易OKEx##比特币[超话]#

文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐