公開鍵暗号方式とは?|公開鍵暗号方式の仕組みや共通鍵暗号方式との違いについて3分わかりやすく解説

用語解説

こんちには。キノコードです。
このレッスンでは、 公開鍵暗号方式について説明をします。

▼YouTube動画はこちらからどうぞ。

この記事の執筆・監修

キノコード
キノコード    

テクノロジーアンドデザインカンパニー株式会社のCEO。
日本最大級のプログラミング教育のYouTubeチャンネル「キノコード」や、プログラミング学習サービス「キノクエスト」を運営。
著書「あなたの仕事が一瞬で片付くPythonによる自動化仕事術」や、雑誌「日経ソフトウエア」や「シェルスクリプトマガジン」への寄稿など実績多数。

公開鍵暗号方式とは?

公開鍵暗号方式とは、暗号化と復号に違う鍵を使用する暗号方式です。
暗号化とは第三者が読み取れないように、データを変換することをいいます。
復号とは暗号化されたデータを、元に戻すことをいいます。
暗号化に使用する鍵のことを「公開鍵」、復号に使用する鍵のことを「秘密鍵」といいます。

公開鍵暗号方式の仕組み

「公開鍵」と「秘密鍵」の使い方を具体例で見ていきましょう。
例えば、データを欲しいAさん、データを送るBさんの2人でデータをやり取りをする場合で考えてみます。


「秘密鍵」と「公開鍵」は、データを欲しいAさんが作成します。


Aさんは、自分だけが秘密で持っている「秘密鍵」を手元に置いておきます。
「公開鍵」は、暗号化してもらうためにBさんに公開したので「公開鍵」という名前です。


Aさんは、Bさんに「公開鍵」で暗号化してもらい、データを送ってもらいます。


Bさんに送ってもらったデータを、Aさんは「秘密鍵」を使ってデータを復号します。


公開鍵と秘密鍵は対になっているので、「公開鍵」で暗号化されたデータは「秘密鍵」でしか、復号することができません。


データは、秘密鍵でしか元に戻すことができないので、複数の人とデータをやり取りする場合も、同じ「公開鍵」を使用することができます。
そのため、公開鍵暗号方式はデータのやり取りをする相手が多い場合に向いています。

共通鍵暗号方式との違い

公開鍵暗号方式とは別の暗号方式で「共通鍵暗号方式」があります。
共通鍵暗号方式は、暗号化と復号に同じ鍵を使用する暗号方式です。
公開鍵暗号方式は、暗号化と復号に違う鍵を使用するので、共通鍵暗号方式より安全性が高くなります。
公開鍵暗号方式は暗号化、復号に使用するアルゴリズムが複雑なため、処理に時間がかかります。

アルゴリズムの方式

公開鍵暗号方式のアルゴリズムをみていきましょう。
暗号方式としてはRSA、DSAが有名です。
RSAは1977年に世界で初めて発表された公開鍵暗号方式のやり方です。
ロナルド・リベスト、アディ・シャミア、レオナルド・エーデルマンが考案し、3人の頭文字を取ってRSAと名付けられました。
RSAは、大きな整数の素因数分解が困難である性質を使ったアルゴリズムです。
DSAは公開鍵暗号方式を応用して開発されました。
DSAは、離散対数問題を利用したアルゴリズムです。
デジタル署名アルゴリズムとして採用されています。

暗号化や共通鍵暗号方式については別で解説します。

KinoCode チャンネル

YouTubeで毎日動画配信しています。
動画は3分間なので、
 ・通勤時間
 ・お昼休み
 ・お手すきのとき
 ・寝る前
など手軽に視聴できます。
 
ちょっとしたインプットにどうぞ!
 
▼チャンネル登録はこちらからどうぞ。
未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト