3个版本
使用旧的Rust 2015
0.2.3 | 2021年11月1日 |
---|---|
0.2.2 | 2021年11月1日 |
0.2.0 |
|
0.1.1 |
|
#735 in 密码学
345KB
7.5K SLoC
SIDH-RS
SIDH-RS库是用Rust语言编写的高效的超奇异等高线密码库。该库包括[1,2]中描述的临时Diffie-Hellman密钥交换(SIDH)。该方案预计可以抵御量子计算机攻击。
该库提供了一个通用的域算术实现,因此可以与许多不同的架构兼容(例如x64、x86和ARM)。代码的大部分是从Cloudflare的SIDH库移植过来的。此外,部分域算术是从微软研究院的实现移植过来的。该库遵循他们的命名约定,用"Alice"表示使用2^e-等高线的方,用"Bob"表示使用3^e-等高线的方。
此包**不**实现SIDH密钥验证,因此应仅用于临时Diffie-Hellman,即每个密钥对最多只能使用一次。
主要功能
- 支持临时Diffie-Hellman密钥交换。
- 支持Linux操作系统、Mac操作系统和Windows操作系统。
- 提供Rust的基本算术函数实现,以支持x64、x86和ARM等广泛平台。
- 为x64平台提供底层算术函数的优化实现,使用汇编语言对Windows和Linux进行优化。
- 包括测试和基准测试代码。
警告
此库不再积极维护。此外,代码尚未得到其他合格密码学家的充分同行评审,因此不能在任何形式下被认为是安全的。该库是用于实验目的开发的。
自行承担风险
安装
要安装,请将以下内容添加到项目Cargo.toml
文件的依赖关系部分
sidh = "^0.2"
然后,在您的库或可执行源文件中添加
extern crate sidh;
默认情况下,没有编译带有 nightly
和 bench
功能的基准测试。要运行基准测试,请执行以下操作:
cargo bench --features="nightly bench"
示例
extern crate rand;
extern crate sidh;
use rand::thread_rng;
use sidh::sidh::*;
fn main() {
let mut rng = thread_rng();
let (alice_public, alice_secret) = generate_alice_keypair(&mut rng);
let (bob_public, bob_secret) = generate_bob_keypair(&mut rng);
let alice_shared_secret = alice_secret.shared_secret(&bob_public);
let bob_shared_secret = bob_secret.shared_secret(&alice_public);
assert!(alice_shared_secret.iter().zip(bob_shared_secret.iter()).all(|(a, b)| a == b));
}
文档
详细的文档可在这里找到。
许可协议
SIDH-RS 采用 MIT 许可协议;有关详细信息,请参阅 LICENSE
。
库的部分内容来自 Cloudflare 的 Go SIDH 实现。x64 字段算术实现来自 微软研究院的 SIDH 实现。
参考文献
[1] Craig Costello, Patrick Longa 和 Michael Naehrig,"超奇异同态 Diffie-Hellman 的有效算法"。 Advances in Cryptology - CRYPTO 2016,LNCS 9814,第 572-601 页,2016 年。扩展版本可在这里找到。
[2] David Jao 和 Luca DeFeo,"从超奇异椭圆曲线同态向量子抗性密码系统发展"。 PQCrypto 2011,LNCS 7071,第 19-34 页,2011 年。
[3] Craig Costello, David Jao, Patrick Longa, Michael Naehrig, Joost Renes 和 David Urbanik,"高效压缩 SIDH 公钥"。 Advances in Cryptology - EUROCRYPT 2017,LNCS 10210,第 679-706 页,2017 年。预印本版本可在这里找到。
[4] Reza Azarderakhsh, Matthew Campagna, Craig Costello, Luca De Feo, Basil Hess, Amir Jalali, David Jao, Brian Koziel, Brian LaMacchia, Patrick Longa, Michael Naehrig, Joost Renes, Vladimir Soukharev 和 David Urbanik,"超奇异同态密钥封装"。提交给 NIST 后量子标准化项目(即将发布),2017 年。
[5] Craig Costello 和 Huseyin Hisil,"具有任意度同态的 SIDH 的简单且紧凑的算法"。 Advances in Cryptology - ASIACRYPT 2017(即将发布),2017 年。预印本版本可在这里找到。
[6] Armando Faz-Hernández, Julio López, Eduardo Ochoa-Jiménez 和 Francisco Rodríguez-Henríquez,"超奇异同态 Diffie-Hellman 密钥交换协议的更快软件实现"。 Cryptology ePrint Archive: Report 2017/1015,2017 年。预印本版本可在这里找到。
[7] Gustavo H. M. Zanon, Marcos A. Simplicio Jr., Geovandro C. C. F. Pereira, Javad Doliskani 和 Paulo S. L. M. Barreto,"更快的同态压缩密钥协议"。 Cryptology ePrint Archive: Report 2017/1143,2017 年。预印本版本可在这里找到。
依赖关系
约 1-1.5MB
约 27K SLoC