i
..
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
LỜI CẢM ƠN
THÔNG
Luận văn đƣợc thực hiện tại trƣờng Đại học Công nghệ Thông tin và
Truyền Thông – Đại học Thái Nguyên dƣới sự hƣớng dẫn của TS. Trần Xuân
Kiên.
Trƣớc hết tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy Trần Xuân Kiên,
ngƣời đã có những định hƣớng, những kiến thức quý báu, những lời động
viên và chỉ bảo giúp tôi vƣợt qua những khó khăn để tôi hoàn thành tốt luận
TRẦN MINH KHƢƠNG
văn của mình.
Tôi xin đƣợc bày tỏ lòng cảm ơn và sự kính trọng của mình đến các
Thầy, Cô Trƣờng Đại học Công nghệ Thông tin và Truyền Thông - Đại học
Thái Nguyên, đặc biệt là các Thầy, Cô đã giảng dạy và giúp đỡ tôi trong suốt
NGHIÊN
CỨU
THIẾT KẾ, ỨNG DỤNG KHÓA ĐIỆN TỬ
quá trình
học tập tại
trƣờng.
ĐẢM
BẢOđặc
ANbiệt
TOÀN
TRONG
GIAO trọng
DỊCHđiểm
Tôi cũng
cảm THÔNG
ơn tới cácTIN
sĩ quan
phòngCÁC
Thí nghiệm
An toàn thông tin – Viện KH-CNĐIỆN
Quân TỬ.
sự Bộ Quốc phòng. Các anh, chị học
viên lớp Cao học CK09D. Các đồng nghiệp tại Trƣờng Đại học Lƣơng Thế
Vinh - Nam Định. Đã luôn động viên, giúp đỡ tôi trong quá trình học tập và
công tác, để tôi hoàn thành nhiệm vụ đƣợc giao.
Nhân dịp này, tôi cũng xin gửi lời cảm ơn đến gia đình, ngƣời thân, đã
VĂN
SĨ giúp
KHOA
TÍNHsuốt quá trình
tạo điều kiệnLUẬN
giúp đỡ,
độngTHẠC
viên, trợ
tôi HỌC
về tinhMÁY
thần trong
học tập.
Thái Nguyên, tháng 9 năm 2012
Tác giả
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Thái Nguyên – 2012.
http://www.lrc-tnu.edu.vn
ii
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Nghiên cứu thiết kế, ứng dụng khóa điện tử
đảm bảo an toàn thông tin trong các giao dịch điện tử” này là công trình
nghiên cứu của riêng tôi. Các số liệu sử dụng trong luận văn là trung thực.
Các kết quả nghiên cứu đƣợc trình bày trong luận văn chƣa từng đƣợc công
bố tại bất kỳ công trình nghiên cứu nào khác.
Trần Minh Khƣơng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
iii
MỤC LỤC
LỜI CẢM ƠN ........................................................................................................................................... i
LỜI CAM ĐOAN .................................................................................................................................. ii
MỤC LỤC ................................................................................................................................................. iii
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT .................................................... v
DANH MỤC CÁC BẢNG .............................................................................................................. vi
DANH MỤC CÁC HÌNH VẼ ...................................................................................................... vii
MỞ ĐẦU ........................................................................................................... 1
Chƣơng 1: ĐẶT VẤN ĐỀ ................................................................................ 5
1.1. Tổng quan về mật mã ............................................................................. 5
1.1.1. Mật mã học ...................................................................................... 5
1.1.2. Hệ mật mã (cryptosystem) .............................................................. 6
1.1.3. Mô hình truyền tin cơ bản của mật mã học và nguyên lý Kerckhoffs
................................................................................................................... 7
1.1.4. Một số ứng dụng của mật mã học ................................................... 9
1.2. Một số nguy cơ mất an toàn bảo mật thông tin .................................... 10
1.2.1. Mất mã khóa .................................................................................. 10
1.2.2. Thất lạc các vật mang tin .............................................................. 11
1.2.3. Truy cập trái phép các phần mềm quan trọng ............................... 12
1.2.4. Mất an toàn khi gửi/nhận thƣ điện tử ............................................ 13
1.3. Đề xuất giải pháp bảo đảm an toàn bảo mật dữ liệu ............................ 13
1.3.1. Dùng khóa cứng để lƣu giữ mã khóa ............................................ 13
1.3.2. Dùng khóa cứng để khóa máy tính, dùng USB có bảo vệ khi truy
cập ........................................................................................................... 15
1.3.3. Dùng khóa cứng để bảo vệ phần mềm có bản quyền và phần mềm quan trọng
................................................................................................................. 15
Chƣơng 2:
NGHIÊN CỨU LỰA CHỌN CÁC THUẬT TOÁN MÃ HÓA ..................... 17
2.1. Hệ mật mã khóa bí mật. Chuẩn mã AES ............................................. 17
2.1.1. Hệ mật mã khóa bí mật (quy trình mã hóa đối xứng) ................... 17
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
iv
2.1.2. Chuẩn mã AES (Advanced Encryption Standard) ........................ 18
2.2. Hệ mật mã khóa công khai. Hệ mã RSA ............................................. 45
2.2.1. Hệ mật mã khóa công khai (quy trình mã hóa bất đối xứng) ....... 45
2.2.2. Hệ mã RSA ................................................................................... 49
Chƣơng 3
NGHIÊN CỨU XÂY DỰNG VÀ THỰC HIỆN THỬ NGHIỆM
KHÓA CỨNG KẾT HỢP VỚI PHẦN MỀM MÃ/GIẢI MÃ ....................... 56
3.1. Nghiên cứu thiết kế khóa cứng ............................................................ 56
3.1.1. Thiết kế của khóa cứng ................................................................. 56
3.1.2. Lựa chọn chíp giao tiếp với máy tính thông qua cổng giao tiếp
USB ......................................................................................................... 59
3.1.3. Lựa chọn chíp vi xử lý tốc độ cao thực hiện thuật toán mã/giải mã,
lƣu trữ mã khóa ....................................................................................... 60
3.1.4. Phần mềm soạn thảo chƣơng trình điều khiển vi xử lý ................ 62
3.1.5. Modul mã hoá/giải mã sử dụng thuật toán AES viết trên vi xử lý 63
3.2. Nghiên cứu xây dựng và thử nghiệm Modul phần mềm kết hợp với
khóa cứng thực hiện mã hóa/giải mã dữ liệu trên máy tính dùng thuật toán
AES ............................................................................................................. 76
3.2.1. Nghiên cứu xây dựng modul ......................................................... 76
3.2.2. Kết quả thử nghiệm ....................................................................... 81
3.3. Nghiên cứu xây dựng và thử nghiệm Modul phần mềm kết hợp với
khóa cứng để mã hóa/giải mã dữ liệu khi trao đổi qua email dùng thuật toán
RSA ............................................................................................................. 82
3.3.1. Nghiên cứu xây dựng modul ......................................................... 82
3.3.2. Kết quả thử nghiệm ....................................................................... 84
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 87
TÀI LIỆU THAM KHẢO............................................................................... 88
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
v
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
AES
Advanced Encryption Standard
DES
Data Encryption Standart
DSA
Digital Signature Algorithm
EEPROM
Electrically Erasable Programmable Read-Only Memory
IDEA
International Data Encryption Algorithm
ID
IP
Identification
Internet Protocol
IDEA
MD
International Data Encryption Algorithm
Message Digest
MIPS
Mega Instruction Per Second
NIST
PIC
National Institute of Standards and Technology
Programmable Intelligent Computer
PIN
Personal Indentification Number
PKI
Public Key Infrastructure
RISC
Reduced Instructions Set Computer
RSA
Rivest – Shamir – Adleman
SHA
Secure Hash Algorithm
USB
Univeral Serial Bus
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
vi
DANH MỤC CÁC BẢNG
Bảng 2.1. Bảng các khái niệm và ký hiệu dùng trong thuật toán AES ........... 22
Bảng 2.2. Bảng biểu diễn các xâu 4 bit trong hệ Hexa ................................... 23
Bảng 2.3. Giá trị di số shift(r,Nb) ................................................................... 30
Bảng 2.4. Bảng mã khóa mở rộng và cách xác định mã khóa của các chu kỳ 36
Bảng 2.5. Tốc độ của thuật toán Brent –Pollard ............................................. 54
Bảng 2.6. Thời gian dự đoán của việc phân tích ra thừa số nguyên tố của các
số nguyên......................................................................................................... 55
Bảng 3.1. So sánh hai thuật toán mã hóa T-DES và AES .............................. 63
Bảng 3.2. Số chu kỳ của AES ......................................................................... 65
Bảng 3.3. Ma trận khóa ................................................................................... 65
Bảng 3.4. Ma trận dữ liệu................................................................................ 65
Bảng 3.5. Dịch vòng mã hóa ........................................................................... 66
Bảng 3.6. Giá trị trƣớc và sau khi thực hiện Row Shift .................................. 71
Bảng 3.7. Thời gian thực hiện và lƣu lƣợng của thuật toán mã hóa AES trên
thiết bị dsPIC ................................................................................................... 75
Bảng 3.8. Bộ nhớ sử dụng cho các thuật toán mã hóa .................................... 75
Bảng 3.8. Kết quả thử nghiệm Modul phần mềm kết hợp với khóa cứng mã
hóa/giải mã dữ liệu trên máy tính dùng thuật toán AES ................................. 82
Bảng 3.9. Bảng kết quả thử nghiệm Modul phần mềm kết hợp với khóa cứng
để mã hóa/giải mã dữ liệu khi trao đổi qua email dùng thuật toán RSA ........ 85
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
vii
DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Mô hình truyền tin cơ bản của mật mã học....................................... 8
Hình 2.1. Mô hình hệ mật mã khóa bí mật ..................................................... 17
Hình 2.2. Các trạng thái của AES ................................................................... 24
Hình 2.3. Sơ đồ thuật toán............................................................................... 27
Hình 2.4. Thao tác SubBytes tác động trên từng byte của trạng thái ............. 28
Hình 2.5. Bảng thế S-Table của thuật toán AES............................................. 29
Hình 2.6. Thao tác ShiftRows tác động trên từng dòng của trạng thái ........... 30
Hình 2.7. Thao tác MixColumns tác động lên mỗi cột của trạng thái ............ 32
Hình 2.8. Thao tác AddRoundKey tác động lên mỗi cột của trạng thái ......... 33
Hình 2.9. Thao tác InvShiftRows tác động lên từng dòng của trạng thái hiện hành
......................................................................................................................... 38
Hình 2.10. Bảng thế cho phép biến đổi InvSubBytes ..................................... 40
Hình 2.11. Mô hình hệ thống mã hóa với khóa công khai .............................. 47
Hình 3.1. Hình ảnh khóa cứng và các môdul trên khóa cứng ......................... 57
Hình 3.2: Sơ đồ nguyên lý mạch điện trên khoá cứng .................................... 58
Hình 3.3. Dữ liệu trên bộ nhớ lƣu trữ trên khóa cứng A và B ........................ 58
Hình 3.4. Hiển thị giao tiếp USB nhận đƣợc khi cắm khóa cứng vào máy tính
......................................................................................................................... 59
Hình 3.5. Sơ đồ cấu trúc dòng vi xử lý 16 bit ................................................. 61
Hình 3.6. Giao diện soạn thảo chƣơng trình cho vi xử lý. .............................. 63
Hình 3.7. Sơ đồ khối của thuật toán mã hóa AES .......................................... 64
Hình 3.8. Sơ đồ khối của quá trình giải mã .................................................... 69
Hình 3.9. Quy trình thực hiện mã file sử dụng mã khoá lấy từ khoá cứng .... 76
Hình 3.10. Quy trình thực hiện giải mã file sử dụng mã khoá lấy từ khoá cứng
......................................................................................................................... 77
Hình 3.11. Giao diện phần mềm mã/giải mã file dữ liệu và quản lý mã khóa 77
Hình 3.12. Thông báo của phần mềm khi không cắm khóa cứng .................. 78
Hình 3.13. Giao diện phần mềm khi nhập mật khẩu đúng ............................. 78
Hình 3.14. Giao diện phần mềm khi thực hiện mã hóa dữ liệu. ..................... 79
Hình 3.15. Giao diện phần mềm khi thực hiện giải mã dữ liệu. ..................... 80
Hình 3.16. Danh sách các file đã mã hóa. ....................................................... 80
Hình 3.17. Giao diện phần mềm thực hiện lựa chọn file để mã hóa và gửi thƣ
điện tử .............................................................................................................. 83
Hình 3.18. Giao diện phần mềm khi thực hiện mã hóa file tại máy đầu A. ... 83
Hình 3.19. Giao diện phần mềm thực hiện giải mã tại máy đầu B ................. 84
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
1
MỞ ĐẦU
Ngày nay, với sự phát triển nhanh chóng của công nghệ và các mạng
giao dịch toàn cầu, việc lƣu trữ dữ liệu và trao đổi thông tin ngày càng đơn
giản và thuận tiện hơn nhƣng bên cạnh đó cũng nảy sinh những yêu cầu cao
hơn về bảo mật thông tin trong các hệ thống và ứng dụng điện tử. Mật mã là
phƣơng pháp an toàn và hiệu quả nhất để đảm bảo an toàn, bí mật thông tin. Các
kết quả của khoa học mật mã ngày càng đƣợc triển khai trong nhiều lĩnh vực
khác nhau của đời sống – xã hội, trong đó phải kể đến rất nhiều những ứng
dụng đa dạng trong lĩnh vực dân sự, thƣơng mại... Các ứng dụng mã hóa
thông tin cá nhân, trao đổi thông tin kinh doanh, thực hiện các giao dịch điện
tử qua mạng... đã ngày càng trở nên gần gũi và quen thuộc với mọi ngƣời.
Các thiết bị mang tin đa dạng về chủng loại và ngày càng đƣợc sử dụng
phổ biến (USB, thẻ nhớ, ổ cứng di động, máy tính xách tay...) rất thuận tiện
trong sử dụng, nhƣng cũng dễ mất an toàn nhƣ bị thất lạc, bị sao chép trộm...
Các phần mềm gián điệp, mã độc hại có thể lấy cắp dữ liệu đã trở nên ngày
càng phổ biến, đặc biệt là trong an ninh quốc phòng nhƣ phần mềm đọc bàn
phím (Keylogger) dễ dàng trợ giúp cho việc lấy cắp mật khẩu, mã khóa....
Một vấn đề khác là việc mất an toàn khi gửi/nhận thƣ điện tử (email), khi sao
chép, in ấn hoặc khi kết nối mạng cũng thƣờng xuyên xảy ra. Một trong
những vấn đề chính hay gặp trong thực tế của các hệ thống mã hóa hiện nay là
vấn đề an toàn trong việc sinh khóa, bảo quản và sử dụng mã khóa.
Khóa điện tử (khóa cứng) là một sản phẩm sử dụng chuẩn kết nối tuần
tự đa dụng USB (Univeral Serial Bus), có nghĩa là giao tiếp với máy tính
thông qua cổng USB. Không nhƣ các USB lƣu trữ dữ liệu thông thƣờng, các
sản phẩm này đƣợc chế tạo bởi nhiều kiểu kiến trúc phần cứng khác nhau, có
thể là chip EEPROM, hay Smartchip,… có chức năng chính là bảo vệ bản
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
2
quyền phần mềm, bảo vệ sourcecode, license của sản phẩm phần mềm và mã
hóa dữ liệu. Khóa cứng đã đƣợc nghiên cứu, sản xuất và đƣa vào sử dụng rộng
khắp trong lĩnh vực công nghệ thông tin nói chung và an toàn thông tin nói riêng
ở trong cũng nhƣ ngoài nƣớc. Các ngành nhƣ công nghệ phần mềm, ngân hàng,
an ninh bảo mật… cũng nghiên cứu và sử dụng các thiết bị khóa cứng và eToken trong việc bảo mật, chống sao chép, chữ ký số...
Hiện nay, một số công ty thử nghiệm giải pháp dùng khoá cứng trong
bảo vệ dữ liệu và bảo vệ bản quyền phần mềm, một số loại nhƣ Hasp,
Rockey, Unikey, USB-токен, SecureDongle,... Tuy nhiên, đây đều là các sản
phẩm nhập khẩu, vì vậy khả năng phát triển những ứng dụng có sử dụng khóa
cứng phải phụ thuộc vào nhà cung cấp nƣớc ngoài và các thiết bị này không
đảm bảo có bị lỗi cổng hậu (backdoor) hay không. Gần đây khoá cứng bảo vệ
phần mềm cũng đã bị bẻ khoá nhờ công nghệ giả lập khoá cứng.
Với mong muốn áp dụng các phƣơng pháp mã hóa vào việc bảo mật dữ
liệu và trao đổi thƣ điện tử, đồng thời từng bƣớc tìm hiểu, làm chủ công nghệ
khóa cứng, tác giả chọn đề tài: “Nghiên cứu thiết kế, ứng dụng khóa điện tử
đảm bảo an toàn thông tin trong các giao dịch điện tử” nhằm nghiên cứu, đề
xuất giải pháp ứng dụng khóa cứng với các chức năng: là thiết bị lƣu trữ mã
khóa, đảm bảo nhỏ gọn, kết nối với máy tính thông qua cổng USB, kết hợp
đƣợc với phần mềm mã hóa, có ID riêng cho từng thiết bị, có bộ nhớ đủ lớn
để lƣu trữ mã khóa, lƣu trữ dữ liệu, thuận tiện trong sử dụng; xây dựng phần
mềm kết hợp với khóa cứng để thực hiện việc quản lý mã khóa và mã hóa dữ
liệu.
Mục tiêu của luận văn
Nghiên cứu sản phẩm khoá cứng ứng dụng trong việc mã hóa dữ liệu
trên máy tính và khi trao đổi thƣ điện tử (email).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
3
Nghiên cứu xây dựng phần mềm kết hợp với khóa cứng thực hiện mã
hóa/giải mã dữ liệu trên máy tính.
Nghiên cứu thiết kế modul mã hóa và giao tiếp với máy tính thực hiện
mã hóa luồng dữ liệu khi thực hiện giao tiếp giữa khóa cứng và máy tính.
Từng bƣớc làm chủ thiết bị an toàn bảo mật có tích hợp bên trong các
thuật toán mã và giải mã.
Cơ sở khoa học và tính thực tiễn của luận văn
Xuất phát từ vai trò của mật mã trong các giải pháp an toàn thông tin nghiên cứu và ứng dụng mật mã để bảo vệ thông tin. Cụ thể là nghiên cứu
phƣơng pháp mã hoá AES (Advanced Encryption Standard – chuẩn mã hóa
nâng cao) đƣợc Viện Tiêu chuẩn và Công nghệ Hoa Kỳ (NIST) chính thức
công bố ngày 02/10/2000 và phƣơng pháp mã hóa khóa công khai RSA; các
mô hình thực hiện mã khối trên nền công nghệ nhúng, trong luận văn ứng
dụng thực hiện trên chíp vi xử lý 16 bit tốc độ cao.
Nghiên cứu sản phẩm khóa cứng ứng dựng các phƣơng pháp mã hóa
hiện đại nhằm: bảo vệ dữ liệu trên máy tính và khi trao đổi tin; làm chủ công
nghệ các sản phẩm an toàn bảo mật thông tin mang nhãn hiệu Việt.
Kết quả nghiên cứu của đề tài góp phần làm rõ các phƣơng pháp mã
hóa mới có tính bảo mật cao, đƣa ra một giải pháp cho việc bảo vệ dữ liệu
trên máy tính và khi trao đổi thông tin.
Nội dung của luận văn đƣợc chia thành các chƣơng sau:
Chương 1: Đặt vấn đề
Trong chƣơng này, nghiên cứu tổng quan về mật mã học, vai trò của
mật mã trong bảo đảm an toàn bảo mật dữ liệu, một số nguy cơ mất an toàn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
4
bảo mật dữ liệu ngay cả khi dữ liệu đã đƣợc mã hóa, đề xuất giải pháp đảm
bảo an toàn bảo mật dữ liệu trƣớc các nguy cơ trên.
Chương 2: Nghiên cứu lựa chọn các thuật toán mã hóa
Trong chƣơng này, nghiên cứu khái quát về hai loại hệ mật mã là hệ
mật mã khóa bí mật và hệ mật mã khóa công khai, lựa chọn nghiên cứu hai
phƣơng pháp mã hóa hiện đại là AES và RSA, có độ an toàn cao để ứng dụng
trong xây dựng chƣơng trình mã/giải mã dữ liệu.
Chương 3: Nghiên cứu xây dựng và thực hiện thử nghiệm khóa cứng
với các phần mềm mã hóa/giải mã.
Trong chƣơng này, nghiên cứu thiết kế khóa cứng; xây dựng và thử
nghiệm phần mềm kết hợp với khóa cứng để mã/giải mã dữ liệu bao gồm hai
modul là Modul phần mềm kết hợp với khóa cứng thực hiện mã hóa dữ liệu
trên máy tính dùng thuật toán AES, Modul phần mềm kết hợp với khóa cứng
để mã hóa dữ liệu khi trao đổi qua email dùng thuật toán RSA.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
5
Chƣơng 1: ĐẶT VẤN ĐỀ
1.1. Tổng quan về mật mã
1.1.1. Mật mã học
Mật mã học là ngành khoa học ứng dụng toán học vào việc biến đổi
thông tin thành một dạng khác với mục đích che dấu nội dung, ý nghĩa thông
tin cần mã hóa [10]. Đây là một ngành khoa học có lịch sử lâu đời dựa trên
nền tảng các thuật toán toán học, số học, xác suất và các môn khoa học khác.
Mật mã học bao gồm hai lĩnh vực: mã hóa (cryptography) và thám mã
(cryptanalysis-codebreaking) trong đó:
Mã hóa: nghiên cứu các thuật toán và phƣơng thức để đảm bảo tính bí
mật và xác thực của thông tin. Các sản phẩm của lĩnh vực này là các hệ mật
mã, các hàm băm, các chữ ký điện tử, các cơ chế phân phối, quản lý khóa và
các giao thức mật mã.
Thám mã: nghiên cứu các phƣơng pháp phá mã hoặc tạo mã giả. Sản
phẩm của lĩnh vực này là các phƣơng pháp thám mã, các phƣơng pháp giả mạo
chữ ký, các phƣơng pháp tấn công các hàm băm và các giao thức mật mã.
Mật mã học là một ngành quan trọng và có nhiều ứng dụng trong đời
sống xã hội. 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 hơn trong các lĩnh vực khác nhau trên toàn thế
giới, từ các lĩnh vực an ninh, 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… Cùng với sự phát triển của khoa học máy
tính và Internet, các nghiên cứu và ứng dụng của khoa học mật mã ngày càng
trở nên đa dạng hơn, mở ra nhiều hƣớng nghiên cứu chuyên sâu vào từng lĩnh
vực ứng dụng đặc thù với những đặc trƣng riêng. Ứng dụng của khoa học mật
mã không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn bao gồm
nhiều vấn đề khác nhau cần đƣợc nghiên cứu và giải quyết: chứng thực nguồn
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
6
gốc nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính xác thực về
ngƣời sở hữu mã khóa (chứng nhận khóa công khai), các quy trình giúp trao
đổi thông tin và thực hiện giao dịch điện tử an toàn trên mạng... Những kết
quả nghiên cứu về mật mã cũng đã đƣợc đƣa vào trong các hệ thống phức tạp
hơn, kết hợp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng của các hệ
thống ứng dụng khác nhau trong thực tế, ví dụ nhƣ hệ thống bỏ phiếu bầu cử
qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị với
hƣớng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ multimedia trên
mạng với yêu cầu cung cấp dịch vụ và bảo vệ bản quyền sở hữu trí tuệ đối với
thông tin số...
1.1.2. Hệ mật mã (cryptosystem)
a) Khái niệm
Hệ mật mã là một bộ năm (P, C, K, E, D) thỏa mãn các điều kiện sau:
1. P là không gian bản rõ: là tập hữu hạn các bản rõ có thể có.
2. C là không gian bản mã: là tập hữu hạn các bản mã có thể có.
3. K là không gian khoá: là tập hữu hạn các khoá có thể có.
4. E và D lần lƣợt là tập luật mã hóa và giải mã. Với mỗi khóa k∈K,
tồn tại luật mã hóa ek∈ E và luật giải mã dk∈ D tƣơng ứng. Luật mã hóa ek:
P→ C và luật giải mã dk: C → P là hai ánh xạ thỏa mãn: dk (ek (x)) = x,
∀x∈P [4].
Thƣờng thì không gian các bản rõ và không gian các bản mã là các văn
bản đƣợc tạo thành từ một bộ chữ cái A nào đó. Đó có thể là bộ chữ cái tiếng
Anh, bộ mã ASCII, bộ mã Unicode hoặc đơn giản nhất là bộ hai bit 0 và 1.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
7
Tính chất 4 là tính chất chính và quan trọng nhất của một hệ mật mã.
Tính chất này bảo đảm một mẩu tin x ∈ P đƣợc mã hóa bằng luật mã hóa
ek∈E có thể đƣợc giải mã chính xác bằng luật dk∈D.
b) Phân loại hệ mật mã
• Theo phép toán sử dụng để chuyển đổi bản rõ thành bản mã:
– Thay thế (substitution): mỗi phần tử trong bản rõ đƣợc ánh xạ (map)
sang một phần tử khác.
– Hoán vị (transposition): các phần tử của bản rõ đƣợc sắp xếp lại.
• Theo số lƣợng khoá đƣợc dùng:
– Nếu cả bên gửi và bên nhận sử dụng cùng một khoá, thì hệ thống
đƣợc gọi là mã hoá đối xứng (symmetric), mã hoá khoá bí mật (secret-key),
mã hoá một khoá (single-key).
– Nếu bên gửi và bên nhận sử dụng hai khoá khác nhau, thì hệ thống
đƣợc gọi là mã hoá bất đối xứng (asymmetric), mã hoá khoá công khai
(public-key), mã hoá hai khoá (two-key).
• Theo cách thức xử lý bản rõ (bản mã):
– Mật mã khối (block cipher): xử lý mỗi lần một khối các phần tử đầu
vào tạo ra một khối đầu ra tƣơng ứng với mỗi khối đầu vào.
– Mật mã dòng (stream cipher): xử lý liên tiếp các phần tử đầu vào tạo
ra mỗi lần một phần tử đầu ra.
1.1.3. Mô hình truyền tin cơ bản của mật mã học và nguyên lý Kerckhoffs
Mô hình truyền tin thông thƣờng: trong mô hình truyền tin thông thƣờng
thông tin truyền (vận chuyển) từ ngƣời gửi đến ngƣời nhận đƣợc thực hiện nhờ
một kênh vật lý (chẳng hạn nhƣ việc gửi thƣ) đƣợc coi là an toàn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
8
Mô hình cơ bản của truyền tin bảo mật: khác với truyền tin thông
thƣờng, có các yếu tố mới đƣợc thêm vào nhƣ khái niệm kẻ địch (E-Enemy),
các khoá mã hoá và giải mã K để bảo đảm tính bảo mật của thông tin cần
truyền đi.
Hình 1.1. Mô hình truyền tin cơ bản của mật mã học
Trong mô hình này ngƣời gửi S (Sender) muốn gửi một thông điệp X
(Message – là một bản rõ) tới ngƣời nhận R (Receiver) qua một kênh truyền
không an toàn (Insecured Channel), kẻ địch E (Enemy) có thể nghe trộm, hay
sửa đổi thông tin X. Vì vậy, S sử dụng phép biến đổi
, tức mã hóa (E-
Encryption) lên thông tin X ở dạng đọc đƣợc (Plaintext) để tạo ra một đoạn
văn bản đƣợc mã hoá Y
(C-Ciphertext) không thể hiểu đƣợc theo một quy
luật thông thƣờng, sử dụng một thông tin bí mật gọi là khóa K 1 (Key), khoá
K1 chính là thông số điều khiển cho phép biến đổi từ bản rõ X sang bản mã Y
(chỉ các bên tham gia truyền tin S và R mới có thể biết khóa này). Giải mã (DDecryption) là quá trình ngƣợc lại cho phép ngƣời nhận thu đƣợc thông tin X
ban đầu từ đoạn mã hóa Y sử dụng khóa giải mã K2 (chú ý là khóa giải mã và
khóa mã hóa có thể giống hoặc khác nhau tùy thuộc vào hệ mật mã sử dụng).
Các phép biến đổi đƣợc sử dụng trong mô hình truyền tin trên thuộc về một
hệ mật mã (Cryptosystem) nào đó.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
9
Trong các thuật toán mã hóa, khóa đƣợc dùng điều khiển các quá trình
mã hóa và giải mã. Phần lớn các thuật toán hiện đại dựa trên các thuật toán
đƣợc công bố công khai, thậm chí là thực hiện bằng các phần mềm mã nguồn
mở. Vì vậy, "Độ an toàn của hệ thống mật mã không phụ thuộc vào việc giữ
bí mật thuật toán mã hóa, nó phụ thuộc vào việc giữ bí mật chìa khóa mã.".
Quan điểm này xuất phát từ các công trình nghiên cứu của Auguste
Kerckhoffs (vào những năm 1880), Claude Shannon (vào những năm 1940)
[1] và đƣợc biết đến dƣới tên gọi nguyên lý Kerckhoffs hay châm ngôn của
Shannon. Nghĩa là, toàn bộ cơ chế mã/giải mã (trừ khóa) là không bí mật đối
với kẻ địch. Rõ ràng nếu đối phƣơng không biết đƣợc hệ mật mã đang sử
dụng thuật toán mã hóa gì thì việc thám mã sẽ rất khó khăn nhƣng chúng ta
không thể tin vào độ an toàn của hệ mật mã chỉ dựa vào một giả thiết không
chắc chắn là đối phƣơng không biết thuật toán đang sử dụng. Vì vậy, khi trình
bày một hệ mật bất kỳ, chúng ta đều giả thiết hệ mật đó đƣợc trình bày dƣới
nguyên lý Kerckhoffs.
1.1.4. Một số ứng dụng của mật mã học
Ngày nay, khó có thể tìm thấy các ứng dụng trên máy tính lại không sử
dụng tới các thuật toán và các giao thức mật mã học. Từ các ứng dụng cho các
máy tính cá nhân cho tới các chƣơng trình hệ thống nhƣ các hệ điều hành
hoặc các ứng dụng mạng hoặc các hệ cơ sở dữ liệu đều có sử dụng các thuật
toán mã hóa mật khẩu ngƣời dùng bằng một hệ mã hoặc một hàm băm nào
đó. Đặc biệt, với sự phát triển mạnh mẽ của thƣơng mại điện tử, các mô hình
chứ ký điện tử ngày càng đóng vai trò tích cực cho một môi trƣờng an toàn
cho ngƣời dùng. Tuy vậy, chúng ta vẫn có thể chia các lĩnh vực ứng dụng của
mật mã học thành các lĩnh vực nhỏ nhƣ sau :
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
10
- Bảo mật (Confidentiality): che dấu nội dung của các thông điệp đƣợc
trao đổi trong một phiên truyền thông hoặc giao dịch hoặc các thông điệp trên
một hệ thống máy tính (các file, dữ liệu trong một cơ sở dữ liệu…).
- Xác thực hóa (Authentication): đảm bảo nguồn gốc của một thông
điệp, ngƣời dùng.
- Toàn vẹn (Integrity): đảm bảo chỉ có các tổ chức đã đƣợc xác thực mới có
thể thay đổi các tài sản của hệ thống cũng nhƣ các thông tin trên đƣờng truyền.
- Dịch vụ không thể chối từ (Non-Repudiation): Các bên đã đƣợc xác
thực không thể phủ nhận việc tham gia vào một giao dịch hợp lệ.
- Ngoài ra, còn có các dịch vụ quan trọng khác nhƣ chữ ký điện tử, dịch
vụ chức thực danh tính (Identification) cho phép thay thế hình thức xác thực
hóa ngƣời dùng dựa trên các mật khẩu bằng các kỹ thuật mạnh hơn hoặc dịch
vụ thƣơng mại điện tử cho phép tiến hành các giao dịch an toàn trên các kênh
truyền thông không an toàn nhƣ Internet.
1.2. Một số nguy cơ mất an toàn bảo mật thông tin
Để bảo đảm an toàn bảo mật cho dữ liệu thì chỉ sử dụng giải pháp mã
hóa thôi chƣa đủ vì dữ liệu đã mã hóa vẫn có các nguy cơ mất an toàn bảo
mật, chúng ta có thể kể đến một số nguy cơ sau:
1.2.1. Mất mã khóa
Trong mật mã học, mã khóa là một đoạn thông tin điều khiển hoạt động
của thuật toán mã hóa (quá trình mã hóa/giải mã). Nói một cách khác, khóa là
thông tin để cá biệt hóa quá trình mã hóa cũng nhƣ giải mã. Khóa cũng đƣợc
sử dụng trong các thuật toán khác trong mật mã học nhƣ thuật toán tạo chữ ký
số hay hàm băm mật mã.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
11
Với một thuật toán đƣợc thiết kế tốt, mã hóa cùng một văn bản với các
khóa khác nhau sẽ cho ra các bảng mã hoàn toàn khác nhau. Tƣơng tự, khi ta
giải mã với khóa sai thì kết quả sẽ cho ra một bản rõ hoàn toàn ngẫu nhiên.
Trong trƣờng hợp khóa bị thất lạc thì ta không thể phục hồi lại bản rõ ban đầu
với điều kiện là thuật toán đảm bảo chất lƣợng và độ dài khóa đủ lớn.
Bất kỳ ngƣời nào có đƣợc khóa (bằng bất kỳ cách gì, trong nhiều
trƣờng hợp do sơ suất của ngƣời giữ khóa) thì sẽ dễ dàng giải mã đƣợc dữ liệu
đã mã hóa, khi đó vấn đề đặt ra là phải lƣu trữ và bảo quản mã khóa nhƣ thế
nào để đảm bảo bí mật, an toàn. Việc giữ bí mật các khóa là vấn đề khó khăn
nhất trong các hệ thống thực tế.
Khi thiết kế hệ thống an ninh, cần phải giả định rằng kẻ tấn công nắm
đƣợc các thông tin chi tiết về thuật toán. Điều này đƣợc biết đến với tên là
nguyên lý Kerckhoff. Lịch sử mật mã học đã khẳng định nguyên lý này: hầu
nhƣ không thể giữ bí mật về thiết kế các thuật toán đƣợc sử dụng rộng rãi.
Trái lại, việc giữ bí mật về khóa dễ hơn rất nhiều vì khóa thƣờng chỉ là một
đoạn thông tin ngắn và ta dễ dàng thay đổi chúng khi có dấu hiệu bị lộ. Vì thế,
an ninh của một hệ thống mật mã hóa thƣờng dựa trên việc giữ bí mật các
khóa mã.
Trong thực tế, quản lý khoá là vấn đề khó nhất của an toàn hệ mã hoá.
Để thiết kế an toàn thuật toán mã hoá và giao thức là một việc làm không phải
dễ dàng nhƣng để tạo và lƣu trữ khoá bí mật là điều còn khó hơn. Kẻ thám mã
thƣờng tấn công cả hai hệ mã hoá khóa bí mật và công khai thông qua hệ
quản lý khoá.
1.2.2. Thất lạc các vật mang tin
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
12
Các thiết bị mang tin (USB, thẻ nhớ, ổ cứng di động, máy tính xách
tay...) đa dạng về chủng loại và ngày càng đƣợc sử dụng phổ biến rất thuận
tiện trong sử dụng, nhƣng cũng dễ mất an toàn nhƣ bị thất lạc, bị sao chép
trộm... nếu không có biện pháp bảo vệ dữ liệu trên những thiết bị mang tin di
động, chúng ta có thể gặp phải những rắc rối nghiêm trọng.
USB là thiết bị lƣu trữ dữ liệu rất phổ biến hiện nay, ƣu điểm lớn nhất
khi sử dụng USB và các thiết bị nhớ di động là ngƣời sử dụng có thể mang dữ
liệu theo bên mình đi bất cứ đâu. Nhƣng đây cũng là nhƣợc điểm lớn nhất của
các thiết bị này: nó rất dễ bỏ quên hoặc đánh mất, thậm chí bị đánh cắp nếu
ngƣời dùng không để ý. Nếu USB chứa nhiều dữ liệu quan trọng hay riêng tƣ
rơi vào tay ngƣời khác thì sẽ dẫn đến những hậu quả không đáng có.
Máy tính xách tay tiện dụng nhƣng cũng rất dễ bị đánh cắp, máy tính bị
đánh cắp là “cơn ác mộng” mà bất kỳ ai cũng có thể phải đối mặt vào bất cứ
lúc nào. Khi máy tính bị đánh cắp, chủ nhân không chỉ mất đi tài sản của
mình, mà quan trọng hơn hết, những dữ liệu chứa trên đó có thể là “vô giá”
mà không thể nào tìm lại đƣợc và có thể đó là những dữ liệu mà khi bị lộ ra
ngoài nó sẽ gây ra những hậu quả khôn lƣờng.
1.2.3. Truy cập trái phép các phần mềm quan trọng
Các phần mềm quan trọng đòi hỏi tính bảo mật cao nhƣ các phần mềm
sử dụng trong an ninh, quốc phòng... khi đƣợc cài đặt trên máy tính đặc biệt là
các máy tính dùng chung có thể bị truy cập và sử dụng trái phép bởi những
ngƣời không có thẩm quyền, dẫn đến việc lộ những thông tin, dữ liệu bí mật
nhất là bí mật quân sự, bí mật quốc gia. Điều này đòi hỏi phải có giải pháp
bảo vệ các phần mềm này ngoài giải pháp sử dụng username và password của
phần mềm.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
13
1.2.4. Mất an toàn khi gửi/nhận thƣ điện tử
Một vấn đề khác là việc mất an toàn khi gửi/nhận thƣ điện tử cũng
thƣờng xuyên xảy ra. Khi gửi thƣ điện tử trên đƣờng truyền mạng, ngƣời gửi
có thể sử dụng biện pháp mã hóa để bảo đảm bí mật của nội dung bức thƣ
nhƣng nhƣ trên đã trình bày, mã khóa của thuật toán mã hóa có thể bị mất vì
một nguyên nhân nào đó và ngƣời có đƣợc mã khóa có thể dễ dàng giải mã
đƣợc bức thƣ.
1.3. Đề xuất giải pháp bảo đảm an toàn bảo mật dữ liệu
Mã hóa dữ liệu là một trong những việc rất quan trọng để bảo vệ thiết
bị di động. Với một thiết bị đã đƣợc quản lý, ngƣời sử dụng có thể phân phối
dữ liệu hoặc tuân thủ chính sách mã hoá dữ liệu nhất định. Theo các chuyên
gia tƣ vấn: các thƣ mục dữ liệu, hộp thƣ điện tử, dữ liệu ngƣời dùng, danh bạ,
các chứng thực... là những thứ nên đƣợc mã hóa. Hầu hết các mức mã hóa sẽ
giúp gửi các email an toàn hơn so với việc gửi một email không đƣợc mã hóa
bởi lẽ chúng ta đều không thể kiểm soát đƣợc mọi thứ xảy ra trong quá trình
gửi. Việc mã hóa các thiết bị lƣu trữ có thể tháo rời đƣợc, chẳng hạn nhƣ các
thẻ nhớ SD, USB, ổ cứng di động... cũng cần đƣợc ngƣời sử dụng cân nhắc để
mã hoá.
Nhƣng chỉ mã hóa thôi chƣa đủ vì khi mã khóa bị đánh cắp, bị thất
lạc... thì các dữ liệu đã mã hóa sẽ không còn là bí mật nữa. Chính vì vậy, luận
văn đề xuất giải pháp sử dụng khóa cứng:
1.3.1. Dùng khóa cứng để lƣu giữ mã khóa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
- Xem thêm -