Hey Jungs und Mädels,
ich bräuchte dringend Hilfe, da ich den RSA-Algorithmus für meine Facharbeit in Java implementieren muss und da die nächsten fertig sein muss
Folgender Quelltext:
Ich habe zunächst die benötigten Schlüssel mit gibSchluessel generieren lassen und wollte dann mit der Methode verschluesseln() den eingegeben Klartext verschlüsseln. Wenn ich die Methode jetzt ausführe, kriege ich eine NullPointerException bei:
at java.math.BigInteger.modPow(BigInteger.java:1547)
at RSAAlgorithmus.verschluesseln(RSAAlgorithmus.java:56)
Ich weiß leider nicht, warum. Dachte erst, das Array würde für Zahlen im 32 Bit Bereich nicht reichen, aber auch wenn ich oben 4 Bit übergebe, klappt es trotzdem nicht.
Wäre euch echt dankbar, wenn wir das Problem schnell gelöst bekommen
Viele Grüße
ich bräuchte dringend Hilfe, da ich den RSA-Algorithmus für meine Facharbeit in Java implementieren muss und da die nächsten fertig sein muss
Folgender Quelltext:
Java:
import java.math.BigInteger;
import java.util.Random;
public class RSAAlgorithmus
{
Random rng;
BigInteger p;
BigInteger q;
BigInteger e;
BigInteger n;
String klartext;
public RSAAlgorithmus()
{
rng = new Random();
}
public void gibSchluessel()
{
p = BigInteger.probablePrime (32, rng);
rng.nextInt();
q = BigInteger.probablePrime (32, rng);
n = p.multiply(q);
BigInteger phi_n = (p.subtract(BigInteger.ONE)).multiply(q.subtract(BigInteger.ONE));
e = BigInteger.probablePrime (31, rng);
while (phi_n.gcd(e).equals(BigInteger.ONE) == false)
{
e = BigInteger.probablePrime (31, rng);
}
BigInteger d = e.modInverse(phi_n);
System.out.println(" n; " + n.toString() + " phi_n; " + phi_n.toString() + " e; " + e.toString() + " d; " + d.toString());
}
public void verschluesseln(String pKlartext)
{
klartext = pKlartext;
char[] klartextArray = klartext.toCharArray();
BigInteger[] codBuchstabenWertArray = new BigInteger[klartextArray.length];
for(int i = 0; i < klartext.length(); i++)
{
BigInteger buchstabenWert = BigInteger.valueOf((int)klartextArray[i]);
codBuchstabenWertArray[i] = buchstabenWert.modPow(e,n);
}
}
Ich habe zunächst die benötigten Schlüssel mit gibSchluessel generieren lassen und wollte dann mit der Methode verschluesseln() den eingegeben Klartext verschlüsseln. Wenn ich die Methode jetzt ausführe, kriege ich eine NullPointerException bei:
at java.math.BigInteger.modPow(BigInteger.java:1547)
at RSAAlgorithmus.verschluesseln(RSAAlgorithmus.java:56)
Ich weiß leider nicht, warum. Dachte erst, das Array würde für Zahlen im 32 Bit Bereich nicht reichen, aber auch wenn ich oben 4 Bit übergebe, klappt es trotzdem nicht.
Wäre euch echt dankbar, wenn wir das Problem schnell gelöst bekommen
Viele Grüße