ブロック暗号
ブロック暗号は、 b {\displaystyle b} ビットのブロックと n {\displaystyle n} ビットの鍵を入力として、 b {\displaystyle b} ビットのブロックを出力する。暗号化 (encryption) E {\displaystyle E} と復号 (decryption) E − 1 {\displaystyle E^{-1}} の2つのアルゴリズムからなる。任意の鍵 k {\displaystyle k} について、復号アルゴリズムは暗号化アルゴリズムの逆関数になっていて、
E k − 1 ( E k ( m ) ) = m {\displaystyle E_{k}^{-1}(E_{k}(m))=m}
を満たす( m {\displaystyle m} は任意のブロック)ようになっている。暗号化アルゴリズムの入力ブロックおよび復号アルゴリズムの出力ブロックは通信文、暗号化アルゴリズムの出力ブロックおよび復号アルゴリズムの入力ブロックは暗号文という。
計算機とネットワークの進化を背景に、全数探索によるDESの解読可能性を示すために、1997年にRSAセキュリティ社がDESチャレンジを企画、96日後に鍵が発見された。1998年にはハードウェアによる鍵探索専用機 DES cracker が開発され、DESの鍵を56時間で探索した。1997年に次世代暗号 (AES) の制定準備(公募)が始められると共に、1999年にはAESができるまでの中継ぎとしてTripleDESが制定された (FIPS PUB 46-3) 。2001年11月にAESが制定された。また、ヨーロッパではNESSIE、日本ではCRYPTRECといった標準化プロジェクトが実施された。