暗号利用モード
出典: フリー百科事典『ウィキペディア(Wikipedia)』
暗号利用モード(あんごうりようモード、Block cipher modes of operation)とは、ブロック暗号を利用して、ブロック長よりも長いメッセージを暗号化するメカニズムのことである。
ECBモード(単純なブロック暗号の利用法)では、ある鍵で同一の平文を暗号化すると、同一の暗号文になる。したがって、長いメッセージ(画像データなど)のある部分が他の部分と同じであるかどうかが、暗号文の比較によって判断できてしまうので、他のモードが必要となった。
暗号利用モードには、秘匿用の利用モードと、認証用の利用モードとがある。
秘匿用の利用モード
秘匿用の利用モードとして次のものなどが知られている。
これらのうち、ECB, CBC, OFB, CFBの4つは、FIPS, ANSIのほか、ISO、JISで規格化されている。またCTRは、AES制定の際に追加されたモードである。
- ECB (Electronic CodeBook) <math>C_i=E_K(M_i)</math>
- CBC (Cipher Block Chaining) <math>C_i=E_K(M_i\oplus C_{i-1})</math>
- inner-CBC 略。
- outer-CBC 略。
- OFB (Output FeedBack) <math>H_i=E_K(H_{i-1})</math>, <math>C_i=M_i\oplus H_i</math>
- KAK (key auto-key) ともいう。
- CFB (Cipher FeedBack) <math>C_i=M_i\oplus E_K(C_{i-1})</math>
- CTAK (ciphertext auto-key) ともいう。
- k-CFB (k-bit CFB) <math>C_i=M_i\oplus\mathrm{msb}_k(E_K(R_{i-1}))</math>, <math>R_i=(R_{i-1}<<k)\oplus C_i</math>, ここで、<math>\mathrm{msb}_k()</math>は上位kビット。
- CTR (CounTeR) <math>C_i=M_i\oplus E_K(R_i)</math>, <math>R_{i+1}=R_i+1</math>
- CTS (CipherText Stealing) 複雑なので略。
- 2DEM (2D Encryption Mode) 複雑なので略。
- ABC (Accumulated Block Chaining) 複雑なので略。
- IGE (Infinite Garble Extension) 略。
- F8@3GPP <math>B=E_K(\mathrm{nonce})</math>, <math>C_i=A_i\oplus M_i</math>, <math>A_i=E_K(A_{i-1}+i+B)</math>.
認証用の利用モード
認証用の利用モードとして次のものなどが知られている。
- CCM (Counter with CBC-MAC)
- GCM (Galois/Counter Mode)
- OCB (Offset CodeBook)
- XCBC (eXtended Ciphertext Block Chaining)
- XCBC-MAC
規格
- FIPS PUB-81 DES MODES OF OPERATION, 1980 December 2.
- ANSI X3.106 Digital encryption Algorithm - Modes of Operation
- ISO 8372:1987 Information processing -- Modes of operation for a 64-bit block cipher algorithm
- ISO/IEC 10116 Information technology -- Security techniques -- Modes of operation for an n-bit block cipher
- JIS X 5052:1990 64ビットのブロック暗号アルゴリズムの利用モード (Modes of operation for a 64-bit block cipher algorithm)
- JIS X 5053:1998 セキュリティ技術 ― nビットブロック暗号の利用モード (Information technology -- Security techniques -- Modes of operation for an n-bit block cipher)
- RFC 3610 -- Counter with CBC-MAC (CCM)