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
130
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
16
6.5k
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
240
Datadog APM におけるトレース収集の流れ及び Retention Filters のはなし / datadog-apm-trace-retention-filters
k6s4i53rx
0
330
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
680
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
1.1k
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
1
140
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
330
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2k
組織貢献をするフリーランスエンジニアという生き方
n_takehata
1
1.3k
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
360
クラウドサービス事業者におけるOSS
tagomoris
0
210
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
461
33k
It's Worth the Effort
3n
184
28k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Embracing the Ebb and Flow
colly
84
4.6k
Typedesign – Prime Four
hannesfritz
40
2.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
Site-Speed That Sticks
csswizardry
4
380
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
What's in a price? How to price your products and services
michaelherold
244
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Making Projects Easy
brettharned
116
6k
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