1.7K Views
July 11, 25
スライド概要
「暗号理論入門 情報を守る仕組みとその魅力」
2025年7月11日、千葉県立柏の葉高等学校 情報理数科の夏季セミナーで発表したスライドになります。
暗号理論入門 情報を守る仕組みとその魅力 2025年7月11日 千葉県立柏の葉高等学校 情報理数科「夏季セミナー」 発表者 IPUSIRON
本日のテーマ 50分で暗号理論の基本と魅力を解説する 【本日のゴール】 ①暗号の面白さや魅力を感じる ②暗号理論の基礎の基礎を理解する ③暗号に対する印象をマイナスからプラスに変わる ④人生において、暗号とうまくつき合う 2
50分で暗号理論の概要を解説する • 興味がなくても、今から50分間だけ時間をください。 • 暗号理論の全体像をつかめる。 • 全体像を理解するだけでも、一生役立つ知識になる。 • 数学、コンピューター科学、プログラミングが苦手でもOK。 • 今回のスライドはブログでも公開するので、基本的にはメモ不要。 • 書かれていないこともしゃべるので、それは適時メモしてください。 3
目次 •自己紹介 •暗号に対する誤解 •暗号理論を図解で理解する •暗号の魅力とロードマップ 4
自己紹介 5
IPUSIRONの生態 • 福島県相馬市在住 • 本業はコンピューター書籍の文筆家(執筆 業) • 専門はセキュリティ全般 IPUSIRON (イプシロン) 【X】@ipusiron • 高校は理数科、大学は数学科、大学院は情報 セキュリティ専攻科(暗号) • 生きがいは読書(雑食) • 現在の関心事は、錠前と鍵、忍者・忍術 6
本業はコンピューター書籍の執筆 • 大学時代に初書籍。 • それ以降、20年以上執筆を継続。 • 関わった本は35冊ぐらい。 • 翻訳などもたまにやる。 • 専門はセキュリティ全般 • 情報セキュリティ…サーバー侵入、遠隔操作 • 物理的セキュリティ…防犯・防災、鍵開け、ハー ドウェアのハッキング • 人的セキュリティ…ソーシャルエンジニアリング 7 高さ91cmに到達
近年の出版物(著作・翻訳本・監訳本) 大きな書店のコンピューター書籍コーナーを探してみてください。Am zonでも買えます。 a 8
副業では同人サークル活動、講演など 技術書典18(2025年6月1日) ゆるいハッキング大会・第51回(2019年7月20日) 9
暗号に対する誤解
暗号に対するネガティブな印象 • 多種多様すぎる • 数学が必要 • 複雑すぎる • 難しい • 覚えることが多い • 学び方がわからない 11
真面目に暗号を学ぼうとした結果 12
そもそも暗号とは • 第三者に秘密が漏れないようにメッセージを送る技術のこと。 • 例えば、ハガキの場合 • 配達員、郵便受けを覗いた人、宛先の家族にメッセージが読まれてしまう。 • 封書(封筒に入れた手紙)の場合 • 封筒を開けない限り、誰も読めない。 • 封筒を盗まれて、勝手に開けられたら、読まれてしまう。 • 暗号はメッセージそのものを送信者と受信者しかわからないようにするもの。 • ハガキに暗号文を書けば、読まれても伝えようとするメッセージはわからない。 13
暗号の主な用途 秘密のメッセージを送るとどんな場面で嬉しいか • 軍事 • 外交 • インターネット・ショッピング • 私的な通信 • その他さまざまな通信 • 身近な例 • Wi-Fiを使って動画を見るとき、通信は暗号化されてます。 • LINEも、お互いの間で暗号化されています。 14
コード変換は暗号ではない 通信や対話には、暗号ぽいが暗号ではないものも活用されています。 • ASCIIコード…各文字が数字に対応。 • 例:”ABC” 「65, 66, 67」(10進数) “ABC” • モールス信号…「・」「➖」の組み合わせ • 例:”SOS” 「・・・➖➖➖・・・」 エンコード • 符号化…コード変換の一種。コンピューター 「65, 66, 67」(10進数) が扱いやすいように変換すること。 「100 0001, 100 0010, 100 0011」(2進数) • エンコード…一定の規則で他の表現に変換 すること。 • デコード…元の表現に戻すこと。 ↔︎ 15 ↔︎ デコード
点字はコード変換であり暗号ではない • 点字 • 視覚に障害のある人が指先で触れて読 1 4 み書きする文字(あるいは文字体系) 2 5 • 縦長の長方形に、点がある位置は3行2 3 6 列ある。 • 6点の凸があるかどうかの組み合わせ • 点字の例 • お=②(2の点)+④(4の点) • さ=①+⑤+⑥ • け=①+②+④+⑥ プルタブの近くに「おさけ」と点字で打ってある(*) *サントリーの「お客様センター」ページから引用 (https://www.suntory.co.jp/customer/faq/001705.html) 16
よく暗号の仲間として扱われるもの • コード変換を暗号ぽく使う。 • 書籍暗号、辞書暗号 • コードトーカー • ステガノグラフィー…通信文の存在を隠す技 術。 • あぶり出し、不可視インク • マイクロドット • 画像ファイルにテキスト情報を埋め込む 17 届いたハガキにブラックライトをあてると…
暗号化は暗号技術の一部 • 暗号=暗号化=秘密のメッセージを送ること • 暗号以外にも、暗号技術はいろいろある。 • 認証 • デジタル署名 • ハッシュ関数 • 鍵共有 18 暗号技術 暗号化
古典暗号と現代暗号 大雑把にはインターネット誕生の前後で区別できる • 暗号には、古典暗号と現代暗号がある。 • 古典暗号 • 歴史的な手法から発展した暗号 • 例:シーザー暗号、スキュタレー暗号、エニグ マ暗号など • 現代暗号 • コンピューター技術の進化に伴う暗号 • 例:RSA暗号、AES、量子暗号、耐量子暗号 19
古典暗号の用途 古典暗号は、暗号化の仕組みを隠すことが安全に直結する(隠蔽による安全) • 外交・軍事…敵への情報漏洩を防ぐため。 • 商業…取引の秘密を保持 • 暗号ミステリー…小説や映画などで謎解きの要素として利用 • 個人的なやり取り…恋文や日記でのプライバシー保護 • 宗教・文化的通信…特定のコミュニティ内での秘密の共有 • その他…殺人犯が残した暗号文(らしいメッセージ)、財宝の在処を隠した暗号文 20
現代暗号の用途 現代暗号は、どの暗号を使っているのかを公開しても安全 安全性は鍵に依存する • ネットワーク通信…データの秘密性と整合性を確保し、インターネット上で安全にデ ータをやり取りする • 決済処理…オンラインでの金融取引のセキュリティを保護 • 認証プロセス…ログイン情報の保護、デジタル署名による本人確認 21
暗号に対するネガティブな印象【再掲】 • 多種多様すぎる • 数学が必要 • 複雑すぎる • 難しい • 覚えることが多い • 学び方がわからない 22
本当に多種多様なのか? 「暗号化」と「それ以外」に分けてみよう ●暗号化 ・古典暗号 ・現代暗号 ・共通鍵暗号 ・公開鍵暗号 ●それ以外 ・認証 ・デジタル署名 ・ハッシュ関数 ・メッセージ認証コード たくさんの暗号用語 ・疑似乱数生成器 23 ・暗号プロトコル
本当に数学が必要なのか? 数式は置いておき、アルゴリズム(四角とその入出力)で考える n 鍵生成アルゴリズム RSA暗号 pk m 24 pk, sk sk c 暗号化アルゴリズム 復号アルゴリズム c m'
本当に複雑すぎるのか? アルゴリズム的に見ると両者は同一に見える n RSA暗号 n ElGamal暗号 鍵生成アルゴリズム 鍵生成アルゴリズム pk, sk pk, sk m pk m 暗号化アルゴリズム c c 暗号化アルゴリズム sk c 復号アルゴリズム m' pk c sk 復号アルゴリズム 25 m'
本当に難しいのか? n アルゴリズムの中は複雑だが、入出力はシンプル 鍵生成アルゴリズム m key key:鍵 key m:平文(plain text) c:暗号文(cipher text) 暗号化アルゴリズム c n:鍵の長さ c key m':復号結果 KeyGen:鍵生成アルゴリズム Enc:暗号化アルゴリズム 復号アルゴリズム m' Dec:復号アルゴリズム 26
暗号理論を図解で理解する
図で考える暗号 議論しやすくするためにモデル化する • 「いくつかの数式」(複雑) 「1つのアルゴリズム」(シンプル) • 相互変換できる。 • 「アルゴリズム=四角い」「矢印=入力と出力」 • アルゴリズムで注目すべき点は2つ • ①アルゴリズム(or その名前)とその入出力 • ②アルゴリズムの組み合わせ • アルゴリズムの内部処理はブラックボックスとしてOK • ここは専門家の研究成果(頭を悩ませて考えたところ)なので、難し いのは当たり前。 28 入力 アルゴリズム 出力
暗号化に登場するアルゴリズム 暗号化は3つのアルゴリズムの組み合わせ n m key c key KeyGen Enc Dec key c m' KeyGen:鍵生成アルゴリズム n:鍵の幅 m:平文(plain text) Enc:暗号化アルゴリズム (セキュリティパラメーターそのもの) c:暗号文(cipher text) Dec:復号アルゴリズム key:鍵 29 m':復号結果
暗号化におけるやり取り 送信者が受信者に暗号文を送ること=第三者に秘密が漏れないように、メッセージを暗号化して送りたい。 平文 伝えたいメッセージ m key 鍵は何らかの方法で 事前に共有する S key R S:送信者(Sender) R:受信者(Receiver) c 暗号文 メッセージを隠す m' 30 復号結果 m'はmと一致して欲しい
送受信者が3アルゴリズムをどう使っているか n m key m S key key KeyGen S:送信者(Sender) R key R:受信者(Receiver) Enc c key c c Dec m' m' 31
敵が登場するシナリオを考える m key key S R S:送信者(Sender) R:受信者(Receiver) c A:敵(Adversary) A m' mやkeyを特定したい mの一部分でもいいから知りたい m? or key? 32
暗号化が満たすべき性質 暗号化=正当性+秘匿性 • まずは「(安全な)暗号化は正当性と秘匿性を満たすもの」と覚える。 • 次に「正当性」と「秘匿性」を理解する。 • ①正当性…暗号文を復号すると、元に戻ること 正当性 秘匿性 • ②秘匿性…暗号文から平文の情報が漏れないこと • ここでは直感的な理解で十分。 • あとでもう少し詳しく説明する。 • 実のところ、(厳密な)秘匿性の理解は難しい。 33 両方を満たすもの でなければならない。
正当性と秘匿性の両立が難しい • (安全な)暗号化を設計するのが難しい理由 • ①正当性と秘匿性の両立 • ②安全と効率のバランス調整 • これらを解決するのが暗号設計者の腕の見せ所 34
ドアロックと暗号化は似ている • ドアロックでは • 鍵がなければ通れない。 • 鍵があれば通れる。 • これがカギの世界の理想形。 • 暗号の世界では • 鍵がなければ元のメッセージ(平文)がわからない。 • 鍵があれば元のメッセージに戻せる。 • これが暗号化の世界の理想形。 35
暗号化をドアロックに例えると… 平文を送ると、正当性を満たすが、秘匿性は満たさない • mのまま送れば、常に正当性が成り立つ。 m A 誰でも通れる m mがばれるので 秘匿性がない 36
暗号化をドアロックに例えると…(続) 乱数を送ると、正当性を満たさないが、秘匿性は満たす • 乱数を送ると、常に秘匿性が成り立つ。 r rにmの情報はまったく含まれない。 A 誰も通れない。 m??? mを山勘で当てるしかない。 37 壁
さらに、暗号化をドアロックに例えると… 鍵の有無で正当性と秘匿性を同時に満たす • 正しい鍵があれば復号できるが、なければ復号できない。 c ドア A 合鍵なしなら、通れない。 合鍵ありなら、通れる。 m??? keyなしなら、mを特定できない。 keyありなら、mに復号できる。 38
暗号を理解するためのアプローチ【振り返り】 • 捉え方を変える • シンプルに理解する • 基本は普遍的 • 全体像から把握する 39
暗号の魅力とロードマップ
一般ユーザーでも暗号は避けられない セキュリティにおける暗号の立ち位置 • サイバーセキュリティ • 脅威から情報を守るための重要な手段。 • デジタル社会の基盤 • オンライン取引やプライバシー保護に不可欠。 41
仕事か趣味か 趣味として暗号とつき合う道もある • 仕事 • 暗号研究者 • セキュリティエンジニア、セキュリティ専門家 • ソフトウェア開発者、暗号ライブラリー開発者 • 趣味 • 娯楽(マンガ、映画、小説、アニメ)としてのスパイス • パズルとして楽しむ。 42
副業という手もある 暗号が得意なら副業で稼げる(かもしれない)。 • ハッキングコンテスト、CTF • 上位入賞で賞金や賞品獲得。 • 実績は、就職・転職時にも有利に働く。 • 暗号解読コンテスト • 例:pCloudの暗号解読コンテスト(賞金10万ドル) • バグバウンティ(脆弱性報奨金制度) • 見つけた脆弱性(弱点のこと)を企業に報告することで謝礼を受け取れる仕組み。 • 脅威度によって報酬額が異なる。100 1,000ドル。重大であれば5千 10万ドル。 ~ ~ 43
古典暗号か現代暗号か 暗号の世界に飛び込むとして、どちらを選ぶか • 古典暗号を専門にする道 • トレジャーハンター…お宝探しで一攫千金。例:ビール暗号 • 歴史の研究家...未解読文書の解読。例:ヴォイニッチ手稿 • パズルクリエイター...「ナゾトキ」イベントや謎解き書籍の企画・監修。 • 現代暗号を専門にする道 • 現代暗号の研究家...理論設計・安全性証明・最適化を行う、純粋な研究者・数学者の道。もっとも現実的かつ 一般的。 • 暗号に強いセキュリティ専門家 or 暗号を使いこなすプロ…「暗号を正しく使いこなす」ことに特化した実務 家。セキュリティ設計・実装・運用を担当。 • バグハンター…ハッキングコンテストやバグバウンティへの参加。暗号に起因するバグがある。 44
理論か実装か 暗号研究者にも研究スタイルはいろいろある • リダクショニスト(Reductionist) • 暗号方式の安全性を数学的に証明しようとする立場。 • (数学的に)安全かつ効率的な暗号を作る。 • 暗号理論の安全性の定義や枠組みを研究する。 • 暗号解読志向 • 暗号方式の弱点を突くための攻撃手法やアルゴリズムの設計・改良を行う。 • 標準化志向 • 実際の製品・サービスへの適用や、国際標準(NIST、ISO等)への適合を意識して設計・ 評価する。 45
大学からか大学院からか 現代暗号を本格的に学ぶためにはどうするか • 大学(学部生)から • 数学系 or 情報系 • 暗号専門の先生のいる研究室を狙う。 • 暗号専門の先生でなくても、卒業研究に暗号ネタを選ぶという手もある。 • 大学院から • 「大学 大学院」であれば、少なくとも大学院では暗号の研究室に入る。 • 暗号に力を入れている大学院を狙う。 • 社会人になってから • 社会人学生を歓迎する大学院に行くという道もある。 • 会社や行政組織(例:外務省・防衛省)が学費を出してくれるケースもある。 • 【例外】企業等で暗号を研究。その成果が認められて、後に博士号というパターンがある。 46
暗号に興味を 持った方への参考資料 【おまけ】
古典暗号を楽しめる小説 • エドガー・アラン・ポーの『黄金虫』 • 江戸川乱歩の『二銭銅貨』 • 『ダ・ヴィンチ・コード』 ダン・ブラウン著(KADOKAWA刊) 48
万人向けの暗号入門本 • 『暗号解読』(新潮社刊) • 世界的ベストセラー。 • サイモン・シンの本に ハズレなし。 49
ご清聴 ありがとうございました
参考資料
敵にとって鍵を特定できることが最大の成果 攻撃者の視点で見た 価値ある成果の大小 • (c, m)から必ずしも keyを計算できるとは限らない。 c c A A • keyとcがあれば、完全なmに復号できる。 • 復号アルゴリズムを使うだけ。 > • なぜ鍵の特定が嬉しいのか? • 今後も同一の鍵が使われていれば、 以降の暗号文も復号できる。 52 key m 鍵の 平文の 解読成功 解読成功
正当性は暗号文から元の平文に戻ること m key • 同一の鍵を使えば、復号結果が元の平文と一致 するということ。 Enc • 正当性は次が成り立つこと • ① m'←Dec(c, key) c key • ② m'=m Dec • 以上を1つの数式にまとめると • Dec(Enc(m, key), key)=m c 53 m'
秘匿性は平文の情報が漏れないこと c • 式で表現するのはちょっと難しい。 • 例:シンプルにmを1ビットとする。 A • c=0 or 1 • Aはkeyを知らない。 • 適当にmを推測しても、1/2の確率で当たる。 • 敵がこうした推測ゲームを何度もした場合 m??? • 1/2より優位な確率で当てられる 敵は解読に成功 • そうならない 敵は暗号解読に失敗 暗号は安全 54 mの情報を得られなければ、 秘匿(安全)といえる