#encryption #ibe #ecc #shared-secret

pg-core

PostGuard核心库通信和字节流操作

4个版本

0.3.0 2023年9月26日
0.3.0-rc.22023年7月11日
0.3.0-rc.02023年5月31日

#943 in 密码学

25每月下载量

MIT许可证

130KB
2.5K SLoC

PostGuard核心

PostGuard是一种密码协议,它利用基于身份的原始协议在消息中提供机密性、完整性和真实性。

⚠️ 警告:此实现尚未经过审计,不适合用于生产环境。使用风险自负!

概述

此库实现了一种混合签名后加密(StE)协议

  • KEM:首先,使用多收件人基于身份的密钥封装(mIBKEM)封装所有收件人的共享秘密。收件人的身份用于加密。

  • 签名:KEM密文和所有必需的解密信息都在头部中可用。头部是公开可见的,因此所有敏感内容都被清除。使用发送者的身份下的基于身份的签名对头部、密文和任意长消息进行签名。此身份只有前一步的接收者可见。

  • DEM:将任意大小的有效载荷流一次性(在内存中)使用AEAD写入,或使用用户定义的段(流式传输)并使用论文中描述的共享秘密作为对称密钥加密在线认证加密及其nonce重用滥用抗性

对称加密后端

此库提供两个对称加密提供商,Rust CryptoWeb Crypto。默认情况下,使用rust功能启用Rust Crypto后端。可以通过web功能启用Web Crypto后端,但仅当针对wasm32-unknown-unknown时。

流式传输与内存

对于大型或任意大小的数据流,启用 stream 功能。在此模式下,在解密过程中,每个有效载荷段单独进行验证,这使数据在流耗尽之前对下游消费者来说是安全的。请注意,选择适合您应用的方案由开发者决定。只有在您绝对确定您仅加密小消息的情况下,才使用内存变体。

依赖项

~8–25MB
~349K SLoC