TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGHIÊN CỨU THUẬT TOÁN RSA VÀ XÂY DỰNG ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ CHO PHIẾU THU CỦA CÔNG TY CỔ PHẦN HOSCO Hà Nội –
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU THUẬT TOÁN RSA VÀ XÂY DỰNG ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ CHO PHIẾU THU CỦA CÔNG TY
CỔ PHẦN HOSCO
Hà Nội – Năm 2016
Trang 2TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
NGÔ THU THỦY
NGHIÊN CỨU THUẬT TOÁN RSA VÀ XÂY DỰNG ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ CHO PHIẾU THU CỦA CÔNG TY
CỔ PHẦN HOSCO
Chuyên ngành: Công nghệ thông tin
Mã ngành: D480201
NGƯỜI HƯỚNG DẪN: ThS PHẠM VĂN HIỆP
Hà Nội – Năm 2016
Trang 3LỜI CAM ĐOAN
Những nội dung trong đồ án tốt nghiệp này là thành quả từ sự nghiên cứu và được thực hiện dưới sự trực tiếp hướng dẫn của giảng viên hướng dẫn ThS Phạm Văn Hiệp
Đồ án được thực hiện hoàn toàn mới, là thành quả của riêng em, không sao chép theo bất cứ đồ án tương tự nào Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài liệu trong báo cáo và danh mục tài liệu tham khảo
Mọi sao chép không hợp lệ, vi phạm quy chế của nhà trường, em xin hoàn toàn chịu trách nhiệm
Sinh viên thực hiện
Ngô Thu Thủy
Trang 4LỜI CẢM ƠN
Để hoàn thành được đề tài đồ án tốt nghiệp này, trước hết em xin gửi lời cảm ơn chân thành nhất đến các Cán bộ Giảng viên Khoa Công nghệ Thông tin, các cán bộ giảng viên trong Trường Đại học Tài nguyên Môi trường Hà Nội đã tận tình giảng dạy và truyền đạt kiến thức cho em Đồng thời em xin gửi lời cảm ơn đặc biệt
về sự chỉ dạy, hướng dẫn tận tình của ThS Phạm Văn Hiệp đã luôn tận tình hướng dẫn, giúp đỡ em trong suốt thời gian thực hiện đồ án
Em cũng xin gửi lời cảm ơn tới Khoa Công nghệ Thông tin – Trường Đại Học Tài nguyên Môi trường Hà Nội đã luôn quan tâm và tạo điều kiện giúp em hoàn thành đề tài đồ án tốt nghiệp này Ngoài ra, em xin cảm ơn những người bạn đã giúp
đỡ và trao đổi thêm nhiều thông tin về đề tài trong quá trình thực hiện đề tài này Cuối cùng em vô cùng biết ơn gia đình và bạn bè, những người đã luôn luôn ở bên cạnh em, động viên, chia sẻ với em trong suốt thời gian thực đề tài đồ án tốt
nghiệp “Nghiên cứu thuật toán RSA và xây dựng ứng dụng chữ ký điện tử cho
phiếu thu của Công ty Cổ phần HOSCO”
Do kiến thức còn hạn chế, bài báo cáo của em không tránh khỏi những sai sót Rất mong nhận được những lời góp ý từ quý Thầy cô để đồ án tốt nghiệp của em được hoàn thiện và giúp em có thêm những kinh nghiệm quý báu
Cuối cùng, em xin kính chúc các thầy cô giảng viên trường Đại học Tài nguyên và Môi trường Hà Nội nói chung, các thầy cô khoa công nghệ thông tin nói riêng dồi dào sức khỏe và thành công trong sự nghiệp cao quý
Hà Nội, tháng 5 năm 2016
Sinh viên thực hiện
Ngô Thu Thủy
Trang 5MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC CÁC CHỮ VIẾT TẮT
DANH MỤC CÁC BẢNG
DANH MỤC HÌNH ẢNH
MỞ ĐẦU
CHƯƠNG 1: GIỚI THIỆU VỀ HỆ MẬT MÃ HỌC 3
1.1 Các khái niệm cơ sở 3
1.1.1 Khái niệm về mật mã học 3
1.1.2 Các khái niệm cơ bản 3
1.1.3 Các tính chất của hệ mật 4
1.2 Lịch sử phát triển 5
1.3 Phân loại hệ mật mã học 6
1.3.1 Mật mã cổ điển 7
1.3.2 Mật mã hiện đại 10
CHƯƠNG 2: GIỚI THIỆU VỀ CHỮ KÝ SỐ 14
2.1 Khái niệm về chữ ký số 14
2.2 Kiến trúc của chữ ký số 15
2.2.1 Tính chất của chữ ký số 15
2.2.2 Kiến trúc của chữ ký số 16
2.2.3 Sơ đồ hệ thống chữ ký số 18
2.3 Vị trí, vai trò của chữ ký số trong thực tế 19
2.4 Giới thiệu về hàm băm và tính chất của hàm băm 21
2.4.1 Tổng quan về hàm băm 21
2.4.2 Tính chất của hàm băm 24
2.5 Một số hàm băm mật mã học 25
2.5.1 Danh sách các hàm băm mật mã học 25
Trang 62.5.2 Hàm băm MD4 26
2.5.3 Hàm băm MD5 27
2.5.4 Hàm băm SHA-1 29
CHƯƠNG 3: CƠ SỞ LÝ THUYẾT VÀ ỨNG DỤNG RSA TRONG XÂY DỰNG CHỮ KÝ SỐ 31
3.1 Tổng quan về hệ mật mã RSA 31
3.1.1 Lịch sử của chữ ký số RSA 31
3.1.2 Hoạt động của hệ mật mã RSA 32
3.2 Kiến trúc và giải thuật của hệ mật RSA 33
3.2.1 Mô hình kiến trúc của hệ mật RSA 33
3.2.2 Giải thuật của thuật toán RSA 36
3.3 Độ an toàn và bảo mật của hệ mật RSA 38
3.4 Giới thiệu về lược đồ chữ ký số RSA 39
3.4.1 Thuật toán khởi tạo tham số của hệ thống 39
3.4.2 Thuật toán sinh khóa 39
3.4.3 Thuật toán sinh chữ ký 40
3.4.4 Thuật toán xác thực chữ ký số 40
3.5 Một số khái niệm toán học được sử dụng trong RSA 41
CHƯƠNG 4: XÂY DỰNG CHỮ KÝ SỐ TRONG PHIẾU THU ĐIỆN TỬ TẠI CÔNG TY CỔ PHẦN HOSCO 43
4.1 Hiện trạng thực tế đối với vấn đề in ấn phiếu thu tại đơn vị 43
4.2 Phân tích thiết kế hệ thống 44
4.2.1 Sơ đồ usecase tổng quát 44
4.2.2 Mô hình usecase phân rã chức năng 45
4.2.3 Biểu đồ tuần tự của hệ thống 47
4.2.4 Biểu đồ hoạt động của hệ thống 52
4.3 Xây dựng giao diện và chương trình 57
4.3.1 Tổng quan về ngôn ngữ lập trình C sharp 57
4.3.2 Một số hàm sử dụng trong chương trình 59
Trang 74.3.3 Quy trình hoạt động của phần mềm 61
4.3.4 Giao diện của chương trình 62
KẾT LUẬN VÀ KIẾN NGHỊ 70
TÀI LIỆU THAM KHẢO 71
Trang 8DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết tắt Tên tiếng anh Nghĩa tiếng việt
RSA Viết theo 3 chữ cái đầu của tên
ba tác giả Rivest– Shamir - Adleman
C# Ngôn ngữ lập trình C Sharp DES Data Encryption Standard Tiêu chuẩn mã hóa dữ liệu PKI Public Key Infrastructure Hạ tầng khóa công khai
IBM International Bussiness
Machines
Tập đoàn công nghệ máy tính đa quốc gia
MD4 Message – Digest Algorithm 4 Giải thuật tiêu hóa thông tin 4 MD5 Message – Digest Algorithm 5 Giải thuật tiêu hóa thông tin 5 MIT Massachusetts Institute of
Technology
Viện công nghệ Massachusetts
SHA Secure Hash Algorithm Thuật giải băm an toàn
VPN Virtual Private Network Công nghệ mạng riêng ảo
DSA Digital Signature Algorithm Giải thuật chữ ký số
UCLN Ước chung lớn nhất
Trang 9DANH MỤC CÁC BẢNG
Bảng 1.1 So sánh ưu, nhược điểm của mã hóa đối xứng và mã hóa bất đối xứng 12
Bảng 2.1 Danh sách các hàm băm mật mã học 25
DANH MỤC HÌNH ẢNH Hình 1.1 Nguyên tắc của mật mã Caesar 8
Hình 2.1 Quá trình ký và xác nhận chữ ký 17
Hình 2.2 Ví dụ về hàm băm 22
Hình 2.3 Mô hình quá trình thực hiện trong 1 vòng của MD5 28
Hình 3.1 Quá trình gửi và nhận của Bob và Alice 32
Hình 3.2 Mô tả các bước tạo khóa RSA 33
Hình 3.3 Quá trình xác nhận khóa RSA 34
Hình 3.4 Sơ đồ giải thuật hệ mật mã RSA 36
Hình 4.1 Mô hình use-case tổng quát của hệ thống phần mềm 45
Hình 4.2 Sơ đồ Usecase phân rã chức năng tạo khóa 45
Hình 4.3 Sơ đồ Usecase phân rã chức năng tạo chữ ký và ký 46
Hình 4.4 Sơ đồ Usecase phân rã chức năng xác nhận chữ ký và in phiếu thu 46
Hình 4.5 Biểu đồ tuần tự thực hiện chức năng đăng nhập hệ thống 47
Hình 4.6 Biểu đồ tuần tự chức năng Nhập số nguyên tố 48
Hình 4.7 Biểu đồ tuần tự chức năng Tạo khóa 49
Hình 4.8 Biểu đồ tuần tự chức năng Tạo chữ ký và ký phiếu thu 50
Hình 4.9 Biểu đồ tuần tự chức năng chứng thực chữ ký 51
Hình 4.10 Biểu đồ hoạt động thực hiện chức năng đăng nhập 52
Hình 4.11 Biểu đồ hoạt động thực hiện chức năng nhập số nguyên tố 53
Hình 4.12 Biểu đồ hoạt động thực hiện chức năng tạo khóa 54
Hình 4.13 Biểu đồ hoạt động thực hiện chức năng tạo chữ ký và ký phiếu thu 55
Hình 4.14 Biểu đồ hoạt động thực hiện chứng thực chữ ký và in phiếu thu 56
Hình 4.15 Giao diện form đăng nhập 63
Hình 4.16 Giao diện chính của chương trình 63
Trang 10Hình 4.17 Giao diện form đổi mật khẩu 64
Hình 4.18 Giao diện form xuất phiếu thu 64
Hình 4.19 Giao diện form tạo khóa 65
Hình 4.20 Giao diện form ký phiếu thu 66
Hình 4.21 Giao diện form xác nhận chữ ký 67
Hình 4.22 Phiếu thu khi đã được ký và in 67
Hình 4.23 Giao diện form quản lý danh sách nhân viên 68
Hình 4.24 Giao diện form danh sách phiếu thu 68
Hình 4.25 Giao diện form trang trợ giúp 69