vlambda博客
学习文章列表

区块链相关的密码学——对称加密


想象一下,如果我们不采用任何技术手段,在一条不加密的网络链路上传输信息可能会面临哪些问题呢?


• 窃听风险:黑客可能监听双方的通信链路,偷听双方的通信内容。


• 篡改风险:黑客可以随意修改双方的通信内容,使得双方无法正确地传递信息。


• 冒充风险:黑客可以冒充任意一个人的身份参与通信。


可以看到,如果在一条不加密的网络链路上通信是无法保证信息的可靠传输的,在此基础上建立的应用也就没有可信之说。为了解决上面的三个问题,我们需要一个密码体系。


基本元素


通常一个密码体系由一个五元组组成,这个五元组的构成如下。


• 明文M:原始数据,待加密的数据。


• 密文C:对明文M进行一定变换或伪装后得到的输出。


• 密钥K:加密或解密中所使用的专门工具。


• 加密E:将明文M通过密钥K变换或伪装得到密文C的过程。


• 解密D:将密文C还原成明文M的过程。


一个密码体系的构建是基于这个五元组{M,C,K,E,D}的,无论是传统互联网,还是以太坊千亿美元市值的数字货币都是基于这个密码体系的,甚至包括整个区块链系统都是基于这个密码体系展开的。


需要特别注意的是,并非所有加密算法的安全性都可以在数学上得到证明。


目前被大家公认的高强度加密算法,以及其具体实现往往经过长时间和各方面充分实践和论证后,才被大家认可,但是并不代表其不存在漏洞。


因此自行设计和发明未经大规模验证的加密算法是一种不太明智的行为,即使不公开算法的加密过程,也很容易遭到破解,无法在安全性上得到保障。


对称加密


对称加密(Symmetric Encryption)算法是一种混淆算法,能够让数据在非安全信道上进行安全通信。


对称加密是指进行明文到密文加密时所使用的密钥和进行密文到明文解密时所使用的密钥是相同的。


例1:



1.当Alice需要向Bob发送一些加密消息时,需要先向Bob请求获得密钥K,

2.当Alice获得密钥K后就可以使用密钥对消息加密,

3.当加密后的消息发送给Bob后,Bob同样需要使用密钥K进行解密。

结论:只要Alice和Bob能保证密钥K的安全,那么他们就可以一直安全地通信。


优点:对称加密的优点是加密速度快,保密强度高,适用于对大量数据进行加密的场景。



为了解决这个问题,一般需要借助基于椭圆曲线的迪菲-赫尔曼密钥交换(Elliptic Curve Diffie–Hellman keyExchange,ECDH)协议来完成密钥分发。


缺点2:在对称加密中,每一对发送者和接收者都需要使用一个共同密钥。于是在区块链这种拥有大量节点、需要大规模通信的网络中会产生大量的密钥,这无疑会极大增加节点管理密钥的负担。


对称加密代表算法:DES、AES、SM4。