ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN QUANG TRUNG
HỆ MÃ HÓA ĐỐI XỨNG VÀ ỨNG DỤNG
TRONG VẤN ĐỀ BẢO MẬT TÀI LIỆU
TẠI TRUNG TÂM KỸ THUẬT TÀI LIỆU NGHIỆP VỤ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN, 2017
ĐẠI HỌC THÁI NGUYÊN
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN QUANG TRUNG
HỆ MÃ HÓA ĐỐI XỨNG VÀ ỨNG DỤNG
TRONG VẤN ĐỀ BẢO MẬT TÀI LIỆU
TẠI TRUNG TÂM KỸ THUẬT TÀI LIỆU NGHIỆP VỤ
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS. VŨ VINH QUANG
THÁI NGUYÊN, 2017
ii
LỜI CAM ĐOAN
Sau quá trình học tập tại Trường Đại học công nghệ thông tin & truyền thông,
với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận dụng các kiến
thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời
có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc sĩ của mình.
Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu, nghiên cứu
và hoàn thành dưới sự hướng dẫn của thầy giáo TS. Vũ Vinh Quang.
Thái Nguyên, tháng 5 năm 2017
Học viên
Nguyễn Quang Trung
ii
iii
MỤC LỤC
LỜI CAM ĐOAN .........................................................................................................ii
MỤC LỤC ..................................................................................................................... iii
DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT ............................................................. v
DANH MỤC CÁC BẢNG BIỂU .................................................................................. vi
DANH MỤC CÁC HÌNH VẼ .......................................................................................vii
LỜI NÓI ĐẦU................................................................................................................. 1
CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN BẢO MẬT THÔNG TIN. 2
1.1. Tổng quan về an toàn và bảo mật thông tin .............................................................2
1.1.1. Khái niệm chung ................................................................................................... 2
1.1.2. Mục tiêu của an toàn bảo mật thông tin ................................................................ 3
1.1.3. Các chiến lược an toàn hệ thống ........................................................................... 4
1.2. Các kiến thức cơ bản về hệ mật mã ..........................................................................5
1.2.1. Khái niệm chung ................................................................................................... 5
1.2.2. Các thành phần của một hệ mật mã....................................................................... 6
1.2.3. Quy trình mã hóa và giải mã ................................................................................. 7
1.2.4. Phân loại hệ thống mã hóa .................................................................................... 8
1.2.5. Các đặc trưng của hệ thống mã hoá .................................................................... 12
1.2.6. Thám mã và tính an toàn của các hệ mã ............................................................. 13
1.3. Cơ sở toán học về mã hóa ......................................................................................16
1.3.1. Các thuật toán trong Z ......................................................................................... 17
1.3.2. Thuật toán Euclide............................................................................................... 17
1.3.3. Khái niệm về hàm Euler ...................................................................................... 18
1.3.4. Khái niệm về đồng dư thức ................................................................................. 19
1.3.5. Khái niệm về số nghịch đảo ................................................................................ 21
1.3.6. Định lý phần dư China CRT (Chinese Remainder Theorem) ............................. 21
1.3.7. Các thuật toán trong Zn ....................................................................................... 22
1.3.8. Thuật toán ............................................................................................................ 22
CHƯƠNG 2: MỘT SỐ HỆ MÃ HÓA ĐỐI XỨNG .................................................... 23
2.1. Giới thiệu ................................................................................................................23
2.2. Quá trình mã hóa và giải mã ..................................................................................25
iii
iv
2.3. Một số hệ mã hóa đối xứng ....................................................................................25
2.3.1. Hệ mã Caesar ....................................................................................................... 25
2.3.2. Hệ mã mật Hill .................................................................................................... 25
2.3.3. Hệ mã Affine ....................................................................................................... 26
2.3.4. Hệ mã Vigenère ................................................................................................... 28
2.3.5. Phương pháp mã hóa khối ................................................................................... 29
2.4. Hệ mã DES .............................................................................................................30
2.4.1. Sơ đồ mã hóa ....................................................................................................... 30
2.4.2. Thuật toán mã hóa Triple DES ............................................................................ 34
2.4.3. Thuật toán mã hóa AES....................................................................................... 36
2.5. Mật mã dòng ...........................................................................................................43
CHƯƠNG 3: MỘT SỐ KẾT QUẢ ỨNG DỤNG......................................................... 46
3.1. Vấn đề bảo mật tài liệu tại trung tâm kỹ thuật tài liệu nghiệp vụ ..........................46
3.2. Mô tả dữ liệu thử nghiệm .......................................................................................47
3.3. Môi trường thử nghiệm và một số giao diện ..........................................................47
3.3.1. Môi trường thử nghiệm ....................................................................................... 47
3.4. Kịch bản thử nghiệm và kết quả .............................................................................48
3.4.1. Tốc độ mã hóa theo số lượng dữ liệu .................................................................. 48
3.4.2. Tốc độ giải mã theo số lượng dữ liệu .................................................................. 49
3.4.3. Tốc độ mã hóa theo các chế độ mã hóa............................................................... 50
3.4.4. Tốc độ mã hóa theo kích thước khóa .................................................................. 51
KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU................................................................... 52
TÀI LIỆU THAM KHẢO ............................................................................................. 53
PHỤ LỤC ...................................................................................................................... 54
iv
v
DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT
STT
1
Đầy đủ
Viết tắt
AES
Ý nghĩa
Advanced Encryption Chuẩn mã hóa cao cấp
Standard
2
BCNN
Bội Chung Nhỏ Nhất
CBC
Cipher Block
Chế độ mã hóa của AES khi mã hóa
Chaining
sử dụng cả key và kết quả của block
trước làm tham số
3
DES
Data Encryption
Chuẩn mã hóa dữ liệu
Standard
ECB
4
GCD
Electronic Code
Chế độ mã hóa của AES trong đó các
Book
block được mã hóa riêng rẽ
Greatest Common
Ước chung lớn nhất
Divisor
5
MDV
Mã Dịch Vòng
6
TDES hoặc
Triple DES
DES bội ba
Đơn vị thứ ba tin cậy
3DES
7
TTP
Trusted Third Party
8
UCLN
Ước Chung Lớn Nhất
v
vi
DANH MỤC CÁC BẢNG BIỂU
Bảng 1. 1. Quan hệ giữa độ dài khoá và thời gian dò khoá ..........................................15
Bảng 2. 1. Các thông số chính của AES........................................................................36
Bảng 3. 1. Bộ dữ liệu thử nghiệm thuật toán AES ........................................................47
Bảng 3. 2. Bảng kết quả đo tốc độ mã hóa theo số lượng dữ liệu (giây) ......................48
Bảng 3. 3. Bảng kết quả đo tốc độ giải mã theo số lượng dữ liệu (giây) ......................49
Bảng 3. 4. Bảng kết quả đo tốc độ mã hóa theo chế độ mã hóa (giây) .........................50
Bảng 3. 5. Bảng kết quả đo tốc độ mã hóa theo kích thước khóa (giây) ......................51
vi
vii
DANH MỤC CÁC HÌNH VẼ
Hình 1. 1. Mã hoá với khoá mã và khoá giải giống nhau ...............................................7
Hình 1. 2. Quy trình mã hóa và giải mã ..........................................................................7
Hình 1. 3. Sơ đồ mã hóa và giải mã ................................................................................8
Hình 1. 4. Sơ đồ mã hóa và giải mã bằng khóa riêng .....................................................9
Hình 1. 5. Sơ đồ mã hóa và giải mã bằng khóa công khai ............................................10
Hình 2. 1. Mô hình hệ thống mã hóa đối xứng ............................................................. 24
Hình 2. 2. Hình vuông vigenère ....................................................................................29
Hình 2. 3. Sơ đồ hệ mã des ............................................................................................ 31
Hình 2. 4. DES bội hai (double des) .............................................................................34
Hình 2. 5. DES bội ba (triple des) dùng 2 khoá ............................................................ 35
Hình 2. 6. Thuật toán mã aes .........................................................................................37
Hình 2. 7. Quá trình biến đổi mảng trạng thái trong thuật toán aes .............................. 37
Hình 2. 8. Ma trận thay thế byte (s-box) .......................................................................39
Hình 2. 9. Thao tác dịch dòng .......................................................................................40
Hình 2. 10. Thuật toán mở rộng khoá của AES ............................................................ 42
Hình 3. 1. Biểu đồ tốc độ mã hóa theo số lượng dữ liệu ...............................................48
Hình 3. 2. Biểu đồ tốc độ tốc độ giải mã theo số lượng dữ liệu....................................49
Hình 3. 3. Biểu đồ tốc độ mã hóa theo chế độ mã hóa ..................................................50
Hình 3. 4. Biểu đồ tốc độ mã hóa theo kích thước khóa ...............................................51
vii
1
LỜI NÓI ĐẦU
Mã hóa là công cụ cơ bản của việc đảm bảo an toàn dữ liệu. Thời kỳ sơ khai, con
người đã sử dụng nhiều phương pháp để bảo vệ các thông tin bí mật. Ban đầu, mật mã
học được sử dụng phổ biến trong quân đội, qua nhiều cuộc chiến tranh, vai trò của mật
mã ngày càng quan trọng và mang lại nhiều thành quả không nhỏ, chúng là nền tảng cho
mật mã học ngày nay.
Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng
phổ biến trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân sự,
quốc phòng cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Với sự
phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên
mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được
quan tâm và có ý nghĩa hết sức quan trọng. Cùng với sự phát triển của khoa học máy
tính, các nghiên cứu và ứng dụng của các chuẩn mã hóa ngày càng trở nên đa dạng hơn.
Hiện nay, có nhiều phương pháp mã hóa, mỗi phương pháp có ưu, nhược điểm riêng.
Tùy theo yêu cầu của môi trường ứng dụng mà người ta có thể dùng phương pháp này
hay phương pháp kia. Có những môi trường cần phải an toàn tuyệt đối bất kể thời gian
và chi phí. Có những môi trường lại cần giải pháp “dung hòa” giữa bảo mật và chi phí.
Vấn đề bảo đảm an toàn cho các hệ thống thông tin là một trong những vấn đề quan
trọng cần cân nhắc trong suốt quá trình thiết kế, thi công, vận hành và bảo dưỡng hệ
thống thông tin.
Các hệ thống mã hóa được chia thành hai loại: hệ mã hóa khóa đối xứng (việc giải
mã và mã hóa sử dụng chung một khóa) và hệ mã hóa công khai (mã hóa và giải mã
dùng khóa khác nhau). Trong phạm vi luận văn của mình, tác giả tập trung vào nghiên
cứu hệ mã hóa khoá đối xứng (mã hóa khóa bí mật), tập trung vào các thuật toán mã hóa
cổ điển, chuẩn mã hóa dữ liệu DES và chuẩn mã hoá nâng cao AES.
Hệ mã hóa công khai có nhược điểm là tốc độ mã hóa và giải mã rất chậm, do vậy
chỉ phù hợp sử dụng trong trao đổi khóa, trong khi đó hệ mã hóa đối xứng có tốc độ xử
lý nhanh hơn rất nhiều và phù hợp với nhu cầu xử lý số lượng lớn tài liệu. Dựa trên thực
tế về yêu cầu mã hóa tại trung tâm kỹ thuật tài liệu nghiệp vụ có đặc điểm đa dạng về
thể loại và số lượng. Chính vì vậy tác giả đã lựa chọn nghiên cứu và ứng dụng giải pháp
mã hóa đối xứng cho bài toán thực tế nơi tác giả đang công tác.
1
2
CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN BẢO MẬT
THÔNG TIN
Nội dung chính của chương 1 trình bày một số khái niệm cơ bản về vấn đề an
toàn và bảo mật thông tin, khái niệm về hệ mật mã và cơ sở toán học về lý thuyết
đồng dư. Các yêu cầu chính của một hệ thống mã hóa, khái niệm về thám mã làm cơ
sở cho việc nghiên cứu các hệ mã hóa trong chương 2. Các kiến thức này được tham
khảo trong các tài liệu [1, 2, 3, 4].
1.1. Tổng quan về an toàn và bảo mật thông tin
1.1.1. Khái niệm chung
Từ xưa đến nay thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống
con người. Trong thời đại ngày nay, các phương thức truyền đạt thông tin ngày càng đa
dạng và phát triển. Với sự ra đời của máy tính và mạng máy tính, việc trao đổi thông tin
đã trở lên dễ dàng hơn, nhanh chóng hơn, đa dạng hơn. Nhưng kèm theo đó là các nguy
cơ xâm phạm thông tin cũng ngày càng tăng.
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện
tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng
cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ
thông tin dữ liệu cũng được đổi mới. Bảo vệ an toàn thông tin dữ liệu là một chủ đề
rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp
được thực hiện để bảo vệ an toàn thông tin dữ liệu. Các phương pháp bảo vệ an toàn
thông tin dữ liệu có thể được tổng kết vào ba nhóm sau:
-
Bảo vệ an toàn thông tin bằng các biện pháp hành chính.
-
Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).
-
Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Môi trường khó bảo
vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất đó là môi
trường mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng
truyền tin và mạng máy tính là biện pháp thuật toán.
An toàn thông tin bao gồm các nội dung sau:
-
Tính bí mật: tính kín đáo riêng tư của thông tin.
2
3
-
Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh), xác
thực thông tin trao đổi.
-
Tính trách nhiệm: đảm bảo người gửi thông tin không thể thoái thác trách nhiệm
về thông tin mà mình đã gửi.
Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính
có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng
không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ
liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng. Xác định càng
chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu
các thiệt hại.
Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi phạm
thụ động. Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin
(đánh cắp thông tin). Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể
dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong phần
đầu các gói tin. Người xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao
đổi. Vì vậy vi pham thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ
liệu được trao đổi. Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện
pháp ngăn chặn hiệu quả. Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội
dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc
sau đó một thời gian. Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để
làm sai lệch nội dung thông tin trao đổi. Vi phạm chủ động dễ phát hiện nhưng để ngăn
chặn hiệu quả thì khó khăn hơn nhiều.
Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là an
toàn tuyệt đối. Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm
bảo là an toàn tuyệt đối.
1.1.2. Mục tiêu của an toàn bảo mật thông tin
Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo
các mục tiêu sau:
Tính bí mật (Confjdentialy): Đảm bảo dữ liệu được truyền đi một cách an toàn và
không thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu
3
4
gốc ban đầu. Chỉ những người được phép mới có khả năng đọc được nội dung thông tin
ban đầu.
Tính xác thực (Authentication): Giúp cho người nhận dữ liệu xác định được chắc
chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Người giả mạo không thể có khả năng
để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệu.
Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được.
Tính toàn vẹn (Integrity): Giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu
không bị thay đổi trong quá trình truyền đi. Người giả mạo không thể có khả năng thay
thế dữ liệu ban đầu bằng dữ liệu giả mạo.
Tính không thể chối bỏ (Non-repudation): Người gửi hay người nhận không thể chối
bỏ sau khi đã gửi hoặc nhận thông tin.
1.1.3. Các chiến lược an toàn hệ thống
Giới hạn quyền hạn tối thiểu (Last Privilege):
Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ một đối tượng nào cùng
chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng
đối tượng đó chỉ được sử dụng một số tài nguyên nhất định.
Bảo vệ theo chiều sâu (Defence In Depth):
Nguyên tắc này nhắc nhở chúng ta : Không nên dựa vào một chế độ an toàn nào dù
cho chúng rất mạnh, mà nên tạo nhiều cơ chế an toàn để tương hỗ lẫn nhau.
Nút thắt (Choke Point) :
Tạo ra một “cửa khẩu” hẹp, và chỉ cho phép thông tin đi vào hệ thống của mình
bằng con đường duy nhất chính là “cửa khẩu” này. => phải tổ chức một cơ cấu kiểm
soát và điều khiển thông tin đi qua cửa này.
Điểm nối yếu nhất (Weakest Link) :
Chiến lược này dựa trên nguyên tắc: “ Một dây xích chỉ chắc tại mắt duy nhất, một
bức tường chỉ cứng tại điểm yếu nhất”
Người tấn công thường tìm những chỗ yếu nhất của hệ thống để tấn công, do đó ta
cần phải gia cố các yếu điểm của hệ thống. Thông thường chúng ta chỉ quan tâm đến
4
5
người tấn công trên mạng hơn là người tiếp cận hệ thống, do đó an toàn vật lý được coi
là yếu điểm nhất trong hệ thống của chúng ta.
Tính toàn cục:
Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ. Nếu có
một người nào đó có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng
cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong.
Tính đa dạng bảo vệ :
Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu
không có người tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào
các hệ thống khác.
1.2. Các kiến thức cơ bản về hệ mật mã
1.2.1. Khái niệm chung
Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin bí
mật. Mật mã bao gồm : Lập mã và phá mã. Lập mã bao gồm hai quá trình: mã hóa và
giải mã.
Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận
thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình
này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình
ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được
mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã. Đây là
một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng.
Để bảo vệ thông tin bằng mật mã người ta thường tiếp cận theo hai hướng:
-
Theo đường truyền (Link_Oriented_Security).
-
Từ nút đến nút (End_to_End).
Theo cách thứ nhất thông tin được mã hoá để bảo vệ trên đường truyền giữa hai nút
mà không quan tâm đến nguồn và đích của thông tin đó. Ở đây ta lưu ý rằng thông tin
chỉ được bảo vệ trên đường truyền, tức là ở mỗi nút đều có quá trình giải mã sau đó mã
hoá để truyền đi tiếp, do đó các nút cần phải được bảo vệ tốt.
5
6
Ngược lại theo cách thứ hai thông tin trên mạng được bảo vệ trên toàn đường truyền
từ nguồn đến đích. Thông tin sẽ được mã hoá ngay sau khi mới tạo ra và chỉ được giải
mã khi về đến đích. Cách này mắc phải nhược điểm là chỉ có dữ liệu của người ung thì
mới có thể mã hóa được còn dữ liệu điều khiển thì giữ nguyên để có thể xử lý tại các
nút.
Các hệ mật mã phải thực hiện được các nhiệm vụ sau đây:
-
Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText) để đảm bảo
sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin
(Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn.
-
Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống
đến người nhận hợp pháp là xác thực (Authenticity).
-
Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo
danh để gửi thông tin trên mạng.
Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phức tạp
tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu
đã được mã hoá. Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau,
nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán mã
hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo độ yêu cầu về độ an toàn.
1.2.2. Các thành phần của một hệ mật mã
Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:
-
P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ.
-
C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã. Mỗi phần tử
của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của
P, với k K
-
K: Là tập hữu hạn các khoá hay còn gọi là không gian khoá. Đối với mỗi phần
tử k của K được gọi là một khoá. Số lượng của không gian khoá phải đủ lớn để
“kẻ địch” không có đủ thời gian để thử mọi khoá có thể (phương pháp vét cạn).
Đối với mỗi k K có một quy tắc mã ek: PC và một quy tắc giải mã tương
ứng dk D. Mỗi ek: P C và dk: CP là những hàm mà: Dk (ek(x))=x với
mọi bản rõ x P.
6
7
Hình 1. 1. Mã hoá với khoá mã và khoá giải giống nhau
1.2.3. Quy trình mã hóa và giải mã
Mã hóa dữ liệu là sử dụng một phương pháp biến đổi dữ liệu từ dạng bình thường
sang một dạng khác mà một người không có thẩm quyền, không có phương tiện giải mã
thì không thể đọc hiểu được. Giải mã dữ liệu là quá trình ngược lại, là sử dụng một
phương pháp biến đổi dữ liệu đã được mã hóa về dạng thông tin ban đầu.
Hình 1. 2. Quy trình mã hóa và giải mã
Mã hóa: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao cho người
khác không thể đọc hiểu được.
Giải mã: Là quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã hóa thành
dạng gốc ban đầu.
Bản mã: Tệp dữ liệu đã được mã hóa.
Một hệ thống mã hóa bao gồm các thành phần sau:
-
PlainText : Bản tin sẽ được mã hóa hay bản tin gốc.
-
CipherText : Bản tin đã được mã hóa hay bản tin mã.
7
8
Thuật toán mã hóa và giải mã :
-
Encryption : quá trình chuyển bản tin gốc sang dạng mật mã.
-
Decryption : quá trình giải bản tin dạng mật mã trở về bản tin gốc.
-
Cách chọn khóa : giá trị toán học dùng để thực hiện mã hóa.
Nhiều phương pháp mã hóa đã được đưa ra dựa trên những giải thuật toán phức tạp,
để tạo khó khăn cho những ai đó muốn phá mật mã mà không cần được ai trao chìa
khóa. Nói tạo khó khăn là vì trên lý thuyết ta không thể nói việc tìm chìa khóa là vô
phương. Nhưng nếu trở ngại đủ lớn để làm nản lòng người muốn phá khóa thì đã là một
mức độ an toàn tốt.
Quá trình mã hóa và giải mã có thể được minh họa theo sơ đồ sau :
Bản tin gốc
Quá trình
mã hóa
Bản tin mã
```
```
```
-------------------------------------------------------------
Quá trình truyền
dữ liệu
```
```
```
Bản tin mã
Quá trình
giải mã
-------------------------------------------------------------
Bản tin gốc
Hình 1. 3. Sơ đồ mã hóa và giải mã
1.2.4. Phân loại hệ thống mã hóa
Để phân loại hệ thống mã hóa, người ta phân loại dựa trên khóa như sau
1.2.4.1. Mã hóa bằng khóa bí mật
Các hệ thống mã hóa với khóa bí mật còn được gọi là mã hóa bằng khóa riêng, mã
hóa đối xứng sử dụng duy nhất một khóa cho cả quá trình mã hóa lẫn quá trình giải mã.
Có hai loại thuật toán mã hóa bí mật :
8
9
-
Stream Algorithms/Stream Ciphers : các thuật toán hoạt động trên văn bản bình
thường theo từng bit một.
-
Block Algorithms/Block Ciphers : các thuật toán hoạt động trên văn bản theo
các khối (32 bit, 64 bit, 128 bit,...).
Một số thuật toán đang được sử dụng rộng rãi hiện nay : DES, Triple-DES, RC5,
RC6, Rijndael...
Quá trình mã hóa và giải mã bằng cách sử dụng khóa bí mật được minh họa như
hình sau :
Bản tin gốc
Quá trình
mã hóa
Bản tin mã
```
```
```
-------------------------------------------------------------
Khóa bí mật(chỉ
Có người mã hóa và
người giải mã biết)
Quá trình truyền
dữ liệu
```
```
Bản```
tin mã
Quá trình
giải mã
-------------------------------------------------------------
Bản tin gốc
Hình 1. 4. Sơ đồ mã hóa và giải mã bằng khóa riêng
1.2.4.2. Mã hóa bằng khóa công khai
Mã hóa bằng khóa công khai còn gọi là mã hóa bất đối xứng hay mã hóa bằng khóa
chung. Sự khác biệt cơ bản giữa một hệ thống mã hóa bằng khóa bí mật với hệ thống
mã hóa bằng khóa công khai là hệ thống mã hóa khóa công khai dùng hai khóa khác
nhau để mã hóa và giải mã. Do đó, một bộ mã công khai sẽ bao gồm hai khóa: một khóa
dành cho người mã hóa thường được công khai, và khóa còn lại dùng cho người giải mã
thường được giữ bí mật. Như vậy, hệ thống mã hóa với khóa công khai cần có một quá
9
10
trình sinh ra hai khóa để mã hóa và giải mã thông điệp. Các khóa này được xem như là
một đôi :
Public-key (khóa công khai): được phép công khai mà không phải chịu rủi ro về an
toàn. Khóa này được dùng để mã hóa thông điệp.
Private-key (khóa bí mật): không được để lộ. Mỗi thông điệp được mã hóa bằng
public-key chỉ có thể giải mã bằng một khóa mật thích hợp.
Một số thuật toán mã hóa công khai phổ biến : RSA, Diffie-Hellman Key-Exchange
Algorithm (dùng cho việc phân phối và trao đổi khóa).
Quá trình mã hóa và giải mã bằng cách sử dụng khóa công khai được minh họa như
hình sau :
Bản tin gốc
Quá trình
mã hóa
Bản tin mã
```
```
```
-------------------------------------------------------------
Khóa công khai, chỉ
dùng để mã hóa (có
thể cho mọi người
biết)
Quá trình truyền
dữ liệu
```
```
```
Bản tin mã
Khóa mật, chỉ dùng
để giải mã (cần
được giữ bí mật)
Quá trình
giải mã
-------------------------------------------------------------
Bản tin gốc
Hình 1. 5. Sơ đồ mã hóa và giải mã bằng khóa công khai
10
11
Có thể thấy rằng các phương pháp có những ưu khuyết điểm chính như sau:
a) Phương pháp mã hóa khóa bí mật
Ưu điểm
Khuyết điểm
+ Có thể được thiết kế để đạt tốc độ cao. + Trong quá trình truyền thông giữa hai
Các thiết bị phần cứng hỗ trợ có thể đạt người, khóa phải được giữ bí mật cho cả
tốc độ hàng trăm megabytes mỗi giây hai phía.
trong khi việc thực thi bằng phần mềm + Trong một hệ thống mạng lớn, số
chỉ đạt được khoảng vài megabytes mỗi lượng khóa cần được quản lý rất nhiều.
giây.
Do vậy việc quản lý khóa một cách hiệu
+ Khóa dùng cho mã hóa khóa đối xứng quả đòi hỏi sử dụng một bộ phận tin cậy
tương đối ngắn.
thứ ba (TTP :Trusted Third Party).
+ Được xem như thành phần cơ bản có + Khóa bí mật cần được thay đổi thường
thể triển khai để xây dựng các kỹ thuật xuyên.
mã hóa khác bao gồm khởi tạo các số + Kỹ thuật chữ ký số được phát triển từ
ngẫu nhiên, các hàm băm, các kỹ thuật cơ chế mã hóa khóa đối xứng đòi hỏi sử
tính toán.
dụng các khóa lớn cho các hàm xác nhận
+ Có thể được kết hợp để tạo ra các thuật công khai hoặc là sử dụng một TTP.
toán mã hóa mạnh hơn.
b) Phương pháp mã hóa khóa công khai
Ưu điểm
Khuyết điểm
+ Chỉ có khóa riêng thì cần được giữ bí + Tốc độ cho các phương thức mã hóa
mật (tuy nhiên việc xác nhận của các công khai thì chậm hơn rất nhiều so với
khóa công khai cần được đảm bảo).
các mô hình khóa đối xứng.
+ Việc quản trị các khóa trên mạng đòi + Kích thước khóa lớn hơn rất nhiều so
hỏi sự tồn tại duy nhất một thành phần với cơ chế mã hóa khóa đối xứng.
tin cậy TTP.
+ Không có mô hình khóa công khai nào
+ Cặp khóa riêng và công khai có thể được chứng minh là an toàn. Phần lớn
được sử dụng trong thời gian dài.
các mô hình mã hóa hiệu quả ngày nay
có sự an toàn dựa trên các giả thuyết của
11
12
+ Nhiều mô hình khóa công cộng được một tập nhỏ của các vấn đề lý thuyết số
phát triển hình thành nên các kỹ thuật học.
chữ ký số hiệu quả. Khóa được sử dụng + Hệ thống mã hóa công khai không có
cho hàm kiểu công khai thì nhỏ hơn rất bề dày lâu đời như hệ thống mã hóa khóa
nhiều so với dùng khóa đối xứng.
đối xứng, nó chỉ được tìm ra vào giữa
+ Trong một mạng lớn, số lượng các khoảng những năm 1970.
khóa cần thiết được quan tâm ít hơn so
với việc dùng khóa đối xứng.
1.2.5. Các đặc trưng của hệ thống mã hoá
Một hệ thống mã hóa bất kỳ được đặc trưng bởi 3 tiêu chí sau đây:
- Phương pháp mã (operation): có hai phương pháp mật mã bao gồm thay thế
(substitution) và chuyển vị (transposition). Trong phương pháp mã thay thế, các đơn vị
thông tin (bit, ký tự, byte hoặc khối) trong thông tin gốc được thay thế bằng các đơn vị
thông tin khác theo một quan hệ nào đó. Trong phương pháp mã chuyển vị, các đơn vị
thông tin trong thông gốc được đổi chỗ cho nhau để tạo thành thông tin mã hóa. Các hệ
thống mã hoá hiện đại thường kết hợp cả hai phương pháp thay thế và chuyển vị.
- Số khóa sử dụng (number of keys): nếu phía mã hóa (phía gửi) và phía giải mã (phía
nhận) sử dụng chung một khóa, ta có hệ thống mã dùng khoá đối xứng (symmetric key)
gọi tắt là mã đối xứng hay còn có các tên gọi khác như mã một khóa (single-key), mã
khóa bí mật (secret key) hoặc mã quy ước (conventional cryptosystem). Nếu phía mã hóa
và phía giải mã dùng 2 khóa khác nhau, hệ thống này được gọi là mã bất đối xứng
(asymmetric key), mã hai khóa (two key) hoặc mã khóa công khai (public key).
- Cách xử lý thông tin gốc (mode of cipher): thông tin gốc có thể được xử lý liên tục
theo từng phần tử , khi đó ta có hệ thống mã dòng (stream cipher). Ngược lại, nếu thông
tin gốc được xử lý theo từng khối, ta có hệ thống mã khối (block cipher). Các hệ thống
mã dòng thường phức tạp và không được phổ biến công khai, do đó chỉ được dùng trong
một số ứng dụng nhất định (ví dụ trong thông tin di động GSM). Các thuật toán mật mã
được giới thiệu trong tài liệu này chỉ tập trung vào cơ chế mã khối.
12
- Xem thêm -