实用的Ring-LWE密钥交换实现
该软件为纯C(C99标准)。 编译已在Linux上使用gcc进行了测试。 依赖项是glibc-devel和openssl-devel,或其他平台上的等效项。 Makefile中的注释描述了如何在不使用openssl-devel的情况下进行编译,但这并不安全,请参见下文。
编译所有内容(模拟器,基准测试和测试向量):
要运行所有已编译的程序:进行测试
该软件提供了一种实用且有效的类似于Diffie-Hellman的密钥交换的实现,可证明该方法被动地抵御了量子和经典对手的攻击。 它基于带有错误的环学习(ring-LWE)问题,涵盖了一系列安全级别和公钥大小。 它可以很容易地扩展到主动安全版本和经过身份验证的版本。
密钥交换由整数m和q,对帐方法和采样方法参数化。
我们给出m为2的幂且m为质数的情况的代码。 当m为2的幂时,公钥是m个整数的数组,范围为
2026-09-28 22:46:00
686KB
1