问题标签 [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# - Bouncy Castle ECDH 和 .net4 原生 ECDiffieHellmanCNG 之间的区别
我已经能够使用 .net4 中的 ECDiffieHellmanCNG 生成私钥,并且我还使用 Bouncy Castle C# 库成功生成了私钥。我想知道为什么 .net 4 版本会生成一个字节数组,而 Bouncy Castle 的 ECDHBasicAgreement 会生成一种 BigInteger(手动实现)。我希望能够互换使用这些库。谢谢!
java - 密码学中关于一组整数 Z*p 中元素顺序的群论
我有点陷入群论的深渊,我对我的密码学课程有点迷茫。基本上我必须在java中实现的一个实用程序是,
顺序(质数,p-1 的因子列表,任意 a)
这应该返回组 Z*p 中 a 的顺序,其中 f 是 p-1 的素因子列表。确保您的方法在 f 包含重复项时有效。例如,考虑 p=17 的情况
这是我到目前为止所拥有的,(取自我笔记中的步骤)
素数 f 的列表由另一种方法生成,然后传入
我的笔记很难理解,我想知道是否有人能告诉我我应该返回什么。你也可以让我对这个群论片段有一个可能的理解,因为它可以帮助我进一步的实践
openssl - 从文件中检索私有/公共 KEY (OpenSSL) 时的随机字符
我正在尝试制作一个程序,在它使用 OppenSSL EC 函数 EC_KEY_generate_key 生成公钥/私钥对后,将它们存储在单独的文件中并检索它们以生成 ECDH KEY。
我的问题是,虽然我正确存储它们(没有任何附加字符),但当我读取文件并尝试将十六进制字符转换为 BIGNUM 时,随机出现字符“04”或“00”(有时甚至不出现)。因此,当我尝试设置公钥/私钥并检查整个密钥时,它会失败。谁能帮我解决这个问题?密钥检查失败是由这些字符引起的还是正常的?
这是我生成/存储私钥的代码(公钥相同):
这是我检索私钥的代码:
任何建议将不胜感激!!!!谢谢!
在我阅读了答案后,我尝试使用这些方法对公钥进行解码和编码,但是当我尝试计算 ECDH 密钥时,我遇到了分段错误。我的程序的目标是生成两个 EC 密钥,将它们写入几个文件,然后检索它们并用它们计算一个 ECDH 密钥。这是我在第一个线程中从原始程序中更改的内容列表,如果有问题请告诉我:
我已经厌倦了这个 OpenSSL 库……对于初次使用的用户来说太难了……
java - BouncyCastle 错误:无法识别基于 ECDSA 的签名者中的密钥类型
我一直在用 BouncyCastle 的加密库和 RSA 的加密库做一些简单的测试。我正在做的是生成一个私钥/公钥对,如下所示:
然后我像这样生成签名
我尝试签署私钥:
所有这些都让我犯了错误:
java.security.InvalidKeyException:无法识别基于 ECDSA 的签名者中的密钥类型
当我 BC 和 JsafeJCE 时,我没有收到任何错误,一切都很好。如果两个提供商都是 BC,也可以使用。那么为什么我不能用 BC lib 对 JsafeJCE 生成的密钥进行签名呢?
java - 用于非对称加密的弹性城堡的椭圆曲线密码术 (ECC)
我想使用 ECC 来交换会话密钥以进行长期数据传输。此密钥交换应使用 ECC-192bit(曲线名称:prime192v1)加密。这意味着我想实现自己的混合加密模型。
因此我为 JAVA 使用了充气城堡。我实施了 ECDSA,它工作正常。我实现了 AES-128 位对称加密,这也很好用。但我无法使用 ECC 实现简单的非对称加密。
所以我的问题是:这种非对称加密可以用充气城堡实现吗?
这是我尝试使用 AsymmetricBlockCipher 接口实现 ECC 加密。但这不起作用。
我真的必须像 RSAEngine (RSACoreEngin) 一样实现我自己的 ECCEngine 吗?
这是我的代码:
java - 椭圆曲线加密
请为我提供一个使用 Bouncycastle 库的示例,展示如何在椭圆曲线上添加两个点。
我尝试了以下代码,但没有得到理论上应该发生的相同结果。
而且我也不明白首先BigInteger
在ECFiledElement
.
cryptography - EC公钥是否有标准化的固定长度编码?
我想知道是否有(我希望有)ECDH(椭圆曲线 Diffie-Hellman)和 ECDSA(椭圆曲线数字签名算法)的公钥大小标准,适用于素数字段(192、224、256)上的每种曲线类型, 384 和 521)。
flash - ActionScript 的椭圆曲线加密
有谁知道是否有(最好是高效的:-))ActionScript 的椭圆曲线加密实现?
我知道的唯一库是as3crypto,它为对称加密、散列和其他几个与加密相关的操作提供了很好的实现,但它只有 RSA 用于公钥加密。
在此先感谢,
扬
haskell - Haskell 代码中的编译器错误
我正在尝试使用 where 子句编写椭圆曲线点加法。我收到编译器错误,但是当我使用 let in expression 翻译相同的代码时,它工作正常。有人可以告诉我这段代码有什么问题。完整源代码 [ http://hpaste.org/49174 ]
谢谢
Mukesh Tiwari
java - 使用 EC X509 证书加密电子邮件
我正在尝试使用 BouncyCastle 的 SMIME 包创建使用 ECDSA X509 证书的加密消息。根据 BouncyCastle 的发行说明,自 1.32 以来就已支持此功能(我使用的是 1.46),但我不断收到异常消息,指出找不到 ECDSA OID 的密码。
org.bouncycastle.cms.CMSException:异常包装内容密钥:无法创建密码:找不到任何支持 1.2.840.10045.2.1 的提供程序
这是我正在使用的测试证书之一的片段
我用来创建加密消息的代码如下所示:
我确定我在做一些明显错误的事情,但我现在没有看到它。有任何想法吗?