目次
何でこんな記事を書いているのか......
どうも、初めましてRukiというネットネームで、いつもSNSを探検しています。
今回は、とあるセキュリティ問題でAES-CBCという暗号アルゴリズムが登場したため、少し語ろうと思います。
AESとはなんぞや?
AESとは、Advanced Encryption Standardの略であり、これまでにDESというData Encryption Standardという暗号アルゴリズムがあったのですが、それの拡張版みたいなものです。
共通鍵暗号であるため、共通鍵を用います。
DESと違って、AESは
- 鍵長が128, 192, 256ビットに拡張
- ブロックサイズが128ビット
- 高速で軽量(ハードウェア/ソフトウェア両方で効率的)
など色々メリットがあります。
簡単に、図にするとこうなります。
至ってシンプルだと思います。
これにプラスして、ファイステルネットワークとかも関係しますが、今回は除外します。
CBCって何それ?
CBCとは、Cipher Block Chainingモード(暗号ブロック連鎖モード)の略で、1つ前の暗号文ブロックと平文ブロックのXORをとってから暗号化します。
わかりにくいと思うので、図で説明します。
CBCモードでは、基本は、1ブロック前の暗号文ブロックからXORで暗号化を行います。しかし、最初の暗号化は元となる暗号文ブロックが存在しないため、最初にランダムに生成したビット列を1ブロック分用意してから、暗号化を開始します。
AES-CBCとは
つまりは、AES-CBCとは、共通鍵を用いた、暗号化ブロック連鎖式の共通鍵暗号方式であることがわかります。
これにより、暗号化しながら、単一の暗号・復号関係を防ぎ、尚且つ、そのまで複雑でもないことから、今でも使われている時があります。