こんちには。キノコードです。
このレッスンでは、 公開鍵暗号方式について説明をします。
公開鍵暗号方式とは、暗号化と復号に違う鍵を使用する暗号方式です。
暗号化とは第三者が読み取れないように、データを変換することをいいます。
復号とは暗号化されたデータを、元に戻すことをいいます。
暗号化に使用する鍵のことを「公開鍵」、復号に使用する鍵のことを「秘密鍵」といいます。
公開鍵暗号方式の仕組み
「公開鍵」と「秘密鍵」の使い方を具体例で見ていきましょう。
例えば、データを欲しいAさん、データを送るBさんの2人でデータをやり取りをする場合で考えてみます。
「秘密鍵」と「公開鍵」は、データを欲しいAさんが作成します。
Aさんは、自分だけが秘密で持っている「秘密鍵」を手元に置いておきます。
「公開鍵」は、暗号化してもらうためにBさんに公開したので「公開鍵」という名前です。
Aさんは、Bさんに「公開鍵」で暗号化してもらい、データを送ってもらいます。
Bさんに送ってもらったデータを、Aさんは「秘密鍵」を使ってデータを復号します。
公開鍵と秘密鍵は対になっているので、「公開鍵」で暗号化されたデータは「秘密鍵」でしか、復号することができません。
データは、秘密鍵でしか元に戻すことができないので、複数の人とデータをやり取りする場合も、同じ「公開鍵」を使用することができます。
そのため、公開鍵暗号方式はデータのやり取りをする相手が多い場合に向いています。
共通鍵暗号方式との違い
公開鍵暗号方式とは別の暗号方式で「共通鍵暗号方式」があります。
共通鍵暗号方式は、暗号化と復号に同じ鍵を使用する暗号方式です。
公開鍵暗号方式は、暗号化と復号に違う鍵を使用するので、共通鍵暗号方式より安全性が高くなります。
公開鍵暗号方式は暗号化、復号に使用するアルゴリズムが複雑なため、処理に時間がかかります。
アルゴリズムの方式
公開鍵暗号方式のアルゴリズムをみていきましょう。
暗号方式としてはRSA、DSAが有名です。
RSAは1977年に世界で初めて発表された公開鍵暗号方式のやり方です。
ロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマンが考案し、3人の頭文字を取ってRSAと名付けられました。
RSAは、大きな整数の素因数分解が困難である性質を使ったアルゴリズムです。
DSAは公開鍵暗号方式を応用して開発されました。
DSAは、離散対数問題を利用したアルゴリズムです。
デジタル署名アルゴリズムとして採用されています。