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
mtdkki
June 26, 2018
0
170
楕円曲線暗号で学ぶ、暗号理論の基礎
mtdkki
June 26, 2018
Tweet
Share
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
400
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Music & Morning Musume
bryan
47
7.1k
What's in a price? How to price your products and services
michaelherold
247
13k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
79
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
87
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Transcript
楕円曲線暗号で学ぶ、暗号理論 の基礎
@mtdkki • 2017/3 一橋大学中退 • 2017/4 〜 一年間ヒモするなどして生き延びる • 2018/6
〜 Gunosyでインターンさせて貰ってます • Zk-SNARKsを含めた暗号理論のリサーチを担当中
プレゼンの目的 • 暗号理論の勉強意義について知ってもらう • 暗号理論に関する基礎知識を知ってもらう • 暗号理論を理解するために必要な知識が何なのかを知ってもらう
結論 ブロックチェーン技術で活用されている暗号化技術を理解するには、 数学的な理論への理解は避けては通れない ...!! 数学 基礎的な暗号技 術 難しめの 暗号技術 ZkSNARKsなど
フロー 1. ブロックチェーンにおける、暗号技術の役割 2. ざっくりと署名アルゴリズムについて 3. 暗号化アルゴリズムと一方向性関数について 4. 楕円曲線暗号について 5.
暗号化技術を理解するためのロードマップ
ブロックチェーン における、 暗号技術の役割
ブロックチェーン を支える基盤的技術として • ECDSA … BTCの送金時の正当性の認証を するデジタル署名アルゴリズム。楕円曲線暗 号を使う。 • ハッシュ関数 … ブロックの改竄を検知するた めに使われている ブロックチェーンにおける、暗号技術の役割
より便利な機能を実装するための技術として • Zk-SNARKS … Z Cashにおける匿名での送 金を実装するために使われている。 Ethereum でも実装された。 • スケーラビリティ問題解決のポテンシャル … より高速・軽量にTxを認証できるようになるか もしれない。 大きく2つ!!
ECDSA(Elliptic Curve Digital Signature Algorithm) Bitcoinなどの暗号通貨の送金時に使われる、送金者の正当性を確かめるた めのアルゴリズム。 ⇒ECDSAが無ければ、安全な送金が出来ず、暗号通貨は成立しない ECDSA =
アドレスに対応する正当な秘密鍵を 持っている人だけが送金できるよって仕組み
楕円曲線暗号とECDSAの関係 ECDSA 署名アルゴリズム:秘密鍵と公開鍵を使った認証を実装 楕円曲線暗号:秘密鍵と公開鍵を作る暗号化アルゴリズム
ざっくり署名アルゴリズム
署名アルゴリズムとは? • 1. 暗号化アルゴリズムを使って、秘密鍵から公開鍵 を作り出す。 • 2. 公開鍵(アドレス)に対応する秘密鍵を含む署名を 正当とする •
公開鍵から秘密鍵を推測出来ないようなアルゴリズ ムが必要(ECDSAの場合は、楕円曲線暗号 ) 秘密鍵 公開鍵 (アドレス) 暗号化アルゴリズム この暗号化アルゴリズムがほし い!!
暗号化アルゴリズムと一方向性関数
現代の暗号化アルゴリズム=数学 現代暗号 • 暗号化アルゴリズムを公開 • 逆算の計算量が安全性を保証 • 必要なのは、逆算困難な数学的問 題 古典暗号
• 暗号化アルゴリズムを秘匿 • アルゴリズムが知られていないこと が安全性を保証 • 必要なのは、バレにくい複雑なアル ゴリズム 逆算が非常に難しい関数を、 一 方向性関数と呼ぶ コンピュータの進 化
一方向性関数 離散対数問題 素因数分解問題 RSA暗号等 剰余系の離散対数 問題 楕円曲線上の離散対 数問題 ElGamal暗号等 楕円曲線暗号等
主要な一方向性関数による現代暗号技術の分類 ポイント • 現代暗号アルゴリズム はどれかの一方向性 関数に属している • 逆に言うと、一方向性 関数があれば、現代暗 号アルゴリズムが作れ る 整数論を使う 群論を使う
楕円曲線暗号における離散対数問題
離散対数問題のざっくりとした定義 y, g を整数とし、* を任意の二項演算子とする。 y = g * g
* g * …… 与えられたyとgに対してこの等式が成り立つ時、演算が何回行われたかを求めることを、離散対数問題と呼び ます。 離散対数問題 比較的簡単な問題 ポイント • 二項演算だけ定義 すれば良いので簡 単そう • 一方向性関数の 性質を満たしてい ることが多い 例: 125 = 5 * 5 * ... ➡ 3回
楕円曲線とは 楕円曲線の便利な性質 • 1 楕円曲線上の二点を通る交線 • 2 楕円曲線上の一点を通る接戦 が、必ず楕円曲線上のもう一点と交わる 楕円曲線上で二項演算が定義できる
y^2 = x^3 + ax + b
楕円曲線における加算 • 右図は、P + Q = Rを示している • PとQを通る直線と楕円曲線との交点 R'を
x軸に対して反転させた点が R • わざわざ反転させているのは、 R'を演算 結果Rとすると、P=Q=Rとなってしまうか ら • 楕円曲線は、x軸に対して線対称なので、 R'が存在するならばRも必ず存在する。
楕円曲線における倍算 加算と同様です。 右図は、2 * P = Rを示しています。
楕円曲線における離散対数問題① R = P + P + … = N
* P PとNが与えられた時、Rを求めるには、 2P = P * 2 4P = 2P * 2 5P = 4P + P ... と言ったように、演算の工夫をすることで、比較的少ない計算量(おおよそlog2N)で求めることが出来る。 離散対数問題と同じ形 N=100の場合は、7回!! ゴールは、秘密 鍵から公開鍵を 一方向に作るア ルゴリズムを作 ること
楕円曲線上の離散対数問題② R = P + P + … = N
* P RとPが与えられた状態でNを求めるには、N回総当たりで調べるしかない (演 算の工夫が出来ないから)。 このことから、Nをものすごく増やした時、楕円曲線上の離散対数問題は、 計 算量的に逆算不可能!! N=100の場合、100回!! 秘密鍵から公開鍵を作れる!!
今までの話をまとめると 楕円曲線暗号で 秘密鍵と公開鍵を 安全に作れる 秘密鍵と公開鍵を 使って、署名アル ゴリズムによる認 証が出来る Bitcoinなどで、安 全な送金を行うこ
とが出来る
暗号理論を理解するためのロードマッ プ
数学 群論 一方向性関数を利用す るために演算や集合を 色々工夫しよう 整数論 素数の性質を利用した りして、一方向性関数 を見つけたりしよう 基礎的な暗号技術
RSA暗号・Elgamal暗号 ・楕円曲線暗号など 難しめの 暗号技術 ZkSNARKsなど
ご静聴ありがとうございました