RC5

RC5 はその単純さが特徴のブロック暗号の一種。1994年、ロナルド・リベストが設計した。"RC" は "Rivest Cipher" または "Ron's Code" の略（RC2、RC4参照）。AESの候補となったRC6はRC5をベースとしている。
概要.
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 個の選択平文を使った差分攻撃で破られることが示された。18 から 20 ラウンドでは解読できないと言われている。
このアルゴリズムの特許を保有するRSAセキュリティは RC5 で作成した暗号文を解読できた者に 1万ドルを提供する暗号解読コンテストをいくつか発表している。この暗号解読コンテストのうち56ビットと64ビットの鍵の暗号については、distributed.netが組織した分散コンピューティングによって解読された。なお、その後の状況の変化により、2007年9月、RSAセキュリティは暗号解読コンテストの中止を発表した（distributed.netでは 引き続き72ビットの鍵の暗号解読を継続している）。