これら2つの暗号化方法に違いがあるかどうかを知りたいですか?私はこれらを使用したことがありません。クライアントからAES-128暗号化を使用するように要求されましたが、グーグルで検索すると「aes-128-cbc」、「aes-128-ctr」、「aes-256-cbc」、または「aes-256-ctr」と表示されます「それで、AES-128のように使用すべきものを知りたいですか?
参照リンク: 暗号化方式を送信する必要がある場所
3つのこと:
クライアントは、AES-128を使用して暗号化するように要求しました。したがって、128ビットキーサイズのAES暗号化を使用する必要があります。使用できるモードはすべて好みになります。私はCBCが好きです。
CBC対ECBに関する簡単なメモ。 ECBを使用して暗号化する場合、128ビット(ブロックサイズに応じて)ごとにデータが同じキーで暗号化されます。平文にパターンがある場合、暗号化アルゴリズムがどれほど優れていても、結果の暗号化されたテキストも予測可能です。
ECB:
Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
---------------- ---------------- ----------------
Encrypted: bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp
CBCを使用する場合、最初のブロックはIV(初期化ベクトル)とXORされ、キーで暗号化され、2番目のブロックは最初のブロックとXORされてからキーで暗号化され、3番目は2番目とブロックされます。結果の暗号は、周波数分析に対して脆弱ではありません。
この画像はウィキメディアコモンズ、無料のメディアリポジトリから取得
欠点は、前のブロックの結果が必要になるため、暗号化/復号化を並列化できないことです。そのため、遅くなる可能性があります。しかし実際には、実際の違いはありません。
含めたリンクを見ると、CBCを含む多くの異なるモードを受け入れると書かれています。使用しない特別な理由がない限り、AES-128-CBCを使用してください。 CBCモードは、優れた汎用モードです。また、CBCモードが正常に機能するためには、パディング(システムで許可されているものであれば、PKCS#5またはPKCS#7を使用)と初期化ベクトルIVを理解する必要があります。
ECBモードは安全ではなく、情報を漏らすため、使用しないでください。