开源进展 | WeDPR实现算法级轻量部署
WeDPR是微众银行区块链围绕数据隐私保护核心业务场景,打造的一套即时可用、场景式隐私保护解决方案。方案细节参见《WeDPR 方案白皮书》。
开源以来,WeDPR积极听取行业建议和社区反馈,致力于提供透明可信、开箱即用的隐私保护解决方案,缩短合作伙伴实施路径。本次更新,是在现有代码仓库的基础上,以算法为划分粒度进行深度重构,并新增国密、可验证随机函数和密钥管理相关算法。具体说明如下:
进行算法级模块化重构
数据隐私保护需求五花八门,应用场景不同,所需使用的核心算法组件亦各不相同。因此,WeDPR倡导“依赖解耦、配置灵活”的设计理念,设计上极致模块化,每个算法都可独立复用。
为了更好地支持各位开发者对WeDPR系列开发包的自由裁剪和轻量部署,本次更新对现有代码仓库以算法为划分粒度,进行了深度重构,在最小配置下,编译后的密码算法库的大小仅为51KB!
以移动端和物联网应用程序为例,升级后的应用程序发布包大小将直接提升终端用户体验,带来更短的下载更新时间,占用更少的设备存储空间,应用程序的运营成本也可以相应减少,例如网络流量计费更低。
重构后,我们对WeDPR-Lab Core进行了拆分。原WeDPR-Lab Core中基础算法组件被移到新的密码模块仓库WeDPR-Lab Crypto。
举例来说,若只需要使用“ECIES加解密算法”的Java调用接口,则只需在WeDPR-Lab Crypto的Java FFI目录下,打开ECIES加解密算法相关的特性开关,进行如下条件编译即可,未打开的其他算法特性都不会被编译,以此实现了算法级轻量部署。
cd ffi/ffi_java/ffi_java_crypto/ && cargo build --features "wedpr_f_base64, wedpr_f_ecies_secp256k1" --no-default-features
新增国密、VRF和密钥管理相关算法
在原有算法的基础上,本次更新新增了SM2、SM3国密算法、可验证随机函数VRF(Verifiable Random Function)、密钥管理相关算法。
国密即国家密码局认定、我国自主设计的国产密码算法。其中国密SM2为基于椭圆曲线密码的公钥密码算法;国密SM3为密码杂凑算法,也称消息摘要和哈希算法,适用于数字签名、消息认证码的生成与验证、随机数的生成等。
VRF能够实现只有私钥持有者才能计算与原始输入关联的随机数,但任何公钥持有者都可以验证该随机数的正确性,在各类需要保证协议公平性的场景中(如区块链共识协议)具有广泛应用。
密钥作为使用各类密码学组件的关键数据,密钥管理算法为用户生成和管理密钥的常见需求(主密钥派生子密钥等)提供了工程实现。
提供选择性认证披露SCD靶场
上一次更新中,选择性认证披露(Selective Certificate Disclosure, SCD)场景解决方案的核心算法组件正式开源。本次更新为SCD场景解决方案的正确性和完备性提供了靶场体验环境,关于SCD的零知识性,大家可以通过分析开源代码,自由构建模拟体验环境。
WeDPR-Lab Crypto v1.0.0内容介绍
该代码仓库包含了WeDPR-Lab Core v1.3.0之前版本中的所有基础密码算法组件和本次更新新增的基础算法组件,具体包括:
1. 核心密码算法组件
基础编解码
公钥加解密算法
基于Secp256k1的ECIES加解密
哈希算法
国密SM3
Keccak256
公钥签名算法
国密SM2签名及验证
基于Secp256k1的签名及验证
VRF算法
基于Curve25519的VRF生成及验证
零知识证明
基于离散对数系统的零知识证明
- 加和证明及验证
- 乘积证明及验证
范围证明及验证
2. FFI接口:支持交叉编译跨语言、跨平台所调用的FFI适配接口
3. 其他基础工具代码
说明:
密码算法组件迁移过程存在接口变动,因而,WeDPR-Lab Crypto v1.0.0与WeDPR-Lab Core v1.3.0之前版本可能存在部分算法接口不兼容的情况。
仓库地址:
https://github.com/WeBankBlockchain/WeDPR-Lab-Crypto
仓库镜像:
https://gitee.com/WeBankBlockchain/WeDPR-Lab-Crypto
文档地址:
https://wedpr-lab.readthedocs.io/zh_CN/latest
WeDPR-Lab Core v1.3.0新增的核心算法组件
WeDPR-Lab Core v1.3.0中,我们新增密钥管理相关套件(Key Tool Box, KTB),具体包含以下核心算法组件:
1. 密钥生成及管理算法
密钥助记词的生成
基于助记词的密钥生成
基于分层结构的密钥派生
2. Rust SDK:封装底层算法,提供易用、易扩展、跨语言的编程接口
3. FFI接口:支持交叉编译跨语言、跨平台所调用的FFI适配接口
4. 其他基础工具代码
仓库地址:
https://github.com/WeBankBlockchain/WeDPR-Lab-Core
仓库镜像:
https://gitee.com/WeBankBlockchain/WeDPR-Lab-Core
文档地址:
https://wedpr-lab.readthedocs.io/zh_CN/latest
欢迎社区踊跃参与开源共建
上述场景解决方案及其功能所涉及的最新代码和技术文档已同步更新,用户可深入体验演示程序,并基于开源代码,深入了解密码学算法的应用,与社区一同对算法进行优化和扩充。
欢迎各位数据隐私保护同路人,踊跃参与开源共建。欢迎进入专业交流群,共探数据隐私保护未来,进群可在公众号对话框回复【小助手】。
微信扫描关注公众号,及时掌握新动向
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场