ブロック暗号(ブロックあんごう、英語: Block cipher)とは、共通鍵暗号の一種で、固定長のデータ(ブロックと呼ぶ)を単位として処理する暗号の総称である。これに対して、ビット単位やバイト単位で処理を行う暗号はストリーム暗号と呼ばれる。 概要[編集] ブロック暗号は、 ビットのブロックと ビットの鍵を入力として、 ビットのブロックを出力する。暗号化 (encryption) と復号 (decryption) の2つのアルゴリズムからなる。任意の鍵 について、復号アルゴリズムは暗号化アルゴリズムの逆関数になっていて、 を満たす( は任意のブロック)ようになっている[1]。暗号化アルゴリズムの入力ブロックおよび復号アルゴリズムの出力ブロックは通信文、暗号化アルゴリズムの出力ブロックおよび復号アルゴリズムの入力ブロックは暗号文という。任意の長さの通信文を扱うために、暗号利用モードが用意され