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ục tiê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ộ
Trang 1NGUYỄ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
Trang 2NGUYỄ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ình bà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ọc viê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 - Đại học Thái Nguyên dưới sự hướng dẫn của thầy PGS
TS Trịnh Nhật Tiế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ủa mì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 cho họ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ực hiệ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ững khó 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ến thức khoa học, thầy giáo đã giúp học viên nhận ra những bài học về phong cá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
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
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 : Federal Information Processing Standards
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 10MỞ ĐẦU
1 Lý do chọn đề tài
Không thể phủ nhận lợi ích của sự phát triển của Internet, nó là động lực thúc đẩy phát triển của xã hội Giúp chúng ta trao đổi, nắm bắt thông tin một các nhanh chóng Nhiều hoạt động của chúng ta như đọc báo, mua bán hay thậm chí giao khoản có thể thông qua Internet Những hoạt động truyền tin này đều tiềm ẩn nguy cơ về bảo mật thông tin Sự đảm bảo an toàn thông tin ảnh hưởng đến sự phát triển xã hội, như nhiều bản nhạc, bộ phim có thể được chuyển đổi dưới dạng số và chia sẻ một cách nhanh chóng mà không phải trả một loại phí nào cho tác giả Vâng, đây chính là vấn đề bản quyền cũng vấn đề này rất nhiều văn bản đã ra đời nhằm bảo vệ quyền sở hữu trí tuệ
và chất xám của tác giả một cách mạnh mẽ Mới đây nhất nhà nước đã ban hà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 doanh nghiệ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ông tin số (tác phẩm, cuộc biểu diễn, bản ghi âm, ghi hình, chương trình phát só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ình thức nào mà không được phép của chủ thể quyềnthì sẽ phải chịu trách nhiệm bồ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ật khá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ạm bả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ại nhiều rào cản, vướng mắc
Trang 11Các nội dung số của người dùng đưa lên theo phương thức tự nguyện chia 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 đưa lê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ủa website, 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ố vi phạ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ốc gia 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ó tham gia 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 tay như 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ười khác không thể biết chính xác được nội dung cho dù họ vẫn thu được các tín hiệu đó
Xuất phát từ ý tưởng đó, đồng thời dưới sự hướng dẫn và gợi ý của thầy giáo PGS TS Trịnh Nhật Tiến, học viên đã chọn đề tài cho luận tốt nghiệp Cao 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
Đề tài “Tìm hiểu mật mã hộp trắng (Whitebox Cryptography) và ứng
Trang 12toán đặc trưng mã hóa Advanced Encryption Standard- AES, mã hóa hộp trắng trên nền mã hóa AES từ đó xây dựng chương trình mã hóa hộp trắng trê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 trung nghiên cứu đề xuất xây dựng và phát triển hệ thống cho mã hóa hộp trắng nhằ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ục tiê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óa hộ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 nghiên cứu trong nước và thế giới
Trang 13- Kế thừa tối đa những kết quả nghiên cứu đã có ở trong nước và trên thế 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ành xâ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ông tin, 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à minh họ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ển cô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óa truyề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ẩm phầm mềm có tính năng tương đương như Set-top box làm giảm chi phí sản xuất thiết bị, dễ dàng sửa chữa nâng cấp khi cần thiết
Trang 14CHƯƠ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.1 Hệ thống
Hệ thống là tập hợp các phần tử có quan hệ hữu cơ với nhau, tác động chi phối lẫn nhau theo các quy luật nhất định để trở thành một chỉnh thể Từ
đó xuất hiện thuộc tính mới gọi là tính trội của hệ thống mà từng phần tử
riêng lẻ không có hoặc có không đáng kể
1.1.1.2 Hệ thống thông tin
Hệ thống thông tin là một hệ thống bao gồm các yếu tố có quan hệ với nhau cùng làm nhiệm vụ thu thập, xử lý, lưu trữ và phân phối thông tin và dữ liệu và cung cấp một cơ chế phản hồi để đạt được một mục tiêu định trước
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ằng tí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
Hình 1.1 Quá trình truyền tin trong hệ thống thông tin số
Trang 151.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, nghe lé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ệch nộ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.1.1 Khái niệm hệ mã hóa
a) Khái niệm
Trang 161.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ề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ẻ 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ần truyề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 sự
và thông tin liên lạc ngoại giao Để làm được điều này, chính phủ các nước phát triển toán mã hóa và hoàn toàn bí mật việc thiết kế này Trong thực tế, những
Trang 17Và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ụng thê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 bit cùng với khóa để trả về khối 128 bit bản rõ ban đầu.Để mã hóa những văn bản có độ dài vượt quá độ dài của khối, người ta sử dụng thuật toán theo mộ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ên từ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ột phươ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 toán Data Encryption Standard- DES do công ty IBM phát triển và được ban hành 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 18vi 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 nghi ngờ 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ành khối thông tin của bản mã có độ dài không thay đổi Trong trường hợp của DES, độ 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 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng cho việc kiểm tra Vì thế, độ dài thự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ột phương pháp nào đó
Trang 19Hì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 chu trì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ì IP trướ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 tin và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 20Cấ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án trở 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ửa củ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ì 2 nử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 21Thay 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 theo một chuyển đổi phi tuyến được thực hiện bằng một bảng tra Khối S-box đảm bả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ộc từ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 2 gồm 24 bit từ mỗi phần
Trang 22Hì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ác khóa con sử dụng các bit khác nhau của khóa chính; mỗi bit được sử dụng trung 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ỗi chu trình, khóa sẽ được dịch phải thay vì dịch trái như khi mã hóa
Thuật toán AES
Trang 23Mặ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àm việ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óa con sử dụng trong các chu trình được tạo ra bởi quá trình tạo khóa con Rijndael 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án trong 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 4 cộ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ực hiệ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
định bởi phương trình S (x) = M (1 / x) + b trênGalois FieldsGF( với M là đượ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 242 ShiftRows - Hàm sử dụng , xử các trạng thá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ác nhau, 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 pha trộ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
Galois Fields GF(
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ết hợ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 25Hì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 nhau một chìa khóa bí mật Trong trường hợp mã hóa đối xứng, hai bên sử dụng chung một chìa khóa Do đó, khóa bí mật cần được thực hiện một cách ngẫu nhiê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ếng Anh, ký tự e là được xuất hiện nhiều nhất trong các văn bản Dùng phương phá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ác của tin nhắn
Trang 26Hì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à đơn giả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 đến khi tìm ra khóa đúng Độ dài của khóa sẽ xác định số lượng phép thử tối đa cần thực hiện và do đó thể hiện tính khả thi của phương pháp
Ví dụ về hệ mã hóa DES
Hệ thống phá mã DES của của tổ chứcElectronic Frontier Foundation (EFF),được xây dựng với ngân sách 250.000 USD Hệ thống bao gồm 1536 bộ vi xử lý thiết kế riêng và có khả năng duyệt hết mọi khóa DES trong vòng vài ngày[6]
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ạo lực hoặc những điểm yếu trong lý thuyết thuật toán Ví dụ, thông tin thời gian, điện năng tiêu thụ, điện rò rỉ hoặc thậm chí âm thanh có thể cung cấp thê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à
Trang 27liệ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 đa thô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ên Internet 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ên lạc ngay trong môi trường thực hiện thuật toán Các thuật toán mã hóa đối xứ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ên cá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àm thế 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ột thuật toán mã hóa Vì vậy, môi trường “hộp trắng” thực tế mới được giới thiệu trong đó kẻ tấn công có quyền truy cập đầy đủ đến phần mềm thực hiện thuậ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 thi củ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ấy trong 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-top box đượ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ột thuậ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ây dựng triển khai phần mềm của một thuật toán mã hoá đủ an toàn chống lại mộ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 28những người khởi xướng đề xuất việc thực hiện mã hóa hộp trắng đầu tiên củ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ày thành công việc tấn công hộp trắngvào hệ mã AES, tiếp theo đó thành công củ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ấu kí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 động thế 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 29thự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ật toá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ức nă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át mô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ộp trắ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 301.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ắng như vậy được gọi là mật mã hộp trắng, và triển khai mật mã nguyên thủy cho mộ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 "an toà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 ứng dụ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?Ích lợ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ặn cá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ều kiệ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 31Trong chương này, tập trung vào tìm hiểu chi tiết thuật toán mã hóa Rijndael, 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 – DES trở 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ủ Hoa Kỳ cũng như trong các ứng dụng dân sự Chuẩ ữ liệu cao cấ
chọ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 (Block cipher) 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ống khá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 được thự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ủa bướ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 4 dòng và Nb cột với Nb bằng với độ dài của khối chia cho 32
Trang 32Trong 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ỗi phẩ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à Nk theo 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 33Hì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ện hà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ội dung 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ện cá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 343 Thực hiện chu kỳ mã hóa cuối cùng trong chu kỳ này thao tác MixColumns được bỏ qua
Thuật toán dưới đây, mảng Key[] chứa bảng mã khóa mở rộng; mảng in[] 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)])
SubBytes(state)
ShiftRows(state)
AddRoundKey(state, Key[Nr])
end
Trang 35Hì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 bao gồm 2 bước:
1 Xác định phần tử nghịch đảo
Trang 362 Áp dụng phép biển đổi affine (trên GF( ) Đối với (giả sử
=
Hay
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
Trang 37Hình 2.5 Bảng thay thế S-box qua phép biến đổi SubBytes
Ví dụ nếu giá trị {x,y} cần thay thế là {53} thì giá trị thay thế box({xy}) được xác định bằng cách lấy giá trị tại dòng 5 cột 3 trong hình 2.5 Như vậy S-box({xy}) = {ED}
S-Phép biến đổi SubBytes được thể hiện dưới dạng mã giả
SubBytes (byte state[4,Nb]) Begin
For r = 0 to 3 For c = 0 to Nb – 1 State[r,c] = Sbox[state[r,c]]
End for End for
End 2.1.2.2 Phép biến đổi ShiftRows
Hình 2.6Thao tác ShiftRows tác động trên từng dòng của trạng thái
Trong thao tác biến đổi ShiftRows, mỗi dòng của trạng thái hiện hành
Trang 38Byte tại dòng r cột c sẽ đƣợc dịch chuyển đến cột (c – shift(r,Nb))
Byte t[Nb]
For r = 1 to 3 For c = 0 to Nb - 1 t[c] = state[r, c + h[r,Nb]) mod Nb End for
End for For c = 0 to Nb - 1 state[r, c] = t[c]
End for End
Trang 392.1.2.3 Phép biến đổi MixColumns
Trong thao tác biến đổi MixColumns, mỗi cột của trạng thái hiện hành được biểu diễn dưới dạng đa thức s(x) có các hệ số trên
Thực hiện phép nhân
Với
Thao tác này được thể hiện ở dạng ma trận như sau
=
Trang 40Hình 2.8Các thao tác MixColumns tác động lên mỗi cột của trạng thái