Đề tài “Tìm hiểu mật mã hộp trắng Whitebox Cryptography và ứng dụng trong hệ thống thu phát thông tin số” nghiên cứu phương pháp mã hóabảo vệ thông tin số trong đó tập trung nghiên cứu:
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN THIÊN PHI
TÌM HIỂU MẬT MÃ HỘP TRẮNG (WHITEBOX CRYPTOGRAPHY) VÀ ỨNG DỤNG TRONG HỆ
THỐNG THU PHÁT THÔNG TIN SỐ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
th¸i nguyªn - n¨m 2014
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN THIÊN PHI
TÌM HIỂU MẬT MÃ HỘP TRẮNG (WHITEBOX CRYPTOGRAPHY) VÀ ỨNG DỤNG TRONG HỆ
THỐNG THU PHÁT THÔNG TIN SỐ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60 48 01
Người hướng dẫn khoa học: PGS.TS TRỊNH NHẬT TIẾN
Trang 3LỜI CAM ĐOAN
Học viên xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trìnhbày trong luận văn là bản thân học viên tự tìm hiểu và nghiên cứu, dưới sựhướng dẫn khoa học của thầy PGS.TS.Trịnh Nhật Tiến
Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc Họcviên xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỷ luật theo quyđịnh cho lời cam đoan của mình
Thái Nguyên, 29 tháng 09 năm 2014
Học viên thực hiện
Nguyễn Thiên Phi
Trang 4LỜI CẢM ƠN
Luận văn này được thực hiện tại trường Đại học Công nghệ Thông tin
và Truyền thông - Ư dưới sự hướng dẫn của thầy PGS TS Trịnh NhậtTiến
Trước tiên, Học viên xin được bày tỏ lòng cảm ơn và sự kính trọng củamình đến các thầy, cô giáo đã tận tình truyền đạt các kiến thức quý báu chohọc viên trong suốt quá trình học tập
Đặc biệt học viên xin bày tỏ lòng biết ơn sâu sắc tới thầy PGS.TS.Trịnh Nhật Tiến, người định hướng, hướng dẫn học viên trong quá trình thựchiện luận văn này, những lời động viên chỉ bảo giúp học viên vượt qua nhữngkhó khăn để học viên hoàn thành tốt luận văn của mình Bên cạnh những kiếnthức khoa học, thầy giáo đã giúp học viên nhận ra những bài học về phongcách học tập, làm việc và những kinh nghiệm sống quý báu
Nhân dịp này, học viên cũng xin gửi lời cảm ơn đến gia đình, bạn bè,đồng nghiệp và những người thân đã tạo điều kiện giúp đỡ, động viên, trợgiúp về tinh thần, vật chất để học viên hoàn thành luận văn này
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC HÌNH v
DANH MỤC TỪ VIẾT TẮT vii
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Đối tượng và phạm vi nghiên cứu 2
3 Hướng nghiên cứu của đề tài 3
4 Những nội dung nghiên cứu chính 3
5 Phương pháp nghiên cứu 3
6 Ý nghĩa khoa học và thực tiễn của đề tài 4
CHƯƠNG 1 VẤN ĐỀ AN TOÀN TRONG HỆ THỐNG THU PHÁT THÔNG TIN SỐ 5
1.1 HỆ THỐNG THU PHÁT THÔNG TIN SỐ 5
1.1.1 Các khái niệm cơ bản 5
1.1.2 Những thách thức về an toàn bảo mật 6
1.2 PHƯƠNG PHÁP MÃ HOÁ KHỐI 6
1.2.1 Mật mã học 6
1.2.2 Mã hóa khối 8
1.2.3 Một số cách tấn công vào hệ mã hóa hiện đại 16
1.3 MÃ HÓA HỘP TRẮNG TRÊN NỀN MÃ HÓA KHỐI 18
1.3.1 Giới thiệu về mã hóa hộp trắng 18
1.3.2 Các khái niệm cơ bản 19
1.3.3 Đề xuất sử dụng mật mã hộp trắng 21
Trang 6CHƯƠNG 2 MÃ HÓA RIJNDAEL VÀ MÃ HOÁ HỘP TRẮNG AES 21
2.1 PHƯƠNG PHÁP MÃ HÓA RIJNDAEL 22
2.1.1 Giới thiệu 22
2.1.2 Quy trình mã hóa 22
2.1.3 Phát sinh khóa của mỗi chu kỳ 34
2.2 KỸ THUẬT XÂY DỰNG MÃ HÓA HỘP TRẮNG 42
2.2.1 Khái niệm và các ký hiệu trong mô tả thuật toán 42
2.2.2 Kỹ thuật mã hóa hộp trắng trên AES 43
2.2.3 Hiệu suất của mật mã hộp trắng 51
CHƯƠNG 3 CHƯƠNG TRÌNH MÃ HÓA HỘP TRẮNG AES VÀ ỨNG DỤNG TRONG HỆ THỐNG IPTV 54
3.1 BÀI TOÁN THỰC TẾ 54
3.2 SET TOP BOX VÀ GIẢI PHÁP HIỆN NAY 55
3.3 SỬ DỤNG MÃ HÓA HỘP TRẮNG MỀM HÓA SET-TOP BOX 57
3.3.1 Cài đặt chương trình mã hóa trên AES 57
3.3.2 Đề xuất mềm hóa Set-top box 66
3.3 NHẬN XÉT 68
KẾT LUẬN 70
TÀI LIỆU THAM KHẢO 71
Trang 7DANH MỤC HÌNH
Hình 1.1 Quá trình truyền tin trong hệ thống thông tin số 5
Hình 1.2 Mô hình cơ bản của truyền tin bảo mật 7
Hình 1.3 Cấu trúc thuật toán Feistel dùng trong DES 10
Hình 1.4 Hàm F (F-function) dùng trong DES 11
Hình 1.5 Mô tả thuật toán tạo khóa con cho các chu trình 13
Hình 1.6 Biến đổi của hàm SubBytes 14
Hình 1.7 Biến đổi của hàm ShiftRows 15
Hình 1.8 Biến đổi của hàm MixColumns 15
Hình 1.9 Biến đổi của hàm AddRoundKey 16
Hình 1.10 Phương pháp Entropy Attack 17
Hình 1.11 Mô hình hộp đen truyền thống 19
Hình 1.12 Kẻ thù công tấn công trong mô hình hộp trắng 20
Hình 1.13 Mô hình Mật mã hộp trắng 20
Hình 2.1 Biểu diễn dạng ma trận trạng thái (Nb = 6) và mã khóa (Nk = 4) 23
Hình 2.2 Quy trình mã hóa Rijndael 24
Hình 2.3 Thuật toán Mã hóa và giải mã Rijndael 26
Hình 2.4 Thao tác SubBytes tác động trên từng byte của trạng thái 27
Hình 2.5 Bảng thay thế S-box qua phép biến đổi SubBytes 28
Hình 2.6 Thao tác ShiftRows tác động trên từng dòng của trạng thái 28
Hình 2.7 Giá trị di số shift(r,Nb) 29
Hình 2.8 Các thao tác MixColumns tác động lên mỗi cột của trạng thái 31
Hình 2.9 Các thao tác AddRoundKey tác động lên mỗi cột của trạng thái 34
Hình 2.10 Bảng mã khóa mở rộng và cách xác định mã khóa của chu kỳ 36
Hình 2.11 Thao tác InvShiftRows tác động lên từng dòng của state 38
Hình 2.12 Bảng thay thế S-box qua phép biến đổi InvSubBytes 40
Trang 8Hình 2.13 Cấu trúc mỗi bảng tra cứu sau khi biến đổi 43
Hình 2.14 Khối MC 45
Hình 2.15 Bảng loại IV 46
Hình 2.16 Bảng loại II 47
Hình 2.17 Bảng loại III 49
Hình 2.18 Bảng loại Ia 50
Hình 2.19 Bảng loại Ib 51
Hình 3.1 Minh họa việc phân chia bảng thành 2 phần dạng 1 59
Hình 3.2 Minh họa việc phân chia bảng thành 2 phần dạng 2 60
Hình 3.3 Giao diện viết chương trình DEV C++ 64
Hình 3.4 Giao diện phần mềm mã hóa hộp trắng 65
Hình 3.5 Phần mềm mã hóa hộp trắng thực hiện mã hóa 66
Hình 3.6 Phần mềm mã hóa hộp trắng thực hiện giải mã 66
Hình 3.7 Sơ đồ khối phần mềm thay thế Set-top box 68
Trang 9DANH MỤC TỪ VIẾT TẮT
AES : Advanced Encryption Standard
DES : Data Encryption Standard
DVD : Digital Video Disc
FIPS : d e r alFe I n f o r m a ti o n Pr o c e s s i n g S t a n d a r d s
FP : Final permutation
IBM : International Business Machines
ICME : International Congress on Mathematical Education
IP : Initial permutation
IPTV : Internet Protocol Television
NIST : National Institute of Standards and Technology
NSA : National Security Agency
STB : Set-top box
Trang 101
Trang 11và chất xám của tác giả một cách mạnh mẽ Mới đây nhất nhà nước đã banhành Thông tư số 07/2012/TTLT-BTTTT-BVHTTDL, ngày 19-6 giữa BộThông tin - Truyền thông và Bộ Văn hóa - Thể thao và Du lịch (VH-TT-DL).
Thực hiện Thông tư số 07/2012/TTLT-BTTTT-BVHTTDL, các doanhnghiệp cung cấp dịch vụ internet, viễn thông, lưu trữ trực tuyến, mạng xãhội… là nguồn khởi đầu đăng tải, truyền đưa hoặc cung cấp nội dung thôngtin số (tác phẩm, cuộc biểu diễn, bản ghi âm, ghi hình, chương trình phátsóng) qua mạng viễn thông và internet mà không được phép của chủ thểquyền; sửa chữa, cắt xén, sao chép nội dung thông tin số dưới bất kỳ hìnhthức nào mà không được phép của chủ thể quyềnthì sẽ phải chịu trách nhiệmbồi thường thiệt hại theo quy định của pháp luật về sở hữu trí tuệ và pháp luậtkhác có liên quan
Mặc dù Thông tư có nhiều quy định chặt chẽ hơn đối với việc vi phạmbản quyền trên mạng Internet song nhiều doanh nghiệp cung cấp dịch vụ,người dùng vẫn rất băn khoăn về khả năng thực thi của nó khi vẫn còn tồn tạinhiều rào cản, vướng mắc
Trang 12Các nội dung số của người dùng đưa lên theo phương thức tự nguyệnchia sẻ thì rất khó kiểm tra sản phẩm đó có bản quyền hay không.Chủ thể cóquyền tác giả hay không và việc truy tìm nguồn gốc cũng rất vất vả để các cơquan chức năng xử lý các vi phạm bản quyền khi các nội dung số được đưalên website, mạng xã hội, dịch vụ lưu trữ có máy chủ ở nước ngoài “Muốn
xử lý các vi phạm thì cơ quan chức năng phải liên hệ với chủ quản củawebsite, mạng xã hội ở nước ngoài” việc này là rất khó khăn vì quá trình liên
hệ phức tạp, kéo dài Đồng thời, nếu muốn xử lý được các nội dung số viphạm thì chúng phải là các sản phẩm có đăng ký bản quyền quốc tế và quốcgia quản lý các website, mạng xã hội lưu trữ các sản phẩm này phải có thamgia công ước quốc tế về bản quyền”
Tuy nhiên hiện nay các nhà cung cấp dịch vụ IPTV đã sử dụng thiết bịđầu cuối là hộp Set-top box[7] để đảm bảo quyền lợi của họ, nhưng việc làm
đó lại gây cho khách hàng những quan ngại như họ đã trả tiền nhưng lại chỉđược xem cố định tại nhà, mà không phải là trên các thiết bị cầm taynhư Tablet, Mobiphone…, vậy có cách nào đó để các nhà cung cấp dữ liệu cóthể đảm bảo rằng việc họ chỉ có thể chuyển nội dung của họ cho những người
mà họ xác định (những người nhận dữ liệu hợp pháp) còn những ngườikhác không thể biết chính xác được nội dung cho dù họ vẫn thu được các tínhiệu đó
Xuất phát từ ý tưởng đó, đồng thời dưới sự hướng dẫn và gợi ý của thầygiáo PGS TS Trịnh Nhật Tiến, học viên đã chọn đề tài cho luận tốt nghiệpCao học ngành khoa học máy tính là
“TÌM HIỂU MẬT MÃ HỘP TRẮNG (WHITEBOX CRYPTOGRAPHY)
VÀ ỨNG DỤNG TRONG HỆ THỐNG THU PHÁT THÔNG TIN SỐ”
2 Đối tượng và phạm vi nghiên cứu
Trang 13Đề tài “Tìm hiểu mật mã hộp trắng (Whitebox Cryptography) và ứng dụng trong hệ thống thu phát thông tin số” nghiên cứu phương pháp mã hóa
bảo vệ thông tin số trong đó tập trung nghiên cứu: mã hóa khối, chi tiết thuật
Trang 14toán đặc trưng mã hóa Advanced Encryption Standard- AES, mã hóa hộptrắng trên nền mã hóa AES từ đó xây dựng chương trình mã hóa hộp trắngtrên AES để bảo vệ thông tin số.
Cùng với việc nghiên cứu về mã hóa hộp trắng trên AES, đề tài tập trungnghiên cứu đề xuất xây dựng và phát triển hệ thống cho mã hóa hộp trắngnhằm thay hộp Set-top boxtruyền thống bằng phần mềm
3 Hướng nghiên cứu của đề tài
Đề tài tập trung nghiên cứu thuật toán mã hóa hộp trắng với các mụctiêu được đặt ra như sau:
- Tìm hiểu thuật toán mã hóa khối
- Tìm hiểu kỹ thuật mã hóa hộp trắng trên AES
- Xây dựng các thí dụ minh họa miêu tả các kỹ thuật xử lý trong mã hóahộp trắng
- Xây dựng chương trình mã hóa hộp trắng trên AES
- Đề xuất Set-top box bằng phần mềm có sử dụng mã hóa hộp trắng
4 Những nội dung nghiên cứu chính
Luận văn tập trung giải quyết các nội dung chính: Giới thiệu hệ thống
thông tin và mã hóa bảo vệ hệ thống thông tin (chương 1), tiếp đó là phân tích chi tiết thuật toán mã hóa Rijndael[2](một hệ mã hóa điển hình của AES) và
mã hóa hộp trắng trên nền AES (chương 2) và cuối cùng là xây dựng chương
trình mã hóa hộp trắng và đề xuất ứng dụng mã hóa hộp trắng AES trong hệthống IPTV
5 Phương pháp nghiên cứu
Dựa vào mục tiêu, nhiệm vụ của đề tài, các phương pháp nghiên cứuđược sử dụng trong luận văn là:
- Tổng hợp, phân tích và đánh giá kết quả lý thuyết, các ứng dụng, các
Trang 15- Kế thừa tối đa những kết quả nghiên cứu đã có ở trong nước và trênthế giới.
- Tìm hiểu, nghiên cứu và đề xuất các phương pháp lý thuyết, tiến hànhxây dựng chương trình mã hóa hộp trắng trên AES
- Kiểm nghiệm chương trình mã hóa hộp trắng
- Tổ chức báo cáo, thảo luận định kỳ, trao đổi thường xuyên các thôngtin, kết quả trong quá trình nghiên cứu với giáo viên hướng dẫn cũng nhưnhững người trong ngành có liên quan
- Nghiên cứu theo đúng kế hoạch đã đề ra
6 Ý nghĩa khoa học và thực tiễn của đề tài
Chương trình có nghĩa trên cả hai phương diện lý thuyết và thực tiễn
- Về phương diện lý thuyết: Đề tài đóng góp một số diễn giải và minhhọa cho hệ mã hóa hộp trắng trên AES để mã hóa thông tin số nhằm phát triểncông nghệ mã hóa hộp trắng dần khắc phục những nhược điểm của mã hóatruyền thống nhằm đảm bảo an ninh ngay trong môi trường thực hiện
- Về phương diện thực tiễn: Cung cấp cho người dùng một sản phẩmphầm mềm có tính năng tương đương như Set-top box làm giảm chi phí sảnxuất thiết bị, dễ dàng sửa chữa nâng cấp khi cần thiết
Trang 16CHƯƠNG 1 VẤN ĐỀ AN TOÀN TRONG HỆ THỐNG THU
PHÁT THÔNG TIN SỐ
1.1 HỆ THỐNG THU PHÁT THÔNG TIN SỐ
1.1.1 Các khái niệm cơ bản
1.1.1.3 Hệ thống thông tin số
Hệ thống thông tin số là tập hợp các thiết bị (bao gồm: phần cứng,phần mềm, môi trường truyền) dùng để truyền tin từ nơi này đi nơi khác bằngtín hiệu số
1.1.1.4 Mô hình hệ thống thu phát thông tin số
Đây là sơ đồ tiêu biểu cho các hệ thống thông tin số, trong thực tế cóthể nhiều hơn, có thể ít hơn hoặc có thể thay thế bằng một số khối khác
Trang 171.1.2 Những thách thức về an toàn bảo mật
1.1.1.1 Thông tin bị rò rỉ, lộ bí mật
Thông tin, dữ liệu trong hệ thống bị lộ, lọt, truy nhập, lấy cắp, nghelén và sử dụng trái phép
1.1.1.2 Thông tin thiếu xác thực, toàn vẹn và thiếu tin cậy
Thông tin, dữ liệu trong hệ thống bị thay thế hoặc sửa đổi làm sai lệchnội dung
1.1.1.3 Tính pháp lý và an ninh hệ thống
Thông tin, dữ liệu không bảo đảm hoặc không được cam kết về pháp
lý của người cung cấp; thông tin, dữ liệu không mong muốn bị tán phát hoặc
hệ thống bị tấn công mà không được kiểm soát hoặc không thể kiểm soát
1.1.1.4 Tính kém sẵn sàng của hệ thống
Thông tin, dữ liệu không đảm bảo tính thời gian thực, hệ thống hay bị
sự cố, ngừng trệ, hỏng hóc; truy cập, khai thác khó khăn
1.2 PHƯƠNG PHÁP MÃ HOÁKHỐI
1.2.1 Mật mã học
Ngành mật mã học bao gồm hai lĩnh vực:
tính bí mật 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ã mật, các hàm băm, các hệ 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 là việc nghiên cứucác phươngpháp hoặc tạo
Sản phẩm của lĩnh vực này là các phương pháp giải 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ã
1.2.1.1 Khái niệm hệ mã hóa.
a) Khái niệm
Hệ mã hóa là bộ gồm 5 thành phần (P, C, K, E, D) trong đó
P – Plaintext Tập hữu hạn các bản rõ có thể
Trang 181.2.1.2 Mô hình truyền tin cơ bản
Trong mô hình truyền tin thông thường, thông tin được truyềntừngười gửi đến người nhận được thực hiện một kênh vật ợtoàn Trong khi đó mô hình cơ bản của truyền tin có bảo mật khác với truyềntin thông thường, có các yếu tố mới được thêm vào như khái niệm kẻ thù,các khóa mã hóa, khóa giải mã để đảm bảo tính bảo mật của thông tin cầntruyền đi
Hình 1.2Mô hình cơ bản của truyền tin bảo mật
1.2.1.3 Luật Kerckhoffs
Trong quá khứ, mật mã được sử dụng chủ yếu cho các ứng dụng quân
Trang 19những thuật toán mã hóa này ngay sau khi thiết kế đã bị rò rỉ hoặc đã bị phávỡ.
Trang 20Vào năm 1883, August Kerckhoffs nêu một định nghĩa như sau: một hệthống mật mã được coi là an toàn khi tất cả mọi thứ về hệ thống (ngoại trừ
khóa bí mật) là kiến thức công cộng (có nghĩa là toàn bộ cơ chế /giả
ừ ật đối với kẻ địch) Nguyên tắc này được chấp nhận rộng rãi,
bởi vì nó đã được chứng minh trong nhiều trường hợp bảo mật Việc áp dụng các nguyên tắc này là nền tảng cho các nghiên cứu mật mã học hiện đại
1.2.2 Mã hóa khối
Mã hóa khối là những thuật toán mã hóa đối xứng hoạt động trên
những khối thông tin có độ dài xác định (block) với những chuyển đổi xác
định Chẳng hạn một thuật toán mã hóa khối có thể xử lý khối 128 bit đầu vào
và biến nó thành khối 128 bit ở đầu ra Quá trình chuyển đổi còn sử dụngthêm một tham số khóa bí mật để cá biệt hóa quá trình
Việc giải mã cũng diễn ra tương tự đó là xử lý khối mã hóa 128 bitcùng với khóa để trả về khối 128 bit bản rõ ban đầu.Để mã hóa những vănbản có độ dài vượt quá độ dài của khối, người ta sử dụng thuật toán theomột chế độ mã hóa khối nào đó
Phân biệt mã hóa khối với mã hóa dòng Mã hóa dòng làm việc trêntừng bit của dòng dữ liệu và quá trình biến đổi thay đổi theo quá trình mã hóa.Tuy nhiên, sự phân biệt giữa 2 phương pháp nhiều khi không rõ ràng vì mãhóa khối khi hoạt động theo một chế độ nào đó thì có tác dụng như mộtphương pháp mã hóa dòng
Thuật toán mã hóa khối ra đời sớm và có nhiều ảnh hưởng là thuật
làm tiêu chuẩn năm 1977
1.2.2.1 Mã hóa DES
Data Encryption Standard ký hiệu là DES là một phương pháp mật mã
Trang 21vi thế giới Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nóbao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghingờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa.
Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc
đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương
Mô tả thuật toán
DES là thuật toán mã hóa khối: nó xử lý từng khối thông tin của bản
rõ có độ dài xác định và biến đổi theo những quá trình phức tạp để trở thànhkhối thông tin của bản mã có độ dài không thay đổi Trong trường hợp củaDES, độ dài mỗi khối là 64 bit DES cũng sử dụng khóa để cá biệt hóa quátrình chuyển đổi Nhờ vậy, chỉ khi biết khóa mới có thể giải mã được văn bản
mã Khóa dùng trong DES có độ dài toàn bộ là 64 bit Tuy nhiên chỉ có 56 bitthực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra Vì thế, độ dàithực tế của khóa chỉ là 56 bit Giống như các thuật toán mã hóa khối khác, khi
áp dụng cho các văn bản dài hơn 64 bit, DES phải được dùng theo mộtphương pháp nào đó
Trang 22Hình 1.3 Cấu trúc thuật toán Feistel dùng trong DES
Cấu trúc tổng thể của thuật toán được thể hiện ở Hình 1.3 có 16 chutrình giống nhau trong quá trình xử lý Ngoài ra còn có hai lần hoán vị đầu và
cuối (Initial and final permutation - IP & FP).
Hai quá trình này có tính chất đối nhau (Trong quá trình mã hóa thì IPtrước FP, khi giải mã thì ngược lại) IP và FP không có vai trò xét về mật mãhọc và việc sử dụng chúng chỉ có ý nghĩa đáp ứng cho quá trình đưa thông tinvào và lấy thông tin ra từ các khối phần cứng có từ thập niên 1970 Trước khi
đi vào 16 chu trình chính, khối thông tin 64 bit được tách làm hai phần 32 bit
và mỗi phần sẽ được xử lý tuần tự (quá trình này còn được gọi là mạng
Trang 23Cấu trúc của thuật toán (mạng Feistel) đảm bảo rằng quá trình mã hóa
và giải mã diễn ra tương tự Điểm khác nhau chỉ ở chỗ các khóa con được sửdụng theo trình tự ngược nhau Điều này giúp cho việc thực hiện thuật toántrở nên đơn giản, đặc biệt là khi thực hiện bằng phần cứng
Ký hiệu sau: thể hiện phép toán XOR Hàm F làm biến đổi một nửacủa khối đang xử lý với một khóa con
Đầu ra sau hàm F được kết hợp với nửa còn lại của khối và hai phầnđược tráo đổi để xử lý trong chu trình kế tiếp Sau chu trình cuối cùng thì 2nửa không bị tráo đổi; đây là đặc điểm của cấu trúc Feistel khiến cho quátrình mã hóa và giải mã trở nên giống nhau
Hàm Feistel (F)
Hình 1.4 Hàm F (F-function) dùng trong DES
Hàm F, hoạt động trên khối 32 bit và bao gồm bốn giai đoạn:
Mở rộng: 32 bit đầu vào được mở rộng thành 48 bit sử dụng thuật toán
hoán vị mở rộng (expansion permutation) với việc nhân đôi một số bit Giai
đoạn này được ký hiệu là E trong sơ đồ
Trộn khóa: 48 bit thu được sau quá trình mở rộng được XOR với khóa
con Mười sáu khóa con 48 bit được tạo ra từ khóa chính 56 bit theo một chu
trình tạo khóa con (key schedule) miêu tả ở phần sau.
Trang 24Thay thế: 48 bit sau khi trộn được chia làm 8 khối con 6 bit và được xử
lý qua hộp thay thế S-box Đầu ra của mỗi khối 6 bit là một khối 4 bit theomột chuyển đổi phi tuyến được thực hiện bằng một bảng tra Khối S-box đảmbảo phần quan trọng cho độ an toàn của DES Nếu không có S-box thì quátrình sẽ là tuyến tính và việc thám mã sẽ rất đơn giản
Hoán vị: Cuối cùng, 32 bit thu được sau S-box sẽ được sắp xếp lại theo
một thứ tự cho trước (còn gọi là P-box)
Quá trình luân phiên sử dụng S-box và sự hoán vị các bit cũng như quátrình mở rộng đã thực hiện được tính chất gọi là sự xáo trộn và khuếch
tán (confusion and diffusion) Đây là yêu cầu cần có của một thuật toán mã
hoá được Claude Shannon phát hiện trong những năm 1940
Quá trình tạo khóa con
Đầu tiên, từ 64 bit ban đầu của khóa, 56 bit được chọn; 8 bit còn lại bịloại bỏ 56 bit thu được chia làm hai phần bằng nhau, mỗi phần được xử lýđộc lập Sau mỗi chu trình, mỗi phần được dịch đi 1 hoặc 2 bit (tùy thuộctừng chu trình, nêu đó là chu trình 1,2,9,16 thì đó là dịch 1 bit, còn lại thì sẽđược dịch 2 bit) Các khóa con 48 bit được tạo thành bởi thuật toán lựa chọn 2gồm 24 bit từ mỗi phần
Trang 25Hình 1.5Mô tả thuật toán tạo khóa con cho các chu trình
Quá trình dịch bit (được ký hiệu là "<<<" trong sơ đồ) khiến cho cáckhóa con sử dụng các bit khác nhau của khóa chính; mỗi bit được sử dụngtrung bình ở 14 trong tổng số 16 khóa con
Quá trình tạo khóa con khi thực hiện giải mã cũng diễn ra tương tựnhưng các khóa con được tạo theo thứ tự ngược lại Ngoài ra sau mỗichu trình, khóa sẽ được dịch phải thay vì dịch trái như khi mã hóa
1.2.2.2 Mã hóa AES
Do kích thước khóa nhỏ và việc thực hiện phần mềm chậm chạpcủa DES, NIST (National Institute of Standards and Technology - Viện Tiêuchuẩn và Kỹ thuật Quốc gia - Hoa Kỳ) công bố một cuộc thi cho một tiêuchuẩn mã hóa mới Năm 2001, mã khối Rijndael đã được lựa chọn làm chuẩn
mã hóa nâng cao với kích thước một khối lên đến 128 bit Ngày nay, Rijndael
là một trong những thuật toán phổ biến nhất được sử dụng trong mật mã đốixứng
Thuật toán AES
Trang 26Mặc dù 2 tên AES và Rijndael vẫn thường được gọi thay thế cho nhau
nhưng trên thực tế thì 2 thuật toán không hoàn toàn giống nhau AES chỉ làmviệc với các khối dữ liệu (đầu vào và đầu ra) 128 bit và khóa có độ dài 128,
192 hoặc 256 bit trong khi Rijndael có thể làm việc với dữ liệu và khóa có độdài bất kỳ là bội số của 32 bít nằm trong khoảng từ 128 tới 256 bít Các khóacon sử dụng trong các chu trình được tạo ra bởi quá trình tạo khóa conRijndael Mỗi khóa con cũng là một cột gồm 4 byte Hầu hết các phép toántrong thuật toán AES đều thực hiện trong một trường hữu hạncủa các byte.Mỗi khối dữ liệu 128 bit đầu vào được chia thành 16 byte, có thể xếp thành 4cột, mỗi cột 4 phần tử hay ma trận 4x4 byte,nó được gọi là ma trận trạng thái,hay trạng thái Trong quá trình thực hiện thuật toán các toán tử tác động đểbiến đổi ma trận trạng thái này
Tùy thuộc vào kích thước khóa (128, 192, hoặc 256) mà số vòng thựchiện trong AES lượt là 10, 12, hoặc 14, hoạt động trên một mảng 4 × 4 byte(được gọi là trạng thái) Một vòng được quy định trong bốn bước như sau:
1 SubBytes - Đây là phép thế trong đó mỗi byte trong trạng thái sẽđược thế bằng một byte khác theo bảng tra S-box; Trong đó S-box được xác
được lựa chọn phù hợpvà b là một hằng số
Hình 1.6Biến đổi của hàm SubBytes
Trang 272 ShiftRows - Hàm sử dụng , xử các trạngthái bằng cách dịch vòng ba hàng cuối của trạng thái với số lần dịch khácnhau, dòng đầu giữ nguyên.
Hình 1.7Biến đổi của hàm ShiftRows.
3 MixColumns –Hàm biến đổi trong thuật toán bằng cách phatrộn 4 byte của một cột, thông qua việc nhân mỗi cột với một ma trận trên
Hình 1.8Biến đổi của hàm MixColumns
4 AddRoundKey –Mỗi cột của trạng thái đầu tiên lần lƣợt đƣợc kếthợp với một khóa con theo thứ tự từ đầu dãy khóa.Thông qua phép nhân nhịphân với khóa con 128 bit
Trang 28Hình 1.9Biến đổi của hàm AddRoundKey 1.2.3 Một số cách tấn công vào hệ mã hóa hiện đại
1.2.3.1 Tấn công dữ liệu ngẫu nhiên (Entropy Attack)
Khi hai bên muốn giao tiếp với nhau, hai bên thống nhất với nhaumột chìa khóa bí mật Trong trường hợp mã hóa đối xứng, hai bên sử dụngchung một chìa khóa Do đó, khóa bí mật cần được thực hiện một cách ngẫunhiên từ tập hợp các phím có thể để kẻ thù khó tìm hoặc đoán được
Tấn công dữ liệu ngẫu nhiên dựa trên việc tìm tần suất xuất hiện ký
tự hoặc những cụm từ có xu hướng xuất hiện nhiều Ví dụ, trong tiếngAnh, ký tự e là được xuất hiện nhiều nhất trong các văn bản Dùng phươngpháp thay thế người ta sẽ thay thế và đoán ra các ký tự còn lại Sau đó chúng
ta có thể lặp lại quá trình này sử dụng một số từ phổ biến nhất và chữ cái và
có khả năng để thấy rằng - ngay cả đối với các tin nhắn ngắn đáng ngạc nhiên
- chúng ta có thể nhanh chóng phá vỡ các mã và tìm ra nội dung chính xáccủa tin nhắn
Trang 29Hình 1.10Phương pháp Entropy Attack
1.2.3.2 Tấn công Vét cạn (Brute-force)
Đối với bất cứ phương pháp mã hóa nào, kiểu tấn công cơ bản và đơngiản nhất là tấn công bằng bạo lực: thử lần lượt tất cả các khóa có thể cho đếnkhi tìm ra khóa đúng Độ dài của khóa sẽ xác định số lượng phép thử tối đacần thực hiện và do đó thể hiện tính khả thi của phương pháp
1.2.3.3 Tấn công kênh bên (Side-channel cryptanalysis)
Cuộc tấn công kênh bên là cuộc tấn công dựa trên thông tin thu được từviệc thực hiện nguyên tắc vật lý hệ thống mật mã , chứ không phải là bạolực hoặc những điểm yếu trong lý thuyết thuật toán Ví dụ, thông tin thờigian, điện năng tiêu thụ, điện rò rỉ hoặc thậm chí âm thanh có thể cung cấpthêm một nguồn thông tin có thể được khai thác để phá vỡ hệ thống
Tấn công kênh bên không tấn công trực tiếp vào thuật toán mã hóa màthay vào đó, tấn công lên các hệ thống thực hiện thuật toán có sơ hở làm lộ dữ
Trang 30liệu Tháng 4 năm 2005, Daniel J Bernstein công bố một tấn công lên hệthống mã hóa AES trong OpenSL Một máy chủ được thiết kế để đưa ra tối đathông tin về thời gian có thể thu được và cuộc tấn công cần tới 200 triệu bản
rõ lựa chọn Tuy nhiên tấn công kênh bên không thể thực hiện được trênInternet với khoảng cách mạng Một số người cho rằng tấn công không thểthực hiện được trên Internet với khoảng cách vài điểm mạng
1.3 MÃ HÓA HỘP TRẮNG TRÊN NỀN MÃ HÓA KHỐI
1.3.1 Giới thiệu về mã hóa hộp trắng.
Thuật toán mã hóa được thiết kế để bảo vệ dữ liệu hoặc thông tin liênlạc ngay trong môi trường thực hiện thuật toán Các thuật toán mã hóa đốixứng thường sử dụng một khóa bí mật, sau đó việc mã hóa/giải mã dựa trêncác bí mật của khóa đó Do đó, mục tiêu chính của kẻ tấn công thường là làmthế nào để lấy được khóa bí mật đó Trong môi trường hộp đen truyền thống,những kẻ tấn công chỉ có truy cập vào các yếu tố đầu vào và đầu ra của mộtthuật toán mã hóa Vì vậy, môi trường “hộp trắng” thực tế mới được giớithiệu trong đó kẻ tấn công có quyền truy cập đầy đủ đến phần mềm thực hiệnthuật toán mã hóa và hơn nữa có toàn quyền kiểm soát môi trường thực thicủa nó Ví dụ thực tế của một môi trường hộp trắng có thể được tìm thấytrong hệ thống bảo vệ nội dung kỹ thuật số như quản lý quyền kỹ thuật số(Digital Rights Management – DRM) hoặc các hệ thống Truyền hình trả tiền(Pay-TV systems) như một điện thoại thông minh, máy tính bảng hay Set-topbox được cài đặt thuật toán mã hóa
Mật mã hộp trắng nhằm bảo vệ tính bảo mật của khóa bí mật của mộtthuật toán mã hóa trong một môi trường hộp trắng Nó là một kỹ thuật để xâydựng triển khai phần mềm của một thuật toán mã hoá đủ an toàn chống lạimột kẻ tấn công hộp trắng Việc thiết kế triển khai thuật toán mã hóa hộp
Trang 31những người khởi xướng đề xuất việc thực hiện mã hóa hộp trắng đầu tiêncủa AES[5], một trong những thuật toán mã hóa khối nổi bật nhất tại thờiđiểm này Tuy nhiên, hai năm sau đó, Billet, Gilbert và Ech-Chatbi trình bàythành công việc tấn công hộp trắngvào hệ mã AES, tiếp theo đó thành côngcủa là Bringer, Chabanne và Dottax năm 2006, Xiao và Lai trong năm 2009
và Karroumi trong năm 2010[4]
1.3.2 Các khái niệm cơ bản
1.3.2.1 Mô hình hộp đen truyền thống
Mô hình hộp đen là mô hình mà thuật toán mã hóa và khóa được giấukín hoặc được “bọc” kín, kẻ thù không thể tiếp cận được, để thâm nhập vào
mô hình này kẻ thù chỉ có thể thu thập thông tin thông qua đầu vào hoặc đầu
ra của hệ thống
Hình 1.11Mô hình hộp đen truyền thống
Ví dụ: Hộp đen ở đây được hiểu là ta không biết hệ thống P hoạt độngthế nào, chỉ biết rằng cho bất kỳ đầu vào là x thì ta biết kết quả đầu rà là P(x)tương ứng của hệ thống P, nhưng không biết được hệ thống P làm thế nào đểcho ra kết quả P(x) Ví dụ như smart card, Set-top box
1.3.2.2 Mô hình hộp trắng
Mô hình hộp trắng là mô hình mà kẻ thù biết được thuật toán mã hóa và
có mọi quyền kiểm soát trên môi trường mà thuật toán thực hiện Khóa tuyđược giấu kín, nhưng do kẻ thù quyền kiểm soát trên môi trường thuật toán
Trang 32thực hiện nên kẻ thủ có thể sử dụng quyền kiểm tra bộ nhớ, gọi ngắt CPU, gỡlỗi, đảo mã để tìm ra khóa một cách dễ dàng.
Hình 1.12Kẻ thù công tấn công trong mô hìnhhộp trắng
1.3.2.3 Mật mã hộp trắng
Mật mã hộp trắng là một kỹ thuật nhằm mục đích chuyển một thuậttoán mã hóa mật mã nguyên thủy vào trong phần mềm biến nó như một chứcnăng của phần mềm thực hiện và hoạt động như một "hộp đen ảo", tức là, một
kẻ có đầy đủ quyền truy cập vào phần mềm cũng như toàn quyền kiểm soátmôi trường thực thi cũng không có khả năng khai thác bổ sung sửa đổi dữ liệu
để đạt được mục tiêu của mình
Hình 1.13Mô hình Mật mã hộp trắng
Hình 1.13 mô tả một cái nhìn tổng quan về khái niệm của mã hóa hộptrắng Trong quá trình thực hiện chìa khóa sẽ được mã hóa cứng vào mã Ởphía bên tay trái là mô tả của một thuật toán mã hóa mật mã và chìa khóa
Trang 331.3.3 Đề xuất sử dụng mật mã hộp trắng
Với mong muốn giải quyết các vấn đề thuật toán mã hóa trong một
mô hình hộp trắng Các nghiên cứu về mật mã trong một mô hình hộp trắngnhư vậy được gọi là mật mã hộp trắng, và triển khai mật mã nguyên thủy chomột mô hình như vậy được gọi là triển khai hộp trắng
Do đótác giả tập trung vào việc triển khai mô hình hộp trắng của mật
mã khối, vì nó phổ và nhiều lợi ích thiết thực Hơn nữa, mật mã hộp trăngđược hình thành trên mã khối
Vấn đề đặt ra là: Có thể thực hiện mật mã nguyên thủy một cách "antoàn" ngay trên một môi trường không an toàn hay không ? nếu “an toàn” thìcác kỹ thuật nào sử dụng để xây thực hiện? Điều gì sẽ tác động lên trên thiết
kế của mật mã khối và việc triển khai các mật mã nguyên thủy trong các ứngdụng? làm thế nào để sử dụng các kỹ thuật xây dựng triển khai thực hiện?Íchlợi của những việc làm trên?Nếu có thì hệ mã đó nên sử dụng ở đâu?
Để thực hiện được điều đó tác giả cần giải quyết những vấn đề sau: Thứ nhất, thông tin khóa bí mật cần phải được phân tán trong suốt quátrình thực hiện, để ngăn chặn truy nhập tầm thường thông qua phân tích tĩnh
Thứ hai, các hoạt động mật mã phải được ngẫu nhiên hóa, để ngăn chặncác cuộc tấn công giả mạo và mục tiêu của việc thực hiện mã hóa
Trong quá trình thực hiện các yêu cầu trên tác giả vẫn giữ lại các điềukiện đầu vào-đầu ra của thuật toán mã hóa khối Do đó, hộp trắng mật mã sẽchủ yếu là giải quyết các chiến lược làm thế nào để biên dịch một thuật toán
mã hóa khối một cách an toàn
CHƯƠNG 2 MÃ HÓA RIJNDAEL VÀ MÃ HOÁ HỘP
TRẮNG AES
Trang 34Trong chương này, tập trung vào tìm hiểu chi tiết thuật toán mã hóaRijndael, thuật toán mã hóa hộp trắng trên AES, nhận xét những điểm mạnh,điểm yếu của thuật toán, từ đó ứng dụng vào xây dựng mã hóa hộp trắng đểbảo đảm an toàn thông tin số.
2.1 PHƯƠNG PHÁP MÃ HÓA RIJNDAEL
2.1.1 Giới thiệu
Với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi
xử lý hiện nay, phương pháp mã hóa chuẩn Data Encryption Standard – DEStrở nên không an toàn trong bảo mật thông tin Do đó, Viện Tiêu chuẩn vàCông nghệ Hoa Kỳ – NIST đã quyết định chọn một chuẩn mã hóa mới với độ
an toàn cao nhằm phục vụ nhu cầu bảo mật thông tin liên lạc của Chính phủ
nhà mật mã học người Bỉ: V đượcchọn làm chuẩn mã hóa nâng cao từ ngày 02 tháng 10 năm 2000)
Phương pháp mã hóa Rijndael là phương pháp mã hóa theo khối (Blockcipher) có kích thước khối và mã khóa thay đổi linh hoạt với các giá trị 128,
192 hay 256 bit Phương pháp này thích hợp ứng dụng trên nhiều hệ thốngkhác nhau từ các thẻ thông minh cho đến các máy tính cá nhân
2.1.2 Quy trình mã hóa
Phương pháp mã hóa Rijndael bao gồm nhiều bước biến đổi đượcthực hiện tuần tự, kết quả đầu ra của bước biến đổi trước là đầu vào củabước biến đổi sau Kết quả trung gian giữa các bước biến đổi được gọi làtrạng thái (state)
Một trạng thái có thể được biểu diễn dưới dạng một ma trận gồm 4dòng và Nb cột với Nb bằng với độ dài của khối chia cho 32
Trang 35Trong một số tình huống, ma trận biểu diễn một trạng thái hay mã khóa có thểđược khảo sát như mảng một chiều chứa các phần tử có độ dài 4 byte, mỗiphẩn tử tương ứng với một cột của ma trận.
Số lượng chu kỳ, ký hiệu là Nr, phụ thuộc vào giá trị của Nb và Nktheo công thức Nr = max{Nb, Nk} + 6
Hình 2.1 Biểu diễn dạng ma trận trạng thái (Nb = 6) và mã khóa (Nk = 4)
Quy trình mã hóa Rijndael sử dụng bốn phép toán biến đổi chính
Trang 36Hình 2.2Quy trình mã hóa Rijndael
Trước tiên, toàn bộ dữ liệu đầu vào được chép vào mảng trạng thái hiệnhành Sau khi thực hiện thao tác cộng mã khóa đầu tiên, mảng trạng thái sẽđược trải qua Nr = 10, 12 hay 14 chu kỳ biến đổi (tùy thuộc vào độ dài của
mã khóa chính cũng như độ dài của khối được xử lý) Nr – 1 chu kỳ đầu tiên
là các chu kỳ biến đổi bình thường và hoàn toàn tương tự nhau, riêng chu kỳbiến đổi cuối cùng có sự khác biệt với Nr – 1 chu kỳ trước đó Cuối cùng, nộidung của mảng trạng thái sẽ được chép lại vào mảng chứa dữ liệu đầu ra
Quy trình mã hóa Rijndael được tóm tắt như sau
1 Thực hiện thao tác AddRoundKey đầu tiên trước khi thực hiệncác chu kỳ mã hóa
2 Nr – 1 chu kỳ mã hóa bình thường mỗi chu kỳ bao gồm bốn bước
Trang 373 Thực hiện chu kỳ mã hóa cuối cùng trong chu kỳ này thao tácMixColumns được bỏ qua.
Thuật toán dưới đây, mảng Key[] chứa bảng mã khóa mở rộng; mảngin[] và out[] lần lượt chứa dữ liệu vào và kết quả ra của thuật toán mã hóa
Cipher (byte in[4 * Nb], byte out[4 * Nb], word Key[Nb * (Nr + 1)])
AddRoundKey(state, Key[round]) end for SubBytes(state)
ShiftRows(state)
AddRoundKey(state, Key[Nr])
end
Trang 38Hình 2.3Thuật toán Mã hóa và giải mã Rijndael
2.1.2.1 Phép biến đổi SubBytes
Thao tác biến đổi SubBytes là phép thay thế các byte phi tuyến và tácđộng một cách độc lập lên từng byte trong trạng thái hiện hành Bảng thay thế(S-box) có tính khả nghịch và quá trình thay thế 1 byte x dựa vào S-box baogồm 2 bước:
Trang 402 Áp dụng phép biển đổi affine (trên GF( ) Đối với (giả sử
=
Với là bit thứ I của {63} hay {01100011}
Hình 2.4Thao tác SubBytes tác động trên từng byte của trạng thái