Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
量子暗号
Search
yubessy
October 03, 2017
Technology
0
210
量子暗号
※社内勉強会用資料です
yubessy
October 03, 2017
Tweet
Share
More Decks by yubessy
See All by yubessy
DDIA (Designing Data-Intensive Applications) はいいぞ
yubessy
0
1.3k
Introduction to CircleCI
yubessy
1
100
Docker Hands-on
yubessy
0
95
Resource Polymorphism
yubessy
0
270
不動点コンビネータ?
yubessy
0
260
とりあえず機械学習したかった
yubessy
0
320
Scala Native
yubessy
0
210
Type Erasure と Reflection のはなし
yubessy
1
430
5分ちょいでわかった気になるラムダアーキテクチャ
yubessy
0
2.2k
Other Decks in Technology
See All in Technology
ホワイトボードチャレンジ 説明&実行資料
ichimichi
0
120
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
2.9k
Culture Deck
optfit
0
390
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
6.8k
The Future of SEO: The Impact of AI on Search
badams
0
160
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.2k
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
290
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
320
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
230
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.6k
サーバーレスアーキテクチャと生成AIの融合 / Serverless Meets Generative AI
_kensh
12
3.1k
プロセス改善による品質向上事例
tomasagi
2
2.2k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building Applications with DynamoDB
mza
93
6.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Transcript
量子暗号 @yubessy 0x64 物語 Reboot #07 " セキュリティ・ 暗号・ 電子認証"
yubessy #10 0x64 #08 - #10 0x64 Reboot #01 -
#07 ← today!
量子論 - https://ja.wikipedia.org/wiki/ 量子論 量子論( りょうしろん) とは、 ある物理量が任意 の値を取ることができず、 特定の離散的な値しか
とることができない、 すなわち量子化を受けるよ うな全ての現象と効果を扱う学問である。 粒子と 波動の二重性、 物理的過程の不確定性、 観測によ る不可避な擾乱も特徴である。 量子論は、 マック ス・ プランクの量子仮説まで遡る全ての理論、 モ デル、 概念を包括する。 量子仮説は1900 年に、 例えば光や物質構造に対する古典物理学的説明が 限界に来ていたために産まれた。 “ “
不確定性原理 (Uncertainity Principle) 直感的説明: 普通の世界 物体に光を当てて反射させることで目に見える 光を当てても物体の状態は変わらない 量子の世界 量子に別の量子を衝突させることで状態を観測 衝突によりもとの量子の状態が変化してしまう
ある時点の量子の状態を完全に知ることは不可能 “ “
量子暗号 (Quantum Cryptography) 量子論を応用した暗号 不確定性原理により秘匿性を実現 通信が成功すれば、 その内容は他の誰にも 知られていないことを保証 誰か通信内容を傍受しようとしたら、 それを
通信前に検知できる 情報理論的安全性を保証 どれだけ計算量をかけても理論的に解読不可能 ⇔ 計算量的安全性(RSA, 楕円曲線, ....)
量子鍵配送 (Quantum Key Distribution) 暗号鍵( キー) を第三者に知られずに共有するしくみ 量子暗号論における最も基本的な問題 例: Alice
はBob にキー を渡したい キー = bit 列 (011010010...) 一度キー を渡せばあとはそれで通信 QKD ではキー をqubit( 量子bit) 化して送信 qubit は観測されると自身の状態が変化する -> この性質を利用して第三者による傍受を検知
BB84 (Bennett and Brassard, 1984) QKD のプロトコル キー を確率的にencode/decode し、
巧妙な方法で 復元することで第三者に知られずにキー を共有 encode: bit -> qubit (by Alice) decode: qubit -> bit (by Bob) ここからが本日のメイン
1. (Alice) キー をqubit 化して送信 Alice は各bit をいずれかのencoding で符号化 A:
0 → 0 , 1 → 1 B: 0 → + , 1 → - ※ 0 , 1 , + , - : qubit どちらを用いるかはbit 毎にランダムに選択 Alice は用いた各encoding を手元に記録
1. (Alice) キー をqubit 化して送信 BB84 Alice Key Bits 0
0 1 1 0 Encoding A B B A B Qubits 0 + - 1 +
2. (Bob) 受信したqubit をbit に復元 Bob は各qubit をいずれかのmeasurement で観測 α:
0 → 0, 1 → 1 β: + → 0, - → 1 どちらを用いるかはqubit 毎にランダムに選択 Bob は受信時点では各qubit がいずれのencoding でencode されたのかを知らない Alice のencoding とBob のmeasurement は 1/2 の確率で適合 Bob は用いた各measurement を手元に記録
2. (Bob) 受信したqubit をbit に復元 enconding に適したmeasurement を選ばなければ qubit からいずれのbit
が得られるかは不定 0 + α → 0, 1 + α → 1 + + β → 0, - + β → 1 + + α → 0/1 ???, - + α → 0/1 ??? 0 + β → 0/1 ???, 1 + β → 0/1 ??? 量子状態の重ね合わせによるもの = Bob がdecode で得たbit 列のうち半分は無意味
2. (Bob) 受信したqubit をbit に復元 BB84 Alice Key Bits 0
0 1 1 0 Encoding A B B A B Qubits 0 + - 1 + Bob Measurement α α β β α Key Bits 0 1 1 1 0
3. (Alice, Bob) encoding/measurement を照合 互いに用いたencoding/measurement を見せ合う Alice: 各bit に適用したencoding(A/B)
Bob: 各qubit に適用したmeasurement(α/β) A×α またはB×β が適用されたbit のみをキー とする 確率的にもとのbit 列の半分をキー として使える 照合は公開の通信経路で行ってよい 照合内容を見られてもキー は得られない
3. (Alice, Bob) encoding/measurement を照合 BB84 Alice Key Bits 0
0 1 1 0 Encoding A B B A B Qubits 0 + - 1 + Bob Measurement α α β β α Key Bits 0 1 1 1 0
4. (Alice, Bob) キー の一部を照合 互いに共有したキー の一部を見せ合う 例: キー の先頭1024bit
照合部分が完全に一致した場合 残りの部分を本当のキー として利用 照合部分が一致しなかった場合 = qubit の状態が途中で観測されて変化した = 第三者が通信を傍受している可能性がある → キー を破棄して最初から通信をやり直す
全体をもう一度 1. (Alice) キー をqubit 化して送信 2. (Bob) 受信したqubit をbit
に復元 3. (Alice, Bob) encoding/measurement を照合 4. (Alice, Bob) キー の一部を照合
まとめ 不確定性原理 物理学の「 理論限界」 を示す 量子暗号 不確定性原理を逆手に取って安全な通信を実現 BB84 量子の性質を巧妙に利用したアルゴリズム 参考
http://gva.noekeon.org/QCandSKD/QCandSKD- introduction.html