SlideShare une entreprise Scribd logo
1  sur  25
Télécharger pour lire hors ligne
暗認本読書会12
ZKP, 量子コンピュータ, PQC
2021/12/16
https://anninbon.connpass.com/
光成滋生
• 準同型暗号で投票しよう
• 賛成(1)か反対(0)の暗号文を集計サーバに送る
• 集計してから復号
• 攻撃者が𝐸𝑛𝑐(10)を
送ったら?
• 暗号文𝑐が𝐷𝑒𝑐 𝑐 ∈ {0,1}であることは知りたい
• でも、どちらかは知りたくない/知られないようにしたい
ゼロ知識証明
2 / 25
• 証明
• ある命題が成り立つことを相手に納得してもらう手続き
• ZKP
• ある命題が成り立つことや、あることを知っていることを
その情報を相手に伝えずに納得してもらう手法
• 納得してもらいたい例
• 𝑛 = 𝑝𝑞 (𝑝, 𝑞は素数)の𝑝や𝑞を教えずにそれを知っていること
• 𝑄 = 𝑠𝑃の𝑠を教えずにそれを知っていること
• 暗号文𝑐が0か1のどちらかの暗号文であること
• 何かの知識w (witness)を知っていることを納得させる
• 知識の証明
ZKP(Zero Knowledge Proof)
3 / 25
• 完全性
• 命題が正しい(or 𝑃が証拠wを持つ)なら𝑉は必ず納得する
• 健全性
• 𝑉が納得したなら、ほぼ100%の確率でその命題は正しい
• 𝑃が嘘をついていたら検証者は納得しない
ZKPに求められる性質
証明者𝑃 検証者𝑉
検証者𝑉
4 / 25
• 検証者は命題が正しい(or 証拠wを持つ)こと以外の
情報を得られない
• 普通の証明との違い
• 証明の過程が対話的
• 普通の数学の証明は証明されれば100%正しい
ゼロ知識性
5 / 25
• ビットコインの取引履歴は全てopen
• e.g., 10万円所有するアリスがボブに3万円送金して残り7万円
• 「A=B+C」であることは分かる
• ただしこれだけでは不十分(100=110+(-10)だと困る)
• 「0 ≤ 𝐴 ≤ 𝑀, 0 ≤ 𝐵 ≤ 𝑀, 0 ≤ 𝐶 ≤ 𝑀」(𝑀は大きな定数)を確認
• 「ビットコインアドレス」も隠す→Zcashなど
暗号資産への応用
6 / 25
• 対話証明と非対話証明
• 検証者Vが乱数を送って証明者Pに
答えてもらう→答えを確認
• 嘘でも1回でパスする確率x%
• 繰り返して嘘でもパスする確率を
減らしていく
• 非対話
• 「証明」を送るだけ
• 対話証明より効率がよい
• 対話証明の非対話化
• まず対話証明でプロトコルを作成
• ハッシュ関数と組み合わせて非対話化(Fiat-Shamir heuristic)
• 「離散対数の答えを知っている」+FS→Schnorr署名
ZKPの種類
7 / 25
• zero-knowledge Succinct Non-interactive ARgument of
Knowledgeの略
• succinct : 簡潔な = 「証明」のサイズが小さい
• non-interactive = 非対話
• argument = 限定された証明
• 証明(proof)
• 証明者が無限の計算能力を持っていても検証者をだませない
健全性を持つ
• argument
• 証明者の計算能力を多項式時間に限定した健全性
• argumentの方が効率がよくなる
• 証明者の能力を低く見積もっているので
zk-SNARK
8 / 25
• zk-SNARKは証明の前に信頼の出来る機関が必要
• 改良されたものが登場
• 実装
• https://github.com/scipr-lab/libsnark
• https://github.com/dalek-cryptography/bulletproofs
いくつかのZKP
性質 zk-SNARK Bulletproof zk-STARK
証明のサイズ 定数 やや小さい 大きい
検証時間 定数 大きい やや小さい
第三者機関 必要 不要 不要
量子コンピュータ
に対する耐性
無い 無い ある
9 / 25
• 従来のコンピュータ
• on/offのスイッチを元に動作
• 量子コンピュータ
• 量子の重ね合わせの性質を利用したコンピュータ
• 量子 = 光, 電磁波, 電子など
• 粒子のように1個, 2個と数えられる
• 波のように複数の状態が重なり合って存在できる
• 1ビット=0か1のどちらかを表す情報の最小単位
• 1量子ビット(qbit)
• 0の状態(|0⟩)と1の状態(|1⟩)の重ね合わせ
• ここではその実現方法には触れない
• 超伝導, イオン, 半導体, 光など様々なものが研究されている
量子コンピュータ
10 / 25
• 表現方法
• 𝜑 = 𝑎 0 + 𝑏|1⟩と表す(|0⟩と|1⟩の重ね合わせ)
• 𝑎, 𝑏は複素数で 𝑎 2 + 𝑏 2 = 1とする
• 𝑎, 𝑏を実数に制限すれば単位円の円周上
• 状態 𝜑 を(|0⟩,|1⟩)に沿って
観測すると
• 確率 𝑎 2で 0
確率 𝑏 2
で 1 になる
量子ビット
11 / 25
• 従来のコンピュータのゲートに相当する演算部分
• ビット反転(ゲートX : 従来の1bit反転に相当)
• 𝜑 = 𝑎 0 + 𝑏|1⟩ → 𝜑′ = 𝑏 0 + 𝑎 1
• |1⟩の符号だけを反転(ゲートZ)
• 𝜑 = 𝑎 0 + 𝑏|1⟩ → 𝜑′ = 𝑎 0 − 𝑏 1
• Hadamard変換
• 斜め45度回転
量子ゲート
12 / 25
• 1qbitが2個 𝑥 = 𝑎 0 + 𝑏|1⟩, 𝑦 = 𝑐 0 + 𝑑|1⟩
• 形式的な積⊗を使う
• 𝑥が状態 0 で𝑦が状態 0 のときを 0 ⊗ 0 = 00
• 𝑥が状態 0 で𝑦が状態 1 のときを 0 ⊗ 1 = 01
• 𝑥が状態 1 で𝑦が状態 0 のときを 1 ⊗ 0 = 10
• 𝑥が状態 1 で𝑦が状態 1 のときを 1 ⊗ 1 = 11
• 𝑥, 𝑦がそれぞれ混ざった状態のとき
• 𝑥 ⊗ 𝑦 = 𝑎 0 + 𝑏 1 ⊗ (𝑐 0 + 𝑑|1⟩) ; 形式的に展開
= 𝑎𝑐 00 + 𝑎𝑑 01 + 𝑏𝑐 10 + 𝑏𝑑 11
• 測定すると(𝑥, 𝑦)が
確率 𝑎𝑐 2で(0,0), 𝑎𝑑 2で(0,1), 𝑏𝑐 2で(1,0), 𝑏𝑑 2で(1,1)になる
2qbitの表記法
13 / 25
• 2qbit入出力(量子ゲートは入出力のqbit数は同じ)
• 00 と 01 はそのままで 10 と 11 を入れ換える
• 状態 𝑠𝑡 についての変換ルールの解釈
• 𝑠 = 0なら𝑡はそのまま, 𝑠 = 1なら𝑡はビット反転
• まとめると(𝑠, 𝑡)→(𝑠, 𝑠 ⊕ 𝑡) ; CNOT = Controlled NOT
CNOTゲート
14 / 25
• 例 : 𝑥 = Τ
1 2 0 + Τ
1 2 |1⟩, 𝑦 = 0 のとき
• 𝑥 ⊗ 𝑦 = Τ
1 2 00 + Τ
1 2 10
• 観測したとき𝑥が0か1になる確率は1/2, 𝑦は常に0
• CNOT 𝑥 ⊗ 𝑦 = Τ
1 2 00 + Τ
1 2 11
• 観測したとき 𝑥, 𝑦 = (0,0)または(1,1)が1/2ずつ
• 𝑥 = 0なら𝑦 = 0, 𝑥 = 1なら𝑦 = 1
• 𝑥 ⊗ 𝑦は𝑥と𝑦の観測結果は独立(𝑥の結果が𝑦に影響しない)
• CNOT 𝑥 ⊗ 𝑦 は𝑥の観測結果に𝑦が引きずられる(量子もつれ)
• 量子力学特有の現象 : e.g., 量子テレポーテーション
• 従来のコンピュータはandとxorで任意の回路
• 量子コンピュータ
• 1qbitの量子ゲートとCNOTで任意の回路
量子もつれ(entanglement)
15 / 25
• 古典的𝑛ビットのデータは2𝑛通りのどれか一つ
• 𝑛 qbitは2𝑛
通りの重ね合わせ
• もし𝑛 qbitのまま量子ゲートを用いれば2𝑛
通りの計算が可能
• 注意
• 1回分の量子ゲートの計算時間は不明
• 2𝑛倍速くなるとは言っていない
• 最終的な結果は観測で、どれか一つに確率的に決まる
• 意味のない計算
量子コンピュータの計算
16 / 25
• 𝑁 = 2𝑛個のデータから望みのものを1個探したい
• 𝑓(𝑥)は「望みのもの」なら1, そうでなければ0を返す関数
• 古典コンピュータ
• 𝑥 = 1,2, … , 𝑁と順番に𝑓(𝑥)を計算し1になる𝑥を見つける
• 𝑓(𝑥)の計算回数は平均 Τ
𝑁
2 = 𝑂(𝑁)
• 量子コンピュータ
• 𝑛 qbitを保持し, 初期値は全てのパターンが同じ確率
• 𝑓(𝑥)を量子ゲートで
計算できるとする
• 計算回数は𝑂( 𝑁)
Groberのアルゴリズム
17 / 25
• 2019年Googleの量子超越性
• https://www.nature.com/articles/s41586-019-1666-5
• スーパーコンピュータ1万年かかる問題を53qbitで200秒
• IBMの反論 : 1万年じゃなくて2日半?
• ランダムな量子回路を使って乱数生成
• 古典コンピュータは量子回路をシミュレーションする必要
• 単なる乱数なら通常のコンピュータの方がずっと速い
• 量子コンピュータが本質的に古典コンピュータより「速い」
場合があることを示そうとした
量子超越
18 / 25
• 共通鍵暗号(AES, ChaCha20など)
• Groberのアルゴリズムよりブルートフォース攻撃は𝑂( 𝑛)に
• 128bitセキュリティ必要なら倍の256bitにすれば十分
• 量子コンピュータはそこまで速くないので128bitでも十分?
• ハッシュ関数
• 同様にbit長を倍にすれば十分? 𝑂(3
𝑛)もある -- 現実的でない?
• 概ねそれほど影響は大きくないと考えられている
• 公開鍵暗号
• RSA, 離散対数問題どちらも𝑂( log 𝑛 3) by Shor
• 解読時間の見積もり
暗号技術に対する影響
ビット 1024 2048 3072 4096
古典コンピュータ 286
2116
2138
2156
量子コンピュータ 230
233
234
236
19 / 25
• 2048bitのRSAを破るには最低4096 qbit必要
• たくさんの量子ゲートを長時間正しく動作させるのは困難
• エラー訂正用に多くの量子ゲートが必要
• 数千万qbit必要という見積もり
• 2020年でHoneywell 128bit, 2021年IBM 127qbit
• NICT「量子コンピュータ実機を用いた離散対数問題の
求解実験に成功」(2020/12/9)
• https://www.nict.go.jp/press/2020/12/09-1.html
• 解いた問題は「2𝑥 ≡ 1(𝑚𝑜𝑑 3)」
• 「2𝑥 ≡ 2(𝑚𝑜𝑑 3)」は解けなかった
• 素因数分解は15 = 3 × 5や21= 3 × 7ぐらい
実際には?
20 / 25
• 組合せ最適化問題
• ある多次元上の関数𝑓(𝑥)の値を最小にする𝑥0を探す問題
• 移動経路のコスト、投資リスクなどを最小にしたい問題を
組合せ最適化問題に帰着
• 組合せ最適化問題に特化した量子コンピュータ
• 量子揺らぎという現象を利用
• 高速に解ける(と期待されている)
• 2011年D-Waveが初の商用化
• 2020年5000~qbit
• 注意
• 汎用コンピュータではない
• 今のところ暗号解読(素因数分解, DLP)は高速に解けない
量子アニーリグ(annealing)方式
21 / 25
• QKD(Quantum Key Distribution)
• 鍵配送を量子の性質を利用 BB84(1984, Bennett, Brassard)
• 1bitの秘密鍵を光子に対応させて伝送
• 盗聴されていれば傍受を検知して伝送を中断し再送
• ワンタイムパッドの
秘密鍵を安全に配送
• 注意
• 公開鍵暗号の機能は持たない
• 通信後のデータ保存は従来手法
• 実用化には光子の安定共有, ノイズ対策, 信号の減衰対策
• 2020年 東芝らが7kmを10Mbpsで
• 2021年 中国複数の拠点をつないで4600kmを47.8kbpsで
• 中継地点で盗聴される可能性は否定できない
量子鍵配送(量子暗号通信)
22 / 25
• 量子コンピュータの発展でRSA, ECCが危殆化の可能性
• 耐量子計算機暗号PQC(Post Quantum Cryptography)
• 耐量子暗号, ポスト量子暗号
• 量子コンピュータに対しても安全な暗号技術
• 2016年からNISTが標準化に向けて公募
耐量子計算機暗号
用語 用途 従来のコンピュータで
汎用量子コンピュータ 公開鍵暗号解読
高性能計算
動作しない
量子アニーリグ方式 組合せ最適化 動作しない
量子鍵配送
(量子暗号通信)
ワンタイムパッド 動作しない
耐量子計算機暗号 量子コンピュータが
登場しても安全な暗号
動作する
23 / 25
• LWE(Learning with errors)
• 完全準同型暗号でも利用されている
• 連立一次方程式𝐴𝑥 = 𝑏から𝑥 = 𝐴−1𝑏は比較的容易に解ける
• 𝐴は行列, 𝑏はベクトル
• ノイズ𝑒入りの方程式𝐴𝑥 + 𝑒 = 𝑏 (𝐴, 𝑏 : given)から𝑥, 𝑒を求める
• 量子コンピュータを使っても難しいと考えられている
• 同種写像
• 従来のECCは楕円曲線𝐸の点を動かす
• 同種写像𝐸 → 𝐸′は楕円曲線を動かす
• DH鍵共有の類似
• 耐量子暗号入門I
• https://ankokudan.org/d/d.htm?detail250-detailread-m.html
• 『数学セミナー』2022.1が量子計算理論の特集
PQC
24 / 25
• Quantum technology and its impact on security in
mobile networks
• https://www.ericsson.com/en/reports-and-papers/ericsson-
technology-review/articles/ensuring-security-in-mobile-
networks-post-quantum
PQC候補の比較
25 / 25

Contenu connexe

Tendances

自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介MITSUNARI Shigeo
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながりMITSUNARI Shigeo
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化MITSUNARI Shigeo
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明MITSUNARI Shigeo
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がりMITSUNARI Shigeo
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコルMITSUNARI Shigeo
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用MITSUNARI Shigeo
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -MITSUNARI Shigeo
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何かSyuhei Hiya
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介MITSUNARI Shigeo
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpsonickun
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃trmr
 
Post-quantum zk-SNARKs on Hyperledger Fabric​
Post-quantum zk-SNARKs on Hyperledger Fabric​Post-quantum zk-SNARKs on Hyperledger Fabric​
Post-quantum zk-SNARKs on Hyperledger Fabric​Hyperleger Tokyo Meetup
 
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料Tetsuyuki Oishi
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法MITSUNARI Shigeo
 

Tendances (20)

自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
 
楕円曲線と暗号
楕円曲線と暗号楕円曲線と暗号
楕円曲線と暗号
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
新しい暗号技術
新しい暗号技術新しい暗号技術
新しい暗号技術
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
 
Optimistic Rollupとは何か
Optimistic Rollupとは何かOptimistic Rollupとは何か
Optimistic Rollupとは何か
 
暗認本読書会10
暗認本読書会10暗認本読書会10
暗認本読書会10
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
 
集約署名
集約署名集約署名
集約署名
 
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjpRSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
 
Post-quantum zk-SNARKs on Hyperledger Fabric​
Post-quantum zk-SNARKs on Hyperledger Fabric​Post-quantum zk-SNARKs on Hyperledger Fabric​
Post-quantum zk-SNARKs on Hyperledger Fabric​
 
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料
 
Paxos
PaxosPaxos
Paxos
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 

Plus de MITSUNARI Shigeo

Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenMITSUNARI Shigeo
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装MITSUNARI Shigeo
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介MITSUNARI Shigeo
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたMITSUNARI Shigeo
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...MITSUNARI Shigeo
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生MITSUNARI Shigeo
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsMITSUNARI Shigeo
 

Plus de MITSUNARI Shigeo (15)

暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
暗認本読書会8
暗認本読書会8暗認本読書会8
暗認本読書会8
 
暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
 

Dernier

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Dernier (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

暗認本読書会12

  • 2. • 準同型暗号で投票しよう • 賛成(1)か反対(0)の暗号文を集計サーバに送る • 集計してから復号 • 攻撃者が𝐸𝑛𝑐(10)を 送ったら? • 暗号文𝑐が𝐷𝑒𝑐 𝑐 ∈ {0,1}であることは知りたい • でも、どちらかは知りたくない/知られないようにしたい ゼロ知識証明 2 / 25
  • 3. • 証明 • ある命題が成り立つことを相手に納得してもらう手続き • ZKP • ある命題が成り立つことや、あることを知っていることを その情報を相手に伝えずに納得してもらう手法 • 納得してもらいたい例 • 𝑛 = 𝑝𝑞 (𝑝, 𝑞は素数)の𝑝や𝑞を教えずにそれを知っていること • 𝑄 = 𝑠𝑃の𝑠を教えずにそれを知っていること • 暗号文𝑐が0か1のどちらかの暗号文であること • 何かの知識w (witness)を知っていることを納得させる • 知識の証明 ZKP(Zero Knowledge Proof) 3 / 25
  • 4. • 完全性 • 命題が正しい(or 𝑃が証拠wを持つ)なら𝑉は必ず納得する • 健全性 • 𝑉が納得したなら、ほぼ100%の確率でその命題は正しい • 𝑃が嘘をついていたら検証者は納得しない ZKPに求められる性質 証明者𝑃 検証者𝑉 検証者𝑉 4 / 25
  • 5. • 検証者は命題が正しい(or 証拠wを持つ)こと以外の 情報を得られない • 普通の証明との違い • 証明の過程が対話的 • 普通の数学の証明は証明されれば100%正しい ゼロ知識性 5 / 25
  • 6. • ビットコインの取引履歴は全てopen • e.g., 10万円所有するアリスがボブに3万円送金して残り7万円 • 「A=B+C」であることは分かる • ただしこれだけでは不十分(100=110+(-10)だと困る) • 「0 ≤ 𝐴 ≤ 𝑀, 0 ≤ 𝐵 ≤ 𝑀, 0 ≤ 𝐶 ≤ 𝑀」(𝑀は大きな定数)を確認 • 「ビットコインアドレス」も隠す→Zcashなど 暗号資産への応用 6 / 25
  • 7. • 対話証明と非対話証明 • 検証者Vが乱数を送って証明者Pに 答えてもらう→答えを確認 • 嘘でも1回でパスする確率x% • 繰り返して嘘でもパスする確率を 減らしていく • 非対話 • 「証明」を送るだけ • 対話証明より効率がよい • 対話証明の非対話化 • まず対話証明でプロトコルを作成 • ハッシュ関数と組み合わせて非対話化(Fiat-Shamir heuristic) • 「離散対数の答えを知っている」+FS→Schnorr署名 ZKPの種類 7 / 25
  • 8. • zero-knowledge Succinct Non-interactive ARgument of Knowledgeの略 • succinct : 簡潔な = 「証明」のサイズが小さい • non-interactive = 非対話 • argument = 限定された証明 • 証明(proof) • 証明者が無限の計算能力を持っていても検証者をだませない 健全性を持つ • argument • 証明者の計算能力を多項式時間に限定した健全性 • argumentの方が効率がよくなる • 証明者の能力を低く見積もっているので zk-SNARK 8 / 25
  • 9. • zk-SNARKは証明の前に信頼の出来る機関が必要 • 改良されたものが登場 • 実装 • https://github.com/scipr-lab/libsnark • https://github.com/dalek-cryptography/bulletproofs いくつかのZKP 性質 zk-SNARK Bulletproof zk-STARK 証明のサイズ 定数 やや小さい 大きい 検証時間 定数 大きい やや小さい 第三者機関 必要 不要 不要 量子コンピュータ に対する耐性 無い 無い ある 9 / 25
  • 10. • 従来のコンピュータ • on/offのスイッチを元に動作 • 量子コンピュータ • 量子の重ね合わせの性質を利用したコンピュータ • 量子 = 光, 電磁波, 電子など • 粒子のように1個, 2個と数えられる • 波のように複数の状態が重なり合って存在できる • 1ビット=0か1のどちらかを表す情報の最小単位 • 1量子ビット(qbit) • 0の状態(|0⟩)と1の状態(|1⟩)の重ね合わせ • ここではその実現方法には触れない • 超伝導, イオン, 半導体, 光など様々なものが研究されている 量子コンピュータ 10 / 25
  • 11. • 表現方法 • 𝜑 = 𝑎 0 + 𝑏|1⟩と表す(|0⟩と|1⟩の重ね合わせ) • 𝑎, 𝑏は複素数で 𝑎 2 + 𝑏 2 = 1とする • 𝑎, 𝑏を実数に制限すれば単位円の円周上 • 状態 𝜑 を(|0⟩,|1⟩)に沿って 観測すると • 確率 𝑎 2で 0 確率 𝑏 2 で 1 になる 量子ビット 11 / 25
  • 12. • 従来のコンピュータのゲートに相当する演算部分 • ビット反転(ゲートX : 従来の1bit反転に相当) • 𝜑 = 𝑎 0 + 𝑏|1⟩ → 𝜑′ = 𝑏 0 + 𝑎 1 • |1⟩の符号だけを反転(ゲートZ) • 𝜑 = 𝑎 0 + 𝑏|1⟩ → 𝜑′ = 𝑎 0 − 𝑏 1 • Hadamard変換 • 斜め45度回転 量子ゲート 12 / 25
  • 13. • 1qbitが2個 𝑥 = 𝑎 0 + 𝑏|1⟩, 𝑦 = 𝑐 0 + 𝑑|1⟩ • 形式的な積⊗を使う • 𝑥が状態 0 で𝑦が状態 0 のときを 0 ⊗ 0 = 00 • 𝑥が状態 0 で𝑦が状態 1 のときを 0 ⊗ 1 = 01 • 𝑥が状態 1 で𝑦が状態 0 のときを 1 ⊗ 0 = 10 • 𝑥が状態 1 で𝑦が状態 1 のときを 1 ⊗ 1 = 11 • 𝑥, 𝑦がそれぞれ混ざった状態のとき • 𝑥 ⊗ 𝑦 = 𝑎 0 + 𝑏 1 ⊗ (𝑐 0 + 𝑑|1⟩) ; 形式的に展開 = 𝑎𝑐 00 + 𝑎𝑑 01 + 𝑏𝑐 10 + 𝑏𝑑 11 • 測定すると(𝑥, 𝑦)が 確率 𝑎𝑐 2で(0,0), 𝑎𝑑 2で(0,1), 𝑏𝑐 2で(1,0), 𝑏𝑑 2で(1,1)になる 2qbitの表記法 13 / 25
  • 14. • 2qbit入出力(量子ゲートは入出力のqbit数は同じ) • 00 と 01 はそのままで 10 と 11 を入れ換える • 状態 𝑠𝑡 についての変換ルールの解釈 • 𝑠 = 0なら𝑡はそのまま, 𝑠 = 1なら𝑡はビット反転 • まとめると(𝑠, 𝑡)→(𝑠, 𝑠 ⊕ 𝑡) ; CNOT = Controlled NOT CNOTゲート 14 / 25
  • 15. • 例 : 𝑥 = Τ 1 2 0 + Τ 1 2 |1⟩, 𝑦 = 0 のとき • 𝑥 ⊗ 𝑦 = Τ 1 2 00 + Τ 1 2 10 • 観測したとき𝑥が0か1になる確率は1/2, 𝑦は常に0 • CNOT 𝑥 ⊗ 𝑦 = Τ 1 2 00 + Τ 1 2 11 • 観測したとき 𝑥, 𝑦 = (0,0)または(1,1)が1/2ずつ • 𝑥 = 0なら𝑦 = 0, 𝑥 = 1なら𝑦 = 1 • 𝑥 ⊗ 𝑦は𝑥と𝑦の観測結果は独立(𝑥の結果が𝑦に影響しない) • CNOT 𝑥 ⊗ 𝑦 は𝑥の観測結果に𝑦が引きずられる(量子もつれ) • 量子力学特有の現象 : e.g., 量子テレポーテーション • 従来のコンピュータはandとxorで任意の回路 • 量子コンピュータ • 1qbitの量子ゲートとCNOTで任意の回路 量子もつれ(entanglement) 15 / 25
  • 16. • 古典的𝑛ビットのデータは2𝑛通りのどれか一つ • 𝑛 qbitは2𝑛 通りの重ね合わせ • もし𝑛 qbitのまま量子ゲートを用いれば2𝑛 通りの計算が可能 • 注意 • 1回分の量子ゲートの計算時間は不明 • 2𝑛倍速くなるとは言っていない • 最終的な結果は観測で、どれか一つに確率的に決まる • 意味のない計算 量子コンピュータの計算 16 / 25
  • 17. • 𝑁 = 2𝑛個のデータから望みのものを1個探したい • 𝑓(𝑥)は「望みのもの」なら1, そうでなければ0を返す関数 • 古典コンピュータ • 𝑥 = 1,2, … , 𝑁と順番に𝑓(𝑥)を計算し1になる𝑥を見つける • 𝑓(𝑥)の計算回数は平均 Τ 𝑁 2 = 𝑂(𝑁) • 量子コンピュータ • 𝑛 qbitを保持し, 初期値は全てのパターンが同じ確率 • 𝑓(𝑥)を量子ゲートで 計算できるとする • 計算回数は𝑂( 𝑁) Groberのアルゴリズム 17 / 25
  • 18. • 2019年Googleの量子超越性 • https://www.nature.com/articles/s41586-019-1666-5 • スーパーコンピュータ1万年かかる問題を53qbitで200秒 • IBMの反論 : 1万年じゃなくて2日半? • ランダムな量子回路を使って乱数生成 • 古典コンピュータは量子回路をシミュレーションする必要 • 単なる乱数なら通常のコンピュータの方がずっと速い • 量子コンピュータが本質的に古典コンピュータより「速い」 場合があることを示そうとした 量子超越 18 / 25
  • 19. • 共通鍵暗号(AES, ChaCha20など) • Groberのアルゴリズムよりブルートフォース攻撃は𝑂( 𝑛)に • 128bitセキュリティ必要なら倍の256bitにすれば十分 • 量子コンピュータはそこまで速くないので128bitでも十分? • ハッシュ関数 • 同様にbit長を倍にすれば十分? 𝑂(3 𝑛)もある -- 現実的でない? • 概ねそれほど影響は大きくないと考えられている • 公開鍵暗号 • RSA, 離散対数問題どちらも𝑂( log 𝑛 3) by Shor • 解読時間の見積もり 暗号技術に対する影響 ビット 1024 2048 3072 4096 古典コンピュータ 286 2116 2138 2156 量子コンピュータ 230 233 234 236 19 / 25
  • 20. • 2048bitのRSAを破るには最低4096 qbit必要 • たくさんの量子ゲートを長時間正しく動作させるのは困難 • エラー訂正用に多くの量子ゲートが必要 • 数千万qbit必要という見積もり • 2020年でHoneywell 128bit, 2021年IBM 127qbit • NICT「量子コンピュータ実機を用いた離散対数問題の 求解実験に成功」(2020/12/9) • https://www.nict.go.jp/press/2020/12/09-1.html • 解いた問題は「2𝑥 ≡ 1(𝑚𝑜𝑑 3)」 • 「2𝑥 ≡ 2(𝑚𝑜𝑑 3)」は解けなかった • 素因数分解は15 = 3 × 5や21= 3 × 7ぐらい 実際には? 20 / 25
  • 21. • 組合せ最適化問題 • ある多次元上の関数𝑓(𝑥)の値を最小にする𝑥0を探す問題 • 移動経路のコスト、投資リスクなどを最小にしたい問題を 組合せ最適化問題に帰着 • 組合せ最適化問題に特化した量子コンピュータ • 量子揺らぎという現象を利用 • 高速に解ける(と期待されている) • 2011年D-Waveが初の商用化 • 2020年5000~qbit • 注意 • 汎用コンピュータではない • 今のところ暗号解読(素因数分解, DLP)は高速に解けない 量子アニーリグ(annealing)方式 21 / 25
  • 22. • QKD(Quantum Key Distribution) • 鍵配送を量子の性質を利用 BB84(1984, Bennett, Brassard) • 1bitの秘密鍵を光子に対応させて伝送 • 盗聴されていれば傍受を検知して伝送を中断し再送 • ワンタイムパッドの 秘密鍵を安全に配送 • 注意 • 公開鍵暗号の機能は持たない • 通信後のデータ保存は従来手法 • 実用化には光子の安定共有, ノイズ対策, 信号の減衰対策 • 2020年 東芝らが7kmを10Mbpsで • 2021年 中国複数の拠点をつないで4600kmを47.8kbpsで • 中継地点で盗聴される可能性は否定できない 量子鍵配送(量子暗号通信) 22 / 25
  • 23. • 量子コンピュータの発展でRSA, ECCが危殆化の可能性 • 耐量子計算機暗号PQC(Post Quantum Cryptography) • 耐量子暗号, ポスト量子暗号 • 量子コンピュータに対しても安全な暗号技術 • 2016年からNISTが標準化に向けて公募 耐量子計算機暗号 用語 用途 従来のコンピュータで 汎用量子コンピュータ 公開鍵暗号解読 高性能計算 動作しない 量子アニーリグ方式 組合せ最適化 動作しない 量子鍵配送 (量子暗号通信) ワンタイムパッド 動作しない 耐量子計算機暗号 量子コンピュータが 登場しても安全な暗号 動作する 23 / 25
  • 24. • LWE(Learning with errors) • 完全準同型暗号でも利用されている • 連立一次方程式𝐴𝑥 = 𝑏から𝑥 = 𝐴−1𝑏は比較的容易に解ける • 𝐴は行列, 𝑏はベクトル • ノイズ𝑒入りの方程式𝐴𝑥 + 𝑒 = 𝑏 (𝐴, 𝑏 : given)から𝑥, 𝑒を求める • 量子コンピュータを使っても難しいと考えられている • 同種写像 • 従来のECCは楕円曲線𝐸の点を動かす • 同種写像𝐸 → 𝐸′は楕円曲線を動かす • DH鍵共有の類似 • 耐量子暗号入門I • https://ankokudan.org/d/d.htm?detail250-detailread-m.html • 『数学セミナー』2022.1が量子計算理論の特集 PQC 24 / 25
  • 25. • Quantum technology and its impact on security in mobile networks • https://www.ericsson.com/en/reports-and-papers/ericsson- technology-review/articles/ensuring-security-in-mobile- networks-post-quantum PQC候補の比較 25 / 25