公開鍵暗号方式とは、暗号化と復号に別々の鍵を用いる暗号方式である。「非対称鍵暗号方式」とも呼ばれる。
公開鍵暗号方式とは、暗号化と復号に別々の鍵を用いる暗号方式である。「非対称鍵暗号方式」とも呼ばれる。
※ 厳密には公開鍵暗号方式は、署名(DSAなど)、守秘(RSAなど)、鍵共有(DHなど)の3種類の総称である。ここでは主に「守秘」について扱っている。
公開鍵暗号方式では、「暗号文を作り出す鍵」と「暗号文を元に戻す鍵」が異なる。暗号通信を行いたい人は、まず独自に2つの鍵のペアを作成する。同時に生成された一対の鍵のうち一方を公開鍵として公開し、他方を秘密鍵として厳重に管理する。送信者は受信者の公開鍵で暗号文を作成して送る。受信者は、自分の秘密鍵で受け取った暗号文を復号する。
暗号化と復号を同じ鍵で行う「共通鍵暗号方式」に比べ、公開鍵の共有が容易なことや、相手の数に関係なく公開鍵は1つでよいなど、鍵の管理が容易で、安全性が高い。
欠点としては、鍵のビット長や平文(元のデータ)長を長く取る必要があるため、暗号化/復号が複雑化し、処理時間を要することや、「man-in-the-middle」攻撃に弱く、公開鍵の認証が必要になることがある。
公開鍵暗号方式では「RSA」「楕円曲線暗号」などが有名である。
RSAでは公開鍵暗号の時と鍵の利用方法を逆にした場合、秘密鍵で署名した値が、対応する公開鍵でのみ正しく検証できるようになる。この仕組みを利用することで、デジタル署名を実現でき、送信者が通信の事実を後で否認したり、他人が偽造したりすることを不可能にするデータ転送が可能になる。
RSA以外のアルゴリズムでは完全な逆の関係にならないこともある。
RSAとは、桁数の大きな数の素因数分解が困難であることを安全性の根拠とする公開鍵暗号である。
素因数分解の困難性の例を以下に示す。
1.素数を2つ用意する
p = 101、q = 211
2.2つの素数の掛け算(容易)
p x q = 21,311
3.素数の掛け算から元の素数を求める(困難)
21,311 = □ x △
pとqの桁数が小さいと暗号解読が容易になってしまい、大きくなるほど素因数分解が困難になり、暗号解読が困難になる。
楕円曲線暗号とは、楕円曲線上の離散対数問題の困難性を安全性の根拠とする公開鍵暗号である。RSAに比べて短い鍵長で同程度の暗号強度を実現できるといった特徴がある。
【2004/1/1】初版公開。
【2018/4/23】最新情報に合わせて内容を書き直しました(セキュリティ・キャンプ実施協議会 著)。
【2018/6/7 訂正とおわび】読者に指摘いただき、一部内容を訂正させていただきました。内容に正確ではない部分があり、申し訳ありませんでした。
Copyright © ITmedia, Inc. All Rights Reserved.