Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
633,92 KB
Nội dung
! "#$%&'()*!+,#%& /%&01!!200345)62 78#9!:;<3)3)<=56>?/@ -A!&'(#9)B*:<.-0C:*%&8 !:/7C3DEFG#H%&8:%&)I)33 JCKAL#9)4BL*.-0 C:*8%>%6!M !"#$%&'()N%>:0C:*O') I!:/7C3D)0C:6>83 !:/7C3D# * +, - ./ "#$ %& $0 %1 '() N%>0P !0!:/7C3D3!:/7' %&8EFGCQ5G:)# R 234567'() 589+:; !)#9;!)A:SC5 I!;L;C3)'H#.6<' H.)''.#9!)%&3I!;)JTUUB" V66!6.6# 9!):6W'(XCY/ 3#Z%&C2)"%#% :<[/%\%C1CY43 %&#NY%[/3%&#>8W %6!M Hình 1.1: Sơ đ m ha v gii m ca h mt RSA. 9)M C3D Z Z6CY 9!)B)]*^M # N"62!:;24 =!; # 9YM_` a'*KLYAbcCd R# 9YKe.Mad_afda fd c c# N"62,;.6))g.gad].<ad^_ h# 9Y'6))'`.a)'add Za<.d<Z6a<'d 9!)M N_ . )' 9!)3M _N ' )' i)L!)',;C)jYS62!:;2 62!:;24YJC.L)'!)]k^ 5*<+ =%! $%C10L!)(!)L Y)4624#$:<1!,lB: 62m!0[A*P/%&1 !3#9!: ;<!)=62A*6!M $1!_b)X_06nB)NK%>ob)X# $1!62.<KP0 . g<l))'!)6n pK5#q0:/'r'0CQJC.L N# $1!406n'=1s 7#t36W<uv%&CQ a<.d6nM Naud _ u . )' Navd_v . )' Naud`Navd_au . )'dav . )'d_au`vd . )' NY0:@A/,AA:'5!CQ %>A,"C3DaNGfN)6.G d:A ,"C3aNNfN)6.N. d]c^# i/X35A*;<;,16n6W'( 0o!:/7=!;C3D%4,#w!0 h !:/7:33C3))>)K)% ;#!!:/7<sC3D6n))62& C3#i*!:33J)A',)C3D :C3#V)m!x!:/7C3D%4, m!!:/7CA2-o2%!EFGaE 6:.F:)G''d# 5> #$%&$0%1?@,A'() EFGaE6:.F:)G''d%>o!:/ 7C3DL%&C?Vy..<G)z: )JTTc%&31C?{)C#v)6)..V#V:6J TTk]^# #R# V62 !:%4 V).|CB')62!:;<KL62!:; KL).# N'%4L62,-# N;L62,-# }~~•Gl2!s).}•# }•Na})dCL!s}4!s•# y3!s).<)B..#q0:<x 3!:/7S!s).662!:;j%&B#i/ : o uEG au.. 9) E. G.d EuGaE.9)u..G.d# #R# uEG uEG!:/62!:;j!s). '-K# k iI!)M -2!:;j/!:/7 -H.i'!s).I! iI!M }H!s).'-H. HsM€2!:; !4#• NC%4,M • u‚-ƒ_hk -H. G€2!:; !4•'S%>0# • y/!'r62!:;-'%4'B6!M -_- -H.f hk -H.f „- -H.f hk -H.f „……„- hk„- b 4*!b†- ghk • Vs).}C/!'r)K!:;- -H.f 4*! ††-H.#9!s).I!%6!M }_}}…} -H. #R#R EuG EuG!:/!s).62!:;j# iI!)M }N!s).I!:/# iI!M -2!:;j%>o# NC%4,M • iX}}…}!s).L}X- -H.f K!:; L}4*!††-H.# • iX-_- -H.f hk -H.f „- -H.f hk -H.f „……„- hk„- b U #R#c Vt‡ Vt‡6XB<%&-j:',',;CJ#N6 CJ4'I!).# iI!)M ‚ 'VI6LXB# 6H.N*!').',1LXB# iI!M 6V!s).'# HsM €VXB !'• NC%4,M • Z/Mu‚6H.ƒ R H. G€VXB !'•'S%>0# • iX9!s).s# • ‡))!.‚)b)⌈6H.ˆH.⌉fM o N!:/ !s).N'c ).# N_uEGa<cd o $2!s946LI6‚ 'N# 9_9~~6a‚ '~~Nd • N)!s).I!L94'<6# #R#h H%&8!:/7EFG]^ iI!)M i'L624)<_).# V9I'). | aH.†fH.fd H $:"; !1<KLH %&X%4<1!H%&!A0H6n !ss# iI!M FVy3<!s).4'# HsM €9 !'• €$ !'• NC%4,M • Z/1!'LH4>I!)4BLCJ 0C)€$ !'•'S%>0#q4 0'2)l k ‰).# • u‚H.ƒfH.‰ G€9 !'•'S%>0# • $1!H%&!A<XH!ss#iX 6_6aHd<!s).'H.#H%!O<1!H !ss<K6C/!'r 6!)," !L6M o fM ab-d'RTRR h.kCcCb' RhhC‚.‚ Thkb|Tb ‚'|bUbT o f hkM ab-d.RCbcc T|‚c T‚C‚c| TTk‚CTc U.c.ckcTCTRccThTTCU|hC|hh o ‰ R|cMab-dR|CbkbU hTkR| c'TRU. CC.Rk ‚'CUcC.bUcRcbUC‚kR‚k.'Uc.'.C‚.Uk‚kh‚C 'h'‚c|T|CThC o ‰hM ab-d‚|R.Rh U ‚C|C' ‚hc|hb 'kk'|bbU 'kb.cbhbChUh'|R‚cT'Rk.T.cU'b'Rh'|h‚Cb ‚‚|R|'|UU ‚kRCTRC'cUcU|hR|RU‚TU'R. T • !s).Go‰H.‰H.fC:.b#i'LG /CQb# • $26<G<).'!:A4K b-b C)V/B);2'5!{y'‰H.‰M {y_6~~G~~b-b~~V# • !s).=!;6 ''H.# • iX'CV6_Vt‡a6 '<‰H.fd# • iX6.'{y_{y⊕'CV6# • iX6 'V6_Vt‡a6.'{y<H.d# • iX6.' '_6 '⊕6 'V6# • $2 ). '!: A 4 K b-bb< 6.'{y 6.' '/B)C)FV')./') M FV_b-bb~~6.' '~~6.'{y# b [...]... KHẢO [1] RSA Laboratories, PKCS #1 v2.2: RSA Cryptography Standard, October 27th, 2012 [2] RSA Laboratories, RSAES -OAEP Encryption Scheme [3] Eiichiro Fujisaki, Tastuakia Okamoto, David Pointcheval and Jacques Stern, RSA -OAEP is Secure under the RSA Assumption, May 28th, 2001 [4] James Manger, A Chosen Ciphertext Attack on RSA Optimal Asymmetric Encryption Padding (OAEP) as Standardized in PKCS #1 v2.0... Cuối cùng, ta sẽ gọi hàm OAEP_ encode(M, k ) để chuyển đổi bản rõ và hàm OAEP_ decode(c, k) để giải chuyển đổi def OAEP( M2, k): encodeM = OAEP_ encode(M2, k) l_en = len(encodeM) print('Output of OAEP encoded: %d octet\n') %l_en, (l_en,encodeM) decodeM = OAEP_ decode(encodeM, k) l_de = len(decodeM) print('Output of OAEP decoded: %d octet\n') %l_de, (l_de,decodeM) if name == ' main ': OAEP( M2, 1024) Và sau... • • • • Hiểu được lý do tại sao cần chuyển đổi bản rõ trong hệ mật RSA Đọc, hiểu được lược đồ chuyển đổi và giải chuyển đổi OAEP Nắm được độ an toàn của lược đồ Viết được chương trình mô phỏng quá trình chuyển đổi bằng lược đồ OAEP Hạn chế: • Chưa đưa ra được đánh giá, so sánh giữa lược đồ OAEP và lược đồ PKCS • Chương trình mô phỏng chưa viết được ở dạng đồ họa 22 TÀI LIỆU THAM KHẢO [1] RSA Laboratories,... tấn công lựa chọn bản rõ (CPA) Ngoài ra cũng có thể tham khảo về các chứng minh toán học cho độ an toàn của OAEP ở tài liệu [3] 14 CHƯƠNG 2 CHƯƠNG TRÌNH MÔ PHỎNG LƯỢC ĐỒ OAEP 2.1 Giới thiệu chương trình Chương trình mô phỏng được viết bằng ngôn ngữ Python, dựa trên công cụ IDLE 2.7.5(Python GUI – Graphic User Interface), từ phiên bản 3.0 về sau chương trình có thể sẽ khác.Chú ý, nếu chương trình...Hình 1.2: Lược đồ mã hóa OAEP Hàm giải mã OAEP_ decrypt (k, EM, L): Đầu vào: K Độ dài của số lớn n trong hệ mật RSA ,Với n = k octet L Là nhãn tùy chọn liên quan đến thông điệp, giá trị mặc định của L là chuỗi rỗng nếu không được cung cấp EM Bản mã, một chuỗi octet với... phân tách giữa PS và M, nếu lHash không bằng lHash’ hoặc nếu Y không bằng 0 thì cho ra lỗi “Lỗi giải mã” và dừng chương trình • Đưa ra thông điệp M 12 Hình 1.3: Lược đồ giải mã OAEP 1.4Đánh giá độ an toàn của lược đồ OAEP Dựa vào sơ đồ mã hóa và giải mã trên ta có thể thấy, trong sơ đồ có xuất hiện yếu tố ngẫu nhiên “seed”, có sử dụng hàm mặt nạ MGF1 được xây dựng dựa trên hàm băm Những yếu tố này... Str3.append(Str1[i]^Str2[i]) return Str3 Các hàm cần thiết đã chuẩn bị xong, giờ chúng ta sẽ định nghĩa thêm hai hàm cuối cùng đó là hàm chuyển đổi và giải chuyển đổi 17 Đầu tiên là hàm chuyển đổi OAEP_ encode(M, k) def OAEP_ encode(M, k): mLen = len(M)/2 #print(' -') M = HexToByte(M) k = k/8 # bit > octet if (len(L) > 2**61-1): print('Label... dbMask) seedMask = MGF1(maskedDB, hLen) # Xor 2 operate maskedSeed = xorOctetStr(seed, seedMask) encodeM = bytearray(1) + maskedSeed + maskedDB return encodeM Tiếp theo sẽ là hàm giải chuyển đổi OAEP_ decode(c, k) def OAEP_ decode(c, k): byteOnes = bytearray([1]) k = k/8 if (len(L) > 2**61-1): print('Decryption error: len(L) > 2**61-1') elif (len(c) != k): print('Decryption error: len(c) != k') elif (k < 2*hLen+2):... 2.7.5(Python GUI – Graphic User Interface), từ phiên bản 3.0 về sau chương trình có thể sẽ khác.Chú ý, nếu chương trình chạy báo lỗi, chúng ta nên kiểm tra lại độ thụt vào của các khối lệnh, vì trong Python hiểu các dòng lệnh có độ thụt vào giống nhau là một khối lệnh 2.2Chương trình mô phỏng Đầu tiên ta sẽ import các thư viện cần thiết và bản rõ cần chuyển đổi: from hashlib import sha1 from binascii import... Ciphertext Attack on RSA Optimal Asymmetric Encryption Padding (OAEP) as Standardized in PKCS #1 v2.0 [5]HTTP://EN.WIKIPEDIA.ORG/WIKI/OPTIMAL_ASYMMETRIC_ENCRY PTION_PADDING [6] http://vi.wikipedia.org/wiki /RSA_ (mã_hóa)#An_ninh 23 . !0!:/7C3D3!:/7' %&8EFGCQ5G:)# R 234567'() 589+:; !)#9;!)A:SC5 I!;L;C3)'H#.6<' H.)''.#9!)%&3I!;)JTUUB" V66!6.6# 9!):6W'(XCY/ 3#Z%&C2)"%#% :<[/%%C1CY43 %&#NY%[/3%&#>8W %6!M Hình 1.1: Sơ đ m ha v gii m ca h mt RSA. 9)M C3D Z Z6CY 9!)B)]*^M #