2011-12-26 3 views
2

J'ai une affectation sur l'implémentation RSA. Juste maintenant commencé à travailler dessus. J'ai besoin d'idées sur la génération de clés aléatoires. Je suis clair avec les théories, mais pas clair sur la façon de générer ces nombres aléatoires pour la clé publique et la clé privée. Pourrais-je obtenir de l'aide à ce sujet?Implémentation RSA en Java

Répondre

3

Une implémentation Java de RSA pourrait être quelque chose de similaire à ceci:

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

Merci @Mithun. Maintenant, je pourrais faire mon cryptage et décryptage. Mais comment transférer le message chiffré à la destination. – Manikandan

+4

Le débordement de pile sert à s'entraider pour effacer les doutes de programmation et les requêtes et non pour faire le travail de l'autre –