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
   112   113   114   115   116   117   118   119   120   121   122