忍者ブログ
"Idle Talking About My Interesting things"
[26] [25] [24] [23] [22] [21] [20] [19] [18] [17] [16]




×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

『閾値秘密分散共有法』についてネットで調べてみたが意外と資料が少なかったので、折角だから分かったことをここに載せておこうと思う。

『閾値秘密分散共有法』は情報の分散と共有によって情報を保護するためのセキュリティ技術である。
今回は特に『(k,n)閾値秘密分散共有法』について説明する。
(以下からは『(k,n)閾値秘密分散共有法』のアルゴリズムを実装したソースコードに沿って説明する)


『(k,n)閾値秘密分散共有法』の原理は、 n次の線形方程式の性質を応用している。
 kn.jpg


上図のようなある1次方程式の直線の切片の値を秘密にしたいデータとしたとき、その直線が求まるには最低でも直線上の2点が定まらなければならない。だが勿論、直線上の点は無数に存在できる。このとき、いずれか2つの点の座標が復号化のための鍵となる。
つまり、N次の線形方程式の形(各係数の値(切片含む)と同義)は、その方程式の解が N + 1個以上定まることで導出できる。逆にいえば、それらが N個以下では絶対に線型方程式の形は定まらないので、情報は一切洩れない。
 
次に実際のプログラムの説明である。
このプログラムの振る舞いは
①1次方程式の各係数にランダムな数字を割り当てる(Line 39: "ran"メソッド)
②ある情報 X を n 個の無機質な暗号化データに分ける( Line 62: "enc"メソッド )
③その N個のデータのうちの K 個以上が揃えば元のXを復元できる(Line 71:  "dec"メソッド )。
 
D's CODEsのJavaに以下のファイルをzipで固めたものを貼り付けておいた(SecretSharing.zip)。
・Simple.java: 最も単純な秘密共有分散(norを使ったもの)
・K_N.java: (2,n)閾値秘密共有分散法のアルゴリズム
・Main.java: K_N.javaを動かしてみたもの
 
以下はMain.javaの実行結果である。
 
~~ Main Code's  Result ~~
F(x) = 16x + 23 mod 41
key1: 25
key2: 27
key3: 29
key4: 31
key5: 33
1 & 2: answer: 23
1 & 3: answer: 23
1 & 4: answer: 23
1 & 5: answer: 23
2 & 3: answer: 23
2 & 4: answer: 23
2 & 5: answer: 23
3 & 4: answer: 23
3 & 5: answer: 23
4 & 5: answer: 23
 
PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
フリーエリア
最新CM
[12/07 柿崎]
[06/18 sick]
[04/25 あーうー]
[03/16 marybellha]
[03/16 derrillhor]
最新TB
プロフィール
HN:
Hamhei HORIUCHI
HP:
性別:
男性
職業:
Researcher
趣味:
Reading, Coding, Thinking, Singing, & Football
自己紹介:
貴方が本を読み続ける限り、貴方は取るに足りない紙屑の存在に幻滅し続けるだろう。
Blogもそれと同じで、その殆どは読んだ人間に対して何も学ばせることの無い、全く意味を為さない落書きみたいな内容だ.

一方,文章を書くという行為は、主体に対して幾許かの成長を約束する.退化はあり得ない.
その一例として、物事を体系化する手順を学習することができたり,自己理解が促進されたり,さらには新鮮な驚きと発見が内から魔法のように引き出されることもある.

最後に、我々の価値観が互いを許容でき,かつ刺激し合う程度に『違って』いますように.
バーコード
ブログ内検索
P R
カウンター
忍者アド
アクセス解析
アクセス解析