RSA 【Rivest-Shamir-Adleman cryptosystem】
概念としては知られていた公開鍵暗号の具体的な実装方式として世界で初めて発表されたもので、1977年にロナルド・リベスト(Ronald L. Rivest)氏、アディ・シャミア(Adi Shamir)氏、レオナルド・エーデルマン(Leonard M. Adleman)氏が考案した。「RSA」の名称は3人の頭文字を繋いだものである。
公開鍵暗号は対になる二つの鍵を用いて一方で暗号化を、もう片方で復号を行う暗号方式で、一方は誰でも取得できるよう公開する「公開鍵」、もう片方は本人の管理下で秘匿する「秘密鍵」であるため、このように呼ばれる。
暗号化に使った鍵で復号することはできず、一方の鍵からもう一方の鍵を(通常は入手可能な公開鍵から秘匿された秘密鍵を)割り出すのが極めて困難であることが安全性の根拠となる。RSAでは、この困難さを巨大な整数の素因数分解の難しさに依存している。
素数と暗号鍵
RSAでは、二つの巨大な素数について、これを掛け合わせて積を求めるのは簡単だが、積から元になった巨大な素因数を効率的に探索することはできないという非対称性を利用する。素数の積を元に公開鍵を、二つの素数を元に秘密鍵を生成することにより、公開鍵を入手しても対になる秘密鍵を割り出すのは困難となる。
暗号鍵が1024ビットのRSA1024方式では、素数の積は10進数で300桁程度、各々の素数は150桁前後となる。鍵生成のためにこのような大きな桁数の素数を発見するのは時間がかかるため、実用上は簡易な判定手法を用いて素数である確率が高い数(確率的素数)を見つけ出し、これを利用する場合が多い。
RSAの応用
公開鍵暗号全般に共通するが、公開鍵で暗号化、秘密鍵で復号することにより、事前に暗号鍵を共有・交換することなく通信を暗号化することができる。受信者の公開鍵(送信者以外に知られても構わない)で暗号化されたデータを復号できるのは受信者しか知らない秘密鍵のみだからである。
また、秘密鍵と元になる文書から一定の計算手順で規則性のないデータ(これを署名という)を生成して文書に添付し、他者が本人の公開鍵で検証することにより、本人確認や真正性の証明を行うことができる。これを「RSA署名」と呼び、デジタル署名の一方式である。
RSAは初めて実用化された公開鍵暗号方式として、通信ネットワーク上の暗号化やデジタル署名に幅広く普及し、Web通信の暗号化などに用いるSSLや後継のTLSなど、多くの標準規格の一部としても採用されている。
鍵長が1024ビットの方式を「RSA1024」、2048ビットの方式を「RSA2048」、4096ビットの方式を「RSA4096」という。コンピュータの進歩によりRSA1024はすでに十分安全とは言い切れなくなっており、RSA2048も2030年代までには安全性が保証できなくなると予測されているため、現在はRSA4096への移行が進みつつある。
歴史
1973年にRSAにほぼ相当する暗号方式を英諜報機関GCHQ(政府通信本部)の数学者、クリフォード・コックス(Clifford Cocks)氏が考案していたが、軍事機密として秘匿され、1997年になるまでその事実は公表されなかった。
現在知られているRSA方式は1977年に前記のリベスト、シャミア、エーデルマンの3氏が考案し、1983年に特許登録された。同氏らを中心にRSA Data Security社が設立され、RSAや他の暗号方式のライセンス事業やセキュリティソフトウェア事業を展開した。
同特許は2000年に期限切れを迎え、同社も企業向けストレージシステム大手EMC社に買収された。その後、EMC社は米デルテクノロジーズ(Dell Technologies)社に買収され、同社はRSA社を米投資会社へ売却、再び独立系企業としてセキュリティ関連事業を展開している。