シカラボ

共通鍵暗号方式と公開鍵暗号方式の違い|鍵は同じか、別々か【ITパスポート】

シカラボ編集部
共通鍵暗号方式と公開鍵暗号方式の違い|鍵は同じか、別々か【ITパスポート】

家の鍵は、かけるときも開けるときも同じ1本を使います。ところが暗号の世界には、かける鍵と開ける鍵が別々という方式があります。不思議に思えますが、これがインターネットの買い物を支えている技術のひとつです。ITパスポート試験では、この2つの方式の違いが繰り返し問われます。

共通鍵暗号方式とは

共通鍵暗号方式とは、暗号化と復号に同じ鍵を使う方式です。過去問の言い方を借りましょう。

復号には、暗号化で使用した鍵と同一の鍵を用いる。

(出典:ITパスポート試験 平成29年秋期 問66)

送る人と受け取る人が、同じ1本の鍵を共有している必要があります。ここから、あとで公開鍵暗号方式と比べるときに大事になる性質が2つ出てきます。

ひとつは速いこと。平成23年特別の問88は、共通鍵暗号方式について「公開鍵暗号方式よりも、暗号化処理と復号処理に掛かる計算量は少ない」としています。

もうひとつは、相手ごとに鍵が要ることです。平成27年春期の問73は、共通鍵暗号方式の説明として「通信相手ごとに異なる共通鍵が必要である」を正解にしています。シラバス上はテクノロジ系のセキュリティに含まれます。

公開鍵暗号方式とは

公開鍵暗号方式は、名前のとおり鍵の片方を公開してしまう方式です。

公開鍵暗号方式では、暗号化のための鍵と平文に戻すための鍵が異なる。

(出典:ITパスポート試験 平成21年春期 問77)

一人につき公開鍵と秘密鍵を1組持ちます。公開鍵は秘密にする必要がないので相手に渡し、秘密鍵だけを自分で抱えます。

秘密のデータを送るときの使い方は決まっています。相手の公開鍵で暗号化し、受け取った本人が自分の秘密鍵で復号する、という向きです。平成22年春期の問54は、XさんがYさんへ秘密のメールを送る場面で「Yさんの公開鍵」を正解にしました。平成28年春期の問87も、受信者が公開鍵を送信者に渡し、届いた暗号文を自分の秘密鍵で復号する流れをそのまま出しています。

送信者が受信者の公開鍵で暗号化し、受信者が自分の秘密鍵で復号する流れを示した図

ただし、向きが逆になる使い方もあります。デジタル署名では、署名する人が自分の秘密鍵を使い、受け取った人が相手の公開鍵で検証します。平成29年春期の問99も、Aさんの公開鍵が使われる場面を「Bさんが受け取った文書に付与されたディジタル署名の検証」としました。暗号化と署名では鍵の向きが反対になる、と覚えておきましょう。

つまり公開鍵暗号方式では、配る鍵を秘密にしなくてよいのです。共通鍵暗号方式も鍵は相手に届けますが、秘密のまま届けなければなりません。ここが大きな分かれ目です。

とはいえ、受け取った公開鍵が本当にその人のものかは別の問題として残ります。そこを保証するのがデジタル証明書と認証局(CA)で、どちらもITパスポートのシラバスに載っています。

鍵の本数で比べてみる

共通鍵暗号方式の弱点は、人数が増えたときにはっきり出ます。平成22年春期の問70と平成25年春期の問76が、同じ設定で数を問いました。

共通鍵暗号方式では通信の組合せごとに鍵が1個必要となる。例えばA〜Dの4人が相互に通信を行う場合は、AB、AC、AD、BC、BD、CDの組合せの6個の鍵が必要である。

(出典:ITパスポート試験 平成22年春期 問70)

この数え方でいくと、8人なら28個、10人なら45個です。平成25年春期の問76の正解が28、平成22年春期の問70の正解が45でした。人が少し増えただけで、鍵は一気に増えます。

共通鍵暗号方式は組合せの数だけ鍵が必要で4人6個・8人28個・10人45個に増えるのに対し、公開鍵暗号方式は1人につき公開鍵と秘密鍵の2個で、10人でも20個にしかならないことを示した図

いっぽう公開鍵暗号方式は、1人につき公開鍵と秘密鍵の2個です。10人でも20個にしかなりません。何人になっても1人あたりの本数は変わらない、と押さえておきましょう。

ただし、人数が少ないうちは逆になります。4人なら共通鍵6個に対して公開鍵は8個で、公開鍵のほうが多いからです。ここで言いたいのは総数の大小ではなく、人数が増えたときの増え方が違うということでした。

そのうえ、共通鍵暗号方式にはその1本をどうやって相手に届けるかという問題が残ります。平成28年秋期の問97では、共通鍵暗号方式の特徴として「鍵をより安全に配布することができる」が誤答に置かれました。公開鍵暗号方式と比べると、安全に配りにくいほうが共通鍵暗号方式だ、ということです。

2つの違いを整理する

共通鍵暗号方式公開鍵暗号方式
暗号化と復号の鍵同じ鍵異なる鍵
処理の速さ速い(計算量が少ない)遅い
鍵の本数(全員が相互に通信する場合)通信の組合せごとに1個1人につき2個
秘密にする鍵共通鍵秘密鍵だけ(公開鍵は配ってよい)

秘密にすべき鍵は、平成26年秋期の問77が問うています。答えは共通鍵暗号方式の共通鍵と、公開鍵暗号方式の秘密鍵の2つでした。公開鍵は、名前のとおり知られても問題ありません。

覚え方は「同じ鍵なら速いが配りにくい、別々の鍵なら配りやすいが遅い」です。得意なことが逆なので、組み合わせたハイブリッド暗号方式もあります。メッセージは速い共通鍵で、その共通鍵は相手の公開鍵で暗号化して渡します。令和5年の問86で問われたので、押さえておきましょう。

試験ではこう出る

よく出る形は3つあります。どの鍵を使うか、2つの方式の特徴の比較、鍵の本数です。向きは先ほど見たので、まずは特徴からどうぞ。

腕試し問題

出典:ITパスポート試験 平成28年秋期 問97

公開鍵暗号方式と比べた場合の、共通鍵暗号方式の特徴として適切なものはどれか。

解答と解説

解説(解答せずに開けます)

正解はイです。

共通鍵暗号方式の長所は速さでした。ここを問う定番の形です。

  • ❌ ア「暗号化と復号とでは異なる鍵を使用する」→ 公開鍵暗号方式の説明です
  • ❌ ウ「鍵をより安全に配布することができる」→ 配りにくいほうが共通鍵暗号方式です
  • ❌ エ「通信相手が多数であっても鍵の管理が容易である」→ 相手が増えるほど鍵が増えます

もう1問、数える形も解いてみましょう。

腕試し問題

出典:ITパスポート試験 令和2年度 問97

公開鍵暗号方式では、暗号化のための鍵と復号のための鍵が必要となる。4人が相互に通信内容を暗号化して送りたい場合は、全部で8個の鍵が必要である。このうち、非公開にする鍵は何個か。

解答と解説

解説(解答せずに開けます)

正解はウです。1人が公開鍵と秘密鍵を1組ずつ持ち、非公開にするのは秘密鍵のほうだけです。人数分だけ数えれば答えが出ます。鍵の総数と、そのうち秘密にする数を分けて考えるのが、この型の勘どころになります。

まとめ

  • 共通鍵暗号方式は、復号に暗号化で使用した鍵と同一の鍵を用いる方式
  • 公開鍵暗号方式は、暗号化のための鍵と平文に戻すための鍵が異なる方式
  • 共通鍵暗号方式は速いが、通信相手ごとに異なる鍵が必要で、公開鍵暗号方式と比べると鍵を安全に配りにくい
  • 共通鍵は通信の組合せごとに1個。4人で6個、8人で28個、10人で45個と増える
  • 公開鍵暗号方式は1人につき2個。秘密にするのは秘密鍵だけ
  • 秘密のデータを送るときは相手の公開鍵で暗号化。デジタル署名では向きが反対になる
  • ハイブリッド暗号方式は、メッセージは共通鍵、その共通鍵は相手の公開鍵で暗号化して渡す

「同じ鍵か、別々の鍵か」から始めれば、速さも本数も配りやすさも、そこからつながって思い出せます。選択肢を読むときは、まず鍵が何本出てくるかを数えてみてください。

この記事のタグ

関連記事