Tóm tắt các kết quả của luận văn: Trình bày tổng quan về mật mã nhẹ, mật mã có xác thực. Phân tích cụ thể hai hệ mật mã nhẹ có xác thực ACORN và Ascon dựa trên mô tả thuật toán, đặc trưng an toàn và hiệu suất trong cài đặt. Đánh giá hai hệ mật mã trên bằng thực nghiệm, so sánh với hệ mật mã có xác thực tiêu chuẩn hiện nay là AESGCM.
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHUẤT QUANG DUY
NGHIÊN CỨU HAI HỆ MẬT MÃ HẠNG NHẸ GIÀNH CHIẾN THẮNG TRONG CUỘC THI CAESAR
ACORN VÀ ASCON
LUẬN VĂN THẠC SĨ
Ngành: Khoa học máy tính
HÀ NỘI - 2019
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
KHUẤT QUANG DUY
NGHIÊN CỨU HAI HỆ MẬT MÃ HẠNG NHẸ GIÀNH CHIẾN THẮNG TRONG CUỘC THI CAESAR
Trang 3TÓM TẮT
Tóm tắt: Mật mã có xác thực và mật mã nhẹ đang là những chủ đề nóng trong cộng đồng
mật mã những năm gần đây Nhu cầu về mật mã nhẹ, có xác thực xuất phát từ sự phát triển bùng nổ của hệ thống vạn vật kết nối (Internet of Things – IoT), nơi mà rất nhiều thiết bị nhỏ gọn, năng lực tính toán thấp và giới hạn về tài nguyên được kết nối với nhau Cùng với đó là sự xuất hiện của các lỗ hổng bảo mật trên các giao thức phổ biến hiện nay Một số cuộc tấn công thực tế được đưa vào các giao thức (bao gồm SSL/TLS) là do thiếu xác thực và kiểm tra tính toàn vẹn của dữ liệu Do đó, cần có những tiêu chuẩn mật mã mới để đảm bảo được tính xác thực dữ liệu, đồng thời có khả năng thực thi trên những thiết bị hạn chế về tài nguyên Cuộc thi CAESAR nhằm kêu gọi cộng đồng mật mã thiết
kế các chương trình mật mã có xác thực mới đã được khởi xướng năm 2013 Trong đó có rất nhiều ứng viên là các hệ mật mã nhẹ Luận văn này sẽ tập trung nghiên cứu hai ứng viên giành chiến thắng ở hạng mục mật mã nhẹ của cuộc thi CAESAR là ACORN và Ascon Phân tích, đánh giá các đặc trưng an toàn và hiệu suất của các thuật toán Đồng thời cài đặt thực nghiệm những thuật toán này trên điện thoại thông minh chạy hệ điều hành Android
Từ khóa: mật mã nhẹ, mật mã có xác thực, ACORN, Ascon, CAESAR
Trang 4LỜI CẢM ƠN
Đầu tiên, tôi muốn gửi lời cảm ơn chân thành nhất tới tiến sĩ Lê Phê Đô, người đã luôn tận tình hướng dẫn tôi nghiên cứu đề tài này Nếu không có sự định hướng, những lời dạy bảo của thầy thì luận văn này tôi rất khó có thể hoàn thiện được
Tôi xin cảm ơn Khoa công nghệ thông tin, Trường Đại học Công nghệ đã tạo điều kiện, môi trường thuận lợi cho học viên trong quá trình học tập, nghiên cứu và hoàn thiện luận văn thạc sĩ
Tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới các thầy, cô, bạn bè trong khoa Công nghệ thông tin, ngành Khoa học máy tính, đã luôn nhiệt tình giúp đỡ tôi trong suốt quá trình học tập và nghiên cứu
Cuối cùng, tôi muốn gửi lời cảm ơn tới gia đình, người thân, những người luôn quan tâm, động viên để giúp tôi có động lực học tập, nghiên cứu và hoàn thiện đề tài nghiên cứu này
Bước đầu đi vào nghiên cứu, tìm hiểu các vấn đề về An toàn thông tin với kiến thức còn hạn chế, do vậy tôi không tránh khỏi những thiếu sót trong luận văn này Tôi rất mong nhận được những ý kiến đóng góp của các thầy cô và bạn bè để hoàn thiện luận văn hơn nữa
Tôi xin chân thành cảm ơn!
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của tiến sĩ Lê Phê Đô
Tất cả các tham khảo từ những nghiên cứu liên quan đều được trích dẫn nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong luận văn Luận văn không sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về mặt tài liệu tham khảo Các kết quả thực tế của luận văn đều được tiến hành thực nghiệm
Nếu phát hiện có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm trước hội đồng, cũng như kết quả luận văn tốt nghiệp của mình
Hà Nội, ngày tháng năm ,
Học viên
Trang 6MỤC LỤC
TÓM TẮT i
LỜI CẢM ƠN ii
LỜI CAM ĐOAN iii
MỤC LỤC iv
DANH MỤC HÌNH VẼ vi
DANH MỤC BẢNG BIỂU vii
DANH MỤC VIẾT TẮT viii
MỞ ĐẦU 1
Chương 1: TỔNG QUAN 3
1.1 Mật mã nhẹ 3
1.1.1 Khái niệm 3
1.1.2 Nguyên lý thiết kế 3
1.1.3 Quá trình phát triển 5
1.2 Mã hóa có xác thực 6
1.2.1 Khái niệm 6
1.2.2 Nguyên lý thiết kế 7
1.2.3 Quá trình phát triển 8
1.3 Cuộc thi CAESAR 10
Chương 2: HAI HỆ MẬT MÃ HẠNG NHẸ GIÀNH CHIẾN THẮNG TRONG CUỘC THI CAESAR: ACORN VÀ ASCON 16
2.1 Hệ mã ACORN 16
2.1.1 Tổng quan về thuật toán 16
2.1.2 Các đặc trưng an toàn trong thiết kế của thuật toán 23
2.1.3 Một số cuộc tấn công lên hệ mã ACORN 26
2.1.4 Hiệu suất của thuật toán 32
2.2 Hệ mã Ascon 32
2.2.1 Tổng quan về thuật toán 32
2.2.2 Các đặc trưng an toàn của thuật toán 40
2.2.3 Một số cuộc tấn công lên hệ mã Ascon 44
Trang 72.2.4 Hiệu suất của thuật toán 50
Chương 3: CÀI ĐẶT THỰC NGHIỆM TRÊN THIẾT BỊ ANDROID 53
3.1 Mô tả bài toán 53
3.2 Cài đặt 53
3.2.1 Môi trường thực nghiệm 53
3.2.2 Cài đặt thuật toán ACORN (v3), Ascon-128 (v1.2) và AES-128-GCM 54
3.2.3 Ứng dụng truyền dữ liệu đa phương tiện 56
3.3 Kết quả và đánh giá 59
3.3.1 Thời gian thực thi 60
3.3.2 Kích thước bộ nhớ RAM sử dụng 61
3.3.3 Truyền video trong thời gian thực 62
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
TÀI LIỆU THAM KHẢO 65
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1: Nguyên lý thiết kế của mật mã nhẹ 4
Hình 1.2: Số lượng mật mã nhẹ đối xứng tính đến 2017 6
Hình 1.3: Mã hóa có xác thực 7
Hình 1.4: Nguyên lý thiết kế mật mã có xác thực 7
Hình 2.1: Kiến trúc thanh ghi dịch của ACORN [19] 16
Hình 2.2: Lược đồ mã hóa của ACORN [20] 20
Hình 2.3: Cơ chế hoạt động của Ascon [32] 34
Hình 2.4: Cấu trúc từ thanh ghi trạng thái của Ascon [32] 37
Hình 2.5: Cấu trúc lớp thay thế của Ascon [32] 38
Hình 2.6: Triển khai bitsliced của S-box 5 bit S(x) [32] 39
Hình 2.7: Lớp khuếch tán tuyến tính của Ascon, trộn các bit trong các từ thông qua hàm ∑ (𝑥𝑖 𝑖) [32] 40
Hình 3.1: Java Native Interface trong Android 56
Hình 3.2: Kiến trúc ứng dụng CryptoCamera 57
Hình 3.3: Giao tiếp socket thông qua giao thức UDP 58
Hình 3.4: Ứng dụng CryptoTest để đánh giá thời gian thực thi 59
Hình 3.5: Ứng dụng CryptoCamera truyền video mã hóa thời gian thực 60
Hình 3.6: Thời gian thực thi của các thuật toán 61
Hình 3.7: Kích thước bộ nhớ RAM bị chiếm khi thực hiện mã hóa – giải mã 62
Trang 9DANH MỤC BẢNG BIỂU
Bảng 1.1: Số lượng ứng viên tham dự CAESAR 11
Bảng 1.2: Các ứng viên bị loại và rút khỏi cuộc thi 11
Bảng 1.3: Một số cuộc tấn công trên các ứng viên của CAESAR 13
Bảng 2.1: Sự khác nhau giữa ACORN-v1 và ACORN-v2,v3 19
Bảng 2.2: Một số cuộc tấn công lên hệ mã ACORN 26
Bảng 2.3: Tốc độ (cpb) của ACORN với các độ dài bản rõ khác nhau 32
Bảng 2.4: Các tham số cài đặt đề xuất cho Ascon [32] 33
Bảng 2.5: Hằng số vòng sử dụng trên các hoán vị pa và pb[32] 37
Bảng 2.6: S-box 5 bit của Ascon [32] 38
Bảng 2.7: Tuyến bố bảo mật của Ascon [32] 40
Bảng 2.8: Đặc trưng vi sai của S-box trong Ascon [32] 41
Bảng 2.9: Đặc trưng tuyến tính của S-box trong Ascon [32] 42
Bảng 2.10: Số lượng S-box hoạt động trong 4 vòng của hoán vị 44
Bảng 2.11: Vi sai không thể trên 5 vòng của Ascon [32] 44
Bảng 2.12: Một số cuộc tấn công lên Ascon 45
Bảng 2.13: Độ lệch đầu ra x0[i+1] tương ứng với vi sai ở bit đầu vào x3[i] và x4[i] của S-box [41] 48
Bảng 2.14: Hiệu suất phần mềm (cycles per byte - cpb) trong trường hợp 51
Trang 10DANH MỤC VIẾT TẮT
thuật toán mã hóa khối được chính phủ Hoa
kỳ áp dụng làm tiêu chuẩn mã hóa
khiển trong mã hóa khối khóa đối xứng
kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính
Security, Applicability and Robustness: cuộc thi lựa chọn một thuật toán mã hóa có xác thực đảm bảo ba yếu tố là tính bảo mật, khả năng ứng dụng và độ mạnh
nhận dạng bằng tần số của sóng vô tuyến
khả biến cho phép truy xuất đọc-ghi ngẫu nhiên đến bất kỳ vị trí nào trong bộ nhớ dựa theo địa chỉ bộ nhớ
Technology: Viện tiêu chuẩn và Công nghệ
Trang 11của Mỹ
thực
data: mã hóa có xác thực với dữ liệu liên kết
thông báo
Security: là các giao thức mật mã được thiết
kế để cung cấp truyền thông an toàn qua một mạng máy tính
attack: định nghĩa về an toàn cho hệ khóa công khai
liên minh Wifi đưa ra để thay thế WEP
được định nghĩa trong tiêu chuẩn 802.11 được thiết kế để tạo sự liên kết toàn vẹn của mạng không dây tương đương như mạng có dây
thông tin giữa các máy tính với tốc độ từ 10-100 triệu bít một giây (Mbps)
mở dành cho việc tạo các đường ống (tunnel) điểm-tới-điểm được mã hóa giữa các máy chủ
Trang 12LUTs Lookup table - bảng tra cứu
đơn vị đo lường cho phép xác định độ phức tạp độc lập về công nghệ sản xuất của các mạch điện tử kỹ thuật số
chương trình trên mạng máy tính có thể gửi những dữ liệu ngắn tới máy khác UDP không cung cấp sự tin cậy và thứ tự truyền nhận
nhất
nhất
Trang 13MỞ ĐẦU
1 Cơ sở khoa học và tính thực tiễn của đề tài
Trong thời đại phát triển bùng nổ của cuộc cách mạng công nghiệp 4.0, nhu cầu về kết nối và trao đổi thông tin ngày càng trở nên mạnh mẽ Đi cùng với đó là yêu cầu về vấn
đề đảm bảo an toàn thông tin
Hiện nay, phương pháp chủ yếu được sử dụng để đảm bảo được tính bí mật và an toàn cho thông tin là mã hóa dữ liệu Tuy nhiên, trong nhiều trường hợp, mã hóa đơn thuần là không đủ mạnh trước các cuộc tấn công phát lại, hay tấn công người đứng giữa (man-in-the-middle) Đòi hỏi cần có cơ chế xác thực để chống lại các dạng tấn công này
Kể từ năm 2017, AES-GCM đã trở thành thuật toán mã hóa được sử dụng phổ biến với mục đích đảm bảo đồng thời tính bí mật và tính xác thực cho dữ liệu Tuy nhiên những lỗ hổng bảo mật được phát hiện gần đây đã đặt ra yêu cầu định nghĩa một tiêu chuẩn mật mã
có xác thực mới
Bên cạnh vấn đề về tăng cường bảo mật thông qua các hệ mật mã có xác thực, yêu cầu về các hệ mật mã nhẹ cũng phản ánh nhu cầu của thời đại Trong bối cảnh mạng kết nối vạn vật IoT đang phát triển ngày càng nhanh, không chỉ những thiết bị truyền thống với khả năng xử lý mạnh mẽ như PC, laptop, điện thoại di động, mà còn có rất nhiều các thành phần khác, với khả năng tính toán và cơ sở phần cứng hạn chế được kết nối vào các mạng IoT (như các cảm biến, thẻ thông minh, thiết bị y tế, …) Do đó, cần xây dựng những mật mã có khả năng thực thi trên môi trường tài nguyên giới hạn trong khi vẫn đảm bảo được độ an toàn cần thiết
Mật mã có xác thực và mật mã nhẹ là những chủ đề mới đang thu hút sự quan tâm của cộng đồng mật mã Hiện nay, vẫn chưa có những tiêu chuẩn được đặt ra cho các dạng mật mã này Các cuộc thi được tổ chức ở thời điểm hiện tại mới chỉ nhằm mục đích thúc đẩy cộng đồng xây dựng những hệ mật mã mới, lựa chọn ra các mật mã xuất sắc nhất để tạo tiền đề cho các quá trình tiêu chuẩn hóa Trong bối cảnh đó, luận văn lựa chọn nghiên cứu về hai hệ mật mã có xác thực hạng nhẹ ACORN và Ascon Phân tích, đánh giá và cài đặt thực nghiệm, so sánh với mật mã đang được sử dụng phổ biến hiện nay là AES-GCM
Trang 14Từ đó, đưa ra những kết quả về tính khả thi cũng như ưu điểm trong việc ứng dụng các hệ
mật mã mới này
2 Nội dung nghiên cứu
Nội dung chính của luận văn được trình bày trong 3 chương:
Chương 1: Giới thiệu tổng quan về mật mã nhẹ, mật mã có xác thực (một số khái
niệm, nguyên lý thiết kế, quá trình phát triển) và cuộc thi CAESAR
Chương 2: Nghiên cứu hai hệ mật mã nhẹ giành chiến thắng trong cuộc thi
CAESAR: ACORN và Ascon Trình bày tổng quan thuật toán Đánh giá các thuật toán
trên phương diện đặc trưng an toàn và hiệu suất trong cài đặt
Chương 3: Cài đặt và so sánh hiệu suất của các thuật toán ACORN, Ascon và
AES-GCM trên điện thoại thông minh chạy hệ điều hành Android Xây dựng và đánh giá tính
khả thi của ứng dụng truyền video thời gian thực sử dụng các thuật toán mã hóa nói trên
Trang 15Các đặc trưng của mật mã nhẹ được mô tả trong tiêu chuẩn ISO/IEC 29192 [1] Theo đó, độ an toàn tối thiểu của mật mã nhẹ là 80 bit Đặc tính “nhẹ” phụ thuộc vào nền tảng cài đặt Đối với triển khai phần cứng, đặc tính này được tính toán và đo lường thông qua diện tích chip và năng lượng tiêu thụ Đối với triển khai phần mềm, kích thước mã nguồn, kích thước RAM lại là các tiêu chí đánh giá Ngoài ra, một số đặc trưng khác như hiệu suất đối với bản tin ngắn hay độ trễ cũng được sử dụng để đánh giá các mật mã nhẹ
Do đó, để thiết kế được một thuật toán mật mã nhẹ trong khi vẫn đảm bảo mức độ
an toàn cần thiết, người thiết kế phải cân đối giữa 3 tiêu chí: an toàn, hiệu suất và chi phí (Hình 1.1)
Trang 16Hình 1.1: Nguyên lý thiết kế của mật mã nhẹ Trên thực tế, có thể dễ dàng đạt được hai trong số ba mục tiêu thiết kế Trong khi đảm bảo được cả ba mục tiêu lại là một nhiệm vụ khá khó khăn Ví dụ, có thể thiết kế được một thuật toán có độ an toàn và hiệu suất tốt, nhưng để thực thi thuật toán lại yêu cầu phần cứng với diện tích mạch lớn, dẫn đến tăng chi phí
Một số phương pháp thường được các nhà mật mã học sử dụng để đạt được các mục tiêu trong thiết kế mật mã nhẹ:
- Giảm kích thước các tham số chính của thuật toán: kích thước khối dữ liệu, kích thước khóa, hay kích thước trạng thái của thuật toán
- Bù đắp sự mất mát không mong muốn về độ an toàn do thiết kế của thuật toán, dựa trên các nghiên cứu đáng tin cậy đã có Thông thường được thực hiện bởi các chuyển đổi tuyến tính/phi tuyến cơ bản
- Lựa chọn những kỹ thuật đơn giản nhưng vẫn đạt hiệu quả tốt, ví dụ như các bit điều khiển hoán vị (lựa chọn hoán vị phù hợp phụ thuộc vào giá trị của bit điều khiển), hay các thanh ghi dịch
Trang 17- Sử dụng các phép biến đổi (transformations) phù hợp với tài nguyên của từng
bộ mã hóa cụ thể (ví dụ: yêu cầu giảm bộ nhớ nhưng phải trả giá bằng tốc độ
mã hóa và ngược lại)
1.1.3 Quá trình phát triển
Nhu cầu về mật mã nhẹ xuất phát từ một thực tế rằng mạng lưới kết nối vạn vật (IoT) ngày càng phát triển mạnh Số lượng lớn thiết bị được kết nối với nhau đồng nghĩa với việc những rủi ro về bảo mật sẽ tăng lên Hơn nữa, không phải chỉ những thiết bị truyền thống với khả năng xử lý mạnh mẽ như PC, laptop, điện thoại di động, mà còn có rất nhiều các thành phần khác, với khả năng tính toán và cơ sở phần cứng hạn chế được kết nối vào các mạng IoT (như các cảm biến, thẻ thông minh, thiết bị y tế, …) Do đó, yêu cầu đặt ra là cần xây dựng những mật mã có khả năng thực thi trên môi trường tài nguyên giới hạn trong khi vẫn đảm bảo được được độ an toàn cần thiết
Nghiên cứu về mật mã nhẹ trở nên phát triển từ năm 2004 với dự án đầu tiên được chọn làm chủ đề cho Chương trình Khung (Framework Programmes) lần thứ 6 và 7 của Liên minh Châu Âu Quá trình tiêu chuẩn hóa vẫn đang được hoàn thiện, bao gồm tiêu chuẩn ISO/IEC 29192, trong đó định nghĩa các thuật toán mật mã nhẹ cho từng lĩnh vực
kỹ thuật và ISO/IEC 29167, mô tả công nghệ mật mã nhẹ cho các thiết bị nhận dạng tần
số vô tuyến (RFID) Viện Tiêu chuẩn và Kĩ thuật Quốc gia (NIST) Hoa Kỳ cũng đã tổ chức những hội thảo về mật mã nhẹ từ năm 2015 và chính thức phát động chương trình
“Lightweight Cryptography” để thu hút, đánh giá và chuẩn hóa mật mã nhẹ vào năm 2017 [2]
Trong vòng 25 năm qua, đặc biệt từ năm 2011, rất nhiều thuật toán mã hóa theo khuynh hướng “nhẹ” đã ra đời Dưới đây là thống kê số lượng mật mã nhẹ đối xứng tính đến năm 2017 (Hình 1.2) [3]
Trang 18Hình 1.2: Số lượng mật mã nhẹ đối xứng tính đến 2017 Tháng 4/2019, NIST đã công bố danh sách 56 thành viên (trên tổng số 57 yêu cầu được gửi đến) cho vòng đầu tiên của dự án “Lightweight Cryptography” [2] Chương trình hứa hẹn sẽ tìm ra được những ứng viên chiến thắng, trở thành tiêu chuẩn mật mã nhẹ
và được sử dụng rộng rãi trên toàn bộ thị trường
1.2 Mã hóa có xác thực
1.2.1 Khái niệm
Cũng tương tự như mật mã nhẹ, mã hóa có xác thực đang là một hướng đi mới trong cộng đồng mật mã hiện nay Trong các nghiên cứu được công bố, nhìn chung mã hóa có xác thực (AE – Authenticated Encryption) có thể được hiểu là một hình thức mã hóa đảm bảo đồng thời tính bảo mật, tính toàn vẹn và tính xác thực của dữ liệu
Biến thể phổ biến nhất của AE là mã hóa có xác thực với dữ liệu liên kết (AEAD – Authenticated encryption with associated data) AEAD gắn dữ liệu liên kết (AD) với bản
mã và bối cảnh nơi nó xuất hiện, do đó giúp phát hiện và ngăn chặn những nỗ lực “cắt và dán” (copy-and-paste) bản mã hợp lệ sang một ngữ cảnh khác
Trang 19Hình 1.3: Mã hóa có xác thực
1.2.2 Nguyên lý thiết kế
Cách tự nhiên nhất để xây dựng các lược đồ mã hóa xác thực là kết hợp các nguyên thủy mã hóa hiện có Phương pháp này được gọi là “generic composition” [4] Có ba cách tiếp cận chính, bao gồm: Encrypt-and-MAC, Encrypt-then-MAC và MAC-then-Encrypt
a) EtM b) E&M c) MtE
Hình 1.4: Nguyên lý thiết kế mật mã có xác thực
Mã hóa có xác thực Khóa
Trang 20Encrypt-and-MAC (E&M)
MAC được tạo ra dựa vào bản rõ và bản rõ được mã hóa mà không cần MAC MAC
và bản mã được gửi đi cùng nhau Cách tiếp cận này được sử dụng trong lớp vận chuyển (transport layer) của SSH
Encrypt-then-MAC (EtM)
Đầu tiên, bản rõ được mã hóa, sau đó MAC được sinh ra dựa trên bản mã kết quả Bản mã và MAC được gửi đi cùng nhau Cách tiếp cận này được sử dụng trong giao thức IPsec
MAC-then-Encrypt (MtE)
MAC được tạo ra dựa vào bản rõ Sau đó bản rõ và MAC cùng được mã hóa để thu được bản mã Bản mã (chứa MAC đã mã hóa) được gửi đi MtE được sử dụng trong giao thức SSL/TLS
Thông qua nghiên cứu của mình, Ballare và Namprempre cũng đã chứng minh rằng
mã hóa một bản tin, sau đó áp dụng MAC vào bản mã (EtM) là tối ưu hơn so với hai phương pháp còn lại [4]
Ngoài các cách tiếp cận tự nhiên như trên, cũng có nhiều cách khác để xây dựng mật
mã có xác thực Trong những năm qua , nhiều lược đồ mã hóa xác thực hiệu quả hơn đã được xây dựng bằng các kỹ thuật khác nhau [5, 6], bao gồm hoán vị không sử dụng khóa (keyless permutations) [7] và mật mã dòng [8] Những cách tiếp cận mới này đã thay đổi hiểu biết của các nhà mật mã học về AE từ việc pha trộn các nguyên thủy mật mã sang xây dựng một một khối thống nhất ngay từ đầu
1.2.3 Quá trình phát triển
Nhu cầu về mã hóa xác thực được hình thành từ việc chúng ta nhận thấy rằng một số cuộc tấn thực tế được đưa vào các giao thức (bao gồm SSL/TLS) là do thiếu xác thực và kiểm tra tính toàn vẹn của dữ liệu
Giao thức Needham-Schroeder được Roger Needham và Michael Schroeder phát minh vào năm 1978, là một giao thức vận chuyển hướng tới sử dụng trên các mạng không
an toàn Bao gồm giao thức Needham-Schoroeder khóa đối xứng, nhằm mục đích thiết
Trang 21lập khóa phiên giữa hai bên và Needham-Schoroeder khóa công khai, nhằm cung cấp xác thực lẫn nhau giữa hai bên Giao thức này sử dụng một lược đồ mã hóa với độ an toàn IND-CPA Tuy nhiên Denning và Sacco đã thực hiện một cuộc tấn công phát lại (replay attack) lên giao thức này (1981) [9], chứng minh rằng một lược đồ với độ an toàn IND-CPA là không đủ mạnh trong nhiều trường hợp
Giai đoạn 1980-2000, nhiều cuộc tấn công được thực hiện lên các các chế độ hoạt động của mã hóa khối đã chứng minh tính không an toàn chúng Cuộc tấn công của Wagner [10] trên một lớp các lược đồ mật mã sử dụng CBC với kiểm tra dư thừa (CBC-mode encryption-with-redundancy) cho thấy chế độ hoạt động này không an toàn bất kể hàm kiểm tra (checksum) được tính như thế nào Năm 2001, nghiên cứu của Jee Hea An and Mihir Bellare cũng chỉ ra rằng hàm kiểm tra không dùng khóa (unkeyed checksum) là không đủ an toàn [11]
Năm 2004, Tom Yu, Sam Hartman và Kenneth Raeburn đã tìm ra nhiều lỗ hổng trong thiết kế của giao thức Kerberos 4 (một giao thức dùng để xác thực trong các máy tính hoạt động trên những đường truyền không an toàn) [12] Trong đó chỉ ra rằng, việc đảm bảo tính toàn vẹn dựa vào chế độ PCBC là hoàn toàn thất bại
Năm 1999, Virgil D Gligor và Pompiliu Donescu giới thiệu lược đồ mã hóa PCBC mới (iaPCBC) với tuyên bố đảm bảo tính bảo mật và tính toàn vẹn của bản tin trước các cuộc tấn công lựa chọn bản mã thích nghi [13] Tuy nhiên, iaPCBC đã nhanh chóng bị phá vỡ bởi Jutla (1999) và Ferguson, Whiting, Kelsey, Wagner (1999)
Từ trước năm 2000, hầu hết nỗ lực xây dựng mã hóa có xác thực đều dựa trên những mật mã đã có, cố gắng kết hợp chúng nhằm giảm chi phí, và đều đem lại kết quả không tốt Nó cũng cho thấy một khoảng cách lớn trong nhận thức về AE giữa những người làm
lý thuyết và thực tế Cho đến năm 2000, Mihir Bellare và Chanathip Namprempre mới có những nghiên cứu chính thức đầu tiên về AE Họ đưa ra một số định nghĩa và khái niệm liên quan Mở ra một hướng đi mới trong việc xây dựng mật mã có xác thực [4]
Giai đoạn những năm 2000 cũng là thời điểm mà nhu cầu về mã hóa xác thực trở nên cấp thiết Năm 1999, WEP trở thành tiêu chuẩn bảo mật IEEE 802.11 cho wi-fi (sử dụng mã hóa RC4 cùng với hàm kiểm tra toàn vẹn CRC-32) Tuy nhiên, những cuộc tấn công sau đó đã chứng minh WEP không đủ tính xác thực và đảm bảo tính riêng tư của
Trang 22bản tin WEP sau đó đã được đổi thành WPA (sử dụng TKIP), bản dự thảo tiếp theo dựa trên OCB (R, Bellare, Black, Krovetz 2001) Tuy nhiên để tránh các vấn đề về chính trị
và bằng sáng chế, CCM (Whiting, Housley, Ferguson 2002) đã được phát triển và sử dụng cho WPA2
Kể từ năm 2017, “Galois Counter Mode” (GCM) [14, 15] đã trở thành kỹ thuật phổ biến nhất để chuyển đổi một lược đồ mã hóa thông thường sang AE GCM thường được
áp dụng cho AES, và lược đồ AES-GCM được sử dụng trong rất nhiều cài đặt khác nhau,
ví dụ như các giao thức bảo mật cho Ethernet, OpenVPN, và nhiều dịch vụ giao tiếp web
an toàn khác Số lượng ứng dụng và bối cảnh cần đến mã hóa có xác thực ngày càng tăng, cũng như những điểm yếu đã xuất hiện trong GCM [16], đã đặt ra yêu cầu định nghĩa một tiêu chuẩn cho AE Vì lý do này, cộng động nghiên cứu mật mã quốc tế đã phát động một cuộc thi trên toàn thế giới để chọn ra danh mục các thuật toán cho AE, mang tên CAESAR
1.3 Cuộc thi CAESAR
Cuộc thi CAESAR bắt đầu từ năm 2013 và được đồng sáng lập bởi NIST và Dan Berstein Mục tiêu của cuộc thi là kêu gọi cộng đồng mật mã thiết kế các chương trình AE
an toàn mới Ứng viên chiến thắng dự kiến sẽ cải thiện AES-GCM với độ bảo mật cao hơn (với hiệu suất tương đương) hoặc nhanh hơn (với độ bảo mật tương đương) 57 đề án
đã được đề xuất ở vòng đầu tiên của cuộc thi [17, 18]
Các kiến trúc cơ sở cho các ứng viên của CAESAR bao gồm: mật mã khối (Block Cipher), Sponge, mật mã dòng (Stream Cipher), Hoán vị (Permutation), hàm nén (Compression Function), và các kiến trúc chuyên dụng (Dedicated)
Trang 23Bảng 1.1: Số lượng ứng viên tham dự CAESAR Kiến trúc Số lượng thành viên /56
Ở vòng 1, có 9 ứng viên được xem là không đạt tiêu chuẩn, và rút khỏi cuộc thi (bảng 1.2)
Bảng 1.2: Các ứng viên bị loại và rút khỏi cuộc thi STT Ứng viên Tuyên bố bảo mật Các cuộc tấn công
1 AES-COBRA Độ an toàn 64-bit cho cả tính
riêng tư và tính toàn vẹn; 128-bit trước tấn công phục hồi khóa và tấn công dự đoán thẻ xác thực
Tấn công giả mạo trên khối
mã n-bit chỉ với độ phức tạp O(n) và xác suất thành công
là 1/2
2 Calico Độ an toàn 127-bit cho tính riêng
tư của bản rõ và 63-bit cho tính toàn vẹn
Tấn công giả mạo và phục hồi khóa, yêu cầu 264 truy vấn trực tuyến với xác suất thành công bằng 1 để phục hồi 128 bit khóa
3 CBEAM Độ an toàn 127-bit cho tính riêng
tư
Tấn công vi sai có thể được khai thác để giả mạo (forgery) với xác suất thành công 2-43, trái với yêu cầu bảo mật 2-63
Trang 24128 và 256 bit) cho tính toàn vẹn tương ứng cho
2 phiên bản 128 và 256 bit
FASSER-128
Tấn công phân biệt (distinguishing attack) lên cả hai phiên bản 128 và 256 bit với chỉ 16 và 64 từ khóa (keystream words)
Tấn công khôi phục khóa thời gian thực có thể được thực hiện trên FASER-128 chỉ với 64 từ khóa (key words) để phục hồi toàn bộ khóa trên một máy tính cá nhân
5 HKC Độ an toàn 256 bit cho cả tính
riêng tư và toàn vẹn
Tấn công giả mạo lợi dụng hàm cập nhật tuyến tính
6 Marble Độ an toàn 128-bit cho cả tính
riêng tư và toàn vẹn
Tấn công giả mạo đơn giản trên chế độ hoạt động của Marble bằng cách sử dụng
264 truy vấn lựa chọn bản rõ
7 McMambo Độ an toàn 128-bit cho cả tính
riêng tư và 64-bit cho tính toàn vẹn
Tuyên bố mật mã Mambo không thể phân biệt (indistinguishable) đối với các hệ dự đoán ngẫu nhiên với một khóa cố định
Tấn công giả mạo với xác suất 2-24
Trang 25PAES-4 và
PAES-8)
hai phiên bản trong mô hình nonce-respecting, và chỉ 128-bit toàn vẹn của PAES-8 trong nonce-ignoring setting
hợp nonce-ignoring setting với chỉ 211 truy vấn
và không có tuyên bố bảo mật cho tính toàn vẹn
Tấn công giả mạo trong nonce-ignoring setting của PANDA-s với chi phí tính toán 264 và bộ nhớ không đáng kể
Tấn công giả mạo và tấn công khôi phục trạng thái trên PANDA-s với độ phức tạp thời gian là 241
Vòng 2 của cuộc thi được bắt đầu từ tháng 7/2015 với 30 thành viên từ 48 thành viên được giữ lại của vòng 1 Trong đó có 13 mã khối, 3 mã chuyên dụng, 3 mã dòng, 2 hoán vị, 8 sponge và 1 hàm nén Vòng 3 bắt đầu từ tháng 8/2016 với 15 thành viên và vòng cuối cùng bắt đầu từ 3/2018 với 8 thành viên
Trong quá trình diễn ra cuộc thi, đã có rất nhiều những nghiên cứu phân tích, đánh giá độ an toàn của các thành viên tham gia, bảng bên dưới tóm tắt một số cuộc tấn công
đã được thực hiện [18]:
Bảng 1.3: Một số cuộc tấn công trên các ứng viên của CAESAR Kiến trúc Thành viên Các cuộc tấn công
Mật mã khối
AES-COPA Tấn công giả mạo phổ quát AES-JAMBU Tấn công phân biệt AES-CMCC Tấn công phân biệt và tấn công
giả mạo AEZ Tấn công giả mạo và tấn công
khôi phục khóa AVALANCHE Tấn công giả mạo và tấn công
khôi phục khóa
Trang 26ELmD Tấn công khôi phục khóa Julius-ECB Tấn công giả mạo iFeed Tấn công giả mạo và tấn công
khôi phục khóa con LAC Tấn công giả mạo vi sai POET Khóa yếu, tấn công giả mạo trên
POET-G iSCREAM Tấn công giả mạo, khóa yếu, và
tấn công khôi phục khóa Silver Tấn công giả mạo, tấn công khôi
phục khóa và bản rõ
Mật mã dòng
ACORN Tấn công khôi phục trạng thái,
tấn công khôi phục khóa Sablier Tấn công khôi phục khóa Wheesht Tấn công phân biệt, tấn công khôi
phục khóa và tấn công giả mạo Raviyoyla Tấn công phân biệt và tấn công
giả mạo
Sponge
ICEPOLE Tấn công khôi phục trạng thái và
tấn công giả mạo
𝜋-cipher
Tấn công tag second-preimage, tấn công giả mạo, tấn công khôi phục khóa trong 2,5 vòng
PRIMATEs
Tấn công giả mạo, tấn công gây lỗi, tấn công khôi phục khóa lập phương trên PRIMATE-APE NORX Tấn công phân biệt, tấn công khôi
phục trạng thái/khóa trong 2 vòng
Đến tháng 2/2019, cuộc thi CAESAR kết thúc với danh sách 6 thành viên dành chiến thắng, được phân loại vào 3 hạng mục khác nhau:
1 Ứng dụng nhẹ (môi trường giới hạn về tài nguyên)
- Ascon (Christoph Dobraunig, Maria Eichlseder, Florian Mendel, Martin Schläffer)
- ACORN (Hongjun Wu)
2 Hiệu suất cao
- AEGIS-128 (Hongjun Wu, Bart Preneel)
- OCB (Ted Krovetz, Phillip Rogaway)
3 Độ bảo mật cao
Trang 27- Deoxys-II (Jérémy Jean, Ivica Nikolić, Thomas Peyrin, Yannick Seurin)
- COLM (Elena Andreeva, Andrey Bogdanov, Nilanjan Datta, Atul Luykx, Bart Mennink, Mridul Nandi, Elmar Tischhauser, Kan Yasuda)
Mặc dù CAESAR không phải là một dự án chính thức, nhưng đã tạo ra tiền đề và đem lại cảm hứng để xây dựng những tiêu chuẩn mã hóa có xác thực trong tương lai gần Trong chương này, luận văn đã trình bày khái niệm, nguyên lý thiết kế, quá trình phát triển của mật mã nhẹ và mã hóa có xác thực Giới thiệu về cuộc thi mật mã CAESAR; mục đích, các ứng viên tham gia và kết quả với danh sách các ứng viên giành chiến thắng Trong đó, ACORN và Ascon là hai hệ mật mã giành chiến thắng ở hạng mục mật mã nhẹ Trong chương tiếp theo, luận văn sẽ đi trình bày tổng quan về hai hệ mật mã này, phân tích các đặc trưng an toàn cũng như tổng hợp một số cuộc tấn công thử nghiệm
đã được thực hiện trong quá trình diễn ra cuộc thi
Trang 28Chương 2: HAI HỆ MẬT MÃ HẠNG NHẸ GIÀNH CHIẾN THẮNG TRONG CUỘC THI CAESAR: ACORN VÀ ASCON
2.1 Hệ mã ACORN
Acorn là một thuật toán mã hóa hạng nhẹ có xác thực, được nhà mật mã học người Singapore, Honjun Wu giới thiệu lần đầu tiên năm 2014 Trải qua 3 phiên bản với nhiều cải tiến, thuật toán đã trở thành một trong hai ứng viên giành chiến thắng trong cuộc thi CAESAR ở hạng mục ứng dụng nhẹ, trong môi trường giới hạn về tài nguyên Trong phần này, luận văn sẽ trình bày tổng quan về thuật toán, phân tích, đánh giá độ an toàn cũng như hiệu suất của thuật toán ở phiên bản mới nhất ACORN-v3
2.1.1 Tổng quan về thuật toán
ACORN là thuật toán mã hóa dòng, dựa trên các thanh ghi dịch phản hồi tuyến tính (LFSR) Trạng thái của thuật toán có kích thước 293 bit, được tạo nên bởi 6 thanh ghi dịch có độ dài lần lượt là 61, 46, 47, 39, 37 và 59 bit; cùng với một bộ đệm có độ dài 4 bit
Hình 2.1: Kiến trúc thanh ghi dịch của ACORN [19]
ACORN sử dụng khóa và vector khởi tạo với độ dài 128 bit Dữ liệu liên kết và bản
rõ có độ dài nhỏ hơn 264 bit Thẻ xác thực được tạo ra có độ dài nhỏ hơn hoặc bằng 128 bit
Trang 29adi bit thứ i của dữ liệu liên kết
adlen độ dài của dữ liệu liên kết 0 ≤ adlen < 264
c bản mã
ci bit thứ i của bản mã
cai bit điều khiển tại bước thứ i Được sử dụng để phân tách các quá
trình xử lý dữ liệu liên kết, xử lý bản rõ và tạo thẻ xác thực
cbi 1 bit điều khiển khác tại bước thứ i Cho phép một bit trong dòng
khóa tác động lên một bit phản hồi trong các quá trình khởi tạo, xử lý
dữ liệu liên kết và tạo thẻ xác thực
IV128 vector khởi tạo 128 bit
IV128,i bit thứ i của vector khởi tạo
K128 khóa 128 bit
K128,i bit thứ i của khóa
ksi bit khóa dòng tạo ra tại bước thứ i
pclen độ dài bit của bản rõ/bản mã 0 ≤ pclen < 264
mi bit dữ liệu thứ i
pi bit thứ i của bản rõ
Si trạng thái bắt đầu tại bước thứ i
Si,j bit thứ j của trạng thái Si 0 ≤ j ≤ 292
T thẻ xác thực
t độ dài bit của thẻ xác thực 64 ≤ t ≤ 128
2.1.1.2 Các hàm sử dụng trong thuật toán
Quá trình hoạt động của ACORN được thực hiện thông qua 3 hàm: Hàm tạo dòng bit khóa (KSG128), hàm phản hồi (FBK128) và hàm cập nhật trạng thái (StateUpdate128)
a Hàm tạo dòng bit khóa
Tại mỗi bước, dòng bit khóa sẽ được tính theo hàm sau
𝑘𝑠𝑖 = KSG128(S𝑖) = 𝑆𝑖,12⊕ 𝑆𝑖,154⊕ maj(𝑆𝑖,235, 𝑆𝑖,61, 𝑆𝑖,193) ⊕ ch(𝑆𝑖,230, 𝑆𝑖,111, 𝑆𝑖,66);
b Hàm phản hồi
𝑓𝑖 = 𝐹𝐵𝐾128(𝑆𝑖, 𝑐𝑎𝑖, 𝑐𝑏𝑖)
Trang 30= 𝑆𝑖,0⊕ (~𝑆𝑖,107) ⊕ maj(𝑆𝑖,244, 𝑆𝑖,23, 𝑆𝑖,160) ⊕ (𝑐𝑎𝑖&𝑆𝑖,196) ⊕ (𝑐𝑏𝑖&𝑘𝑠𝑖);
c Hàm cập nhật
Hàm cập nhật (StateUpdate128(𝑆𝑖, 𝑚𝑖, 𝑐𝑎𝑖, 𝑐𝑏𝑖)) được thực hiện qua 4 bước: Cập nhật trạng thái sử dụng LFSRs, tạo dòng bit khóa, tạo bit phản hồi và dịch 293 bit của thanh ghi
Cập nhật trạng thái dựa vào LFSRs
𝑓𝑖 = 𝐹𝐵𝐾128(𝑆𝑖, 𝑐𝑎𝑖, 𝑐𝑏𝑖) Tạo bit phản hồi
𝑆𝑖+1,𝑗 = 𝑆𝑖,𝑗+1với j=0 291
𝑆𝑖+1,292 = 𝑓𝑖 ⊕ 𝑚𝑖
Dịch 293 bit của ACORN
Hàm tạo dòng bit khóa và hàm tạo bit phản hồi là giống nhau ở phiên bản v3 và ACORN-v2, nhưng đã có những thay đổi so với phiên bản đầu tiên ACORN-v1 Hàm ch(Si,230, Si,111, Si,66) được chuyển từ hàm tạo bit phản hồi lên hàm tạo dòng bit khóa Sự thay đổi này giúp gia tăng độ an toàn cho ACORN trước tấn công dự đoán và xác định Điều này không làm ảnh hưởng đến hiệu suất, phân tích an toàn trong quá trình khởi tạo và hoàn thiện, cũng như những phân tích về tính toán vẹn của ACORN
Trang 31ACORN-Bảng 2.1: Sự khác nhau giữa ACORN-v1 và ACORN-v2,v3
2.1.1.3 Quá trình thực hiện của thuật toán
Thuật toán được thực hiện thông qua 5 quá trình: quá trình khởi tạo, quá trình xử lý
dữ liệu liên kết, quá trình mã hóa, quá trình tạo thẻ xác thực, quá trình giải mã và xác thực
Trang 32Hình 2.2: Lược đồ mã hóa của ACORN [20]
a Quá trình khởi tạo
Quá trình này nạp khóa, vector khởi tạo và chạy qua 1792 bước để khởi tạo trạng thái cho ACORN:
Khóa, Vector khởi tạo, Bản rõ, P
Khóa, Vector khởi tạo,
V Bản rõ, P
Trang 33b Quá tình xử lý dữ liệu liên kết
Sau quá trình khởi tạo, dữ liệu liên kết được sử dụng để cập nhật trạng thái cho ACORN:
AcornADprocessing(S, ad)
for i = 0 adlen - 1:
S StateUpdate128(S, adi, 1, 1)
end for
Bước step = 0 adlen - 1
Bước step = adlen + 128 adlen + 255
Trong trường hợp không có dữ liệu liên kết, vẫn cần chạy 256 bước để nạp các bit đệm Dòng bit khóa vẫn được sử dụng để cập nhật trạng thái do cbi = 1 Đặc trưng của thuật toán được thay đổi qua 128 bước (do cai = 0 trong 128 bước này), nhằm tách dữ liệu
Trang 34liên kết ra khỏi bản rõ/bản mã Việc phân tách này giúp ngăn chặn sử dụng một phần dữ liệu liên kết như bản mã hoặc sử dụng một phần bản mã như dữ liệu liên kết
c Quá trình mã hóa
Mỗi bit ci của bản mã sẽ được tính bằng phép toán xor giữa bit pi của bản rõ và bit khóa ksi Đồng thời bit pi cũng được sử dụng để cập nhật trạng thái Trong trường hợp không có bản rõ, vẫn cần chạy qua 256 bước
Trang 35thực để đảm bảo trạng thái của ACORN là an toàn đối với tấn công biết bản rõ và tấn công lựa chọn bản mã
Số vòng trong quá trình khởi tạo, xử lý dữ liệu liên kết, mã hóa và hoàn thiện thay đổi từ 1536, 512, 512, 512 (ACORN-v2) thành 1792, 256, 256, 768 (ACORN-v3) Có thể thấy sự thay đổi lớn nhất nằm ở số vòng của quá trình khởi tạo Điều này giúp bảo vệ khóa bí mật tốt hơn trong trường hợp giá trị nonce bị sử dụng lại
2.1.2 Các đặc trưng an toàn trong thiết kế của thuật toán
Để đảm bảo tính an toàn của ACORN, thuật toán cần tuân thủ các yêu cầu sau:
Khóa được tạo một cách ngẫu nhiên và bí mật
Mỗi cặp khóa – vector khởi tạo chỉ sử dụng để mã hóa 1 bản tin duy nhất và không sử dụng với hai thẻ xác thực với độ dài khác nhau
Nếu quá trình xác thực thất bại, không trả về bản rõ đã được giải mã và thẻ xác thực sai
2.1.2.1 An toàn trong quá trình khởi tạo
Tác giả H Wu phân tích sự an toàn của quá trình khởi tạo, chống lại tấn công lượng sai thông qua 3 thử nghiệm [19] Ở thử nghiệm đầu tiên, giả sử sau khi vector khởi tạo
được nạp vào, có sự khác biệt tại state 292 tại thời điểm bắt đầu của bước thứ i, các bit trạng thái khác là bí mật tại bước này Thử nghiệm cũng giả sử là sự sai khác của 𝑓𝑖⊕ 𝑘𝑠𝑖luôn luôn bị loại bỏ bất cứ khi nào có thể Xác suất lượng sai sẽ là 2-227 sau 400 bước Trong thử nghiệm thứ 2, tác giả cố gắng giảm thiểu sự sai khác ở bit phải nhất (right most) của các thanh ghi dịch phản hồi tuyến tính Xác suất lượng sai là 2-232sau 400 bước Không cải thiện so với thử nghiệm đầu tiên
Ở thử nghiệm thứ 3, tác giả tăng số bit sai khác ở điểm bắt đầu của bước thứ i, cụ thể ở các bit Si,230, Si,235 và Si,289 Xác suất lượng sai lúc này là 2-293 sau 400 bước, cũng không cải thiện so với thử nghiệm đầu tiên Một thử nghiệm khác được thực hiện với sự sai khác tại các bit Si,61, Si,66 và Si,107 cho xác suất lượng sai 2-289sau 400 bước
Kết quả của 3 thử nghiệm cho thấy, việc tăng số bit sai khác thậm chí có thể đem lại xác suất lượng sai nhỏ hơn Qua đây, có thể thấy quá trình khởi tạo của ACORN tương đối an toàn trước tấn công lượng sai
Trang 36Một phân tích khác cũng chỉ ra rằng: ACORN, với cấu trúc 6 thanh ghi dịch phản hồi tuyến tính (dòng khóa được sử dụng để tạo bit phản hồi trong quá trình khởi tạo), có
sự an toàn chống lại tấn công khối (cube attack)
2.1.2.2 An toàn trong quá trình mã hóa
Vì tính chất mã dòng cùng với trạng thái rất lớn được cập nhật liên tục nên các phương pháp tấn công mã hóa khối không thể được áp dụng trực tiếp với ACORN Ngoài
ra, trạng thái của ACORN được cập nhật bởi một hàm phi tuyến, do đó, sẽ là khá khó khăn cho việc sử dụng một phương pháp tấn công tuyến tính Tấn công phi tuyến cũng sẽ hoàn toàn không khả thi nếu như vector khởi tạo chỉ được sử dụng cùng với một khóa duy nhất
Các phương pháp tấn công mã dòng truyền thống như tấn công tương quan (correlation attack), tấn công tương quan nhanh (fast correlation attack) [21, 22, 23, 24], tấn công đại số (algebraic attack), tấn công đại số nhanh (fast algebraic attack) [25] khai thác hàm cập nhật tuyến tính của hệ mã, do đó khó có thể sử dụng để tấn công lên ACORN
Một phương pháp tấn công mã dòng hiệu quả khác là tấn công thời gian – bộ nhớ –
dữ liệu (time-memory-data attack) [26] Tuy nhiên tấn công này chỉ có hiệu quả với các
hệ mã dòng có độ dài khóa nhỏ hơn 1/2 kích thước trạng thái, trong khi độ dài khóa của ACORN là 128 bit và kích thước trạng thái là 293 Do đó, ACORN an toàn trước dạng tấn công này
Tác giả cũng phân tích sự an toàn của ACORN trong quá trình mã hóa trước tấn công dự đoán và xác định [27, 28], một phương pháp được sử dụng để tấn công các hệ mã dòng với hàm cập nhật tuyến tính và phi tuyến Đối với dạng tấn công này, một phần thông tin bí mật sẽ được dự đoán và sử dụng để khôi phục trạng thái của hệ mã Mỗi bit trong dòng khóa của ACORN được tính thông qua các bit trạng thái bởi một hàm phi tuyến:
𝑘𝑠𝑖 = 𝑆𝑖,12⊕ 𝑆𝑖,154⊕ maj(𝑆𝑖,235, 𝑆𝑖,61, 𝑆𝑖,193) ⊕ ch(𝑆𝑖,230, 𝑆𝑖,111, 𝑆𝑖,66)
Trang 37Giả sử hàm maj(Si,235, Si,61, Si,193) luôn cho đầu ra là Si,61 (với xác suất 3/4), và hàm ch(Si,230, Si,111, Si,66) luôn cho đầu ra là Si,66 (Si,230 = 0), khi đó ta thu được 2 phương trình tuyến tính:
{ 𝑆𝑖,230= 0
𝑘𝑠𝑖 = 𝑆𝑖,12⊕ 𝑆𝑖,154⊕ 𝑆𝑖,61⊕ 𝑆𝑖,66Xác suất hệ phương trình này xảy ra là 3/4 x 1/2 = 3/8 Giả sử rằng hàm phản hồi phi tuyến không làm ảnh hưởng tới tấn công dự đoán và xác định, sẽ cần 293 phương trình tuyến tính để khôi phục trạng thái của ACORN Như vậy xác suất để thực hiện thành
công là (3
8)293/2 = 2−206 Qua đó, có thể thấy được ACORN có sự an toàn để chống lại tấn công dự đoán và xác định
2.1.2.3 An toàn trong quá trình xác thực
Một cách tiếp cận phổ biến để tấn công vào quá trình xác thực của ACORN là thêm một sai khác vào trạng thái bằng cách sửa đổi bản mã hoặc dữ liệu liên kết Thiết kế với 6 thanh ghi dịch phản hồi tuyến tính đảm bảo rằng một bit sai khác được đưa vào sẽ tác động lên nhiều bit khác của trạng thái trước khi chúng được loại bỏ
Tại mỗi bước của thuật toán, có ba hàm phi tuyến được tham gia vào: 2 hàm maj và một hàm ch Tính chất lượng sai của hàm maj được hiểu là khi có một hoặc hai bit sai khác đầu vào, thì sai khác đầu ra sẽ là 1 với xác suất 0.5 Nếu có ba bit sai khác đầu vào thì sai khác đầu ra sẽ là 1 với xác suất 1 Tính chất lượng sai của hàm ch(x,y,z) được hiểu
là nếu có sai khác ở cả y và z, thì sai khác đầu ra là 1 với xác suất 1 Ngoài ra, nếu có bất
kỳ sai khác đầu vào nào, thì sai khác đầu ra sẽ là 1 với xác suất 0.5
Dựa vào sự sai khác đầu vào của các thanh ghi dịch cùng với tính chất lượng sai của các hàm phi tuyến, có thể tính được xác suất để loại bỏ sự khác biệt trong trạng thái là
2-281 Với xác suất lượng sai này, ACORN có khả năng tạo ra độ an toàn tương đương với
mã xác thực thông báo (MAC) 128 bit
Đối với tấn công giả mạo (forgery attack), kẻ tấn công chỉ có khả năng sửa đổi bản
mã hoặc dữ liệu liên kết Nếu vector khởi tạo được tái sử dụng, kể tấn công có thể sửa đổi bản rõ, như vậy hai bản rõ khác nhau có thể tạo ra cùng một thẻ xác thực Với ACORN,
Trang 38xác suất tấn công giả mạo thành công nếu vector khởi tạo được sử dụng lại là 2-120 Tuy nhiên, nếu vector khởi tạo được sử dụng lại, sẽ có nhiều tấn công khôi phục trạng thái nghiêm trọng hơn và bản tin có thể bị làm giả một khi trạng thái được khôi phục
2.1.3 Một số cuộc tấn công lên hệ mã ACORN
ACORN là một thuận toán mã hóa mới, do đó chưa có nhiều nghiên cứu được công
bố về thuật toán này Tuy nhiên, trong giai đoạn diễn ra cuộc thi CAESAR, cũng đã có một số nhà mật mã thực hiện những cuộc tấn công thử nghiệm nhằm đánh giá độ an toàn của thuật toán Dưới đây là một số cuộc tấn công nổi bật và kết quả đã được công bố
Bảng 2.2: Một số cuộc tấn công lên hệ mã ACORN
Tấn công khối
(Cube Attack) [20]
Md Iftekhar Salam Harry Bartlett
Ed Dawson Josef Pieprzyk Leonie Simpson Kenneth Koon-Ho Wong
Tấn công lên quá trình khởi tạo của ACORN với số vòng rút gọn
477, khôi phục khóa thành công với độ phức tạp 235
Tấn công lên quá trình mã hóa với cặp khóa –vector khởi tạo được sử dụng lại, độ phức tạp
272,8Chỉ ra rằng việc khôi phục các bit trạng thái của phiên bản ACORN đầy đủ có độ phức tạp nhỏ hơn tìm kiếm tham lam, nếu
sử dụng cùng một cặp khóa và vector khởi tạo để mã hóa nhiều bản rõ
Tấn công lựa chọn bản rõ trong điều kiện giá trị nonce được sử dụng lặp lại, với độ phức tạp khoảng 2235-42(n-1), n là số bản rõ
Trang 39được lựa chọn Nếu n ≥ 7, độ an toàn của ACORN bị phá vỡ
Tấn công gây lỗi
vào trạng thái
(Fault attack) [30]
Xiaojuan Zhang, Xiutao Feng, Dongdai Lin
Khôi phục trạng thái ban đầu với
độ phức tạp 𝑐 2293−7,03𝑛2 ≈
𝑐 2146,5−3,52𝑛Trong đó, n là số lỗi thực nghiệm 26<n<43
2.1.3.1 Tấn công khối
Tấn công khối là một phương pháp thám mã đại số được giới thiệu bởi Dinur và Shamir tại EUROCRYPT 2009 [31] Đây là phương phấp tấn công được áp dụng đối với nhiều loại mật mã đối xứng Ở mô hình tấn công ban đầu, kẻ tấn công đưa ra một hộp đen
để đánh giá một đa thức chưa biết Q, được xây dựng trên lk biến bí mật và lv biến công khai Kẻ tấn công cũng được giả sử là có quyền truy cập vào một biến đầu ra duy nhất Hầu hết các lược đồ mã hóa đối xứng có thể được định nghĩa bởi một đa thức với các biến mật (khóa bí mật) và các biến công khai (văn bản gốc, bản mã, vector khởi tạo, dữ liệu liên kết, …) Tấn công khối là một loại tấn công đại số nhằm phục hồi biến bí mật của lược đồ mật mã bằng cách giải các phương trình đa thức được xác định bởi lược đồ Ý tưởng của phương pháp là cấu trúc các giá trị biến công khai thành các phương trình bậc thấp và giải hệ phương trình này để tìm ra các giá trị bí mật của hệ mã Quá trình tấn công chia làm hai giai đoạn: giai đoạn tiền xử lý và giai đoạn online
Giai đoạn tiền xử lý
Ở giai đoạn tiền xử lý, kẻ địch có thể tiếp cận cả các biến bí mật và các biến công khai Mục tiêu của giai đoạn này là thiết lập các phương trình tuyến tính của các biến bí mật bằng cách lựa chọn các khối phù hợp Ký hiệu Q(K,V) là đa thức hộp đen được tạo từ
lk biến bí mật trong 𝐾 = {𝑘0, … , 𝑘𝑙𝑘−1} và lv biến công khai trong 𝑉 = {𝑣0, … , 𝑣𝑙𝑣−1} Khối kích thước lc được chọn từ lc biến công khai 𝑣𝑖 ∈ 𝑉 𝑙𝑣− 𝑙𝑐 biến công khai còn lại thường được đặt bằng 0 Với khối được chọn, kẻ địch tính giá trị của đa thức hộp đen và kiểm tra xem có quan hệ tuyến tính hay không
Giai đoạn online
Trang 40Trong giai đoạn này, kẻ tấn công tiếp cận các biến công khai và các khối được thiết lập ở giai đoạn tiền xử lý để tìm ra các biến bí mật Kẻ địch tính toán và lấy tổng tất cả các đầu ra của đa thức chính trên tất cả các giá trị có thể của khối đã được xác định ở vế phải và trái của phương trình tuyến tính tương ứng Hệ phương trình thu được có thể được giải bằng phương pháp khử Gaussian Thuật toán 1 (Algorithm 1) mô tả tấn công khối tổng quát [20]
Algorithm 1 Algorithm for Cube Attack
Inputs: Output keystream bits, Number of linearity test, Initial cube size, Number of
Do the linearity test and construct the linear equation
for Number of Cubes Tested do
for Number of linearity test do
if nonlinear then
if Cubes Tested < Number of Cubes Tested then
Select another cube of size l_c and do the linearity test
else
Increase the number of cube variables l_c
end if else
Compute the coefficients of the secret variables by summing over all the possible values of the cube
if all the coefficients are zero then
Select another subset of l_c public variables
else
Output the coefficients