Upgrade to Pro — share decks privately, control downloads, hide ads and more …

楕円曲線暗号で学ぶ、暗号理論の基礎

Avatar for mtdkki mtdkki
June 26, 2018
140

 楕円曲線暗号で学ぶ、暗号理論の基礎

Avatar for mtdkki

mtdkki

June 26, 2018
Tweet

Transcript

  1. @mtdkki • 2017/3 一橋大学中退 • 2017/4 〜 一年間ヒモするなどして生き延びる • 2018/6

    〜 Gunosyでインターンさせて貰ってます • Zk-SNARKsを含めた暗号理論のリサーチを担当中
  2. ブロックチェーン を支える基盤的技術として • ECDSA … BTCの送金時の正当性の認証を するデジタル署名アルゴリズム。楕円曲線暗 号を使う。 • ハッシュ関数 … ブロックの改竄を検知するた めに使われている ブロックチェーンにおける、暗号技術の役割

    より便利な機能を実装するための技術として • Zk-SNARKS … Z Cashにおける匿名での送 金を実装するために使われている。 Ethereum でも実装された。 • スケーラビリティ問題解決のポテンシャル  …  より高速・軽量にTxを認証できるようになるか もしれない。 大きく2つ!!
  3. 署名アルゴリズムとは? • 1. 暗号化アルゴリズムを使って、秘密鍵から公開鍵 を作り出す。 • 2. 公開鍵(アドレス)に対応する秘密鍵を含む署名を 正当とする •

    公開鍵から秘密鍵を推測出来ないようなアルゴリズ ムが必要(ECDSAの場合は、楕円曲線暗号 ) 秘密鍵 公開鍵 (アドレス) 暗号化アルゴリズム この暗号化アルゴリズムがほし い!!
  4. 現代の暗号化アルゴリズム=数学 現代暗号 • 暗号化アルゴリズムを公開 • 逆算の計算量が安全性を保証 • 必要なのは、逆算困難な数学的問 題 古典暗号

    • 暗号化アルゴリズムを秘匿 • アルゴリズムが知られていないこと が安全性を保証 • 必要なのは、バレにくい複雑なアル ゴリズム 逆算が非常に難しい関数を、 一 方向性関数と呼ぶ コンピュータの進 化
  5. 一方向性関数 離散対数問題 素因数分解問題 RSA暗号等 剰余系の離散対数 問題 楕円曲線上の離散対 数問題 ElGamal暗号等 楕円曲線暗号等

    主要な一方向性関数による現代暗号技術の分類 ポイント • 現代暗号アルゴリズム はどれかの一方向性 関数に属している • 逆に言うと、一方向性 関数があれば、現代暗 号アルゴリズムが作れ る 整数論を使う 群論を使う
  6. 離散対数問題のざっくりとした定義 y, g を整数とし、* を任意の二項演算子とする。 y = g * g

    * g * …… 与えられたyとgに対してこの等式が成り立つ時、演算が何回行われたかを求めることを、離散対数問題と呼び ます。 離散対数問題 比較的簡単な問題 ポイント • 二項演算だけ定義 すれば良いので簡 単そう • 一方向性関数の 性質を満たしてい ることが多い 例: 125 = 5 * 5 * ... ➡ 3回
  7. 楕円曲線における加算 • 右図は、P + Q = Rを示している • PとQを通る直線と楕円曲線との交点 R'を

    x軸に対して反転させた点が R • わざわざ反転させているのは、 R'を演算 結果Rとすると、P=Q=Rとなってしまうか ら • 楕円曲線は、x軸に対して線対称なので、 R'が存在するならばRも必ず存在する。
  8. 楕円曲線における離散対数問題① R = P + P + … = N

    * P PとNが与えられた時、Rを求めるには、 2P = P * 2 4P = 2P * 2 5P = 4P + P ... と言ったように、演算の工夫をすることで、比較的少ない計算量(おおよそlog2N)で求めることが出来る。 離散対数問題と同じ形 N=100の場合は、7回!! ゴールは、秘密 鍵から公開鍵を 一方向に作るア ルゴリズムを作 ること
  9. 楕円曲線上の離散対数問題② R = P + P + … = N

    * P RとPが与えられた状態でNを求めるには、N回総当たりで調べるしかない (演 算の工夫が出来ないから)。 このことから、Nをものすごく増やした時、楕円曲線上の離散対数問題は、 計 算量的に逆算不可能!! N=100の場合、100回!! 秘密鍵から公開鍵を作れる!!