问题标签 [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.
cryptography - 椭圆曲线上的点数
如果您有以下形式的椭圆曲线:
有没有一个好的程序来计算这条曲线上的点数?
我已阅读有关 Schoof 和 Schoof-Elkies-Atkin (SEA) 算法的信息,但我正在寻找开源实现。有谁知道可以做到这一点的好程序?
此外,如果 a 为 1,b 为 0,则无法使用 SEA 算法,因为 j 不变量为 0。这是正确的吗?
.net - 椭圆曲线密码学的 .NET 实现(库)
请您建议在.NET平台上使用椭圆曲线密码学的任何实现吗?
另外,如果您使用过它们,您能告诉我应该使用的推荐曲线吗?
[编辑]
正如@FatCat 提到的,它的实现在 .NET 框架 3.5 中可用,但仅在 windows vista 上可用。您能否建议另一种使用方式/库?
cryptography - 使用 OpenSSL ECC 加密/解密文本字符串
如何使用 OpenSSL 的 ECC 支持来加密或解密文本字符串?我能够使用 OpenSSL API 生成 ECC 私钥/公钥,但我不知道如何使用这些密钥加密纯文本。
c - 如何提供 OpenSSL 随机数据以用于 ECDSA 签名?
我想在使用 EC 密钥对数据进行签名期间提供 OpenSSL 特定数据以用作随机种子。我这样做是为了将我的应用程序与另一个参考应用程序(封闭源代码)进行比较。该实用程序将带有私钥的文件、带有要签名的数据的文件和带有随机数据的文件作为参数。
我已经生成了 EC 密钥,并签署了数据,但由于我没有共同点,因此无法比较这两个应用程序。OpenSSL 生成用于对数据进行签名的随机数据(可能来自 /dev/random),因此每次运行都会给我一个不同的签名。
我已尝试RAND_clear()
与 结合使用RAND_add()
,但不断更改签名。要么我不理解整个 ECDSA 概念,要么我做错了什么。
我比较应用程序的第二个选项是导入公钥并验证参考程序生成的签名。这是更好的选择,但我无法导入给定的示例公钥(83 个字符的十六进制字符串)。EC_POINT_oct2point()
一直给我空结果。
任何帮助/指针/参考将不胜感激。
java - 用于可视化和实现椭圆曲线密码学的工具
我需要创建一个程序来展示椭圆曲线密码学的工作原理。我正在考虑使用 Java Swing 来创建 GUI,但主要问题是使用什么工具来绘制椭圆曲线本身,以及如何将其与 Java Swing 集成。
我希望该图包含在用户界面中,并允许对其进行更改。您能建议任何有助于解决此问题的工具吗?
java - 在 Bouncy Castle 中将字节编码的密钥转回其原始 ECPublicKey
在 Java 中,我有一个以字节数组形式发送的 ECDH 公钥。
收到字节数组后,如何将其转回公钥?
我正在使用 Bouncy Castle,但 Java 解决方案同样有用。
谢谢
c - 在 OpenSSL 中使用 ECDSA 签署消息
在 OpenSSL 中以编程方式使用 ECDSA 时,如何设置用于签名消息的私钥?我有以下代码:
该函数get_ec_group_192()
是通过运行创建的,openssl ecparam -C -name secp192k1 -genkey
它还会生成一些EC PARAMETERS
和一个EC PRIVATE KEY
.
我想做的是hash
用我的私钥加密包含的消息,这样只有公钥才能解密它。上面的代码有可能吗,还是我这样做完全错了?
certificate - 使用 ECDSA 密钥时获取签名的 x509
我正在尝试签署一些 X509 证书。我的根私钥是 ECDSA secp384r1。我正在使用充气城堡。似乎发生的情况是,在生成证书签名时,使用的 Signature 类无法理解我的 ECDSA 密钥。
生成的代码如下:
输出是:
通过阅读 bouncycastle 源代码,我跟踪了这个问题并使用以下代码片段重现它:
产生输出:
问题是我在这一点上完全迷失了。我不知道如何让证书生成器给我一个签名证书。有谁知道我做错了什么?
elliptic-curve - Diffie-Hellman 密码学的椭圆曲线版本如何工作?
椭圆曲线 diffie hellman 计算看起来与此处定义的标准曲线有什么不同:
还是只是选择 g、a、p 和 b 的特定方式?无论如何选择g,a,p和b?