RSA暗号化の実装を行います。私は知りたい 。RSA暗号化での復号化よりも暗号化が何倍速いか。System.currentTimeMillis();を使用してJavaで経過時間を計算してみます。ただし、暗号化時間= 0.05ミリ秒、復号化時間0.55ミリ秒はその1:11からの平均です。この結果は合理的ではないと思います私のコードは次のとおりです
//here my key has 256 bits
for (;;) {
long begin = System.currentTimeMillis();
for (int i = 0; i < num; i++) {
decrypt();
}
long end = System.currentTimeMillis();
long time = end - begin;
if (time >= 10000) {
System.out.printf("Average Encryption takes: %.2f ms\n",
(double) time / num);
break;
}
num *= 2;
}
p = BigInteger.probablePrime(128, random);
q = BigInteger.probablePrime(128, random);
N = (p.subtract(one)).multiply(q.subtract(one));
e = BigInteger.probablePrime(32, random);
d = e.modInverse(N);
private void encrypt()
{
C= M.modPow(e,N);
}
private void decrypt()
{
RM = C.modPow(d, N);
}
これらの結果についての説明をお願いします