わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

試験終了

某年月日,100%担当科目の情報セキュリティについて,試験を実施しました.
授業のWebページでも,「試験は終了しました」と書き,また,試験の問題と解答,それと1週前に授業で配布した,おさらい問題を載せました.試験問題とおさらい問題の関係について,かつて書いたのを切り貼りしておきます.

私も担当の科目が一つありますが,14回授業時の「おさらい問題」を作る際に,「試験問題」の案も作っていまして,もう少し具体的に書くと,学生のみなさんに答えを考えてもらいたい「問い」を,授業内容から洗い出して,紛らわしさはあるけれど知ってほしいものを「おさらい問題」に,問いと答えの形で,きちんと理解してほしいものを「試験問題」に,仕分けています.

レポート課題(文脈自由文法をCで)

今年つくった問題の中で,思い入れがあるものを,取り出すことにします*1.なおいずれも,「以下の下線部は,情報セキュリティに関する現時点での技術,もしくは情報セキュリティに関わる技術者の心構えとして,不適切である.正しい語句などを解答しなさい.」という指示のある,誤り訂正問題です.下線は【 】で表すことにします.

PKIにおいて,鍵が【漏洩】されていないかを確かめるには,CRLを参照する.

おさらい問題より(一部表現を改めています).ここは「漏洩」ではなく「失効」としないといけません.なお「破棄」も正解としています.
実際,次の4種類がいずれも起こり得ます.

  • 漏洩されていて,失効している.
  • 漏洩されているが,失効していない.
  • 漏洩されていないが,失効している.
  • 漏洩されていなくて,失効していない.

言い換えると,鍵の漏洩と鍵の失効は別*2ということです.もちろん,それぞれの状態になっている確率には偏りがあるとも推測でき,もし算出できるのなら,確率における独立性は満たしていないでしょう.ここでは,その4つの発生確率がともに0でない*3というのを指摘,というか試験ではなくおさらいの段階ですので,学生とともに確認をしたという次第です.

時間計算量が,入力長Lと適当な定数C, kを用いてC\cdot L^k以下となるアルゴリズムを,【O(k)】時間アルゴリズムという.

こちらは試験問題から.ぽっと思いついた出題ではなく,5月末の授業,RSAの安全性のところで,「本日のまとめテスト」として,

処理時間が,入力長Lと適当な定数C, kを用いてC\cdot L^k以下となるアルゴリズムを,多項式時間アルゴリズムという.

という,特に問題とならない文を提示し,「一部を書き換えて下線を施し,間違った文を作りなさい」という指示をしていました.「うまい文は,試験で出すかもしれない」という文を添えました.
なお,学生に試験問題を作らせるというのは,独自の発想ではなく,複数の書籍に見られます.初めてその方法を知ったのは確か去年の4月で,バスの帰りに学科の教授と,授業のことで会話をしたら,その翌日に,授業改善のための文献をいただき,その中に載っていたのでした.
それで,提出のあった「授業メモ」*4を見たところ,何人かの学生が,「多項式」を「指数」に替えていました.まあここに着目するよねと思い,上のような出題にしました.
C\cdot L^kは,kに着目すれば指数関数とみることもできますが,文にあるとおりkは定数で,処理時間(時間計算量)を考える際には,Lが変わり得る値ですので,ここで「指数」に訂正するというのは間違いです.それから,RSAの解読だとか,P≠NPの話の中では,kの具体的な値を重視しません(具体的な値が決まっても,アルゴリズムの改善で容易に下がり得ると考えられます)ので,「O(L^k)」というのも不正解です.

*1:後期のプログラミング科目でも,マルチョイ再帰の問い方2009にて,同様のことをしています.

*2:…と,俗に書きますが,細かいことを言うと,漏洩するとかしないとかいうときの対象は,秘密鍵(『秘密の国のアリス』でいうプライベート鍵)であり,失効するとかしないとかになれば,公開鍵証明書を中心とした鍵ペアを指します.

*3:昔書いた:一定の確率

*4:3日前のエントリを参照ください.リンクするのも疲れました.ってこんな脚注を書く方がコスト高なのですが.