问题标签 [elgamal]

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 回答
34 浏览

encryption - 将 256 字节块更改为数字以进行加密

我正在研究 RSA 和 ElGamal 加密系统,但我被困住了。我已经编写了这些算法,我知道它是如何工作的。如何将 256 字节的文件块更改为 [1, 2^2048] 范围内的数字?因为我不能将 256 字节作为参数传递给生成的公钥进行加密。

0 投票
0 回答
108 浏览

c - 如何使用 OpenSSL 生成原始根模?

我需要为 ElGamal 密码系统生成原始根模 n,其中 n - 是大素数。如何使用 OpenSSL 生成它?

有没有像primitive_root(...)这样的特殊函数?我没有找到这样的东西。

0 投票
2 回答
1051 浏览

python-3.x - 使用 PyCrypto 实现 El Gamal 加密-解密的 Python 实现溢出错误

我目前正在使用 PyCrypto 库为学术作业实施 ElGamal 加密,但出现以下错误:

溢出错误:无法将“int”放入索引大小的整数中

我不确定我是否错误地阅读了文档,但我基于此页面:

https://www.dlitz.net/software/pycrypto/api/current/Crypto.PublicKey.ElGamal.ElGamalobj-class.html#encrypt

如果有人有任何正确实现的代码示例,我将不胜感激。

0 投票
0 回答
195 浏览

java - 在 Java 中使用椭圆曲线的 El Gamal

出于学术目的,我正在寻找用 Java 中的椭圆曲线(用于加密和解密)实现 ElGamal 的可能性。我想知道这是否可以通过仅使用 Java 标准库来实现,还是只能通过使用第三方库来实现?

对于这个问题,我发现的只是至少有 5 年历史的线程。我希望从那以后有些事情发生了变化。

0 投票
1 回答
1699 浏览

java - 使用椭圆曲线 ElGamal 加密 AES 密钥

有爱丽丝和鲍勃。我想实现以下过程:

  1. Alice 使用 AES 加密文本并生成密钥
  2. Alice 使用带有 El Gamal 的 Elliptic Curves 使用 Bobs 公钥加密此密钥
  3. Alice 将加密文本和加密密钥发送给 Bob
  4. Bob 用他的私钥解密密钥
  5. Bob 用解密后的密钥解密文本
  6. 完毕

我正在使用 bouncycastle 的 ECElGamalEncryptor 类。我的问题是,据我了解,此类使用公钥加密椭圆曲线上的一个点,但我的 AES 密钥不是 ECPoint,而是十六进制。

假设我有这个用于 AES 加密的 128 位密钥:

这就是我到目前为止所拥有的:

所以我能够初始化 ECElGamalEncryptor 并用公钥加密 ECPoint Q。但实际上,我想加密 AES 密钥,我不知道我现在要做什么。

0 投票
0 回答
52 浏览

encryption - 为什么说 RSA 比 ElGamal 加密更快?

对于 RSA,每个明文块都需要用私钥取幂: p^e (mod n) 对于 ElGamal,每个明文块都乘以密钥 s*m (mod n)

所以我认为 ElGamal 在加密方面会比 RSA 更快。但是大多数在线文章都说 RSA 比 ElGamal 快,这是为什么呢?

0 投票
1 回答
195 浏览

java - 使用 Bouncy Castle 的 ElGamal 同态乘法

长话短说:我需要使用ElGamal加密对编码数字执行乘法运算。

我目前正在使用KotlinOpenJDK 1.8找到了一个名为 Bouncy Castle 的 JCE 提供者。它提供ElGamal标准内的加密JCE API。但是,我根本不知道如何对从中得到的加密消息执行乘法运算。

0 投票
0 回答
456 浏览

python - ElGamal 签名:使用 Python 重新计算私钥

对于大学的一个项目,我进行了以下设置:

  • 公钥(p、g、h)
  • 两个密文文件:(c1, c2) & (c3, c4)
  • 上述文件的签名文件:(r1, s1) & (r2, s2)

目标是恢复明文。

我从签名文件中认识到,给定的 r 值是相同的(r1 = r2 = r)。这导致重新计算使用的私钥的可能性

基本上我需要两种算法:

k ≡ (m1 - m2)(s1 - s2)^-1 mod (p-1)

k ≡ (m1 / (s1 - s2) - m2 / (s1 - s2)) mod (p-1)

接着

x ≡ (m1 − k*s1)r^−1 mod (p−1)

x ≡ (m1 / r - k * s1 / r) mod (p-1)

所以我认为编写一个实现链接中提到的算法的python程序应该不是那么难。但我被卡住了。由于某些原因,我没有从我的计算中得到正确的值。也许有人可以在这里轻推我一下?

0 投票
1 回答
86 浏览

c - Elgamal BN_exp() 操作卡住

我正在尝试实施Elgamal操作。常见的第一个是两个 BIGNUM 之间的乘法。第二个是两个 BIGNUM 的幂(例如h:=g^x, c_1:=g^y)。当我这样做时BN_exp(),C程序卡住了。为什么?此外,有什么解决问题的建议吗?

0 投票
1 回答
375 浏览

java - 明文(不是数字)的 El Gamal 加密不工作

下面是我用于加密明文(不是数字)的 JAVA 代码。代码包括加密和解密。

解密后的文本与明文不匹配,我在做什么?

如果我BigInteger m = new BigInteger(msg.getBytes());用此代码替换我的代码有效BigInteger m = new BigInteger(msg);