加密机制

密码学是区块链平台安全的重要基石,贯穿着区块链从底层共识到上层应用的各层协议的全生态场景。

趣链区块链平台(以下简称“平台”)采用可插拔的全国密算法多级加密机制对于业务完整生命周期所涉及的数据、通信传输、物理连接等都进行了不同策略的加密,保障系统的安全性。具体采用散列算法、对称加密算法、随机比特生成器、传输层安全机制、密钥管理机制等密码学方式进行全链路安全防护。

平台实现了密码算法国密化,现已支持SM2、SM3、SM4、SM9等国密标准算法

加密体系

散列算法

哈希是一种散列函数,把任意长度的输入通过哈希算法,变换成固定长度的输出(哈希值),哈希值的空间通常远小于输入的空间,并且哈希函数具有不可逆性,根据哈希值无法反推输入原文的内容。

区块链支持采用国密摘要算法SM3,国际标准的安全哈希算法,例如SHA-1、SHA-256等。哈希算法用于对每个区块头进行哈希计算,生成一个哈希值,该值可以用作在区块链中唯一标识该区块的数字指纹。同时,在区块头信息中引用了上一个产生区块的哈希值,即在每一个区块中,都包含其父区块的哈希值。

正是由于这种特殊的链式结构设计,子区块有任何改动时,父区块的哈希值也会发生变化,迫使子区块中的“父区块哈希值”字段发生变化,导致产生的子区块哈希值变化。区块链平台节点之间每隔一个checkpoint会进行一次最新区块哈希的比较,如果本地维护的最新区块哈希值与区块链网络维护的最新区块哈希值一致,则能确定本地维护的区块链信息是合法的,否则表示本地节点不合法。

对称加密

区块链平台采用国密分组密码算法SM4和国际对称算法AES、3DES等进行对称加密的应用。对称加密主要应用于数据传输方面,以弥补非对称加密算法在效率上的不足。

平台在通信双方协商出一个机密共享密钥后,再基于对称加密算法保证节点间的密文传输,使得计算上破解传输内容的难度更高,从而保证平台消息传输的高安全性。

对称加密也称常规加密,私钥、或者单钥加密,一个完整的对称加密方案由五个部分组成:

  1. 明文(plaintext):原始的消息或者数据,作为算法输入
  2. 加密算法(encryption algorithm):加密算法对明文进行各种替换和转换
  3. 秘密密钥(secret key):算法输入,算法进行替换和转换都依赖于秘密密钥
  4. 密文(ciphertext):已被打乱的消息,作为加密算法的输出,取决于明文和秘密密钥(对于一个给定的消息,两个不同的秘密密钥会产成不同的密文
  5. 解密算法(decryption algorithm):本质上是加密算法的逆运算。使用密文和秘密密钥产生原始明文

非对称加密

平台采用国密椭圆曲线公钥算法SM2、国际标准算法RSA 、Diffie-Hellman、ECDSA、ECDH等实现非对称加密,应用主要包含数字签名、密钥协商和公钥加密。

平台采用了SM2等非对称加密对交易进行签名,生成相应的国密证书以此来保证平台的身份安全。

在网络通信过程中,使用会话密钥对传输的信息进行加密,可以防止黑客窃听机密消息进行欺诈等行为。区块链平台通过实现SM2等非对称加密算法的密钥协商协议完成会话密钥的建立和网络中用户之间的相互认证,保证通信双方可以在不安全的公共媒体上创建共享的机密协议,而不必事先交换任何私有信息。

传输层安全

除了上述提到的密钥协商与密文传输以外,节点间还通过传输层安全TLS(TransportLayer Security)来保证通信安全。TLS 能够在传输层保障信息传输的安全性,是目前较为通用的网络传输实施标准,在几乎所有的网络安全传输中都采用了该技术,比如google、淘宝、百度、微信等。

传输层安全是Hyperchain默认开启的功能,采用TLSCA签发的证书进行安全通信,即在传输网络传输过程中需要验证传输层安全协议证书的安全性,验证通过即可以进行正常网络通信,反之则无法进行网络通信。目前TLSCert也已完全支持国密。

密钥管理

平台可以采用通过国家密码管理局认证的用户智能密码钥匙完成密钥管理功能。智能密码钥匙用于保管用户私钥和生成SM2签名。

随机比特生成器

平台采用硬件密码卡完成上述非对称加密算法中需要使用的随机数的生成。密码卡用于生成非对称加密算法中所需要的安全随机数和保管平台私钥。