Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

自作ペアリング/BLS署名ライブラリの紹介

938 views

Published on

Blockchain tokyo18 LT

Published in: Technology
  • Be the first to comment

自作ペアリング/BLS署名ライブラリの紹介

  1. 1. 自作ペアリング/BLS署名 ライブラリの紹介 blockchain.tokyo#18 2019/3/26 光成滋生
  2. 2. • サイボウズ・ラボでセキュリティのR&D / DFINITY • ペアリング暗号の研究と実装 • 署名、準同型暗号、ゼロ知識証明など • https://github.com/herumi @herumi 2 / 9
  3. 3. • 楕円曲線 • 𝑟個のギザギザがある歯車 • 𝑟回回すと元に戻る • ペアリング • 2個の楕円曲線𝐺1, 𝐺2から1の𝑟乗根への関数 • 双線形性 𝑒 𝑎𝑃, 𝑏𝑄 = 𝑒 𝑃, 𝑄 𝑎𝑏 楕円曲線とペアリング 3 / 9
  4. 4. • 公開鍵や署名を集約したり秘密分散したりできる • ペアリングを使って実現 • 本来の意味でのmult-sigも可能 • 𝑠𝑖 ; 秘密鍵 • 𝑠𝑖 𝑄 ; 公開鍵 • 𝑠𝑖 𝐻(𝑚) ; 署名 BLS署名 𝑥𝑖, 𝑠𝑖 = 𝑓 𝑥𝑖 , 𝑠𝑖 𝑄 𝑠 ... 𝑠𝑖 𝐻(𝑚) ... 各自に秘密鍵𝑠𝑖と 公開鍵𝑠𝑖 𝑄を配布 各自が署名 𝑠0 𝐻(𝑚) 署名を復元マスター 秘密鍵 マスター 公開鍵𝑠𝑄で 検証可能 𝑠𝑖 𝑄で検証可能 4 / 9
  5. 5. • 結構難しい数学 • 基本的なところから解説した本 • 『クラウドを支えるこれからの暗号技術』 ペアリングの中身 5 / 9
  6. 6. • BN254曲線の世界最速実装 (2010, 2013) • http://sac2013.irmacs.sfu.ca/slides/s1.pdf • libsnark(zkSNARK proofs) • https://github.com/scipr-lab/libsnark • 2014年BN254ペアリング実装でate-pairingが採用される github.com/herumi/ate-pairing 6 / 9
  7. 7. • herumi/mcl • ate-pairingの再設計版 • BLS12-381対応(BLS署名のBLSとは別) • herumi/bls • 2016年 DFINITYから「BLS署名を実装して」というメール • 当時数名? 2018年 → github.com/herumi/{mcl, bls} 7 / 9
  8. 8. • Ethereum 2.0 • 2018年採用される github.com/herumi/bls 8 / 9
  9. 9. • OS • Windows, Linux, Mac対応 • アーキテクチャ • JITアセンブラXbyakによるx64 CPU最適化 • LLVM bitcodeによるARM64(その他のCPU)対応 • WebAssembly対応 • 言語バインディング • Go • JavaScript • https://herumi.github.io/bls-wasm/bls-demo.html 各種OS/言語に対応 9 / 9

×