昨日で情報セキュリティの授業が終わりました.
もう一つの単独担当科目,情報処理IIでは,C言語のキーワード関連図(2008年度版) - わさっきというのを出して好評を得たので,情報セキュリティでも作ってみました.
dotファイルは以下のとおり.
/* secu2009.dot */ /* -*- coding: utf-8 -*- */ digraph securitykeyword2009 { graph [size = "8.27, 11.69"]; 第1回 [label = "第1回\nはじめに", style = filled, fillcolor = "#33CCCC"]; 第2回 [label = "第2回\nユーザ認証", style = filled, fillcolor = "#33CCCC"]; 第3回 [label = "第3回\n暗号系", style = filled, fillcolor = "#33CCCC"]; 第4回 [label = "第4回\n対称暗号", style = filled, fillcolor = "#33CCCC"]; 第5回 [label = "第5回\n公開鍵暗号(1)", style = filled, fillcolor = "#33CCCC"]; 第6回 [label = "第6回\n公開鍵暗号(2)", style = filled, fillcolor = "#33CCCC"]; 第7回 [label = "第7回\nメッセージ認証", style = filled, fillcolor = "#33CCCC"]; 第8回 [label = "第8回\n鍵管理", style = filled, fillcolor = "#33CCCC"]; 第9回 [label = "第9回\nTTPを用いない\nセキュリティ", style = filled, fillcolor = "#33CCCC"]; 第10回 [label = "第10回\n暗号化ソフト\nウェア", style = filled, fillcolor = "#33CCCC"]; 第11回 [label = "第11回\nサーバサイド\nセキュリティ", style = filled, fillcolor = "#33CCCC"]; 第12回 [label = "第12回\n基礎", style = filled, fillcolor = "#33CCCC"]; 第13回 [label = "第13回\n組織の\nセキュリティ", style = filled, fillcolor = "#33CCCC"]; 第1回 -> 第2回 -> 第3回 -> 第4回 -> 第5回 -> 第6回 [style = invis] 第6回 -> 第7回 -> 第8回 -> 第9回 -> 第10回 -> 第11回 [style = invis] 第11回 -> 第12回 -> 第13回 [style = invis] 情報セキュリティとは [style = filled, fillcolor = "#99CC00"]; ユーザサイドのセキュリティ [style = filled, fillcolor = "#99CC00"]; パスワード管理 [style = filled, fillcolor = "#99CC00"]; バイオメトリクス認証 [style = filled, fillcolor = "#99CC00"]; 安全性を脅かすもの [style = filled, fillcolor = "#99CC00"]; 歴史上の暗号 [style = filled, fillcolor = "#FF99CC"]; 使い捨てパッド [style = filled, fillcolor = "#FF99CC"]; DES [style = filled, fillcolor = "#FF99CC"]; AES [style = filled, fillcolor = "#FF99CC"]; ブロック暗号 [style = filled, fillcolor = "#FF99CC"]; RSA [style = filled, fillcolor = "#FF99CC"]; 数論アルゴリズム [style = filled, fillcolor = "#FF99CC"]; 素数判定 [style = filled, fillcolor = "#FF99CC"]; 素因数分解 [style = filled, fillcolor = "#FF99CC"]; 離散対数 [style = filled, fillcolor = "#FF99CC"]; 一方向ハッシュ関数 [style = filled, fillcolor = "#FF99CC", label = "一方向ハッ\nシュ関数"]; メッセージ認証コード [style = filled, fillcolor = "#FF99CC", label = "メッセージ\n認証コード"]; ディジタル署名 [style = filled, fillcolor = "#FF99CC"]; ハイブリッド暗号 [style = filled, fillcolor = "#FF99CC", label = "ハイブリッド\n暗号"]; 乱数 [style = filled, fillcolor = "#FF99CC"]; 公開鍵基盤 [style = filled, fillcolor = "#99CC00"]; DH鍵交換 [style = filled, fillcolor = "#FF99CC"]; PGP [style = filled, fillcolor = "#99CC00"]; SSL [style = filled, fillcolor = "#99CC00", label = "SSL / TLS"]; SSH [style = filled, fillcolor = "#99CC00"]; Webセキュリティ [style = filled, fillcolor = "#99CC00", label = "Web\nセキュリティ"]; アクセス制御 [style = filled, fillcolor = "#99CC00"]; ファイアウォール [style = filled, fillcolor = "#99CC00", label = "ファイア\nウォール"]; 計算理論 [style = filled, fillcolor = "#FF99CC"]; 暗号プロトコル [style = filled, fillcolor = "#FF99CC", label = "暗号\nプロトコル"]; ゼロ知識対話証明 [style = filled, fillcolor = "#FF99CC", label = "ゼロ知識\n対話証明"]; セキュリティポリシー [style = filled, fillcolor = "#99CC00"]; ISMS [style = filled, fillcolor = "#99CC00"]; 個人情報保護法 [style = filled, fillcolor = "#99CC00"]; 情報セキュリティとは -> ユーザサイドのセキュリティ; ユーザサイドのセキュリティ -> パスワード管理; ユーザサイドのセキュリティ -> バイオメトリクス認証; 情報セキュリティとは -> 安全性を脅かすもの; 歴史上の暗号 -> 使い捨てパッド; 使い捨てパッド -> DES -> AES; DES -> ブロック暗号; RSA -> 数論アルゴリズム; 数論アルゴリズム -> 素因数分解; 数論アルゴリズム -> 離散対数; RSA -> 素数判定; RSA -> 素因数分解; 離散対数 -> DH鍵交換; RSA -> ディジタル署名 -> 公開鍵基盤; 第4回 -> ハイブリッド暗号; 第5回 -> ハイブリッド暗号; 乱数 -> ハイブリッド暗号; ハイブリッド暗号 -> PGP; ディジタル署名 -> PGP; PGP -> SSL -> SSH -> PGP [dir = none]; SSL -> Webセキュリティ; Webセキュリティ -> アクセス制御 -> ファイアウォール; 数論アルゴリズム -> 計算理論; 暗号プロトコル -> ゼロ知識対話証明; {rank = same; 第1回 情報セキュリティとは ユーザサイドのセキュリティ}; {rank = same; 第2回 パスワード管理 バイオメトリクス認証}; {rank = same; 第3回 安全性を脅かすもの 歴史上の暗号}; {rank = same; 第4回 使い捨てパッド DES AES ブロック暗号}; {rank = same; 第5回 RSA 数論アルゴリズム}; {rank = same; 第6回 素数判定 素因数分解 離散対数}; {rank = same; 第7回 一方向ハッシュ関数 メッセージ認証コード ディジタル署名}; {rank = same; 第8回 ハイブリッド暗号 乱数 公開鍵基盤}; {rank = same; 第9回 DH鍵交換 PGP}; {rank = same; 第10回 SSL SSH}; {rank = same; 第11回 Webセキュリティ アクセス制御 ファイアウォール}; {rank = same; 第12回 計算理論 暗号プロトコル ゼロ知識対話証明}; {rank = same; 第13回 セキュリティポリシー ISMS 個人情報保護法}; }
dot -Tpng secu2009.dot -o secu2009.pngとして作成したのが上のもので*1,dot -Tpdf secu2009.dot -o keyword.pdfとして作成したものは,授業資料ページでリンクしています.
そのほかいろいろ:
- 色は,青が授業回とテーマ,赤が理論寄りのキーワード,緑が実用寄りのキーワードです.色づけとリンクは主観です.逆方向のリンクを,あえてするなら「乱数 -> 素数判定」ですが,しませんでした.PGP,SSL / TLS,SSHのリンクがundirectedなのは意図的です.
- 前回にない,dotファイルの工夫としては,「graph [size = "8.27, 11.69"];」による,出力サイズの設定が挙げられます.数値の単位はインチで,これで生成されるPDFファイルは,A4判になります.ただし,余白をとっていませんので,そのままレーザプリンタに送ると,端が切れてしまう可能性があります.
- 第12回の内容が,前後と比べて,浮いているように見えます*2.実際これを,第7回または第8回に移動することは内容上,可能ですが,実際にそれをすると,学生は前半で「数学ばっかり,面白くない」と離れてしまうおそれがあります.
- dotファイルをうまく書けば,第1回〜第14回を縦方向に揃えられそうなのですが,できませんでした.今思うに,授業回(「第1回」など)と,各回のテーマを別ノードとして定義するのが,スマートな気がします.来年の課題とします.