流れ7の2語目 / 10

暗号化(共通鍵・公開鍵)

セキュリティ
「ハッシュって、暗号化のことですか?」と聞いた新人に
「ハッシュと暗号化は別物。暗号化は鍵があれば元に戻せるんだ」
「暗号化(共通鍵・公開鍵)」って、何のことだろう…?

暗号化は、鍵がないと読めない形にデータを変えることです。

正しい鍵を持つ人だけが、元に戻して(復号して)読めます。

このページで分かること読む 約3分・問題 3問
  • 暗号化は、データを鍵がないと読めない形にすること
  • 共通鍵暗号は、かけるのも外すのも同じ鍵
  • 公開鍵暗号は、公開鍵と秘密鍵のペアを使う
  • HTTPSやSSHの通信は、2つを組み合わせている

身近な例えで理解する

番号錠は、閉めるのも開けるのも同じ番号です。家族と自転車を共有するなら、番号を伝えなければなりません。

  • 錠をかける暗号化
  • 番号共通鍵(かけるのも外すのも同じ鍵)
  • 番号を家族に伝える相手に鍵を渡す
  • 伝えるのを他人に聞かれる鍵が漏れると、誰でも開けられてしまう

ちょっと確認

Q14択

ハッシュと暗号化の違いとして正しいものは?

例えを外して、実際のしくみ

ここからは実際のしくみ
ハッシュとの違い

ハッシュは計算で元に戻せません。暗号化は鍵があれば元に戻せます。パスワードの保存は「戻す必要がない」のでハッシュ、通信やファイルは「相手が読む必要がある」ので暗号化を使います

共通鍵暗号

処理が速く、大きなデータの暗号化に向いています。弱点は、相手と同じ鍵を持つために、鍵をどうやって安全に渡すかです(資料によっては「秘密鍵暗号」とも呼びますが、公開鍵暗号の「秘密鍵」とは別物です)

公開鍵暗号

公開鍵と秘密鍵のペアを使います。公開鍵は配ってよいので、鍵を渡す問題が起きにくくなります。ただし、共通鍵暗号より処理が遅くなります。秘密鍵が漏れると、なりすましや盗み見ができてしまうので、パスワードと同じくらい大事に守ります。また、このペアは暗号を戻すだけでなく、「秘密鍵を持っている本人だ」と示すのにも使えます。07 SSHのログインで使っているのは、こちらの使い方です(→07 SSH)

組み合わせて使う

HTTPS(→15 HTTP/HTTPS)やSSHでは、最初に公開鍵のしくみを使って、その通信だけで使う共通鍵を安全に決めます。そのあとのやりとりは、速い共通鍵で暗号化します

このページのまとめ

暗号化 / 復号
鍵で読めない形にする / 鍵で元に戻す
共通鍵暗号
かけるのも外すのも同じ鍵。速いですが、鍵の渡し方がむずかしいです
公開鍵暗号
公開鍵と秘密鍵のペア。公開鍵は配ってかまいません
秘密鍵
ペアのうち自分だけが持つ鍵。誰にも渡しません

先輩のひとことの意味

先輩「ハッシュと暗号化は別物。暗号化は鍵があれば元に戻せるんだ」

ハッシュは元に戻せない計算で、パスワードの保存に使います。暗号化は、正しい鍵を持つ人なら元に戻して読めるしくみで、通信やファイルを守るのに使います。「戻せるかどうか」と「鍵があるかどうか」が、2つの違いです。

練習問題で確かめる

Q24択

公開鍵暗号で、ほかの人に渡してはいけないものは?

Q3先輩のひとこと
先輩「共通鍵暗号だけだと、困ることがあるんだよね」

何が困る?

参考資料

ご意見・「これで例えて!」を募集しています

ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。

  • 説明してほしいITの言葉
  • 例えてほしい場面(部活・アルバイト・家事など)
  • 分かりにくかったところ・間違いのご指摘

意見箱は準備中です。

解説・例え・練習問題はすべてオリジナルです。参考にしているのは公式ドキュメントのみです。ご意見・ご感想・間違いのご指摘など、何でもお寄せください。確認してすぐに直します。

LinuCはLPI-Japanの登録商標です。当サイトはLPI-Japanおよび他の企業・団体とは関係ありません。

運営:core