密碼編碼學與網絡安全講義(共63頁).ppt_第1頁
密碼編碼學與網絡安全講義(共63頁).ppt_第2頁
密碼編碼學與網絡安全講義(共63頁).ppt_第3頁
密碼編碼學與網絡安全講義(共63頁).ppt_第4頁
密碼編碼學與網絡安全講義(共63頁).ppt_第5頁
已閱讀5頁,還剩58頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、B密碼編碼學與網絡平安密碼編碼學與網絡平安 電子工業出版社2006 - 2007B第13章 數字簽名和認證協議 13.1 數字簽名 *13.a PKCS#1 *13.b RSA簽名例如in OpenSSL *13.c ElGamal簽名方案 13.3 數字簽名標準DSS 13.2 認證協議 *13.d 專題討論B為了承諾 數字簽名是密碼學開展過程中的最重要的概念之一。數字簽名可以提供其他方法難以實現的平安特性,即抗抵賴。B數字簽名 Digital Signature 加密 報文鑒別 數字簽名 抵抗通信雙方的抵賴 對方(自己)否認發送過或收到過某個報文 向對方說明自己的身份B13.1 數字簽名

2、消息認證基于共享秘密,不能防止抵賴 只是2方合作抵抗第3方竄改/假冒 共享的秘密不具有排他性質 雙方有同樣的不分彼此地能力;因此對某個報文的存在和有效性,每一方都不能證明是自己所為,或者是和自己無關 特異性 要想實現類似簽名的平安能力,必須使每個人使用獨有的秘密B考察手寫簽名的特性 簽名的含義 簽名者慎重表達認可文件內容的意向的行為 主要形式 手寫簽名、簽章、手指紋印(其他生物技術) 特性 不可偽造,特異性 不可重用,日期和時間相關性 不可改變,能發現涂改、轉移意義或用途 不可抵賴,能夠質證 可仲裁的,可做為法律證據B引用 第40頁:密碼故事(the code book)B數字簽名: 要適應的

3、新變化 數字簽名手寫簽名 數字文件紙版文件 數字小文件手寫字簽章 如何綁定?同一頁紙 關于掃描手寫字跡、鼠標手寫 No!B手寫簽名的數字化改造 數學支持: 簽名函數 被簽署的是文件(大文件) 簽名生成另外一個文件(小文件) 簽名過程一定有簽署人的身份和某種秘密(別人不知的)參與 簡單易行計算/存儲B簽名驗證操作抽象圖 簽名 驗證簽名函數報文(大)報文簽名(小)報文簽名驗證函數身份是否身份B用私鑰加密當作簽名 主要操作 輸入 報文明文、私鑰md = s 輸出 報文明文、報文密文(簽名) (m, s) 驗證se =? m 是否滿足簽名要求的特性 不可偽造 不可改變 抗抵賴B散列 | 簽名 討論 私

4、鑰(其實是公鑰)的管理: 和身份綁定、更新等 簽名過程太慢: 啟用散列函數 改進 對報文的散列值用私鑰加密得到和n等寬的簽名值B無中心數字簽名 直接使用自己的私鑰加密作為簽名 無中心 存在問題 聲稱私鑰被偷竊而抵賴。雖然可以給報文添加時間戳,并要求用戶必須及時掛失私鑰,但是盜用者仍可以偽造較早期的簽名。 引入中心可以有很多優點,同時也很多缺點。B有信任中心幫助的簽名 優點:可以簡化用戶的考慮,甚至可以使用對稱算法缺點:中心的平安故障、在線瓶頸、可靠性等問題B13.a PKCS#1v2.1 Outline RSA public key :(n,e) RSA private key:(n,d)ed

5、1 mod (n)其中是n的(素因子-1)的LCM I2OSP (Integer-to-Octet-String primitive)給定正整數x,輸出字節串X=X1X2X3x2560X12561X22562X3 OS2IP (Octet-String-to-Integer primitive)輸入字節串,返回整數值BRSA Primitive RSAEP (n, e), m)c = me mod n RSADP (n,d), c)m = cd mod n RSASP1(n,d), m)s = md mod n RSAVP1(n,e), s)m = se mod nBEncryption Sc

6、hemes ESRSAES-OAEP (Optimal Asymmetric Encryption Padding) new, recommendedRSAES-PKCS1-v1_5 obsolete RSAES-OAEPEME-OAEPRSAEP/RSADP RSAES-PKCS1-v1_5EME-PKCS1-v1_5RSAEP/RSADPBRSAES-OAEP RSAES-OAEP-ENCRYPT(n, e), M, L) Option: Hash of hLen-byte MGF mask generation function (output, an octet string) mLe

7、n = k-2hLen-2 L optional label to be associated with the message |L| = 261-1 octets for SHA-1 EME-OAEP encoding EM = 0 x00 | maskedSeed | maskedDB m = OS2IP (EM) c = RSAEP (n, e), m) C = I2OSP (c, k) RSAES-OAEP-DECRYPT (K(n, d), C, L)BEME-OAEP encoding operation PS lHash M seed DB = EM = a MGF MGF 0

8、0 00 maskedSeed maskedDB BRSAES-PKCS1-v1_5 RSAES-PKCS1-V1_5-ENCRYPT(n, e), M) mLen = k 11 PS是k-mLen-3字節(至少8字節)偽隨機數 EM = 0 x00 | 0 x02 | PS | 0 x00 | M m = OS2IP(EM) c = RSAEP(n, e), m) C = I2OSP(c, k) RSAES-PKCS1-V1_5-DECRYPT(n, d), C)BSignature schemes with appendix SSRSASSA-PSS (Probabilistic Sign

9、ature Scheme) new, recommendedRSASSA-PKCS1-v1_5 obsolete RSASSA-PSSEMSA-PSSRSASP1/RSAVP1 RSASSA-PKCS1-v1_5EMSA-PKCS1-v1_5RSASP1/RSAVP1BRSASSA-PSS RSASSA-PSS-SIGN (K=(n,d), M) EM = EMSA-PSS-ENCODE (M, modBits 1) m = OS2IP (EM) s = RSASP1 (K, m) S = I2OSP (s, k) RSASSA-PSS-VERIFY (n, e), M, S)BRSASSA-

10、PKCS1-v1_5 RSASSA-PKCS1-V1_5-SIGN (K(n, d), M) EM = EMSA-PKCS1-V1_5-ENCODE (M, k) m = OS2IP (EM) s = RSASP1 (K, m) S = I2OSP (s, k) RSASSA-PKCS1-V1_5-VERIFY(n, e), M, S)BEncoding methods for signatureswith appendix EM EMSA-PSS EMSA-PKCS1-v1_5 EMSA-PSS EMSA-PSS-ENCODE (M, emBits) EMSA-PSS-VERIFY (M,

11、EM, emBits) EMSA-PKCS1-v1_5 EMSA-PKCS1-v1_5-ENCODE (M, emLen)BEMSA-PSS encoding operation bc padding2 maskedDB M M padding1 mHash salt salt H MGF M = DB = EM = a Hash Hash BEMSA-PKCS1-v1_5 EMSA-PKCS1-v1_5-ENCODE (M, emLen) Option: Hash of hLen-byte emLen at least tLen + 11 H = Hash (M) T = HashIDH (

12、ASN.1編碼) DigestInfo := SEQUENCE digestAlgorithm AlgorithmIdentifier, digest OCTET STRING PS: emLen-tLen-3(8+B) octets with value 0 xff EM = 0 x00 | 0 x01 | PS | 0 x00 | T B對HASH的ASN.1編碼(in EMSA-PKCS1-v1_5) MD2ref laymans guide30 20 30 0c 06 08 2a 86 48 86 f7 0d 02 02 05 00 04 10 | H MD530 20 30 0c 0

13、6 08 2a 86 48 86 f7 0d 02 05 05 00 04 10 | H SHA-130 21 30 09 06 05 2b 0e 03 02 1a 05 00 04 14 | H SHA-25630 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20 | H SHA-38430 41 30 0d 06 09 60 86 48 01 65 03 04 02 02 05 00 04 30 | H SHA-51230 51 30 0d 06 09 60 86 48 01 65 03 04 02 03 05 00 04 40 |

14、 HBReading A Laymans Guide to a Subset of ASN.1, BER, and DER ftp:/ PKCS #1 and more :/ ASN.1 in OpenSSL #openssl asn1parseB13.b RSA簽名例如用OpenSSL函數簽名的例子 讀入或產生RSA的key 簽署一個報文 驗證之demo_sign,v2.zipBRSA四種操作總結 公鑰加密RSA_public_encrypt() 私鑰解密RSA_private_decrypt() 私鑰加密RSA_private_encrypt() 公鑰解密RSA_public_decryp

15、t() 簽名RSA_sign() (私鑰加密) 驗證RSA_verify() (公鑰解密) B 回憶ElGamal加密體制 準備 素數p,Zp*中本原元g,公開參數 私鑰a,公鑰b=ga mod p 加密 對明文1=m=p-1,選隨機數k 密文(c1, c2)c1=gk mod p, c2=mbk mod p 解密 mc2 (c1a)-1mbk (gk)a)-1 m(ga)k (g-ka) m mod pB13.c ElGamal簽名方案 Zp滿足離散對數問題難解,是生成元設P Zp* ,A Zp*Zp-1 K (p, a,), =a (mod p) 私鑰是a 簽名時,取秘密隨機數kZp-1*

16、,定義sig(x,k) = (,), (k mod p, (x-a)k-1 mod (p-1) 驗證 ver(x, (,): ? ?x mod pB驗證正確性證明 如果 (x,)是真實簽名aka+k而 (x-a) k-1 mod (p)即 ax-k mod (p)故 n(p)+x-k+k n(p)+x n(p)x x mod p 其實就是簽名時從 kax解出來得B簽名計算實例 p467,2,a127,那么a mod p 2127 mod 467 132 簽名x100,取k213(注: k得和p-1互素),那么 k-1213-1 mod 466 = 431k mod p 2213 mod 467

17、 29 (x-a) k-1 mod (p) (100-12729)431 mod 466 51 簽名值:100,(29,51)B驗證計算實例 p467,2,a127, 132x,(,)100,(29,51) 判斷是否:x mod p 事實上132292951189 mod 467x2100189 mod 467 而且,如果100,(29,51)的任何改變都會導致驗證失敗BSubject links DSS/DSA FIPS 186 P1363 B13.3 數字簽名標準 Digital Signature Standard DSSDigital Signature Algorithm DSA D

18、SS標準DSA FIPS 186 NIST 1991 1993 只能簽名,不能加密 概念比照RSA:MEki(H(M),ki是私鑰DSS:MEki(H(M), k),ki是私鑰 k是隨機數B圖示 RSA vs. DSS BDSA 準備 素數p,約512比特; 素數q,約160比特,要求是p-1的因子 選擇gh(p-1/q) mod p 密鑰 用戶私鑰x,xK IDa | IDb | Na2 AB Ekb(Ks|IDa)4 AB Eks(f(Nb) 缺點 假設對手某舊的Ks,那么其可從第3步開始模仿A 改進 Denning KehneBNeedham-Schroeder協議 NS協議是最著名的早

19、期協議 NSSK - Needham Schroeder Symmetric Key NSPK - Needham-Schroeder Public KeyBDenning1 A K IDa | IDb2 AB Ekb(Ks|IDa|T)4 AB Eks(f(Nb) 需要一個網絡全局時鐘TBKehne1 A B IDa | Na2 B K IDb | Nb | Ekb(IDa|Na|Tb)3 A B Ekb(IDa|Ks|Tb) | Eks(Nb)不需全局同步時鐘B使用公鑰(私鑰)鑒別身份 準備 公鑰公開發布 私鑰私人秘藏 鑒別過程 你有真實對方的公鑰 讓對方證明他有相應的私鑰 怎么辦?讓對方

20、簽個名來看看即可 注意隨便簽署報文是很危險的! 挑戰-應答機制 SIGk(Na|Nb)BA鑒別所謂的B是否是真正的B (A事先知道真實B的真實公鑰e,這是前提) A和對方建立連接,A現在要核實對方是否是B 現在只能說對方可能是B,或僅僅是對方自己聲稱自己是B A只需核實對方是否有私鑰d(和e對應的那個d)即可 只有真實的B才有相應的d,別人不可能擁有d A需要一種旁敲側擊的手段來試試對方是否擁有d A于是決定請對方用d簽個名來看看 A B:隨機數m (即隨機報文) A B:ssignature(m, d) A判斷簽名(m, s)是否是B的真實簽名,從而知道對方是否是真正的B* 不要隨便對別人給

21、你的報文簽名 那個報文可能對你不利,可能是張欠條 (當然你欠人家的) 因此B必須在簽署消息m前用自己的隨機數干擾一下B13.d 專題討論 電子簽名法 Windows中的文件防篡改機制 Linux中的系統文件保護 思考:MD5算法分析進展對簽名的影響 預習: 文件交換及存儲的通用混合密碼體制方案B電子簽名法 ?中華人民共和國電子簽名法? 第十四條 可靠的電子簽名與手寫簽名或者蓋章具有同等的法律效力。 BWindows系統文件的簽名 “Windows文件保護能夠檢測到其他程序要替換或移動受保護的系統文件的意圖,那么它是依據什么來檢測的呢? 其實,Windows文件保護是通過檢測文件的數字簽名,以確定新文件的版本是否為正確的Microsoft版本,如果文件版本不正確,Windows文件保護會自動調用dllcache文件夾或Windows中存儲的備份文件替換該文件,如果Windows文件保護無法定位相應的文件,那么會提示用戶輸入該位置或插入安裝光盤。 Windows的核

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論