Ich versuche, El-Gamal Verschlüsselungsalgorithmus in einem System zu implementieren. Ich habe gerade etwas über den Algorithmus gelernt und im Internet nach Codes gesucht, um eine Idee zu bekommen, sie zu implementieren. Ich fand den folgenden Code im Internet und gibt mir diese seltsame Fehler:(BouncyCastle Fehler: min darf nicht größer sein als max) Implementierung von El-Gamal-Algorithmus mit Java
Exception in thread "main" java.lang.IllegalArgumentException:'min' may not be greater than 'max'
at org.bouncycastle.util.BigIntegers.createRandomInRange(Unknown Source)
at org.bouncycastle.crypto.generators.DHKeyGeneratorHelper.calculatePrivate(Unknown Source)
at org.bouncycastle.crypto.generators.ElGamalKeyPairGenerator.generateKeyPair(Unknown Source)
at org.bouncycastle.jcajce.provider.asymmetric.elgamal.KeyPairGeneratorSpi.generateKeyPair(Unknown Source)
at ElGamal.main(ElGamal.java:20)
Hier ist der Code-Segment:
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;
import java.security.Security;
import javax.crypto.Cipher;
public class ElGamal {
public static void main(String[] args) throws Exception {
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
byte[] input = "abcdefgh".getBytes();
Cipher cipher = Cipher.getInstance("ElGamal/None/NoPadding", "BC");
KeyPairGenerator generator = KeyPairGenerator.getInstance("ElGamal", "BC");
SecureRandom random = new SecureRandom();
generator.initialize(128, random);
KeyPair pair = generator.generateKeyPair();
Key pubKey = pair.getPublic();
Key privKey = pair.getPrivate();
cipher.init(Cipher.ENCRYPT_MODE, pubKey, random);
byte[] cipherText = cipher.doFinal(input);
System.out.println("cipher: " + new String(cipherText));
cipher.init(Cipher.DECRYPT_MODE, privKey);
byte[] plainText = cipher.doFinal(cipherText);
System.out.println("plain : " + new String(plainText));
}
}
Ich bin sehr neu auf die Kryptographie und dies ist wahrscheinlich albern. Es tut mir leid, wenn die Frage zu albern ist. Und danke im Voraus.
Haben Sie versucht, die Tastengröße anzupassen? Dies könnte ein Fehler in BC sein. Welche Version verwendest du und hast du eine andere ausprobiert? –
Ich habe versucht, aber hat nicht funktioniert. Aber ich fand im Internet, dass El-Gamal an der Schlüsselgröße von mindestens 160 arbeitet. Also korrigierte die Schlüsselgröße später auf 512. @ Aritjom.B –