Java卡:这个操作可以实现吗?
Java Card: can this operations be implemented?
我是智能卡和 Java 卡的新手。我计划实施 ElGamal 密钥生成算法的变体。资料不好找,请问Java卡可以算出这个步数吗?
- 找出大于数x(约2048位)的最小素数
- 判断数g是否为原根mod p
- 模幂,大数算术(约2048位)
我知道可以在智能卡上生成 RSA 密钥,但是生成的各个步骤(如查找质数)是否也可以?如果没有,是否有其他类型的安全令牌可以做到这一点?我打算使用 NXP J3D081 卡。
据我所知,El gamal 算法本身并未在任何卡上实现。 java 卡中没有所需的加密原语。手动实施也太慢
您可能只有 javacard 的 RSA 实现(包括 CRT 变体)。这样你就可以生成一些大素数(作为CRT私钥的组成部分)并进行一些模运算(参见最近的问题和 RSAPrivateCrtKey
class).
您的平台可能有一些限制,这可能会使事情变得有点复杂。
手动执行任何操作都可能会很慢(即使您拥有卡支持的带符号的 32 位整数类型)。
免责声明:我从来没有做过这种计算,所以请验证我的想法。
编辑>
OV chip 2.0 project contains a Bignat library which offers arithmetic on big numbers (download here).
编辑2>
OpenCrypto project provides JCMathLib实现大数和椭圆曲线点的数学运算
我是智能卡和 Java 卡的新手。我计划实施 ElGamal 密钥生成算法的变体。资料不好找,请问Java卡可以算出这个步数吗?
- 找出大于数x(约2048位)的最小素数
- 判断数g是否为原根mod p
- 模幂,大数算术(约2048位)
我知道可以在智能卡上生成 RSA 密钥,但是生成的各个步骤(如查找质数)是否也可以?如果没有,是否有其他类型的安全令牌可以做到这一点?我打算使用 NXP J3D081 卡。
据我所知,El gamal 算法本身并未在任何卡上实现。 java 卡中没有所需的加密原语。手动实施也太慢
您可能只有 javacard 的 RSA 实现(包括 CRT 变体)。这样你就可以生成一些大素数(作为CRT私钥的组成部分)并进行一些模运算(参见RSAPrivateCrtKey
class).
您的平台可能有一些限制,这可能会使事情变得有点复杂。
手动执行任何操作都可能会很慢(即使您拥有卡支持的带符号的 32 位整数类型)。
免责声明:我从来没有做过这种计算,所以请验证我的想法。
编辑>
OV chip 2.0 project contains a Bignat library which offers arithmetic on big numbers (download here).
编辑2>
OpenCrypto project provides JCMathLib实现大数和椭圆曲线点的数学运算