Плохое заполнение в McEliece Java
Я пытаюсь реализовать алгоритм Мак-Элиса, и у меня возникают проблемы. Когда я пытаюсь расшифровать сообщение, появляется исключение, в котором говорится, что зашифрованный текст недействителен. Я использую реализацию BouncyCastle в качестве руководства в своей работе.
// check if padding byte is valid
if (index<0 || mrBytes[index] != 0x01)
{
throw new InvalidCipherTextException("Bad Padding: invalid ciphertext");
}
Шифрование работает, при расшифровке выдает это исключение.
org.bouncycastle.crypto.InvalidCipherTextException: Bad Padding: invalid ciphertext
at org.bouncycastle.pqc.crypto.mceliece.McElieceCipher.computeMessage(Unknown Source)
at org.bouncycastle.pqc.crypto.mceliece.McElieceCipher.messageDecrypt(Unknown Source)
Это то, что я написал для расшифровки
try {
cipher.init(false, generator.generateKeyPair().getPrivate());
byte[] decodedMessage = cipher.messageDecrypt(enc);
if (decodedMessage.equals(plainMessage))
{
System.out.println("success");
} else
{
System.out.println("...");
}
} catch (InvalidCipherTextException e) {
e.printStackTrace();