iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Security

我推的資安系列 第 24

我推的資安Day24_機密分享Secret Sharing

  • 分享至 

  • xImage
  •  

昨天說完了一大堆的密碼系統,今天要說:

Secret Sharing

不知道大家小時候有沒有會畫迷宮藏寶圖,如果有的話可以把藏寶圖分成很多份,我們這邊假設分成8等份,照理來說這8等份要湊齊才能復原藏寶圖。
那麼我們把分成8等份的藏寶圖當成機密(Secret),並分享(Sharing)出去讓每個人都有一份。這就是Secret Sharing機密分享,是不是很好懂。


機密分享有大部分分成2種,一種就是分享給8個人就要8個人拿出各自的機密才能還原出原本的;另外一種是分享給8個人但可以設定一個門檻值,只要有達到門檻值就能還原出原來的藏寶圖(機密)。

以上面的藏寶圖為例,會有一個人是分派這些機密的叫做發牌者(Dealer)一樣是分享給8個人,如果是一定要8個人才能還原藏寶圖(機密),這個算法可以是:
https://chart.googleapis.com/chart?cht=tx&chl=k_1 https://chart.googleapis.com/chart?cht=tx&chl=%5Coplus https://chart.googleapis.com/chart?cht=tx&chl=k_2 https://chart.googleapis.com/chart?cht=tx&chl=%5Coplus https://chart.googleapis.com/chart?cht=tx&chl=k_3 https://chart.googleapis.com/chart?cht=tx&chl=%5Coplus ... https://chart.googleapis.com/chart?cht=tx&chl=%5Coplus https://chart.googleapis.com/chart?cht=tx&chl=k_8 = K 其中K 是藏寶圖的意思,https://chart.googleapis.com/chart?cht=tx&chl=k_1 代表第一個人有的一部分藏寶圖。

若有設定一個門檻值,這個門檻值要1 < 門檻值t < 分享的量n,我們稱呼Shamir's secret sharing。
假設門檻值t = 3,分成8等份(n=8),只要我們湊齊任意3等份就可以還原藏寶圖(機密)了,這個算法是用多項式組成的:
F (X ) = K+ https://chart.googleapis.com/chart?cht=tx&amp;chl=a_1 x + https://chart.googleapis.com/chart?cht=tx&amp;chl=a_2 https://chart.googleapis.com/chart?cht=tx&amp;chl=x%5E2 + ... + https://chart.googleapis.com/chart?cht=tx&amp;chl=a_t_-_1 https://chart.googleapis.com/chart?cht=tx&amp;chl=x%5Et%5E-%5E1 (到a的t-1個,x的t-1次方) mod P ,這邊的p要是質數並且大於K,https://chart.googleapis.com/chart?cht=tx&amp;chl=a_1https://chart.googleapis.com/chart?cht=tx&amp;chl=a_2https://chart.googleapis.com/chart?cht=tx&amp;chl=a_t_-_1 的值要是0到P - 1。
這個多項式的解法,可以使用拉格朗日(Lagrange)插值法解,把第一個人(x值)的F (x )和第二個人(x值)的F (x )和第三個人(x值)的F (x )帶入到多項式裡面,最後求出F (0)就是K 了(K = F (0))。


上一篇
我推的資安Day23_混和式密碼系統Diffie-Hellman(2/2)
下一篇
我推的資安Day25_密碼系統的補充
系列文
我推的資安30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言