Page 117 - 《软件学报》2026年第1期
P. 117
114 软件学报 2026 年第 37 卷第 1 期
提升, 能够适应更复杂的应用场景. 其中, 较为特殊的加密算法包括国密算法、椭圆曲线加密算法、零知识证明算
法以及秘密共享算法. 国密算法是由国家密码局认定的一系列国产加密算法, 主要包括 SM2 (椭圆曲线公钥密码
算法)、SM3 (哈希算法) 和 SM4 (分组密码算法). 其中, SM2 是我国在 2010 年发布的一款自主设计的椭圆曲线公
钥密码算法, 符合我国的安全需求, 并得到了广泛应用. SM4 是于 2006 年发布的一款对称加密算法, 广泛用于数
据加密. ECC 是一种基于椭圆曲线数学理论的非对称加密算法. 除了 SM2 之外, Secp256k1 [101] 是另一种常见的椭
圆曲线加密算法, 广泛用于比特币和以太坊等区块链系统中, 因其高安全性、高效率和广泛应用而受到青睐.
表 4 区块链加密算法分类
加密算法 算法类型 具体算法名称
对称加密算法 SM4, AES [102]
保证安全性 非对称加密算法 SM2, Secp256k1, ElGamal [103] , Paillier [104]
其他 后量子密码, BulletProofs [105] , 同态加密 [106] , Shamir [107] , 代理重加密
签名算法 分布式签名, 环签名, ECDSA, BLS聚合签名, EDDSA, 群签名
保证完整性
哈希算法 SM3, SHA-256 [108] , RIPEMD160, Keccak-256 [109] , BLAKE2 [110]
传统加密算法在特定场景下存在一定的局限性. 例如, 当需要向第三方证明某些信息或完成某些操作, 但又不
希望泄露具体细节时, 传统加密算法可能无法满足需求. 零知识证明 (zero knowledge proof, ZKP) [111] 算法能够很好
地满足这一需求, 在保护信息隐私的同时实现证明. 目前, 相关的零知识证明算法包括 BulletProofs++ [112] 和 zk-
[113]
SNARKs . BulletProofs++是一种高效且紧凑的零知识证明机制, 主要侧重于提高效率和降低证明大小; 而 zk-SNARKs
是一种强大且广泛应用的零知识证明体系, 以简洁性和非交互性为特点, 尤其在区块链等特定场景中表现出色. 在
涉及多人协作且包含敏感信息的场景中, 秘密共享技术至关重要. 为此, 国产区块链软件分别使用了 Shamir 算法 [107]
和代理重加密算法 [114] . Shamir 算法主要用于秘密共享和密钥管理, 例如在分布式系统中安全地分享密钥或在密码
学中保护敏感信息, 常见应用场景包括密钥分发和秘密共享. 代理重加密算法则用于在不可信环境中实现安全的
密文转换和共享. 它允许授权的代理将用一方公钥加密的密文转换为用另一方公钥加密的密文, 而代理无法获取
原始明文. 该算法的主要应用场景包括数据贡献和云存储.
我们对不同区块链软件所使用的加密算法进行了统计, 结果如图 10 所示.
对称加密 非对称加密 其他
SM2 18 同态加密 15
SM4 14 代理重加密 2
Secp256k1 15
后量子密码 1
Paillier 3
AES 9 Shamir 1
ElGamal 1 BulletProofs 1
0 5 10 15 20 0 5 10 15 20 0 5 10 15 20
安全性 数量 数量 数量
哈希算法 签名算法
SM3 18 ECDSA 15
SHA-256 16 环签名 9
群签名 3
Keccak-256 8
分布式签名 2
RIPEMD160 6 EDDSA 2
BLAKE2 1 BLS 聚合签名 1
0 5 10 15 20 0 5 10 15 20
完整性 数量 数量
图 10 链加密算法使用情况
现象 12: 通过分析可以发现, 国产区块链软件在加密算法的选择上呈现多元化, 其中国产加密算法如 SM4、
SM2、SM3 等广泛应用, 同时国际通用算法也因成熟度和兼容性被部分采用. 具体地, 在保证数据安全性的算法
中, 共有 23 个区块链软件明确说明了其所使用的对称加密算法, 其中使用 SM4 的区块链软件有 14 个, 使用 AES

