概述
隨著越來越多的分散式計算和數據厙在電子通信中的套用,通信網路中的數據安全性變得越來越重要,並且現代高性能的計算機及量子信息技術的發展,給傳統的通信安全體系帶來了巨大的挑戰,因而基於信息理論安全的通信方式成為人們關心的問題。要實現數據無條件安全,就是用安全分配的一次性密鑰對其進行加密。
協定(Protocol)是指一種多人(Multiparty)參與的算法,兩人或多人借著一連串明確定義的動作以合作方式完成一些工作。密碼協定基本上是指在大型公眾網路上,多人借著協定,以達到秘密信息的交換,及確定信息完整性的方法。一般而言,密碼學中所有的密碼系統、密鑰分配系統、數字簽名、認證系統、秘密共享系統,均可稱為密碼協定。
密鑰分配系統的目的,在於使未曾謀面的兩人能共享(分配秘密密鑰。一般密鑰分配系統,是括能使兩人分配一共享秘密密鑰。若密鑰分配系統,能使多人(超過兩人)同時共享一秘密密鑰,則此系統稱為會議密鑰分配系統。
無條件安全會議密鑰分配
Г是一個完全圖(任意兩點都是直接相連的),他的節點 表示會議成員,邊對應於安全路徑,稱Г為安全路徑圖, 設 是Г的節點的一個子集,以 為節點集的會議圖就是Г的連通子圖Гc。我們通過如右圖所示的一個八節點的全連通圖來討論。
安全路徑圖及生成樹的構造
令 是一個 為主席的會議成員,其安全路徑 圖是一個完全圖,如上圖所示的一部分,所以生成樹不是惟一的。為了最大程度地實現系統運行的並行性,又構造了如右圖所示的生成樹 。該生成樹構造原則是:根節點孩子數為 ,其他每個節點的孩子數等於該節點的弟兄總數減去自己在弟兄中的排行(從右至左)。給定會議成員數 ,這樣構造的生成樹是惟一的,會議主席處於生成樹根節點上,由它產生一個關於其他節點與會議成員對應關係的一個訊息,將該訊息向所有的會議成員廣播。 選擇符合適當機率分布的會議密鑰 , 協商得一次性密鑰 , 協商得一次性密鑰 , 協商得一次性密鑰 , 協商得一次性密鑰 向 傳送訊息 ⊕ (⊕為逐比特異或運算),因為 知道 ,所以 可以計算出會議密鑰 。同理,每個節點都可以從其父親那裡得到會議密鑰 。
認證性
在此會議密鑰分配過程中的認證是這樣的, 向 傳送一個由 和 生成的訊息 , 可以通過該認證訊息獲知 是由 傳送過來的;同理 也可以向 證明會議密鑰 , 可向 證明 若 為惡意的,則它可能不將 傳送給 ,或傳送一個 ,則根據會議安全路徑簡圖,除 之外 等也可向 證明 ,所以 只接收 和 傳送的相同的密鑰,從而實現了對 的認證。
會議密鑰分配協定的一般描述
會議主席選擇一個符合適當機率分布的會議密鑰,用 表示非根節點 的父親, 表示生成樹 的高度。令 是以 為生成樹的會議節點集。協定過程如下:
(1)每個節點 與它的鄰節點協商一次性密鑰, 是由會議主席生成的會議密鑰, 是 和 協商的密鑰。
(2)從層數 到生成樹的高度 :
①在 中,每個非葉節點 以從右至左的順序向每個孩子 傳送訊息 ,其中
⊕ 。
②在了 中當 時,每個節點 收到訊息 ,計算 ⊕ , ,判斷 是否成立。如果成立,則 ;否則不接受 。
本協定中的運算⊕是逐比特異或運算,由於 是一次性的,由 shannon 的一次一密的完善保密定理可知, 是安全的。並且在第一步中是並行運算,第二步中也儘可能的實現了並行運算。
密鑰分配系統
密鑰分配系統實現的基本模式有兩種,一種是對小型網路,由於用 戶人數較少,每對用戶之間可用共享一個密鑰的方法來分配密鑰,如右圖所示。
右圖中, 表示 和 之間共享的密鑰。
另一種是在一個大型網路中,如由 個用戶組成的系統中,希望相互之間保密通信,如果用戶之間互相傳遞密鑰,則需要生成 個密鑰進行分配和存儲,造成較大的工作量。這種環境下的密鑰分配問題比較複雜,為了解決這一問題,常採用密鑰中心管理方式。在這種結構中,每個用戶和密鑰中心共享一個密鑰,保密通信的雙方之間無共享密鑰。
密鑰中心機構有兩種形式:密鑰分配中心(KDC)和密鑰傳送中心(KTC)。在KDC中,當A向KDC請求發放與B通信用的密鑰時,KDC生成一個密鑰 傳給A,並通過A傳給B,如右圖 圖1(a)所示;或者利用A和B與KDC共享密鑰,由KDC直接傳送給B,如右圖圖1(b)所示。
密鑰傳送中心(KTC)和密鑰分配中心(KDC)的形式十分相似,主要差別在於密鑰傳送中心形式下由通信雙方的一方產生需求的密鑰,而不是由中心來產生,利用A與B和KTC的共享密鑰來實現保密通信。當A希望和B通信時,A產生密鑰 並將密鑰傳送給KTC。A再通過KTC轉送給B,如右圖圖2(a)所示;或直接傳給B,如有圖圖2(b)所示。
由於KDC和KTC的參與,因此各用戶只需保存一個和KDC或KTC共享的較長期的密鑰即可。這樣,密鑰分配系統的安全性依賴於對中心的信任,中心結點一旦出問題將威脅整個系統的安全性。