この頃、SSLの暗号化などにストリーム暗号RC4を使わないほうがいいといった話がよく聞かれるようになった。 2013年版のCRYPTREC暗号リストでも128bitのRC4が「運用監視暗号リスト」に入っているし、先日には、Microsoftからストリーム暗号RC4を使わないようにというセキュリティアドバイザリが出ている。 CVEとしては今年の3月に出ているようだ。 NVD: Vulnerability Summary for CVE-2013-2566 JVNDB-2013-001910 そこで、ここでは実際にPythonでRC4を実装し、RC4の脆弱性に関する簡単な例を再現してみる。 ストリーム暗号とは何か 暗号には大きく分けて公開鍵暗号と共通鍵暗号がある。 公開鍵暗号は、他人に見られても大丈夫な鍵(公開鍵)と自分だけが知っている鍵(秘密鍵)のペアを使って暗号化するもので、代表的なものに