安全のための情報技術(2時間)
単元: 社会と情報「情報安全 3.安全のための情報技術 4.暗号化」(p.64-69)
本時の位置づけ
eコマースサイトで入力するカード番号や、親しい相手に個人的に送るメッセージなど、公にしたくない情報をやりとりする機会は今後ますます増加していくと考えられる。
こうした情報を送る際には、悪意ある第三者による不正利用を防ぐため、相手までの経路が十分に暗号化されていることが重要となる。
情報セキュリティを支えている暗号技術は、生徒自身に何らかの問題が起こらない限り意識しにくいものであるため、本時の授業を通じて生徒の認識を深めていく。
教材観
公開鍵暗号の例として本時で扱うRSA暗号は、現在も広くHTTPS(SSL/TLS)による暗号化通信で一般的に利用されているアルゴリズムである。
数学的に正しさが証明されているアルゴリズムが実社会で利用されているというだけでなく、それが素因数分解という高校生にも分かる易しい数学で実現されている点も重要である。
また、素因数分解の困難さや暗号の安全性に関する計算量的な視点や、誰もが利用している電子署名への応用など、理論面でも実践面でも興味深い教材である。
生徒観
西京高校では全生徒がタブレットPCを所持していることもあり、クラウドストレージなどの機密性が要求されるWebサービスを日頃から利用している生徒が多い。
また、殆どの生徒がLINEなどのメッセンジャーアプリを使っているため、暗号化された通信を日々行っている。
しかし、そうしたアプリやサービスでは通常、セキュリティ面について利用者に意識させることはないため、安全性や攻撃リスクに対する生徒の理解は十分とはいえない。
指導観
以上より本時では、共通鍵暗号と公開鍵暗号を比較したり、RSA暗号の具体的なアルゴリズムにも踏み込みながら、生徒のセキュリティに対する認識を深めることを目的とする。
その際、作成した教材で暗号化/復号を体験させるだけでなく、実際にHTTPSのWebサイトでRSAが使われていることも生徒に示すことで、社会の中で数学的な手法が利用されていることを伝えていく。
本時の目標
- 暗号の安全性が技術の進歩や新たな手法の発見により低下し、常に新しい暗号が必要になることを理解する。
- 共通鍵暗号に内在する鍵配送問題と、その解決策としての公開鍵暗号の必要性を理解する。
- 逆演算の計算量的な困難さが公開鍵暗号の着想となっていることを理解する。
- 暗号が電子署名として一般的な用途に応用され、誰もが日々利用していることを理解する。
指導計画
1時限目
sequenceDiagram
participant T
participant S
participant PC
Note left of T: 導入(5分)
S->>PC: タブレットもしくはノートPCの準備作業を行う
T->>S: 電子メールは暗号化されていないことに触れ、メールはセキュリティ面で脆弱であることを説明する
Note right of S: PCの準備状況に配慮する
Note left of T: 展開(15分)
T->>S: 暗号の定義と共通鍵暗号の基本事項を説明し、パスワード解析ツールを用いてbrute-force attackを実演する
S-->>T: どんなに強力な暗号であっても必ず解読されうることを認識する
S->>S: 辞書を用いた攻撃など、brute-force attackより効率的な攻撃方法を考える
T->>S: 暗号の安全性を示す指標に「最も効率的な攻撃を行った場合の計算量」(等価安全性)があることと、等価安全性が低下する要因を説明する
S-->>T: 暗号が永遠に使えるものではないことを理解する
Note left of T: 展開(30分)
T->>S: 鍵配送問題を実演しながら説明する
S-->>T: 鍵の配送に配慮することの重要性と、中間者攻撃の可能性を認識する
T->>S: 「配送しても安全な鍵(=公開鍵)」を考えるために、逆関数の存在性と計算量について伝える
S->>S: 可逆な関数のうち、逆演算が難しいものはどのようなものか考える
S-->>T: 素数の積の計算と素因数分解を実際に行い、素因数分解の困難さを理解する
Note right of S: 逆関数について簡単に説明する。可能ならP vs NP問題にも触れる
2時限目
sequenceDiagram
participant T
participant S
participant PC
Note left of T: 展開(20分)
T->>S: 南京錠の例えなども使いながら、公開鍵暗号の基本事項を説明する
S-->>T: 演習を通じて、RSA暗号の概略を理解する
S-->>T: RSA暗号の秘密鍵と公開鍵は入れ替え可能なことを理解する
Note right of S: 可能ならRSAの歴史的背景にも触れる。実演では$(p, q, e, d) = (5, 7, 5, 29)$などを用いる
Note left of T: 展開(25分)
S->>S: 秘密鍵と公開鍵を入れ替えて暗号化した場合に、公開鍵暗号がどう使えるのか考える
T->>S: SSL/TLSが使われているサイト/サービスの例を示しながら、電子署名について説明する
Note right of S: 可能ならハイブリッド暗号やハッシュ関数、Dropbox,LINE,無線LANのセキュリティにも触れる
Note left of T: 総括(5分)
T->>S: ネットで通信する上で、暗号は必要不可欠なものであることを復習する
T->>S: 時代が進むにつれ古い暗号は危殆化していくことを復習する