Top Banner
4 SFC [email protected] 4 — 2016-03-18 – p.1/38
38

ブロックチェーン連続講義 第4回 暗号技術のリテラシー

Feb 14, 2017

Download

Technology

Kenji Saito
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

暗号技術のリテラシーブロックチェーン連続講義第 4 回

慶應義塾大学 SFC研究所上席所員斉藤賢爾

[email protected]

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.1/38

Page 2: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

今回のテーマ暗号技術のリテラシー

暗号学的ハッシュ関数、公開鍵暗号系、楕円曲線暗号、デジタル署名、ゼロ知識証明などの基本的暗号技術とその考え方をはじめ、展性やそれを用いた攻撃など、セキュリティに関わるブロックチェーン特有の話題についても解説します

今回は以下の資料を大いに参考にしました漆嶌賢二さん「Bitcoinを技術的に理解する」(2014-06-02)http://www.slideshare.net/kenjiurushima/20140602-bitcoin1-201406031222

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.2/38

Page 3: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

暗号技術のリテラシー1. 暗号技術とブロックチェーン2. 脅威と防御3. 新たな分散コンセンサス基盤のための暗号技術

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.3/38

Page 4: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

1. 暗号技術とブロックチェーン–暗号学的ファウンデーション –

暗号学的ハッシュ関数デジタル署名

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.4/38

Page 5: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

暗号学的ハッシュ関数 (1)

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.5/38

Page 6: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

暗号学的ハッシュ関数 (2)

暗号学的ハッシュ関数 H は、データ mが与えられた場合

H(m) = H(m′)となるような m′ (m′ 6= m)を現実的な時間内に計算で求めることができないしたがって H(m)が与えられても mや m′ を現実的な時間内に計算で求めることができない

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.6/38

Page 7: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

どこで使われているか

ハッシュチェーン構造 (+ブロックの ID)

TX ID (+ Merkle木)

アドレス (公開鍵ダイジェスト)

チェックサムデジタル署名 ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.7/38

Page 8: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

具体的な関数ビットコイン

SHA-256 × SHA-256SHA-256 × RIPEMD-160二重に適用することの意味設計意図と異なる用途に用いることによる問題

ライトコインscrypt (メモリをふんだんに使う)

イーサリアムEthash (Dagger-Hashimotoの進化形)

DAG : Directed Acyclic Graph (有向非巡回グラフ)

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.8/38

Page 9: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

公開鍵暗号系

公開鍵から秘密鍵を推測することは極めて困難

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.9/38

Page 10: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

デジタル署名 (RSA)

本人が送ったものであり改竄されていないことが証明できるこの図は RSAでの方法

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.10/38

Page 11: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

一般化したデジタル署名署名入力 : <平文,秘密鍵>

出力 : 署名データ

検証入力 : <平文,署名データ, 公開鍵>

出力 : OKまたは NG署名データは平文と公開鍵を使って試験できるある数学的な性質を満たしているかどうか

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.11/38

Page 12: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

公開鍵証明書

ウェブの世界等では公開鍵インフラストラクチャが利用されているそれにはルートが存在する

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.12/38

Page 13: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

どこで使われているか

Mから Aに 60BTC送る例条件や署名は実際にはスクリプトのかたちで記述される

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.13/38

Page 14: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

楕円曲線上の演算楕円曲線 :y2 = x3 + ax + bを満たす曲線直線を引くと典型的に 3点と交わるX軸で線対称

楕円曲線上の点の加算・乗算

A + B = D

A + A + . . . = nA

整数でそれをやる

A

B

C

D

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.14/38

Page 15: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

楕円曲線 (EC) DSA

曲線パラメータ基準点 G(x, y),剰余の素数 p,曲線定数 a, b

公開鍵 nGとパラメータ G, p, a, bから秘密鍵 nを見つけるのは非常に困難 (nが大きければ)

署名の度に乱数 k(0 ≤ k ≤ n)を生成し、kG,平文のダイジェストおよび nを使った演算により署名値を得るnGとパラメータ、平文のダイジェストおよび署名値を使った演算で得られた点が、ある性質を満たすなら署名値は正しい

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.15/38

Page 16: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ビットコインにおける ECDSA

曲線パラメータは何でもセキュアというわけではない様々な団体が、選択可能なパラメータを推奨ビットコインでは secp256k1を採用する

Certicom社による推奨のひとつ

秘密鍵 : 256ビット公開鍵 : 512ビット

公開鍵の 160ビットダイジェストを宛先として利用

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.16/38

Page 17: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

アドレスのデザインのリテラシー私のメールアドレス (架空のもの含む) で考える

[email protected] (本物)コーネル大学 (全体)

[email protected] (架空)慶應義塾大学 (SFC)

どちらでどんな事態が発生するか日常におけるチェック機構

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.17/38

Page 18: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

Base58Check表現公開鍵ダイジェストをアドレスとして表現する

1. 公開鍵の SHA-256 × RIPEMD-160ダイジェストを取得2. バージョンバイト (メインネット = 0)を先頭に付ける3. その SHA-256 × SHA-256ダイジェストを取得する4. その先頭の 4バイトを 2. で得た値の末尾につける5. base58で文字列化する

base58数字 10字 +大小文字 26×2字 -紛らわしい文字 4字 (l,I,O,0)= 58字データを巨大数として末尾から 58で割った余りを当てはめていく

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.18/38

Page 19: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ビットコイン取引への署名

実際には不可能 (署名するデータの中に署名を埋め込むことはできない)

署名時に入力スクリプトの部分を対応する出力スクリプトで置き換えるブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.19/38

Page 20: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

2. 脅威と防御–君は資産を守り切ることができるか –

展性 (malleability)

秘密鍵の守り方マルチシグ誕生日についてプライバシーの守り方

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.20/38

Page 21: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

Script (General)

Output:

OP_DUP OP_HASH160

OP_PUSHDATA* <Public-key digest>

OP_EQUALVERIFY OP_CHECKSIG

Input:

OP_PUSHDATA* <Signature>

OP_PUSHDATA* <Public key>

TX output addressed to a public-key digest and referring

input

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.21/38

Page 22: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

Script Processing

Concatinates scripts: input → output

Stack-based processing

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.22/38

Page 23: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

展性 (malleability)

展性とは、もともと金などが叩くと破壊されず延びる性質

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.23/38

Page 24: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

展性を用いた攻撃 (1)

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.24/38

Page 25: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

展性を用いた攻撃 (2)

コインの状態がブロックチェーン上のそれと一致しなくなる影響が波及するおそれがある

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.25/38

Page 26: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

秘密鍵の守り方秘密鍵を失うと、「量」ないし「値」に対する支配を失うそして鍵は失効させることができない

秘密鍵をオンラインな場所に置いておくと漏洩の危険がある

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.26/38

Page 27: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ペーパーウォレット

スマホを持っている人 (=誰でも)に見られたら終わる

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.27/38

Page 28: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ブレインウォレット秘密鍵を自分の頭の中だけにしまっておく脳がオンラインにならない限り安全

256ビットの値を覚えておけるか?

暗号学的ハッシュ関数を適用した結果 256ビットになる何かなら覚えられるただし、容易には思いつけない何かにしておく必要がある誰が勝ち抜ける?カレーを冷やしてしまった。土星も!土星も!

acfedf64beb9d4c1670d1d0890e3231f5effc72fc8e54c3e31035196f86ae1f0

かつ秘密鍵の利用はオフラインのコンピュータで行う

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.28/38

Page 29: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

マルチシグ鍵m個中 n個の署名で OKとする以下、概念的に

償還スクリプト :OP_2 <A> <B> <C> OP_3 OP_CHECKMULTISIG

出力スクリプト :OP_DUP OP_HASH160 <償還スクリプトダイジェスト> OP_EQUALVERIFY

OP_EVAL

入力スクリプト :<署名 A> <公開鍵 A> <署名 C> <公開鍵 C> <償還スクリプト>

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.29/38

Page 30: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ここで突然、誕生日についてお客さまの中に同じ誕生日の方はいらっしゃいますか?

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.30/38

Page 31: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

誕生日攻撃自分と同じ誕生日の人には滅多に会わないが、自分の知人同士が同じ誕生日という組み合わせは無数

ある人数が集まっている部屋に入って、自分と同じ誕生日の人がいる確率が 50%以上になるためには、253人以上が必要同じ誕生日のふたりがいる確率が 50%以上になるためには、23人で OK

同じように、特定のダイジェストに衝突させるデータを見つけるのは困難だが、ダイジェストが衝突するふたつのデータを見つけることは、それよりずっと簡単ダイジェストが nビットの場合、2

n

2 回程度の試行で衝突するデータを見つけられる可能性が高くなるしたがって、160ビットのダイジェストは、誕生日攻撃に対しては80ビットの強度しかない

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.31/38

Page 32: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

プライバシーの守り方

ひとつの取引データの入力群と出力群を用いる方法もあるブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.32/38

Page 33: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

3. 新たな分散コンセンサス基盤のための暗号技術

–これからのデザインのために –

秘匿と証明Web of Trust

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.33/38

Page 34: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ゼロ知識証明ある (数学的な)命題が真であることを伝えるのに、他の知識を渡さずに真だと証明できる方式応用例公開鍵暗号、デジタル署名、. . .

確定的ではなく確率的な証明

ビットコインが開けてしまったかも知れない攻撃手法の新地平

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.34/38

Page 35: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

秘密分散法秘密のデータ (秘密鍵等) を複数のシェアに分割する一定数のシェアを持ち寄ることで元のデータを復元できる

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.35/38

Page 36: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

秘匿 (集合)計算準同型暗号データを暗号化したまま、加算や乗算などの演算が可能

秘匿共通集合計算Aと B がそれぞれ秘密の集合 SA と SB を保持互いにそれらを漏らさずに SA ∩ SB のみを取得

ブラインド署名署名の対象となるデータを伏せたまま署名させる

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.36/38

Page 37: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

Web of Trust

ルートはあるが、自分であるブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.37/38

Page 38: ブロックチェーン連続講義 第4回 暗号技術のリテラシー

ご質問や議論を

ブロックチェーン連続講義第 4 回「暗号技術のリテラシー」— 2016-03-18 – p.38/38