12. 加密服务支持
12.1. 加密算法
12.1.1. 概述
长安链使用多种密码学算法为链上成员及节点提供认证鉴权和隐私保护。
12.1.2. 丰富的隐私保护、认证鉴权能力
长安链使用传统的签名算法,配合证书体系和TLS协议,为区块链上的通信提供可靠性保障和基本的隐私保护。
长安链在对节点、用户进行认证鉴权时,使用证书体系,把节点、用户所属的组织、拥有的身份等信息都写入证书中,并签名防止篡改。证书中使用的签名算法可以在SM2-SM3国密签名算法套件、ECDSA-SHA256国际标准算法套件中进行选择。
长安链支持TLS协议,在传输时为数据提供隐私保护和完整性校验。除了国际标准的TLS签名算法套件之外,还支持SM2-SM3签名算法套件在TLS协议中的使用。
12.1.2.1. 密码算法基本组件
长安链为智能合约提供了多种密码算法的调用接口:
签名:国密SM2、ECDSA、ED25519等;
非对称加密:国密SM2、ElGamal、ECIES等;
对称加密:国密SM4、AES等,配合GCM、CBC等分组模式;
哈希:国密SM3、SHA2系列、SHA3系列等。
长安链支持多种密码算法引擎, 并支持可选配置:
12.1.2.2. 同态加密
长安链在合约环境中支持Paillier同态加密算法,提供对密文进行加、减、乘运算的能力,支持负数。
12.1.2.3. 零知识证明
长安链引入Bulletproofs零知识证明算法,配合Pedersen承诺算法,在支持在链上对密文进行加、减、乘运算的同时,为计算结果提供范围证明,达到不解密获取明文就能判断计算结果合法性的效果。
12.1.2.4. HIBE
长安链使用Boneh-Boyen-Goh的HIBE算法,从算法上为密文的解密能力提供一个树形权限管理结构,在无需可信任的第三方的情况下实现了细粒度的属性读权限管理体系。
以上提及的密码学算法会逐步开源。
12.1.2.5. 硬件加密
长安链支持通过pkcs11标准接口接入硬件加密设备,用来保护节点共识私钥、用户交易签名私钥等。
12.1.2.6. 国密TLS设计和实现
长安链支持启用国密TLS,为长安链网络中节点之间的p2p通信、sdk与节点之间通信提供安全保护。
12.1.2.7. 密钥管理系统KMS
长安链支持密钥管理系统KMS,节点可以通过调用KMS进行共识投票,SDK可以通过调用KMS进行交易签名授权等。