4

Elgamal で Libgcrypt を使用してバイトのブロックを暗号化していますが、2 つの問題があります。

  1. パディングを使用せず、バイト ブロックが 0 バイトで始まると、復号化中に最初のバイトが失われます。

  2. パディングを使用すると暗号化はうまく機能しますが、復号化してもパディングは削除されません。そして、どうやら最初のゼロバイトがまだそこにあるようです。

RSAで私は同じ問題を抱えています:(

私のテスト コードはそこにあります: www.tiago.eti.br/storage/post.c そして、パディングを使用しません。

パディングを使用するには、次のように変更する必要があります。

#define PADDING "raw"

#define PADDING "pkcs1"

そして、暗号化アルゴリズムの変更を変更するには:

#define ALG "elg"

#define ALG "rsa"

コンパイルするには、次を使用する必要があります。

gcc -Wall -g post.c -lgcrypt -o post

解決するにはどうすればよいですか?

4

1 に答える 1

2

Libgcrypt メーリング リストに同じ質問を投稿したところ、回答がありました。

1.5.0 までの Libgcrypt はパディングを削除しません。フラグは認識しますが、パディングは何もしません。

したがって、解決策は Libgcrypt を 1.5.0 に更新することです。

于 2012-07-25T23:15:51.173 に答える