Tải bản đầy đủ (.pdf) (11 trang)

...Phan Thị Quỳnh Mai.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (309.53 KB, 11 trang )

TRƯỜ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

Sinh viên thực hiện: Phan Thị Quỳnh Mai
Giáo viên hướng dẫn: ThS. Nguyễn Văn Hách

Hà Nội, năm 2015


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


LỜ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


DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết

Cụm từ đầy đủ

tắt

Nghĩa tiếng Việt

ATM

Automated Teller Machine

Máy giao dịch tự động

CA

Certificate Authority


Chứng thực số

DSA

Digital Signature Algorithm

Giải thuật chữ ký điện tử

DSS

Digital Signature Standard

Chuẩn chữ ký điện tử

Elliptic Curve Digital Signature

Chữ ký số trên đường cong

Algorithm

Elliptic

European Computer Manufactures

Hiệp hội những nhà sản xuất

Association

máy tính châu Âu


GC

Garbage Collector

Trình dọn rác

GNFS

General Number Field Sieve

ECDSA
ECMA

IDE
MD5
MIT
MSIL

Integrated Development
Environment

Môi trường phát triển tích hợp

Message Digest Algorithm 5

Giải thuật tiêu hóa tin 5

Massachusetts Institute of

Viện công nghệ


Technology

Massachusetts

Microsoft Intermediate Language
National Institute of Standards and

Viện Tiêu chuẩn và Kỹ thuật

Technology

Quốc gia (Hoa Kỳ)

PC

Personal Computer

Máy tính cá nhân

PKI

Public Key Infrastructure

Hạ tầng khóa công khai

PKCS

Public Key Cryptography Standards


PSS

Probabilistic Signature Scheme

RSA

Rivest, Shamir & Adleman

SHA

Secure Hash Algorithm

NIST

Tiêu chuẩn mã hóa khóa công
khai

Giải thuật băm an toàn


SHA-1

Secure Hash Algorithm 1

UCLN

Giải thuật băm an toàn 1
Ước chung lớn nhất

DANH MỤC CÁC BẢNG

Bảng 2.1: Thử nghiệm độ bảo mật của RSA

39


DANH 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


Hì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


MỤ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


2.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

II. Định hướng phát triển ................................................................................. 60
DANH MỤC TÀI LIỆU THAM KHẢO ............................................................... 61
PHỤ LỤC ............................................................................................................. 62


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
- Tìm hiểu về chữ ký số, hàm băm, giải thuật trong hàm băm, thuật toán RSA
và nắm vững một số thuật toán tạo chữ ký số.
- Xây dựng phần mềm tạo chữ ký số.

1


III. Nhiệm vụ nghiên cứu
- Nghiên cứu tổng quan về chữ ký số.

- Tìm hiểu về hàm băm.
- Tìm hiểu thuật toán RSA và sơ đồ chữ ký số RSA.
- Phân tích thiết kế hệ thống cho phần mềm tạo chữ ký số.
- Xây dựng phần mềm tạo chữ ký số.

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
- Nghiên cứu tài liệu.
- Tham khảo một số phần mềm tạo chữ ký số.
- Trao đổi với giảng viên hướng dẫn.

2



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×