Security Java卡:这个操作可以实现吗?

Security Java卡:这个操作可以实现吗?,security,rsa,smartcard,javacard,elgamal,Security,Rsa,Smartcard,Javacard,Elgamal,我不熟悉智能卡和Java卡。我计划实现ElGamal密钥生成算法的一种变体。查找信息并不容易,所以可以在Java卡上计算这些步骤吗 查找大于数字x(约2048位)的最小素数 确定数字g是否为基元根模p 模指数,大数算术(约2048位) 我知道在智能卡上可以生成RSA密钥,但是生成的各个步骤(如查找素数)也可以吗?如果没有,是否有其他类型的安全令牌可以做到这一点?我计划使用NXP J3D081卡。据我所知,El gamal算法本身并没有在任何卡上实现。java卡中没有所需的加密原语。手动实现也太慢

我不熟悉智能卡和Java卡。我计划实现ElGamal密钥生成算法的一种变体。查找信息并不容易,所以可以在Java卡上计算这些步骤吗

  • 查找大于数字x(约2048位)的最小素数
  • 确定数字g是否为基元根模p
  • 模指数,大数算术(约2048位)

  • 我知道在智能卡上可以生成RSA密钥,但是生成的各个步骤(如查找素数)也可以吗?如果没有,是否有其他类型的安全令牌可以做到这一点?我计划使用NXP J3D081卡。

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

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

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

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

    描述者:我从来没有做过这种计算,所以请验证我的想法

    编辑>

    包含一个提供大数字算术的库(下载)

    编辑2>


    提供用大数和椭圆曲线点实现数学运算的函数。

    您能告诉我如何获得这样一个素数吗?我什么也找不到。第1点是一个次优(读作:坏)方法;这里素数的可能性与之前非素数间隙的大小成正比。第3点是正常的RSA(例如加密)计算,当然是可能的。ElGamal的计算与RSA非常相似。难道不可能使用RSA硬件来实现ElGamal吗?快速看一下,我认为乘法步骤是一个非常困难的部分。在使用RSA时有一些黑客攻击。我可以看看以前的项目,可以在周二提供更多信息。你的卡支持DH吗?我还没有买这张卡。我找不到太多关于它的信息,这里有一个例子。它没有提到迪菲·赫尔曼。如果你认为我提到的其他步骤是不可能的,你不需要麻烦。否则,谢谢。如果我没记错的话,使用二元公式是可行的,因为你可以用RSA快速平方,除以2很简单,所以你只需要添加一些字节数组。你是说获得素数的唯一方法是计算RSA密钥对并提取p和q吗?这对我来说还不够,我需要得到一个特定数字的下一个素数。这是我知道的唯一一种纯java卡方式(除了生成DSA密钥对)。您可能想考虑使用这个芯片应该支持的“安全盒”特性(我没有这个经验,但它允许您运行本机代码。也许其他人可以帮助您……)ScCueBox功能不是您可以独自运行的任何东西。它很复杂,需要NXP将您的本机代码写入ROM掩码,并向您发送特殊的人工卡