问题标签 [ecies]

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 投票
0 回答
1515 浏览

java - Java 找不到 ECIES,即使它位于 Bouncy Castle jar 中

我正在尝试通过改编以下代码来测试 ECIES:https ://gist.github.com/amrishodiq/9821413和https://github.com/VictorThompson/t-encryption/blob/master/src/ECIESexample .java

我得到错误:

即使 ECIES 在罐子里:

我究竟做错了什么?

Ecies.java:

生成文件:

0 投票
1 回答
424 浏览

c++ - ECIES 公钥序列化

我正在编写客户端/服务器加密程序并想发送 ECIES 公钥。为此,我必须将公钥序列化到文件,将文件读取到字节数组,发送这个字节数组。另一方面:接收字节数组,将其写入文件,从文件中反序列化公钥。因此,我编写了一些测试项目,尝试将其与出色的系统分开进行,并且(当所有这些模块都成功运行时)只需将其插入我的项目中。这个项目的代码是:

而且,严格来说,主要(用于问题)方法:

代码main.cpp

但它因错误而崩溃:

为什么?

0 投票
1 回答
1684 浏览

java - ECIES encryption/decryption Java

I am trying to use ECIES for encryption and decryption. This is what I have done:

  1. generated ECC key pair

  2. generated CSR

  3. Generated X509 certificate, signed by intermediate CA

  4. Server side, I need to use this certificate to encrypt data. So I have extracted PublicKey (which is showing BCECPublicKey format) from certificate.

    I couldn't find a way to convert it into ECPublicKey format so after upgrading to bouncycastle 1.55, I am able to use directly BCECPublicKey for encryption.

  5. Converted private key into ECPrivateKey and using it for decryption but now it's throwing BadPaddingException: Invalid MAC during decryption

I am new to cryptography, Please help to resolve this. Below is code I am using:

0 投票
1 回答
1521 浏览

java - 在 Crypto++ 中使用 AES 和 CBC 的 ECIES


我需要在 Crypto++ 中实现与 BouncyCastle 的"ECIESwithAES-CBC/NONE/PKCS7Padding"等效的功能。

主要原因是我需要在 iOS 上加密数据并在后端使用 Java 中的 BouncyCastle 对其进行解密,我们希望使用这些特定的算法/配置。

我对 C++ 的经验为零,但这是我迄今为止在 Crypto++ 中的经验:

这是java部分:

目前,当我从 Crypto++ 获取输出并尝试在 BouncyCastle 中对其进行解密时,它会引发异常:

我不确定这是否真的是一个填充问题,还是我做错了什么?

任何建议和帮助将不胜感激。
谢谢!

PS:我已经应用了CryptoWiki中提到的充气城堡补丁

0 投票
1 回答
361 浏览

c# - ECIES with Inferno:与 ECDSA 签约

我正在尝试使用 Inferno 对使用 ECIES 加密的文本文件进行签名。加密和密钥交换部分运行良好,但我还有一些关于 ECDSA 的问题。

1-我猜ECDSA签名必须存储在发送的文件中,以便接收者可以使用它来验证数据完整性,对吗?

2-我读过很多次应该对散列数据执行签名,但是使用 ECIES 发送的数据是加密的,而不是散列的,否则接收方如何检索它?

3- 在下面的代码示例中应该在哪里进行签名?当前尝试不起作用,因为尽管在解密时接受了签名,但会返回一个空字符串(而不是解密的文本)。

0 投票
1 回答
375 浏览

java - 将 ECIES 公钥传输给客户端

我是 ECIES 新手,使用 ECIES 算法进行加密和解密。下面是我用于加密和解密机制的代码片段。

上面的代码片段工作正常,但我想要的是在客户端和服务器之间进行任何通信之前,客户端将发送一个启动请求并在其末尾接收公钥。然后将使用公钥加密有效负载并将其发送到服务器,并在接收到后,服务器将使用之前生成的私钥解密数据。

当我使用以下代码段将 keyPair 存储为 JSON 对象时,它会引发异常:

例外:

org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.bouncycastle.math.ec.WNafL2RMultiplier 并且没有发现创建 BeanSerializer 的属性(为避免异常,禁用 SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS))(通过参考链:MobileData ["keyPair"]->java.security.KeyPair["public"]->org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey["parameters"]->org.bouncycastle.jce.spec.ECParameterSpec["曲线"]->org.bouncycastle.math.ec.custom.sec.SecP256R1Curve["乘数"])

如何将公钥发送给客户端?

0 投票
0 回答
262 浏览

ios - iOS加密的跨平台兼容性

我正在使用 iOS 安全框架进行加密。具体来说,我使用的是 ECIES 加密,它在选择密钥交换、派生、散列和经过身份验证的加密方面似乎非常具体。输出跨平台是否以任何方式兼容?即假设我在 iOS 中使用以下内容加密指向 Bob 的明文:

是否可以使用此密码(连同 Bob 的私钥)并对其进行解密?

如果答案是否定的,那么安全框架中是否有任何东西在这个意义上是跨平台兼容的?

谢谢,Z

0 投票
2 回答
1467 浏览

encryption - ECIES 是公共加密算法吗?

我已经实现了 RSA 加密算法来加密数据加密中使用的对称密钥,但是 RSA 的密钥大小和密文大小造成了内存问题,所以我搜索了其他公钥加密方法来解决问题。我找到了椭圆曲线集成加密方案(ECIES)并理解了它背后的理论,但是,我有点不清楚这种方法如何用作公共/非对称加密算法。该方法使用从共享密钥派生的密钥计算对称加密,用于加密和解密(使用相同的密钥)。

那么如何将其视为非对称加密算法呢?或者有什么方法可以将它实现为非对称加密?

0 投票
1 回答
350 浏览

ios - 什么是 Secure Enclave ECIES 加密数据格式?

我在安全飞地 () 中创建了一个不对称的 EC 密钥对。密钥对的公钥将被发送到我的后端服务,然后使用它来加密数据(kSecKeyAlgorithmECIESEncryptionCofactorX963SHA512AESGCM)。加密的数据将被发送到 iOS 设备,以便使用安全飞地中的私钥进行解密。

我需要知道我应该在后端服务中使用的 ECIES 算法的确切选项。

  1. 曲线名称是什么?
  2. 使用辅因子?
  3. 什么是 AES-GCM 密钥大小和块大小?
  4. 加密数据的格式应该是什么?
  5. 16 字节的标签应该是什么?
0 投票
1 回答
421 浏览

javascript - 我不理解 eccrypto 库中的“加密”对象

我正在学习eccrypto - JavaScript 椭圆曲线密码库的基础知识。我从文档中获得了以下代码。

恐怕我无法正确理解“加密”对象的密钥。

该对象中有四个密钥:“iv”、“ephemPublicKey”、“ciphertext”和“mac”。

如何以二进制格式从此对象中获取 cncrypted 文本?