【问题标题】:Obtaining the RSA Public key Remainder using Bouncy Castle使用 Bouncy Castle 获取 RSA 公钥剩余部分
【发布时间】:2017-08-01 16:27:39
【问题描述】:

我是密码学新手,我想知道是否有任何已经实现的方法来获取公钥剩余部分。

我发现以下关于公共剩余部分的声明: Issuer Public Key Modulus分为 两部分,一部分由 N 组成 加州 – 36 个最高有效字节 模数(颁发者公钥的最左边的数字)和第二部分 由剩余的 N 组成 一世 - (N 加州 – 36) 模数的最低有效字节 (the Issuer Public Key Remainder)

在本书中: http://mech.vub.ac.be/teaching/info/mechatronica/finished_projects_2007/Groep%201/Smartcard_files/EMV%20v4.1%20Book%202.pdf

我正在使用 org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters#getModulus

获取模数部分。

能否使用 Bouncy Castle 获取公钥余数,还是应根据上述规范手动计算?

【问题讨论】:

    标签: java cryptography rsa bouncycastle chinese-remainder-theorem


    【解决方案1】:

    不,BouncyCastle 不提供 API 来获取公钥余数,因为 BouncyCastle 提供了 RSA 的通用实现,相反,公钥余数并不经常使用:它主要仅用于集成电路卡和相关的软件。

    所以,如果你需要得到余数,你必须自己计算。如果您不处理集成电路卡,则不必担心其余部分。

    现在,这是一种计算余数的方法(我们假设定义了 Ni 和 Nca):

    BigInteger modulus = ...;
    int nbytes = Ni − (Nca − 36);
    BigInteger remainder = modulus.divideAndRemainder(BigInteger.valueOf(2).pow(8*nbytes))[1];
    

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2016-02-05
      • 2018-10-06
      相关资源
      最近更新 更多