Submit Search
Upload
ブロックチェーン系プロジェクトで着目される暗号技術
•
18 likes
•
6,038 views
MITSUNARI Shigeo
Follow
2018/10/10 JEITA ハードウェアセキュリティ技術分科会講演資料
Read less
Read more
Technology
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
ts21
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
MITSUNARI Shigeo
楕円曲線と暗号
楕円曲線と暗号
MITSUNARI Shigeo
Bitcoinを技術的に理解する
Bitcoinを技術的に理解する
Kenji Urushima
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
新しい暗号技術
新しい暗号技術
MITSUNARI Shigeo
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
MITSUNARI Shigeo
Recommended
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
ts21
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
MITSUNARI Shigeo
楕円曲線と暗号
楕円曲線と暗号
MITSUNARI Shigeo
Bitcoinを技術的に理解する
Bitcoinを技術的に理解する
Kenji Urushima
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
新しい暗号技術
新しい暗号技術
MITSUNARI Shigeo
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
MITSUNARI Shigeo
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
MITSUNARI Shigeo
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
暗認本読書会12
暗認本読書会12
MITSUNARI Shigeo
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料
Tetsuyuki Oishi
BLS署名の実装とその応用
BLS署名の実装とその応用
MITSUNARI Shigeo
暗認本読書会11
暗認本読書会11
MITSUNARI Shigeo
暗認本読書会13 advanced
暗認本読書会13 advanced
MITSUNARI Shigeo
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
MITSUNARI Shigeo
集約署名
集約署名
MITSUNARI Shigeo
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
MITSUNARI Shigeo
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会
MITSUNARI Shigeo
暗認本読書会7
暗認本読書会7
MITSUNARI Shigeo
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
MITSUNARI Shigeo
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
maruyama097
暗認本読書会10
暗認本読書会10
MITSUNARI Shigeo
Post-quantum zk-SNARKs on Hyperledger Fabric
Post-quantum zk-SNARKs on Hyperledger Fabric
Hyperleger Tokyo Meetup
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
MITSUNARI Shigeo
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
More Related Content
What's hot
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
MITSUNARI Shigeo
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
暗認本読書会12
暗認本読書会12
MITSUNARI Shigeo
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料
Tetsuyuki Oishi
BLS署名の実装とその応用
BLS署名の実装とその応用
MITSUNARI Shigeo
暗認本読書会11
暗認本読書会11
MITSUNARI Shigeo
暗認本読書会13 advanced
暗認本読書会13 advanced
MITSUNARI Shigeo
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
MITSUNARI Shigeo
集約署名
集約署名
MITSUNARI Shigeo
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
MITSUNARI Shigeo
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会
MITSUNARI Shigeo
暗認本読書会7
暗認本読書会7
MITSUNARI Shigeo
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
MITSUNARI Shigeo
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
maruyama097
暗認本読書会10
暗認本読書会10
MITSUNARI Shigeo
Post-quantum zk-SNARKs on Hyperledger Fabric
Post-quantum zk-SNARKs on Hyperledger Fabric
Hyperleger Tokyo Meetup
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
What's hot
(20)
暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
暗認本読書会12
暗認本読書会12
技術勉強会(楕円曲線暗号)資料
技術勉強会(楕円曲線暗号)資料
BLS署名の実装とその応用
BLS署名の実装とその応用
暗認本読書会11
暗認本読書会11
暗認本読書会13 advanced
暗認本読書会13 advanced
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
集約署名
集約署名
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
プログラムを高速化する話
プログラムを高速化する話
『データ解析におけるプライバシー保護』勉強会
『データ解析におけるプライバシー保護』勉強会
暗認本読書会7
暗認本読書会7
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
「型の理論」と証明支援システム -- COQの世界
「型の理論」と証明支援システム -- COQの世界
暗認本読書会10
暗認本読書会10
Post-quantum zk-SNARKs on Hyperledger Fabric
Post-quantum zk-SNARKs on Hyperledger Fabric
明日使えないすごいビット演算
明日使えないすごいビット演算
Similar to ブロックチェーン系プロジェクトで着目される暗号技術
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
MITSUNARI Shigeo
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
Provable Security3
Provable Security3
Satoshi Hada
Introduction to Locally Testable Codes and Related Topics (in Japanese)
Introduction to Locally Testable Codes and Related Topics (in Japanese)
Nobutaka Shimizu
バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案
MITSUNARI Shigeo
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
MITSUNARI Shigeo
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
京大 マイコンクラブ
CoinOtaku授業用スライド(ビットコインの仕組み)
CoinOtaku授業用スライド(ビットコインの仕組み)
航貴 齋藤
6 Info Theory
6 Info Theory
melvincabatuan
openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
Teruaki Tsubokura
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
Wataru Shito
20130716 はじパタ3章前半 ベイズの識別規則
20130716 はじパタ3章前半 ベイズの識別規則
koba cky
Synchronized Aggregate Signatures and Computational Assumptions
Synchronized Aggregate Signatures and Computational Assumptions
MASAYUKITEZUKA1
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
RCCSRENKEI
CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!
inaz2
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
AtCoder Inc.
Similar to ブロックチェーン系プロジェクトで着目される暗号技術
(17)
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Provable Security3
Provable Security3
Introduction to Locally Testable Codes and Related Topics (in Japanese)
Introduction to Locally Testable Codes and Related Topics (in Japanese)
バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
CoinOtaku授業用スライド(ビットコインの仕組み)
CoinOtaku授業用スライド(ビットコインの仕組み)
6 Info Theory
6 Info Theory
openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
20130716 はじパタ3章前半 ベイズの識別規則
20130716 はじパタ3章前半 ベイズの識別規則
Synchronized Aggregate Signatures and Computational Assumptions
Synchronized Aggregate Signatures and Computational Assumptions
第15回 配信講義 計算科学技術特論B(2022)
第15回 配信講義 計算科学技術特論B(2022)
CRYPT+YOU, UNDERSTAND TODAY!
CRYPT+YOU, UNDERSTAND TODAY!
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
CODE FESTIVAL 2015 予選B 解説
CODE FESTIVAL 2015 予選B 解説
More from MITSUNARI Shigeo
暗認本読書会9
暗認本読書会9
MITSUNARI Shigeo
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
MITSUNARI Shigeo
暗認本読書会8
暗認本読書会8
MITSUNARI Shigeo
暗認本読書会6
暗認本読書会6
MITSUNARI Shigeo
暗認本読書会5
暗認本読書会5
MITSUNARI Shigeo
暗認本読書会4
暗認本読書会4
MITSUNARI Shigeo
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
MITSUNARI Shigeo
私とOSSの25年
私とOSSの25年
MITSUNARI Shigeo
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
MITSUNARI Shigeo
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
MITSUNARI Shigeo
HPC Phys-20201203
HPC Phys-20201203
MITSUNARI Shigeo
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
ゆるバグ
ゆるバグ
MITSUNARI Shigeo
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
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...
MITSUNARI Shigeo
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 Groups
MITSUNARI Shigeo
More from MITSUNARI Shigeo
(18)
暗認本読書会9
暗認本読書会9
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
暗認本読書会8
暗認本読書会8
暗認本読書会6
暗認本読書会6
暗認本読書会5
暗認本読書会5
暗認本読書会4
暗認本読書会4
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
私とOSSの25年
私とOSSの25年
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
HPC Phys-20201203
HPC Phys-20201203
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
ゆるバグ
ゆるバグ
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
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とその派生
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Recently uploaded
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Recently uploaded
(9)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
ブロックチェーン系プロジェクトで着目される暗号技術
1.
ブロックチェーン系プロジェクトで 着目される暗号技術 JEITA ハードウェアセキュリティ技術分科会 2018/10/10 光成滋生
2.
• Bitcoin(easy part) •
電子署名 • 楕円曲線 • ハッシュ関数 • ブロックチェーン • 合意形成と取引の秘匿化 • 高度な暗号技術(hard part) • ペアリング • BLS署名と秘密分散 • コミットメント • 準同型暗号 • ゼロ知識証明 • zk-SNARK 目次 2 / 50
3.
• 光成滋生 • サイボウズ・ラボで暗号・セキュリティ系のR&D •
『クラウドを支えるこれからの暗号技術』秀和システム, 2015 • http://herumi.github.io/ango • 検索可能暗号, プロキシ暗号, 放送型暗号, IDベース暗号, 準同型暗号, ゼロ知識証明などの高機能暗号のサーベイ 自己紹介 3 / 50
4.
• 分散型仮想通貨(1号仮想通貨)の一つ • 不特定の相手に対して •
物品の購入などの代価の支払いのために利用できる • 円などの法的通貨と相互に交換できる • 電子的方法で記録され、移転できる • オルトコイン(2号仮想通貨) • 不特定の相手に対して1号仮想通貨と交換できるもの • 円や電子マネーは仮想通貨ではない • 資金決済に関する法律 http://elaws.e- gov.go.jp/search/elawsSearch/elaws_search/lsg0500/detail?lawId=421AC0000000059#5 Bitcoin 4 / 50
5.
• 電子署名 • あるデータを作ったものが当人であることを検証できる •
Bitcoinの電子署名は楕円曲線を利用している • ブロックチェーン • 取引履歴をつなげて改竄しにくくしたもの Bitcoinで用いられる暗号技術 5 / 50
6.
• 鍵生成 • 署名鍵𝑠𝑘と検証鍵𝑝𝑘を作る •
𝑠𝑘は秘密にしたままで𝑝𝑘はみなに公開する • 署名 • メッセージ𝑚に対して𝑠𝑘で署名 • 𝜎 ≔ Sign 𝑠𝑘, 𝑚 • 検証 • 𝑚と𝜎に対して𝑝𝑘で正当性を検証 • Verify 𝑝𝑘, 𝑚, 𝜎 = 1 𝑜𝑟 0 • 注意 • 署名は暗号化ではない(𝑚を復元できるわけではない) • そもそも𝑚のサイズより𝜎のサイズが小さいことも多い 電子署名 6 / 50
7.
• Aliceの署名𝜎 =
Sign(𝑠𝑘, 𝑚)に対して • 誰もがAliceの署名を受理する • Verify 𝑝𝑘, 𝑚, 𝜎 = 1 for all 𝜎 = Sign(𝑠𝑘, 𝑚) • 𝑠𝑘を知っているAlice以外は𝜎を偽造できない 電子署名が満たすべき性質 𝑚, 𝜎 : OK 𝑚, 𝜎′ : NG X𝑠𝑘 𝑝𝑘 7 / 50
8.
• 幾何学的には • 長方形の両端をつなげて出来るトーラス •
楕円曲線上の点の演算 • 一歩が𝑃のベクトルずつ進む • 端に来たら反対側から出る 楕円曲線 𝑃𝑂 2𝑃 3𝑃 4𝑃5𝑃 10100 𝑃 4𝑃 8 / 50
9.
• 現在地から何歩歩いたか求めるのは難しい • 楕円離散対数問題の困難性 •
𝑃を𝑥倍するのは容易 𝑥𝑃から𝑥を求めるのは困難 • DLP(discrete logarithm problem) 楕円曲線の性質 𝑃 2𝑃 3𝑃𝑥𝑃 どれだけ歩いたっけ? 9 / 50
10.
• Bitcoinで使われる電子署名の種類 • secp256kは楕円曲線の種類を表す名前 •
楕円曲線の点𝑃は固定 • 署名鍵 : 𝑠 ∈ {1, … , 𝑝 − 1} ; ランダムに選ぶ • 検証鍵 : 𝑄 ≔ 𝑠𝑃 • 𝑠𝑃を見ても𝑠は分からない(DLP困難性による) • 具体的な署名・検証アルゴリズムは省略 ECDSA/secp256k 10 / 50
11.
• 任意長のビット列を固定長のビット列に変換する関数 • 衝突困難性 •
異なる2個の𝑚1, 𝑚2に対してそのハッシュ関数𝐻の値について 𝐻 𝑚1 = 𝐻(𝑚2)となるものを見つけるのが難しい • BitcoinはSHA256とRIPEMD-160を利用 ハッシュ関数 11 / 50
12.
• 取引のための口座番号 • Bitcoinアドレスは公開鍵𝑄から作られる •
ℎ ≔RIPEMD-160(SHA256 𝑄 ) • ℎ′ ≔ NetworkID||ℎ ; Network IDは1byteのデータ • checksum ≔ 4 byte𝑠 of SHA256(SHA256 ℎ′ ) • Bitcoinアドレス ≔ ℎ′ ||checksum Bitcoinアドレス 𝑄 ℎ ハッシュ ID ℎℎ′ = c checksumID ℎ 12 / 50 Bitcoinアドレス=
13.
• ブロックチェーン=ブロックの連鎖 • ブロック(取引データをまとめたもの) •
取引データのハッシュ(Merkle root) • 前のブロックのハッシュ • nonce ; ハッシュの値を調整するためのもの ブロックチェーン h0 h1 h2 h3 block0 block1 • 取引1 • h0 block2 • 取引2 • h1 block3 • 取引3 • h2 block4 • 取引4 • h3 13 / 50
14.
• 複数のデータのハッシュを木構造で管理 • ブロックにはrootのみ保持 •
必要に応じて個別のデータを参照 • 複数のノードの結果を保持しておくことで 再チェック時に必要最小限の再計算で検証可能 Merkle木 root h1 h1 h2 h2 h3 h4 取引1 取引2 取引3 取引4 14 / 50
15.
• どこからどこへいくら送金したかの情報 • input •
Aliceのアドレス10BTC • output • Bobのアドレス1BTC • Aliceの(お釣り)アドレス8.9BTC • 残り0.1BTCは手数料 • 手数料はマイナー(採掘者)へ行く • 送金 • 取引データをAliceの署名鍵で署名して公開する • 誰もがAliceの検証鍵で取引データを検証できる 取引データ 15 / 50
16.
取引A, B, C, D,
E, X • 送信された取引の検証 • 取引データのフォーマット(署名)の検証 • 取引データが二重支払いになっていないかなどの意味の検証 • ブロックチェーンの過去の履歴を確認 • 全世界のマシンでデータを共有して確認 取引承認 取引A, B, C, E 取引C, D, A 取引A, B メモリプール 二重使用 X マイナー (採掘者) X 新しいブロック 16 / 50
17.
• マイナー • 正当な取引を集めて新しいブロックを作る •
ブロックのハッシュ値の先頭が0で続くようにnonceを選ぶ • Proof of Work • コンピュータの演算能力に合わせて0が延ばされる • 現在18個ほど • 取引の手数料と新しいブロックに対して 得られるビットコインがマイニングの動機(早い者勝ち) • 承認 • 取引がブロックチェーンに取り込まれると取引確認(10分) • チェーンが分岐したら • 一番長いブロックチェーンが正しい取引 マイニング 17 / 50
18.
• Bitcoinの全取引は全世界に公開 • 「BitcoinアドレスAからBへいくら送金した」 という情報は全世界で共有される •
あるアドレスからのBitcoinの流れは全て把握できる • 取引所 • Bitcoinとリアルな情報とのリンクが行われる • マネーロンダリングなどを防ぐため(完全ではない) • 取引自体を秘匿化したいという動機 • 公開すべき情報なら秘匿しなくてもよいが • 電子投票や医療情報などは全世界に公開できない 匿名性 18 / 50
19.
• スマートコントラクト • 取引などの契約の自動化を行うプロトコル •
cf. ビットコインスクリプトもこれに含まれる • Ethereum(https://www.ethereum.org) • スマートコントラクトの履歴をブロックチェーンに記録 • 原理的に任意のプログラムを実行可能 • 合意形成アルゴリズム • BitcoinのPoWは電気代がかかるという批判 • それに変わるブロックの作成者を選択する手法の提案 • Proof of Stake ; ブロック作成者の資産などに着目 • Proof of Importance ; ネットワークにおける重要度に着目 • その他いろいろ スマートコントラクトとEthereum 19 / 50
20.
• https://dfinity.org • 効率的な合意形成のためにランダムビーコンを提案 •
複数のユーザが一定数合意すると一意に乱数が定まる • BLS署名と秘密分散を利用 Dfinity 20 / 50
21.
• 𝐺1, 𝐺2を素数位数𝑝の加法巡回群とする •
2種類の楕円曲線のそれぞれの生成元を𝑃, 𝑄とする • 𝐺1 = 𝑃 = 0, 𝑃, 2𝑃, … , 𝑝 − 1 𝑃 • 𝐺2 = 𝑄 = {0, 𝑄, 2𝑄, … , 𝑝 − 1 𝑄} • 論文によっては乗法群表記{1, 𝑔, 𝑔2, … , 𝑔 𝑝−1}が使われる • 𝐺 𝑇を位数𝑝の乗法巡回群とする • 有限体上での1の𝑝乗根の集合 • 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇 ; 非退化双線形写像(ペアリング) • 双線形 : 𝑒 𝑎𝑃, 𝑏𝑄 = 𝑒 𝑃, 𝑄 𝑎𝑏 for 𝑎, 𝑏 ∈ 𝔽 𝑝 • 非退化 : 𝑔 ≔ 𝑒(𝑃, 𝑄)が𝐺 𝑇の生成元(𝑔 ≠ 1, 𝑔 𝑝 = 1) ペアリング 21 / 50
22.
• 鍵生成 • ペアリング
; 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇 • ハッシュ関数 ; 𝐻: 0,1 ∗ → 𝐺1 ; 衝突困難なもの • 𝑄 ∈ 𝐺2 ; 公開パラメータ • 𝑠 ∈ 𝔽 𝑝 ; 署名(秘密)鍵, 𝑠𝑄 ; 検証(公開)鍵 • 署名 • 署名鍵𝑠とメッセージ𝑚に対してSign 𝑠, 𝑚 ∶= 𝑠𝐻(𝑚) • 検証 • 検証鍵𝑠𝑄とメッセージ𝑚と署名𝑆に対して 𝑒 𝐻 𝑚 , 𝑠𝑄 ∶= 𝑒 𝑆, 𝑄 が等号成立すれば受理, そうでなければ棄却する • 正当性 • 双線型性から𝑒 𝑆, 𝑄 = 𝑒 𝑠𝐻 𝑚 , 𝑄 = 𝑒(𝐻 𝑚 , 𝑠𝑄) BLS署名 22 / 50
23.
• 秘密の𝑠を𝑛個に分散, そのうち𝑘個集めると復元 •
𝑠 = 𝑓0とし乱数𝑓1, … , 𝑓𝑘−1で𝑘 − 1次多項式𝑓 𝑥 = σ𝑖 𝑓𝑖 𝑥 𝑖を構成 • 異なる𝑛個の点𝑥1, … , 𝑥 𝑛を選びユーザ𝑖に(𝑥𝑖, 𝑠𝑖 ≔ 𝑓 𝑥𝑖 )を配布 • 𝑘 − 1次多項式は𝑘個の点が決まると一意に決まる 𝑛 = 5, 𝑘 = 4の例 Shamirの秘密分散(SS : Secret Sharing) 𝑦 = 𝑓 𝑥 = 𝑓0 + 𝑓1 𝑥 + 𝑓2 𝑥2 + 𝑓3 𝑥3 0 𝑥 𝑦 𝑠0 (𝑥1, 𝑦1) (𝑥2, 𝑦2) (𝑥4, 𝑦4) (𝑥5, 𝑦5) (𝑥3, 𝑦3) 23 / 50
24.
• 𝑘 −
1次多項式𝑓 𝑥 = 𝑓0 + 𝑓1 𝑥 + ⋯ + 𝑓𝑘−1 𝑥 𝑘−1 • 𝑛人中の𝑘個の点集合{ 𝑢1, 𝑓 𝑢1 , … , 𝑢 𝑘, 𝑓 𝑢 𝑘 } • {𝑢1, … , 𝑢 𝑘}から𝑐𝑖 ≔ ς 𝑗∈{1,…,𝑘}∖ 𝑖 −𝑢 𝑗 𝑢 𝑖−𝑢 𝑗 ∈ 𝔽 𝑝を計算する • 𝑠0 = 𝑓 0 = σ𝑖=1 𝑘 𝑐𝑖 𝑓(𝑢𝑖)で復元 • 𝑓(𝑢𝑖)の𝔽 𝑝の元の線形和 Lagrange補間 (𝑥1, 𝑓 𝑥1 ) (𝑥2, 𝑓 𝑥2 ) (𝑥 𝑛, 𝑓 𝑥 𝑛 ) 𝑠0 ... (𝑢1, 𝑓 𝑢1 ) (𝑢 𝑘, 𝑓 𝑢 𝑘 ) ... 𝑛人に配布 𝑘人集まる 𝑠0 復元秘密の値 24 / 50
25.
• BLS署名の要素は全て「𝑠 ×○」という形 •
署名鍵 : 𝑠 = 𝑠0 • 検証鍵 : 𝑠𝑄 • 署名 : 𝑠𝐻(𝑚) • 署名鍵だけでなく検証鍵や署名も秘密分散可能 BLS署名と秘密分散 25 / 45 𝑥𝑖, 𝑠𝑖 = 𝑓 𝑥𝑖 , 𝑠𝑖 𝑄 𝑠 ... 𝑠𝑖 𝐻(𝑚) ... 各自に署名鍵𝑠𝑖と 検証鍵𝑠𝑖 𝑄を配布 各自が署名 𝑠0 𝐻(𝑚) 署名を復元マスター 署名鍵 マスター 検証鍵𝑠𝑄で 検証可能 𝑠𝑖 𝑄で検証可能 25 / 50
26.
• 𝑛人のグループ𝐺 • DKG(後述)を用いてそれぞれに𝑠𝑖を配布,
𝑠𝑖 𝑄を共有 • 全体の検証鍵𝑠𝑄はそれぞれの𝑠𝑖 𝑄から復元可能 • 𝑠は誰も知らない • 合意形成 • 各自が署名𝑠𝑖 𝐻(𝑚)を作る • 𝑛人のうち𝑘人が集まると𝑠𝐻(𝑚)を復元 • この値を元に次の乱数を決める • これらのステップで決まる値は • DKG後の初期値から全て決定的で一意 • 合意無しにはだれも予測できない 乱数の更新 26 / 50
27.
• 信頼された第三者機関に頼らずに 複数人のユーザが秘密鍵と公開鍵を共有する • Feldmanの検証可能な秘密分散(Verifiable
SS) • Shamirの秘密分散で最初に𝑓0 𝑃, … , 𝑓𝑘−1 𝑃を公開 • ユーザ𝑖は受け取った(𝑢𝑖, 𝑓 𝑢𝑖 )から σ 𝑗 𝑢𝑖 𝑗 𝑓𝑗 𝑃 = 𝑓 𝑢𝑖 𝑃を計算 • これが𝑓 𝑢𝑖 × 𝑃に等しいことを確認 • 秘密分散した人が嘘をつけない DKG(distributed key generation) 27 / 50
28.
• 各自がFeldmanのVSSを実行しそれらを結合する • ユーザ𝑖は𝑓𝑖
𝑥 ∶= σ 𝑘 𝑓𝑖,𝑘 𝑥 𝑘を作り{𝑓𝑖,0 𝑃, … , 𝑓𝑖,(𝑘−1) 𝑃}を公開 • ユーザ𝑗に(𝑢𝑗, 𝑓𝑖 𝑢𝑗 )を配布 • ユーザ𝑖は受け取った𝑓𝑗(𝑢𝑖))を検証しσ 𝑗 𝑓𝑗(𝑢𝑖)を計算 • 𝑓 𝑥 ≔ σ 𝑗 𝑓𝑗(𝑥)とすると各ユーザは𝑓(𝑢𝑖)を取得できた • 𝑓の値はだれも知らない • 厳密には𝑓の分布が完全ランダムにはならない攻撃がある • https://link.springer.com/chapter/10.1007/3-540-48910-X_21 • Dfinityのケースでは安全性に影響がないと判断 joint-Feldman SS 𝑖 𝑓𝑖(𝑢1) 1 𝑗 𝑓𝑖(𝑢𝑗) 𝑖1 𝑗 𝑓1(𝑢𝑖) 𝑓𝑗(𝑢𝑖) 配布 検証 𝑗 𝑓𝑗(𝑢𝑖) 結合 28 / 50
29.
• 誰が誰にいくら払ったのか隠したい • こうしたい •
𝑎, 𝑏, 𝑐, 𝑑の中身を知らなくても 𝑎 = 𝑏 + 𝑐 + 𝑑が成り立つことを確認したい 秘匿性 Aliceの100円 手数料5円 Bobの30円 Aliceの65円 ?の𝑎円 手数料𝑑円 ?の𝑏円 ?の𝑐円 29 / 50
30.
• 公平なジャンケンをするためのもの • Aliceが手を決めてコミットメント𝑐をBobに渡す •
Bobも同様に𝑐′をAliceに渡す • 𝑐, 𝑐′を受け取ったら手を明かす • その手からコミットメントが正しいかを確認する • 秘匿性 : コミットメントから手の情報は得られない • 拘束性 : コミットメント時の情報は後で変えられない コミットメント 30 / 50
31.
• 𝑃, 𝑄を互いに何倍か分からない楕円曲線の点とする •
𝑥に対するコミットメント • 乱数𝑟をとり𝑐 𝑥, 𝑟 ≔ 𝑥𝑃 + 𝑟𝑄とする • オープン • 𝑥, 𝑟を公開する𝑐 𝑥, 𝑟 = 𝑐を確認する • 拘束性 • 𝑐 𝑥, 𝑟 = 𝑐(𝑥′, 𝑟′)となる𝑥′ ≠ 𝑥を作れたとすると 𝑥𝑃 + 𝑟𝑄 = 𝑥′ 𝑃 + 𝑟′ 𝑄 ⟺ 𝑃 = 𝑟′ − 𝑟 𝑥 − 𝑥′ 𝑄 • 離散対数の困難さからこれは無理 • 加法準同型性 • 𝑐 𝑥, 𝑟 + 𝑐 𝑥′, 𝑟′ = 𝑥 + 𝑥′ 𝑃 + 𝑟 + 𝑟′ 𝑄 = 𝑐(𝑥 + 𝑥′, 𝑟 + 𝑟′) Pedersenのコミットメント 31 / 50
32.
• 暗号化(or その他の変換)したまま計算できる •
加法準同型暗号 • 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 = 𝐸𝑛𝑐 𝑚1 + 𝑚2 • 𝐸𝑛𝑐 𝑎 = 𝐸𝑛𝑐 𝑏 + 𝐸𝑛𝑐 𝑐 + 𝐸𝑛𝑐(𝑑)を確認すれば 中身を知らなくても𝑎 = 𝑏 + 𝑐 + 𝑑を確認できる • 注意 • 2個の暗号文𝐸𝑛𝑐(𝑥)と𝐸𝑛𝑐(𝑦)があったときに それらを比較しても𝑥 = 𝑦か不明(通常𝐸𝑛𝑐 𝑥 ≠ 𝐸𝑛𝑐(𝑦)) • 暗号の安全性に関わる性質 • 𝑥, 𝑦を知らずに𝑥 = 𝑦を確認する(ゼロ知識証明) 準同型性 32 / 50
33.
• 𝐸𝑛𝑐 𝑎
= 𝐸𝑛𝑐 𝑏 + 𝐸𝑛𝑐(𝑐)が確認できたとしても • 100円 = 1000円 +(-900)円かもしれない • マイナスを許すとお金を増やせてしまう • 暗号文の範囲制約が必要 • 範囲制約の一つのやり方 • 𝑥 = σ𝑖 𝑥𝑖2𝑖と2進数展開(0 ≤ 𝑥 < 232を仮定) • 𝐸𝑛𝑐(𝑥𝑖)は𝑥𝑖 = 0 or 1を暗号化したもの • これはゼロ知識証明を使って検証できる • {𝐸𝑛𝑐 𝑥𝑖 }が全て0 or 1であることを検証したら 𝐸𝑛𝑐 𝑥 = 𝐸𝑛𝑐(σ𝑖 2𝑖 𝑥𝑖) = σ𝑖 2𝑖 𝐸𝑛𝑐(𝑥𝑖)で𝐸𝑛𝑐(𝑥)を構成 • 0 ≤ 𝑥 < 232を保証できる • コミットメントではリング署名などを利用 範囲制約 33 / 50
34.
• 動機 • Aliceは関数𝑓と秘密の入力𝑤と秘密でない入力𝑥に対して 𝑦
= 𝑓(𝑥, 𝑤)を計算する • BobはAliceがちゃんと𝑓(𝑥, 𝑤)を計算したことを確認したい • ただし𝑤も𝑦も知らないままで • 𝑓を𝑓 − 𝑦に置き換えるとBobは 「Aliceが𝑥に対して𝑓 𝑥, 𝑤 = 0となる𝑤を知っている」 ことを確認することになる • 利用しているところ • Zcash(https://z.cash) 匿名仮想通貨 • Ethereumのスマートコントラクト zk-SNARK 34 / 50
35.
• 鍵生成 • 多項式系回路𝐶に対して証明鍵𝑝𝑘と検証鍵𝑣𝑘を出力 •
証明 • 𝑝𝑘と𝐶 𝑥, 𝑤 = 0となる任意の𝑥, 𝑤に対して証明𝜋を出力 • 検証 • 𝑣𝑘と𝑥と𝜋に対して𝐶 𝑥, 𝑤 = 0となる𝑤が存在することを 確信できれば1, そうでなければ0を返す • 満たすべき性質 • 完全性 ; 証明者が正しく𝜋を出力すれば必ず検証は通る • 健全性 ; 証明者が𝐶 𝑥, 𝑤 = 0となる𝑤を知らずに作った𝜋は 検証を通らない • ゼロ知識性 ; 𝜋から𝑤に関する情報は得られない 定式化 35 / 50
36.
• Zero-Knowledge Succinct
Non-interactive ARGument of Knowledge • Zero-Knowledge ; ゼロ知識 • Succinct ; 証明の大きさが小さい(簡潔) • Non-interactive ; 非対話(一方向通信が一度だけ) • ARGument ; 証明者の演算能力に計算量的制約を仮定 • 仮定しない場合はProof zk-SNARK名前の由来 36 / 50
37.
• boolean回路 • and,
or, notなどと0 or 1の値をとる変数からできている • 𝑛𝑜𝑡 𝑥 = 1 − 𝑥 • 𝑎𝑛𝑑 𝑥1, 𝑥2 = 𝑥1 𝑥2 • 𝑜𝑟 𝑥1, 𝑥2 = 𝑛𝑜𝑡(𝑎𝑛𝑑(𝑛𝑜𝑡 𝑥1 , 𝑛𝑜𝑡 𝑥2 ) = 1 − 1 − 𝑥1 1 − 𝑥2 • 充足可能性問題(SAT: satisfiability problem) • 与えられた多項式を1にする{𝑥𝑖}が見つかるか • 算術回路 • 加減算, 乗算からなる多項式 • 例:𝑓 𝑐1, 𝑐2, 𝑐3 = 𝑐1 𝑐2(𝑐1 + 𝑐3) 回路 𝑐1 × 𝑐2 𝑐3 + × 𝑓(𝑐1, 𝑐2, 𝑐3) 37 / 50
38.
• Quadratic Span/Arithmetic
Problem • 一つの式に掛け算一つになるよう 変数を増やして式を分解する • 𝑐1 𝑐2 = 𝑐4 • 𝑐4 𝑐1 + 𝑐3 = 𝑐5 • 掛け算のノードにラベルを振る • 𝑔1 = 1, 𝑔2 = 2とし 𝑏𝑖 𝑔𝑗 = 𝛿𝑖𝑗となる多項式を準備 • 𝑏1 𝑥 = 2 − 𝑥, 𝑏2 𝑥 = 𝑥 − 1 • 各ノードの左辺, 右辺の入力と出力に 多項式𝐿𝑖, 𝑅𝑖, 𝑂𝑖を割り当てる • 𝑔𝑖上で𝐿𝑖 𝑅𝑖 = 𝑂𝑖 QSP/QAP 𝑐1 × 𝑐2 𝑐3 + × 𝑓(𝑐1, 𝑐2, 𝑐3) 38 / 50 𝑔𝑖 𝐿𝑖 𝑅𝑖 𝑂𝑖 𝑔1 𝑔2
39.
• 例:𝑓 𝑐1,
𝑐2, 𝑐3 = 𝑐1 𝑐2(𝑐1 + 𝑐3) • 𝑐4 = 𝑐1 𝑐2, 𝑐5 = 𝑐4(𝑐1 + 𝑐3) • 𝑏1 𝑥 = 2 − 𝑥, 𝑏2 𝑥 = 𝑥 − 1 • 割り当て表 • 𝐿 𝑥 ≔ σ𝑖 𝑐𝑖 𝐿𝑖 𝑥 = 𝑐1 𝑏1(𝑥) + 𝑐4 𝑏2 𝑥 • 𝑅 𝑥 ≔ σ𝑖 𝑐𝑖 𝑅𝑖 𝑥 = 𝑐2 𝑏1 𝑥 + 𝑐1 + 𝑐3 𝑏2(𝑥) • 𝑂 𝑥 ≔ σ𝑖 𝑐𝑖 𝑂𝑖 𝑥 = 𝑐4 𝑏1 𝑥 + 𝑐5 𝑏2(𝑥) • 𝑉 𝑥 ≔ 𝐿 𝑥 𝑅 𝑥 − 𝑂(𝑥) 算術回路からQAP 𝒄 𝟏 𝒄 𝟐 𝒄 𝟑 𝒄 𝟒 𝒄 𝟓 𝐿𝑖 𝑏1 0 0 𝑏2 0 𝑅𝑖 𝑏2 𝑏1 𝑏2 0 0 𝑂𝑖 0 0 0 𝑏1 𝑏2 39 / 50 𝑐1 𝑔1 𝑐2 𝑐4 𝑐4 𝑔2 𝑐1 + 𝑐3 𝑐5
40.
• ラベル𝑔𝑖 =
𝑖上で𝑏𝑖 𝑔𝑗 = 𝛿𝑖𝑗なので • 𝑃 1 = 𝑐1 𝑐2 − 𝑐4 • 𝑃 2 = 𝑐4 𝑐1 + 𝑐3 − 𝑐5 • 𝑃 1 = 𝑃 2 = 0なら𝑐1 𝑐2 = 𝑐4, 𝑐4 𝑐1 + 𝑐3 = 𝑐5 • これはもとの𝑓()を正しく計算していることになる • ターゲット多項式 • 𝑇 𝑥 ≔ ς𝑖(𝑥 − 𝑔𝑖) ; 今の場合は𝑇 𝑥 = (𝑥 − 1)(𝑥 − 2) • 𝑉 𝑔𝑖 = 0 ⇔ 𝑉(𝑥)が𝑇(𝑥)で割り切れる • 定義 • 多項式𝐿𝑖, 𝑅𝑖, 𝑂𝑖, 𝑇の組をQAPという • 𝑉が𝑇で割り切れるとき(𝑐𝑖)はQAPを満たすという • QAPを満たすことを確認できれば答えを知っている QAPの性質 40 / 50
41.
• 𝑑次多項式𝑓は高々𝑑個の解しか持たない • 勝手な𝑠に対して𝑓
𝑠 = 0となる確率は極めて低い • 𝑓 𝑠 = 0なら無視できる確率を除いて𝑓 ≡ 0である • 多項式のチェックを1点で代用する • Alice ; 多項式𝐿, 𝑅, 𝑂, 𝐻を選ぶ(𝑇は公開されている) • Bob ; 勝手な𝑠を選び 𝐿 𝑠 𝑅 𝑠 − 𝑂 𝑠 = ? 𝑇 𝑠 𝐻 𝑠 を確認すればAliceが正しい計算をしたと受理する • 要件 • Aliceは多項式を教えたくない • Bobは𝑠を教えたくない • どうやって? 多項式の確認 41 / 50
42.
• Pedersenのコミットメント的なことをする • 𝑃を楕円曲線の点として𝐸
𝑥 = 𝑥𝑃とする • 多項式𝑓 𝑥 = σ𝑖 𝑎𝑖 𝑥 𝑖に対して 𝐸 𝑓 𝑠 = σ𝑖 𝑎𝑖(𝑠 𝑖 𝑃)は𝑃, 𝑠𝑃, 𝑠2 𝑃, …の線形和で計算可能 • サブプロトコル • Bobは𝑃, 𝑠𝑃, 𝑠2 𝑃, …を公開する • Aliceは𝐸(𝑓 𝑠 )を計算してBobに送る 𝑠の秘匿化 42 / 50
43.
• Bobは𝐸(𝑓 𝑠
)が正しいと検証できるのか? • 𝑓(𝑥)を知らないのに • 𝑑-KC(Knowledge of Coefficient)仮定 • 𝑠, 𝛼を秘密とする 𝑃, 𝛼𝑃 , 𝑠𝑃, 𝛼𝑠𝑃 , … , (𝑠 𝑑 𝑃, 𝛼𝑠 𝑑 𝑃)が与えられたとき (𝑋, 𝛼𝑋)となっている𝑋はそれらの線形和の形でしか作れない • ペアリングベースはKnowledge of Exponentなどの派生仮定 • サブプロトコル • Bobが 𝑃, 𝛼𝑃 , 𝑠𝑃, 𝛼𝑠𝑃 , … , (𝑠 𝑑 𝑃, 𝛼𝑠 𝑑 𝑃)を公開する • Aliceは𝐸(𝑓 𝑠 )と𝐸(𝛼𝑓 𝑠 )を計算して返す • Bobは𝛼𝐸 𝑓 𝑠 = 𝐸(𝛼𝑓 𝑠 )を確認して 何らかの多項式を評価したものだと受理する 𝐸(𝑓 𝑠 )の確認 43 / 50
44.
• ペアリング再び • 𝐺1
= 𝑃 , 𝐺2 = 𝑄 , 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇とする • 𝐸1 𝑥 = 𝑥𝑃, 𝐸2 𝑥 = 𝑥𝑄とすると • 𝑠𝑃, 𝑠2 𝑃, …, 𝑠𝑄, 𝑠2 𝑄, … , 𝛼𝑠𝑃, 𝛼𝑠2 𝑃, …を公開しておけば 𝐸1 𝑓 𝑠 , 𝐸2 𝑔 𝑠 を計算できる • ペアリングの性質から 𝑒(𝐸1 𝑓 𝑠 , 𝐸2(𝑔 𝑠 )) = 𝑒(𝑃, 𝐸2(𝑓 𝑠 𝑔 𝑠 )) より𝐸1(𝑓 𝑠 )と𝐸2(𝑔 𝑠 )を「乗算」可能 𝐿(𝑠)と𝑅(𝑠)の乗算が必要 44 / 50
45.
• 準備 • ペアリングの選択 •
Bobは𝑠を選び𝑠𝑃, 𝑠2 𝑃, …を公開する • Aliceは𝐿, 𝑅, 𝑂, 𝐻を選び 𝐸1 𝐿 𝑠 , 𝐸2 𝑅 𝑠 , 𝐸1 𝑂 𝑠 , 𝐸1(𝐻 𝑠 )を計算して送る • Bobはそれらの正当性を確認したら𝐸2(𝑇 𝑠 )を計算し 𝑒 𝐸1 𝐿 𝑠 , 𝐸2 𝑅 𝑠 𝑒 −𝐸1 𝑂 𝑠 , 𝑄 = ? 𝑒 𝐸1 𝐻 𝑠 , 𝐸2 𝑇 𝑠 を比較して𝐿 𝑠 𝑅 𝑠 − 𝑂 𝑠 = 𝐻 𝑠 𝑇(𝑠)を確認する • 正しく回路の計算をしたと受理する 秘匿化されたプロトコル 45 / 50
46.
• ゼロ知識化 • 𝐸(𝐿
𝑠 )などからの情報漏洩をなくす • 非対話型化 • 検証可能な公開鍵の配布方法など • zk-STARK • Scalable Transparent ARguments of Knowledge • SNARKでは鍵生成時に必要な信頼された機関を取り除く • 高いスケーラビリティ • Scalable, transparent, and post-quantum secure computational integrity, https://eprint.iacr.org/2018/046 その他のテクニック 46 / 50
47.
• BN254 ;
256bit BN曲線 • 近年の攻撃手法の改良により100~110bitセキュリティレベル • https://github.com/herumi/ate-pairing • 0.2msec on Intel Core i7-7700 3.6GHz • 2015年時世界最速(おそらく今でも) • BN381 ; 128bitセキュリティレベルぐらい? • BLS12-381 ; Zcashが選定 ; 群の位数が256bitに納まる • https://z.cash/blog/new-snark-curve • BN254の3倍程度重い ペアリングの種類 47 / 50
48.
• いくつかの実装比較 • 粟野,
市橋, 池田, “2次拡大体上の汎用演算器を用いた254bit素 数ペアリング向けASICコプロセッサ”, SCIS2018 2D4-3 p.8 ペアリングのハードウェア実装 48 / 50 私のソフトウェア実装
49.
• WebAssembly(https://webassembly.org) • JavaScriptを補完するブラウザで動作する仮想マシン •
各種言語(C/C++, C#, Haskellなど)から生成可能 • 標準化されているため Edge, Chrome, Firefox, Safari, Android, iPhoneなどで動作 • 仮想通貨を扱うアプリをWASM上で動作させる • EVM ; Ethereum用WASMのサブセット • サンプルデモ • BLS署名(https://github.com/herumi/bls-wasm) • L2準同型暗号(https://github.com/herumi/she-wasm) • 我々のASIACCS2018の結果を実装したもの (暗号技術ではないが)WASM 49 / 50
50.
• 仮想通貨は新しい暗号技術の採用に積極的 • 準同型暗号 •
高機能署名 • ゼロ知識証明 • ペアリング • 従来の楕円曲線暗号に比べて重たい処理が多い • ハードウェアによる支援 • 将来的にはWASM VMのハードウェア化? まとめ 50 / 50
Download now