2014-12-13 4 views

답변

1

RSAGenerate는 공개 키,하지만 진수의 공개 키 지수를 고려하지 않습니다. 이것을 φ (n)와 일치해야하므로주의해서 선택해야합니다. 좋은 값은 다른 구현과의 호환성을 위해 10001 (16 진수)입니다.

공개 키 NE 설정하여 개인 키를 만들 수있다

:

var pubkey = new RSAKey(); 
pubkey.n = privKey.n; 
pubkey.e = privKey.e; 

forge docs는 RSA 키 쌍과 동일한 공개 지수로서 생성되는 방식을 세 가지 실시 예를 포함을 위 :

// generate an RSA key pair synchronously 
var keypair = rsa.generateKeyPair({bits: 2048, e: 0x10001}); 
// generate an RSA key pair asynchronously (uses web workers if available) 
// use workers: -1 to run a fast core estimator to optimize # of workers 
rsa.generateKeyPair({bits: 2048, workers: 2}, function(err, keypair) { 
    // keypair.privateKey, keypair.publicKey 
}); 
// generate an RSA key pair in steps that attempt to run for a specified period 
// of time on the main JS thread 
var state = rsa.createKeyPairGenerationState(2048, 0x10001); 
var step = function() { 
    // run for 100 ms 
    if(!rsa.stepKeyPairGenerationState(state, 100)) { 
    setTimeout(step, 1); 
    } 
    else { 
    // done, turn off progress indicator, use state.keys 
    } 
}; 
// turn on progress indicator, schedule generation to run 
setTimeout(step); 
+0

'E'를 신중하게 선택해야하는 사용자입니까? 라이브러리가 * n * s.t를 생성하지 않습니다. 'E'는 φ (* n *)와 양분입니까? – Kar

+0

예, 사용자가 선택해야하지만 일반적으로 다른 구현과의 호환성을 위해 0x10001로 설정됩니다. –

+0

알겠습니다. 그렇다면 0x10001을 고수하는 것이 안전할까요? – Kar