Shamir门限

1. 门限简介
假设需要保护的数据为D,目标是将D划分成n个分块D1, ..., Dn,并且要求:
(1)任意k个(或者更多的)分块可以很容易的重构出D;
(2)任意k-1个(或者更少的)分块都不可能重构出D。
该项技术可以被称为(k, n)门限。
使用满足n=2k-1的(k, n)门限能得到一个强壮的系统:
(1)即使k-1个分块被销毁也能得到原有信息;
(2)即使对手获得k-1个分块也无法重构出原有信息。
2. 一个简单的(k, n)门限
该门限基于这样的事实:在一个二维坐标系中给定k个点(x1, y1), ..., (xk, yk),则满足q(xi)=yi的多项式有且仅有一个,且最高项系数为k-1。
不妨假设该多项式为q(x) = a[0] + a[1] * x + ... a[k-1] * x(k-1),且a[0]=D,Di=q(i)。显然,只要给出任意k对(x, q(x))的值就可以计算出该多项式,从而得出D。
给定整数D,选择一个大于D和n的素数p,从[0, p)中选择a[i],Di=Di mod p。
以下为该(k, n)门限一些有用的性质:
(1)任意分块的大小不会超过原始数据的大小;
(2)当k保持不变时,分块Di可以动态的加入或者删除,并且不会影响到其他分块;
(3)可以改变分块而不会影响到原始数据。
(4)可以根据重要性设置参与者掌握的分块数目。

你可能感兴趣的:(门限)