ICT・Educationバックナンバー
ICT・EducationNo.49 > p16〜p21

見てわかる社会と情報
見てわかる,体験してわかる暗号化の授業
─共通鍵・公開鍵と通信の工夫を学ぶための三つの実習─
東京都立町田高等学校 小原 格
1.はじめに
 情報通信ネットワークの発展にともない,通信の暗号化は欠かせない技術となっている。新学習指導要領においても,情報セキュリティに関する内容が重要視されているが,とくに「社会と情報」においては「技術的対策と組織的対策」という視点から,また「情報の科学」においては「情報通信ネットワークのしくみ」という視点から扱うことが示されている。本稿では,暗号化のしくみを手を動かしながら視覚的・体験的にとらえることにより,楽しく理解させる実習を提案する。
2.指導目標と評価規準
(1)指導目標
 情報セキュリティを確保する技術の一つとして暗号化があることを理解するとともに,公開鍵暗号方式や共通鍵暗号方式などのおもな暗号化のしくみとその応用技術について考える。

(2)評価規準
観点 関心・意欲・態度 思考・判断・表現 技能 知識・理解
評価
規準
暗号化とそれを応用したしくみに対して関心をもつ。 それぞれの暗号化方式とその応用がどのようなしくみになっているか考える。 実際に暗号化や復号を行いそれぞれの平文を表現する。 暗号化のしくみがなぜ必要であるのかを理解する。
3.指導観(学習させたい事柄)
(1)単元観(単元や題材がもつ教育的意義)
 本単元は「社会と情報」における情報通信セキュリティの確保という内容に対応し,とくに技術的な対策の一つととらえることができる。学習指導要領においては「(3)イ 情報セキュリティの確保」に相当すると考えられ,情報通信ネットワークについて考え,その必要性を理解することは重要な要素である。また「暗号化のしくみ」だけではその必要性までなかなか理解させにくいことが考えられるため,「見てわかる社会と情報」のp.128の情報通信ネットワークのしくみやp.134のパケット送受信の体験などの実習をあらかじめ行い,インターネット上でのデータのやりとりのしくみや安全性についてふれてから暗号化を学習するような手順にすることも考えられる。

(2)生徒観(生徒の実態や傾向)
 生徒は「暗号」という言葉はすでに知っていることが予想できるため,文字を一定のルールで交換することにより暗号化を行う換字式暗号(シーザー暗号)の内容についてはゲーム感覚で取り組むことができると考えられる。そして,換字式暗号は単純で負荷も少ないが,鍵(ルール)を相手とどのように共有するのか,ということが大きな問題になるということに気づかせたい。さらに公開鍵暗号方式というまったく別の方式を学ぶことにより,その考え方の巧みさにふれさせるとともに,情報通信ネットワークの利用者として,ディジタル証明やSSLなどの技術があることやそのしくみを理解させたい。

(3)教材観(教材の解釈・教具などの活用)
 日本文教出版「見てわかる社会と情報」のp.88〜 89を用いる。この教科書では,その単元でポイントとなる重要な内容を3行の本文でまとめているため,読み合わせなどは最小限にし,図を用いて直感的に理解させるには適したものといえよう。とくにこの単元では「共通鍵暗号方式」の図そのものを実習内容の説明に用いることができるため,ワークシートを用意することで実習を行うことができる。
 共通鍵暗号方式は一般的に利用している「自宅の鍵」などをイメージさせればよいが,公開鍵暗号方式では,「閉める(暗号化する)鍵」と「開ける(復号する)鍵」が異なるものであることを理解できるような教材を用意したい。そこで,すでに多くの実践事例がある南京錠を用いる。南京錠は閉める(錠をはめ込む)場合と開ける(鍵を入れて回す)場合の鍵が異なるので,公開鍵暗号のしくみを直感的に理解させることができる。


4.指導計画と評価計画
学習活動・学習内容 評価方法


○情報通信ネットワークにおけるセキュリティを保つ工夫について実習を通して理解する。
○共通鍵暗号方式のデメリットを発見し,公開鍵暗号方式のメリットについて理解する。
○公開鍵暗号方式の応用例であるディジタル署名とSSLのしくみや実際の使用場面について学習する。
○セキュリティを高める手段の一つに暗号化があることを理解できたか。
○共通鍵暗号方式,公開鍵暗号方式のしくみと問題点を理解できたか。
○ディジタル証明やSSLのしくみと実際の使用例を理解できたか。
5.指導の概略
 情報社会の中でセキュリティを高める技術的な手段として暗号化があるということを理解させる。その上で,共通鍵暗号の代表的なしくみの一つであるシーザー暗号について,文字列の暗号化のやりとりを通して体験し理解を深める。さらには公開鍵での暗号化やそれを利用したディジタル署名,SSLといったセキュリティ上の工夫について学習する。
6.授業の展開
(1)授業の展開1(共通鍵暗号方式)
 本時では情報セキュリティを高めるさまざまな方法について理解させることを主眼としている。
 導入では,目的の人にしか情報を与えたくない「秘密の内容」があり,そのままでは第三者に知られるかもしれないという前提で,相手と情報をやりとりする状況をイメージさせる。

発問例1:「運動部の試合などで,監督やコーチが味方の選手だけに作戦を伝えるときにはどのようにしているか」
 生徒たちはジェスチャーなどによるサインや別の言葉への言い換えという反応が多いだろう。積極的に運動部の生徒に答えさせると具体的な返答が期待できる。実際に,対戦相手にある程度見られて(聞かれて)しまうことは承知のうえで,味方だけにわかるようなサインや言葉を決めているだろう。ここで,ある内容をサインや別の言葉に置き換えることは「暗号化」に相当し,逆にそれらをもとの内容に置き換えることは「復号」に相当することも押さえておきたい。

発問例2:「手紙のように,文章(文字列)を暗号化したい場合はどうすればよいか」
 生徒は試合でのサインなどと同じように,内容を一定のルールで変換しながら暗号化していけばよいことは直感的に理解できるだろう。生徒にさまざまな意見を出させた上で,実はそれぞれの文字をシフトさせる(ずらす)ことが歴史的にもよく用いられていることに誘導していくとよい。

実習1:「シーザー暗号を体験しよう」
図1 シーザー暗号を体験する実習の説明(p.89)
▲図1 シーザー暗号を体験する実習の説明(p.89)

 シーザー暗号は「規則(文字をアルファベット順にシフトさせる)」と「鍵(何文字シフトさせるか)」という二つの要素があり,教科書の例では,鍵を+1としている(図2)。
▲図2 共通鍵暗号方式を解説した図(p.88)
▲図2 共通鍵暗号方式を解説した図(p.88)

 ここで,図3のようなワークシートを配布し,鍵を+1に設定して隣の生徒に渡し,解読した生徒は確認のため復号した単語を,鍵を−2に設定して再度暗号化して返す,という実習を行う。

暗号を体験しよう

(1)鍵を+1として暗号化した単語:
   (あなたが暗号化する)

                

(2)鍵を−2として暗号化した単語:
   (相手が暗号化する)

                

▲図3 暗号化の実習で用いるワークシートの例

 ここまで実習すると,中には共通鍵暗号方式(シーザー暗号)のデメリットに気がつく生徒も出てくるだろう。そこで,この実習の後,次のような質問を投げかけたい。

発問例3:「体験してもらったシーザー暗号は,暗号でやりとりする人たちにとっては単純でわかりやすいが,実は大きなデメリットがある。それは何だと思うか」
 生徒は「単純だからすぐ見破られる」,「何回か試せばわかる」ということはすぐに出てくるだろう。実習の特性上,鍵がそれぞれ+1,−2であることを全員が知ってしまっているので,もはや暗号化の意味をなさなくなっていることも生徒に気づかせたい。そこでさらに,

発問例4:「いまは鍵(ルール)をそれぞれ+1,−2と全員共通にした。つまり,全員が解読方法を知っていることになる。これで秘密の内容をやりとりできるだろうか」
 というヒントを出し,事前に相手と鍵を秘密裏に決めておかなくては意味をなさないこと,そうでない場合はどのように鍵を相手に送るかが大きな問題となること,情報を個別にやりとりする相手の数だけ鍵が必要となること,悪意の第三者が鍵(ルール)を知ってしまった場合でも検知できないことなどに気づかせ,展開2につなげる。

(2)授業の展開2(公開鍵暗号方式)
 シーザー暗号が古代ローマ時代に利用されていたのに対し,公開鍵暗号方式は1970年代に開発された比較的新しい方式である。教科書では,図4のように図示している。
図4 公開鍵暗号方式を解説した図(p.88)
▲図4 公開鍵暗号方式を解説した図(p.88)

発問例5:「公開鍵暗号方式の特徴は,暗号化する鍵と復号する鍵が異なることである。これをうまく利用するとどんな便利な点があるか」
 公開鍵暗号方式の最大の特徴は暗号化する鍵と復号する鍵が異なるという点であり,復号する鍵を自分のみがもつ,すなわち自分のみが解読できることである。暗号化する鍵を一般に公開することにより,鍵をあらかじめ決めておく必要もなく,だれでも自分に暗号文を送ることができるようになる,というメリットもある。これらを生徒に十分に理解させたい。

実習2:「公開鍵暗号方式を体験しよう」
 公開鍵暗号方式を体験させるために,複数の南京錠とそれを用いて施錠できる「入れ物」を用意する。それぞれの南京錠には個人の公開鍵をイメージさせるため,生徒に対応する番号などを明記しておく。また入れ物については図5のような外からは中身が見えないケースなどが適している。なお,ダイヤル式の錠を用いて公開鍵暗号方式の授業実践を行っている大阪府立寝屋川高等学校の野部緑先生の実践もあるので参考にするとよいだろう。
図5 ケースと南京錠の例
▲図5 ケースと南京錠の例

実習の手順

1) 南京錠と解錠鍵のセットを複数用意し,それぞれ対応する生徒の番号を振っておく。
2) 南京錠は生徒が手に取れる教卓上などに置いておき(公開鍵),解錠鍵は対応する生徒に渡しておく(秘密鍵)。
3) 生徒を指名し,たとえばAさんに公開鍵暗号方式でデータを送るように指示する。
4) 指名された生徒は,Aさんに送るデータを入れ物に入れ,Aさん用の公開鍵で施錠し,近くの生徒にデータをAさんまで回してもらうように依頼する。
5) 次々と隣に送られ,Aさんまで届く。
6) Aさんは自分の秘密鍵で解錠してデータを取り出す。
7) 届け先を変え,3から6までの内容を複数行う。

 このようにして,実際に解錠用の鍵をもつ生徒しか開けられない施錠されたデータを送ることによって,途中の生徒が中身を見ようとしても見られないことや,「鍵をどのように相手に届けるか」,「相手ごとに鍵を変える必要がある」といった共通鍵暗号方式のデメリットが解決されることを意識させたい。

(3)授業の展開3(ディジタル署名)
 公開鍵暗号方式はとても有効な手段であり,閉める(暗号化する)鍵と開ける(復号する)鍵が異なることが大きな特徴であった。暗号化する鍵を広く公開する反面,復号する鍵は自分だけがもつことによってセキュリティを確保するわけであるが,逆に,暗号化する鍵(南京錠)を自分だけがもち,復号する鍵(解錠用の鍵)を広く公開したらどのような便利な点があるのかを考えさせ,ディジタル署名のしくみについて学ばせる。

発問例6:「公開鍵暗号方式とは逆に,暗号化する鍵を発信者だけがもち,復号する鍵を広く公開したらどのような便利なことが起こるだろうか」
 言葉ではなかなか伝わりにくいため,これも実習で理解させるとよいだろう。この実習は実習2と連続して行う。なお,教科書では次のようにディジタル署名の手順を示している(図6)。
図6 ディジタル署名のしくみを解説した図(p.89)
▲図6 ディジタル署名のしくみを解説した図(p.89)

実習3:「ディジタル署名を体験しよう」

実習の手順

1) 実習2で利用した南京錠と解錠鍵のセットを利用する。
2) 解錠鍵は生徒が手に取れる教卓などに置き(公開鍵),南京錠は対応する生徒に渡しておく(秘密鍵)。
3) Aさんを指名し,今度はBさんにデータを送るように指示する。
4) Aさんは,Bさんに送るデータを入れ物に入れ,自分の南京錠で施錠し,隣の生徒にデータをBさんまで回すように依頼する。
5) 次々と隣に送られ,Bさんまで届く。
6) BさんはAさんの公開鍵で解錠してデータを取り出す。
7) 発信者を変え,3から6までの内容を複数で行う。

 これらを行うと,Bさんは,Aさんからの入れ物はAさんの公開鍵でしか取り出せないことがわかり,同様にほかの生徒から発信された入れ物は,その人の公開鍵でないと解錠できないことがわかる。つまり,Aさんの公開鍵で復号できるデータはAさんが暗号化したものだけである,ということから,そのデータはAさんが発信者であることを証明するための手段として用いることができることを理解させたい。

(4)授業の展開4(認証局,SSL)
 ここで,話を公開鍵暗号方式に戻そう。公開鍵暗号方式は素晴らしいアイディアであり非常に有効な手段ではあるが,まったく問題がないわけではない。たとえば,悪意をもつ第三者がAさんになりすまし,Aさんの公開鍵と称して偽の鍵を公開した場合である。そこで,以下のような質問を生徒に投げかけてみる。

発問例7:「公開鍵方式でやりとりすれば,セキュリティは万全だろうか」
 生徒は「ピッキングされたら意味がない」といった鍵の耐久性についてはすぐに気づくと予想されるが,鍵そのものの信頼性についてはなかなか思いつかないだろう。そこで,教師が「偽の」Aさんの鍵をわざと大げさに教卓におくなどして生徒に気づかせる工夫も考えられる。
 公開鍵自体の信頼性に気づいたら,さらに次の質問を投げかけてみるとよい。

発問例8-1:「公開鍵自体が本物であることを示すには,どのような手段があるか」
 「誰かに証明してもらう」という言葉が生徒から出てきたらチャンスであろう。すぐに,次のステップの発問に移る。

発問例8-2:「では,証明するには具体的にどのような手段があるか」
 ここで認証局の出番である。「信頼できる機関」として認証局というものがあることを示すとともに,認証局用の南京錠と鍵を用意する。そして,前述のディジタル署名の知識により,認証局がAさんの公開鍵(南京錠)を入れ物に入れ,認証局用の南京錠で施錠し,認証局用の解錠鍵を公開する。すなわち,Aさんの公開鍵自体をディジタル署名の要領で「証明」すればよいことになる。 SSLはこのようにディジタル署名などの考え方も利用し,公開鍵自体の正当性を示したうえで,その公開鍵暗号方式で共通鍵を相手に届けるようなしくみである。教科書では,Webページで実際にSSLが用いられているケースを取り上げて簡単に解説している(図7)。必要に応じてこれらの内容を補いながら説明するとよいだろう。また,本実習後に時間があれば,複数のWebページを検索させ,実際に「https://」でURLがはじまっていることや錠のマークを確認させ,どのようなWebページにSSLが使われているかまとめさせるのもよいだろう。
図7 SSLを解説した図(p.89)
▲図7 SSLを解説した図(p.89)

7.新カリキュラムでの実施にあたって
 新カリキュラムの「社会と情報」では,セキュリティに関する内容は「(2)情報通信ネットワークとコミュニケーション」の「イ 情報通信ネットワークの仕組み」という部分と「(3)情報社会の課題と情報モラル」の「イ 情報セキュリティの確保」という二つの部分に対応している。今回の授業案ではとくに前後関係についてはふれなかったが,情報通信ネットワークとコミュニケーションの学習の後に今回の暗号化の授業を行うことによって,さらに効果的な学習となることも考えられる。「見てわかる社会と情報」のp.134にあるパケット送受信の体験実習(図8)を行った後に,パケットの中身が簡単に知られてしまうことにふれ,暗号化の必要性へと誘導したり,実際にパケット送受信の実習で暗号化のデータをやりとりさせたりといった内容も考えられる。
図8 パケット送受信の体験実習(p.134)
▲図8 パケット送受信の体験実習(p.134)

 さらには数学科との連携も視野に,公開鍵暗号方式の場面において,「暗号化と復号が別々の鍵」ということを具体的に説明するために,「暗号化はしやすいが第三者には復号が難しく非常に時間がかかる」ものとして素因数分解の考え方が利用されている,ということなどを紹介することもできる。素因数分解された「23×29×37×47」を計算するには「1159913」とすぐにできるが,逆に「1159913」を素因数分解するのはそれほど簡単ではなく時間がかかる,といったことから直感的に気づかせることもできる。
 このほかにも,山口県立岩国高等学校の山下裕司先生による表計算ソフトウェアを用いて暗号化鍵を体験させる実践もあるので,参考にしてほしい。
 新教育課程が実施されるにあたり,「情報A」から「社会と情報」にシフトする学校も多くなることが予想される。それにともない,いままでしくみまではあまりふれることのなかった暗号化方式に関する授業も増えてくることになるだろう。暗号化方式を扱った優れた実践事例も多くある。それらを参考にしながら,この「見てわかる社会と情報」のもつシンプルさを活かし,生徒の実態に合わせて楽しく学べる授業を展開してほしい。なお,ここではふれなかったが,昔からある有名な暗号として,冗長なものをつけ加える方式がある。たとえば「たぬきの絵」を書いて,「たこんたにたちはた」といったようなものである。これらも導入に取り入れるなどして,暗号化という難解にとらえられがちなテーマを楽しく学べることもできるだろう。
※注1
参考文献は以下の通りである。
天良和男 2010 「情報の科学的な理解を助ける自作教材や小道具」 全国高等学校情報教育研究会第3回大会 http://www.zenkojoken.jp/?action=common_download_main&upload_id=303 (2012.04.12閲覧)
野部緑 2010 「CSアンプラグドを目指した公開鍵暗号の授業」 『情報教育シンポジウム論文集』 情報処理学会 p.47〜48
山下裕司 2011 「暗号化鍵を指導する工夫」 全国高等学校情報教育研究会第4 回大会 http://www.zenkojoken.jp/04osaka/分科会/?action=common_download_main&upload_id=486 (2012.04.12閲覧)
ITpro情報セキュリティ入門 http://itpro.nikkeibp.co.jp/article/COLUMN/20060214/229302/ (2012.4.10閲覧)
前へ   次へ
目次に戻る
上に戻る