Плохое заполнение в 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();

0 ответов

Другие вопросы по тегам