问题标签 [post-quantum-cryptography]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - OpenSSL 是否提供任何后量子不对称算法?
我熟悉经典的加密算法和数学,如 RSA 和 ECC,但只是出于兴趣。我不是这个领域的专家。我想开始一个长期的项目,但由于我不是密码学家,因此很难研究这个主题并获得清晰正确的答案。为此,我希望将 OpenSSL 用作黑盒。
我的问题: OpenSSL 是否为加密和/或签名提供任何后量子非对称算法?
如果没有,未来是否有计划支持这一点?
PS:请注意,我不是在要求软件推荐,因为我知道这是题外话。我在这里询问 OpenSSL 及其支持的算法。
c - 写入和读取二进制文件
我正在尝试写入crypt->public_key->data
二进制文件。如果我使用 size ofsizeof(unsigned int)
作为 中的第二个参数fwrite()
,它可以工作。但是,它unsigned short *
在头文件中被声明为类型。我不确定它为什么会这样。此外,我在编写公钥和阅读它们时也遇到了问题。fwrite()
虽然我在and中使用了完全相同类型的大小fread()
。
编辑:似乎我的 crypt->public_key->data 的大小不正确,正如 usr2564301 所指出的那样。
*我不确定是否需要引用此代码的来源。但我会在此处添加 URL:https ://github.com/Varad0612/The-McEliece-Cryptosystem
来自 matrix.h 的代码
这是来自 mceliece.c 的代码
java - 是否已经有用于 Java JCA(Java 密码体系结构)的 XMSS/XMSS^MT 提供程序?
我想知道 Java 密码体系结构 (JCA) 中是否已经有提供者用于后量子签名方案,尤其是 XMSS^MT?
c++ - C++ 使用 Keccak 库
我正在写我的学士论文,我必须测试一些后量子算法。我从 NIST 下载了它们。但是当我尝试 DAGS 时:https ://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/submissions/DAGS.zip并尝试“制作” dags3 或 dags5 我得到了这个错误:
encapsulation.o: 在函数encapsulation':
encapsulation.c:(.text+0xeb): undefined reference to
KangarooTwelve' encapsulation.c:(.text+0x13a): 对KangarooTwelve'encapsulation.c:(.text+0x478) 的KangarooTwelve'
encapsulation.c:(.text+0x2c9): undefined reference to
未定义引用KangarooTwelve'
decapsulation.o: In function
': decapsulation.c:(.text+0x16e ):未定义对KangarooTwelve'
decapsulation.o:decapsulation.c:(.text+0x1bd): more undefined references to
KangarooTwelve 的引用跟随 collect2:错误:ld 返回 1 退出状态 Makefile:22:目标“PQCgenKAT_kem”的配方失败 make:*** [PQCgenKAT_kem] 错误 1
我安装了 keccak 库,并且在这个算法中包含了 keccak 库。有任何想法吗?感谢您的任何帮助。
java - 如何序列化 BCMcEliecePublicKey?
我想序列化 McEliece 公钥 (BCMcEliecePublicKey),但总是得到 NotSerializableException。
我用 XMSSMT 尝试了相同的代码,它没有问题。Bouncy Castle 版本是新的 Release 1.61
这里以一个小代码为例:
我必须更改什么才能序列化密钥?
c - 使用后量子公钥算法在 C 中创建 X509 证书?
我正在尝试实现使用后量子(PQ)公钥算法作为公钥算法的自签名 x509 证书。我查看了 c 中的 openssl 库,以及它使用 RSA 完成的方式。我本质上是在尝试复制相同的格式。从我在 openssl 库中看到的内容来看,RSA 和其他一些受支持的算法集成在加密 EVP 层中(密钥存储为 EVP_PKEY)。我尝试使用的 openssl 库中的函数是 X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey),以及其他一些具有非常相似输入的函数。有没有办法可以将 PQ 算法集成到 EVP 层中?如果没有,是否有任何方法可以使用 EVP 层来实现相同的目标?
我曾尝试查看 openssl 库中的 evp 源代码。它似乎只支持某些算法,如 RSA、EC ......我不确定是否可以将 PQ 算法合并到 EVP 层中。我正在遵循此链接中的示例:(https://www.codepool.biz/how-to-use-openssl-to-generate-x-509-certificate-request.html)生成证书。我只是插入 PQ 算法密钥,而不是 RSA 密钥。到目前为止,当我创建我的证书时,它总是以错误的格式输出。
我正在使用这个命令:openssl x509 -in x509Req.pem -text -noout
读取证书生成。它总是显示错误信息
python - libpqcrypto python 实现
我正在尝试在 libpqcrypto ( https://libpqcrypto.org/index.html ) 中使用 python API。我按照安装并能够将其导入 python,但是当我尝试运行程序时出现错误。
我该如何解决这个问题?
谢谢你。
c++ - 如何在 Microsoft SEAL 3.1 中使用 CRT 批处理技术?
你能告诉我 SEAL 3.1 是否支持 PolyCRTBuilder 类吗?我正在尝试运行以下程序,但由于未在此范围内声明该类而失败。
/** 假设我有两个数组x = [1,2,3,4,5]
和xMean = [3,3,3,3,3]
. 我使用 PolyCRTBuilder(xCiphertext 和 xMeanCiphertext)组成并加密了这两个数组。如果我减去两个密文( xCiphertext MINUS xMeanCiphertext ),我应该得到xResult = [-2, -1, 0, 1, 2]
但在同态减法之后我得到了xResultDecrypted = [40959, 40960, 0 ,1, 2]
。我可以将溢出结果与普通模数集相关联,但是否有解决此问题的方法。这是代码:*/
c - 如此复杂的函数来测试变量是否不为零有什么好处?
我正在写关于为后量子安全签名编写的代码的硕士论文(计算机科学)。整个事情都可以在这里找到,但在这里并不重要。对于我的论文,我试图解释一个“简单”的功能,这根本不是那么简单。
该函数测试一个变量是否在伽罗瓦域GF(16)中不为零。(这里的GF(16)可以理解为4位无符号整数)。该函数如下所示:
我理解它是如何工作的,但我不明白为什么这个功能需要如此复杂。这有什么好的理由吗?很好的理由可能是性能或安全性(例如针对定时攻击的安全性)的好处。因为如果没有这样的好处,那么以简单的方式编写该函数不是更聪明,例如:
编辑
这段代码不是我写的,它是由加密研究人员编写的,他们试图让他们的 PQ 算法被 NIST 标准化。
TonyDelroy 在评论中建议了第二个代码片段的更简单方法。
c++ - make: *** 没有规则来制作目标 'generic64/libkeccak.a'
我从 NIST 下载了一些后量子算法并对其进行了测试。有些代码需要用到Keccak包,所以我下载了。当我尝试“制作 generic64/libkeccak.a”时,我收到一条错误消息:
make: *** 没有规则来制作目标 'generic64/libkeccak.a'。停止。
我该如何解决?感谢您的任何帮助。