• 沒有找到結果。

第二章 背景知識

2.3 Secure Decentralized Erasure Code

1 ( ) (

#

E F

2

q

q 。Embedding degree k 是 2,因此

G

T

F

q2的一個 子群。且級數(order) r 為一個質數也是

q

1的一個因數。

設定

q

1

rh

,且為了提高效率,刻意讓 r 是一個 Solinas 質 數,r 必頇符合2a

 

2b

 

1,其中

ab

0,且這裡的 r 就是我們

G

1

G

2以及

G

T 以的級數(order)。[7]

以下是實作上系統參數設定的一個範例:

圖 2.3

2.3 Secure Decentralized Erasure Code

本節介紹我們實作基礎的主要協定,出至 2010 年的 Secure Decentralized Erasure code[9],接下來我們會用簡短地描述如何用 Erasure Code 來進行資料的儲存和取回。首先我們會對資料進行切割,

切割的大小取至於我們所選擇橢圓曲線中級數(order)的 bits 長度,因 為我們實作中選擇的橢圓曲線級數為 106 bits,因此我們每一個區塊

14

(block)都為 106 bits,假設我們現在的資料切割成 K 個區塊,而每一 個區塊我們都會先將自己所選擇檔案的名字對應到橢圓曲線上的一 個點 h,然後由我們自己所選擇的一個數 r 做純量乘法的運算,其結 果為 h’,然後再跟系統所選擇的公鑰(public key)一起做 paring 的運算,

將運算過後的結果分散傳給 v 個儲存伺服器(storage server),當一個 儲存伺服器收到兩個同樣檔名而不同區塊的加密,將可以再進行線性 組合(linear combination)的加密程序,讓多個區塊組合成一個區塊。

當使用者要取回檔案時,對 m 個金鑰伺服器(key server)發出下載請求,

而每一個金鑰伺服器又會對 u 個儲存伺服器發出下載檔案的請求,而 金鑰伺服器首先會跟其他的金鑰伺服器做金鑰的交換,當收集到一定 數量的金鑰後,就可以解密出共同的私鑰(secret key),當金鑰伺服器 從儲存伺服器下載的檔案可以透過私鑰進行部分解密,而每一個部分 解密的資料都是一個線性組合的方程式,所以當使用者收到 k 個線性 獨立(Linear independence)的方程式,將可以把我們的資料解密出來。

而以上所敘述的架構(見圖),大致上分為四大部分,詳述如下:

15

圖 2.4[9]

系統設定:

在還沒進入加解密的過程中,整個系統在運行時,就會先執行一 些系統參數,而這些系統參數是這環境中所有角色都知道的,首先會 挑一種合適類型的橢圓曲線方程式,且橢圓曲線方程式中的一些參數 設定也是公開的,因此可以知道的是整個橢圓曲線的加法群 G1以及 是基礎於大小為 q 的有限體之橢圓曲線 GF(q),且會挑一個較為合適 的 pairing 運算以及系統所產生出的生成元素(generator)

g

。因此整 個系統輸出的系統參數為 1

~

, , G

e g

使用者設定:

當使用者擁有了系統參數 1

~

, , G

e

g

後,可以產生一對金鑰,分別為 公鑰(Public key)及密鑰(Secret key),而密鑰裡包含了一個使用者所選

16

17

再將系統的生成元素

g

以及使用者所挑的參數 r 做

g

r運算,將運算 出來的

g

r、h、

C

i都傳至遠端儲存伺服器上。

2.3.2 Encode

我 們 的 系 統 架 構 符 合 Homomorphism 的 特 性 , 使 得

2

1 ( )

)

(

m

1 a

E n c m

2 a

E n c

等於

Enc

(

m

1a1

m

2a2),儲存伺服器先將收到的密 文跟伺服器自己選的係數做指數次方的運算,當同一位使用者把檔案 分割成 k 個區塊時,我們的伺服器也選取 k 個係數,以對應每一個區 塊所組成的方程式。

2.3.3 PartialDec

主要是透過 key server 將資料做 Partial Decode 的動作,讓有心人 即使破解了少部分的 key server 也無法將資料萃取出來,因為這邊我 們用了 Threshold 的 SK 以及線性組合這兩道關卡保護資料。

首先先介紹如何將 Threshold 的

SK

(secret key)解密回來,Client 會先對所有的 key server 發出 download 的 request,接著每個 key server 會對 u 個 storage server 下載檔案,當我們收集到足夠 key server 我們 就可以將

SK

i解密回

SK

,其中

SK

i為 f(i)=

SK

+b1i+b2i2+…+bnit-1,透過 Lagrange interpolation 運算解回

SK

18

19

相關文件