平台动态

性能提升 47 倍,Safeheron TSS-RSA 算法正式开源

By Safeheron Team - 2022-06-25

Safeheron 是一家透明、开源的数字资产自托管平台,创始初心即为加密世界贡献透明、开源、可验证的安全自托管基础设施,提高与丰富区块链的原生特性 ,构建区块链场景中的最佳密码学实践。

近期,Safeheron 团队根据论文《Practical Threshold Signatures》,实现且开源 TSS-RSA (Threshold Signature Scheme of RSA) 算法库,并与 Arweave 生态项目方展开了深入合作

Check out Safeheron RSA key sharding on GitHub

算法介绍

门限签名是一种分布式多方签名协议,包含分布式密钥生成,签名和验签算法。例如一个 ( 2,3 ) 门限方案,门限值为 3,即三个用户共同管理一个私钥。每个人都只持有部分私钥分片,其余分片不会公开。为了进行交易签名,需要将至少两个用户的签名数据整合在一起才能构建有效签名。

TSS-RSA 是使用 C++ 开发的基于 RSA 的门限签名算法,与传统的门限签名相比,其优势是:

  • 基于 RSA 困难问题;
  • 签名共享生成和验证是完全非交互的;
  • 单个私钥分片签名的内容体积会更小。

此外,相较于传统多重签名来说,TSS-RSA 生成的签名数据不会多于多重签名生成的签名数据。交易时使用 TSS-RSA 只会伴随一个签名数据,所以交易处理费(有时称为交易费或燃料费)可以被控制在最低水平且将密钥的生成和密钥管理的责任分给多方,安全消除单私钥的风险负担。

功能使用

该库依赖于 OpenSSL, Protocol Buffers 以及 crypto-suites-cpp 开源库,使用 Cmake 实现自动化编译,目前可在 macOS 和 Linux 上运行。其中 crypto-suites-cpp 为 Safeheron 开发的一个密码学套件库,里面包含常见的加密算法、哈希算法,以及秘密共享方案和零知识证明协议等。

功能可分为四个功能模块,分别是生成私钥分片生成签名分片签名分片的合并签名验证

生成私钥分片

生成私钥分片前,需要先指定初始化参数,随后调用 GenerateKey 接口生成私钥分片。
Key shard generation

生成签名分片

使用 EncodeEMSA_PSS 接口对消息进行预处理,随后使用生成的私钥分片对预处理后的消息进行签名,生成签名分片,同时生成该签名分片的正确性证明。 Signature shard generation

签名分片的合并

调用 CombineSignatures 接口对生成的签名分片进行合并。 Signature shard combination

签名验证

调用 VerifyEMSA_PSS 接口验证签名的完整性,随后调用 VerifySignature 接口验证签名的正确性。验证流程跟标准的 RSA 算法是一致的。 Signature verification 运行结果前往

性能展示

以 Golang 开发的开源项目 TCRSA 也是对 Practical Threshold Signatures 论文的一种实现,但在效率方面不尽如人意。

我们团队为明确 TSS-RSA 库和 TCRSA 库的效率差异,分别进行了 Benchmark 测试,并对以上四个功能模块进行对比分析,测试结果如下所示:
运营环境: os: linux,arch: amd64,cpu: 2 X 2499.99 MHz
参数取值: n (RSA-module bits) = 4096, L(participants counter) = 5, K(threshold) = 3
TSS-RSA takes an average of 30 seconds to generate all key shards

对比以上两表可知,在运行环境和参数取值相同的情况下,TSS-RSA 和 TCRSA 两种算法实现的效率差异主要体现在私钥分片生成的过程。其中 TSS-RSA 执行一次私钥分片生成仅需要 35.3s,而 TCRSA 执行一次私钥分片生成需要 1673.92s,约是前者的 47.4 倍。进一步地,TSS-RSA 的签名分片生成过程也比 TCRSA 的快约 2.5 倍

总体来看,TSS-RSA 执行一轮完整的签名生成和验证需要 35.55s,而 TCRSA 执行完一轮完整的签名生成和验证需要 1674.79s,后者所需时间约是前者的 47 倍。

未来计划

Safeheron 与 Arweave 生态的金融基础设施的 everPay(everFinance)达成战略合作,并在不久后会推出可信 RSA 密钥分片服务 (TEE Based RSA Key Shard Service),持续为其项目及整个 Arweave 生态提供坚实有力的安全基础设施支持。

可信 RSA 密钥分片服务采用了基于 Intel CPU 硬件提供的 SGX 机密计算技术,通过将 TSS-RSA (Threshold Signature Scheme of RSA) 算法中生成密钥和分片的整个过程放入可信执行环境中执行,保障 RSA 密钥可用且仅对硬件加密芯片可见,解决了中心化生成 RSA 密钥存在的潜在安全问题。与此同时,基于 Safeheron 提供的独有企业级安全解决方案,配合 Intel 的远程认证技术,保证密钥分片生成的整个流程是可信的,且这种可信是从技术上可证明的。

届时,Safeheron 也会将整个可信 RSA 密钥分片服务开源,通过完全透明化的方式来保证系统的安全可信,为区块链安全贡献力量。