パディングなしでCFBモードでAESを使用してファイルから読み取り、データを暗号化しようとしています
「AES/CFB/NoPadding」。IV の長さは 16 バイトです。
デフォルトで AES が 16 バイト ブロックで動作することを考えると、CBC や CFB 以外のモードを使用している場合は、パディング スキームを使用することを考えたでしょう。CFB では、基本的にプレーンテキストのパディングは必要ありません。
問題は、ファイルに 16 バイト未満のデータが含まれている場合、何も暗号化されないことです。16 バイトを超える場合は、最初の 16 バイトのみが暗号化されます。
これは、ブロック サイズが増加していることを明確に示しており、ブロック サイズに対してバイトのアンダーフローまたはオーバーフローが発生した場合、そのデータ/バイトは破棄されます。
私が理解していないのは、CFBを使用している間、データをパディングする必要がないということです..そうです! では、なぜ AES の 16 バイトのデフォルト ブロック サイズが機能し、データが切り捨てられるのでしょうか?