3个版本

使用旧的Rust 2015

0.2.3 2021年11月1日
0.2.2 2021年11月1日
0.2.0 2018年1月9日
0.1.1 2018年1月3日

#735 in 密码学

MIT许可协议

345KB
7.5K SLoC

Rust 3K SLoC // 0.2% comments GNU Style Assembly 2.5K SLoC // 0.0% comments Assembly 2K SLoC // 0.0% comments

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;

默认情况下,没有编译带有 nightlybench 功能的基准测试。要运行基准测试,请执行以下操作:

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