MÔ PHỎNG HỆ CHỮ KÝ ĐIỆN TỬ RSA
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN ³ ³ BÁO CÁO BÀI TẬP LỚN AN TOÀN BẢO MẬT THÔNG TIN MÔ PHỎNG HỆ CHỮ KÝ ĐIỆN TỬ RSA !"# $ %&'( ) *+', / 012 34%!/56 Hải Phòng - 2012 MỤC LỤC 7'8!94:6*;4<('=>?@A 2 Chương 1: Cơ sở lý thuyết 2 2 1.Chữ ký điện tử 2 2.Hệ chữ ký điện tử 2 3.Hệ chữ ký RSA 3 Chương 2: Khảo sát thực tế và xác lập dự án 4 1.Nhu cầu thực ễn 4 2.Giải pháp 4 3.Thành lập nhóm phát triển 4 Chương 3: Phân tích và thiết kế 5 1.Đặc tả yêu cầu 5 2.Thiết kế giao diện và tương tác người dùng 7 Chương 4: Cài đặt 8 1.Các công cụ sử dụng 8 2.Các giao diện 9 3.Các mã lệnh và thuật toán 15 Tài liệu tham khảo 16 Chương 1: Cơ sở lý thuyết 1. Chữ ký điện tử • 3B!C D .C(!ECF'!+.8"0!GCF'''!H'&'IEJ KC+!CF'!G(LM'(:N':'''=>?!.0 • 3B!'O'PQ'!N'.'4R4S!+.!;C(4CG>TB! UIV!;C(4V:('>?B!'=>?:B!,8M8 !S 2. Hệ chữ ký điện tử *B!IOCW'=>?C(!E:8BX P, A, K, S, V#!<.U''CY>(CZ0 • P:!94=+''8&'C( !;C(4[8M\#'!] 6%&'(6*+', 6012 $ 7'8!94:6*;4<('=>?@A • A:!94=+'''=>?'!] • K:!94>;.>. !94=+''>.'!]# • ^>.>ϵK!W!+B!!9!!I > ϵSB!!9!!Q' _ > ϵV*^I > PA_ > PQA `@ab[c3Abd:= I.'^8&'C(QϵP ^'=>?0ϵA!<.U4O !CZ0 e_ Q[0#f@abP0fI Q# e_ Q[0#fc3AbP0≠I Q# ^>ϵK[I > _ > :''C.!&'!S._ > Ig: ';>.'hI > :8G9!2;!]1!G!C]M+'= >?'i.7!8&'C(Q[ :Q'!''j'7'!]!GCF'0 C]_ Q[0#f@ab*B!IOCW'=>?>;!].!;CY>(B! S%C'!]>]!.!k!'M'=IV0!8&'C(QSl!9!! _ #';>.'!>.!.!!k0'=>?Cm!P[P'Ci!S .[%:;'!]M+'=>?'i.790J'CG''i.'m!.:! ''IOCW'=>?C(!E.!Y!!G! %m?K.C'!]M+'=>?'i.7!B!8&'C(noQ 8K''!GQf_ > 0#0Cp>C0fI > Q#*B!8(44Q L.kCY>>,0:0'q''8&'C('&.Ci4qC]'=>?M +>]0>;4lF4!8BB'i.8&'C(Q!rB!Q'Ik! k!<%!]l7, .Is'!#*t/[*tX!('!G>P! V''IOCW>?C(!EIg:+!r4O44M+0 3. Hệ chữ ký RSA tN.C]'i.(U@A[P!P!:94CF'IOCW'=>?N.!8 !4Z!G'.!r.IV0!V!CB.!'i.'=>?Igk!'.('!P! :94IOCWQ'!N''=>?@Ak!COM[!.'j'qCMF'U. MUA.CZ0:IOCW'=>?@A • %f4uL[!C4[L:''IV0!V!vffw Cx 2f` [4[L[.[8#f4uL[4L:''IV0!V[.u8y � ##d 6%&'(6*+', 6012 ) 7'8!94:6*;4<('=>?@A • %'!x8:>.';>.p'h4[L:>.8G9! • >f [4[L[.[8#[!.Q'Cx eI > Q#fQ . e_ > Q[0#f@ab Qy0⇔ 8 #Q[0zw ;!S['=>?CF'>P!F4U.';>.MIEV EB!8&'C(CF'U.CUCF'>?CP'78M\Q'!'[ Ig!G!'=>?'i.0fI Q#I.CU.'MQ[0IEJ>. ';>._ 7 'i.7[>P!LM9CF':{f_ 7 Q[0#7MU{IgCF'E!7[ >79CF'{[Cq!.!.MUMU 7 'i.C]9 CF' Q[0#A.C.!.lQ'';>.'i.C]>]!.Q_ _ Q[0#f@ab.0>; Chương 2: Khảo sát thực tế và xác lập dự án 1. Nhu cầu thực tiễn L!|'!94;!8M9!!;![Y>'m!.4M !G!=IVk!:>;!]!G8K!.0.0l&J0 !G'i.}~ICF' %'8!94:L.CP@A!SQ04M!G!IV>:[ C'm!.k!'qB!'O!0!GC]!('('|'!94!G! B!''.' 2. Giải pháp r'q!N'!1Ch<'m!.4MQZ0NB!&J;4<@A 3. Thành lập nhóm phát triển 4!!]&J;4<('=>?C(!E@AW/! 8M4Z';';('I. Họ tên Vai trò Công việc 6%&'(6*+', 6012 / 7'8!94:6*;4<('=>?@A " •2MI!!N'!PQ':94N •I!';(' •vZ!G'!P!>P •^!F>€!9! •2]!.!('O! %&'( •%C!''m!I •%C!''m!U.MU 012 •%C!''m!!G>]!. •%C!''m!>?Q'!N''=>? *+', •%C!''m!Q_[": Chương 3: Phân tích và thiết kế 1. Đặc tả yêu cầu 1.1. Mục đích •Z0NB!'O!;4<('=>?@AC4&'q|' !9! 1.2. Mô tả tổng quan • %O!lC];4<('=>?@A • %.(Sl!N'L.[1IEJ • ^!F!G!!IV0: • ^!F'M!NCB!G!'4R4Sl!N94'>]!. !GF4:('i.''0P!VCq • %4R4":''0P!VCqCq. 6%&'(6*+', 6012 X 7'8!94:6*;4<('=>?@A 1.3. Yêu cầu chức năng • %4R4!N94'I''IV0!V:4[LIV8! CF'94!VC.:‚$/8!'!NCB>]!.Q_4[L'4M :IV0!V.0>; • NCB!G� #f 4•#u L•#^>!.0CH4'L • %4R4!N94'!G!f4uL'>]!.Q_'8K 4uL.0>; • %4R4!N94'!G!__:IV0!V'l.� # ƒ'>]!.Q__'Cm:IV0!V'l. � #.0>; • %4R4!N94'!G!:4q!EF''i._! w � # ƒ'>]!.Q_'Cm:4q!EF''i._! w � # .0>; • %4R4Q_>.';>. _[#>.8G9! [4[L# • %4R4"s:_'&.>.';>. _[#>.8G9! [4[L#' >]!.!GF4:('i.=:( • %4R4:>.';>.>.8G9! • %4R4"s:_'&.B8M\[8MU • %4R4:s:_'&.B8M\[8MU[8MMU • %4R4IIB8MMU8M\ • %4R4U.8M\[MU8MU[>?:8M\Q'!N''=>? !8MU 1.4. Yêu cầu phi chức năng 1.4.1. Yêu cầu về độ tin cậy và hiệu suất vMC4&CF'Cq0Ci'''&',[C'8(!:'&',>? Q'!N''=>?4M.'GQ' 6%&'(6*+', 6012 „ 7'8!94:6*;4<('=>?@A 1.4.2. Yêu cầu về môi trường vqY+!CB!;!S!r*'Is!}~I•vAv$ _!s._~>$‚!": 1.4.3. Yêu cầu về giao diện .(CF'!80>.|'[F4:?CM8M€!9!h. J'CG''i.4qY[!Z!i'''…Y!0'94!;! 1.4.4. Thành phần bên ngoài %!]IEJ!(QE:?IV:UW"8 2. Thiết kế giao diện và tương tác người dùng P!>P!8B'''&',!'lB!s7V'J's'..:) 4q'G!_'Y. 1.5. Phần 1 - bên trái (60%): ]!x.('i.''0P!VCq'.!P4:)4q!_'Y |'[4q!:.(94''IV0!V:4L[4q=.:94 ]!x� #[4q:.(94_ • .(94p, q'l8!:B!_'a4~C]94IV 8![!'l84M:m!AC]IB!IV0!V[8 :B!@'_Q!7QC]]!x=:( • .(94n'l8!:m!2]!.C]>]!.Q_' 8K4uL.0>;[!'l84M:m!GC]!Gf4uL[8 :B!@'_Q!7QC]]!x=:( • .(�(n)*B!@'_Q!7QC]]!x=:( • .(94e'l8!:m!2]!.C]>]!.Q__' 0!V'l.� #.0>;[!'l84M:m!AC] IB!IV_0!V'l.� #[8:B! @'_Q!7QC]]!x=:( • .(94d'l8!:m!2]!.C]>]!.Q_': 4q!EF''i._.0>;[!'l84M:m!GC]!G: 4q!Ex'CM'i._[8:B!@'_Q!7QC]]!x=:( 6%&'(6*+', 6012 † 7'8!94:6*;4<('=>?@A 1.6. Phần 2 - giữa (10%): ]!x''m!:('G8.W*U.[MU[2?[•'!N'[•_ >.';>.[•_>.8G9![*">.';>.[*">.8G9![3>. ';>.[3>.8G9! 1.7. Phần 3 - bên phải (30%): ]!x.(7M\[7MU[7MMU • .(94Bản rõ'l8!:m!*"C]"s:_8M\[! 'l84M:m!3C]:8M\[8:B!@'_Q!7QC] ]!x=:( • .(94Bản mã'l8!:m!*"C]"s:_8MU[ !'l84M:m!3C]:8MU[8:B!@'_Q!7Q C]]!x=:( • .(Bản giải mã'l8!:m!AIC]>]!.Q_ 8MMU'V8M\.0>;[!'l84M:m!3C]: 8MMU[8:B!@'_Q!7QC]]!x=:( Chương 4: Cài đặt 1. Các công cụ sử dụng • *'Is!I.:A!$‚‚‡$‚‚[;=%ˆ[_!s._~>$‚ • (7‰!__ '_4Š_'!# • *'Is!}[bQ_:$‚‚†$‚‚ 6%&'(6*+', 6012 ‡ 7'8!94:6*;4<('=>?@A 2. Các giao diện 1.8. Giao diện chính 1.9. Giao diện sinh số nguyên tố p với 512 bit 6%&'(6*+', 6012 5 7'8!94:6*;4<('=>?@A 1.10. Giao diện tính n, sinh e và tính d 1.11. Giao diện mở khóa công khai 6%&'(6*+', 6012 ‚ [...]... cáo bài tập lớn – Mô phỏng hệ chữ ký RSA 1.12 Giao diện lưu khóa công khai Vũ Đình Trung – Chu Đức Thiện – Mạc Văn Nghĩa – Nguyễn Trung Kiên 11 Báo cáo bài tập lớn – Mô phỏng hệ chữ ký RSA 1.13 Giao diện sau khi mã hóa 1.14 Giao diện sau khi giải mã Vũ Đình Trung – Chu Đức Thiện – Mạc Văn Nghĩa – Nguyễn Trung Kiên 12 Báo cáo bài tập lớn – Mô phỏng hệ chữ ký RSA 1.15 Giao diện sau khi ký 1.16 Giao diện... hệ chữ ký RSA 1.15 Giao diện sau khi ký 1.16 Giao diện sau khi xác thực chữ ký Vũ Đình Trung – Chu Đức Thiện – Mạc Văn Nghĩa – Nguyễn Trung Kiên 13 Báo cáo bài tập lớn – Mô phỏng hệ chữ ký RSA 1.17 Giao diện lưu bản rõ Vũ Đình Trung – Chu Đức Thiện – Mạc Văn Nghĩa – Nguyễn Trung Kiên 14 Báo cáo bài tập lớn – Mô phỏng hệ chữ ký RSA 1.18 Giao diện mở bản mã 1.19 Giao diện so sánh bản giải mã và bản rõ... số nguyên lớn và radix là hệ cơ số (chẳng hạn 10 => hệ thập phân) Ví dụ: Vũ Đình Trung – Chu Đức Thiện – Mạc Văn Nghĩa – Nguyễn Trung Kiên 15 Báo cáo bài tập lớn – Mô phỏng hệ chữ ký RSA BigInteger k = new BigInteger(“123456”, 10); //k=123456 1.21 Hàm sinh ngẫu nhiên một số nguyên tố lớn static BigInteger genPseudoPrime(int bits, int confidence, Random rand); Sinh ngẫu nhiên mô t số nguyên tố lớn có... Random()); 1.22 Hàm tính ước số chung lớn nhất public BigInteger GCD(BigInteger bi) //Tính ước số chung lớn nhất của hai số nguyên k và phi k.GCD(phi); 1.23 Hàm tính phần tử ngược public BigInteger modInverse(BigInteger modulus) //Tìm d là phần tử ngược của e trên vành số nguyên phi d = e.modInverse(phi); 1.24 Hàm tính am mod n public BigInteger modPow(BigInteger exp, BigInteger n) //Tìm m = m^e mod n Ví dụ: . LỤC 7'8!94:6*;4<('=>?@A 2 Chương 1: Cơ sở lý thuyết 2 2 1 .Chữ ký điện tử 2 2 .Hệ chữ ký điện tử 2 3 .Hệ chữ ký RSA 3 Chương 2: Khảo sát thực tế và xác lập dự án 4 1.Nhu cầu thực ễn. ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ THÔNG TIN ³ ³ BÁO CÁO BÀI TẬP LỚN AN TOÀN BẢO MẬT THÔNG TIN MÔ PHỎNG HỆ CHỮ KÝ ĐIỆN TỬ RSA . 3B!'O'PQ'!N'.'4R4S!+.!;C(4CG>TB! UIV!;C(4V:('>?B!'=>?:B!,8M8 !S 2. Hệ chữ ký điện tử *B!IOCW'=>?C(!E:8BX P, A, K, S, V#!<.U''CY>(CZ0 •