RC4(Rivest Cipher 4)は、
1987年に
ロナルド・リベストによって開発された
ストリーム[[暗号]]です。SSLやWEPなど、様々なプロトコルで広く利用されてきましたが、その安全性にはいくつかの問題が指摘されています。
RC4の概要
RC4は、疑似乱数列を生成し、その乱数列と平文との排他的論理和(XOR)演算によって
暗号化を行います。
ストリーム[[暗号]]は、平文をビット単位またはバイト単位で
暗号化するため、高速な処理が可能です。しかし、RC4は利用方法によっては、WEPのように安全性が保てない場合があります。
RC4は、WEP、WPA、Microsoft Point-to-Point Encryption (MPPE)、Winny、TLS/SSL(オプション)、SSH(オプション)などで用いられてきました。しかし、2015年には、NSAのような機関であればTLS/SSLを利用していてもRC4を解読できる疑いがあることが指摘され、
マイクロソフトはRC4の使用を非推奨としました。そして、2015年2月には、TLSのすべてのバージョンにおいてRC4の利用を禁止する提議RFC 7465が公開されました。
RC4の歴史
RC4は、
RSAセキュリティ社の
ロナルド・リベストによって開発されました。当初は企業秘密として扱われていましたが、
1994年9月に
匿名で
インターネット上に
アルゴリズムが公開されました。これにより、RC4は企業秘密ではなくなりましたが、名称は
商標として保護されています。そのため、RC4を非公式に実装する場合は「ARCFOUR」という名称が使われることがあります。
「ARCFOUR」は、WEP、WPA、TLS、Winnyなどの
暗号化プロトコルの一部として広く利用されました。しかし、後にその安全性に疑問が生じ、現在では利用が推奨されていません。
RC4の安全性
当初、TLS/SSLにおいてRC4を用いた
暗号化スイートは安全であると考えられていました。2011年には、
ブロック[[暗号]]のCBCモードの脆弱性(BEAST攻撃)への対策として、RC4が推奨されたこともありました。しかし、2013年には、TLS/SSLでのRC4に対する効果的な攻撃法が報告され、RC4の利用は推奨されなくなりました。
この攻撃法は、RC4の鍵テーブルにおける統計的な偏りを利用するもので、13 × 2^20個の
暗号文を用いることで、128ビットのRC4が解読可能であることが示されました。これにより、RC4の安全性が著しく低いことが明らかになりました。
RC4の代替技術
RC4の脆弱性が明らかになったことで、より安全な
暗号化方式への移行が進められています。現在では、AES(Advanced Encryption Standard)などの
ブロック[[暗号]]や、ChaCha20などの
ストリーム[[暗号]]が推奨されています。これらの
暗号化方式は、RC4よりも高い安全性を持ち、現代のセキュリティ要件を満たしています。
まとめ
RC4は、かつて広く利用された
ストリーム[[暗号]]ですが、その安全性には重大な脆弱性が存在します。そのため、現在では利用が推奨されていません。より安全な
暗号化方式への移行が重要です。
関連項目
脚注
- - RFC 7465: Prohibiting RC4 Cipher Suites
外部リンク
- - IETF draft - A Stream Cipher Encryption Algorithm "Arcfour"
- - RFC 4345 - Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
- - RFC 6229 - Test Vectors for the Stream Cipher RC4
- - SCAN's entry for RC4
- - Attacks on RC4
- - RC4 - Cryptology Pointers by Helger Lipmaa
- - RSA Security Response to Weaknesses in Key Scheduling Algorithm of RC4
- - 五十部孝典:「RC4の脆弱性とSSL/TLSへの攻撃」、2014年2月13日、NICT情報セキュリティシンポジウム(発表スライド)