#加密解密 #blake3 #demo #认证 #密钥 #设计 #bessie

app bessie_bin

用于Bessie密码的演示/测试CLI,**不适用于生产环境**

4个版本

新版本 0.0.3 2024年8月19日
0.0.2 2024年3月4日
0.0.1 2022年1月4日
0.0.0 2022年1月2日

密码学类目中排名第935

CC0-1.0 OR Apache-2.0

55KB
885

Bessie

docs.rscrates.io 库crates.io 二进制文件

Bessie是一个基于BLAKE3的认证、分块密码。目前处于早期设计阶段。请参阅design.md。此设计的高性能实现由于需要在扩展输出中添加SIMD优化,因此受限于一些上游的重构工作。

功能和设计目标

  • 通用认证加密
  • 消息数量或大小的实际限制
  • 内部随机nonce生成,以防止错误
  • 大消息的流式加密和解密
  • 大消息的可寻址解密
  • 小消息的低开销
  • 密钥承诺

非功能和非目标

  • 非正式/强误用抵抗。内部生成随机nonce避免了许多常见的错误,将认证标签混合到流中使得nonce重用变得不那么灾难性。但nonce重用仍然允许攻击者混合不同消息的块,而分块/流结构也像AES-SIV这样的全一次构造一样,天生容易受到nonce重用攻击。
  • 没有内置的关联数据参数。需要关联数据的调用者可以使用KDF或密钥散列将其与密钥混合。

尽管Bessie密码及其库实现最终旨在用于生产环境,但bessie CLI工具将始终仅用于测试和演示目的。针对真实用户的通用加密CLI需要支持公钥加密以及各种编码和管理密钥的方式,这两者都不在本项目的范围之内。如果您是真实用户且需要通用加密CLI,请考虑age

用法

要安装仅用于测试和演示的bessie CLI工具

cargo install bessie_bin

或者从本仓库构建和安装

cargo install --path rust/bin

使用全零密钥加密和解密1MB的文件(认真地说,仅用于测试和演示目的)

head -c 1000000 /dev/urandom > myfile
bessie encrypt zero myfile myfile_enc
bessie decrypt zero myfile_enc myfile_copy
cmp myfile myfile_copy

仅解密加密文件的最后一个字节

bessie decrypt zero myfile_enc myfile_last --seek=999999

运行整个项目的测试

./test.py

依赖项

~4MB
~83K SLoC