わさっきhb

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

情報セキュリティのキーワード関連図

昨日で情報セキュリティの授業が終わりました.
もう一つの単独担当科目,情報処理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;5RSA 数論アルゴリズム};
	{rank = same;6回 素数判定 素因数分解 離散対数};
	{rank = same;7回 一方向ハッシュ関数 メッセージ認証コード ディジタル署名};
	{rank = same;8回 ハイブリッド暗号 乱数 公開鍵基盤};
	{rank = same;9DH鍵交換 PGP};
	{rank = same;10SSL SSH};
	{rank = same;11Webセキュリティ アクセス制御 ファイアウォール};
	{rank = same;12回 計算理論 暗号プロトコル ゼロ知識対話証明};
	{rank = same;13回 セキュリティポリシー ISMS 個人情報保護法};
}

dot -Tpng secu2009.dot -o secu2009.pngとして作成したのが上のもので*1,dot -Tpdf secu2009.dot -o keyword.pdfとして作成したものは,授業資料ページでリンクしています.
そのほかいろいろ:

  • 色は,青が授業回とテーマ,赤が理論寄りのキーワード,緑が実用寄りのキーワードです.色づけとリンクは主観です.逆方向のリンクを,あえてするなら「乱数 -> 素数判定」ですが,しませんでした.PGPSSL / TLSSSHのリンクがundirectedなのは意図的です.
  • 前回にない,dotファイルの工夫としては,「graph [size = "8.27, 11.69"];」による,出力サイズの設定が挙げられます.数値の単位はインチで,これで生成されるPDFファイルは,A4判になります.ただし,余白をとっていませんので,そのままレーザプリンタに送ると,端が切れてしまう可能性があります.
  • 第12回の内容が,前後と比べて,浮いているように見えます*2.実際これを,第7回または第8回に移動することは内容上,可能ですが,実際にそれをすると,学生は前半で「数学ばっかり,面白くない」と離れてしまうおそれがあります.
  • dotファイルをうまく書けば,第1回〜第14回を縦方向に揃えられそうなのですが,できませんでした.今思うに,授業回(「第1回」など)と,各回のテーマを別ノードとして定義するのが,スマートな気がします.来年の課題とします.

*1:ただし,はてなに乗せる前にサイズ縮小とJPEG化を行っています.

*2:ついでに,「基礎」という名称も,暗号プロトコルのトピックが後半を占めることに留意すると,不適切と言わざるを得ません.