2011-12-26 13 views
2

私はRSAの実装を割り当てています。ちょうど今それに取り組み始めた。 私はランダムな鍵の生成についていくつかのアイデアが必要です。私は理論ではっきりしていますが、公開鍵と秘密鍵の乱数をどのように生成するかについては明確ではありません。 私はこれについていくつかの助けを得ることができますか? RSAのJavaでのRSAの実装

答えて

3

A Java実装は次のようなものが考えられます。

import java.math.BigInteger; 
import java.security.SecureRandom; 
import java.util.*; 

class Rsa_Implementation 
{ 
private BigInteger n, d, e; 

public Rsa_Implementation(int bitlen) 
{ 
SecureRandom r = new SecureRandom(); 
BigInteger p = new BigInteger(bitlen/2, 100, r); 
BigInteger q = new BigInteger(bitlen/2, 100, r); 
n = p.multiply(q); 
BigInteger m = (p.subtract(BigInteger.ONE)) 
       .multiply(q.subtract(BigInteger.ONE)); 
e = new BigInteger("3"); 
while(m.gcd(e).intValue() > 1) e = e.add(new BigInteger("2")); 
d = e.modInverse(m); 
} 
public BigInteger encrypt(BigInteger message) 
{ 
return message.modPow(e, n); 
} 
public BigInteger decrypt(BigInteger message) 
{ 
return message.modPow(d, n); 
} 
} 
+0

あなた@Mithunをありがとうございます。今私は私の暗号化と復号化を行うことができます。しかし、暗号化されたメッセージを宛先に転送する方法。 – Manikandan

+4

スタックオーバーフローは、お互いの仕事をやり遂げるためではなく、相互にプログラミングの疑問や質問を明確にすることです –

関連する問題