liboqs-量子安全密码算法开源C库
2020-12-13 15:17
标签:mic --help lib 模块 签名 相同 nbsp new 软件包管理 liboqs是一个用于量子安全密码算法的开源C库。 liboqs提供: liboqs是由Douglas Stebila和Michele Mosca领导的开放量子安全(OQS)项目的一部分,该项目旨在开发量子安全密码学并将其集成到应用程序中,以促进在现实环境中的部署和测试。特别是,OQS通过OpenSSL和OpenSSH将liboqs原型集成到TLS和SSH中。 有关OQS的更多信息,请参见 https://openquantumsafe.org/ https://openquantumsafe.org/papers/SAC-SteMos16.pdf https://openquantumsafe.org/papers/NISTPQC-CroPaqSte19.pdf 密钥封装机制 签名技术 随着研究的进展,受支持的算法可能会看到其安全性的快速变化,甚至可能证明对经典计算机和量子计算机都不安全。 liboqs并不打算“选拔优胜者”:算法支持由NIST 后量子密码术标准化项目提供。我们强烈建议应用程序和协议在部署后量子加密时依赖于其努力的结果。 我们认识到一些参与者可能希望在NIST标准化项目结束之前部署量子安全密码学。我们强烈建议您尝试使用所谓的混合密码术,其中将量子安全的公共密钥算法与传统的公共密钥算法(例如RSA或椭圆曲线)一起使用,以使该解决方案的安全性至少比现有的传统安全性低加密。 1,安装依赖项: 在Ubuntu上: 在macOS上,使用您选择的软件包管理器(我们选择了Homebrew): 2,获取来源: 并建立: 可以传递各种选项来配置以禁用算法,使用不同的实现,指定要使用的OpenSSL库或交叉编译。有关 (如果在macOS上遇到类似的错误 3,主要的构建结果是 4,要生成API的HTML文档,请运行: 然后 可以使用 可以在Wiki中找到有关在OpenBSD和ARM上进行构建的说明。 liboqs是根据MIT许可获得许可的;有关详细信息,请参见LICENSE.txt。 liboqs包含一些许可不同的第三方库或模块;相应的子文件夹包含在这种情况下适用的许可证。尤其是: https://github.com/open-quantum-safe/liboqs#status liboqs-量子安全密码算法开源C库 标签:mic --help lib 模块 签名 相同 nbsp new 软件包管理 原文地址:https://www.cnblogs.com/xdyixia/p/11577363.html一,概述
二,目前状态
2.1支持的算法
2.2局限性与安全性
三,快速开始
3.1Linux/ MacOS
sudo apt install autoconf automake libtool gcc libssl-dev python3-pytest unzip xsltproc doxygen graphviz
brew install autoconf automake libtool openssl wget doxygen graphviz
pip3 install pytest
git clone -b master https://github.com/open-quantum-safe/liboqs.git
cd liboqs
autoreconf -i
./configure
make clean
make -j
./configure --help
详细信息,请参见。Can‘t exec "libtoolize": No such file or directory at ...
,请尝试使用运行LIBTOOLIZE=glibtoolize autoreconf -i
。)liboqs.a
,一个静态库。(可以将其放置在.libs
目录中。)目录下还构建了各种程序tests
:
test_kem
:用于关键封装机制的简单测试工具
test_sig
:用于密钥签名方案的简单测试工具
kat_kem
:使用与NIST提交要求相同的过程为密钥封装机制生成已知答案测试(KAT)值的程序,用于使用以下方法检查提交的KAT值 tests/test_kat.py
kat_sig
:使用与NIST提交要求相同的过程为签名方案生成已知答案测试(KAT)值的程序,用于使用以下方法检查提交的KAT值 tests/test_kat.py
speed_kem
:关键封装机制的基准测试程序;请参阅./speed_kem --help
使用说明
speed_sig
:签名机制的基准测试程序;请参阅./speed_sig --help
使用说明
example_kem
:最小的可运行示例,显示了KEM API的用法
example_sig
:最小的可运行示例,显示了签名API的用法
test_aes
,test_sha3
:用于加密子组件的简单测试工具的测试(包括所有的A范围test_*
和kat_*
上述的程序)可以使用运行
python3 -m pytest
make docs
docs/doxygen/html/index.html
在您的Web浏览器中打开。3.2Windows
VisualStudio
文件夹中的Visual Studio解决方案生成二进制文件。支持的方案在项目的winconfig.h
文件中定义。3.3其他
3.4License
src/crypto/aes/aes_c.c
: public domainsrc/crypto/sha2/sha2_c.c
: public domainsrc/crypto/sha3/fips202.c
: CC0 (public domain)src/crypto/sha3/keccak4x
: CC0 (public domain), except brg_endian.h
src/kem/bike/x86_64
: Apache License v2.0src/kem/kyber/pqclean_*
: public domainsrc/kem/newhope/pqclean_*
: public domainsrc/kem/ntru/pqclean_*
: public domainsrc/kem/saber/pqclean_*
: public domainsrc/sig/dilithium/pqclean_*
: public domainsrc/sig/mqdss/pqclean_*
: CC0 (public domain)src/sig/picnic/external/sha3
: CC0 (public domain)src/sig/rainbow/pqclean_*
: CC0 (public domain)src/sig/sphincs/pqclean_*
: CC0 (public domain)