暗号
ブロック暗号
定義
固定長の平文ブロックを秘密鍵で暗号化する対称暗号で、任意長のデータを扱うために通常は暗号利用モードと組み合わせて使う。
ブロック暗号は、固定長の平文ブロックを同じ長さの暗号文ブロックへ写す、鍵に依存した決定的置換です。例として DES は 64 ビット、AES は 128 ビットのブロックを扱います。内部では Feistel、置換・置換ネットワーク、Lai–Massey などの構造によるラウンド関数を、秘密鍵から派生した鍵スケジュールに従って複数回繰り返します。1 ブロックより長いメッセージを扱う際には暗号利用モードと組み合わせて使い、ECB(不安全・決定的)、CBC、CTR、ディスク向けの XTS、完全性も提供する認証付きモード(GCM、CCM、GCM-SIV)などが存在します。モード選択、IV/ナンス管理、ブロック長は安全性に直結し、現代のシステムでは AES など 128 ビットブロック暗号を認証付きモードで使うのが推奨されます。
例
- AES は 128 ビットブロック暗号で、GCM、CBC、XTS などのモードで利用される。
- DES は 64 ビットブロック暗号で、鍵長の短さから現在は時代遅れとされる。
関連用語
AES(Advanced Encryption Standard)
NIST が標準化した 128 ビットブロック暗号で、鍵長は 128・192・256 ビット。Daemen と Rijmen が設計し、世界で最も広く使われている対称暗号。
DES(Data Encryption Standard)
1977 年に NBS が標準化した 64 ビットブロック暗号(実効鍵長 56 ビット)。鍵空間を数時間で総当たりできるため、現在は破られているとされる旧式アルゴリズム。
ストリーム暗号
鍵とナンスから導出した擬似乱数の鍵ストリームを平文とビットまたはバイト単位で XOR して暗号化する対称暗号。
対称鍵暗号
暗号化と復号に同じ秘密鍵を使う暗号方式で、鍵を安全に共有できれば高速で強力な機密性を提供する。
暗号化
アルゴリズムと鍵を用いて平文を暗号文に変換し、認可された当事者のみが元のデータを復元できるようにする処理。
初期化ベクトル(IV)
ブロック暗号モードに与えるランダムな初期値で、同じ鍵で同じ平文を暗号化しても異なる暗号文になるようにする。