问题标签 [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.

0 投票
1 回答
781 浏览

c++ - OpenSSL 是否提供任何后量子不对称算法?

我熟悉经典的加密算法和数学,如 RSA 和 ECC,但只是出于兴趣。我不是这个领域的专家。我想开始一个长期的项目,但由于我不是密码学家,因此很难研究这个主题并获得清晰正确的答案。为此,我希望将 OpenSSL 用作黑盒。

我的问题: OpenSSL 是否为加密和/或签名提供任何后量子非对称算法?

如果没有,未来是否有计划支持这一点?

PS:请注意,我不是在要求软件推荐,因为我知道这是题外话。我在这里询问 OpenSSL 及其支持的算法。

0 投票
1 回答
90 浏览

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 的代码

0 投票
1 回答
213 浏览

java - 是否已经有用于 Java JCA(Java 密码体系结构)的 XMSS/XMSS^MT 提供程序?

我想知道 Java 密码体系结构 (JCA) 中是否已经有提供者用于后量子签名方案,尤其是 XMSS^MT?

0 投票
1 回答
604 浏览

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 toKangarooTwelve' 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 toKangarooTwelve 的引用跟随 collect2:错误:ld 返回 1 退出状态 Makefile:22:目标“PQCgenKAT_kem”的配方失败 make:*** [PQCgenKAT_kem] 错误 1

我安装了 keccak 库,并且在这个算法中包含了 keccak 库。有任何想法吗?感谢您的任何帮助。

0 投票
1 回答
74 浏览

java - 如何序列化 BCMcEliecePublicKey?

我想序列化 McEliece 公钥 (BCMcEliecePublicKey),但总是得到 NotSerializableException。

我用 XMSSMT 尝试了相同的代码,它没有问题。Bouncy Castle 版本是新的 Release 1.61

这里以一个小代码为例:

我必须更改什么才能序列化密钥?

0 投票
1 回答
196 浏览

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读取证书生成。它总是显示错误信息

0 投票
0 回答
99 浏览

python - libpqcrypto python 实现

我正在尝试在 libpqcrypto ( https://libpqcrypto.org/index.html ) 中使用 python API。我按照安装并能够将其导入 python,但是当我尝试运行程序时出现错误。

我该如何解决这个问题?

谢谢你。

0 投票
1 回答
399 浏览

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]。我可以将溢出结果与普通模数集相关联,但是否有解决此问题的方法。这是代码:*/

0 投票
1 回答
131 浏览

c - 如此复杂的函数来测试变量是否不为零有什么好处?

我正在写关于为后量子安全签名编写的代码的硕士论文(计算机科学)。整个事情都可以在这里找到,但在这里并不重要。对于我的论文,我试图解释一个“简单”的功能,这根本不是那么简单。

GF(16)中不为零。(这里的GF(16)可以理解为4位无符号整数)。该函数如下所示:

我理解它是如何工作的,但我不明白为什么这个功能需要如此复杂。这有什么好的理由吗?很好的理由可能是性能或安全性(例如针对定时攻击的安全性)的好处。因为如果没有这样的好处,那么以简单的方式编写该函数不是更聪明,例如:

编辑

这段代码不是我写的,它是由加密研究人员编写的,他们试图让他们的 PQ 算法被 NIST 标准化。

TonyDelroy 在评论中建议了第二个代码片段的更简单方法。

0 投票
1 回答
115 浏览

c++ - make: *** 没有规则来制作目标 'generic64/libkeccak.a'

我从 NIST 下载了一些后量子算法并对其进行了测试。有些代码需要用到Keccak包,所以我下载了。当我尝试“制作 generic64/libkeccak.a”时,我收到一条错误消息:

make: *** 没有规则来制作目标 'generic64/libkeccak.a'。停止。

我该如何解决?感谢您的任何帮助。