问题标签 [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.
c - 椭圆曲线密码学中的点减法
我想在素数场的椭圆曲线上做点减法。我尝试将分数减去,(x,-y log(p))
但我的答案似乎不匹配。
这就是我尝试做减法的方式:
在这里s9
,s6
和s8
都是有两个的结构int
。
这是我的功能,它做点补充:
程序似乎没有给我正确的坐标请帮助我进行椭圆曲线密码学的编码。
java - “错误格式:需要原始字节”尝试在椭圆曲线加密中加密
我正在尝试这个代码(见下面的代码)我从网络得到椭圆曲线地穴。
它得到这个错误。我在输出中打印了一些额外的细节。
java.security.InvalidKeyException:格式错误:需要原始字节
我试图用谷歌搜索以原始格式生成密钥的解决方案。也搜索了这个异常。但无法为此找到解决方案。请让我知道如何解决这个问题。
输出
代码
java - 椭圆曲线上点的标量乘法
我在 NIST 指定的曲线“p192”上实现椭圆曲线点算术运算。出于测试目的,我采用了NIST Routine 文档中显示的曲线 p192示例点。我得到了加点和加倍点的正确答案,但对于标量乘法,我的答案不正确。由于这个原因,我无法达到是否
在哪里
请帮助我了解我在哪里犯错误。
主要类是
perl - Perl - 如何使用椭圆曲线数学将比特币私钥转换为地址
我的比特币钱包中有大量私钥转储(约 25K),但我没有映射到每个私钥的关联地址。我需要地址才能重新创建钱包,因为我需要跳过一些地址而不是将它们添加到新钱包中。
我被指向一个包含转换方法的 python 工具:pywallet,但我宁愿在 Perl 中执行此操作,这样我可以更轻松地编写它。我还发现了这两个 JavaScript 站点:bitaddress.org和brainwallet.org。
我在 CPAN 上找到了以下库,听起来它们可能有助于执行此操作,但我不知道如何将这些部分组合在一起:Math::EllipticCurve::Prime、Crypt::OpenSSL::EC。前者的文档说它真的很慢,后者可能更快,因为它使用 C 库,但文档令人困惑。我还在Rosetta Code上找到了一些椭圆曲线代码。CPAN 上曾经有一个 Crypt::ECDSA,但在某个时候被删除了。
那么使用 Perl 从私钥获取比特币地址的最佳且快速的方法是什么?
svg - 使用贝塞尔曲线或椭圆路径以编程方式绘制椭圆的一部分 - SVG 和 raphael.js
我正在尝试围绕具有给定边距的椭圆绘制贝塞尔曲线:
我想以编程方式实现这一点,所以如果我改变椭圆大小,曲线会跟随它。
目前我已经做了这个功能:
但我不知道如何计算这个方向点值,以便它适用于任何椭圆:
- box.width/15
- 盒子高度/4.5
这个例子有一个小提琴。
我已经阅读了这个stackoverflow问题,并在我的示例中尝试了相同的方法,但仍然无法找到一个简单的解决方案,它仍然是随机的......
编辑
现在我正在尝试使用椭圆A
rc,结果比使用 Bezier Path 更糟糕:
有我正在使用的功能。如果我删除边距,它会完全按照我的椭圆...最后问题是我如何才能按照椭圆的边距?
在此处查看更新的小提琴。
对于可怕的颜色真的很抱歉,这些是例如目的。
php - 无法使用 javascript 桥接椭圆曲线 Diffie-Hellman
我知道这是一个非常具体的问题,但我尝试使用基于 2 个看起来不错的库的椭圆曲线 Diffie-Hellman 算法(ECDH)在 php 和客户端之间交换密钥:
https://github.com/mdanter/phpecc用于 php 部分和
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版本相比是有问题的:
有什么建议吗?
谢谢。
security - ECC 曲线模量
ECC P-256 密钥的模数是多少?会是 32 个字节吗?我似乎只能用这个密钥签署/加密一个 32 字节的数据缓冲区。
对于 RSA,我知道 1024 位 RSA 密钥的模数为 128 字节。对于 ECC,我对“P”的含义感到困惑。
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 示例在运行时默认创建的密钥之前,所有这些都可以正常工作。我随机尝试了所有的CngKeyBlobFormat
s 但老实说,我不能很好地调试它,因为我不知道这些特定格式在原始数据中是什么样子的。
我的密钥采用以下格式,但我愿意使用任何可行的格式(.p12、Microsoft Store、PKCS#8 等)
密钥文件
资源
java - 如何检查无限远点以实施ECC?
这里是我用 Java 编写的代码,但是签名生成和验证的过程给出了不同的结果。
请任何人帮助解决这个问题。我将非常感谢您的支持。
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。