Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

秘密分散法の数理

3.096 visualizaciones

Publicado el

秘密分散法の概要と、そのガロア拡大体上での実装を、数理的に説明。

【訂正】p.36
logとexpが逆になっています。正しくは、
a × b = exp( log(a) + log(b) )
a ÷ b = exp( log(a) - log(b) )
となります。

Publicado en: Tecnología
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks }} ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

秘密分散法の数理

  1. 1. 秘密分散法! ~ Secret Sharing Scheme ~ Akito Tabira! 2015/12/17 最終更新! 2015/05/01 新規作成
  2. 2. 秘密分散法概論
  3. 3. 書籍 • 秘密データ「シークレット」を複数のデータ「シェア」に分散さ せ、その内のいくつかが わないとシークレットを復元できない 仕組み! • 最も単純なものは「(K, N)-閾値秘密分散法」と呼ばれる! - N: 分散して保持しておくシェア数! - K: 秘密データの復元に必要なシェア数 秘密分散法とは 概論 3本資料では(K, N)-閾値秘密分散法のみを扱う secret share1 share2 share3 share4 share5 分散段階 secret share1 share2 share3 share4 share5 復元段階
  4. 4. 書籍 • 一般的に、n次方程式を求めるにはn+1点が必要! ➡ (K, N)-閾値秘密分散法ではK-1次方程式を利用! • 情報理論的安全性を持つ (⇔ 計算量的安全性) グラフで理解する 概論 4 2点から直線が求まる 1点では直線は定まらない secret
  5. 5. 書籍 1. K-1次の多項式を生成する! ! ! ! 2. 番目のシェア を計算する 実装: 分散段階 概論 5 f(x) = aK 1xK 1 + · · · + a1x1 + S i = 1, 2, . . . , N S: 分散対象のシークレット ai: 乱数値 i f(i) y切片
  6. 6. 書籍 • 連立方程式を解く! ! ! ! ! • ただし、シークレットSだけを求めれば良い場合はラグランジュ補 間を利用すれば楽に求められる! - この場合、係数値 は求めることができない! - シェアの追加生成をする場合は連立方程式を解く必要がある 実装: 復元段階 概論 6 0 B @ xK 1 1 . . . x1 1 1 ... ... ... ... xK 1 K . . . x1 K 1 1 C A 0 B B B @ aK 1 ... a1 S 1 C C C A = 0 B @ f(x1) ... f(xK) 1 C A ai ※ シェアの追加生成には元の多項式が必要
  7. 7. 書籍 • 機密情報の搬送! - 搬送元で分散し、搬送先で復元する! - 搬送途中での盗難や紛失のリスクを低減できる! • 機密情報のバックアップ! - 機密情報を分散して保管する! - 暗号化だけでは十分な計算パワーがあれば復元できてしまう! • 暗号 の複数の運用者での分散保有! - 盗難・紛失のリスクを低減できる! - 運用者個人での不正を防止できる 用途例 概論 7
  8. 8. 書籍 • 計算機は「無限」を扱えない! ➡ 疑似的に無限を表現するには巨大な多倍長整数を扱う必要があ り、演算コストが膨大になる! ➡ また、「無限空間における一様乱数」は生成できず、偏りのあ る乱数生成がセキュリティ上のリスクを生じさせる! • 復元時に除算がある! ➡ 浮動小数演算上の誤差が発生する可能性がある! ➡ そのため、整数演算で完結するよう実装上の注意が必要となる 実装上の課題 概論 8
  9. 9. 書籍 • 有限個の整数しか登場せず、! • 四則演算が自由にできる世界を作れば良い 実装上の課題: 解決策 概論 9 有限体の世界へ
  10. 10. 書籍 • 秘密分散法とは、シークレットを複数のシェアに分散させ、その 内のいくつかが わないとシークレットを復元できない仕組み! • 機密情報を安全に保護するために利用される! • 最も単純なものは(K, N)-閾値秘密分散法! • K-1次多項式からシェアを生成する! • 実用上は有限体上で実装する! - 有限体については後述 概論まとめ 概論 10
  11. 11. 秘密分散法の数理
  12. 12. 書籍 • 四則演算を自由に行える「体」という世界を理解する! • 体の一つであり、計算機で扱いやすいガロア体 を理解する! • 上で秘密分散法を実装する方法を理解する 目標 数理 12 GF(28 ) GF(28 )
  13. 13. 書籍知識マップ 数理 13 代数系 群 可換群 乗法群加法群 体 拡大体 有限体 ガロア拡大体 有限群 ガロア拡大体上での秘密分散実装
  14. 14. 書籍 • 「代数的に捉える」とは、ある対象を集合として捉え、その上で どのような操作(演算)が行われ、どのような関係が成り立ち、それ らがどのような性質を持つのか考えること! • である任意の に関して のとき、 は演算 につ いて「閉じている」という! • 集合 が演算 について閉じているとき、 を「代数系」という! ! • 例: 整数の集合 は演算 について閉じているが、演算 については 閉じていない! ➡ は代数系である! ➡ は代数系ではない 代数系 数理 14 a, b 2 A a, b a ⇤ b 2 A A ⇤ A ⇤ (A, ⇤) Z + ÷ (Z, +) (Z, ÷)
  15. 15. 書籍 • 単位元! 任意の に対して、! ! が成り立つ の元 を の単位元という! • 逆元! ある に対して、! ! を満たす の元 を における の逆元という 単位元・逆元 数理 15 x 2 G G e (G, ⇤) x ⇤ e = e ⇤ x = x x 2 G G y x(G, ⇤) x ⇤ y = y ⇤ x = e
  16. 16. 書籍 • 以下の性質を満たす代数系 を群という! - 結合律 が成り立つ! - 任意の に対し、単位元 が存在する! - 任意の に対し、逆元 が存在する! ! • 例: 0を除いた実数の集合を としたとき、 は群である! - 結合律が成り立つ! - 単位元 が存在する! - 任意の に対し、逆元 が存在する 群 数理 16 (G, ⇤) a ⇤ (b ⇤ c) = (a ⇤ b) ⇤ c a 2 G e 2 G a 2 G a0 2 G R⇤ (R⇤ , ⇥) e = 1 x 2 R⇤ x0 = 1/x
  17. 17. 書籍 • 交換律 が成り立つ群 を可換群という! - 別名: アーベル群! ! • 例: 整数の集合 は演算 について可換だが、演算 については可換 ではない! ➡ は可換群である! ➡ は可換群ではない 可換群 数理 17 a ⇤ b = b ⇤ a (G, ⇤) Z + (Z, +) (Z, )
  18. 18. 書籍 • 加法群! - 演算記号が の群 を加法群という! - 単位元は0、 の逆元は と表す! • 乗法群! - 演算記号が の群 を乗法群という! - 単位元は1、 の逆元は と表す 加法群・乗法群 数理 18 + (G, +) x x ⇥ (G, ⇥) x x 1
  19. 19. 書籍 • 以下の性質を満たす代数系 を体という! - 加法が定義されており、加法群 が可換群である! - 乗法が定義されており、乗法群 が可換群である! - 分配律 が成り立つ 体 数理 19 x ⇥ (y + z) = x ⇥ y + x ⇥ z = (y + z) ⇥ x (G, ⇤) (G, +) (G {0}, ⇥)
  20. 20. 書籍 • 四則演算が自由に行える! - 加法・乗法は体の定義に含まれる! - 逆元の存在により、減法・除法も定義される! ! • 除法の定義 (減法についても同様の考え方ができる) 体の性質 数理 20 × … a b c … … a b b c b … ÷ … a b c … .. a b c c … b ÷ a = x b = a ⇥ x = x ⇥ a とおき となる を選択するx a b = a + ( b), a ÷ b = a ⇥ b 1
  21. 21. 書籍知識マップ: 途中経過 数理 21 代数系 群 可換群 乗法群加法群 体 拡大体 有限体 ガロア拡大体 有限群 ガロア拡大体上での秘密分散実装
  22. 22. 書籍 • が有限集合のとき、群 を有限群という! ! • 例: 正整数 に対し、集合 を と定義し、! に対し、 の値を! ! と定義すると、 は有限群になる 有限群 数理 22 G (G, ⇤) n Zn Zn = {0, 1, . . . , n 1} a, b 2 Zn a + b (a + b) mod n (Zn, +) 以降、 を法とする演算を と表記するm ⇤m
  23. 23. 書籍 • が有限集合のとき、体 を有限体という! ! • 要素数 の有限体は と表す! - 有限体はガロア体とも呼ばれ、GFはGalois Fieldの略である! - 任意の素数 に対して が存在する 有限体 数理 23 GF(p) GF(Q) p Q G (G, ⇤)
  24. 24. 書籍任意の素数pに対してGF(p)が存在する 数理 24 • 素数 に対し、 および をそれぞれ! ! ! と定義すると、 と はいずれも有限可換群となる! また、結合律も成り立つ! したがって、有限群 は体の定義を満たすため有限体である p Zp Z⇤ p Zp = {0, 1, . . . , p 1} Z⇤ p = {1, 2, . . . , p 1} (Zp, +p) (Z⇤ p , ⇥p) (Zp, ⇤) (証明略)
  25. 25. 書籍 • 素数 の場合を考える 有限体上での加法・乗法 数理 25 +p 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 ×p 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1 p = 5 Zp = {0, 1, 2, 3, 4} 行に全ての元が含まれる 列に全ての元が含まれる
  26. 26. 書籍非素数mを法とする代数系は体にならない 数理 26 • の場合を考える +m 0 1 2 3 4 5 0 0 1 2 3 4 5 1 1 2 3 4 5 0 2 2 3 4 5 0 1 3 3 4 5 0 1 2 4 4 5 0 1 2 3 5 5 0 1 2 3 4 ×m 0 1 2 3 4 5 0 0 0 0 0 0 0 1 0 1 2 3 4 5 2 0 2 4 0 2 4 3 0 3 0 3 0 3 4 0 4 2 0 4 2 5 0 5 4 3 2 1 Zm = {0, 1, 2, 3, 4, 5} m = 6 加法には問題がない! → 加法群は定義される 2, 3, 4が逆元を持たない! → 乗法群が定義されない! → 体ではない
  27. 27. 書籍 • 秘密分散法の元論文と同じ実装! ! 1. となる素数 を用意する! 2. K-1次の多項式を生成する! ! ! ! 3. 番目のシェア を計算する GF(p)上での秘密分散法実装 数理 27 i = 1, 2, . . . , N S: 分散対象のシークレット ai: 乱数値 i f(i) f(x) = aK 1xK 1 + · · · + a1x1 + S mod p (ai < p) pmax(S, N) < p 復元段階も素数 を法とした演算に変更するだけp
  28. 28. 書籍 • シークレットSが大きい場合、素数pも大きくなり、多倍長整数演 算のコストは課題として残る! • SやNに対してpを大きく設定しすぎると脆弱性が生じる (詳細略) GF(p)上での秘密分散法実装の課題 数理 28
  29. 29. 書籍 • シークレットを小さな単位に分割し、それぞれに対して秘密分散 法を適用することで、多倍長整数の演算コストを下げられる! - 通常、1byte単位に分割する! ! • しかし、256が素数ではないためp > 256とする必要がある! ➡ 演算結果が1byteに収まらない! ➡ Xbyteのシークレットから2Xbyte以上のシェアが生成される GF(p)上での秘密分散法実装の課題: 解決策① 数理 29
  30. 30. 書籍 • シークレットSを1byte単位に分割し、! • ガロア拡大体 上で演算する! ➡ すると、XbyteのシークレットからXbyteのシェアが生成される! ➡ また、四則演算コストが通常の計算機のものより小さくなる GF(p)上での秘密分散法実装の課題: 解決策② 数理 30 次ページ以降で解説 GF(28 )
  31. 31. 書籍知識マップ: 途中経過 数理 31 代数系 群 可換群 乗法群加法群 体 拡大体 有限体 ガロア拡大体 有限群 ガロア拡大体上での秘密分散実装
  32. 32. 書籍 • 体Fにいくつかの元を添加し、Fを含む体Eを作れるとき、EをFの 拡大体という! - 添加した元の集合をMとすると、拡大体EはF(M)と表記される! ! • 例: 実数体Rにiを添加すると複素数体Cを作れる! このとき、複素数体Cは実数体Rの拡大体である 拡大体 数理 32
  33. 33. 書籍 • ガロア拡大体の構成法! 1. の元を係数とするn-1次多項式全体の集合を とする! 2. の元を係数とし 上で既約なn次多項式 を選択する! 3. に対して加法・乗法を以下のように定義する! - 加法:! - 乗法:! 4. すると の世界は体となり、 と表す! ! • を の拡大体、 を基礎体と呼ぶ ガロア拡大体 数理 33 GF(p) F[x] GF(p) GF(p) f(x) a(x), b(x) 2 F[x] a(x) + b(x) mod f(x) a(x) ⇥ b(x) mod f(x) (F[x], +, ⇥) GF(pn ) GF(pn ) GF(p) GF(p) 数値だけの世界ではなく「記号」の抽象世界へ入っていくため頭の整理が必要
  34. 34. 書籍 • の拡大体 を考える! - 多項式集合:! - 既約多項式: ガロア拡大体: GF(2)の拡大例 数理 34 +f(x) 0 1 x x+1 0 0 1 x x+1 1 1 0 x+1 x x x x+1 0 1 x+1 x+1 x 1 0 ×f(x) 0 1 x x+1 0 0 0 0 0 1 0 1 x x+1 x 0 x x+1 1 x+1 0 x+1 1 x +2 0 1 0 0 1 1 1 0 ×2 0 1 0 0 0 1 0 1 拡大 GF(2) GF(22 ) F[x] = {0, 1, x, x + 1} f(x) = x2 + x + 1 GF(2) GF(22 ) (x + 1) ⇥ (x + 1) = x2 + x + x + 1 = x mod f(x)
  35. 35. 書籍 • 計算機で扱いやすいよう、ビット列に置き換えて考える! • 加法はXOR演算と同一であることがわかる(減法も同じ)! • 乗法・除法については次ページで解説 GF(22 )を符号化する 数理 35 +f(x) 0 1 x x+1 0 0 1 x x+1 1 1 0 x+1 x x x x+1 0 1 x+1 x+1 x 1 0 ×f(x) 0 1 x x+1 0 0 0 0 0 1 0 1 x x+1 x 0 x x+1 1 x+1 0 x+1 1 x +f(x) 00 01 10 11 00 00 01 10 11 01 01 00 11 10 10 10 11 00 01 11 11 10 01 00 ×f(x) 00 01 10 11 00 00 00 00 00 01 00 01 10 11 10 00 10 11 01 11 00 11 01 10 符号化
  36. 36. 書籍 • 多項式の乗法・除法は数値のものより複雑! • 特に計算機で扱いづらいため計算結果の表を事前に用意する! • しかし、2次元配列は巨大になるため、代わりに指数・対数の計算 結果の表を事前に用意するのが一般的! - 指数の基底には を利用 (詳細略)! - 指数表作成時の演算は での定義に従う! - 対数表は指数表から生成できる(ただしlog(0) = 0とする) GF(pn )における乗法・除法 数理 36 a ⇥ b = log(exp(a) + exp(b)) a ÷ b = log(exp(a) exp(b)) exp(i) = xi mod f(x) (i = 0, . . . , 255) GF(pn ) x
  37. 37. 書籍 • の拡大体 を考える! - 多項式集合:! - 既約多項式:! ! • 上の元をビット列に符号化すると1byteになる! ➡ 計算機で扱いやすい GF(28 ) 数理 37 f(x) = x8 + x4 + x3 + x2 + 1 F[x] = {0, 1, x, . . . , x7 + x6 + · · · + x + 1} GF(2) GF(28 ) GF(28 ) +f(x) 00000000 00000001 00000010 … 11111111 00000000 00000000 00000001 00000010 … 11111111 00000001 00000001 00000000 00000011 … 11111110 … … … … … … 11111111 11111111 11111110 11111101 … 00000000
  38. 38. 書籍 • 四則演算を自由に行うことができる! • 演算が高速! - 加法・減法はXOR演算に等しい! - 乗法・除法は表のルックアップと加法・減法だけで実現される! • 元が1byteのビット列で表現でき、演算結果も常に1byteとなる! ! ! • 基礎体 と比べて演算が直感的でなくなるが、計算機上での 処理が効率的になる GF(28 )の性質 数理 38 GF(p)
  39. 39. 書籍知識マップ: 途中経過 数理 39 代数系 群 可換群 乗法群加法群 体 拡大体 有限体 ガロア拡大体 有限群 ガロア拡大体上での秘密分散実装
  40. 40. 書籍 • シークレットを1byteごとに分割してから分散処理を行う! • 復元時も1byteごとに処理し、最後に結合してシークレットを得る GF(28 )上での秘密分散法実装 数理 40 シークレットS S1 S2 Share1 Share1 Share1 Share1 Share1 Share2 ・・・ 分割 ・・・ 分散分散
  41. 41. 書籍 • 既約多項式を決定! - 固定のものを利用すれば良い! ! • 指数表、対数表を作成する! ! • 既約多項式、指数表、対数表は変化しないため、ソースコード上 に直接書いておくのが一般的 GF(28 )上での秘密分散法実装: 前処理 数理 41 f(x) = x8 + x4 + x3 + x2 + 1
  42. 42. 書籍GF(28 )上での秘密分散法実装: 分散段階 数理 42 1. K-1次の多項式を生成する! ! ! ! 2. 番目のシェア を計算する f(x) = aK 1xK 1 + · · · + a1x1 + S i = 1, 2, . . . , N S: 分散対象のシークレット断片 ai: 乱数値(0∼255) i f(i) ※ 多項式はbyteごとに異なるものを生成し利用する (N < 256)
  43. 43. 書籍GF(28 )上での秘密分散法実装: 復元段階 数理 43 • 上での演算になるだけで、通常の復元方法と変わらない! • ラグランジュ補間を利用して を求める! • シークレットのbyte数分だけ繰り返し、復元結果を結合する S = f(0) GF(28 )
  44. 44. 秘密分散法の数理(番外編)
  45. 45. 書籍 • 与えられたn個の点を通るようなn-1次多項式を求める手法! ! ! ! ! ! • 秘密分散法においてシークレットSを求めるには とする ラグランジュ補間 番外編 45 f(x) = nX i=1 f(xi)li(x) li(x) = nY j=1,j6=i x xj xi xj f(x) = aK 1xK 1 + · · · + a1x1 + S f(0) = S x = 0
  46. 46. 書籍 • (K,N)-閾値秘密分散法では、Nを増やす(シェアを追加発行する) ことが可能! • シェアの発行に利用した多項式から生成する! • ただし、多項式は保存しておけないため、K個以上のシェアから多 項式を復元する必要がある! • ラグランジュ補間を利用してシークレットを復元すると多項式の 係数を知ることができないため、連立方程式を解いて全ての係数 を明らかにする シェアの追加発行 番外編 46
  47. 47. 書籍 • 誤り検出・訂正(QRコードなど)! • AESなどの共通 暗号! • 楕円曲線暗号 ガロア体の応用事例 番外編 47
  48. 48. 書籍 • ある演算に関して結合律が成り立つ代数系を半群という! • 半群であり、かつ単位元が存在する代数系をモノイドという! ! ! • モノイドであり、かつ逆元が存在する代数系が群 半群・モノイド 番外編 48
  49. 49. 書籍 • 以下の性質が成り立つ代数系をスイッチング代数という! - 元が0と1のみ! - 演算+と演算×が定義されている! - 加法の単位元が0! - 乗法の単位元が1 スイッチング代数(ブール代数) 番外編 49 + 0 1 0 0 1 1 1 0 × 0 1 0 0 0 1 0 1 XOR演算に等しい AND演算に等しい
  50. 50. 参考文献
  51. 51. 書籍 • How to share a secret! - Author: Adi Shamir (RSA暗号の”S”の人)! - Communications of the ACM Volume 22 Issue 11, Nov. 1979 論文 参考文献 51
  52. 52. 書籍 • 現代暗号への招待 (黒澤 馨・著、サイエンス社)! • 情報・符号・暗号の理論入門 (守屋 悦朗・著、サイエンス社)! • ガロア理論の頂を踏む (石井 俊全・著、ベレ出版) 書籍 参考文献 52
  53. 53. END

×