Meiner Theorie nach weiß ich, dass wenn n=33
, e(public key)=3
und d(private key)=7
sind, ich einen Klartext
verschlüsseln kann, indem ich die BigInteger
-Klasse mit modPow(e, n)
verwende, und entschlüsseln kann mit modPow(d,n)
, aber nach der Entschlüsselung ist der Klartext
nicht mehr derselbe wie zu Beginn.
Hier ist mein Code:
public class KeyTest {
private BigInteger n = new BigInteger("33");
private BigInteger e = new BigInteger("3");
private BigInteger d = new BigInteger("7");
public static void main(String[] args) {
KeyTest test = new KeyTest();
BigInteger plaintext = new BigInteger("55");
System.out.println("Klartext: " + plaintext);
BigInteger ciphertext = test.encrypt(plaintext);
System.out.println("Chiffretext: " + ciphertext);
BigInteger decrypted = test.decrypt(ciphertext);
System.out.println("Klartext nach der Entschlüsselung: " + decrypted);
}
public BigInteger encrypt(BigInteger plaintext) {
return plaintext.modPow(e, n);
}
public BigInteger decrypt(BigInteger ciphertext) {
return ciphertext.modPow(d, n);
}
}
Die Ausgabe ist:
Klartext: 55 Chiffretext: 22 Klartext nach der Entschlüsselung: 22