web-dev-qa-db-ja.com

aes-128-cbcとaes-128暗号化に違いはありますか?

これら2つの暗号化方法に違いがあるかどうかを知りたいですか?私はこれらを使用したことがありません。クライアントからAES-128暗号化を使用するように要求されましたが、グーグルで検索すると「aes-128-cbc」、「aes-128-ctr」、「aes-256-cbc」、または「aes-256-ctr」と表示されます「それで、AES-128のように使用すべきものを知りたいですか?

参照リンク: 暗号化方式を送信する必要がある場所

11
Umair Malik

3つのこと:

  • AES:高度暗号化標準。これは暗号化アルゴリズムの名前です(対称暗号化)。他の対称暗号化アルゴリズムは、DES、3-DESなどです。
  • 128:これはおそらくキーサイズを指します。 AES暗号化では、3つのキーサイズ(128ビット、192ビット、および256ビット)を使用します。 AESのブロックサイズも128ビットです。
  • CBC:これは、必要な暗号化モードです。暗号化には多くのモードがありますが、これはアルゴリズムをどのくらい速く動作させたいか、並列性、およびセキュリティのレベルに依存します。いくつかのモードは、CBC(暗号ブロック連鎖)、ECB(電子コードブック)、CFB(暗号フィードバック)、CTR(カウンター)などです。

クライアントは、AES-128を使用して暗号化するように要求しました。したがって、128ビットキーサイズのAES暗号化を使用する必要があります。使用できるモードはすべて好みになります。私はCBCが好きです。

27
vish4071

CBC対ECBに関する簡単なメモ。 ECBを使用して暗号化する場合、128ビット(ブロックサイズに応じて)ごとにデータが同じキーで暗号化されます。平文にパターンがある場合、暗号化アルゴリズムがどれほど優れていても、結果の暗号化されたテキストも予測可能です。

ECB:

Plain text: aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa
            ---------------- ---------------- ----------------
Encrypted:  bdefjakjapqeiowp bdefjakjapqeiowp bdefjakjapqeiowp

CBCを使用する場合、最初のブロックはIV(初期化ベクトル)とXORされ、キーで暗号化され、2番目のブロックは最初のブロックとXORされてからキーで暗号化され、3番目は2番目とブロックされます。結果の暗号は、周波数分析に対して脆弱ではありません。 CBC Encryption mode

この画像はウィキメディアコモンズ、無料のメディアリポジトリから取得

欠点は、前のブロックの結果が必要になるため、暗号化/復号化を並列化できないことです。そのため、遅くなる可能性があります。しかし実際には、実際の違いはありません。

17
Vincent

含めたリンクを見ると、CBCを含む多くの異なるモードを受け入れると書かれています。使用しない特別な理由がない限り、AES-128-CBCを使用してください。 CBCモードは、優れた汎用モードです。また、CBCモードが正常に機能するためには、パディング(システムで許可されているものであれば、PKCS#5またはPKCS#7を使用)と初期化ベクトルIVを理解する必要があります。

ECBモードは安全ではなく、情報を漏らすため、使用しないでください。

3
rossum