微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ElGamal 导入一个大素数

如何解决ElGamal 导入一个大素数

我最近实施了多种加密方案。我打算使用 Java Bouncy Castle。我发现导入该方案非常容易。我的第一个实现是 ElGamal 加密。 我的问题是如何导入我生成的大素数 p 和阶 q 并使用这些参数生成带有 Bouncy Castle 的密钥对。

我发现当我使用充气城堡时,我可以导入方案的名称和“BC”。例如,Elgamal 加密。

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ElGamal","BC");

我的问题是如何从中得到生成器 g、阶数 q 和大素数 p,因为其他方案需要这些参数。

解决方法

您不是“获取”字段参数,而是提供它们。注意你只需要 p 和 g;尽管生成器 g 确实(必须)在 Z_p^* 中有一个大素数阶 q,但 ElGamal 实现不使用或不需要该阶。

KeyPairGenerator.init 与 Bouncy 的 ElGamalParameterSpec 或 JCA 的 DHParameterSpec。 JCA 没有为 ElGamal 定义类(或算法),但使用的数学领域与它定义的 Diffie-Hellman 相同,因此 Bouncy 允许您“重新利用”DH 类。 (就像 PAW Patrol 上的 Rocky:不要丢失它,重复使用它!)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。