0

所以我有这个 JavaScript 加密库,我将使用它来加密 RSA 中的文本字符串然后将其发送到我的服务器的 chrome 扩展,但是我注意到它使用 PKCS#1(类型 2)填充来填充数据。

我只是想知道这种填充算法是否被认为对于 RSA 加密文本和通过未加密的 HTTP 连接发送足够安全。

这是执行填充的函数:

    // PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint
    function pkcs1pad2(s,n) {
      if(n < s.length + 11) {
        alert("Message too long for RSA");
        return null;
      }
      var ba = new Array();
      var i = s.length - 1;
      while(i >= 0 && n > 0) {ba[--n] = s.charCodeAt(i--);};
      ba[--n] = 0;
      var rng = new SecureRandom();
      var x = new Array();
      while(n > 2) { // random non-zero pad
        x[0] = 0;
        while(x[0] == 0) rng.nextBytes(x);
        ba[--n] = x[0];
      }
      ba[--n] = 2;
      ba[--n] = 0;
      return new BigInteger(ba);
    } 

该算法的安全性如何,只要密钥很大(在这种情况下为 4096 位),RSA 中使用的填充是否很重要?

此填充是否被视为 PKCS#1 1.5?

谢谢。

4

1 回答 1

0

是的,它看起来像 PKCS#1 填充。你想听到什么关于它的“安全”?是的,它是安全的。而且它仍然在 PKI 中使用。但是,如果您怀疑安全性,您可以使用 OAEP。但是,大多数情况下问题不在算法方面。

于 2013-05-19T20:42:01.867 回答