原始RSA解密/签名

时间:2012-01-26 08:52:48

标签: blackberry rsa smartcard smime

根据文档,我正在实现RSACryptoToken,这是RSA加密令牌的接口。 有twp方法,称为decryptRSA和signRSA - 它们应该被实现。 在文档中有一个信息,他们应该执行原始RSA解密和原始RSA签名操作。

  1. 原始RSA操作是什么意思?
  2. 这是不是意味着没有填充?
  3. BlackBerry或Bouncy Castle是否提供此类API?

2 个答案:

答案 0 :(得分:1)

基本上PKCS#1 v1.5由三部分组成:

  1. RSA操作本身,
  2. PKCS#1填充和
  3. 哈希的ASN.1编码。
  4. 散列是ASN.1编码的,包括一个ASN.1对象标识符,它唯一地指定使用的散列,以及值,如下所示:

    DigestInfo ::= SEQUENCE {
        digestAlgorithm AlgorithmIdentifier,
        digest OCTET STRING
    }
    

    这是直接从PKCS#1规范中复制的(这些规范非常易读且可公开获得)。请注意,编码在标准中也直接指定为字节。

    Blackberry操作仅提供1)和2),这意味着您必须自己提供包含哈希的ASN.1,DER编码结构。没有为加密/解密定义这样的结构,只删除了填充。

    加密使用随机填充(内部)与非随机填充进行签名。这允许您加密“是”两次,而窃听者无法检测是否为“是”。填充也需要保护签名免受攻击。

答案 1 :(得分:0)

我解决了问题,操作signRSA和decryptRSA应该执行相同的纯模数操作

感谢您的帮助