【正文】
行 提供 User 間的身份認證 優(yōu)點 : 訊息在傳送過程中是加密的 只需要一次加解密的動作 缺點 : 需對應(yīng)用軟體做修改 125 OSI網(wǎng)路模型 OSI(Open Systems Interconnection)分 7層(layer): Application, Presentation, Session, Transport, Network, Data link, Physical 加密演算法可以放在任一層 放在較低層 : 對應(yīng)用軟體來說是看不見的 放在較高層 : endtoend encryption 126 127 哪些資料需加密 依應(yīng)用的不同分成 : Applicationlevel encryption TCPlevel encryption Linklevel encryption 如下頁所示 (較黑部分表示需要加密 ) 128 129 密鑰分配 (Key Distribution) 在 A 和 B 之間建立一個 (session) key 方法 : 由 A 選擇一把 key 然後秘密交給 B 由第三者 C 選擇一把 key 然後交給 A 和 B 如果 A 和 B 已經(jīng)有一把共用的 key , 一方就可以選擇一把新的 key 利用舊的 key 加密後交給另一方 如果 A 和 B 都有一個加密過的通道連接第三者 C, 則 C 就能透過此秘密通道分配 key 給 A 和 B 130 如果沒有第三者 , N 個使用者必頇事先建立 N(N1)/2 把 secret keys 131 132 如果有個第三者 (key distribution center, KDC), 則對 N 個使用者 , 系統(tǒng)只需事先建立好 N 把 secret keys 每個使用者都和 KDC 之間建立一把 secret key 當(dāng)兩個使用者想傳遞資料時 , 就可以請求 KDC 的協(xié)助來建立 (session) key 因為每個使用者和 KDC 之間都有一個加密的通道 , 所以這種方法可行 133 Key Distribution Center (KDC) 令 Kx 表示 KDC 和使用者 X 間的 secret key 因為這樣的 Kx 是好不容易才建立的 , 所以 Kx 最好盡量少用 , 因此傳遞資料時通常會建立一把 session key 給目前的交談使用 Key distribution scheme: 見下圖 134 135 A transparent(透明的 ) key control scheme 利用 frontend processor (FEP) 步驟 : ? Host 要求一個 packet connection ? FEP 將要送的 packet 先放在 buffer 中 , 然後跟 KDC 要求一個 session key ? KDC 分配 session key 給兩邊的 FEP ? 兩邊的 FEP 開始利用 session key 傳送 packet 136 137 Decentralized key distribution N 個使用者需要 N(N1)/2 把 master keys 每個使用者自己扮演 KDC 的角色 如下圖 MKm 表示 A 和 B 之間的 master key 138 139 亂數(shù)產(chǎn)生器 (Random number generator) 用途 產(chǎn)生 secret keys and session keys. 產(chǎn)生 public keys, 如 RSA. 產(chǎn)生認證過程中使用的 nonces ? Nonce: Number used at once … 140 亂數(shù)序列的特性 : Uniform distribution: 相同長度的 pattern 出現(xiàn)的機率應(yīng)該一樣 如 (0)=(1), (00)= (01)= (10)= (11), … Independence: 無法由其他 bits 推出任一 bit. 統(tǒng)計測試 如果一個序列通過一些統(tǒng)計上的檢測則稱該序列為亂數(shù)序列 141 不可預(yù)測性 (Unpredictability) 給定一個序列 , 無法由該序列推出下一個值 真正的亂數(shù)是很難產(chǎn)生的 , 一般我們用程式產(chǎn)生出一些有好的統(tǒng)計性質(zhì)的 pseudorandom numbers 142 Pseudorandom Number Generator(PNG) Pseudorandom numbers 並不是真正的 random numbers. 主要是利用一個短的真正亂數(shù) (seed) 來產(chǎn)生長的 pseudorandom number 143 Linear Congruential Generator 參數(shù) a, c, m: integer X0: the seed (種子 ) 演算法 Xn+1=(aXn+c) mod m, for n?0. Example a=3, m=7, c=2, X0=1, then X1=5, X2=3, X3=4, X4=0, X5=2, X6=1, … If gcd(a, m)=1, then the period T is the maximum m1. 144 Cyclic Encryption PNG 145 ANSI PNG 參數(shù) 對第 i 個 generation stage DTi: 當(dāng)時 Date/Time 的 64 bits 表示式 . Vi: seed value. Ri: 產(chǎn)生的 Pseudorandom number K1, K2: Triple DES keys 演算法 146 ? ?? ?? ?? ?iiiiiiDTEDEREDEVDTEDEVEDER21212121K,KK,K1K,KK,K?????147 Blum, Blum, Shub (BBS) Generator 參數(shù) n=pq, where p?q?3 (mod 4), p and q are prime(質(zhì)數(shù) ) and of the same length S is the seed, 1?s?n1 演算法 X0=s2 mod n, Xi=Xi12 mod n, for i ? 1 Let Bi be the last bit of Xi Output: B1B2B3… 148 s XiBi0 207491 143135 12 177671 13 97048 04 89992 05 174051 1: : :20 48060 0Example n = 192649 = 383503 seed = 101355 149 150 公鑰密碼系統(tǒng) 151 Why publickey system? 發(fā)展 pubkey systems 的兩個理由 密鑰分配 (Key distribution) 在傳統(tǒng)密鑰密碼系統(tǒng)中 , 使用者必頇透過秘密通道或 KDC 的協(xié)助來達成密鑰共用 , 十分不方便 如果透過 KDC 的協(xié)助 , 則 KDC 將會知道使用者的密鑰 , 並不安全 數(shù)位簽章 (Digital signature) 在商業(yè)用途或身份證明方面 , 需要簽章的機制 152 雖然公鑰系統(tǒng)的目標是解決密鑰分配的問題 , 它卻只能降低其複雜度 然而 , 針對某些特殊的領(lǐng)域 , 例如電子商務(wù) (Electronic merce, EC), 公鑰系統(tǒng)提供了許多有用的應(yīng)用 153 S e c r e t k e y e n c r yption P u b li c k e y e n c r yptionO ne ke y ( s e c r e t ke y ) isuse d f or both e nc r y ptiona nd de c r y ptionT w o ke y s ( one public k e y a nd one p r iva te k e y ) a r e use d. Th epublic ke y is use d f or e nc r y ption a nd the p r iva te ke y is use df or de c r y ption.The se nde r a nd r e c e iv e rmust sha r e the sa mese c r e t k e y .The se nde r n e e d onl y know the public k e y , w hile ther e c e iv e r ne e d kno w the pr iv a te ke y .T w o use r s shoulde stab li sh the ir se c r e t ke yvia a se c u r e c h a nne l or theK D C.Ea c h use r s e le c ts a p a ir of public a nd pr iva te k e y s a nd the npublishe s the public ke y .G ive n pa irs of pla intex tc iphe r te x t a nd e nc r y ptiona lg or it hm, the a tt a c ke rc a nnot g e t the se c r e t k e y .( 1) G ive n the public k e y a nd the e nc r y ption a l g or it hm, thea tt a c ke r c a nnot g e t the c or r e spondin g pr iva te k e y .( 2) G ive n the public k e y a nd the d e c r y ption a l g or it hm, itmust be impra c ti c a l to de c iph e r a c iphe r te x t.比較 154 公鑰系統(tǒng)的安全性 每個使用者 A 選擇一把公鑰 (public key KUa), 一把私鑰 (private key KRa) 將公鑰 KUa 公開 , 使其他使用者能取用 當(dāng)使用者 B 要傳送訊息給 A 時 , 首先去取得 A 的公鑰 KUa, 利用該公鑰來加密訊息 EKUa(P)=C, 將密文 C 傳給 A 當(dāng) A 收到 C= EKUa(P) 之後 , 利用自己保管的密鑰 KRa 來做解密 DKRa(C)=DKRa(EKUa(P))=P 155 156 157 身份認證 (Authentication) 一些公鑰系統(tǒng) , 例如 RSA, 能夠提供身份認證的服務(wù) , 因為在這些系統(tǒng)中其加密和解密能互換 , 即 EKUa(DKRa(M))=M. 當(dāng)使用者 A 想要證明某份文件 P, 他就計算 y = DKRa(P). 當(dāng)使用者 B 收到 (P, y), 他就去驗證是否 EKUa(y) = P. 這份文件 P 能被 y 所證明 因為只有 A 知道 KRa, 因此 B 確定這份文件 P 是 A 傳送過來的 158 159 數(shù)位簽章 (Digital signature) 我們稱這樣的 y 為使用者 A 利用 (KUa, KRa) 對文件 P 做的數(shù)位簽章 最重要的地方在於: 數(shù)位簽章是由私鑰及文件所計算出來 所以 , 對不同的文件所簽出來的簽章也不一樣 Publickey systems 能達成機密性 (confidentiality) 和認證 (authentication) 兩種用途 160 161 Publickey System 的種類 Encryption RSA, ElGamal Digital signature RSA, ElGamal, DSA (digital signature algorithm) Key exchange without trusted server DiffieHellman key exchange 162 Publickey service Alice: KUa。 32 網(wǎng)際網(wǎng)路 TCP SYNACK 封包 Backlog 佇列 假造來源和目的 IP的 Ping要求封包 未完成的程序 目標系統(tǒng) 駭客系統(tǒng) SYN SYN 攻擊模式利用建立連結(jié)時