8个版本
0.3.4 | 2024年5月7日 |
---|---|
0.3.3 |
|
0.2.2 | 2024年4月18日 |
0.1.0 | 2024年4月18日 |
##440 在 加密学
115 每月下载量
26KB
361 行
False Bottom:一种可否认加密方案
False Bottom是一种 可否认加密 方案。
名称“False-Bottom”暗指魔术师常用的道具,魔术师有一个盒子,可以打开,看起来是空的或者里面有东西,隐藏在假底下面。这个方案是为了达到同样的效果,因此得名。
因此,与传统的加密算法不同,False Bottom允许对单个密文进行多个消息的加密和解密。
每次添加都会返回一个特定的密钥,该密钥只能用于解密添加的消息。
技术论文链接: 这里
安全提示:此库尚未经过审计。请自行承担使用风险。
使用和文档
在您的项目目录中运行以下命令以添加此库。
cargo add false-bottom
或者,您可以查看 crates.io,使用Cargo.toml
文件将此库添加到您的项目中。
文档可在 docs.rs 上找到。
示例
这些示例在 examples 目录中提供。使用以下命令运行它们
cargo run --example <filename>
加密
use false_bottom::{FalseBottom, Fb128};
fn main() {
// Input messages
let msg1 = "Weather department warns of heavy rains within the upcoming two days";
let msg2 = "I have gathered intel regarding the government's illegal spying";
// Cipher initialization
let mut fb = Fb128::init(12, 12);
// Encryption (Adding messages is not limited to 2)
let key1 = fb.add(&msg1.as_bytes());
let key2 = fb.add(&msg2.as_bytes());
// Decryption
let decr1 = fb.decrypt(&key1).unwrap();
let decr2 = fb.decrypt(&key2).unwrap();
let result1 = String::from_utf8(decr1).unwrap();
let result2 = String::from_utf8(decr2).unwrap();
assert_eq!(msg1, result1);
assert_eq!(msg2, result2);
}
待办事项
- 添加更多块大小。
- 添加编辑和删除密文中添加的消息的功能。
许可证
版权所有 © 2024 K Shiva Kiran <shiva_kr at riseup dot net>。
此库是免费软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分配和/或修改它,许可证版本为3,或者(根据您的选择)任何更高版本。
此程序的分发是希望它会是有用的,但没有提供任何保证;甚至没有关于适销性或特定用途适用性的暗示保证。有关详细信息,请参阅GNU通用公共许可证。
致谢
此算法由Shahzad Ahmad <shahzad dot ahmad at jku dot at>设计。
技术论文可在此获得 这里。
依赖关系
~3MB
~66K SLoC