• 沒有找到結果。

在這一章節中,將會對我們架構中所需運用的基本技術部份,做概略性的介 紹及說明。因此,以下各小節將包含 Random Bipartite Graph、Expander Graph、

Random Bipartite Graph 與 Expander Graph 之關聯性、Perfect Matching 的廣義及 狹義的定義、Hall 於圖論方面的一個探討 bipartite graph 與 perfect matching 之間 關聯性的定理、分散式金鑰產生協定的相關安全定義以及線性代數中一個頗重要 的凡德蒙地矩陣(Vandermonde Matrix)。

3.1 Random Bipartite Graph 定義

定義 1:

random bipartite graph G=(V1,V2,E)是指在一個無方向性的graph中,含兩個不 重複的端點集合V1及V2,edge連接著兩邊集合的端點(如:若edge (u,v)E,則 uV1, vV2或是uV2, vV1);假如|V1|=n1, |V2|=n2且每個在V1中端點的degree 最多為d1,每個在V2中端點的degree最多為d2,則此G就稱為一個有著

degree(d1,d2)的(n1,n2)-bipartite graph。

如下所示,是一個以degree(4,2)的(3,7)-bipartite graph的圖例:

3.2 Expander Graph

簡單的來說,一個圖形中,有著少數端點的子集卻能與大量的鄰居端點相連,

則我們稱此圖形為 expander graph;因為 expander graph 有著許多特殊的性質,

因此,不論是在圖論、網路、編碼理論、複雜度運算及 derandomization 等領域 中皆佔有很重要的地位。以下,我們會先簡介 expander graph 特性及其與本篇論 文所使用之相關特性;然後再針對 expander graph 做較正式的定義。

3.2.1 特性及其應用之概述

由於 expander graph 有許多出色的特性,因此,皆能在很多領域中發現其特 殊性質發揮之處;在本篇論文中,我們將利用在網路應用領域中,一個常見的 expander graph 重要特性:在 expander 中,每個在子集中的端點皆有許多相連的 鄰居端點存在,也就是說它有著一個很好的擴充性質(good expansion property);

此外,當我們從此 expander graph 中,隨機移除一些相連的接線(edge)時,並不 會有顯著的擴充特性減少之影響。

因此,在網路應用領域上,expander graph 的擴充相連之絕佳性質,提供了在 建造一個網路時,能保證其端點與端點之間的相連及訊息之路由(routing message) 有堅韌(robust)的連接性;所以,藉此就能建造出一個能容錯的網路通訊環境 (fault-tolerance network)。

本篇所提的分散式金鑰產生架構,在實際環境情況下,必定不能假設在金鑰 分散及重建的過程中,沒有任何惡意攻擊者的參與;因此,我們將於 4.4 小節中,

利用上述所提及,應用於網路容錯架構中的 expander graph 特性,來進一步地證 明我們的隨機稀疏矩陣之分散式金鑰產生架構在有惡意攻擊者參與的情況下,亦 有很高的成功機率達成分散式金鑰產生之目的。

3.2.2 正式定義

定義 2:

在一個 bipartite graph G=(V,W,E)中,假如對於所有基數(cardinality) 最多為 k 的 S V,|Γ (S)| c|S|,在此 (S)是 S 之鄰居(neighbor)的一個集合,則稱此 G 為一個(k,c)-expander

⊆ ≥ Γ

3.3 Random Bipartite Graph 與 Expander Graph 3.3.1 兩者之關聯

一般而言,最常用來判斷一個圖形是否為一個好的 expander,可以透過計算 此圖形的第二 eigenvalue 與第一 eigenvalue 之比值的大小來檢驗,當此比值越小 也就表示此圖形越是一個具有良好擴充特性的 expander graph。

可惜的是,目前並未有任何一個比較有效的演算法,可以用來產生出一個具 有良好擴充性質的 expander graph;但是,藉由下一小節的定理及其證明可得知,

當我們透過隨機產生的 random bipartite graph 會有非常高的機率成為一個 expander graph。

3.3.2 定理與證明

定理 1:

造出一個在[n] [m]的 random bipartite graph G,對於每個在[m]的端點有 d 個 在[n]的隨機鄰居;假設

所以random bipartite graph是expander graph之機率就是:

2

由於本篇之後的相關證明所運用的是一個 2-expander graph,因此式中的 c 值我 們就以 2 的值為前提之下來討論上述之機率估算;此外,我們的架構中所用到的

graph 的特性運用於大規模的稀疏矩陣(詳見於 4.6 小節),因此,上式中的 n 值往 往是大於 1000 以上,甚至上萬的數量,且在大規模之結構中,式子中的 d 值也 將是二十以上的數值。

所以,本小節所探討出的機率值非常高而趨近於“1"。

3.4 Perfect Matching

定義 3:

廣義的 Perfect matching 是一種可以涵蓋所有圖上端點的 matching 關係,也 就是說,所有圖上的端點都有一個確切的 incident edge。

如下圖所示,各端點接相互透過虛線相連,形成一個 perfect matching:

定義 4:

於 bipartite graph 上的 perfect matching 是指:當上述廣義的 perfect matching 情形是發生於一個 bipartite graph 的兩邊端點集合之間,也就是說,

每個左端點集合中的任一個端點會有一個位於右端點集合中的另一端點與之配 對。

如下頁圖例所示,兩邊的各端點皆互相透過虛線的連結,形成一個 bipartite perfect matching:

3.5 Hall 之 Bipartite 與 Perfect Matching 定理

定理 2:

設圖形G=(V1,V2;E)是一個bipartite graph,則此圖形G有一個perfect

matching從V1到V2,若且為若,對於所有的包含於V1的S,有|Γ (S)| |S|的關係。

(I)

而其中bipartite graph的input集合是V

1,其output集合是V2;Γ (S)是表示V2中的 集合;且edge集合為E。

證明:

我們將針對V1的尺寸大小運用歸納法的討論方式來證明。

當V1有一個端點時是成立的。

假設我們現在聲稱此定理在V1小於某m時是成立的。

接下來我們就來考慮以下的兩個可能發生情況:

情況(1) 所有在V1中適當的子集合S,S不為空,將之擴充,也就是有| (S)|>|S|

的情形。考慮在V

Γ

1中的端點x,讓(x,y)是一個在集合E中的edge。

然後,我們考慮一個有著端點集合V1* = V1 - {x}及V2* = V2 – {y}的 bipartite graph G*;因為每個S⊂V1符合(I),每個V1*中的子集合符合 (I),因為只有單一端點y已經從V2移除。

因此,運用之前的歸納假設,這個較小的圖形G*有個matching;而針

對此matching,我們將edge(x,y)加入;這樣一來,就有得出一個perfect matching於圖形G中。

情況(2) 存在一個適當的子集合T⊂V1,此T不為空,且有著|Γ (T)|=|T|的關係。

我們考慮induced圖形G1及G2於端點集合T U Γ (T),而且尚有以下的 關係V1 \ TU V2 \ (T)。

接著運用之前的歸納假設,G Γ

1有一個perfect matching。

(注意,之前的歸納假設不能直接地運用於G2) 設定S⊆V1 \ T,然後可導出:

( ) )\ ( ) | ( )| | | | | | |

2

2 S T G T G S S T T S

GG(SU Γ ⇒ Γ ≥ U − =

Γ

而上式中的“≥ "是存在的,因為S T符合U |ΓG(SUT)|≥|SUT|,且由 於在此的假設是|Γ(T)|=|T|;因此,圖形G2也符合(I),而且運用之前的 歸納假設,會有一個matching。所以在G1與G2的perfect matching之聯 集便是一個於圖形G的一個matching。

3.6 分散式金鑰產生協定之相關安全定義

以下所將要介紹的兩個與分散式金鑰產生協定相關的安全定義之要求,是假 設p是眾所皆知的一個大質數;q也是一個屬於p-1 因數的大質數;g是一個order 為q且在Zp中的元素。

而在定義一中的前面三個要求,是一般在檢驗一個以離散對數為基礎下的分 散式金鑰產生協定是否符合安全的三大要求。

由於 Gennaro 等人針對當時所提出的一般分散式金鑰產生協定,設計出一個 惡意攻擊者可以經由在[GJKR99]篇中所述的攻擊手法,而在金鑰重建過程中,

偏頗金鑰產生的值;也因此,Gennaro 等人也就針對此安全性上的不足處,提出 更嚴謹的分散式金鑰產生協定之安全要求,也就是新增了底下的第四項要求;詳 細的定義說明將如下頁所述:

定義 5:

3.7 凡德蒙地矩陣(Vandermonde Matrix)

在實驗數據的處理上,對於一個以xi為輸入而以yi為輸出的系統而言,常會出 現已知n組數據 (x1 , y1)、(x2 , y2)、…、(xn , yn),而想知道若輸入為x0時,其最可 能的輸出值y0是多少?

(1) 若已知數據有兩組,則可以使用內插法或外插法;

(2) 若已知數據有三組,則可以使用二次曲線來取代線型進行內插或外插法;

(3) 若已知數據有n組,則一個常用的想法是利用n-1 次的多項式作為分析的工 具;這個想法是設想輸入xi與輸出yi之間有以下如此的關係:

c0+c1xi+c2xi2+…+cn-1xin-1=yi 且i=1~n

再應用已知的n組數據以求出係數ci之後,再代入要分析的輸入x0,而得到要 估計的輸出y0。其中尋找係數ci是經由解以下聯立方程組而得到的:

c0+c1x1+c2x12+…+cn-1x1n-1=y1

c0+c1x2+c2x22+…+cn-1x2n-1=y2

.………

c0+c1xn+c2xn2+…+cn-1xnn-1=yn

上述聯立方程組可以利用矩陣的概念將之轉換為以下形式:

1 x1 x12 … x1n-1

c0 y1 1 x2 x22 … x2n-1

c1 y2 ……….. ... = ..

1 xn xn2 … xnn-1

cn-1 yn

而有著以下形式的矩陣就稱為凡德蒙地矩陣(Vandermode Matrix):

1 x1 x12 … x1n-1 1 x2 x22 … x2n-1 ………..

1 xn xn2 … xnn-1

相關文件