第五章作業參考答案
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將g、P、X傳送給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滿足YA=aXA 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因此它沒有原根,又由遞推式不難得知Xn=anX0 mod 24
因此該演算法產生的序列的最大週期為a mod 24的最大階l,而l|j(24),但l≠j(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 首先,選擇兩個大素數p,q,滿足p≡q≡3 mod 4,令n=p×q。再選一隨機數s,使得s與n互素。然後按以下演算法產生位元序列{Bi}:
l X0=s2 mod n
l for i=1 to ¥ do {
l Xi=X2i-1 mod n
l Bi=Xi mod 2 }
l 即在每次迴圈中取Xi的最低有效位
4.8. “一次一密”和“一次會話一密”的區別是什麼?哪一種情況更加常見。
一次一密是無條件安全的,金鑰的長度至少和明文一樣長
一次會話一密是指每次會話使用同一個金鑰,不同的會話採用不同的金鑰
一次會話一密更加常見和實用。
6.1. 對於公開鑰的分配,試回答下列問題
(1) 對於公鑰密碼體制中公開鑰的分配,公開發布的方式有什麼缺點?
(2) 公用目錄表與公鑰管理機構的區別是什麼?
(3) 公鑰管理機構的方式和公鑰證書的方式的區別是什麼?
(4) 基於身份的體制相比於基於證書的體制的優缺點是什麼
(5) 一次性公鑰分配方式與公開發布方式相比,哪個安全性相對更好些?
(1) 公開發布的方式,由於缺少保護,公鑰易於被替換
(2) 前者是使用者直接訪問公用目錄表去訪問金鑰,後者是由使用者提出查詢公鑰請求,由公鑰管理機構負責查詢金鑰,並反饋給使用者,使用者無法直接操作金鑰伺服器
(3) 公鑰管理機構的方式中,伺服器必須線上,而證書的方式中CA可以離線
(4) 基於身份的體制避免了證書維護的開銷,直接使用身份作為公鑰,但存在金鑰託管問題
(5) 一次性公鑰分配方式要好些,因為一次性公鑰分配中,公鑰只在組要分配金鑰時臨時隨機產生,之後就銷燬了,被攻擊的風險更小些。