上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1 基本元素
通常一个密码体系由一个五元组组成,这个五元组的构成如下。
• 明文M:原始数据,待加密的数据。
• 密文C:对明文M进行一定变换或伪装后得到的输出。
• 密钥K:加密或解密中所使用的专门工具。
• 加密E:将明文M通过密钥K变换或伪装得到密文C的过程。
• 解密D:将密文C还原成明文M的过程。
一个密码体系的构建是基于这个五元组{M,C,K,E,D}的,无论是比特币,还是以太坊千亿美元市值的数字货币都是基于这个密码体系的,甚至整个区块链系统都是基于这个密码体系展开的。
需要特别注意的是,并非所有加密算法的安全性都可以在数学上得到证明。目前被大家公认的高强度加密算法,以及其具体实现往往经过长时间和各方面充分实践和论证后,才被大家认可,但是并不代表其不存在漏洞。因此自行设计和发明未经大规模验证的加密算法是一种不太明智的行为,即使不公开算法的加密过程,也很容易遭到破解,无法在安全性上得到保障。
实际上,密码学安全是通过算法依赖的数学问题来进行保密的,不是通过对算法实现的过程来进行保密的。
在后续内容中,我们将会讨论多种加密方法及其在区块链中的应用场景。在讨论密码学的时候,为了方便起见,通常会使用Alice和Bob这两个名字。这两个名字是Ron Rivest在1977年介绍RSA密码系统的论文中被首次使用的。此后,又有一些其他的名字加入了密码学相关的讨论,如将一个具备窃听能力的攻击者命名为Eve,并将另一个能妨碍网络流量的攻击者命名为Mallory。