秘密分散共有
概要
秘密分散共有 (secret sharing) または単に秘密分散は秘密情報
Table of Contents
(k, n) しきい値法
- 任意の
個以上の分散情報 から容易に秘密情報 を算出することができる。 - 任意の
個以下の分散情報 から秘密情報 は完全に未定義となる (分散情報が 1 つもない状況での の推定と同等の難しさを持つ)。つまり秘密情報 は 個未満の分散情報では再構築できない。
Shamir の秘密分散法
Shamir の秘密分散法 [SMR] は
最後に、多項式 (
結合 (復号) 過程では
を使用して秘密情報
例1: の秘密分散
この 2 次関数から
例2: の秘密分散
例 1 の 2 次関数に具体的な値を適用してみよう。以下は秘密情報を
ここで位数の
各分散情報
検証可能な秘密分散共有
(k,n) しきい値法は参加者が不正な動作を行うと秘密情報を正しく復元することができないが、これに検証可能なスキーム (VSS; verifiable secret sharing scheme) を追加することができる。
Feldman (1987) の方法はディーラーが不正な分散情報を共有していないかを各参加者が検証できるように、素数位数
- ディーラーは秘密情報の分散共有時に
を公開する (DLP 仮定の下では , , から を求めることが困難であることに注意)。 - 参加者
は自身に与えられた に対して が成り立つかを検証する。
この方法により秘密情報
Blakley の秘密分散法
Blakley の秘密分散 [BLK,SHM] はベクトル空間を使用した (k,n) しきい値スキーム。Shamir と同年に発表された。
同じ平面上の非平行線は必ずどこかの 1 点で交差し、同じ空間無いの非並行面は必ずどこかの 1 点で交差する。Blakley のスキームはこれを一般化し
RSA 秘密分散共有
RSA 公開鍵を使用して分散秘密鍵
- 鍵生成: ディーラーは RSA 秘密鍵
と公開鍵 を生成し公開鍵を公開する。そして、秘密鍵から となるような 個の分散秘密鍵 を生成し各参加者に配布する。 - 暗号化: 公開鍵
を使用して秘密情報 を暗号化する。。 - 復号化: 参加者
は を算出して他の参加者と共有する。全ての から を計算することができる。
参考リンク
- 黒澤馨, "現代暗号への招待" 14章, サイエンス社 (2010)
- Shamir's Secret Sharing (Wikipedia)
- 属性ベース暗号
- [SMR] A. Shamir (1979), How to Share a Secret
- [BLK] G. R. Blakley (1979), Safeguarding cryptographic keys
- [SHM] A. Shamsoshoara (2019), Overview of Blakley's Secret Sharing Scheme