私はbouncy castle libraryをC#で暗号化と復号化に使用していますが、ブロックサイズよりも小さいプレーンテキストを扱う方法は不思議でした。ここ AES/GCMはブロックサイズより小さいデータをどう扱うのですか?
は、私がこれまでにやっていることです:プレーンデータは、ブロック・サイズ、その後小さいときAesFastEngine engine = new AesFastEngine();
GcmBlockCipher cipher = new GcmBlockCipher(engine);
AeadParameters param = new AeadParameters(new KeyParameters(key), 128, iv, null);
cipher.Init(true, parameters);
byte[] encData = new byte[plain.Length];
cipher.ProcessBytes(plain, 0, plain.Length, encData, 0);
それは何もしません。
処理する最後のデータブロックで 'doFinal(..)'を呼び出す必要があります。 – Robert
AES/GCMはパディングを必要とせず、CTR(カウンタ)モードを使用します。 @Robertはauthタグを生成するために必要な 'doFinal()'を呼び出す必要があると述べています。 – zaph