问题标签 [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 投票
2 回答
2096 浏览

java - 椭圆曲线 ElGamal Java 实现

是否有具有密钥生成、加密和解密功能的 ElGamal 椭圆曲线密码系统的简单实现(使用 Java BigInteger);一个可以用来在讲座中向大学生解释的东西?

例如,Paillier 加密函数可以在不失一般性的情况下编码为:

其中包含优化 g=(1+n),使得密文 c = (1 + mn) r^n mod n^2。

不要建议 Java 7 原生实现或 BouncyCastle 实现,因为我不需要真实世界的符合 JCA 的复杂实现。

谢谢。

0 投票
1 回答
606 浏览

java - 不使用证书的加密 RMI 通信

我需要在同一台主机上创建两个 java 进程以安全通信。我不需要对流程进行身份验证,因此我不想使用证书。

我想在服务器和客户端生成一个随机密钥,使用 Elgamal 在进程之间交换密钥;跨进程建立公共对称密钥;然后安全地通信。

据我所知,这可以通过实现 RMIServerSocketFactory 和 RMIClientSocketFactory 接口来建立如上所述的对称密钥来完成。

是否已经有一个实现来做到这一点?

或者有没有办法配置 SslRMIServerSocketFactory 和 SslRMIClientSocketFactory 开始使用 ElGamal 作为密钥交换协议

ElGamal 是 RSA 的首选,因为 ElGamal 将为每次握手生成随机对称密钥,而 RSA 每次都会生成静态密钥。

0 投票
1 回答
2217 浏览

openssl - 有没有人使用 OpenSSL 甚至在内部实现了 ElGamal?

我发现OpenSSL没有实现ElGamal。但是,目前我需要使用OpenSSL来实现ElGamal。我只是想知道是否有人以前做过。这可能有助于我减轻工作量。如果没有,在OpenSSL中实现ElGamal是否可行?我曾尝试修改 DSA 的源代码以实现ElGamal,这会产生一些可能无法轻易发现的麻烦吗?

0 投票
0 回答
138 浏览

java - 当我想用 elgamal 解密时,如何使用字符串而不是文件?

我想使用 ElGamal 加密。我可以用 a 做到这一点File,但我不知道如何用 a 做到这一点String

像这样:

}

我不想使用sPrFile. 我想使用String变量。我的钥匙是这样的:

0 投票
1 回答
4616 浏览

java - 生成带有充气城堡的 dsa/elgamal 密钥对,在 GPG 中导入时不会出错

我创建了一个小程序来使用 Bouncy Castle 1.47 API 生成 DSA / El Gamal PGP 密钥环。密钥生成非常顺利,没有错误。我使用装甲输出将私钥和公钥导出到文件中,当我尝试使用 GPG(确切地说是 KGpg)导入生成的私钥时,出现以下错误:

单击“确定”后,它告诉我只处理了 1 个密钥。看起来它只使用了 DSA 密钥,因为在屏幕上它显示为 1024/0。

**编辑** 我刚刚尝试在 Windows 上打开 PGP 10.1.0 中的密钥,它也给了我一个错误“密钥环包含一个坏的(损坏的)PGP 数据包。”

我正在使用的代码如下所示,第一个是 Utility 类,第二个是调用它来创建 Key 的程序。


生成的输出是 2 个文件“secret.asc”和“public.asc”如果我尝试在 GPG 中导入“secret.asc”,我会收到错误,并且不会导入 El Gamal 子密钥。

有谁知道这有什么问题?

0 投票
1 回答
5028 浏览

c# - ElGamal C# 实现

我想实现 ElGamal 加密。我的学校工作需要这个,但是当我想要解密时,最后一步总是 0,因为(b/Math.Pow(a,x))%primenumber总是小于 1。

这是密钥生成:

这是加密功能:

这是我的解密功能:

0 投票
5 回答
30217 浏览

java - 让 GPG 解密在 Java 中工作(Bouncy Castle)

首先让我说我对这一切都非常陌生。我想要做的是在 Java 中使用 gpg 来解密加密文件。

我成功完成的事情:

  • 让一位同事使用我的公钥和他的私钥加密文件并成功解密。

  • 走了另一条路

  • 让另一位同事尝试解密不适合他的文件:失败(如预期)

我的密钥是这样生成的......

(gpg --version 告诉我我使用的是 1.4.5,我使用的是 Bouncy Castle 1.47)

gpg --gen-ley

选择选项“DSA 和 Elgamal(默认)”

填写其他字段并生成密钥。

该文件是使用我的公钥和另一个人的密钥加密的。我想解密它。我编写了以下 Java 代码来完成此操作。我正在使用几种已弃用的方法,但我不知道如何正确实现使用非弃用版本所需的工厂方法,所以如果有人对我应该使用的那些方法的实现有想法,那将是不错的奖金。

因此,当我运行此代码时,我了解到我的密钥的算法和格式如下:

算法:DSA 格式:PKCS#8

然后它在最后一行中断:

原因:java.security.InvalidKeyException:在 org.bouncycastle.jcajce.provider.asymmetric.elgamal.CipherSpi.engineInit(Unknown Source) 在 org.bouncycastle.jcajce.provider.asymmetric.elgamal.CipherSpi 处传递给 ElGamal 的未知密钥类型。 engineInit(Unknown Source) at javax.crypto.Cipher.init(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) ... 还有 8 个

我在这里接受很多建议,从“不要使用 gpg,改用 x”到“不要使用充气城堡,改用 x”到介于两者之间的任何建议。谢谢!

0 投票
0 回答
581 浏览

encryption - Elgamal 加密和解密

如果游戏通过 Elgamal 发送加密数据并且您拥有 (pgy) 而游戏应该发送 a=g^k mod p 和 b=(msg)*y^k mod p,那么您将收到 (a,b) 和收到的 msg 是十六进制形式,例如 w/e ...................... 这只是示例(不是真正的十六进制)

...我怎么知道a在哪里,b在哪里?反正有认识他们吗?所以我可以解密它们。注意:我有(pgy)哪个游戏使用

0 投票
1 回答
1353 浏览

python - 如何将 ElGamal 密钥导出到文本文件?

我一直致力于加密字符串并将其显示为 QR 码(在对字符串进行 base64 编码之后)。

我想使用 PyCrypto 中的 ElGamal 私钥-公钥加密模块进行加密,但问题是它没有将密钥保存到文本文件的导出功能。我错过了什么吗?如果没有,是否有一种聪明的方法可以导出它,或者我应该看看其他东西?

PS。使用 ElGamal 而不是 RSA 的原因是我可以使密钥小于 1024 字节,这使得二维码更小、更简单。

0 投票
0 回答
735 浏览

python - 如何在 ezPyCrypto 中使用 ElGamal 加密

我遇到了一个不错的加密模块ezPyCrypto,用于 python 的 PyCrypto 模块。在描述中,它说用户可以在 RSA 和 ElGamal 加密之间指定,但我不知道我应该在代码中指定的位置(此处为 API)。

有没有其他人管理过这个或对 ezPyCytpo 有任何经验?任何帮助将不胜感激。

这是我正在谈论的描述:

特征:

  1. ezPyCrypto 让您:
    • 生成、导出和导入公钥和私钥
    • 轻松加密和解密字符串
    • 可选择将加密数据创建为电子邮件友好文本
    • 签署和验证字符串(包括文件)
    • 使用密码保护您的私钥
    • 创建“流”,用于通过安全套接字发送数据
    • 选择您喜欢的任何公钥大小(推荐 2048 位)
    • 在 RSA 和 ElGamal 之间选择公钥,在IDEA、DES3、Blowfish、ARC4、IDEA 之间选择会话密钥
    • 使用 256 位会话密钥和针对常见 RSA 和 ElGamal 攻击的防御措施,让任何试图侵犯您隐私的人感到非常沮丧,让您在安全的舒适中休息。