问题标签 [ntruencrypt]

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 回答
142 浏览

encryption - 了解 NTRUEncrypt

我无法理解 NTRUEncrypt 算法。我阅读了维基百科页面,但我无法理解他们给出的示例。当我将 f 和 f_p 的乘积插入 wolfram 时,我看不到输出与任何逆 mod p 的关系。有人可以解释一下这个过程(如果可能的话,为什么会这样?)。

0 投票
1 回答
634 浏览

java - 我如何在java中实现ntru密码算法?

正如少数调查显示的那样,ntru 密码学是一种先进且高效的无线传感器网络算法,所以我想在 java 中实现这个算法。我还想计算它的加密和解密速度。

请帮我完成这个过程.. :)

0 投票
1 回答
609 浏览

java - 充气城堡 NTRU 一代

我遇到了下一个问题:我不知道在哪里可以获取用于调用正确 NTRUSigningPrivateKeyParameters 的私钥字节数组。

这是我的代码:

有没有人有同样的问题?

0 投票
1 回答
499 浏览

math - NTRU 密钥交换示例实现

是否有任何 NTRU-KE 的开源实现(最好是 Java 或 C#),我可以将其用作以不同语言实现它的参考?

NTRUEncrypt 的 Wikipedia 页面上列出的实现没有包含它,并且这里有一篇涵盖该算法的论文,但是该语言有点过于技术性,我无法完全理解它。

0 投票
1 回答
247 浏览

java - 如何获取 NTRU 参数

我正在使用 bouncycastle 对 NTRU 的暗示,这是我的代码:

问题是我怎样才能得到 f 多项式和基,因为我只找到了 fp(f 的逆,并且它们没有逆方法)和基?我查了javadocs但没有结果。

0 投票
1 回答
2089 浏览

cryptography - 截断多项式的定义是什么?

在 NTRUEncryption 中,我看到了截断多项式,但我无法理解截断多项式计算。
那么,谁能告诉我我们如何计算截断多项式?

0 投票
1 回答
736 浏览

java - 计算多项式环的逆

我试图了解 NTRU-PKCS 并想在 Java 中实现一个简单的版本,因此我使用了一种自我实现的方法(扩展 euclid)来计算环中多项式的逆。

大多数时候我的算法都有效,但是当我尝试 NTRU-PKCS-Tutorial PKCS-Tutorial 中的示例时,它失败了,我不知道为什么。

示例是:

f: -x^10+1x^9+0x^8+0x^7+1x^6+0x^5-x^4+0x^3+1x^2+1x^1-x^0 f^-1模 32:30x^10+18x^9+20x^8+22x^7+16x^6+15x^5+4x^4+16x^3+6x^2+9x^1+5x^0 环:x^ 11-1

我的代码是:

输出如下:

问题是:如果我现在计算 R/newR,我必须找到 2 mod 32 的倒数,但是由于 32 和 2 的最大公约数是 2 而不是 1,所以没有倒数...

我是否错误地执行了算法?

0 投票
1 回答
154 浏览

c++ - NTRUEncrypt:无法正确找到使用开源标准算法中描述的两个多项式的 GCD,无法定义是否存在 poly 的逆

我已经实现了用于查找多项式逆的算法,如板载安全资源中所述,但这些算法意味着我想要反转的多边形的 GCD 并且 X^N - 1 为 1。

对于正确的 NTRU 实现,我需要随机生成小多项式并定义它们的逆是否存在,目前我没有这样的功能。为了让它工作,我尝试按照NTRU 开源项目文档中的描述实现欧几里得算法。但我发现有些事情非常不一致,这让我很恼火。除法和欧几里得算法可以在命名文档的第 19 页找到。

因此,在除法算法中,输入是多项式 a 和 b。据说多项式 b 必须是 N-1 次。

除法算法的伪代码(取自此答案):

为了找到两个多项式的 GCD,必须调用欧几里得算法,输入为 a(某个多项式)和 X^N-1。然后将这些输入传递给除法算法。

问题是:如果明确规定第二个参数应该是度数为 N-1 的 poly,如何将 X^N-1 传递给除法算法?

忽略这个问题,还有一些我不明白的地方:

  1. 除法算法中的N是什么?是来自 NTRU 参数的 N 还是多项式 b 的次数?
  2. 无论哪种方式,条件 c) 怎么可能是真的?NTRU 使用次数小于 N 的多项式进行运算

对于更大的上下文,这是我对欧几里得和除法算法的 C++ 实现。给定输入 a = {-1, 1, 1, 0, -1, 0, 1, 0, 0, 1, -1}, b = {-1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1}, p = 3 and N = 11 在除法算法中进入无限循环

此外,此清单中使用的多项式运算可以在github 页面找到