Java Card:可以实施此操作吗?

时间:2015-08-22 11:31:47

标签: security rsa smartcard javacard elgamal

我是智能卡和Java卡的新手。我计划实现ElGamal密钥生成算法的变体。查找信息并不容易,因此可以在Java卡上计算这些步骤吗?

  1. 查找大于数字x(约2048位)的最小素数
  2. 确定数字g是否是原始根mod p
  3. 模数指数,对大数字算术(约2048位)
  4. 我知道在智能卡上可以生成RSA密钥,但是这一代的各个步骤(如寻找素数)也是可能的吗?如果没有,是否有其他类型的安全令牌可以做到这一点?我打算使用恩智浦J3D081卡。

2 个答案:

答案 0 :(得分:2)

可能你所拥有的只是javacard的RSA实现(包括CRT变体)。通过这种方式,您可以生成一些大素数(作为CRT私钥的组件)并执行某些模块化算法(请参阅this最近的问题和{{1} } class)。

您的平台可能有一些限制,可能会使事情变得复杂。

手动执行任何操作都可能会很慢(即使您使用了卡支持的带符号的32位整数类型)。

Desclaimer:我从未做过这种计算,所以请验证我的想法。

编辑>

OV chip 2.0 project包含Bignat库,提供大数字算术(下载here)。

EDIT2>

OpenCrypto project提供了JCMathLib,它使用大数和椭圆曲线点实现数学运算。

答案 1 :(得分:0)

据我所知,El gamal算法本身并未在任何卡上实现。所需的加密原语在Java卡中不可用。手动实现也太慢了