暗号
1 / 13
暗号 (p.64)
第三者には意味が分からないようにデータを変換するための方法 (または、
変換されたデータ) のこと
2 / 13
暗号の安全性
暗号はいつか必ず破られる (ただの「時間稼ぎ」)
∵ どんな暗号でも brute-force attack(総当たり攻撃) が可能
⇨ 暗号の安全性は「どれだけ長く攻撃に耐えられるか」で決まる
暗号が脆弱になる要因
• より効率的な攻撃方法が見つかる
• コンピュータの計算速度が向上する
3 / 13
共通鍵暗号 (p.66)
暗号化と復号を共通の鍵で行う暗号
暗号化(encrypt)
復号(decrypt)
(× 復号化)
ひらぶん
平文 暗号文
鍵
(key)
4 / 13
共通鍵暗号による通信
Alice: 送信側, Bob: 受信側
Alice Bob
暗号化 復号
5 / 13
鍵配送問題
共通鍵暗号では、鍵を事前に安全に相手に渡す手段がない
Alice Bob
How to deliver Alice's key to Bob?
6 / 13
逆関数
関数 f の定義域に含まれるすべての x に対して、g(f (x)) = x が成り立つと
き、g を f の逆関数という
関数の分類
1 逆関数があるもの (可逆)
例: 掛け算と、割り算
2 逆関数がないもの (非可逆)
例: 2 で割った余り
7 / 13
逆関数
関数 f の定義域に含まれるすべての x に対して、g(f (x)) = x が成り立つと
き、g を f の逆関数という
関数の分類
1 逆関数があり、簡単に戻せるもの
例: 掛け算と、割り算
2 逆関数があるが、簡単には戻せないもの
例: 素数の積と、素因数分解
3 逆関数がないもの (非可逆)
例: 2 で割った余り
8 / 13
公開鍵暗号 (p.66)
対になる 2 つの鍵 (秘密鍵と公開鍵) からなる暗号
暗号化(encrypt)
復号(decrypt)
秘密鍵
(private key)
ひらぶん
平文 暗号文
公開鍵
(public key)
9 / 13
公開鍵暗号による通信
Alice: 送信側, Bob: 受信側
• メッセージを送るときは、相手の公開鍵で暗号化
• メッセージを受け取ったときは、自分の秘密鍵で復号
Alice Bob
暗号化 復号
Bobの公開鍵
10 / 13
ディジタル署名 (p.67)
データが「署名者から送られていること」「改
ざん
竄されていないこと」を保証
• 署名するときは、自分の秘密鍵で暗号化
• 署名を検証するときは、相手の公開鍵で復号
署名(sign)
検証(validate)
秘密鍵
(private key)ひらぶん
平文 暗号文
公開鍵
(public key)
11 / 13
まとめ
• 暗号はいつか必ず破られる!
• 共通鍵暗号: 暗号化と復号に同じ鍵を用いる
• 公開鍵暗号: 暗号化と復号に別の鍵を用いる
• 公開鍵暗号 (のうち RSA 暗号) は、素因数分解の困難さを利用する
• 公開鍵暗号を応用すれば、誰が作ったデータかを署名することが可能
12 / 13
Reference I
acspike. Clipart - male user icon. url:
https://openclipart.org/detail/4749/male-user-icon-by-acspike.
dagobert83. Clipart - female user icon. url:
https://openclipart.org/detail/1646/female-user-icon-by-dagobert83.
Greg Goebel. British Codebreakers In World War II - Vectors. url:
http://www.vectorsite.net/ttcode_08.html.
KDE. Oxygen Icons. url: http://www.kde.org.
13 / 13

暗号