共通鍵(AES)と秘密鍵(RSA)の違い

暗号化方式の説明についてお悩みである、という話を聞きました。
ふと、私ならどう説明するのか、とメモしておきます。


  1. 共通鍵方式と公開鍵/秘密鍵方式の違い(細かい話)
  2. 例えるならば・・・
  3. 暗号化の説明(簡素化)

1.共通鍵方式と公開鍵/秘密鍵方式の違い

とても簡単に説明しているサイトを見つけましたので、表を参考に読んでいただくのが一番よろしいかと。

(AESとRSAの比較)
AES/RSA
【図解】初心者も分かる”公開鍵/秘密鍵”の仕組み~公開鍵暗号方式の身近で具体的な利用例やメリット〜 より


2.例えるならば・・・

専門的なことはさておき、授業では、どう伝えているかというと。
私は南京錠とダイヤルロックに例えて説明しています。

※昨今は宅配ボックスで例えるのが面白いかなと思っています。

荷物を受け渡す時に、どんな鍵でフタを閉じる(暗号化する)のか?
メリットデメリットを考えてみよう、と。

共通鍵方式

まずは共通鍵方式です。
いわゆるダイヤルロックに例えています。
鍵となる「番号」を共有して、使いまわす。

メリットとしては、送る人、受け取る人、双方からの開け閉めが容易です。速度も速いです。
デメリットとしては、「番号が漏れる」と、大変危険です。 基本的に1対1など、少数相手にしか使えません。
※大量に配布すると、番号漏れの可能性が高まる。
※番号を教えるときには、慎重に。

公開鍵方式

公開鍵/秘密鍵方式です。
いわゆる、南京錠タイプ。

「錠」の部分だけを相手に渡し、「鍵」は自分だけが持ちます。

メリットとしては、「錠」を大量にコピーして、配れます(公開)
デメリットとしては、送り人は「鍵を閉める」ことしかできません。(ロックしかできない。鍵がない。)
慎重に鍵を閉めねばなりませんので、速度は遅くなります。※例えです。厳密には大きく違います


3.暗号化の説明(簡素化)

RSA暗号の簡単な説明です。
※社会と情報では、シーザー暗号レベルしかやりません。
※情報の科学と情報テクノロジーで扱っています。

暗号とは、「第三者が通信文を見ても特別な知識なしでは読めないように変換」したものです。(wikipediaより)
正確な定義はさておいて、これを「素数の性質」と「その計算が難しい」ことを利用して実装しているのだと説明します。

たとえば、「15」という数字があります。 これは 3*5という素数の掛算によって導かれる数字です。
素数同士の積(半素数)では、その性質上、因数が限られています。(3と5の組み合わせしかない)

つまり、これを鍵とするのです。
「15という南京錠」を配っておき、これを開けるには、「3*5と書かれた鍵」が必要だとするのです。
15=3*5が成立したときに、開錠できるようにします。

・「15」ならば簡単に解けてしまうんじゃない?
おっしゃる通りです。
ここから先は、PCの性能と桁数の追いかけっこが始まります。

15は簡単すぎるけども、ならば「175146184831」はどうでしょうか?
素因数分解するにしても、結構な時間がかかりそうですよね・・・?
まさか、2,3,5,7,,,と続けていくわけにもいきません。
(※204749*855419  この桁数でも、PCなら一瞬で解読します)

このように、桁数を大きくすればするほど、計算が難しくなります。
コンピュータ相手でも、十分に時間を稼げる桁数まで増やしてしまえばそれでよい、という考えですね。
実際にはもう少し、複雑にするための工夫がなされておりますが、概要としてはこれで十分かと思います。


とまあ、こんな感じで、大体10分~15分位を説明の時間に割いています。
何かの参考になれば。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です