PHẠM PHI HÙNG NGHIÊN CỨU MÃ HÓA KHÓA BÍ MẬT SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG BẢO MẬT NGÂN HÀNG ĐỀ THI... Với những lý do trên tôi chọn đề tài “Nghiên cứu mã hóa khóa bí mật sử dụ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
-
PHẠM PHI HÙNG
NGHIÊN CỨU MÃ HÓA KHÓA BÍ MẬT SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG BẢO MẬT NGÂN HÀNG ĐỀ THI
LUẬN VĂN THẠC SĨ
Chuyên ngành: Công Nghệ Thông Tin
Mã số ngành: 60480201
TP Hồ Chí Minh, Tháng 8 Năm 2016
Trang 2PHẠM PHI HÙNG
NGHIÊN CỨU MÃ HÓA KHÓA BÍ MẬT SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG BẢO MẬT NGÂN HÀNG ĐỀ THI
Trang 3CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
Cán bộ hướng dẫn khoa học: TS Lư Nhật Vinh
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
TS Lư Nhật Vinh
Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Công nghệ TP HCM ngày 10 tháng 9 năm 2016
Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:
Xác nhận của Chủ tịch Hội đồng đánh giá Luận sau khi Luận văn đã được sửa chữa (nếu có)
Chủ tịch Hội đồng đánh giá LV
Trang 4NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: PHẠM PHI HÙNG Giới tính: Nam
Ngày, tháng, năm sinh: 20-07-1990 Nơi sinh: TP.HCM
Chuyên ngành: Công nghệ thông tin MSHV: 1441860047
I.- Tên đề tài:
NGHIÊN CỨU MÃ HÓA KHÓA BÍ MẬT SỬ DỤNG GIẢI THUẬT DI TRUYỀN VÀ ỨNG DỤNG BẢO MẬT NGÂN HÀNG ĐỀ THI
II.- Nhiệm vụ và nội dung:
- Nghiên cứu và tìm hiểu về Giải thuật di truyền
- Tìm hiểu về các thuật toán trao đổi khóa, mã hóa, giải mã bằng khóa bí mật
- Từ đó xây dựng chương trình bảo mật ngân hàng đề thi
III.- Ngày giao nhiệm vụ: 23/1/2016
IV.- Ngày hoàn thành nhiệm vụ: 20/7/2016
V.- Cán bộ hướng dẫn: TS LƯ NHẬT VINH
CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH
(Họ tên và chữ ký) (Họ tên và chữ ký)
TS Lư Nhật Vinh
TP.HCM, Ngày……tháng……năm 2016
Trang 5i
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này
đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Học viên thực hiện Luận văn
(Ký và ghi rõ họ tên)
Phạm Phi Hùng
Trang 6LỜI CẢM ƠN
Trước tiên, tôi xin được gửi lời cảm ơn đến Ban Giám Hiệu, toàn thể cán bộ nhân viên, giảng viên trường Đại Học HUTECH, Ban lãnh đạo Phòng Quản Lý Khoa Học và Đào Tạo Sau Đại Học, khoa Công Nghệ Thông Tin đã tạo điều kiện thuận lợi cho chúng tôi học tập và nghiên cứu trong suốt học trình cao học Xin được gửi lời cảm
ơn đến tất cả quý thầy cô đã giảng dạy trong chương trình Đào tạo thạc sĩ chuyên ngành Công nghệ thông tin, khóa 2, lớp 14SCT21 - Trường Đại học Công Nghệ TPHCM, những người đã truyền đạt cho tôi những kiến thức hữu ích để làm cơ sở cho tôi thực hiện tốt luận văn này
Với lòng kính trọng và biết ơn, tôi xin bày tỏ lời cảm ơn đến TS Lư Nhật Vinh
đã tận tình hướng dẫn cho tôi trong thời gian thực hiện luận văn, những gì thầy đã hướng dẫn, chỉ bảo đã cho tôi nhiều kinh nghiệm trong thời gian thực hiện luận văn Sau cùng tôi xin gửi lời biết ơn sâu sắc đến bạn bè, gia đình, các anh chị trong tập thể lớp 14SCT21 đã luôn tạo điều kiện tốt nhất cho tôi trong suốt quá trình học cũng như thực hiện luận văn
Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các anh chị học viên
Trang 7Ngày nay với sự phát triển như vũ bão của xã hội nói chung cũng như của nền giáo dục nước nhà nói riêng, việc bảo mật đề thi để tránh bị lọt vào tay kẻ xấu để trục lợi là rất đáng quan tâm
Với những lý do trên tôi chọn đề tài “Nghiên cứu mã hóa khóa bí mật sử dụng giải thuật di truyền và ứng dụng bảo mật ngân hàng đề thi” Nghiên cứu này với mục đích bảo mật hơn trong quá trình mã hóa, chọn lọc đề thi để đảm bảo đề thi được an toàn trước ngày công bố
Trang 8ABSTRACT
Cryptography is the art of mangling information into apparent unintelligibility
in a manner allowing a secret method of unmangling The basic service provided by cryptography is the ability to send information between participants in a way that prevents others from reading it In order to protect the content against an opponent, sender encrypts her message using a fast symmetric encryption algorithm But receiver needs to know sender's key for reading her message, one can achieve this by using a key-exchange protocol Diffie Hellman key exchange protocol was introduced for key exchange protocol
Nowaday, with the development of society by storm in general and of education in particular country, the security of examination questions to avoid being caught in the wrong hands in order to profit as much concern
From all reasons above I would like to choose the topic “Research secret key encryption uses Genetic algorithms and construction of bank security application exam” This research with the aim of better privacy during exams encryption to ensure safe exam before the date of publication
Trang 9v
MỤC LỤC
TÓM TẮT iii
ABSTRACT iv
DANH MỤC CÁC TỪ VIẾT TẮT vii
DANH MỤC CÁC BẢNG viii
DANH MỤC CÁC HÌNH ix
PHẦN MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Tính cấp thiết của đề tài 1
3 Mục tiêu, nội dung và phương pháp nghiên cứu 2
CHƯƠNG 1 TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN VÀ THUẬT TOÁN TẠO KHÓA BÍ MẬT 3
1.1 Giới Thiệu 3
1.1.1 Lịch sử phát triển của Giải thuật di truyền 3
1.1.2 Khái niệm về giải thuật di truyền 3
1.1.3 Nhiễm sắc thể 3
1.1.4 Cơ sở toán học của giải thuật di truyền: 3
1.2 Tìm hiểu Giải thuật di truyền 3
1.3 Đặc trưng Giải thuật di truyền 3
1.4 Tìm hiểu thuật toán tạo khoá bí mật 3
1.4.1 Giới thiệu các kỹ thuật mã hóa đối xứng thông dụng: 3
1.4.2 Các loại hình tấn công 3
1.5 Mật mã học (Cryptography) 3
1.5.1 Giới thiệu chung: 3
1.5.2 Định nghĩa: 3
1.6 Mã hóa 3
1.6.1 Khái niệm Mã hóa (Encryption) và Giải mã (Decryption): 3
1.6.2 Các kỹ thuật mã hóa: 3
1.6.3 Mã hóa bất đối xứng (Mã hóa khóa công khai) 3
1.6.4 Bảng so sánh giữa mã hóa khóa bí mật và mã hóa khóa công khai 3
Trang 101.7 Trao đổi khóa 3
1.7.1 Giới thiệu trao đổi khóa Diffie-Hellman 3
1.7.2 Giao thức trao đổi khoá Diffie-Hellman 3
1.7.3 Hạn chế: 3
CHƯƠNG 2 ỨNG DỤNG MÃ HÓA KHÓA BÍ MẬT SỬ DỤNG GIẢI THUẬT DI TRUYỀN 3
2.1 Tổng quan 3
2.2 Phát biểu bài toán 3
2.3 Các nghiên cứu liên quan 10
2.4 Hạn chế của những nghiên cứu trước và những vấn đề được tiếp tục nghiên cứu: 11
CHƯƠNG 3 CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 13
3.1 Cài đặt chương trình 13
3.1.1 Giao diện chính: 13
3.1.2 Các tính năng chính 17
PHẦN KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 26
TÀI LIỆU THAM KHẢO 28
Trang 11vii
DANH MỤC CÁC TỪ VIẾT TẮT
Kí hiệu
GAs Genetic Algorithm Giải thuật di truyền
AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến
DES Data Encryption Standard Tiêu chuẩn mã hoá dữ liệu
GAs Genetic Algorithm Giải thuật di truyền
AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến
của 3 tác giả Ron Rivest, Adi Shamir và Len Adleman NIST National Institute of Standards
and Technology
Viện Tiêu chuẩn và Kỹ thuật Quốc gia (Hoa Kỳ)
SSL Secure Sockets Layer Tiêu chuẩn của công nghệ bảo mật,
truyền thông mã hoá giữa máy chủ Web server và trình duyệt
(browser) PGP Pretty Good Privacy Bảo mật rất mạnh
Trang 12DANH MỤC CÁC BẢNG
1.1 Bảng so sánh Khóa bí mật và Khóa công khai 23
1.2 Bảng trao đổi màu sơn giữa Alice và Bob 25
1.3 Giao thức toán học chia sẻ bí mật giữa Alice và Bob 26
Trang 133.1 Đọc file và mã hóa với khóa chỉ định 38
3.4 Upload bài thi với khóa bí mật và chọn khối, ngày giờ thi 40
3.13 Chức năng quản lý tài liệu của học sinh 48
3.15 Chức năng làm bài thi Online của học sinh 50
Trang 14PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay sự lệ thuộc ngày càng tăng nhu cầu xử lý thông tin và truyền tải trên
hệ thống mạng kết nối phát triển mạnh đã làm tăng theo nhu cầu về an ninh thông tin Mã hóa theo tập hợp các kỹ thuật toán học để cung cấp, bảo mật thông tin, bảo mật toàn vẹn
dữ liệu, xác thực Mã hóa và giải mã là các khái niệm chính của mật mã
Trong khi gửi một dữ liệu đến người nhận, sự riêng tư của dữ liệu được bảo
vệ bởi việc mã hóa tức là chuyển đổi dữ liệu thành một dạng không thể đọc được bằng phương pháp thường Về phía người nhận sẽ được giải mã về hình thức ban đầu của nó
Khi công nghệ thông tin và các ngành điện tử phát triển như vũ bão thì mọi hoạt động của xã hội đều có thể số hóa Số hóa các công việc không chỉ đảm bảo hiệu quả công việc mà còn an toàn hơn rất nhiều so với những hoạt động do con người thực hiện Một hoạt động to lớn và quan trọng hàng đầu trong xã hội hiện nay là làm thế nào để đảm bảo được tính an toàn bí mật cho các đề thi trước khi được công bố Các vấn đề nói trên phần nào còn mới mẻ với nước ta, xuất phát từ đó tôi đã lựa chọn việc “Nghiên cứu mã hóa khóa bí mật sử dụng giải thuật di truyền và ứng dụng bảo mật ngân hàng đề thi” là chủ đề chính cho luận văn
2 Tính cấp thiết của đề tài
Thông tin luôn là một tài sản vô giá của tổ chức, doanh nghiệp và cần được bảo vệ bằng mọi giá Tuy nhiên, với những đòi hỏi ngày càng gắt gao của môi trường năng động chia sẻ thông tin qua Internet, việc bảo vệ thông tin trở nên ngày càng quan trọng và khó khăn hơn bao giờ hết Hầu hết các tổ chức, doanh nghiệp ngày nay đều sử dụng các hệ quản trị cơ sở dữ liệu (CSDL) để lưu trữ tập trung tất cả các thông tin quý giá của mình Hiển nhiên hệ thống sẽ là tiêu điểm tấn công của những kẻ xấu
Ở mức độ nhẹ, các cuộc tấn công sẽ làm hệ thống CSDL bị hỏng hóc, hoạt động không ổn định, mất mát dữ liệu làm cho các giao dịch hàng ngày của tổ chức, doanh nghiệp bị đình trệ Nghiêm trọng hơn, các thông tin sống còn của tổ chức, doanh
Trang 152
nghiệp bị tiết lộ (như đề thi, thông tin sinh viên, học sinh, các thông tin về khách hàng, nhà cung cấp, tài chính, mức lương nhân viên) và được đem bán cho các những
kẻ có ý đồ xấu Có thể nói là thiệt hại của việc thông tin bị rò rỉ là vô cùng kinh khủng
Đó sẽ là một đòn chí mạng đối với uy tín của tổ chức, doanh nghiệp cũng như uy tín của toàn xã hội
3 Mục tiêu, nội dung và phương pháp nghiên cứu
- Mục tiêu tổng quát:
+ Đảm bảo sự an toàn trong việc tạo và sử dụng khóa bí mật
+ Ứng dụng bảo mật ngân hàng đề thi
- Mục tiêu cụ thể:
+ Xây dựng được chương trình tạo khóa bí mật ứng dụng giải thuật di truyền
để bảo mật ngân hàng đề thi và bước đầu cho phép thi online
- Phương pháp nghiên cứu lý thuyết
+ Tiến hành thu thập và nghiên cứu các tài liệu liên quan đến đề tài
+ Nghiên cứu Thuật toán tạo khóa bí mật, Giải thuật di truyền
+ Nghiên cứu ứng dụng của Giải thuật di truyền vào việc mã hóa văn bản bằng khóa bí mật
- Phương pháp nghiên cứu thực nghiệm:
+ Nghiên cứu cách xây dựng chương trình mã hóa các loại văn bản, tài liệu dựa trên việc ứng dụng mã hóa khóa bí mật kết hợp với Giải thuật di truyền
+ Ngôn ngữ sử dụng: C# trong bộ Visual studio 2013
+ Thử nghiệm trong nội bộ Trường THCS Nguyễn Đức Ứng
+ Đánh giá kết quả đạt được
Trang 16CHƯƠNG 1 TỔNG QUAN VỀ GIẢI THUẬT DI TRUYỀN VÀ
THUẬT TOÁN TẠO KHÓA BÍ MẬT
CHƯƠNG 2 ỨNG DỤNG MÃ HÓA KHÓA BÍ MẬT SỬ DỤNG
GIẢI THUẬT DI TRUYỀN
2.1 Tổng quan
Mật mã học là một kỹ thuật cơ bản để bảo vệ thông tin Trong bài nghiên cứu này, tôi sử dụng một thuật toán di truyền (GAs) dựa trên hệ thống mật mã khóa đối xứng để mã hóa và giải mã Ở đây, các văn bản đơn giản và người dùng nhập vào (key) được chuyển thành ma trận văn bản và ma trận trọng tương ứng Một ma trận phụ được tạo ra bằng cách thêm vào ma trận văn bản và ma trận chính Một chức năng thay thế tuyến tính được áp dụng trên các ma trận phụ để sản xuất các thuật toán
mã hóa trung gian Sau đó, các chức năng GAs (chéo và đột biến) được áp dụng trên các thuật toán mã hóa trung gian để tạo ra các văn bản mật mã Các thuật toán đề xuất
có hai bước cơ bản đó là: chéo và đột biến
2.2 Phát biểu bài toán
Sự phụ thuộc ngày càng tăng trên các máy tính để xử lý thông tin và truyền tải
nó trên hệ thống kết nối hầu như đã làm tăng nhu cầu về an ninh Mã hoá theo một tập hợp các kỹ thuật toán học để cung cấp an ninh thông tin, bảo mật, toàn vẹn dữ liệu, xác thực Mã hóa và giải mã là những khái niệm chính của mật mã [5]
Trong khi gửi một dữ liệu từ người gửi đến người nhận, sự riêng tư của dữ liệu được bảo vệ bởi mã hóa nó (nghĩa là) chuyển đổi dữ liệu trong một số hình thức không đọc được bằng cách thông thường Về phía người nhận, dữ liệu có thể được
Trang 17số tự nhiên trực tiếp Các kết quả thu được để tạo ra các khóa sử dụng thuật toán di truyền nên được tốt về hệ số tương quan Nói chung thuật toán di truyền có hai chức
năng cơ bản: chéo và đột biến
Trong bài nghiên cứu này tôi sử dụng chức năng chéo và đột biến để áp dụng cho việc mã hóa và giải mã Trong chức năng chéo, nhiễm sắc thể con được tạo ra bằng cách tham gia nhiều hơn một nhiễm sắc thể cha mẹ Có rất nhiều loại kỹ thuật chéo như đơn điểm, hai điểm chéo, chéo đồng nhất và chéo cha mẹ
Trong bài nghiên cứu này tôi sử dụng kỹ thuật hai điểm chéo Trong kỹ thuật hai điểm chéo, hai điểm ngẫu nhiên được chọn từ hai cha mẹ và các bits giữa hai điểm được trao đổi để sản xuất các nhiễm sắc thể con
Hình 2.1: Chéo hai điểm (trước khi chéo)
Trang 180 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1
Hình 2.2: Chéo hai điểm (sau khi chéo)
Sau kỹ thuật chéo, chức năng đột biến được áp dụng Có rất nhiều loại đột biến như lật bits, ranh giới đột biến, đột biến không đồng nhất, đột biến đồng nhất và đột biến Gaussian Trong bài nghiên cứu này tôi sử dụng các kỹ thuật lật bits
Nó liên quan đến việc lựa chọn một hoặc nhiều bits của nhiễm sắc thể và đột biến thành bù của nó có nghĩa là '0' sẽ biến đổi thành "1" và ngược lại
2.2.1 Các thuật toán đề xuất
- Ma trận bổ sung (Matrix Addition)
- Thay thế (Substitution)
- Chéo Gen và đột biến (Genetic crossover and mutation)
Trang 19Bản rõ
Chuyển đổi
Ma trận
Ma trận Văn bản
Trang 20- Chia key cho kích thước n và thêm các ký tự z vào cuối nếu nó không bằng n
- Người dùng nhập vào ký tự bảng mã ASCII và thực hiện chuyển đổi trên hệ nhị
phân của nó để có được ma trận mà trật tự là nxn
2.2.2.2 Thuật toán thay thế
- Các thuật toán thay thế có dạng 𝐶(𝑥) = (𝑎𝑥 + 𝑏)𝑀𝑂𝐷 26 , ở đây x là tương
đương số lượng của 26 chữ cái trong bảng chữ cái và a,b là số nguyên
- Quá trình giải mã có dạng 𝐶−1(𝑦) = 𝑎−1 (𝑦 − 𝑏)𝑀𝑂𝐷 26, ở đây y được xét là
x tức là: 𝑦 = 𝐶(𝑥) = (𝑎𝑥 + 𝑏)𝑀𝑂𝐷𝐸 26 Chúng ta xem xét bảng chuyển đổi sau đây cho bảng chữ cái tiếng anh để thực hiện thay thế
Ví dụ: ta sẽ mã hóa từng bước một sử dụng Thuật toán Thay thế để áp dụng
cho từ “Beach” với key mã hóa là (3,1)
+ Bước 1: Sử dụng bảng trên, ta có thể thấy các ký tự trong từ “Beach” lần
lượt xuất hiên trong bảng với các số: 1 4 0 2 7
+ Bước 2: Nhân mỗi số tìm được trên bước 1 với key mã hóa (là 3 trong ví dụ
này) ta được: 3 12 0 6 21
+ Bước 3: Cộng thêm số thứ hai trong key mã hóa (là 1 trong ví dụ này) với
kết quả tìm được ở bước 2 ta được: 4 13 1 7 22
+ Bước 4: Lấy kết quả tìm được ở bước 3 dò lên trên bảng chuyển đổi ta được
chuỗi đã mã hóa là: ENBHW
2.2.2.3 Thuật toán mã hóa
+ Bước 1: Lấy bản rõ và chuyển vào ma trận văn bản