端末を使用して外部とデータをやり取りする機会は非常に多いです。
例えば、ECサイトを利用して買い物をするとき、商品を購入するためにクレジットカード番号を入力します。
入力したクレジットカード番号は、そのショッピングサイトのサーバーに登録されることで、次回から入力を省略することができるのです。
このように、情報を送信したり、取得したりする機会は多いですが、データのやり取りは公開鍵暗号方式で行われているケースも珍しくありません。
暗号化しない状態でデータをやり取りすると第三者に知られてしまう恐れがあります。
そのため、公開鍵暗号方式などを利用してデータを暗号化し、セキュリティを高めるのです。
今回は、公開鍵暗号方式の基礎について解説し、仕組みについてもご紹介します。
また、採用することでどのようなメリットを獲得できるのかについてもご紹介するので、興味のある方はぜひ参考にしてください。
目次
基礎から学ぶ!公開鍵暗号方式とは?
公開鍵暗号方式とは、公開鍵と秘密鍵を使用してデータの暗号化・復号を行う暗号化方式のことです。
公開鍵は、Public Key、秘密鍵はSecret Keyと呼ばれます。
公開鍵暗号方式を採用している代表的なアルゴリズムはRSAです。
RSAは下記の3人によって開発されました。
- Ronald Rivest
- Adi Shamir
- Leonard Adleman
そして、それぞれの名前の頭文字を取ってRSAと名付けられました。
データをやり取りする際に使用される暗号方式ですが、なぜ暗号化が必要なのでしょうか。
その理由は、データを盗み見ることを防ぐためです。
日頃から私達はインターネットを通じてさまざまな情報を送信しています。
例えば、下記のような情報です。
- ログインIDやパスワード
- 住所
- 電話番号
- クレジットカード番号
もちろん、そのほかにも数多くの情報を送信していますが、これらのデータを外部の人に見られたら大変なことになります。
例えば、ログインIDやパスワードを知られると自分のアカウントに第三者がログインできてしまうため、不正操作されるリスクがあるでしょう。
また、クレジットカード番号を盗み見されると勝手に使われて見覚えのない金額を請求される恐れもあるのです。
このような事態を防ぐために、公開鍵暗号方式などが用いられています。
暗号化することで、盗み見を防止することができ、データを安心してやり取りできるようになるためとても大切なことです。
公開鍵暗号方式の仕組みとは?
公開鍵暗号方式を使用する場合、下記の手順でデータの暗号及び復号化が行われます。
1.秘密鍵を使用して公開鍵を作成する
2.送信者は公開鍵を使用してデータを暗号化する
3.受信者は、暗号化したデータを受け取り、秘密鍵で復号化する
4.受信者は中身を確認できる
秘密鍵は1つだけ作成でき、複製することはできません。
一方、公開鍵は複数作成することが可能です。
公開鍵で暗号化したデータは秘密鍵を使用しないと復号化できません。
もちろん、公開鍵もロック解除できないのです。
内容が理解しづらい方は、宝箱を思い浮かべてください。
宝箱は空いた状態です。
そこに大切なものを入れて公開鍵でロックします。
そして、秘密鍵を持っている人だけがその宝箱を開けることができるのです。
公開鍵暗号方式では、このような方法でデータがやり取りされます。
共通鍵暗号方式との違いとは?
よく比較される方式のひとつに共通鍵暗号方式があります。
共通鍵暗号方式は、共通のキーを使用してデータの暗号及び復号を行う方法です。
送信者と受信者の間で同じ共通キーを作成します。
そして、送信者はそのキーを使用してデータを暗号化し、受信者は同じキーで解読するのです。
具体的な違いについては、下記の表にまとめさせていてだきました。
| 公開鍵暗号方式 | 共通鍵暗号方式 |
キーの数 | 2つ | 1つ |
安全性 | 高 | 中 |
鍵発行元 | 受信者 | 送信者 |
処理速度 | 低 | 高 |
両者の暗号方式を採用し、良いところだけを組み合わせたのがハイブリッド方式です。
ハイブリッド方式の代表的な例として、SSL認証を挙げることができます。
公開鍵暗号方式を採用している暗号化の種類
RSAのほかにも公開鍵暗号方式を採用している暗号化の種類は2つあります。
それぞれの種類について詳しく解説しますので、ぜひ参考にしてください。
DH法
DH法は、Web上で安全に鍵交換を行う方法のことです。
1976年にDiffieとHellmanによって開発されました。
具体的には、鍵から生成した乱数を送信します。
しかし、コンピューター技術が進歩し、DH法は解読されるようになってしまいました。
そのため、現在ではDH法ではなくECDHが使用されています。
DSA法
Digital Signature Algorithmの略称で、正の整数同士の演算を利用した電子署名専用の暗号化方式です。
1991年、アメリカの国防総省によって開発されました。
現在でもDSA法で暗号化されたデータの解読は不可能であるといわれています。
公開鍵暗号方式のメリット
公開鍵暗号方式のメリットは大まかにわけて3つあります。
セキュアな環境を構築できる
1つ目のメリットは、セキュアな環境を構築できることです。
ITの技術進歩により、さまざまなモノやサービスがITに置き換わっています。
例えば、Web会議や経理のシステム化などです。
また、あらゆるサービスはインターネットを通じてデータをやり取りしています。
オフライン環境のシステムは、現代において非常に少なくなりつつあるのです。
これだけITが普及すると利便性を得られる代わりに、セキュリティのリスクに晒されます。
データの盗み見されることもセキュリティリスクのひとつです。
公開鍵暗号方式を使えば、それらのリスクを大幅に回避することができるので、メリットのひとつに数えることができるでしょう。
特にセキュリティが高い暗号方式なため、解読することは非常に難しくなります。
また、2つのペアの鍵が揃わないとデータを知ることはできないので、ほかに類を見ない安全性です。
管理がしやすい
2つ目のメリットは、管理が非常にしやすいことです。
秘密鍵は1つだけになっています。
ほかの人と共有することはなく、サーバー上など受信する側に置かれるものなので、鍵を移動させる必要がありません。
また、共通鍵のように、ペアごとに準備しなくてもいいです。
手間を大幅に省くことができるので、管理がしやすく安全性も非常に高いため、大きなメリットになります。
内部不正を減らせる
3つ目のメリットは、内部不正が減ることです。
秘密鍵は特定の管理者だけが保有しているため、周囲はそれを使うことができません。
そのため、暗号化されたデータを外部に持ち出されたとしても解読することができないため、内部不正を防ぐことができます。
また、暗号化ソフトの中には、ファイルを追跡する機能が搭載されているものも珍しくありません。
つまり、犯人を特定することも可能なので、抑止力につなげることもできるでしょう。
デメリットもチェックしよう!
逆に、いくつかのデメリットも存在します。
どのようなデメリットがあるのか詳しくチェックしましょう。
大きな負荷がかかる
1つ目のデメリットは、大きな負荷がかかる点です。
セキュリティが非常に高く、安全性が保証されていますが、暗号化に大きな負荷がかかります。
暗号スキームと暗号プリミティブが含まれる関数を実行し、安全性を非常に重視しているため、負荷が大きいのです。
そのため、元々のデータ容量が大きいものには不向きとなっています。
また、セキュリティを非常に重視しているため、速度が遅いです。
データをすばやくやり取りするようなケースには不向きといえるでしょう。
秘密鍵の厳重な管理が必要
2つ目のメリットは、秘密鍵がなくなると大変なことになるという点です。
例えば、秘密鍵をなくしてしまうと送信されるデータを解読することができなくなります。
そのため、復号化することができません。
また、第三者に秘密鍵を渡してしまうと安全な環境が崩れてしまいます。
そのため、厳重に管理する必要があるのです。
まとめ
今回は、公開鍵暗号方式について詳しく解説しました。
セキュリティが非常に高いというメリットがありますが、速度遅いというデメリットも存在します。
そのため、SSL認証では共通鍵暗号方式と組み合わせたハイブリッド方式を使用しているのです。
現代社会においては、ITが非常に身近にあり、セキュリティについて考えることも多くなっています。
生活に絶対に必要な知識ではありませんが、ビジネスなどで役立つ機会も多いので、この際に覚えておくのがおすすめです。