2011-12-26 81 views
2

我有一個關於RSA實現的任務。剛剛開始研究它。 我需要關於隨機密鑰生成的一些想法。我很清楚這些理論,但不清楚如何爲公鑰和私鑰生成這些隨機數。 我可以得到一些關於這方面的幫助嗎?Java中的RSA實現

回答

3

Java實現RSA的可能是與此類似:

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 2011-12-26 10:15:23

+4

堆棧溢出是爲了幫助對方明確編程的疑惑和疑問,而不是爲了做對方的工作 – 2011-12-26 10:35:55