RC4

RC4（あるいはARCFOUR）とは、SSLやWEPなどで広く使われているストリーム暗号である。

 概要 
RC4はロナルド・リベストにより1987年に開発されたストリーム暗号であり、このアルゴリズムを用いて発生させた疑似乱数列と平文の排他的論理和をとったものが暗号文になる。RC4は利用方法によってはWEPのように安全性が保てないことがある。RC4はWEP、WPA、 (MPPE)、Winny、TLS/SSL（オプション）、SSH（オプション）で暗号化を行うために用いられている。

2015年の時点において、NSAのような機関であればTLS/SSLを利用していてもRC4を解読できる疑いがあり、マイクロソフトではRC4を使わないようにすることを推奨している。2015年2月には TLSのすべてのバージョンにおいてRC4の利用を禁止する提議  が公開された。

 歴史 
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はしばしば、商標問題を回避するために "ARCFOUR"（Alleged-RC4, なぜならば、RSA社は公式にはアルゴリズムを公開していないので）という名前が使用されることがある。

そして "ARCFOUR" は、無線通信のためのWEPやWPA、あるいはTLSやWinnyなどの広く使用されている暗号化プロトコルとその標準の一部となった。

 安全性 
TLS/SSLにおいてRC4を用いたCipher Suiteについては、その脆弱性に対処されており安全であると考えられていた。2011年には、ブロック暗号のCBCモードの取り扱いに関する脆弱性であったBEAST攻撃への対応策の一つとして、その影響を受けないストリーム暗号であるRC4に切り替えることが推奨されていたsecurity – Safest ciphers to use with the BEAST? (TLS 1.0 exploit) I've read that RC4 is immune – Server Fault。しかし、2013年にTLS/SSLでのRC4への効果的な攻撃法が報告され、BEASTへの対策としてRC4を用いることは好ましくないとされた。RC4に対する攻撃法は、AlFardan、Bernstein、Paterson、Poettering、Schuldtによって報告された。新たに発見されたRC4の鍵テーブルにおける統計的な偏りを利用することで、平文の一部が回復可能であるというものである。この攻撃法により、13 × 220通の暗号文を用いれば128ビットのRC4が解読可能であることが示され、2013年のUSENIXセキュリティシンポジウムにおいて「実現可能である」と評された。

 関連項目 
 ストリーム暗号
 暗号理論

 脚注 

 外部リンク 
 IETF draft - A Stream Cipher Encryption Algorithm "Arcfour"
  - Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
  - Test Vectors for the Stream Cipher RC4
  - Prohibiting RC4 Cipher Suites
 SCAN's entry for RC4



 五十部孝典：「RC4の脆弱性とSSL/TLSへの攻撃」、2014年2月13日、NICT情報セキュリティシンポジウム（発表スライド）