(高德纳,图灵奖获得者。图片来源于网络)
本篇看点:密码学哈希函数的哪三个特性,对于中本聪成功设计出比特币,起到了决定性的关键作用?
前情回顾:
【连载】比特币史话 | 椭圆曲线(3)
【连载】比特币史话 | 量子霸权(1)
【连载】比特币史话 | 量子霸权(2)
【连载】比特币史话 | 量子霸权(3)
正文:
1974年图灵奖(IT界的诺贝尔奖)获得者、《计算机程序设计艺术》(TAOCP)作者、美国计算机科学家、斯坦福大学退休教授高德纳(Donald Knuth, 1938-)在他出版于2000年的书《排序和搜索》中考证了“哈希”(hash)一词作为计算机术语的来历。“哈希”这个词在英文中的本意是“把东西切碎”、“把事情弄的一团糟”的意思。用到计算机的语境里,也是借用了这个词的本意,指把数据切碎、弄乱掉,乱到你根本无法恢复出原来的数据。就像把一本《红楼梦》撕成无数碎片,丢到火炉里一把火烧掉,从灰烬里捡回来几十个依稀可辨的字,把这几十个字拼凑起来,就是这本红楼梦的残片。就是上帝,恐怕也难以从这残片还原出原来那本《红楼梦》的全部内容。“哈希”则比这火炉有一个更优秀的特点,那就是对于同样的内容,每次焚毁后都会剩下同样的残片,仿佛时光倒流、事件重演一般。具有这种计算“哈希”功能的计算机函数就叫做“哈希函数”(hash function),计算的结果就叫做“哈希值”(hash value)。据高德纳考证,美国IBM公司的图书馆和信息科学家汉斯·彼得·鲁恩(Hans Peter Luhn)在1953年的笔记中首次使用了“哈希函数”这个概念。这个词迅速流传开来,得到了广泛的使用。虽然直到70年代末,它才正式出现在学术刊物上。[1][公众号:刘教链]
哈希,又叫做“摘要”,“散列”,或者“杂凑”。哈希不是一种信息压缩技术,虽然它也会大量丢弃数据,只产生一个固定长度的摘要。对照片或者音乐进行有损压缩,追求的是还原度和保真度;对数据做哈希计算,追求的结果恰恰相反。哈希也不是一种加密技术,虽然它的计算结果变得像密码一样无法理解。加密是为了解密,哈希则是为了无法解密。哈希也不是一种随机数计算技术,虽然它的计算结果看上去像随机数一样无规律可循。真随机数是非确定性的,每次计算结果都不同;哈希的结果虽然看似无章可循,但是只要输入的内容是相同的,结果必定相同。[公众号:刘教链]
密码学哈希函数(CHF, Cryptographic Hash Function),则是一类具有独特性质的哈希函数。所有这些性质中,有三个性质是非常关键的:第一个性质就是,计算结果的分布非常稀疏,几乎不会出现两份不同的输入内容算出来同样的哈希值,这个性质叫做“免碰撞性”(collision-free)。第二个性质就是,计算结果毫无规律,你很难通过变换输入内容,然后对比内容及其哈希之间的规律,试图破译一个陌生哈希值的原始输入内容,这个性质叫做“隐藏性”(hiding)。第三个性质就是,给出一个指定的哈希值,找到一个输入内容,能够计算出这个哈希值的最有效方法,就是穷举尝试,又称作暴力破解,这个性质叫做“谜题友好性”(puzzle-friendly)。而密码学哈希函数的这三个特性,对于中本聪成功设计出比特币,起到了决定性的关键作用。[公众号:刘教链]
【未完待续】(公众号:刘教链)