RC5
RC5 はその単純さが特徴のブロック暗号の一種。1994年、ロナルド・リベストが設計した。RC は "Rivest Cipher" または "Ron's Code" の略(RC2、RC4参照)。AESの候補となったRC6はRC5をベースとしている。
One round (two half-rounds) of the RC5 block cipher | |
一般 | |
---|---|
設計者 | ロナルド・リベスト |
初版発行日 | 1994 |
後継 | RC6, Akelarre |
暗号詳細 | |
鍵長 | 0 to 2040 bits (128 suggested) |
ブロック長 | 32, 64 or 128 bits (64 suggested) |
構造 | Feistel構造風ネットワーク |
ラウンド数 | 1-255 (12 suggested originally) |
最良の暗号解読法 | |
244 個の選択平文攻撃を使った差分解読法(12ラウンド、ブロック長 64 bits)[1] |
概要
編集RC5は、ラウンド関数で使用する演算に関する研究と評価を促進することを目的として設計された、非常にシンプルな構造をしたブロック暗号である。
RC5 は、データ依存の回転(data-dependent rotation)という目新しい演算を採用したことと、アルゴリズムの単純さによって暗号解読者らにとって魅力的な研究対象となった。データによってローテーション数が変化することは最大差分(線形)確率の上界の評価が複雑になることを意味する。
構造
編集他のブロック暗号と異なり、RC5 のブロック長は 32、64、128ビットの3つ、キー長は任意(0 から 2040ビット)、ラウンド回数も任意(0 から 255)である。本来のパラメータ推奨値は、ブロック長 64ビット、キー長 128ビット、12 ラウンドである。
アルゴリズムの基本構造は Feistel 風のネットワークである。最初に拡大鍵でWhiteningした後、ラウンド関数を指定回数繰り返す。暗号化ルーチンと復号ルーチンのコードはほんの数行であるが、鍵のスケジュールはもっと複雑である。
ラウンド関数は、XOR(排他的論理和)、RC5の特徴となっているデータ依存の回転(rotation)、そして、拡大鍵との剰余加算の3つの組み合わせで構成される。
安全性
編集12ラウンドの RC5(ブロック長 64ビット)は 244 個の選択平文を使った差分攻撃で破られることが示された[1]。18 から 20 ラウンドでは解読できないと言われている。
このアルゴリズムの特許を保有するRSAセキュリティは RC5 で作成した暗号文を解読できた者に 1万ドルを提供する暗号解読コンテストをいくつか発表している。この暗号解読コンテストのうち56ビットと64ビットの鍵の暗号については、distributed.netが組織した分散コンピューティングによって解読された。なお、その後の状況の変化により、2007年9月、RSAセキュリティは暗号解読コンテストの中止を発表した(distributed.netでは 引き続き72ビットの鍵の暗号解読を継続している)。
脚注
編集参考文献
編集- Biryukov A. and Kushilevitz E. (1998). Improved Cryptanalysis of RC5. EUROCRYPT 1998.
- Rivest, R. L. (1998). Block Encryption Algorithm with Data Dependent Rotation. Patent No. 5,724,428 issued 3rd March 1998.
- Rivest, R. L. (1994). The RC5 Encryption Algorithm. In the Proceedings of the Second International Workshop on Fast Software Encryption (FSE) 1994, p86–96 (PDF).
- Rivest, R. L, "Block Encryption Algorithm With Data Dependent Rotation", US patent #5,724,428, issued on 3 March 1998.