elliptic-curve相关内容

从JavaCard恢复ECPublicKey到Java

我正在尝试在终端(由计算机模拟)和智能卡(Java卡)之间实现ECDH。 我固定了想要的椭圆曲线使用,在卡侧,我有以下代码可以运行协议的第一部分: ECPublicKey pubKey =( ECPublicKey)KeyBuilder.buildKey( KeyBuilder.TYPE_EC_FP_PUBLIC,(short)0x0100,false); pubKey.set ..
发布时间:2020-09-23 01:08:46 Java开发

ECC私钥长于公钥

我已经使用secp192r1曲线生成了ECC公钥和私钥。对于公共,我得到75,对于私有编码的密钥数组长度,我得到125。为什么私钥比公钥长?为什么私钥不超过公钥的两倍?为什么由于secp192r1,私钥不是192位= 24字节? Security.addProvider(new org.bouncycastle.jce.provider .BouncyCastleProvider()); ..

使用BouncyCastle在Java中使用ECIES进行加密

我正在尝试使用Java中的BouncyCastle使用ECC算法对某些内容进行加密。但我遇到了BouncyCastle库,该库无法将 JCEECPublicKey 转换为 IESKey 。据我了解,由 KeyPairGenerator 生成的公钥是 JCEECPublicKey ,不能在Java 中使用Cipher.init 方法。有人可以告诉我如何将其转换为公钥或X509规范,以便可以将其用于加 ..
发布时间:2020-09-23 01:01:57 Java开发

如何将公共EC代码点和曲线名称转换为PublicKey?

我有两个32字节长的字节数组,分别表示EC公共密钥的X和Y值。我知道该曲线为命名曲线“ prime256v1”。 如何将其转换为Java PublicKey对象? JCE似乎不提供使用命名曲线的任何工具。 Bouncycastle的示例代码似乎无法与任何版本的充气城堡一起编译找到。 WTF吗? 解决方案 事实证明,实际上,这是另一种方法。显然,可以使用Algorit ..
发布时间:2020-09-23 00:57:49 Java开发

从本地Java中的私钥字符串派生EC公钥以获取曲线secp256k1

我需要从EC私钥字符串派生EC公共密钥,而无需任何第三方库的“帮助". 私钥是从外部产生和提供的,我需要获取公钥才能生成比特币地址.当我的项目处于“离线"状态时,我不需要像Bouncy Castle这样的库就可以用于任何其他目的,因此我想消除它. 以下程序可以正常运行,并显示了与Bouncy Castle合作以获取解决方案时的示例(非常简短).第二部分是本机Java解决方案,它得到了S ..
发布时间:2020-09-21 05:13:54 Java开发

SSLHandshakeException:在Android N/7.0上握手失败

我正在开发一个应用程序,(高级)用户必须为此设置自己的服务器(即nginx)来运行后端应用程序.需要在应用程序中配置相应的域,以便它可以连接.我主要在自己的手机(sony z3c)上进行测试,并开始为5.1开发.后来我收到了6.0的更新,但在仿真器中仍保持有效的5.1.不久之前,我开始使用具有7.0映像的AVD进行工作,但令我惊讶的是它无法连接到我的服务器,告诉我ssl握手失败.我的nginx配置 ..

iOS/Swift中的椭圆曲线Diffie Hellman

iOS是否公开用于密钥生成和使用ECDH进行秘密密钥派生的API? 据我所知,苹果内部使用它(特别是x25519),但我看不到它是通过公共加密或其他方式公开为公共API的. 谢谢 Z 解决方案 使用Xcode 8.3.3在操场上完成,使用EC为Alice,Bob生成私钥/公钥,然后使用Alice的private和鲍勃(Bob)的公开,并使用鲍勃(Bob)的私有和爱丽丝(A ..
发布时间:2020-07-22 18:37:08 移动开发

BouncyCastle Java API和OpenSSL生成的ECDH机密不同

我正在尝试使用椭圆曲线加密.我需要同一件事的两种实现,一种在Java中,一种在C中.我正在使用通过曲线 secp256k1 生成的两对密钥对它们进行测试.当我用Java生成派生秘密时,我总是得到与OpenSSL不同的数字. Java代码: /* privateKey and peerPublicKey are generated with the following parameter ..
发布时间:2020-05-21 02:48:34 Java开发

如何仅从比特币签名中获得ECDSA公钥? ... SEC1 4.1.6密钥恢复,用于(mod p)字段上的曲线

更新:Git上提供了部分解决方案 编辑:可以在 https://github.com/makerofthings7/Bitcoin上获得其编译版本. -MessageSignerVerifier 请注意,要验证的消息必须以Bitcoin Signed Message:\n作为前缀. Source1 我可能可以从 实际上想出正确的Base 58地址似乎有问题. 我在下面有以下消息 ..
发布时间:2020-05-21 02:24:13 C#/.NET

在签名之前,用于ECDSA的OpenSSL -sign是否将ASN1编码应用于哈希?

此SO问题使用OpenSSL而不使用ASN1编码的ECDSA标志hash 在对散列进行签名之前将OpenSSL perfoms ASN1编码声明为散列. 换句话说,当椭圆曲线键-sign被调用时,它指出OpenSSL执行以下步骤: 一种.计算H =哈希(M) b.将H编码为ASN1标准-H’ C.签名H’ 因此,为避免应用步骤b,有必要先计算摘要,然后使用原始签名-椭圆曲线键的pkey ..