TOM TAT KHÓA LUẬNKhóa luận này nghiên cứu về các vấn đề bảo mật liên quan đến việc thực thi cácthuật toán mật mã trong một môi trường không đáng tin cậy, nhưng chủ yếu tậptrung vào phươn
Trang 1ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA MẠNG MÁY TÍNH VÀ TRUYÈN THÔNG
DO ĐÔNG CHIEN - 19520025
KHOA LUAN TOT NGHIEPNGHIEN CUU MAT MA HOP TRANG DE
TANG CUONG BAO MAT DU LIEU TREN
UNG DUNG ANDROID
A study and implementation of Whitebox Cryptography
for enhancing data privacy storage
in Android applications
KY SU NGANH AN TOAN THONG TIN
GIANG VIEN HUONG DAN
TS NGUYEN TAN CAM
TP HO CHi MINH, 2023
Trang 2LỜI CẢM ƠN
Với sự hướng dẫn và hỗ trợ tận tình của Ban giám hiệu, quý thầy cô trường Đại học
Công nghệ thông tin nói chung, Khoa Mạng máy tính nói riêng, em đã có được những kiến thức cùng kỹ năng quý báu đề hoàn thành khóa luận này một cách hiệu
quả và thành công.
Em xin gửi lời cảm ơn chân thành đến TS Nguyễn Tan Cầm - giảng viên hướng dẫn đã hỗ trợ và đồng hành cùng em trong quá trình thực hiện khóa luận Em đã học hỏi được nhiều kiến thức và kinh nghiệm quý báu từ thầy và nó đã giúp em đạt
được kết quả như mong đợi.
Ngoài ra em xin gửi lời cảm ơn đến anh JN và những kiến thức anh chia sẻ.
Em xin gửi lời cảm ơn sâu sắc đến ba mẹ và gia đình dù không trực tiếp nhưng vẫn luôn tin tưởng dõi theo và tao điều kiện cho em.
Em xin cảm ơn chị Đỗ Hà Anh Thư đã luôn động viên em trong thời gian này.
Khóa luận của em tất nhiên sẽ không thể tránh được những hạn chế, thiếu sót Em rất mong nhận được những nhận xét và góp ý từ quý thầy cô và các bạn để giúp
khóa luận hoàn thiện hơn.
Trang 3LỜI CẢM ƠN
MỤC LỤC -ẶSẶ 2.2 SHereiey ii DANH MỤC HÌNH
DANH MUC BANG c7 x
DANH MUC TU VIET TAT
TOM TAT KHOA LUẬN 2¿©22++22EE++++2EEEE+tEEEEEE2E221222221122212eccrrk 1
Chương 1 TONG QUAN
LoL, Dat Van 7 na ẽ.ẽ “-{1A Ỏ 2
1.2 Mục tiêu 65557722772 nggrfTO che 3
1.3 côn ./.đŒ£ </ổ `Ắố 4
1.4 Cấu trúc khóa luận - -:::-c+ccc++++t +22 cttrrrrrrrriiriiiiiiie 4 Chương 2 CƠ SỞ LY THUYT - -22:©22222222ES+++22EEEE+vEEESEvetEESversrrvrrrrrrs 5
2.1 An toàn thông tin, mật mã va các khái niệm - ¿+ + +++++c<c+++++ 5
2.1.1 Bảo mật máy tinh - +52 + *EEkEekekEkekrrrrkekekrkrkrrrrrerree 5
2.1.2 Mật mã hỌC ¿S1 TT HH TH HH HH HH HH Hiên 7
2.1.3 Phương thức mã hóa - St *Ek*EvEEEEEekEkekrkrrrrkrkrkrkrkrrrrrree 7
2.1.4 Tính lộn xộn và khuếch tán cccccccccctttttrtttrttiirirrrie 8
2.1.5 Hệ mật mã an tOầN - - + 22+ *+t 3E EEE£EEeEErEevetrrxetrrsrrrrerrrrrrsrrrrre 8
2.1.5.1 An toàn tuyệt đối -:s+-22222cc22 2 2221122211111 re 9
2.1.5.2 An toàn tính tOán - +55 S* 2+ 2t 22 2121121111111 re 9
2.1.6 Nguyên lý KerckhofffS - - + 52c tre 1e 9 2.1.7 Các tiêu chuẩn -:ccccccccccccccvvrttrttrrtrrrrrrrrtrrrrrrrrrrrrrrrrrrrrrrrie 10 2.2 Cơ sở toán học và lý thuyết mật mã : +++22vvvzcrrrrrrrxes 11
Trang 42.2.1 Đại số và lý thuyết sỐ -2222222+tc2EEEEEErrrrrtrrEkkrrrrrrrrrrrrrrrrrrrer 1 2.2.1.1 Nhóm, vành, trường
2.2.1.2 Trường hữu hạn và tính toán trên trường hữu hạn 3
2.2.2 Các hệ mật mã c522t+tttEEvvrrrrrtrttrrtrrrrrrrrrtrrrrrrrrrrrirrrrrrie 7 2.2.2.1 Mật mã đối xứng và bat đối xứng -:¿-cccccce+ 7 2.2.2.2 Mật mã dòng và mật mã KDG ies ccceecceeccseeccsssccsssecssvecssecssssessseessseesssees 8
2.2.3 Chuẩn mã hóa nâng cao (AES) :-: cớ 8
2.2.3.1 Tính toán trên trường hữu hạn - ¿5 5++ccc++ecrxererxer 8
2.2.3.2 Câu trúc Chuan mã hóa nâng cao (AES) :- 2+ 9
2.2.3.3 Mở rộng khóa trong AES (Key expansion) -: 23
2.2.3.4 Các phép biến đổi trong AES (AES Transformation) 25
2.2.4 Chế độ thực thi mã hóa khối -c¿¿£+22vvvvvvzsrrrerveerrrrrrr 28
2.2.4.1 Chế độ bang tra điện tử (ECB — Eletronic code book) 29
2.2.4.2 Chế độ chuỗi khối (CBC — Cipher block chaining) - 29
2.3 Các mô hình thám mã (CryptanalyS1S) -¿+55<+++++c+s+++s+xexsree 30
2.3.1 Mô hình hộp đen -.::¿2222©+2vrt22EEEEEvrrrt.EEEErrrrrrrrrrrrrrre 31
2.3.2 Mô hình hộp xám -.2¿-©2©2++2222Y+t222EE22222111221111 11 tre 32 2.3.3 Mô hình hộp trắng : 222+++222EEv+++rtztttEExvrrrrrrrrrrrrrrrrrrrr 32
2.4 Mật mã hộp trắng AES (Whitebox cryptography AES) + 34
2.4.1 Giới thiệu mật mã hộp trắng và Bản quyền kỹ thuật 86 34
2.4.2 Triển khai mật mã hộp trắng AES — 128 -¿- ¿s2 36
2.4.3 Phân tán khóa trong các bảng tra cứu (Lookup tables) - 38
QABD BAN on 5S 39
Trang 52.4.3.2 Bảng Ty srssessssssssesssssssesssnssessssnsseessnnsseestnnsseessnnseeesinnsseesuansseee 40
2.4.3.3 Bảng XOR 5c 2k 2 221 211221121122112111211 1211111 eeree 42
2.4.3.4 Bang hợp nhất 52-522 E2 12E12E1E71711211211211271 1111111 43
2.4.4 Bảo vệ các bảng ta CỨU s9 ng HH Hưng 44
2.4.4.1 Song ánh nhập — xuất ¿- 2 2+ ©E+SE£EE£EEEEEEEEEEEEEEErErrkersrrk 45
2.4.4.2 Song ánh trỘN - - 11H HH HH ng re 46
2.4.4.3 Song ánh ngoại nhập — xuất -: 2¿©+¿©+++cx+z+erxezrxrrreee 482.4.5 Tổng kết triển khai WBC AES — 128 5-55c2cccccrerxerrerrrrree 492.5 Lý thuyết che dấu và các kỹ thuật - - 2 2 2+E+xeExeEEeEzErkerkerxee 52
Chương 3 THIET KE HE THONG MAT MÃ HỘP TRANG
TREN UNG DUNG ANDROID c.csscssesssssessessessessesssssseesecsecsecssseseess 54
3.1 Phân tích yêu cầu và thiết kế hệ thong - 2-2 +¿+2+2+z+£z+£srseẻ 54
3.2 Xây dựng và triển khai hệ thống -¿- ¿+2 +z+x+2x++rx++rxerxesrxeee 54
3.2.1 Kiến trúc hệ thống -¿- 2 ¿E2 SE SE2EE2EEEEEEEEEEEEEEEEEEEEEEEEEEEEEErkerkrree 553.2.2 Nền tảng đám mây Google (Google Cloud Platform) - 56
3.2.5.1 Cum máy chủ nghiép vụ CC Ï Ă Sky 61
3.2.5.2 Cụm máy chủ dữ liệu C2 -¿- + +52 +4 Hit 62
Trang 63.2.6 Module lưu trữ (Ï)) - - - 111111211 11119211 1111111111811 1188111184111 xke 63
3.2.6.1 Cơ sở dữ liệu quan hệ MySQL (D1) ¿-2¿©5z+csz©zzecse2 63
3.2.6.2 Lưu trữ dữ liệu lâu dài (D2) -¿- 2 5¿2c++2x++zx+zxerxesrxesred 64
3.2.7 Phát triển module Mật mã hộp trắng -. 2- ¿+ 5++cxzx++cse2 653.2.8 Luồng khởi tạO 2 ++2++EkEEkEE21121122127171211211211 21111111 69
3.3 Đánh giá và kiêm thử ứng dung 2-2 5£ ©++£E+2E£E2EE+EEerkerxerrerreee 75
3.3.1 Kiểm thử tính đúng đắn của module mật mã hộp trang - 753.3.2 Kiểm thử hiệu suất của thư viện mật mã hộp trắng ¬— 77
3.3.3 Kiểm thử tinh tương thich cc.cecceccssessessesssssssessessessesssssessessessesseseeaes 71
4.2.1 Nâng cao tính bảo mậT - - - 5 1S HH ng re 84
Trang 74.2.2 Tăng hiệu suất - ¿52 SkềEx9EEEEE2E11E2181121121121111111 1.1111 cte.
4.2.3 Mở rộng tinh năng của ứng dụng - -s- + tssssreeeeerrsrrrsres
TÀI LIEU THAM KHẢO -2- 2-5 £2S22EE2EE9EEEEEEEEEEE12112112712117171 21.21 re
PHU LỤC Ăn HH nghiệt
Trang 8DANH MỤC HÌNH
Hình 2.I—1 Yêu cầu bao mật Mạng và Máy Vi tính -.¿ -¿-¿©cx++s++cx+cxe+ 6
Hình 2.2—1 Các trường toán hoc - ¿2 2 11211121131 1111111111111 exre 13
Hình 2.2-2 Phép toán trên trường GF(2) 6 + 2+ S+k**v*kEEeEeeeesrskrskrrre 14
Hình 2.2—3 Song ánh - - - - c1 11H 1H ng TH HH nếp 15
Hình 2.2—4 Đơn ánh - 5 5 +19 911 11930 190g HT nu HH HH gu ngà 15
Hình 2.2—5 Toàn ánhh - <6 + +3 k1 111911991 901 91100 HH TH kg 15
Hình 2.2—6 Tổng quát - + £+S2+SE9EE£EEEEEE2E12E1971711211211211211711121 2111 ty 15
Hình 2.2—7 Qua trình mã hóa của AES [12] oo eeccessceescceeneeeeeeeseeeseeeeseeeeseeees 21
Hình 2.2-8 Kiến trúc mã hóa va giải mã của AES [12] - 2-2 sz=sezs+ 22
Hình 2.2—9 Giải thuật mở rộng khóa [12] - - 5 5 55 *S+<£+vE+eEsesesersereerers 23
Hình 2.2—10 Sơ đồ mở rộng khóa [12] - ¿2 2 + +£E£+E£+££+E++£xezxzxzxezrs 24
Hình 2.3—1 Các mô hình thám mã - G2121 1E +3 E St KE# SH kg it 31
Hình 2.3—2 So sánh các mô hình thấm mã - + + + +++++E++seE+sserseeersree 34
Hình 2.4—1 Minh họa biến đổi từ AES - 128 sang WBC AES - 128 37
Trang 9Hình 2.4-2 Mã giả giải thuật AES [16] cccccsssssssssssscsssessssesssssssseessesesessssesseveeees 38
Hình 2.4-3 Mã giả đề xuất thay đồi thứ tự giải thuật AES [19] - 39Hình 2.4-4 Chuyển đổi thứ tự các phép biến đổi trong vòng mã hóa 40Hình 2.4-5 Chuyên đổi thành Tbox - 2-52 2 E+EE+EE£EEEEEE2EEEEEEEEerErrkerrrerex 41Hình 2.4—6 Chuyên đổi thành bảng hợp nhất và bảng XOR . - 43Hình 2.4-7 Luéng mã hóa vòng đầu tiên đối với một cột của ma trận trạng thái 44
Hình 2.4-8 Bang tra loại I, 8 to 126 -.- G1 191g Hệ, 49
Hình 2.4-9 Bang tra loại II, 8 to 32 2 31111131 13 11 1 x1 rrrrret 49
Hình 2.4—10 Bang tra loại [II và TV - - G1119 119v ng nệt 49
Hình 2.4-11 Luéng mã hóa vòng thứ hai với một cột của ma trận trạng thái [22].51
Hình 3.2—1 Kiến trúc hệ thong - 2 5¿©2+©S£2EE2EE£EEE2EEtEEESEErrEeerkrrrkrree 55
Hình 3.2—2 Bảng điều khiển máy ảo GCE 2 ¿2 E+S£+££+E££Ee£xererrrrered 57
Hình 3.2—3 Quản trị viên giám sát hệ thống - - 2 2 2+ £+x£xezEzxzrxerxeei 59
Hình 3.2—4 Công nghệ NBInX - - c3 2221321112113 111111111111 errkre 60
Hình 3.2—5 Công nghệ Spring boot trên docker 5 «+ +s «+ +sx++se++ee+see+sexs 61
Hình 3.2—6 Bảng điều khiển hệ thống SIEM của Wazuh -2 5:-: 62Hình 3.2-7 Bảng điều khiển cum Kubernetes - 2-5252 £+£££s+£xzxzxzzxz 63
Hình 3.2-8 Kiến trúc cơ sở dữ liệu -¿ +c2++eertrtrrkkerrrrrrrirrrrrrrk 63
Hình 3.2—9 Logs/events thu thập được - <1 + ESEsEsrkekkserrsrrke 64
Hình 3.2—10 Công nghệ GCS - - 5 cà SH HH ng HH TH ng kh 64
Hình 3.2—1 1 Các tham số, hằng SỐ khởi tạO tt tt tk EkEErkerkekerves 65Hình 3.2—12 Quá trình sinh ra mật mã hộp trắng 2-2 2 2 s+£xzxzzzzzxz 66
Hình 3.2—13 Hàm sinh IV ngẫu nhiên -.¿- ¿25252252 2Ev£xeEervzxezxerxerve 66
Hình 3.2—14 Ham padding theo chuẩn PKCS5 - - 2 2 2 s+£E+£Eerxzezzrs 67Hình 3.2—15 Hàm unpadding theo chuân PKCS5 22-c5¿©2++cs+2c5z+: 67
Hình 3.2-16 Hàm mã hóa theo chế độ CBC o.ccccccssescssecsssecessecersesersecerseceesecarseceteees 68
Hình 3.2—17 Hàm gọi của thư VIỆN - G2 S111 3 1S 9H ng ng gệt 68
Hình 3.2—1§ Luồng khởi tạO ¿2-2 SSE2EE2EE2EEEEEEEEEEEEEEEEEE21121 11c 69
Hình 3.2—19 Mã gia hàm getDeviceWc() Ăn HH HH tre 70
Trang 10Hình 3.2-20 Luồng đăng ký -¿- ¿+ ©sSE£EE2E2EEEEEE1211211211 11112111 11e 11T 1e 71
Hình 3.2-21 Giao diện đăng ký .¿- 2c ©22+2x22EE2EE221 2112211221212 re 72
Hình 3.2-22 Luồng đăng nhập 2 E222 +E£EE#EEEEEEEEEEEEEEEEEE2EE2121EEcre 73
Hình 3.2—23 Giao diện đăng nhập va trang cá nhân - 55555 +++s++s+ssss 74
Hình 3.3—1 Mã giả hàm kiểm tra tính đúng đẫn .2- 2: 2 5+25++cx++cxze2 75Hình 3.3-2 Dữ liệu kiểm tra tính đúng đắn ham mã hóa 2-5¿ 2522 5s 76
Hình 3.3-3 Thời gian mã hóa 1000 dữ liệu trên LG-V600 -c<<<55 76
Hình 3.3-4 Thời gian mã hóa với kích thước dữ liệu khác nhau trên LG-V600 77
Hình 3.3—5 Thời gian mã hóa với kích thước dữ liệu khác nhau trên RMX3478 77
Hình 3.3-6 Thời gian thực thi giữa các thiết bị khác nhau - 2-52 5s 78
Hình 3.3—7 Request ứng dụng thông thường - + 5< c+£+s+svssererrs 78
Hình 3.3—8 Response ứng dung thông thường - - + +-ssss+sxssreerresrs 78
Hình 3.3-9 Dịch ngược mã nguồn từ file apk không áp dụng mật mã hộp trắng 79Hình 3.3—10 Gỡ lỗi và lay được khóa từ môi trường thực thi thời gian thực 80Hình 3.3—1 1 Giãi mã thông tin người dùng bằng khóa đã khai thác 80Hình 3.3—12 Dịch ngược từ file apk có áp dụng mật mã hộp trắng và làm rối mã 81Hình 3.3—13 Dịch ngược từ file apk có áp dụng mật mã hộp trắng và làm rối mã 82
Trang 11DANH MỤC BANG
Bảng 2.2—1 Tổng quát về ánh xạ -2- 2:22 ©S222++2E22EE22EEEEEE2EEEEEEErkrrrrerkree 15Bang 2.2—2 Các thông số của AES [12] cccscccscscsssssesssssssessessessessssessessesseseeseeseeee 20Bảng 2.2-3 Hằng số vòng của 10 vòng đầu tiên -¿2¿©5++cx+zescsc 24
Bảng 2.4—1 Kích thước triển khai mật mã hộp trắng AES — 128 - 52
Bảng 2.4—2 Kích thước triển khai của loại mật mã hộp trắng AES khác 52
Trang 12DANH MỤC TU VIET TAT
# Ky hiéu Đầy đủ
1 | AES Advanced Encryption Standard
2 |AI Artificial Intelligence
3 | API Application Programming Interface
4 | ATTT An toàn thông tin
5 | DRM Digital Right Managment
6 | FIPS Federal Information Processing Standards
7 |GCP Google Cloud Platform
8 | GF Galois Fields
9 | LUT Look up table
10 | NIST National Institute of Standards and Technology
11 | SDK Software Development Kit
12 | SIEM Security information and event management
13 | WBC Whitebox Cryptography
Trang 13TOM TAT KHÓA LUẬN
Khóa luận này nghiên cứu về các vấn đề bảo mật liên quan đến việc thực thi cácthuật toán mật mã trong một môi trường không đáng tin cậy, nhưng chủ yếu tậptrung vào phương pháp mật mã hộp trang dé biến đổi các thuật toán mật mã sao cho
chúng có thể chống lại các cuộc tấn công như trích xuất khóa và dịch ngược
Đầu tiên, khóa luận đưa ra các khái niệm cơ bản và lý thuyết về an toàn thông tin,
mật mã học, cũng như cung cấp một cơ sở toán học vừa đủ đối với nội dung đề tài.Ngoài tìm hiểu kỹ về lý thuyết toán và các giải thuật mật mã liên quan, khóa luậncòn xem xét các mô hình tấn công hiện đại Sau đó, khóa luận tập trung vào giới
thiệu và mô tả mật mã hộp trắng cũng như cách triển khai
Tiếp theo, dé chứng minh tính hiệu quả của mật mã hộp trăng, khóa luận đề cập tớiviệc phát triển hệ thống ứng dụng cơ bản day đủ luồng Trong đó có một ứng dụngtrên Android áp dụng mật mã hộp trắng với chế độ thực thi CBC vào tính năng lưu
trữ an toàn Khóa luận cũng mô tả từ việc phân tích yêu cầu đến việc triển khai và
kiêm thử hệ thống với một số kịch bản cơ bản
Đặc biệt, kết quả trên là một nỗ lực đóng góp có tính mới của khóa luận và chưa
từng thay công khai thực hiện ở bat kỳ nghiên cứu nào của lĩnh vực này trước đây
Cuối cùng, khóa luận đưa ra kết luận và đề xuất một số cải tiến để phát triển trong
tương lai.
Trang |
Trang 14Chương 1 TONG QUAN
1.1 Dat van dé
Bắt đầu từ cuộc cách mạng kỹ thuật số vào thập niên 1990, việc sao chép và phânphối nội dung kỹ thuật số (trái phép) chưa bao giờ dé dàng như vậy Do đó, nhacung cấp nội dung cần các công nghệ mới dé bảo vệ tài sản kỹ thuật số của họ và
kiểm soát việc truy cập bản quyền Các hệ thống bảo vệ nội dung đấy được biết đến
với tên gọi Quản lý Bản quyền kỹ thuật số (DRM) DRM có thé được tìm thấy trong
nhiều cửa hàng da phương tiện số trực tuyến phô biến (như video, âm nhạc, sách
điện tử, ứng dụng, v.v.) ngày nay Ví dụ, video và sách điện tử mua qua cửa hàng
iTunes và iBooks vẫn sử dụng hệ thống DRM FairPlay của Apple [1] Ngoài Apple,còn có nhiều công ty khác cũng sử dung công nghệ DRM, như Microsoft sử dung
Windows Media DRM cho Windows Media Player [2], đặc biệt là Android [3].
Lý do nói Android đặc biệt vì điện thoại thông minh ngày càng trở nên phô biến
trong cuộc sống của chúng ta Một số thống kê của trang Statista cho thấy rõ điều
đó Năm 2023, Hon 5 ty người đang sử dụng internet mỗi ngày!, trong khi dân số
thé giới mới chỉ hơn 8 ty Ké từ 2014 mỗi năm có hơn | tỷ thiết bị di động được bán
ra’, đến nay đã gần 10 năm rồi và tất nhiên con số chỉ có tăng thêm Lợi nhuận củaứng dụng di động lên đến hơn 475 ti USD chỉ trong năm 2022
Khi thế giới đang chuyên mình sang các thiết bị di động thông minh, rất nhiềuchuyên gia cảnh báo về dang tội phạm cũng chuyển mình sang tội phạm công nghệtheo sự phát triển của số lượng người dùng điện thoại thông minh (smartphones)
Ngày nay, vấn đề ấy không chỉ vẫn tồn tại, mà nó còn tăng lên theo cấp số mũ với
rất nhiều sự tiến hóa của tội phạm công nghệ cao [4]
' Number of internet users worldwide
Trang 15Mặc du đã có nhiều phương pháp mã hóa được sử dụng dé bảo vệ dữ liệu, nhưng
vẫn còn tồn tại những hạn chế nhất định trong việc ngăn chặn các cuộc tấn cônghiện đại Cụ thé, các phương pháp mã hóa truyền thống thường dé bị đánh bại bởicác kỹ thuật tấn công như phân tích động và tĩnh Điều này đặt ra câu hỏi cho bàitoán bảo vệ những sản phẩm kỹ thuật số như DRM nói chung và ứng dụng trên
Android nói riêng khỏi sự phân tích và tan công
Mật mã hộp trang là một trong những lĩnh vực mật mã nghiên cứu mức độ bảo mật
của các thuật toán mã hóa được thực thi trong một môi trường không đáng tin cậy,
một giải pháp cho bài toán trên Nó được thiết kế để đối phó với các kỹ thuật tấncông bang cách giấu diém thông tin về khóa mã hóa Tuy nhiên, hiện nay chưa cónhiều áp dụng mật mã hộp trắng công khai có thé tham khảo đến mức độ sử dụngcủa người dùng cuối Hon thé nữa việc áp dụng mật mã hộp trắng vào ứng dụngAndroid cần được nghiên cứu kỹ lưỡng vì nó đòi hỏi sự hiểu biết sâu rộng về mật
mã học cũng như về cấu trúc hay hoạt động của hệ điều hành Android Bên cạnh đó,
việc đánh giá hiệu quả của mật mã hộp trắng trong bảo vệ đữ liệu ứng dụng
Android cũng là một thách thức tiềm ẩn Điều này đặt ra nhu cầu nghiên cứu dékhám phá tiềm năng của mật mã hộp trắng trong việc tăng cường bảo mật dữ liệu
trên ứng dụng Android.
1.2 Mục tiêu
Qua khóa luận này em muốn tích lũy thêm được kiến thức, kỹ năng về lý thuyết vàứng dụng của mật mã hộp trang cũng như các thí nghiệm kiểm thử ứng dụngAndroid Ngoài ra em xác định hoàn thành khóa luận sẽ phát triển được một ứngdụng Android thực tế sử dụng mật mã hộp trắng dé bảo mật lưu trữ di liệu Đi kèm
là một hệ thống kiến trúc phần mềm đầy đủ luồng và tài liệu báo cáo chỉ tiết Qua
đó chứng minh thành công tính khả thi của mật mã hộp trắng trước và sau khi áp
dụng lên ứng dụng Android.
Các kết quả của nghiên cứu có thê sẽ giúp cho các nhà phát triển ứng dụng Android
có giải pháp mới dé tăng cường bảo mật dit liệu trên ứng dụng của họ, đồng thờicũng đóng góp vào nghiên cứu và phát triển của lĩnh vực bảo mật thông tin trên
Trang 3
Trang 16thiết bị đi động Ngoài ra, khóa luận sẽ đưa ra những đánh giá và so sánh về hiệu
quả cũng như tính khả thi của các phương pháp, giải pháp sw dung mật mã hộp
trang dé bảo vệ dữ liệu trên ứng dụng Android
1.3 Phạm vỉ
Khóa luận tập trung vào việc sử dụng mã hóa hộp trắng để tăng cường lưu trữ dữ
liệu trong ứng dụng Android Nghiên cứu được giới hạn trong việc triển khai vàđánh giá mã hóa hộp trắng AES — 128 trong môi trường ứng dụng Android
Bên cạnh đó khóa luận cũng phân tích và đánh giá một số kịch bản bảo mật liênquan đến lưu trữ dữ liệu trong ứng dụng Android
1.4 Cau trúc khóa luận
Nội dung trình bày trong khóa luận được tóm tắt qua các chương sau đây:
Chương 2 bàn về lý thuyết từ những khái niệm, định nghĩa mà ngắn gọn, đầy đủ, dễ
dàng, nhanh chóng để có thê tiếp cận với mật mã hộp trắng
Chương 3 sẽ trình bày cụ thê về một trường hợp của mật mã hộp trăng vào thực tếvới kịch bản trước và sau khi áp dụng mật mã hộp trắng Bao gồm cả việc đánh giá
và lựa chọn công nghệ triển khai
Cuối cùng, Chương 4 sẽ đưa ra kết luận và một số hướng phát triển mà trong khuôn
khổ khóa luận này đã xác định được nhưng chưa đủ điều kiện thực hiện
Trang 4
Trang 17Chương 2 CƠ SỞ LÝ THUYET
2.1 An toàn thông tin, mật mã và các khái niệm
2.1.1 Bảo mật máy tính
Định nghĩa 1: Bảo mật máy tính: là sự bảo vệ được cung cấp cho một hệ thong
thông tin tự động đề đạt được các mục tiêu liên quan đến bảo vệ tính toàn vẹn, khả
dung và bí mật của tài nguyên hệ thong thông tin (bao gồm phan cứng, phan mém,
firmware’, thông tin/dữ liệu và viễn thông) [5]
Định nghĩa trên giới thiệu 3 mục tiêu cua bảo mật máy tính, thường được gọi là 5ô
ba CIA Ba khái niệm này đại diện cho các mục tiêu bảo mật cơ ban đối với cả dữliệu và các dịch vụ thông tin và tính toán Ví dụ, tiêu chuẩn NIST FIPS 199 (Tiêu
chuẩn phân loại bảo mật cho Thông tin Liên bang và Hệ thống Thông tin) liệt kê
tính bí mật, tính toàn vẹn và tính sẵn sàng là ba mục tiêu bảo mật cho thông tin và
hệ thống thông tin FIPS 199 cung cấp một yêu cầu và định nghĩa về sự mat an ninh
như sau:
- Tinh bí mật (Confidentiality): Bảo vệ các hạn chế được ủy quyền về truy
cập thông tin và tiết lộ thông tin, bao gồm các biện pháp bảo vệ sự riêng tư
cá nhân và thông tin chủ quyền Mất tính bí mật là việc tiết lộ thông tinkhông được ủy quyền
- Tinh toàn ven (Integrity): Phòng chống sự sửa đôi hoặc phá hủy thông tin
trái phép, bao gồm đảm bảo tính không chối bỏ và tính xác thực của thông
tin Mat tính toàn ven là sự sửa đôi hoặc phá hủy thông tin không được ủy
quyên
4 Firmware: là dạng phần mềm cấp thấp tương tác với phần cứng Tuy nhiên không thể dùng thuật ngữ này
đê thay thê thuật ngữ phan mém (software).
Trang 5
Trang 18- Tinh sẵn sàng (Availability): Dam bảo việc truy cập và sử dụng thông tin
đúng thời gian và đáng tin cậy Mất tính sẵn có là sự gián đoạn trong việc
truy cập hoặc sử dụng thông tin hoặc hệ thống thông tin
Mặc dù bộ ba CIA được thiết lập tốt, một số người trong lĩnh vực bảo mật cảm thấy
rằng cần có các khái niệm b6 sung dé đưa ra một bức tranh hoàn chỉnh hơn (Hình
2.1-1).
- Tinh xác thực (Authencity): có khả năng được chứng thực, chấp nhận va
tin tưởng vào khả năng hợp lệ của một quá trình truyền tin, một thông điệp
hoặc người tạo thông điệp Điều này có nghĩa là xác minh được người dùng
khai báo danh tính đúng và mỗi đầu vào hệ thống đều đúng, đều đến từ một
nguồn đáng tin cậy
- Tinh trách nhiệm (Accountibility): hay không thé chối bỏ (non repudition)
tạo ra yêu cầu dé các hành động của một thực thê được theo dõi theo một
cách duy nhất Điều này hỗ trợ phát hiện và ngăn chặn xâm nhập, khắc phục
lỗi, phục hồi sau sự cố, cũng như hành động pháp lý Bởi vì các hệ thong
thực sự an toàn van chưa phải là mục tiêu có thé đạt được, chúng ta phải theo
dõi bảo mật đối với bên chịu trách nhiệm Các hệ thống phải lưu trữ các hoạt
động của chúng dé cho phép pháp chứng kỹ thuật số sau này nếu có vi phạm
bảo mật hoặc hỗ trợ trong các tranh chấp giao dịch
Availability
Hình 2.1-1 Yêu cau bảo mật Mang và Máy vi tinh
Trang 6
Trang 192.1.2 Mật mã học
Khi nói đến Mật mã học, thuật ngữ hay được sử dụng là Cryptography Tuy nhiên
thuật ngữ chính xác và rộng hơn phải là Cryptology [6].
Định nghĩa 2: Mật mã học là một ngành khoa học nghiên cứu nghệ thuật che giấu
thông tin hiệu quả Trong đó sử dụng các nguyên tắc, phương tiện và phương pháp
đê đảm bảo bảo mật máy tính, an toàn thông tin, bao gôm bí mật, toàn vẹn, săn
sàng, xác thực và chống chói bỏ [5]
Mật mã học được chia ra hai nhánh nghiên cứu chính gồm:
Thiết kế mã (Cryptography): thiết kế hệ thống mật mã (Making codes).Hướng này nghiên cứu các thuật toán, phương thức, giao thức dé đảm bảocác tính chất của an toàn thông tin (thường duoi dang văn bản lưu trữ trênmáy tính) Một số sản phâm có thể kê đến là: các hệ mật mã, hàm băm tiêuchuẩn, hệ chữ ký điện tử, cơ chế phân phối/quản lý khóa, các giao thức mật
mã
Thám mã (Cryptanalysis): hay phá mã, tan công mã (Breaking codes) dé
đảm bảo hệ thong mật mã thực sự an toàn Một số sản phẩm có thé kế đến
như: 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 tan công giao thức mật mã hay ham băm
Trang 202.1.4 Tính lộn xộn và khuếch tánTheo Shannon [7], có hai kỹ thuật co bản dé che dấu sự dư thừa thông tin trong bản
rõ, đó là sự lộn x6n hay xáo trộn (confusion) và sự khuếch tán (diffusion) Đây cũng
là yêu cầu cần có của một thuật toán mã hóa mạnh:
- Tinh lộn xộn: là tính chất trong đó mối quan hệ giữa khóa và văn bản mã
hóa được làm mờ Hiện nay, một kỹ thuật phô biến dé đạt được sự lộn x6n làphương pháp thay thế (substitution), được sử dụng trong cả DES và AES
- Tinh khuếch tán: là tính chất trong đó tác động của một ky tự văn ban
thường được truyền đạt sang nhiều ký tự văn bản mã hóa với mục đích che
giấu các đặc tính thống kê của văn ban ban đầu Hiện nay, một kỹ thuật phổ
biến của tính khuếch tán là hoán vị bit, được sử dụng thường xuyên trong
DES Trong khi đó, AES dùng phép biến đổi nâng cao hơn là MixColumns
Trong khuôn khô khóa luận sẽ liên tục nhắc đến 2 tính chất này trong mật mã hộptrăng Vì bản chất mật mã hộp trăng đã kế thừa cả hai từ hệ mật mã AES và còn
được đề xuất thêm những cấu phần bao gồm hai tính chất này
2.1.5 Hệ mật mã an toàn
Một hệ mật mã là bộ 5 (P, C, K, E, D) [8] sao cho:
- P:khéng gian bản rõ là tập hợp hữu hạn các bản rõ có thé có
- _ C: không gian ban mã là tập hữu hạn các bản mã có thé có
- _ K: không gian khóa là tập hữu hạn các khóa có thể có
- Với mỗi k € K, có một quy tắc mã hóa e, € E và một quy tắc giải mã
tương ứng dự € D.
- Với mỗi ey:P > € và dự:C > P là những hàm mà đự(e„(+)) = x cho mọi
bản rõ x € P Hàm giải mã d, chính là ánh xạ ngược của hàm mã hóa ey.
Shannon định nghĩa rât rõ ràng, tỉ mỉ các mô hình toán học đê đánh giá độ an toàn
của các hệ mật mã Mục đích người thám mã là phát hiện ra khóa sử dụng của hệ
mã (key), bản rõ (plain text), hoặc cả hai [7].
Trang 8
Trang 212.1.5.1 An toàn tuyệt đối
Shannon phát triển lý thuyết cho rằng [7], hệ thống mã hóa chỉ an toàn tuyệt đối nếu
số khóa có thê sử dụng ít nhất phải băng số bản rõ có thê có Giả thiết người thám
mã có được thông tin về bản mã Theo quan niệm lý thuyết thông tin, nếu những
hiểu biết về bản mã không thu hẹp được độ bất định về bản rõ đối với người thám
mã, thì hệ mật mã là an toàn tuyệt đối Vậy hệ là an toàn tuyệt đối nếu độ bất định
về bản rõ sau khi người thám mã có được các thông tin (về bản mã) bằng độ bất
định về bản rõ trước đó Hiểu theo một nghĩa khác, khóa tối thiểu của hệ mã phảidai bang ban rõ của hệ mã đó
2.1.5.2 An toàn tính toán
Hệ mật mã được xem là an toàn (về mặt) tính toán, nếu mọi phương pháp thám mã
đã biết đều đòi hỏi một nguồn năng lực tính toán vượt mọi khả năng (kể cả phương
tiện thiết bị) tính toán của một kẻ thù giả định, theo lý thuyết độ phức tạp
2.1.6 Nguyên lý Kerckhoffs
Trước đây, mật mã chủ yếu được sử dụng cho các ứng dụng quân sự và liên lạcngoại giao Với mục đích này, các chính phủ đã phát trién các mật mã và giữ bí mật
các thiết kế của chúng Trên thực tế, những mật mã đó chỉ an toàn vì không ai biết
thuật toán của nó Ngay sau khi thiết kế bị rò rỉ hoặc bị dịch ngược, kẻ thù có thê
phá vỡ mật mã và bắt đầu nghe trộm cũng như giả mạo thông điệp
Vào năm 1883, August Kerckhoffs [9] đã nêu sáu nguyên tắc cần được đáp ứng bởi
các mật mã quân sự được thiết kế vào thời điểm đó Nguyên tắc thứ hai, hiện đượcgọi là nguyên lý Kerckhoffs vẫn còn rat quan trọng cho đến ngày nay và được trích
dan như sau:
Một hệ thong mật mã (cryptosystem)Š phải an toàn ngay cả khi mọi
thứ về hệ thong, ngoại trừ khóa, là công khai
> Thuật ngữ Hệ thống mật mã — Cryptosystem là cách viết ngắn của cryptographic system Đó là, bất kỳ hệ
thống nào liên quan đến mật mã hay tổn tại một cấu phần dùng cho nhiệm vụ mật mã.
Trang 9
Trang 22Nguyên tắc này được chấp nhận rộng rãi, bởi vì nó đã được chỉ ra trong nhiều
trường hợp rằng bảo mật thông qua che giấu (giữ bí mật thiết kế) là một áp dụngkhông thực sự an toàn Việc áp dụng nguyên tắc này là nền tảng cho nghiên cứuhiện đại về mật mã, cho cả các viện nghiên cứu của chính phủ các nước (kế từ Thếchiến II) và các trường đại học cũng như các ngành công nghiệp (từ 1980s) [10]
Như vậy sự an toàn của các hệ mật mã không phải dựa vào sự phức tạp của thuật
toán mã hóa sử dụng Trước đây, tính bảo mật của mật mã chỉ được xác minh bởi
một số chuyên gia, thì giờ đây chúng phải chịu sự giám sát của công chúng vì
nguyên tắc này Điều này dẫn đến một cuộc tranh luận công khai và tìm kiếm các
mật mã an toàn, như NIST đã tô chức cuộc thi dé tìm ra AES
2.1.7 Các tiêu chuẩn
Nhiều kỹ thuật và ứng dụng bao mật được mô tả trong khóa luận đều là các tiêu
chuẩn đã được chấp nhận rộng rãi Em mô tả các tiêu chuẩn quan trọng nhất đang
được sử dụng hoặc đang được phát triển của mật mã học và an ninh mạng Các tổ
chức khác nhau đã tham gia vào việc phát triển hoặc thúc đây các tiêu chuẩn có thể
kể đến như:
- _ Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST): là co quan liên bang của
Hoa Kỳ liên quan đến khoa học do lường, tiêu chuẩn và công nghệ liên quanđến việc sử dụng của chính phủ và thúc đây đổi mới của khu vực tư nhân
Hoa Kỳ Mặc dù có phạm vi quốc gia, Tiêu chuẩn xử lý thông tin liên bang
(FIPS) và An phẩm đặc biệt (SP) của NIST có tác động trên toàn thế giới
- Hiép hội Internet (ISOC): là một t6 chức chuyên nghiệp với nhiều thành
viên trên toàn thé giới Tổ chức này đi đầu trong việc giải quyết các van đề
đối mặt với tương lai của Internet và là nơi tổ chức của các nhóm chịu trách
nhiệm về các tiêu chuẩn cơ sở hạ tầng Internet, bao gồm Lực lượng Đặcnhiệm Kỹ thuật Internet (IETF) và Ban Kiến trúc Internet (IAB) Các tổ chứcnày phát triển các tiêu chuẩn Internet và các thông số kỹ thuật Tất cả đều
được xuất bản dưới dạng Yêu cầu Nhận xét (RFC)
Trang 10
Trang 23- _ Tiêu chuẩn hóa viễn thông (ITU-T): Liên minh Viễn thông Quốc tế (ITU)
là một tô chức quốc tế trong Hệ thống Liên Hợp Quốc (UN), trong đó cácchính phủ và khu vực tư nhân điều phối các dịch vụ và mạng viễn thông toàncầu Lĩnh vực Tiêu chuẩn hóa Viễn thông ITU (ITU-T) là một trong ba lĩnhvực cua ITU Nhiệm vụ cua ITU-T là phát triển các tiêu chuẩn kỹ thuật bao
gồm tat cả các lĩnh vực viễn thông Các tiêu chuẩn của ITU-T thường là các
Khuyến nghị
- TO chức Tiêu chuẩn hóa Quốc tế (ISO): The International Organ1zation for
Standardization (ISO)° là một liên đoàn toàn cầu gồm các cơ quan tiêu chuẩnquốc gia từ hơn 140 quốc gia, mỗi quốc gia có một tô chức ISO là một tô
chức phi chính phủ thúc day sự phát triển của tiêu chuẩn hóa và các hoạtđộng liên quan nhằm tạo thuận lợi cho việc trao đối hàng hóa và dịch vụquốc tế và phát triển hợp tác trong các lĩnh vực hoạt động trí tuệ, khoa học,công nghệ và kinh tế Công việc của ISO dẫn đến các thỏa thuận quốc tế
được công bô dưới dạng Tiêu chuân quôc tê.
2.2 Cơ sở toán học và lý thuyết mật mã
2.2.1 Đại số và lý thuyết sốĐại số (AIgebra) là một lĩnh vực toán học rộng, trong đó lý thuyết số (Numbertheory) là một phần nhỏ nhưng quan trọng của đại số Lý thuyết số đưa ra các kháiniệm và kỹ thuật cho việc nghiên cứu các tính chất của các số nguyên, ví dụ như: số
nguyên tố, ước/bội số chung, phân tích nguyên tố và các van đề liên quan đến tínhchia hết Trong khi đó, đại số là khái niệm rộng hơn dé ap dung cho cac đối tượng
trừu tượng khác như các nhóm, vành, trường, không gian vector và ma trận.
Khóa luận tốt nghiệp của em sẽ tập trung vào giới thiệu các lý thuyết toán mà cần
nghiên cứu và đã áp dụng trong đề tài Những lý thuyết này sẽ được giải thích một
5 ISO không phải là cụm từ tiếng Anh viết tắt (Vì nếu vậy phải là IOS), mà từ này có nguồn góc từ tiếng Hy
Lap, có nghĩa là băng trong tiêng Việt hay equal trong tiêng Anh
Trang 11
Trang 24cách dễ hiểu dé sử dụng chúng vào các van dé liên quan Tuy nhiên, em sẽ không dé
cập đên các lý thuyét nam quá xa phạm vi của dé tai của minh.
2.2.1.1 Nhóm, vành, trường
Nhóm, vành và trường là những thành phần cơ bản của một nhánh toán học được
gọi là đại số trừu tượng hay đại số hiện đại Trong đại số trừu tượng, chúng ta quan
tâm đến các tập hợp có các phần tử mà chúng ta có thể tính toán đại số; nghĩa là,
chúng ta có thé kết hợp hai phần tử của tập hợp, có lẽ bang nhiều cách, để có được
phần tử thứ ba của tập hợp Các hoạt động này tuân theo các quy tắc cụ thể, xác
định bản chất của tập hợp Theo quy ước, ký hiệu cho hai loại phép toán chính trên
các phần tử của tập hợp thường giống như ký hiệu cho phép cộng và phép nhân trên
các số thông thường Tuy nhiên, điều quan trọng cần lưu ý là, trong đại số trừutượng, chúng ta không bị giới hạn trong các phép toán số học thông thường
- Nhóm (Groups): là một tập hợp G và phép toán kết hợp hai phan a và b bất
kỳ dé tao ra phần tử khác (ký hiệu -) thỏa mãn những điều kiện: [11] [12]
+ Tính đóng: với mọi a,b €Gthia-b =c€Œ
+ Tính kết hợp: với mọi a,b,c € G thì (a-b)-c = a-(b- c)+ Tính giao hoán: với mỗi a € G, tồn tại b € G sao cho ø:b =b:a
+ Tính đơn vị: tồn tại e € G sao cho với phương trình a-e =e-a=a
đúng với mỗi a € G Và phan tử này là duy nhất
+ Tính nghịch đảo: với mỗi a € G, tồn tại a’ gọi là nghịch đảo của a sao
choa-ø'=a'-a=e
- Vanh (Rings): là một tập hợp khác rong R nếu trên đó có hai luật hợp thành
trong R ký hiệu là “+” (phép cộng) và “x” (phép nhân) thỏa mã tất cả điềukiện của khái niệm Nhóm đồng thời có thêm:
+_® là một nhóm giao hoán” với phép cộng
7 Nhóm giao hoán: hay nhóm Abel (Abelian groups), là nhom mà việc áp dụng phép toán hai ngôi cho hai
phân tử trong nhóm không phụ thuộc vào thứ tự của hai phân tử đó.
Trang 12
Trang 25+ Tính phân phối: Va,b,c€R thi a-(b+c)=a-b+a-c
và(a+b)-c=a-c+b-c
+ Tính kết hợp của phép nhân: Va,b,c € R thì a- (b-c) = (a-b)-c+ Phép nhân có phan tử đơn vị là I Va € Rtacóa:1=1:a=a
- Trường (Fields): là một tập hợp mà trên đó các phép cộng trừ nhân chia
được định nghĩa, và có tính chất như những phép tính trên số hữu tỉ và sốthực Trường có đủ tất cả điều kiện của Nhóm và Vành đồng thời có thêm:
+ Tính nghịch đảo trong phép nhân: Va € F, trừ 0, tồn tại a1 € F sao cho
r r
a‘a =a:a=e
2.2.1.2 Trường hữu han và tinh toán trên trường hữu han
Trong phần trước chúng ta xác định một trường (hay trường vô hạn) là một tập hợptuân theo các nguyên tắc Các trường vô hạn không được quan tâm trong ngữ cảnh
của mật mã học Tuy nhiên, ngoài các trường vô hạn, còn có hai loại trường hữu
hạn, như minh họa trong Hình 2.2—1 Các trường hữu hạn đóng một vai trò quan
trọng trong nhiều thuật toán mật mã học [12]
Trường
Trường vô hạn Trường hữu hạn
Trường hữu hạn Trường hữu hạn
p phần tử GF(p) p” phan tử GF(p*)
Hình 2.2—1 Các trường toan học
8 Nếu không mô tả gì thêm thì khi nhắc đến khái niệm /rưởng ta hiểu là trong vô hạn (infinite fields)
Trang 13
Trang 26Có thé chứng minh rang thứ tự của một trường hữu hạn (số phan tử trong trường)phải là một lũy thừa của một số nguyên tố p”, trong đó ø là số nguyên dương.
Truong Galois (Galois Fields), tôn vinh nhà toán học đã nghiên cứu trường hữu hạn
đầu tiên Trường hữu hạn cỡ p” được viết chung là ŒF(ø") Chúng ta chỉ quan tâmđến hai trường hợp
- Với n= 1, chúng ta có trường hữu hạn GF(p) Trường hữu hạn này có cấu
trúc khác với trường hữu hạn có n> 1.
- Vớin> 1 vàp = 2, là trường hữu hạn GF(2") đặc biệt quan trọng trong mật
mã học và được đề cập trong phan 2.2.3.1
Nói một cách đại khái, trường Galois là một tập hợp hữu hạn các phần tử trong đó
Phép cong Phép nhan Phép nghich dao
Hình 2.2—2 Phép toán trên trường GF (2)
Trong trường hợp này, phép cộng tương đương với phép tuyên loại trừ (XOR) và
phép nhân tương đương đương với phép hội (AND) Ký hiệu w là phép nghịch đảo
và không thể nghịch đảo giá trị 0
2.2.1.3 Ánh xạ
Ta cần tìm hiểu ánh xạ trong vì mật mã hộp trắng sẽ áp dụng một số khái niệm [13]
a) Ánh xạ (Map)
Định nghĩa 3: Ảnh xạ trong toán học là khái quát của khái niệm hàm số Một ánh
xạ F từ tập X vào tập Y là một quan hệ F từ X vào Y thỏa mãn điều kiện: mọi phân
tử x € X đều có quan hệ F với một và chỉ một phân tử y € Ÿ
Trang 14
Trang 27Tính toàn ánh Tính không toàn ánh
b) Song ánh (Bijection)
Dinh nghĩa 4: Trong toán hoc, song ánh, hoặc ham song ánh, là một anh xạ ƒ từ
tập X vào tập Y thỏa mãn tính chất: đối với mỗi y thuộc Y, có duy nhất một x thuộc
X sao cho f(x) = y Nói cách khác, ƒ là một song ánh nếu và chỉ nếu nó là tương ứng
một-một giữa hai tập họp; tức là no vừa là đơn anh và vừa là toàn anh.
c) Ánh xạ hợp [14]
Cho hai ánh xạ ƒ: X Y gà g: Y Z Hợp của hai ánh xạ ƒ, g, ký hiệu] 4 go ƒ là
ánh xạ từ X vào Z, xác định bởi dang thức (g © f)(x) = Liên (x)) (cũng được gọi làtích ánh xạ của ƒ và g).
Trang 15
Trang 28Một số tính chất của ánh xạ hợp
- Nếu (gs ƒ) là đơn ánh thì ƒ là đơn ánh
- Nếu (go f) là toàn ánh thì g là toàn ánh
- _ Nếu (go ƒ) là song ánh thì ƒ và g đều là song ánh
d) Ánh xạ nghịch đảo
Cho ánh xạ ƒ: X => Y là song ánh Nếu tồn tại ánh xạ g: Y > X sao cho
Vx€X:(gsƒ)(x)=x
Vy€Y:Œsg)0)=y
thì g được gọi là nghịch đảo, hay ánh xạ ngược của f, ký hiệu là ƒ~1.
Ánh xạ ƒ có nghịch đảo khi và chỉ khi ƒ là song ánh
Ngoài ra, trong ngữ cảnh sử dung ánh xạ như phép biến đồi trong hệ mật mã thì tacan nắm thêm hai định nghĩa sau trên trường giới han GF (2”)
Định nghĩa 5: Anh xạ tuyến tính là phép ánh xạ L(x) trên trường GF(2*) sao cho
Vx,y €GF(2"): L(x +y) = L() + Ly)
Định nghĩa 6: Anh xạ affine là pháp ánh xa A(x) trên trường GF(2") sao cho
Vx,c € GF(2"): A(x) = L(x) +
Trang 16
Trang 292.2.2 Các hệ mật mã
2.2.2.1 Mật mã đối xứng và bat đối xứng
Một trong những cách phân loại hệ mật mã đó là loại khóa:
- Mat mã đối xứng (Symmetric): hay còn gọi là mã hóa khóa đồng bộ là một
thuật toán mà trong đó cả hai quá trình mã hóa và giải mã đều dùng một
khóa Để đảm bảo tính an toàn, khóa này phải được giữ bí mật Vì thế các
thuật toán mã hóa khóa đồng bộ này còn có tên gọi khác là mã hóa với khóa
bí mật (secret key cryptography) Một điều cần lưu ý là khi một người mã
hóa một thông điệp gốc (plaintext) thành thông điệp mã hóa bằng một khóa
K (thuật toán mã hóa) (ciphertext) rồi gửi ciphertext cho đối tác thì đối tác
muốn giải mã cũng cần phải có khóa K, nghĩa là trước đó hai đối tác đã phải
trao đôi cho nhau chia sẻ dé cùng biết được khóa K [8]
- Mat mã bat đối xứng (Asymmetric): hay còn gọi là mã hóa khóa công
khai, là một dạng mã hóa cho phép người sử dụng trao đôi các thông tin mật
mà không cần phải trao đổi các khóa bí mật trước đó Điều này được thực
hiện bang cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa
công khai (Public key) và khóa riêng (Private key) Thuật toán mã hóa khóa
công khai có cơ sở hoàn chỉnh đầu tiên cũng được Ron Rivest, Adi Shamir
và Leonard Adleman khởi xướng vào năm 1977 tại Học viện Kỹ thuật
Massachusett MIT (Massachusett Institute of Technology) Công trình này
được công bố vào năm 1978 và thuật toán được đặt tên là thuật toán RSA
-theo 3 chữ cái đầu của các đồng tác giả RSA sử dụng phép toán lũy thừatheo modulo (với modulo được tính bằng tích số của 2 số nguyên tố lớn) dé
mã hóa và giải mã cũng như tạo chữ ký số Độ an toàn của thuật toán được
đảm bảo vì không tồn tại kỹ thuật hiệu quả dé phân tích một số rất lớn thành
thừa số nguyên tổ [8]
Trang 17
Trang 302.2.2.2 Mật mã dòng và mật mã khối
Trong mật mã đối xứng ta lại phân loại thành 2 hệ mật mã khác gồm:
- Mat mã dòng (Stream cipher): trong đó dữ liệu đầu vào được mã hóa từng
bit một Các thuật toán dòng có tốc độ nhanh hơn các thuật toán khối, được
dùng khi khối lượng đữ liệu cần mã hóa chưa được biết trước, ví dụ trong kết
nối không dây Có thê coi thuật toán dòng là thuật toán khối với kích thướcmỗi khối là 1 bit Một số thuật toán dòng thông dụng: RC4, A5/1, A5/2,
Chameleon [12].
- Mat mã khối (Block cipher): trong đó từng khối dit liệu trong văn bản gốc
ban dau được thay thế bằng một khối dir liệu khác có cùng độ dài Độ daimỗi khối gọi là kích thước khối (block size), thường được tính bằng đơn vị
bit Ví du thuật toán 3-Way có kích thước khối bang 96 bit Một số thuật toán
khối thông dụng là: DES, 3DES, RC5, RCó, 3-Way, CAST, Camelia,Blowfish, MARS, Serpent, Twofish, GOST [12]
2.2.3 Chuẩn mã hóa nâng cao (AES)
Năm 2001, sau một cuộc thi quốc tế, NIST đã chọn ra guar thuật mới là Tiêu chuẩn
mã hóa tiên tiến AES (Advanced, Encryption Standard) đề thay thế cho DES Thuật
toán được trình điện dưới tên là Rijndael AES được chấp thuận làm tiêu chuẩn liên
bang bởi NIST trong một quá trình tiêu chuẩn hóa kéo đài 5 năm [10]
Thuật toán được thiết kế bởi ha nhà mật mã học người Bi: Joan Daemen va Vincent
Rijmen, và ghép tên tác gia khi đề trình AES cho cuộc thi Khác với DES sử dungmạng Feistel, Rijndael sử dụng mạng thay thế - hoán vị
2.2.3.1 Tính toán trên trường hữu hạn
AES hoạt động trên byte 8 bits Phép cộng hai byte được định nghĩa là hoạt động
XOR theo bit Phép nhân hai byte được định nghĩa là phép nhân trong trường hữu
hạn GF(28), với đa thức bat khả quy!? m(x) = x8+x*#+x3+x+ 1 Các nhà
? Xem tinh chất ở phần 2.1.3 Phương thức mã hóa ;
‘0 Là đa thức tương ứng với phép chia lay du cho số nguyên tô.
Trang 18
Trang 31phát triển Rijndael chon đa thức này trong 30 đa thức bat khả quy bậc 8 vì nó là cáiđầu tiên trong danh sách được đưa ra trong [15].
Trong AES, trường hữu hạn chứa 256 phan tử và được ký hiệu là GF (2°) Trường
này được chọn vì mỗi phan tử trường có thé được biéu thị bằng một byte Đối với
các biến đôi S-Box và MixColumns, AES coi mỗi byte của đường dẫn dữ liệu nội bộ
là một phan tử của trường GF (28) và thao tác dữ liệu bằng cách thực hiện phép tính
số học trong trường hữu hạn này
Ví dụ: có phan tử A = (a;asasa„aza;a;aạ) và B = (by b¢bsb,b3b2b, bạ)
Tổng của A + B = (€;c¿csc¿cc;c¡cạ), với C; = a; Bj
Tích của {02}11 - A = (agasa,a3a,a,a)0) nếu a, = 0
Tích của {02} - A = (a¿asa„aaaza;as0)®(00011011) nếu a, = 1
2.2.3.2 Cấu trúc Chuẩn mã hóa nâng cao (AES)
Hình 2.2-7 mô tả cau trúc tong thể của quá trình mã hóa AES Mật mã này sử dụngkhối bản rõ có kích thước 128 bits hoặc 16 bytes Độ dài khóa có thể là 16, 24 hoặc
32 bytes (tương đương với 128, 192 hoặc 256 bits) Thuật toán này được gọi là
AES-128, AES-192 hoặc AES-256, tùy thuộc vào độ dài của khóa.
Đầu vào cho các thuật toán mã hóa và giải mã là một khối đơn duy nhất có kíchthước 128 bits Trong FIPS PUB 197 [16], khối này được mô tả dưới dang một matrận 4 * 4 byte Khối này được sao chép vào mảng trạng thái (State), được chỉnh sửa
ở mỗi giai đoạn mã hóa hoặc giải mã Sau giai đoạn cuối cùng, State được sao chéplại thành ma trận đầu ra
Tương tự, khóa được mô tả dưới dạng một ma trận vuông các bytes Khóa này được
mở rộng thành một mảng các từ quá trình mở rộng khóa (Xem phần 2.2.3.3) Lưu ýrằng thứ tự các byte trong một ma trận là theo cột Ví dụ, bốn byte đầu tiên của mộtkhối bản rõ 128-bit đầu vào cho mã hóa chiếm vị trí đầu tiên của cột đầu tiên của
ma trận dau vao, bon bytes tiép theo chiêm vi trí của cột thứ hai và tiép tục như vậy.
!! Trong FIPS PUB 197, một số thập lục phân được xác định trong dấu ngoặc nhọn Ví dụ {02}=(00000010)
Trang 19
Trang 32Kích thước khóa (words/bytes/bits) 4/16/128 | 6/24/192 | 4/16/128
Kích thước khối bản rõ (words/bytes/bits) | 4/16/128 | 4/16/128 | 4/16/128
Số vòng 10 12 14
Kích thước khóa vòng (words/bytes/bits) | 4/16/128 | 4/16/1285 | 4/16/1285
Kích thước khóa mở rộng (words/bytes) 44/176 | 52/208 | 60/240
Bang 2.2—2 Cac thông số của AES [12]
Mật mã bao gồm N vòng, số vòng phụ thuộc vào độ dài của khóa: 10 vòng cho
khóa 16 byte, 12 vòng cho khóa 24 byte va 14 vòng cho khóa 32 byte (Bang 2.2—2).
N - 1 vòng đầu tiên bao gồm bốn hàm biến đổi khác nhau: SubBytes, ShiftRows,
MixColumns và AddRoundKey, được mô tả chỉ tiết ở phần sau Vòng cuối cùng chỉ
chứa ba phép biến đồi, và thêm một bước AddRoundKey trước vòng đầu tiên, có thêđược xem như là Vòng 0 Mỗi phép biến đồi sẽ thực hiện một hoặc nhiều ma trận 4
* 4 làm đâu vào và tạo ra một ma trận 4 * 4 làm đâu ra.
Hình 2.2-7 cho thấy rang đầu ra của mỗi vòng là một ma trận 4 * 4, với đầu ra của
vòng cuôi cùng là văn ban mã hóa Ngoài ra, hàm mở rộng khóa sinh ra N + 1 khóa
vòng, mỗi khóa vòng là một ma trận 4 * 4 khác nhau Mỗi khóa vòng được sử dụng
làm một trong các đầu vào cho phép biến đổi AddRoundKey trong mỗi vòng
Trang 20
Trang 33Plaintext—16
(16 bytes) Round 0 key (M bytes)
Cipehertext—16 bytes (128 bits)
Hình 2.2—7 Quá trình mã hóa cua AES [12]
Trang 21
Trang 34(a) Encryption (b) Decryption
Hình 2.2-8 Kiến trúc mã hóa và giải mã của AES [12]
Trang 22
Trang 352.2.3.3 Mở rộng khóa trong AES (Key expansion)
Thuật toán mở rộng khóa AES nhận vào một khóa bốn từ (16 bytes) và tạo ra mộtmảng tuyến tính gồm 44 words (176 bytes) Điều này đủ để cung cấp một khóavòng bốn từ cho giai đoạn AddRoundKey ban đầu và mỗi trong số 10 vòng của mã
hóa Hình 2.2-9 mô tả mã giả quá trình mở rộng khóa.
Khóa được sao chép vào bốn words đầu tiên của khóa mở rộng Phần còn lại củakhóa mở rộng được điền vào bốn words mỗi lần Trong ba trường hợp trên tông số
bốn trường hợp, một phép XOR đơn giản được sử dụng Đối với một từ ở vị trí làbội số của 4 trong mảng w, một hàm phức tạp hơn được sử dụng Hình 2.2—10 minh
họa quá trình tạo ra khóa mở rộng.
1 KeyExpansion (byte key[16], word w[44]) {
Hình 2.2—9 Giải thuật mở rộng khóa [12]
- Hàm RotWord thực thi phép dịch trái 1 byte Có nghĩa là đối với đầu vào 4
bytes (BO, B1, B2, B3] thì đầu ra sẽ biến đổi thành /B1, B2, B3, BO]
- Hàm SubWord thực thi phép thé 1 byte, sử dụng S-box (Hình 2.2—14)
- Pau ra của hai bước trên được XOR với hằng số vòng Reon/[j]
Hang số vòng sẽ khác nhau ở mỗi vòng và được định nghĩa là
Rcon[j] = (RC[j], 0,0,0) với RC[1] = 1, RC[j] = 2 - RC[/? — 1] và phép nhân là
theo định nghĩa trong trường hữu han GF (28) Giá trị RC[j] trong AES — 128 có thé
tra bảng sau:
Trang 23
Trang 372.2.3.4 Các phép biến déi trong AES (AES Transformation)
a) Thêm khóa vòng (AddRoundKey): Khóa con được kết hop với các khối
Khóa con trong mỗi chu trình được tạo ra từ khóa chính; mỗi khóa con có độ
dài bằng độ dài khối Quá trình kết hợp được thực hiện bằng cách XOR từng
bytes của khóa con với từng bytes của ma trận trạng thái.
b) Thay byte (SubBytes): Các bytes được thay thế thông qua bảng tra S-box
Đây là quá trình phi tuyến tính của thuật toán, thực hiện thay thế 1 byte đầu
vào bang 1 byte đầu ra Bảng S-box này được tạo ra từ một phép nghịch đảo
trong trường hữu hạn ŒF(2®) có tính chất phi tuyến tính Minh hoa ở hình
Hình 2.2—13, Hình 2.2—14 và Hình 2.2—15.
Trang 25
Trang 39[SC| 23 ey] po] > [GAN co [Tae] er
ro [apap [es] = |$C|ĐB| 95 LA6
Hình 2.2—15 Vi dụ phép SubBytes
c) Dịch hàng (ShiftRows): các hàng được dịch vòng một số vị trí nhất định
Đối với AES, hàng đầu được giữ nguyên Mỗi byte của hàng thứ 2 được dịch
trái 1 vị trí Mỗi byte hàng thứ 3 được dich trái 2 vị trí Mỗi byte hàng thứ 4
được dịch trái 4 vị trí Do vậy, mỗi cột khối đầu ra của bước này sẽ bao gồm
các byte ở đủ 4 cột khối đầu vào
=ls[>[>| AA Bie
ala] — —ilaalnasx Pals) — _~ [safes
Hình 2.2-16 Phép biến đổi ShiftRows
87 | F2 | 4D | 97
rec] 6 | 4c | 90 [6E | 4c | 90 | EC
d) Trộn cột (MixColumns): 4 bytes trong từng cột được kết hợp lại theo một
phép biến đổi tuyến tính khả nghịch Mỗi khối 4 byte đầu vào sẽ cho một
khối 4 byte ở đầu ra với tính chất: mỗi byte đầu vào đều ảnh hưởng tới cả 4
byte đầu ra Cùng với Shj?Rows, MixColumns tạo tính khuếch tán cho thuật
Trang 27
Trang 40toán Mỗi cột được xem như một đa thức trong trường hữu hạn và được nhân
Hình 2.2—19 Vi dụ phép MixColumns
2.2.4 Chế độ thực thi mã hóa khối
Như ta đã biết các mã hóa khối mã hóa các khối thông tin có đội dài cố định, chăng
hạn DES với các khối 64 bits, sử dụng khóa là xâu có độ dài 56 bits Tuy nhiên để
sử dụng các hệ mã này trên thực tế cần có quy định về cách sử dụng chúng dé mã
hóa toàn bộ đữ liệu nhiều hơn khối đó theo ANSI Trong khuôn khổ khóa luận, em
bàn về chế độ ECB va CBC vi module triển khai mật mã hộp trang ở chương 3 áp
dụng CBC, ma CBC là cải tiến của ECB [12]
Trang 28