...Phan Thị Quỳnh Mai.pdf tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực ki...
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
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU XÂY DỰNG PHẦN MỀM TẠO CHỮ KÝ SỐ BẰNG
THUẬT TOÁN RSA
Giáo viên hướng dẫn: ThS Nguyễn Văn Hách
Trang 2
LỜI CAM ĐOAN
Em xin cam đoan các kết quả nghiên cứu trong đồ án này dựa trên các kết quả thu được trong quá trình nghiên cứu của riêng em Toàn bộ nội dung của đồ án do
em tự học tập, nghiên cứu trên Internet, sách và các tài liệu trong và ngoài nước có liên quan Không sao chép hay sử dụng bài làm của bất kỳ ai khác, mọi tài liệu đều được trích dẫn cụ thể
Em xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước quý Thầy
Cô, Khoa và Nhà trường
Hà Nội, tháng 6 năm 2015 Sinh viên thực hiện
Phan Thị Quỳnh Mai
Trang 3LỜI CẢM ƠN
Em xin gửi lời cảm ơn sâu sắc đến thầy ThS Nguyễn Văn Hách đã tận tình dạy
dỗ, chỉ bảo, giúp đỡ, có những lời khuyên bổ ích cho em trong suốt thời gian làm đồ
án tốt nghiệp
Em chân thành cảm ơn các thầy, cô trong khoa Công nghệ thông tin, trường đại học Tài nguyên và Môi trường Hà Nội đã tận tình truyền đạt kiến thức trong suốt bốn năm em học tập tại trường Với vốn kiến thức được tiếp thu trong quá trình học tập không chỉ là nền tảng cho quá trình thực hiện đồ án mà còn là một hành trang quý báu để em bước ra ngoài làm việc một cách vững chắc và tự tin
Em xin chân thành cảm ơn!
Sinh viên
Phan Thị Quỳnh Mai
Trang 4DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết
Algorithm
Chữ ký số trên đường cong Elliptic
Association
Hiệp hội những nhà sản xuất máy tính châu Âu
Technology
Viện công nghệ Massachusetts
Technology
Viện Tiêu chuẩn và Kỹ thuật Quốc gia (Hoa Kỳ)
khai
Trang 5SHA-1 Secure Hash Algorithm 1 Giải thuật băm an toàn 1
DANH MỤC CÁC BẢNG
Trang 6DANH MỤC CÁC HÌNH
Hình 1.1: Cấu trúc chương trình C# 4
Hình 1.2: Dạng mã Morse đã dùng 5
Hình 1.3: Chữ ký số 6
Hình 1.4: Mô tả quy trình sử dụng chữ ký số 9
Hình 1.5: Ví dụ về sơ đồ chữ ký RSA 12
Hình 2.1: Minh họa làm việc của một hàm băm 23
Hình 2.2: Thêm vào các bit đệm trong MD5 25
Hình 2.3: Thêm vào độ dài trong MD5 26
Hình 2.4: Quy trình xử lý khối dữ liệu 512 bit trong MD5 27
Hình 2.5: Quy trình xử lý khối dữ liệu 512 bit trong SHA-1 29
Hình 2.6: Sơ đồ tạo chữ ký số với hàm băm 31
Hình 2.7: Quá trình mã hóa khóa công khai 32
Hình 2.8: Thuật toán mã hóa RSA 35
Hình 2.9: Mô hình hệ mật mã khóa công khai RSA 35
Hình 3.1: Biểu đồ use case tổng quát 45
Hình 3.2: Biểu đồ use case phân rã tạo chữ ký 46
Hình 3.3: Biểu đồ use case phân rã tạo khóa 46
Hình 3.4: Biểu đồ tuần tự chọn số nguyên tố 47
Hình 3.5: Biểu đồ tuần tự tạo khóa 48
Hình 3.6: Biểu đồ tuần tự lưu khóa 48
Hình 3.7: Biểu đồ tuần tự chọn khóa bí mật 49
Hình 3.8: Biểu đồ tuần tự ký 50
Hình 3.9: Biểu đồ tuần tự chọn file 51
Hình 3.10: Biểu đồ tuần tự xác thực chữ ký 51
Hình 3.11: Biểu đồ hoạt động tạo khóa 52
Hình 3.12: Biểu đồ hoạt động ký 53
Hình 3.13: Biểu đồ hoạt động xác thực chữ ký 54
Hình 3.14: Quy trình tạo chữ ký của phần mềm tạo chữ ký số 54
Trang 7Hình 3.15: Quy trình xác thực chữ ký của phần mềm tạo chữ ký số 55
Hình 3.16: Giao diện chính 55
Hình 3.17: Giao diện tạo chữ ký khi chọn số nguyên tố 56
Hình 3.18: Giao diện tạo chữ ký khi tạo khóa 56
Hình 3.19: Lưu khóa công khai 57
Hình 3.20: Lưu khóa bí mật 57
Hình 3.21: Giao diện tạo chữ ký khi tạo hàm băm 58
Hình 3.22: Giao diện tạo chữ ký 58
Hình 3.23: Lưu chữ ký 59
Hình 3.24: Giao diện xác thực chữ ký 59
Trang 8MỤC LỤC
MỞ ĐẦU 1
I Lí do chọn đề tài 1
II Mục đích nghiên cứu 1
III Nhiệm vụ nghiên cứu 2
IV Phạm vi nghiên cứu 2
V Phương pháp nghiên cứu 2
CHƯƠNG 1: TỔNG QUAN VỀ NỘI DUNG NGHIÊN CỨU 3
1.1.Khái quát về ngôn ngữ lập trình C# 3
1.1.1.Giới thiệu về ngôn ngữ lập trình C# 3
1.1.2.Cấu trúc một chương trình C# 4
1.1.3.Đánh giá ngôn ngữ C# 4
1.2.Tổng quan về chữ ký số 5
1.2.1.Lịch sử 5
1.2.2.Khái niệm 6
1.2.3.Mô tả quy trình sử dụng chữ ký số 8
1.2.4.Một số sơ đồ chữ ký số 10
1.2.5.Ưu điểm và nhược điểm của chữ ký số 15
1.2.6.Một số kiểu tấn công chữ ký số hiện nay 16
1.2.7.Vai trò của chữ ký số trong ứng dụng hiện nay 17
1.2.8.Thực trạng ứng dụng chữ ký số hiện nay 18
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 21
HÌNH THÀNH CHỮ KÝ SỐ 21
2.1.Cơ sở toán học 21
2.1.1.Sinh số nguyên tố và phân tích thừa số nguyên tố 21
2.1.2.Phép mũ hóa và khai căn module 22
2.2.Hàm băm 23
2.2.1.Giới thiệu về hàm băm 23
2.2.2.Một số giải thuật trong hàm băm 25
Trang 92.2.3.Tạo chữ ký số với hàm băm 31
2.3.Mã hóa khóa công khai 32
2.3.1.Mã hóa khóa công khai 32
2.3.2.Mã hóa khóa công khai RSA 33
2.3.3.Mã hóa khóa công khai Elgamal 40
2.3.4.Mã hóa khóa công khai Rabin 42
2.4.Cơ sở hạ tầng khóa công khai 43
2.4.1.Mô hình PKI 43
2.4.2.Chứng chỉ số X.509 43
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM TẠO CHỮ KÝ SỐ BẰNG THUẬT TOÁN RSA 45
3.1.Phân tích thiết kế hệ thống 45
3.1.1.Biểu đồ Usecase tổng quát 45
3.1.2.Biểu đồ Usecase phân rã 46
3.1.3.Biểu đồ tuần tự 47
3.1.4.Biểu đồ hoạt động 52
3.2.Xây dựng giao diện phần mềm tạo chữ ký số 54
KẾT LUẬN 60
I Kết quả đạt được 60
1 Ưu điểm 60
2 Nhược điểm 60
Trang 101
MỞ ĐẦU
I Lí do chọn đề tài
Từ khi ra đời cho đến nay, công nghệ thông tin đóng vai trò vô cùng quan trọng trong sự phát triển của xã hội Nó đã trở thành nhân tố quan trọng, là cầu nối trao đổi giữa các thành phần của xã hội trên toàn thế giới, giúp giải quyết nhanh chóng mọi vấn đề Công nghệ thông tin có các ứng dụng liên quan đến các thành phần kinh tế, xã hội, chính trị, quân sự, văn hóa, giáo dục,… Trong đó không thể không nhắc đến ứng dụng của nó trong truyền thông Ngày nay, mọi thông tin liên lạc, các văn bản thường được trao đổi qua hệ thống mạng Việc này rất thuận tiện và tiết kiệm được thời gian và chi phí nhưng lại nảy sinh một vấn đề là xác thực nguồn thông tin nhận được Do tính chất phi vật chất của phương tiện truyền thông nên các phương pháp truyền thống như đánh dấu bằng dấu niêm phong hay chữ ký tay đều rất dễ bị giả mạo Vậy làm thế nào để có thể xác thực và bảo vệ được nguồn thông tin nhận được từ một người gửi đi hay một máy chủ và thông tin đó không bị thay đổi cũng như bị tiết lộ cho một bên thứ 3 trong quá trình truyền đi? Giải pháp cho các vấn đề này chính là mã hóa mà cụ thể hơn là sử dụng thuật toán mã hóa khóa công khai Đây là cơ sở cho “chữ ký số”, vì nếu như người dùng sắp xếp lại thông điệp sử dụng khóa công khai của một người nào đó thì người kia sẽ phải dùng khóa riêng của họ để làm xáo trộn thông điệp ngay từ đầu Chỉ chủ sở hữu mới có thể sử dụng khóa riêng của họ và thông điệp bị xáo trộn sẽ trở thành một chữ ký điện tử hay nói cách khác là chữ ký số - một tài liệu mà không ai khác có thể tạo ra Vì vậy,
với đề tài “Nghiên cứu xây dựng phần mềm tạo chữ ký số bằng thuật toán RSA”
sẽ giúp chúng ta hiểu rõ hơn về vấn đề này
II Mục đích nghiên cứu
và nắm vững một số thuật toán tạo chữ ký số
Trang 11III Nhiệm vụ nghiên cứu
IV Phạm vi nghiên cứu
Nghiên cứu tổng quan về các vấn đề liên quan đến chữ ký số, hàm băm, hệ mã hóa công khai RSA, và xây dựng phần mềm tạo chữ ký số bằng thuật toán RSA
V Phương pháp nghiên cứu