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

0 投票
2 回答
2088 浏览

c - 椭圆曲线密码学中的点减法

我想在素数场的椭圆曲线上做点减法。我尝试将分数减去,(x,-y log(p))但我的答案似乎不匹配。

这就是我尝试做减法的方式:

在这里s9s6s8都是有两个的结构int

这是我的功能,它做点补充:

程序似乎没有给我正确的坐标请帮助我进行椭圆曲线密码学的编码。

0 投票
0 回答
679 浏览

java - “错误格式:需要原始字节”尝试在椭圆曲线加密中加密

我正在尝试这个代码(见下面的代码)我从网络得到椭圆曲线地穴。

它得到这个错误。我在输出中打印了一些额外的细节。

java.security.InvalidKeyException:格式错误:需要原始字节

我试图用谷歌搜索以原始格式生成密钥的解决方案。也搜索了这个异常。但无法为此找到解决方案。请让我知道如何解决这个问题。

输出

代码

0 投票
2 回答
5681 浏览

java - 椭圆曲线上点的标量乘法

我在 NIST 指定的曲线“p192”上实现椭圆曲线点算术运算。出于测试目的,我采用了NIST Routine 文档中显示的曲线 p192示例点。我得到了加点和加倍点的正确答案,但对于标量乘法,我的答案不正确。由于这个原因,我无法达到是否

在哪里

请帮助我了解我在哪里犯错误。

主要类是

0 投票
1 回答
1867 浏览

perl - Perl - 如何使用椭圆曲线数学将比特币私钥转换为地址

我的比特币钱包中有大量私钥转储(约 25K),但我没有映射到每个私钥的关联地址。我需要地址才能重新创建钱包,因为我需要跳过一些地址而不是将它们添加到新钱包中。

我被指向一个包含转换方法的 python 工具:pywallet,但我宁愿在 Perl 中执行此操作,这样我可以更轻松地编写它。我还发现了这两个 JavaScript 站点:bitaddress.orgbrainwallet.org

我在 CPAN 上找到了以下库,听起来它们可能有助于执行此操作,但我不知道如何将这些部分组合在一起:Math::EllipticCurve::PrimeCrypt::OpenSSL::EC。前者的文档说它真的很慢,后者可能更快,因为它使用 C 库,但文档令人困惑。我还在Rosetta Code上找到了一些椭圆曲线代码。CPAN 上曾经有一个 Crypt::ECDSA,但在某个时候被删除了。

那么使用 Perl 从私钥获取比特币地址的最佳且快速的方法是什么?

0 投票
3 回答
2080 浏览

svg - 使用贝塞尔曲线或椭圆路径以编程方式绘制椭圆的一部分 - SVG 和 raphael.js

我正在尝试围绕具有给定边距的椭圆绘制贝塞尔曲线:

围绕椭圆的贝塞尔路径

我想以编程方式实现这一点,所以如果我改变椭圆大小,曲线会跟随它。

目前我已经做了这个功能:

但我不知道如何计算这个方向点值,以便它适用于任何椭圆:

  • box.width/15
  • 盒子高度/4.5

这个例子有一个小提琴。

我已经阅读了这个stackoverflow问题,并在我的示例中尝试了相同的方法,但仍然无法找到一个简单的解决方案,它仍然是随机的......

编辑

现在我正在尝试使用椭圆Arc,结果比使用 Bezier Path 更糟糕:

椭圆弧测试

有我正在使用的功能。如果我删除边距,它会完全按照我的椭圆...最后问题是我如何才能按照椭圆的边距?

在此处查看更新的小提琴

对于可怕的颜色真的很抱歉,这些是例如目的。

0 投票
1 回答
1122 浏览

php - 无法使用 javascript 桥接椭圆曲线 Diffie-Hellman

我知道这是一个非常具体的问题,但我尝试使用基于 2 个看起来不错的库的椭圆曲线 Diffie-Hellman 算法(ECDH)在 php 和客户端之间交换密钥:

  1. https://github.com/mdanter/phpecc用于 php 部分和

  2. http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html用于 js 部分。

似乎参数(如第二个演示所示)不适合(1)中的 Mattias Danter 库!

我尝试了什么:

一个。在 php 中生成 Alice 公钥

湾。从 (a) 中获取 x 和 y 值并放入斯坦福的 js 演示页面代替 Alice 字段

C。从 (b) 页生成 Bob 的公钥和私钥

d。在 (a) 中重新运行 php,但现在将 Alice 的属性重置为之前的运行(我必须在 Mattias Danter 类中添加一些设置器),然后使用 Bob 的公共值和密钥将 Bob 重置为 javascript 的值

e. 导入密钥并进行比较

但是 php 捕获一个错误:

搜索我的代码,我发现了导致错误的原因:这是在 Alice 计算公共密钥期间:

Bob 的公钥(来自 javascript)被存储EcDH::receivedPubPoint并产生错误!!

这是具有某些身份的对象 Alice(EcDH 类):

我的观点是,由于“椭圆曲线参数”下的字段在http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html中实现的方式,javascript 公共值不正确。

通过搜索,我发现斯坦福的这段js代码块与php版本相比是有问题的:

有什么建议吗?

谢谢。

0 投票
2 回答
894 浏览

security - ECC 曲线模量

ECC P-256 密钥的模数是多少?会是 32 个字节吗?我似乎只能用这个密钥签署/加密一个 32 字节的数据缓冲区。

对于 RSA,我知道 1024 位 RSA 密钥的模数为 128 字节。对于 ECC,我对“P”的含义感到困惑。

0 投票
2 回答
2099 浏览

c# - CNG 从文件导入 ECC Pub/Priv Key

多年来,我一直在尝试寻找如何通过任何方式从文件中导入 ECC 密钥。我尝试从 Windows 证书存储、.p12 文件和 PKCS#8 OpenSSL 密钥文件访问 ECC 证书,但均未成功。

我尝试过的许多事情之一是:

但是没有给出描述性错误消息,只有最后一行有invalid parameters或者在上面的代码的情况下An error occurred during encode or decode operation.

我正在使用来自 MSDN 的示例程序进行 ECDH,并将其更改为使用 AES 的 GCM 模式。在我尝试使用预生成的 ECC 密钥而不是 Microsoft 示例在运行时默认创建的密钥之前,所有这些都可以正常工作。我随机尝试了所有的CngKeyBlobFormats 但老实说,我不能很好地调试它,因为我不知道这些特定格式在原始数据中是什么样子的。

我的密钥采用以下格式,但我愿意使用任何可行的格式(.p12、Microsoft Store、PKCS#8 等)

密钥文件

资源

MSDN API 和示例:ECDiffieHellmanCng 类

MSDN API:CngKey 类

MSDN 博客:AES GCM 模式

OpenSSL - 创建 ECC 密钥

0 投票
1 回答
998 浏览

java - 如何检查无限远点以实施ECC?

这里是我用 Java 编写的代码,但是签名生成和验证的过程给出了不同的结果。

请任何人帮助解决这个问题。我将非常感谢您的支持。

0 投票
5 回答
6798 浏览

javascript - 椭圆曲线点压缩算法

我正在使用 Javascript 生成椭圆曲线,用于基于此示例代码http://www-cs-students.stanford.edu/~tjw/jsbn/ecdh.html的加密消息传递应用程序

公钥会很大,我知道可以压缩它们,但我一直无法找到 Javascript 或大纲算法来执行此操作。这是一篇概述数学的文章http://nmav.gnutls.org/2012/01/do-we-need-elliptic-curve-point.html