客观日本

对密码理论和哈希函数的介绍----比特币与日本的渊缘(2)

2017年08月25日 信息通信

密码理论和哈希函数的

a.关于密码的一点常识

首先,我们来看如何利用密码保障安全。

Document

如果甲乙双方使用谁都可以看懂的文字即“明文”通讯,那么就等于没有秘密可言。所以,要做加密处理。加密的一个最简单的方法是使用一把密钥加密。如右图所示,一段明文“I Love You”,经过密钥加密后变成乱码一样的密文“44GT44KM44Gv5a+”。用同样一把密钥解密后,即可恢复原来的明文内容。

但是,这一方法最大的问题就是甲乙共用的这把密钥难于管理,在传递过程中容易被破译。如果密钥被第三方截获的话,那么所有秘密就不成其为秘密了。

Document

现在的网络普遍采用的是一种配对使用的密码钥匙,即一把公钥一把私钥,公钥告诉通讯的对方,让其把明文加密,然后用私钥对其解密。如右图所示。


形象一点,比方爱丽丝把写给鲍伯的情书用鲍伯的公钥加密,鲍伯用自己的私钥解密以后,就可以看懂这封信的内容。

Document

用这种方法通讯,不必把私钥公诸于众,只要自己妥善保管,泄密的可能性就会下降。

现代网络通信离不开密码,比如网购,比如网上银行、证券交易等等。为了客户的安全,系统里绝对不敢保存客户输入的密码源码,因为这样做的话,万一系统遭到攻击,或者内部人员偷走了这份密码簿,就等于把客户信息拱手相让。那么,系统里保存的是什么呢?答案是经过变换的代码。有一种叫做哈希函数(hash function)的数学变换,是常用的方法。

b. 哈希变换

哈希变换的特征是不可逆。下图左边是输入的数据,右边是经过哈希变换以后的哈希值。这是一个单向变换,不可以倒推。而且,输入数据的微小变化,都会产生完全不同的哈希值。比方图中的两串输入字符“1234567890”与“1234567891”,只有末尾的一位数字不同,经过哈希转换后的目标代码则是完全不同的哈希值。

Document

包括银行在内的现代交易系统里保存的客户密码信息,基本都是经过变换的哈希值。黑客即使窃取了这些哈希值,并不能依此特定客户,从而窃取客户的财富。

Document

哈希函数的另一个特征是对信息的压缩,上图中左边的输入可以是一大段文字,甚至是一本书。这等于说右边的哈希值是左边输入信息的识别符。通俗的理解可借助于右图。“江苏镇江王老五”这一串文字经过变换后压缩成一位数字“1”,“湖南湘潭王老五”则变换为数字“3”。

有了这些铺垫,我们就可以看看区块链是什么样子了。

文・图 / 戴维

回到本文

参考文献
基于区块链构建去中心化、自治、安全的物联网 - 中兴通讯
《精通比特币》
关于Bitcoin的一切
【2017最新版】ブロックチェーンを応用した革新的サービス13選