一般 | |
---|---|
設計者 | ロナルド・リベスト |
初版発行日 | 1994年に漏洩(1987年に設計) |
暗号詳細 | |
鍵長 | 40–2048 bits |
状態長 | 2064 bits (1684 effective) |
ラウンド数 | 256 |
速度 | 7 cycles per byte on Pentium[1] |
RC4はロナルド・リベストにより1987年に開発されたストリーム暗号であり、このアルゴリズムを用いて発生させた疑似乱数列と平文の排他的論理和をとったものが暗号文になる。RC4は利用方法によってはWEPのように安全性が保てないことがある。RC4はWEP、WPA、Microsoft Point-to-Point Encryption (MPPE)、Winny、TLS/SSL(オプション)、SSH(オプション)で暗号化を行うために用いられている。
2015年の時点において、NSAのような機関であればTLS/SSLを利用していてもRC4を解読できる疑いがあり[2]、マイクロソフトではRC4を使わないようにすることを推奨している[3][4][5]。2015年2月には TLSのすべてのバージョンにおいてRC4の利用を禁止する提議 RFC 7465 が公開された。
RC4は、1987年にRSAセキュリティ社でロナルド・リベストによって開発された。公式には "Rivest Cipher 4" と呼ばれるが、"Ron's Code" の略語とされることもある。参照:RC2、RC5、RC6。
RC4は当初は企業秘密 (trade secret) であった。ところが1994年9月に何者かが匿名でCypherpunksのメーリングリストにRC4の解説を流してしまった。この解説は直ぐにニューズグループ sci.crypt にポストされて、インターネットに広がった。アルゴリズムが公知になったので、RC4は企業秘密ではなくなったが、"RC4" の名称は商標である。従って、RC4と称さずに非公式に実装するのは合法であるようだが[独自研究?]、商標であるRC4の名称を使うことはできない。それで、RC4はしばしば、商標問題を回避するために "ARCFOUR"(Alleged-RC4, なぜならば、RSA社は公式にはアルゴリズムを公開していないので)という名前が使用されることがある。
そして "ARCFOUR" は、無線通信のためのWEPやWPA、あるいはTLSやWinnyなどの広く使用されている暗号化プロトコルとその標準の一部となった。
TLS/SSLにおいてRC4を用いたCipher Suiteについては、その脆弱性に対処されており安全であると考えられていた。2011年には、ブロック暗号のCBCモードの取り扱いに関する脆弱性であったBEAST攻撃への対応策の一つとして、その影響を受けないストリーム暗号であるRC4に切り替えることが推奨されていた[6]。しかし、2013年にTLS/SSLでのRC4への効果的な攻撃法が報告され、BEASTへの対策としてRC4を用いることは好ましくないとされた[7]。RC4に対する攻撃法は、AlFardan、Bernstein、Paterson、Poettering、Schuldtによって報告された。新たに発見されたRC4の鍵テーブルにおける統計的な偏り[8]を利用することで、平文の一部が回復可能であるというものである[9][10]。この攻撃法により、13 × 220通の暗号文を用いれば128ビットのRC4が解読可能であることが示され、2013年のUSENIXセキュリティシンポジウムにおいて「実現可能である」と評された[11][12]。
Plaintext recovery attacks against RC4 in TLS are feasible although not truly practical