秘密分散について
秘密分散は 1979 年に Shamir 氏と Blakley 氏によって独立に提案されました。 大切な情報や秘密にしたい情報(以下、秘密情報)を複数のシェアと呼ばれるデータに分割し、ある決められた組み合わせのシェアが集まると秘密情報を復元できるが、その条件を満たさないシェアからは秘密情報を復元できない仕組みを提供する技術です。 シェア管理者(パーティ)の一部が不正な攻撃を受けても、秘密そのものが漏洩するリスクを低減できます。
秘密分散における登場人物として、「ディーラー」と「パーティ」がいます。
- ディーラー: 秘密情報そのものを持つもの
- パーティ: 秘密情報のシェアを持つもの
ディーラーが秘密情報から複数のシェアを作成し、それらを複数のパーティに配布します。
(k,n)しきい値法
しきい値法は、個のシェアのうち個以上のシェアが集まれば秘密情報を復元できるが、個以下のシェアでは秘密情報が一切漏洩しない方式です。 シェアのうち個以下の破損や紛失、個以下の盗難や漏洩に対して安全であるといえます。
ここでは、しきい値法を構成する秘密分散法として、
- Shamir の秘密分散法
- 加法型秘密分散法
- 複製型秘密分散法
を紹介します。
Shamir の秘密分散法
Shamir の秘密分散法は、多項式補間(ラグランジュ補間)を利用して秘密情報を分散・復元する方式です。となる有限体上の次多項式をランダムに生成し、その多項式上の個の点をシェアとして扱います。個の点が集まれば、次多項式が一意に定まり、秘密情報を計算することができます。
シェアの作成例 - (3,4)Shamir の秘密分散法
- 秘密情報、しきい値、シェアの総数
- となる次多項式をランダムに生成
- 上の個の点をシェアとする
生成されたランダムな上の点をシェアとして、各パーティに配布します。
- パーティ 1 のシェア: 39
- パーティ 2 のシェア: 37
- パーティ 3 のシェア: 25
- パーティ 4 のシェア: 3
秘密情報の復元例 - (3,4)Shamir の秘密分散法
- 3 個の点が集まれば、次多項式が一意に定まり、秘密情報を計算可能
- 3 個未満では候補となる 2 次多項式が無数に存在するため、秘密情報が求まらない
パーティ 1 のシェアだけ、パーティ 1 と 2 のシェアだけ、のように、個以下のシェアでは、2 次多項式が定まりません。 パーティ 1 と 2 と 3 のシェア、パーティ 2 と 3 と 4 のシェア、のように、シェアが 3 個以上集まることで、2 次多項式が一意に定まり、秘密情報を計算することができます。
加法型秘密分散法
加法型秘密分散法は、総和が元の秘密値になるようにシェアを作成、分散する方式です。加法型秘密分散法とも表記され、秘密情報を個のシェアに分散した場合、全パーティが復元に参加する必要があります。そのため、この方式を使用して以外のしきい値を設定するには、複製型秘密分散法を用いるといった工夫が必要になります。
シェアの作成例 - (3,3)加法型秘密分散法
- 秘密情報、しきい値、シェアの総数
- を満たすシェアをランダムに生成
- には素数あるいはが選ばれることが多い
また、排他的論理和(exclusive-OR, XOR)演算を用いてシェアとすることもあります。この場合、各シェアを秘密情報と同等のデータサイズで管理できます。
- パーティ 1 のシェア:
- パーティ 2 のシェア:
- パーティ 3 のシェア:
秘密情報の復元例 - (3,3)加法型秘密分散法
全てのパーティが協力することにより個のシェアが全て集まり、
または
により、秘密情報を計算することができます。
複製型秘密分散法
複製型秘密分散法は、加法型秘密分散法のシェアを一パーティに複数割り当てることでしきい値法を構成する方式です。
シェアの作成例 - (2,3)複製型秘密分散法
- 秘密情報、しきい値、シェアの総数
- を満たすシェアをランダムに生成
ここまでは加法型秘密分散法と同様ですが、各パーティに複数のシェアを割り当てる点が異なります。
- パーティ 1 のシェア:
- パーティ 2 のシェア:
- パーティ 3 のシェア:
秘密情報の復元例 - (2,3)複製型秘密分散法
任意の 2 パーティが協力することによりが集まるため、加法型秘密分散法の復元と同様の手順で秘密情報を計算することができます。