8个版本

0.3.4 2024年5月7日
0.3.3 2024年5月1日
0.2.2 2024年4月18日
0.1.0 2024年4月18日

##440加密学

Download history 296/week @ 2024-04-13 28/week @ 2024-04-20 411/week @ 2024-04-27 168/week @ 2024-05-04 8/week @ 2024-05-11 7/week @ 2024-05-18 1/week @ 2024-05-25 77/week @ 2024-06-29 48/week @ 2024-07-27

115 每月下载量

GPL-3.0-or-later

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