问题标签 [elliptic-curve]
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.
java - 使用此椭圆曲线点乘计算的点不在曲线上,该类带来算术异常
我使用标准投影坐标得到了点乘法错误的堆栈。我不知道我错过了什么,但相乘的点不在曲线上,有时它会输出类似算术异常的东西:整数不可逆。
这是我使用的曲线:
椭圆曲线域参数规范
椭圆曲线数字签名算法实现在这里。在这段代码中有 main 函数,所以用它来测试异常。
这里 PrivateKey 类
公钥类
椭圆曲线
兰德级
椭圆曲线界面
matlab - Matlab椭圆曲线RMP函数
该代码将找到并绘制特定素数曲线上的所有点。该 m 文件将 A、B 和 p 作为其输入,并生成两个向量 X、Y,其中包含位于 y2 x3 + Ax + B (mod p) 上的所有点 (x, y)。
我只想知道什么是 rmp 功能以及为什么使用它。我试图在 matlab 文档中找到它,但我找不到它。
sage - 用SAGE计算椭圆曲线一点的y坐标?
我用 SAGE 定义:
我的问题是:
我知道椭圆曲线 P 的 x 坐标 1407284663933896236729058440000
如何使用 SAGE 计算 y 坐标?有什么功能吗?
sage - 使用 SAGE 验证签名 ECDSA
在 ECDSA 算法(验证签名)中,您必须使用下一个公式计算一个新点: (x0,y0) = u1*P+U2*P_a
我如何计算这个新点的坐标?,我在 SAGE 中尝试了这句话,但它不起作用。
X = (整数(u1)*P)+(整数(u2)*P_a)
你能帮助我吗?。非常感谢。
您可以在此处下载代码并尝试在 SAGE 中执行:https ://dl.dropbox.com/u/39374382/question.sws
java - Java中的椭圆曲线密码算法
我们是密码学的几个业余爱好者。我们必须在 Java 中实现与椭圆曲线密码学相关的不同算法。到目前为止,我们已经能够从关于椭圆曲线密码学的维基百科页面中识别出一些关键算法,例如ECDH
、ECIES
、 。ECDSA
ECMQV
现在,我们在试图了解如何以及从何处开始实施这些算法时不知所措。此外,Java 是否已经在其架构中提供了这些算法?或者我们是否必须使用一些 API BouncyCastle
(我们在这个网站上到处都可以看到它!)?或者我们可以简单地使用标准代码自己实现算法吗?任何帮助将非常感激!
java - 为椭圆曲线密码生成椭圆曲线的基点 ( G )
如何在 Java 中为椭圆曲线生成基点或生成器?
我正在开发一个 Java 包,可以用来实现一些椭圆曲线密码算法,我想使用我自己的曲线。但是,我被困在必须为曲线获取生成器基点的地方,这样我才能拥有一组域参数。
任何帮助深表感谢。
java - 椭圆曲线中的点乘法
我在 Stack Overflow 上找到了以下代码用于算术运算,即。椭圆曲线点的加法、加倍和乘法。我尝试运行它并使用以下 NIST 例程文档中给出的测试用例,[NSA 提供的 NIST 椭圆曲线例程] (http://www.nsa.gov/ia/_files/nist-routines.pdf/)。
代码编译并运行,但输出与给定的预测值不匹配。请帮忙。
ios - 如何在 iOS 中使用 ECC
有没有在 iOS 中使用 ECC 的示例?
我注意到 Apple Developer Documents 中的 kSecAttrKeyTypeEC ,但我不能将它用于通用密钥对。
下面的代码是从示例 CryptoExercise 修改的
sanityCheck 总是返回 -50,这意味着 'errSecParam'。
我真的不知道如何使用它,感谢您阅读本文。
cryptography - Microsoft PlayReady DRM P160 椭圆曲线参数
我正在尝试为自定义 Microsoft P160 PlayReady 曲线创建正确的 DER 编码 ECC 参数以输入 HSM。我找到了一些指定 P160 曲线定义的来源,因为它是非标准和自定义的。下面是一个来源的链接。特别是,PlayReady 曲线值在William Stein 所著的 Elementary Number Theory,A Computational Approach 一书的第 6.4.2 节中进行了讨论。
下面是来自另一个来源的关于 P160 PlayReady 曲线参数的尝试。
对于 ECC,Microsoft 使用 Zp 上的椭圆曲线,其中 p 是 160 位素数(如下所示)。该曲线由位于曲线 y^2=x^3+ax+b 上的点组成,其中操作是在域 Zp 上完成的,a 和 b 是下面给出的系数。所有值都表示为打包二进制值:换句话说,Zp 上的单个值被简单地编码为 20 个字节,以小端顺序存储。因此,椭圆曲线上的一个点是一个 40 字节的块,它由两个 20 字节的小端值(x 坐标后跟 y 坐标)组成。以下是 MS-DRM 中使用的椭圆曲线的参数:
p(模数): 89abcdef012345672718281831415926141424f7
系数 a: 37a5abccd277bce87632ff3d4780c009ebe41497
coefficient b : 0dd8dabf725e2f3228e85f1ad78fdedf9328239e
generator x : 8723947fd6a3a1e53510c07dba38daf0109fa120
*generator y : 445744911075522d8c3c5856d4ed7acda379936f
Order of curve : 89abcdef012345672716b26eec14904428c2a675
These constants are fixed, and used by all parties in the MS-DRM system. 当您看到这个以十六进制表示的数字时,模数的“书呆子吸引力”很高:它包括以十六进制计数,以及基本常数 e、pi 和 sqrt(2) 的数字。
基于此信息,我使用 BouncyCastle 作为我的基本 ASN.1 库为 P160 曲线创建了以下 DER 编码曲线参数的十六进制编码。请注意,这些曲线参数中没有指定种子值。
308195020101302006072a8648ce3d010102150089abcdef012345672718281831415926141424f7302c041437a5abccd277bce87632ff3d4780c009ebe4149704140dd8dabf725e2f3228e85f1ad78fdedf9328239e0429048723947fd6a3a1e53510c07dba38daf0109fa120445744911075522d8c3c5856d4ed7acda379936f02150089abcdef012345672716b26eec14904428c2a675
尽管这些曲线参数在数学上被 HSM 和 OpenSSL 接受,但产生的 P160 曲线点对 PlayReady 来说是不可接受的。我能够使用相同的过程来生成 PlayReady 可接受的有效 P256 曲线点,所以我不相信我的方法有缺陷。有人对 PlayReady P160 曲线参数有任何经验吗?
encryption - 椭圆曲线密码学可以用作分组密码吗?
我正在尝试使用非对称加密来加密固件。引导加载程序将解密并更新闪存。这是在具有 32 位 CPU 以 60MHz 执行的嵌入式设备上。
我想使用 ECC,因为它具有多种优势。我是加密新手,我对 ECIES 中实现的 ECC 的理解是使用 ECC 生成密钥并使用 AES 进行实际数据加密。由于代码和内存大小,我不能支持多种加密算法。
是否有可以像 AES 一样使用的 ECC 实现。我所寻找的只是使用“私钥”来加密固件,而引导加载程序使用“公钥”来解密它。
谢谢。