暗号論 (Cryptography)
現代社会の信頼を支える「暗号技術」を、直感や経験に頼る「芸術」から、数学的基盤に基づく「科学」へと昇華させ、厳密な安全性証明の観点から深く学びます。
Course Resources & Labs
シラバス及び講義スライド、演習問題、過去問は、都立大のKibacoから資料をダウンロードしてください。以下は、講義で扱うアルゴリズムの実装コードおよび、ブラウザ上で動作を確認できるソースコード一式です。プログラミング課題は中間試験・期末試験に出題しません。あくまで自己学習のためです。
ソースコードを実行する場合、以下のコマンドをターミナルで実行して演習用リポジトリを複製し、環境を整えてください。アルゴリズムを正確になぞることも、技術者の重要な素養の一つです。
# 1. リポジトリのクローン(複製) $ git clone https://github.com/kazuyasakai/sakailab-crypt.git $ cd sakailab-crypt # 2. Python 仮想環境の構築とライブラリ導入 $ python3 -m venv .venv $ source .venv/bin/activate $ pip install -r requirements.txt
Note: Windows環境で source がエラーになる場合は .venv\Scripts\activate を実行すること。
Course Overview
古典暗号論
シーザー暗号からエニグマまで。歴史的な暗号方式の構造と、全探索や頻度分析による解読手法を学びます。
現代暗号論
数学的原理に基づくパラダイムシフト。計算量的安全性の定義と、証明可能安全性の基礎理論を修得します。
完全秘匿暗号
シャノンの定理と情報論的安全性。ワンタイムパッドの理論的優位性と、実用上の限界を理解します。
秘密鍵暗号
ストリーム暗号(PRG)からブロック暗号(AES)まで。CBCやCTRなど各モードの安全性と特性を比較します。
メッセージ認証
真正性と完全性の保証。MACスキーム、ハッシュ関数、および認証付き暗号(AEAD)の構成を学びます。
公開鍵暗号
数論的困難性を利用したRSA暗号やデジタル署名。鍵配布問題の解決と、信頼の基盤となる数学を詳解します。
Lecture Notes: 暗号理論が描くロマンス
彼は彼女の心を開くために、毎日違うアプローチ(鍵)を試しました。
1日目は花、2日目は詩、3日目は高級車……。
ついに100日目、彼女は「もう来ないで」とドアを閉めました。
彼は嘆きました。
「古典暗号と同じだ。鍵の空間(Key Space)をすべて試した頃には、相手の有効期限(Expiration)が切れているんだ。」
暗号学者がバーで出会った女性と、完璧に秘匿された一夜(Perfect Secrecy)を過ごしました。
翌朝、彼女が「また会える?」と聞くと、彼はプロフェッショナルな顔で首を振りました。
「無理だよ。One-time pad のルールを忘れたのかい?
最高の機密性を保つには、同じ鍵(夜)を二度と使ってはいけないんだ。
もし明日も君に会ったら、僕たちの関係はただのストリーム暗号に成り下がってしまう(Reuse attack)からね。」
ストリーム暗号のような夫婦がいました。
彼らは互いに同期(Synchronization)している間は完璧な会話を楽しめましたが、
ある日、夫が妻の誕生日の日付を1日読み飛ばしてしまいました。
それ以来、夫が何を言っても妻には意味不明なノイズ(Garbage)にしか聞こえなくなりました。
一度ビットがずれたら、二度と元の会話(平文)には戻れないのです。
夫が毎日、同じ時間に「ただいま」と言い、同じ時間に「ビール」と言います。
妻はついに爆発しました。
「あなたの行動は ECB モードそのものよ!
毎日同じ入力に対して同じ出力しか返さないから、中身を見なくても次に何を言うかバレバレだわ。
たまにはランダムな初期化ベクトル(IV)を導入して、私の予測を裏切ってみたらどうなの?」
浮気を疑われた男が、自分のスマホの全メッセージに MAC を付与して彼女に渡しました。
「ほら、これで内容が改ざんされていないことが証明できるだろう?」
彼女はスマホを投げ返しました。
「問題はデータの完全性(Integrity)じゃないわ。
あなたの『秘密鍵』を誰が共有しているか(Shared Key)よ!」
彼は過去の過ちを悔い、彼女に「やり直したい」と乞いました。
彼女は冷たく答えました。
「愛はハッシュ関数(One-way function)のようなものよ。
一度出力された結果(別れ)から、元の入力(出会った頃の気持ち)を逆算(Pre-image attack)することなんて、現代のコンピュータをすべて使っても不可能なの。」
「僕の愛は公開鍵だ、誰にでもオープンだよ」と豪語していた男が、離婚を切り出されました。
理由を聞くと、妻は言いました。
「あなたの公開鍵は立派だけど、私の心を開くための秘密鍵(Private Key)をどこかに紛失しちゃったみたい。
もう二度と、あなたとの対話プロトコルは成立しないわ。」