所以我有这个JavaScript加密库,我将用于chrome扩展,加密RSA中的文本字符串然后将其发送到我的服务器,但是我注意到它使用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?
感谢。
答案 0 :(得分:0)
是的,它看起来像PKCS#1填充。你想知道它的“安全性”是什么?是的,这是安全的。它仍然在PKI中使用。但是,如果您对安全性有疑问,可以使用OAEP。但是,大多数情况下问题不在算法方面。