昨天說完了一大堆的密碼系統,今天要說:
不知道大家小時候有沒有會畫迷宮藏寶圖,如果有的話可以把藏寶圖分成很多份,我們這邊假設分成8等份,照理來說這8等份要湊齊才能復原藏寶圖。
那麼我們把分成8等份的藏寶圖當成機密(Secret),並分享(Sharing)出去讓每個人都有一份。這就是Secret Sharing機密分享,是不是很好懂。
機密分享有大部分分成2種,一種就是分享給8個人就要8個人拿出各自的機密才能還原出原本的;另外一種是分享給8個人但可以設定一個門檻值,只要有達到門檻值就能還原出原來的藏寶圖(機密)。
以上面的藏寶圖為例,會有一個人是分派這些機密的叫做發牌者(Dealer)一樣是分享給8個人,如果是一定要8個人才能還原藏寶圖(機密),這個算法可以是:
... = K 其中K 是藏寶圖的意思, 代表第一個人有的一部分藏寶圖。
若有設定一個門檻值,這個門檻值要1 < 門檻值t < 分享的量n,我們稱呼Shamir's secret sharing。
假設門檻值t = 3,分成8等份(n=8),只要我們湊齊任意3等份就可以還原藏寶圖(機密)了,這個算法是用多項式組成的:
F (X ) = K+ x + + ... + (到a的t-1個,x的t-1次方) mod P ,這邊的p要是質數並且大於K, 、 、 的值要是0到P - 1。
這個多項式的解法,可以使用拉格朗日(Lagrange)插值法解,把第一個人(x值)的F (x )和第二個人(x值)的F (x )和第三個人(x值)的F (x )帶入到多項式裡面,最後求出F (0)就是K 了(K = F (0))。