見出し画像

「秘密分散」の機密性が高い理由をわかりやすく説明してみる!

前回、こちらの記事で「(k, n)しきい値秘密分散」の数学的原理を解説しました。

今回は「(k, n)しきい値秘密分散」の機密性に迫りましょう!


「(k, n)しきい値秘密分散」で暗号化する

「(k, n)しきい値秘密分散」ではどのように暗号化されるのでしょうか。

$${(k, n)=(2, 5)}$$

で暗号化することを考えてみます。

暗号化してみる

数字の「$${18}$$」を暗号化してみましょう。

$${k=2}$$ですので、生成多項式は次のような1次方程式になります。

まず、$${a_0}$$が暗号化したい数字となります。
今回の場合は、「$${18}$$」を暗号化しようとしているので「$${a_0=18}$$」ですね。

では、$${a_1}$$はどうすればいいのでしょうか。
$${a_1}$$はランダムな数値を選びます。
今回は、例えば、「$${7}$$」だったとしましょう。
すると、このようになります。

これで生成多項式は出来上がりました。
この生成多項式のグラフを描いてみます。

暗号化する数値はここになります。

$${n=5}$$ですので、この中から好きな点を5つ選びます。
どこでも構いません。
そしてそれが分散する値になります。

再構築してみる

さて、上記の手順で分散したデータを再構築して、元のデータを取り出すことを考えてみます。
分散データは5つ作りました。
分散データがこのうちの1つしかないとき、元の数値「$${18}$$」を特定することはできません。
これは、その分散データを通る多項式が無数にあるためです。

これでは、暗号化する前の元の数字が何だったのか特定することはできません。

ですが、$${k=2}$$ですので、分散データをもう1つ加えてみます。

すると生成多項式はたった一つに絞られます。

その結果、分散する前の元の数字を特定することができるのです。

5つの分散データのうち、どの2つを選んでも元の数字を再構築できます。

これが秘密分散の強み

これらのことからわかるように、秘密分散には次のような特徴があります。

k個に満たない分散データから再構築することはできません

(n, k)で分散したデータは、分散データがk個に満たなければ元のデータを再構築できません。100個に分散してkを99とした場合、分散データが99個以上そろわないと元のデータを再構築できないのです。重要な情報を暗号化したい場合、nとkを大きい数値にすればするほど再構築が困難になり、機密性が高くなるのです。

n個すべてがそろわなくても再構築できる

(n, k)で分散したデータは、n個全てそろわなくてもk個あれば再構築できます。情報は破損するリスクがどうしても付きまといます。ですが、しきい値秘密分散の場合は、分散データの一部が破損しても再構築することができます。100個に分散してkを60としておけば、100個の分散データのうちの40個が破損しても元のデータを再構築することができるのです。これは極めて信頼性が高いといえます。

機密性と信頼性の両方をそなえた暗号方法

情報は、たくさんのコピーを作って複数の場所に展開すればするほど漏洩のリスクが高まります。すなわち機密性が低下することを意味します。一方で、1か所に限定して保存する場合はたった一つのデータが破損した場合にはすべてを失うことになります。これでは情報の信頼性を保つことができません。

機密性信頼性

これまで、この2つは相反する状況でした。
機密性を高めれば信頼性が低下する
信頼性を上げれば機密性を保てない

秘密分散を用いればこの2つの両方を満たすことができるのです。

もやはどちらかをあきらめることはありません。
両方を手に入れましょう。

しかも、「SSharing」は安価でそれを実現します。
是非一度お試しください。


無料版はこちらから

有料版はこちらから