安全通信具有下列所需要的的特性:
- 機(jī)密性(confidentiality)
希望入侵者無法理解報(bào)文內(nèi)容锚烦,所以這必須要求發(fā)送方對(duì)報(bào)文做加密觅闽,接收方對(duì)數(shù)據(jù)做解謎 - 報(bào)文完整性(message integrity)
報(bào)文不能在傳輸?shù)耐局斜粣阂飧膭?dòng)或者意外變動(dòng)。 - 端點(diǎn)鑒別(end-point authentication)
明確身份涮俄,不允許冒充蛉拙。 - 運(yùn)行安全性(operational security)
詞語解釋:
明文:報(bào)文的最初形式 m
密文:經(jīng)過加密算法加密的明文 KA(m)
加密密鑰:KA
加密過程:KA(m)
解謎密鑰:KB
解謎過程:KB(KA(m))=m
兩種系統(tǒng):
- 對(duì)稱密鑰系統(tǒng)(symmetric key system)
- 公開密鑰系統(tǒng)(public key system)
公開密鑰加密
K+:公鑰
K-:私鑰
加密:K+(m),其中K+的含義包括一個(gè)用于加密的算法和一個(gè)公開密鑰
解密:K-(K+(m)),這里的K+同上:算法+鑰匙
RSA
經(jīng)典公鑰加密算法
其過程:
1. 大素?cái)?shù)p和q
2. 計(jì)算n=pq彻亲,z=(p-1)(q-1)
3. 選擇e孕锄,e和z互素
4. 求一個(gè)d,使(ed)mod z =1
5. 得到:
K+:(n,e) 公鑰
K-:(n,d) 私鑰
加密報(bào)文:c=(m^e)mod ns
解密報(bào)文:m=(c^d)mod n
e=5,n=35苞尝,加密:
字母 | m:數(shù)字表示 | m^e | c=m^e mod n |
---|---|---|---|
l | 12 | 248832 | 17 |
o | 15 | 759375 | 15 |
v | 22 | 5153632 | 22 |
e | 5 | 3125 | 10 |
d=29,n=35,解密:
密文 | c^d | m=c^d mod n | 明文 |
---|---|---|---|
17 | 481968572106750915091........ | 12 | l |
15 | 12783.... | 15 | o |
22 | 85164... | 22 | v |
10 | 10000.... | 5 | e |
報(bào)文完整性
報(bào)文完整性確保了報(bào)文在發(fā)送途中沒有被篡改畸肆,這涉及了幾個(gè)概念:密碼散列函數(shù),數(shù)字簽名
密碼散列函數(shù)
通常用H(x)來表示野来,它的特性之一:
- 找到任意兩個(gè)不同的報(bào)文x和y使H(x)=H(y)恼除,在計(jì)算上是不可能的
如果說發(fā)送報(bào)文是(m,H(m)),入侵方就不可能用其他報(bào)文替換該受保護(hù)的報(bào)文 - 接收方視角:收到報(bào)文(m,k),驗(yàn)證H(m)==k曼氛?豁辉,相同則證明沒有被篡改。
作用:(m,H(m))可以保證發(fā)送報(bào)文不被篡改舀患。
常見的密碼散列函數(shù):MD5,SHA-1
數(shù)字簽名
上面如果單純用密碼散列函數(shù)會(huì)引發(fā)這樣一個(gè)問題:
入侵者雖然不能篡改報(bào)文徽级,但是可以整體替換整個(gè)報(bào)文發(fā)送(m',H(m')),這樣仍然會(huì)使通信不安全,因此這種方式只保證了報(bào)文完整性聊浅,而不能端點(diǎn)鑒別餐抢。下面的數(shù)字簽名解決了這個(gè)問題
K-(H(m)) ->實(shí)際上就是用發(fā)送方私鑰加密的密碼散列函數(shù)
發(fā)送方可發(fā)送(m,K-(H(m)))
接收方視角:
K+(k)==H(m)? 相同則證明沒有被篡改低匙,且因?yàn)槭怯冒l(fā)送方的公鑰來解密旷痕,所以可以證明對(duì)方就是發(fā)送方。
那么引出下一個(gè)問題:如何可靠的獲取發(fā)送方的公鑰顽冶,如果這個(gè)不能保證欺抗,數(shù)字簽名依然是不安全的。
證書
公鑰證書CA
Bob從CA獲取到的證書:CA-(B,KB+)
其中CA-是CA的私鑰,B是Bob的實(shí)體信息,KB+是bob的公鑰
接收方用CA+解密CA-(B,KB+)强重,即可獲得KB+