16 个版本 (8 个破坏性更新)
0.9.1 | 2023 年 8 月 17 日 |
---|---|
0.9.0 | 2023 年 7 月 22 日 |
0.9.0-rc.1 | 2023 年 6 月 29 日 |
0.8.2 | 2022 年 10 月 29 日 |
0.1.0 | 2020 年 2 月 25 日 |
在 密码学 中排名第 2137
每月下载量 86,451
用于 101 个 程序包(直接使用 36 个)
49KB
573 行
RustCrypto: crypto_box
NaCl 的 NaCl 的 crypto_box
原语的纯 Rust 实现,提供公钥认证加密,结合了 X25519 Diffie-Hellman 函数和 XSalsa20Poly1305 认证加密密文,形成一个椭圆曲线集成加密方案 (ECIES)。
关于
想象一下,Alice 想让一些贵重物品送到她那里。因为这是贵重的,她想要确保它安全到达(即没有被打开或篡改)并且它不是伪造的(即它确实是她期望的发送者的,没有人玩老把戏)。
她可以这样做的一种方式是给发送者(我们叫他 Bob)提供一个她选择的高安全性的盒子。她提供了这个盒子,还提供了另一个东西:一把锁,但一把没有钥匙的锁。Alice 把那把钥匙全部留给了自己。Bob 可以把物品放在盒子里,然后把锁锁上,但一旦锁被锁上,除非有人有 Alice 的私钥,否则没有人能打开这个盒子。
但这里有个转折,Bob 也给盒子上了一把锁。这把锁使用 Bob 向世界公布的一把钥匙,如果你有一把 Bob 的钥匙,你就知道这个盒子是 Bob 发来的,因为 Bob 的钥匙可以打开 Bob 的锁(我们想象一个即使你知道钥匙也不能伪造锁的世界)。
为了让爱丽丝能够打开盒子,她需要两把钥匙:她自己的私钥,用于打开自己的挂锁,以及鲍勃的已知钥匙。如果鲍勃的钥匙无法打开第二个挂锁,那么爱丽丝就知道这不是她从鲍勃那里期望得到的盒子,它是一个伪造品。
安全注意事项
该容器已通过Cure53进行了一次安全审计(版本0.7.1),没有发现重大问题。我们感谢Threema为审计提供资金。
许可证
许可方式为以下之一
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交用于包含在作品中的任何贡献,将双重许可如上所述,不附加任何额外的条款或条件。
依赖关系
~1.7–2.8MB
~58K SLoC