我是智能卡和Java卡的新手。我计划实现ElGamal密钥生成算法的变体。查找信息并不容易,因此可以在Java卡上计算这些步骤吗?
我知道在智能卡上可以生成RSA密钥,但是这一代的各个步骤(如寻找素数)也是可能的吗?如果没有,是否有其他类型的安全令牌可以做到这一点?我打算使用恩智浦J3D081卡。
答案 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卡中不可用。手动实现也太慢了