Slide 1

Slide 1 text

JEP 496 と JEP 497 から学ぶ 耐量子計算機暗号入門 2025-11-15 JJUG CCC 2025 Fall BABY JOB株式会社 浅野 正貴 (@mackey0225)

Slide 2

Slide 2 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 自己紹介 名前:浅野 正貴 所属:BABY JOB株式会社 最近は AWS やインフラがメイン X: @mackey0225 最近、情報処理安全確保支援士になりました

Slide 3

Slide 3 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 話の流れ ● JEP 496 と JEP 497 の概要 ○ 記載されている内容を中心に整理 ● 前提となる暗号技術についておさらい ○ 共通鍵暗号、公開鍵暗号、鍵共有、署名 など ● 耐量子計算機暗号入門 ○ 耐量子計算機暗号がなぜ必要なのか? ○ 耐量子計算機暗号の概要

Slide 4

Slide 4 text

JEP 496 と JEP 497 の概要

Slide 5

Slide 5 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/496

Slide 6

Slide 6 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/496

Slide 7

Slide 7 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/496 ざっくりいうと、 ● 量子計算機耐性のある ML-KEM の実装を提供した ● 鍵カプセル化メカニズム( KEM)は、公開鍵暗号を使って 安全でない通信路で秘密鍵を安全に扱うために使用される ● ML-KEM は NIST によって FIPS 203 で標準化されている

Slide 8

Slide 8 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/496

Slide 9

Slide 9 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/496 ざっくりいうと、 ● Shor のアルゴリズム で既存の公開鍵暗号が危殆化する ● スパコンで数千年かかる暗号解読が、量子計算機によって数 時間でできる可能性がある ● 攻撃者は現在から暗号化データを保存し、将来量子計算機で 解読する可能性がある(=HNDL攻撃 )ので、耐量子計算機 暗号への移行は急務である ● アメリカの機密情報を扱う政府システム今後10年で ML-KEM に移行する必要がある ● Java として、このアルゴリズムの実装提供が不可欠である

Slide 10

Slide 10 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/497

Slide 11

Slide 11 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/497

Slide 12

Slide 12 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/497 ざっくりいうと、 ● 量子計算機耐性のある ML-DSA の実装を提供した ● デジタル署名アルゴリズム (DSA) は、データの改ざんや 署名者の身元を認証するために使用される ● ML-DSA は NIST によって FIPS 204 で標準化されている

Slide 13

Slide 13 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/497

Slide 14

Slide 14 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 https://openjdk.org/jeps/497 ざっくりいうと、JEP 496 と同じこと書いているので、割愛!

Slide 15

Slide 15 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 まとめると... ● Shor のアルゴリズムによる公開鍵暗号の危殆化の懸念 ● 現時点でも HNDL 攻撃の脅威はある ● 耐量子計算機暗号への切り替えが求められている ● JEP 496 ○ 鍵カプセル化メカニズム ML-KEM の実装 ○ FIPS 203 と関連している ● JEP 497 ○ デジタル署名アルゴリズム ML-DSA の実装 ○ FIPS 204 と関連している

Slide 16

Slide 16 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 公開鍵暗号 共通鍵暗号 Shor のアルゴリズム 量子計算機 FIPS 203 FIPS 204 デジタル署名アルゴリズム 鍵カプセル化メカニズム HNDL 攻撃 格子暗号

Slide 17

Slide 17 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Shor のアルゴリズム 量子計算機 FIPS 203、FIPS 204 HNDL 攻撃 格子暗号 公開鍵暗号 共通鍵暗号 デジタル署名アルゴリズム 鍵カプセル化メカニズム

Slide 18

Slide 18 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Shor のアルゴリズム 量子計算機 FIPS 203、FIPS 204 HNDL 攻撃 格子暗号 基本となる話 耐量子計算機暗号入門 公開鍵暗号 共通鍵暗号 デジタル署名アルゴリズム 鍵カプセル化メカニズム

Slide 19

Slide 19 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Shor のアルゴリズム 量子計算機 FIPS 203、FIPS 204 HNDL 攻撃 格子暗号 基本となる話 耐量子計算機暗号入門 公開鍵暗号 共通鍵暗号 デジタル署名アルゴリズム 鍵カプセル化メカニズム

Slide 20

Slide 20 text

前提となる暗号技術について

Slide 21

Slide 21 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 小目次 ● そもそも、なぜ暗号が必要なのか ● 共通鍵暗号・公開鍵暗号・鍵共有・ハイブリッド暗号 ○ RSA暗号、ディフィーヘルマン鍵共有、楕円曲線暗号 ● 鍵カプセル化メカニズム(KEM) ● デジタル署名アルゴリズム(DSA)

Slide 22

Slide 22 text

そもそも、なぜ暗号が必要なのか

Slide 23

Slide 23 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 インターネット上の通信は誰が見ているか分からない

Slide 24

Slide 24 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 👍 インターネット上の通信は誰が見ているか分からない

Slide 25

Slide 25 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 👍 インターネット上の通信は誰が見ているか分からない

Slide 26

Slide 26 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 😏 👍 インターネット上の通信は誰が見ているか分からない

Slide 27

Slide 27 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 😏 👍 インターネット上の通信は誰が見ているか分からない 😭

Slide 28

Slide 28 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 インターネット上の通信は誰が見ているか分からない 😤

Slide 29

Slide 29 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 😭 👍 インターネット上の通信は誰が見ているか分からない

Slide 30

Slide 30 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 😭 👍 インターネット上の通信は誰が見ているか分からない 「盗聴」だけでなく 「改ざん」や「なりすまし」の可能性もある

Slide 31

Slide 31 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 😭 👍 インターネット上の通信は誰が見ているか分からない 「盗聴」だけでなく 「改ざん」や「なりすまし」の可能性もある サービスを提供する側だけでなく ユーザーを守る上でもセキュリティは重要

Slide 32

Slide 32 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 情報セキュリティの3要素(CIA) セキュリティ要件を検討する際に重要な観点 ● 機密性:認可された人だけアクセスできること ● 完全性:情報が改ざんされていないことを保証すること ● 可用性:必要なときにいつでも利用可能な状態にすること

Slide 33

Slide 33 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 情報セキュリティの3要素(CIA) セキュリティ要件を検討する際に重要な観点 ● 機密性:認可された人だけアクセスできること ● 完全性:情報が改ざんされていないことを保証すること ● 可用性:必要なときにいつでも利用可能な状態にすること 上記に加えて、真正性、信頼性、責任追跡性、否認防⽌を含 めた7要素で考えることでより網羅的に検討できる

Slide 34

Slide 34 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 情報セキュリティの3要素(CIA) セキュリティ要件を検討する際に重要な観点 ● 機密性:認可された人だけアクセスできること ● 完全性:情報が 改ざんされていないことを保証すること ● 可用性:必要なときにいつでも利用可能な状態にすること 上記に加えて、真正性、信頼性、責任追跡性、否認防⽌を含 めた7要素で考えることでより網羅的に検討できる 今日の話のメインは 「機密性」と「完全性」です

Slide 35

Slide 35 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 機密性 😏 許可された人だけアクセスできるようにする

Slide 36

Slide 36 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 機密性 😣 許可された人だけアクセスできるようにする

Slide 37

Slide 37 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 機密性 😭 👍 許可された人だけアクセスできるようにする

Slide 38

Slide 38 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 😏 情報が改ざんされていないことを保証すること

Slide 39

Slide 39 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 😏 情報が改ざんされていないことを保証すること

Slide 40

Slide 40 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 ✏ 情報が改ざんされていないことを保証すること

Slide 41

Slide 41 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 ✏ 情報が改ざんされていないことを保証すること

Slide 42

Slide 42 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 😏 情報が改ざんされていないことを保証すること

Slide 43

Slide 43 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 😏 情報が改ざんされていないことを保証すること 🧐

Slide 44

Slide 44 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 😏 情報が改ざんされていないことを保証すること 🧐

Slide 45

Slide 45 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 完全性 😭 情報が改ざんされていないことを保証すること 🧐

Slide 46

Slide 46 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 具体的な実現方法 ● 共通鍵暗号 ● 公開鍵暗号 ● 鍵共有 ● ハイブリッド暗号(KEM・DEM) ● デジタル署名アルゴリズム(DSA) ● メッセージ認証コード(MAC) ● ハッシュ関数  など

Slide 47

Slide 47 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 余談:暗号技術の歴史 ● 暗号技術は古くからある ○ 紀元前5世紀ごろ:スキュタレー暗号(転置式暗号) ○ 紀元前1世紀ごろ:シーザー暗号(換字式暗号) ○ 第二次世界大戦のドイツ軍の「エニグマ」 ● 戦時中で遠隔地の味方への情報伝達に利用 ○ 敵に暗号文を盗まれても内容がバレない

Slide 48

Slide 48 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:スキュタレー暗号 CC 表示-継承 3.0, https://commons.wikimedia.org/w/index.php?curid=1698345

Slide 49

Slide 49 text

共通鍵暗号

Slide 50

Slide 50 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 共通鍵暗号(特徴) ● 暗号化と復号で同じ共通鍵を使用 ● 以下の2つに分類される ○ ストリーム暗号:ChaCha20 ○ ブロック暗号:DES(非推奨), AES ● 公開鍵暗号に比べると計算コストが小さい ● 共通鍵をどのように共有するか(鍵配送問題) ● 通信相手が増えると管理コストが大きい

Slide 51

Slide 51 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 共通鍵暗号(大まかな流れ) Alice(送信者)とBob(受信者)間で同じ共通鍵を準備する 共通鍵 共通鍵 Alice Bob

Slide 52

Slide 52 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Aliceが共通鍵で平文を暗号化し、暗号文を生成 暗号化 Alice Bob 共通鍵暗号(大まかな流れ) 共通鍵 共通鍵

Slide 53

Slide 53 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 暗号文をBobに送信 暗号化 Alice Bob 共通鍵暗号(大まかな流れ) 共通鍵 共通鍵

Slide 54

Slide 54 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 共通鍵暗号(大まかな流れ) Bobが共通鍵で復号し、平文を作成する 暗号化 復号 Alice Bob 👍 共通鍵 共通鍵

Slide 55

Slide 55 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 盗聴者(Eve)に暗号文が見られても 平文の内容を把握できない 暗号化 復号 Alice Bob Eve 👀 共通鍵暗号(大まかな流れ) 共通鍵 共通鍵

Slide 56

Slide 56 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 共通鍵暗号 「鍵配送問題」 生成した共通鍵をどのように共有すればいい? Alice Bob 🤨 🤨 😏 共通鍵暗号(鍵配送問題) 共通鍵 共通鍵

Slide 57

Slide 57 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 「鍵配送問題」 生成した共通鍵をどのように共有すればいい? 秘密鍵 秘密鍵 Alice Bob 🤨 🤨 😏 「公開鍵暗号」と「鍵共有」を用いて解消 共通鍵暗号 共通鍵暗号(鍵配送問題)

Slide 58

Slide 58 text

公開鍵暗号

Slide 59

Slide 59 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 公開鍵暗号(特徴) ● 公開鍵と秘密鍵のペアで管理 ○ 公開鍵:みんなに配ってOK、暗号化に使う ○ 秘密鍵:厳重に保管し、復号に使う ● ここでの「公開鍵暗号」はPKE(Public Key Encryption)のこと ○ 鍵共有、デジタル署名でも公開鍵暗号が出てくるがPKEと は違いPKC(Public Key Cryptgraphy)を指す ○ PKEはPKCの一要素 ● PKEの代表的なのは、RSA暗号、ElGamal暗号がある ● 共通鍵暗号に比べると計算コストが大きい

Slide 60

Slide 60 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 公開鍵暗号(大まかな流れ) 受信者(Bob)側で公開鍵と秘密鍵を生成する 秘密鍵 Alice Bob 公開鍵

Slide 61

Slide 61 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 公開鍵を送信者(Alice)側に共有する 秘密鍵 Alice Bob 公開鍵 公開鍵暗号(大まかな流れ)

Slide 62

Slide 62 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Aliceは公開鍵で暗号化し送信 Bobは受け取った暗号文を秘密鍵で復号する 秘密鍵 Alice Bob 公開鍵 暗号化 復号 公開鍵暗号(大まかな流れ)

Slide 63

Slide 63 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 公開鍵暗号(大まかな流れ) 公開鍵は不特定多数に配布できるので 相手ごとの鍵管理はいらない 秘密鍵 Alice Bob 公開鍵 暗号化 復号

Slide 64

Slide 64 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ● 1977年に Rivest, Shamir, Adleman の3名によって発明 ○ それ以前にイギリス GCHQ のメンバーが考案した説もある ● 大きな素数の合成数の素因数分解の困難性を利用 ● フェルマーの小定理やユークリッド互除法が必要 ● RSA暗号をそのまま使うことはない(RSA-OAEPを使う) ○ ハッシュ関数や乱数を組み合わせたものを使う ○ 同じ平文に対していつも同じ暗号文になってしまう RSA暗号(概要)

Slide 65

Slide 65 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 公開鍵と秘密鍵をどう作るか 1. 素数 p, q を決めて、p × q を n とする 2. 整数を1つ選び e とする (通常は e=65537 とすることが多い) 3. d を d × e を (p-1)(q-1) で割った余りが 1 となるように 選ぶ この時の n と e の2つが公開鍵、d が秘密鍵となる RSA暗号(ちょっぴり数学)

Slide 66

Slide 66 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 平文 m としたとき、暗号化は以下とする。 Enc(m)=m^e mod n 暗号文 c に対して、復号は以下とする。 Dec(c)=c^d mod n RSA暗号(ちょっぴり数学)

Slide 67

Slide 67 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 簡単な計算 ● p=3、q=5とすると、n=15 ● e=7 とする ● 7 × d が 8 で割ると 1 余るように決めると d=7 平文m=2を暗号化すると Enc(m)=2^7 mod 15 = 8 となる 暗号文c=8を復号すると Dec(c)=8^7 mod 15 = 2 となる RSA暗号(ちょっぴり数学)

Slide 68

Slide 68 text

鍵共有

Slide 69

Slide 69 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 鍵共有(特徴) ● 事前の秘密の共有無しに、安全でない通信路を使って鍵の 共有を可能にする ● 主にDH鍵共有や楕円曲線DH鍵共有が使われている ● 中間者攻撃に弱い 今回のJEPに関する話ではなく、Shor のアルゴリズムに影響 を受けるものなので取り上げた

Slide 70

Slide 70 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 鍵共有(大まかな流れ) Alice、Bob それぞれで公開鍵と秘密鍵のペアを生成する 秘密鍵A 秘密鍵B Alice Bob 公開鍵B 公開鍵A

Slide 71

Slide 71 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 鍵共有(大まかな流れ) 秘密鍵A 秘密鍵B Alice Bob 公開鍵B 公開鍵A それぞれの公開鍵を交換する

Slide 72

Slide 72 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 鍵共有(大まかな流れ) それぞれの公開鍵を交換する 秘密鍵A 秘密鍵B Alice Bob 公開鍵B 公開鍵A

Slide 73

Slide 73 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 自分の秘密鍵と相手の公開鍵を使って共通鍵を生成する 秘密鍵A 秘密鍵B Alice Bob 公開鍵B 公開鍵A 共通鍵 共通鍵 鍵共有(大まかな流れ)

Slide 74

Slide 74 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 自分の秘密鍵と相手の公開鍵を使って共通鍵を生成する →この鍵が同じ鍵となるので共通鍵暗号の共通鍵として利用 秘密鍵A 秘密鍵B Alice Bob 公開鍵B 公開鍵A 共通鍵 共通鍵 同じ 鍵共有(大まかな流れ)

Slide 75

Slide 75 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice、Bobの間で公開データ(数値) p と g を決める (※p, g の厳密な条件は割愛) Alice Bob 公開データ:p, g

Slide 76

Slide 76 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice、Bobのそれぞれで秘密鍵となる整数を決める Alice Bob 公開データ:p, g 秘密鍵A:a 秘密鍵B:b

Slide 77

Slide 77 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ:p, g 秘密鍵A:a 公開鍵A:A:=g^a mod p 秘密鍵B:b 公開鍵B:B:=g^b mod p 公開データと秘密鍵から公開鍵を求める

Slide 78

Slide 78 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ:p, g 秘密鍵A:a 公開鍵A:A:=g^a mod p 秘密鍵B:b 公開鍵B:B:=g^b mod p K_B:=A^b mod p K_A:=B^a mod p 自分の秘密鍵と相手の公開鍵を使って、計算する

Slide 79

Slide 79 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) このそれぞれのK_AとK_Bが同じ値になる →共通鍵暗号の共通鍵として利用 Alice Bob 公開データ:p, g 秘密鍵A:a 公開鍵A:A:=g^a mod p 秘密鍵B:b 公開鍵B:B:=g^b mod p K_B:=A^b mod p K_A:=B^a mod p 共通鍵:K=K_A=K_B

Slide 80

Slide 80 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) 仮に、p, g, A, B が知られても、K を容易には求められない (多項式時間では解く方法が現状ない) Alice Bob 公開データ:p, g 秘密鍵A:a 公開鍵A:A:=g^a mod p 秘密鍵B:b 公開鍵B:B:=g^b mod p K_B:=A^b mod p K_A:=B^a mod p 共通鍵:K=K_A=K_B Eve

Slide 81

Slide 81 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ:p, g 秘密鍵A:a 公開鍵A:A:=g^a mod p 秘密鍵B:b 公開鍵B:B:=g^b mod p K_B:=A^b mod p K_A:=B^a mod p 共通鍵:K=K_A=K_B

Slide 82

Slide 82 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ p=11, g=3 秘密鍵A:a 公開鍵A:A:=g^a mod p 秘密鍵B:b 公開鍵B:B:=g^b mod p K_B:=A^b mod p K_A:=B^a mod p 共通鍵:K=K_A=K_B

Slide 83

Slide 83 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ p=11, g=3 秘密鍵A:a=4 公開鍵A:A:=g^a mod p 秘密鍵B:b=5 公開鍵B:B:=g^b mod p K_B:=A^b mod p K_A:=B^a mod p 共通鍵:K=K_A=K_B

Slide 84

Slide 84 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ p=11, g=3 秘密鍵A:a=4 秘密鍵B:b=5 K_B:=A^b mod p K_A:=B^a mod p 公開鍵A:A:=3^4 mod 11 →A=4 mod 11 公開鍵B:B:=3^5 mod 11 →B=1 mod 11 共通鍵:K=K_A=K_B

Slide 85

Slide 85 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ p=11, g=3 秘密鍵A:a=4 秘密鍵B:b=5 K_B:=4^5 mod 11 →K_B=1 mod 11 K_A:=1^4 mod 11 →K_A=1 mod 11 公開鍵A:A:=3^4 mod 11 →A=4 mod 11 公開鍵B:B:=3^5 mod 11 →B=1 mod 11 共通鍵:K=K_A=K_B

Slide 86

Slide 86 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ディフィー・ヘルマン鍵共有(ちょこっと数学) Alice Bob 公開データ p=11, g=3 秘密鍵A:a=4 秘密鍵B:b=5 K_B:=4^5 mod 11 →K_B=1 mod 11 K_A:=1^4 mod 11 →K_A=1 mod 11 共通鍵:K=1 mod 11 公開鍵A:A:=3^4 mod 11 →A=4 mod 11 公開鍵B:B:=3^5 mod 11 →B=1 mod 11

Slide 87

Slide 87 text

ハイブリッド暗号

Slide 88

Slide 88 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ハイブリッド暗号 ● 共通鍵暗号と公開鍵暗号のいいとこどり ● 公開鍵暗号の計算コストが抑えられる ● ハイブリッド暗号は KEM と DEM で構成している ○ KEM:鍵カプセル化メカニズム ○ DEM:データカプセル化メカニズム

Slide 89

Slide 89 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 受信者(Bob)が公開鍵と秘密鍵のペアを生成する 秘密鍵 Alice Bob 公開鍵 ハイブリッド暗号(大まかな流れ)

Slide 90

Slide 90 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 送信者(Alice)が共通鍵を生成する 秘密鍵 Alice Bob 公開鍵 共通鍵 ハイブリッド暗号(大まかな流れ)

Slide 91

Slide 91 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Aliceが共通鍵を使って送信文を暗号化する 秘密鍵 Alice Bob 公開鍵 共通鍵 暗号化 ハイブリッド暗号(大まかな流れ)

Slide 92

Slide 92 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 AliceがBobの公開鍵を使って共通鍵を暗号化する 秘密鍵 Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 ハイブリッド暗号(大まかな流れ)

Slide 93

Slide 93 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Aliceが暗号化した共通鍵と送信文をBobに送信 秘密鍵 Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 共通鍵 ハイブリッド暗号(大まかな流れ)

Slide 94

Slide 94 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Bobは秘密鍵で暗号化した共通鍵を復号する Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 共通鍵 秘密鍵 共通鍵 復号 ハイブリッド暗号(大まかな流れ)

Slide 95

Slide 95 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Bobは復号した共通鍵で暗号化された送信文を復号する Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 共通鍵 秘密鍵 共通鍵 復号 復号 ハイブリッド暗号(大まかな流れ)

Slide 96

Slide 96 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ハイブリッド暗号(大まかな流れ) 以降は、共通鍵を用いて安全な通信ができる Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 共通鍵 秘密鍵 共通鍵 復号 復号

Slide 97

Slide 97 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 KEM と DEM の大まかなイメージ Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 共通鍵 秘密鍵 共通鍵 復号 復号

Slide 98

Slide 98 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 KEM と DEM の大まかなイメージ Alice Bob 共通鍵 暗号化 暗号化 公開鍵 共通鍵 共通鍵 秘密鍵 共通鍵 復号 復号 KEM DEM

Slide 99

Slide 99 text

デジタル署名アルゴリズム

Slide 100

Slide 100 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 デジタル署名アルゴリズム(特徴) ● メッセージやデータの完全性を示す ● 署名鍵と検証鍵のペアを生成して行う ○ 公開鍵暗号でいうとそれぞれ秘密鍵と公開鍵にあたる ○ ただし、暗号化・復号と違うことに注意 ● メッセージ認証コード(MAC)は共通鍵暗号に相当する ● 楕円曲線を用いた ECDSA やエドワーズ曲線を用いた EdDSA が例としてある

Slide 101

Slide 101 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Aliceが署名鍵と検証鍵のペアを生成する 署名鍵 Alice Bob 検証鍵 デジタル署名アルゴリズム(大まかな流れ)

Slide 102

Slide 102 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Aliceが生成した署名鍵を使ってデータから署名を作成する 署名鍵 Alice Bob 検証鍵 署名 データ 署名 デジタル署名アルゴリズム(大まかな流れ)

Slide 103

Slide 103 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 デジタル署名アルゴリズム(大まかな流れ) データと署名をBobに共有する 署名鍵 Alice Bob 検証鍵 署名 データ 署名 データ 署名

Slide 104

Slide 104 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Bobが検証鍵を使って検証を行う 署名鍵 Alice Bob 検証鍵 署名 データ 署名 データ 署名 受理 or 拒否 検証 デジタル署名アルゴリズム(大まかな流れ)

Slide 105

Slide 105 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 Bobが検証鍵を使って検証を行う →正しい署名であれば受理、不正な署名であれば拒否 署名鍵 Alice Bob 検証鍵 署名 データ 署名 データ 署名 受理 or 拒否 検証 デジタル署名アルゴリズム(大まかな流れ)

Slide 106

Slide 106 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:暗号技術の分類 光成滋生著.図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書.技術評論社.2021,p.168 に掲載されている図を参考に作成 ECDH鍵共有 DH鍵共有 ECDSA、EdDSA DSA 楕円ElGamal暗号 RSA暗号、ElGamal暗号 AES、ChaCha20 HMAC、CMAC SHA-2、SHA-3 公開鍵暗号 PKC 楕円曲線暗号 ECC 鍵共有 署名 公開鍵暗号 PKE ハッシュ関数 共通鍵暗号 MAC

Slide 107

Slide 107 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:楕円曲線暗号 ● 楕円曲線という平面曲線上の点同士の足し算の性質を使っ たもの ○ 楕円曲線というけど、楕円の形は関係ない ○ y^2 = x^3 + ax + b の形式で表される曲線 ● 点 P に対して、2P = P + P 、abP = baP ○ DH鍵共有の例として、aP, bP から abP が導出困難で あることを利用している

Slide 108

Slide 108 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:楕円曲線暗号 引用元: https://commons.wikimedia.org/w/index.php?curid=3553836

Slide 109

Slide 109 text

耐量子計算機暗号入門

Slide 110

Slide 110 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 小目次 ● 耐量子計算機暗号とは ● 耐量子計算機暗号がなぜ必要なのか? ● 耐量子計算機暗号の代表例

Slide 111

Slide 111 text

耐量子計算機暗号とは

Slide 112

Slide 112 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 耐量子計算機暗号とは 一言で言うと、 大規模な量子計算機が実現したとしても 安全性が損なわれない暗号技術の総称

Slide 113

Slide 113 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:量子計算機とは ● 量子の性質を利用して計算を行う計算機 ○ 粒子性と波動性、重ね合わせの原理とか ● 一般に以下の2種類がある ○ ゲート方式 ■ 一般的にはこっちを指すことが多い ○ アニーリング方式 ■ 組み合わせ最適化に特化している(汎用化も可)

Slide 114

Slide 114 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 有名な量子アルゴリズム 従来の計算機にくらべて計算量が小さくなる ● Deutsch(1985)、Deutsch - Jozsa(1992) ○ 実用性は低いが、量子計算機の特性が現れている ● Shor(1994) ○ 素因数分解を多項式時間で解くことが可能になる ● Grover(1996) ○ 探索問題でO(N)→O (N ^(1/2))になる

Slide 115

Slide 115 text

耐量子計算機暗号がなぜ必要なのか?

Slide 116

Slide 116 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 耐量子計算機暗号がなぜ必要なのか? ● 計算量的困難性の下に安全が保証されている ○ 解くのが難しい・莫大な時間がかかるからOK ○ (「技術的には可能です!」に近い) ● 広く使われている暗号技術は「素因数分解」と「離散対数 問題」の計算量的困難性に基づいている ○ RSA暗号、ElGamal暗号、楕円曲線暗号

Slide 117

Slide 117 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ● Shor のアルゴリズムによって「素因数分解」と「離散対 数問題」が多項式時間で解かれる ● 現状、大規模な実用化された量子計算機がない ○ まだ大丈夫?慌てる時間じゃない? ○ とはいえ、2030年ごろって言われている ● Harvest Now, Decrypt Later 攻撃 ○ 暗号化データを集めて、将来的に解読される 耐量子計算機暗号がなぜ必要なのか?

Slide 118

Slide 118 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ● なので、耐量子計算機暗号への切り替えが急務とされる ● 金融庁もこんなこと言っている https://www.nikkei.com/article/DGXZQOUB044OX0U5A400C2000000/ 耐量子計算機暗号がなぜ必要なのか?

Slide 119

Slide 119 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 NIST FIPS標準について ● アメリカ国立標準技術研究所(NIST)が2016年からPQC の標準化の検討を開始 ● 2024年8月に連邦情報処理標準(FIPS)として3つが決 まった(次項)

Slide 120

Slide 120 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 NIST FIPS標準について ● FIPS 203 ○ ML-KEM(Module-Lattice-Based Key-Encapsulation Mechanism) ○ 格子暗号の鍵交換アルゴリズムのCRYSTALS-Kyberがベース ● FIPS 204 ○ ML-DSA(Module-Lattice-Based Digital Signature Algorithm) ○ 格子暗号の電子署名アルゴリズムのCRYSTALS-Dilithiumがベース ● FIPS 205 ○ SLH-DSA(Stateless Hash-Based Digital Signature Algorithm ○ ハッシュ関数の電子署名アルゴリズムのSPHINCS+がベース ○ ML-DSAが脆弱であると判明した場合のバックアップ

Slide 121

Slide 121 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 余談:身近なところに PQC が使われている 一部のサイトではもう ML-KEM が使われていたりするよ

Slide 122

Slide 122 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 余談:身近なところに PQC が使われている 一部のサイトではもう ML-KEM が使われていたりするよ

Slide 123

Slide 123 text

耐量子計算機暗号の代表例

Slide 124

Slide 124 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 耐量子計算機暗号の代表例 ● 符号暗号 ● ハッシュ関数署名 ● 多変数多項式暗号 ● 格子暗号 ● 同種写像暗号

Slide 125

Slide 125 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 符号暗号 ● 1970年代後半から提案されている ● 誤り訂正符号に関する以下の計算の困難性に依存 ○ シンドローム復号(Syndrome Decoding: SD)問題 ○ Learning Parity with Noise(LPN)問題

Slide 126

Slide 126 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 ハッシュ関数署名 ● 1970年代末・1980年代前半から提案されている ● ハッシュ関数の衝突困難性を安全性の根拠とする署名 ● ハッシュ関数署名 XMSS(eXtend Merkle Signature Scheme)がすでに IETF により RFC8391 で標準化済み ● FIPS 205 にて SLH-DSA が標準化済み

Slide 127

Slide 127 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:FIPS 205 https://csrc.nist.gov/pubs/fips/205/final

Slide 128

Slide 128 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 多変数多項式暗号 ● 1980年代前半から提案されている ● 多変数多項式の求解問題(Mulivariate Quadratic polynomial (MQ問題))の困難性を暗号に活用 ● 初期の方式は日本人(松本勉氏、今井秀樹氏)が発案

Slide 129

Slide 129 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 同種写像暗号 ● 1990年代後半ごろから提案されている ● 同種写像は2つの楕円曲線の間の写像(対応)のこと ● 点の数が等しい二つの(超特異)楕円曲線の間の同種写像 を見つける問題の困難性を用いた暗号

Slide 130

Slide 130 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 格子暗号 ● 1990年代後半から提案されている ● ノイズ項がついた連立一次方程式の解を求めることの困難 性(LWE(Learning with Errors)問題)を用いた暗号 ● FIPS 203 にて ML-KEM が標準化された ● FIPS 204 にて ML-DSA が標準化された

Slide 131

Slide 131 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:CRYPTRECシンポジウム2025 資料より引 用 引用元: https://www.cryptrec.go.jp/symposium/2025_cryptrec-eval.pdf

Slide 132

Slide 132 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 参考:CRYPTREC 暗号技術ガイドライン https://www.cryptrec.go.jp/tech_guidelines.html

Slide 133

Slide 133 text

JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 まとめ ● JEP 496, JEP 497 はそれぞれ FIPS 203, FIPS 204 の Java への実装提供 ● 現在使われている暗号技術は危殆化する可能性がある ● 耐量子計算機暗号への切り替えは可及速やかに対応すべき ○ 各クラウドベンダーの対応状況やパフォーマンス影響も確 認しながら進める ● 切り替えれば安心というわけではない ○ 技術の進歩にともなって新たな脅威は出てくる

Slide 134

Slide 134 text

ご清聴いただき ありがとうございました