第五章 金鑰分配與金鑰管理 —— 現代密碼學(楊波)課後題答案解析

3cH0_Nu1L發表於2023-11-15

第五章作業參考答案

1.在公鑰體制中,每一使用者U都有自己的公開鑰PKU和秘金鑰SKU。如果任意兩個使用者A,B按以下方式通訊,A發給B訊息(EPKB(m), A),B收到後,自動向A返回訊息(EPKA(m), B),以使A知道B確實收到報文m

(1) 問使用者C怎樣透過攻擊手段獲取報文m?

答:當A發給B訊息(EPKB(m), A)時,A的身份“A”並沒有認證,而B在收到訊息後也無法對傳送者進行檢驗,且身份A,B均明文傳輸,因此使用者C可透過如下手段獲得報文m

當A發給B訊息(EPKB(m), A)時,C擷取該訊息並將身份A替換為自己的身份C,將修改後的訊息(EPKB(m), C)發給接收者B

B提取訊息後,根據身份“C”將返回訊息(EPKc(m), B)

C再次劫取B返回的訊息(EPKc(m), B),用自己的私鑰SKC解密出訊息m,並用A的公鑰對m加密後將訊息(EPKA(m), B)發給A。

這樣,使用者C獲得了報文m,而沒有影響A,B之間的正常通訊,實現了攻擊。

(2)若通訊格式變為

  A發給B訊息EPKB (ESKA(m), m, A)

  B向A返回訊息EPKA (ESKB(m), m, B)

這時的安全性如何?分析這時A,B如何相互認證並傳遞訊息m。

解:根據訊息格式,先對訊息m進行了簽名,然後再進行加密,傳送的訊息具有了保密性和認證性,敵手無法獲得報文明文,安全性提高。

A,B之間相互認證傳遞訊息的過程如下:

B收到訊息EPKB (ESKA(m), m, A)時,先用B自己的私鑰解密得到訊息(ESKA(m), m, A),然後根據提取的身份資訊A,用A的公鑰對訊息m的簽名ESKA(m)的正確性進行驗證,如果驗證透過,則說明訊息確實來自A。反之A用相同的方法可驗證EPKA (ESKB(m), m, B)確實來自B,從而實現了相互認證

2.Diffie-Hellman金鑰交換協議易受中間人攻擊,即攻擊者截獲通訊雙方通訊的內容後可分別冒充通訊雙方,以獲得通訊雙方協商的金鑰。詳細分析攻擊者如何實施攻擊。

雖然Diffie-Hellman金鑰交換演算法十分巧妙,但由於沒有認證功能存在中間人攻擊。當Alice和Bob交換資料時,Trudy攔截通訊資訊,並冒充Alice欺騙Bob,冒充Bob欺騙Alice。其過程如下:

(1)Alice選取大的隨機數x,並計算X=gx (mod P),Alice將gPX傳送給Bob,但被Trudy攔截。

(2)Trudy冒充Alice選取大的隨機數z,並計算Z=gz(mod P),Trudy將Z傳送給Bob。

(3)Trudy冒充Bob,再將Z=gz(mod P)傳送給Alice。

(4)Bob選取大的隨機數y,並計算Y =gy(mod P),Bob將Y傳送給Alice,但被Trudy攔截。

由(1)、(3)Alice與Trudy共享了一個秘密金鑰gxz,由(2)、(4)Trudy與Bob共享了一個秘密金鑰gyz

以後在通訊過程中,只要Trudy作中間人,Alice和Bob不會發現通訊的異常,但Trudy可以獲取所有通訊內容。

3.Diffie-Hellman金鑰交換過程中,設大素數p=11,a=2是p的本原根,

(1) 使用者A的公開鑰YA=9,求其秘金鑰XA

解:XA滿足YAaXA mod p  即9=2XA mod 11,所以由XA=6

(2)設使用者B的公開鑰YB=3,求A和B的共享金鑰K

解:由Diffie-Hellman協議可知K= YB XA mod p=36 mod 11=3

4.線性同餘演算法Xn+1=(aXn) mod 24,問:

(1)該演算法產生的數列的最大週期是多少?

解:由於模m=24因此它沒有原根,又由遞推式不難得知XnanX0 mod 24

因此該演算法產生的序列的最大週期為a mod 24的最大階l,而l|j(24),但lj(24)=8

l=4,則不難驗證,X0=1,a=3時,數列週期為4,因此該演算法產生數列的最大週期是4

(2) a的值是多少?

解:a必須滿足gcd(a,24)=1,所以a在{1,3,5,…,15}中取值。

週期為4的有{3,5,11,13},即為a的取值

(3) 對種子有何限制?

答:種子X0必須滿足gcd(X0,24)=1。

5.在Shamir秘密分割門限方案中,設k=3,n=5,q=17,5個子金鑰分別是8、7、10、0、11,從中任選3個,構造插值多項式並求秘密資料s

解:取f(1)=8, f(2)=7, f(4)=0,構造插值多項式

f(x)=8(x-2)(x-4)/(1-2)(1-4)+7(x-1)(x-4)/(2-1)(2-4)+0(x-1)(x-2)/(4-1)(4-2)

   =8(x-2)(x-4)6+7(x-1)(x-4)8 mod 17

   =2x2+10x+13

s= f(0)=13

複習題&&答案

4.1. 金鑰管理的一般架構模式是什麼

其中主金鑰的安全性最高,用於加密金鑰加密金鑰,

金鑰加密金鑰也稱為次主金鑰,用於加密會話金鑰和初始金鑰

會話金鑰用於加密傳輸的資料或者儲存的檔案

初始金鑰一般用作種子金鑰。

4.6. 試述BBS產生器

BBS(blum-blum-shub)產生器

l 首先,選擇兩個大素數pq,滿足pq≡3 mod 4,令n=p×q。再選一隨機數s,使得s與n互素。然後按以下演算法產生位元序列{Bi}: 

X0s2 mod n

for  i=1 to ¥ do  {

l     Xi=X2i1 mod n

    BiXi mod 2  }

l 即在每次迴圈中取Xi的最低有效位 

4.8. “一次一密”和“一次會話一密”的區別是什麼?哪一種情況更加常見。

一次一密是無條件安全的,金鑰的長度至少和明文一樣長

一次會話一密是指每次會話使用同一個金鑰,不同的會話採用不同的金鑰

一次會話一密更加常見和實用。

6.1. 對於公開鑰的分配,試回答下列問題

(1)  對於公鑰密碼體制中公開鑰的分配,公開發布的方式有什麼缺點?

(2)  公用目錄表與公鑰管理機構的區別是什麼?

(3)  公鑰管理機構的方式和公鑰證書的方式的區別是什麼?

(4)  基於身份的體制相比於基於證書的體制的優缺點是什麼

(5)  一次性公鑰分配方式與公開發布方式相比,哪個安全性相對更好些?

(1) 公開發布的方式,由於缺少保護,公鑰易於被替換

(2) 前者是使用者直接訪問公用目錄表去訪問金鑰,後者是由使用者提出查詢公鑰請求,由公鑰管理機構負責查詢金鑰,並反饋給使用者,使用者無法直接操作金鑰伺服器

(3) 公鑰管理機構的方式中,伺服器必須線上,而證書的方式中CA可以離線

(4) 基於身份的體制避免了證書維護的開銷,直接使用身份作為公鑰,但存在金鑰託管問題

(5) 一次性公鑰分配方式要好些,因為一次性公鑰分配中,公鑰只在組要分配金鑰時臨時隨機產生,之後就銷燬了,被攻擊的風險更小些。

相關文章