(k, n)しきい値秘密分散の数学的原理を数学の素人が解説 Part2
先日はこちらの記事で秘密分散の数学的原理について解説しました。
今回はもう少し具体的に説明してみます。
実際に秘密分散してみましょう!
例えば、こんな風に暗号化することを考えてみます。
くどいようですが、多項式はこのようになります。
まずは、$${a_0}$$を決めましょう。
$${a_0}$$は暗号化する数字です。
今回の場合は「$${18}$$」ということになります。
では、$${a_1}$$はどうなるのでしょうか。
$${a_1}$$はランダムな数値を選びます。
なんでもいいわけですが、今回は「$${7}$$」を選択しましょう。
さて。
多項式は決まりました。
$${q(x)=18+7x}$$
早速、この多項式のグラフを見てみましょう。
こんな風になります。
暗号化する数値「$${18}$$」は、ココになります。
このグラフの点上から好きな点を$${5}$$つ選びます。
この$${5}$$つの点が分散するデータになります。
これで、分散は完了です!
では、この$${5}$$つの点から元の数値を再構築してみます。
$${1}$$つの分散データだけで再構築できるでしょうか。
$${1}$$点を通る多項式は無数にあります。
これでは、暗号化した元の数値がどれなのかわかりません。
でも、分散データをもう$${1}$$つ加えると・・・
こうして、暗号化した元のデータが特定できるのです。
分散データは$${5}$$つ作りましたが、再構築に使う$${2}$$つの点はどれでも構いません。
いかがでしょうか。
すごいと思いません?
$${5}$$つ分散データのうち、$${2}$$つがあればいいのです。
もし$${3}$$つが壊れてしまったとしても、たった、$${2}$$点で暗号化する前の元のデータを取り戻せるのです。
$${5}$$つに分散して、$${2}$$つ以上で再構築する。
これらの数も好きに変更できます。
$${100}$$に分散して、$${2}$$つ以上で再構築する。
$${10000}$$に分散して、$${9000}$$以上で再構築する。
どんな数でも大丈夫です。
$${9000}$$のデータを集めるのは少し大変ですが、セキュリティは万全です。
あまりたくさんにあちらこちらに分散するのは、従来のセキュリティにとって機密性の低下を招きます。ですが、秘密分散の場合は違います。逆に機密性を向上させるのです。
また、一部が破損しても大丈夫ということは信頼性の向上も意味します。
機密性も信頼性も両方を向上させる。
それが秘密分散の特徴です。
「SSharing」は(k,n)しきい値秘密分散法を利用したファイル分散ユーティリティソフトウェアです。