1个不稳定版本
0.1.0 | 2023年10月13日 |
---|
#2354 在 加密学
19KB
417 行
顺序保持加密(OPE)项目
概述
该项目是顺序保持加密(OPE)的Rust实现。OPE是一种加密技术,用于加密有序数据,使得加密后的数据仍然保持原有的顺序。这使得可以在加密数据上执行范围查询和其他基于顺序的操作,而无需先进行解密。
功能
- 实现了OPE算法,在保持顺序的同时加密和解密数据。
- 允许对加密数据进行范围查询。
- 提供命令行界面,便于与库交互。
- 安全高效,开销最小。
- 代码库文档完善,便于理解和贡献。
先决条件
- Rust(最新稳定版本)
- Cargo(包含在Rust中)
安装
cargoadd ope-simplified
使用
作为库
通过在您的Rust项目中添加以下内容来包含此crate:
[dependencies]
ope-simplified: "0.1.0"
然后您可以在代码中使用OPE库,例如:
use ope_simplified::*;
fn main() {
let key = b"test_key";
let ope = Ope::new(key, 0, 20).unwrap();
let plaintext = 5;
let ciphertext = ope.encrypt(plaintext).unwrap();
assert!(ope.out_range.contains(ciphertext));
let decrypted = ope.decrypt(ciphertext).unwrap();
assert_eq!(plaintext, decrypted);
}
研究致谢
该项目得益于顺序保持加密(OPE)领域的开创性研究。特别值得一提的是Boldyreva、Chenette、Lee和O’Neill发表的奠基性论文“顺序保持对称加密”,为实际OPE方案奠定了基础。该论文于2009年发表,全面考察了OPE的安全特性和用例,并自那以后成为该领域后续发展的基石。另一项重要工作是Chenette、Lewi、Weis和Wu发表的“具有有限泄漏的实际顺序揭示加密”,它提供了一种不同的OPE方法,最大限度地减少了泄漏。他们的贡献对密码学社区至关重要,并直接启发了本项目中实现的算法和方法。我们还要感谢其他各种论文和研究文章,它们共同推动了OPE技术的发展。通过他们的严谨研究,使得处理有序数据变得既安全又高效。
贡献
欢迎对此项目做出贡献。如果您发现了一个错误或想出一个新功能,请创建一个issue。如果您想贡献代码,请fork仓库并提交一个pull request。
许可证
本项目的许可证为MIT许可证 - 有关详细信息,请参阅LICENSE文件。
致谢
本项目由热衷于安全和密码学的贡献者开发和维护。特别感谢所有为使本项目成为可能做出贡献的人。
本项目基于数学文献https://eprint.iacr.org/2012/624.pdf
依赖项
~2.8–4MB
~82K SLoC