中国信息通信研究院发布《区块链白皮书(2019年)》,白皮书建议,多方协同推进,加强关键研究;密切关注国内外技术发展动态,加快推进包括共识机制、密码学、互操作、隐私保护等在内的核心关键技术研发;支持和培育开源软件,构建软硬件协同发展的生态体系等。其中区块链技术的核心是密码学技术,现在简单的介绍区块链技术涉及到的部分密码学技术知识。
区块链技术与密码学技术(图片来源于网络)
一、 hash算法
Hash,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,其中散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,但是不可逆向推导出输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
哈希(Hash)算法(图片来源于网络)
哈希(Hash)算法,它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。
二、 对称加密与非对称加密
对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,也称为单密钥加密。优点:加解密速度快;缺点:1.密钥管理量大2.密钥传输信道安全性更高3.数字签名的问题。非对称加密采用两个密钥来进行加密和解密,这两个秘钥是公开密钥(publickey,简称公钥)和私有密钥(private key,简称私钥)。优点:1. 加密和解密能力分开,私钥不能由公钥推导出来2. 多个用户加密的消息只能由一个用户解读(用于公共网络中实现保密通信)3. 只能由一个用户加密消息而使多个用户可以解读(数字签名)4. 无需事先分配密钥5. 密钥持有量大大减少。缺点:加解密速度慢。在比特币区块链系统中,采用非对称加密算法当中的椭圆曲线加密算法。
三、数字签名
数字签名基于非对称加密,既可以用于证实某数字内容的完整性,又同时可以确认来源。
一个典型的场景是,Alice通过信道发给Bob一个文件(一份信息)。Alice可以先对文件内容进行摘要,然后用自己的私钥对摘要进行加密(签名),之后同时将文件和签名都发给Bob。Bob收到文件和签名后,用Alice的公钥来解密签名,得到数字摘要,与收到文件进行摘要后的结果进行比对。如果一致,说明该文件确实是Alice发过来的(别人无法拥有Alice的私钥),并且文件内容没有被修改过(摘要结果一致)。
数字签名技术(图片来源于网络)
知名的数字签名算法包括DSA(Digital Signature Algorithm)和安全强度更高的ECSDA(Elliptic Curve Digital Signature Algorithm)等。除普通的数字签名应用场景外,针对一些特定的安全需求,产生了一些特殊数字签名技术,包括盲签名、多重签名、群签名、环签名等。
总而言之,区块链技术作为新兴的技术,其中大量利用了现代密码学的已有成果,包括哈希、加解密、数字签名等。另一方面,区块链系统和诸多新的场景也对密码学和安全技术提出了很多新的需求,反过来也将促进相关学科的进一步发展。







