Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH
Transcript of Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH
ĐẠ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
ĐẠ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
Ngành: Khoa học máy tính
Chuyên ngành: Khoa học máy tính
Mã số: 8480101.01
LUẬN VĂN THẠC SĨ
Ngành: Khoa học máy tính
CÁN BỘ HƯỚNG DẪN
TS. Lê Phê Đô
HÀ NỘI - 2019
i
TÓ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
ii
LỜ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!
iii
LỜ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
iv
MỤ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
v
2.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
vi
DANH 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
vii
DANH 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
viii
DANH MỤC VIẾT TẮT
Ký hiệu Dạng đầy đủ
AES Advanced Encryption Standard: là mộ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
GCM Galois/Counter Mode: là một chế độ điều
khiển trong mã hóa khối khóa đối xứng
IoT Internet of Things – Vạn vật kết nối: Một
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
CAESAR Competition for Authenticated Encryption:
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
RFID Radio Frequency Identification: Hệ thống
nhận dạng bằng tần số của sóng vô tuyến
RAM Random Access Memory: một loại bộ nhớ
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ớ
PC Personal Computer: máy tính cá nhân
NIST National Institute of Standards and
Technology: Viện tiêu chuẩn và Công nghệ
ix
của Mỹ
AE Authenticated Encryption: mã hóa có xác
thực
AEAD Authenticated encryption with associated
data: mã hóa có xác thực với dữ liệu liên
kết
MAC Message authentication code: Mã xác thực
thông báo
SSL/TLS Secure Sockets Layer/Transport Layer
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
IND-CPA Indistinguishability under chosen-plaintext
attack: định nghĩa về an toàn cho hệ khóa
công khai
WPA Wifi Protected Access: Phương thức được
liên minh Wifi đưa ra để thay thế WEP
WEP Wired Equivalent Privacy: Cơ chế bảo mật
đượ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
Ethernet Một công nghệ mạng cục bộ nhằm chuyển
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)
OpenVPN Một phần mềm mạng riêng ảo mã nguồn
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ủ
x
LUTs Lookup table - bảng tra cứu
GE Gate equivalence: Cổng tương đương - một
đơ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ố
UDP User Datagram Protocol: giao thức giúp
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
MSB Most significant bit: bit có trọng số cao
nhất
LSB Least significant bit: bit có trọng số thấp
nhất
1
MỞ ĐẦ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.
2
Từ đó, đư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.
3
Chương 1: TỔNG QUAN
1.1. Mật mã nhẹ
1.1.1. Khái niệm
Hiện nay, vẫn chưa có một định nghĩa chính thức nào về mật mã nhẹ được công bố
bởi các hệ thống đánh giá mật mã tiêu chuẩn. Tuy nhiên, trong nhiều nghiên cứu, mật mã
nhẹ có thể được hiểu là những thuật toán và giao thức mật mã được thiết kế để phù hợp
cho việc cài đặt trên các môi trường bị hạn chế về tài nguyên như các thẻ RFID, cảm biến,
thẻ thông minh, các hệ thống nhúng, …
Cá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ẹ.
1.1.2. Nguyên lý thiết kế
Có nhiều cách tiếp cận trong việc tìm kiếm giải pháp để giải quyết các vấn đề cần
đến mật mã nhẹ:
- Sử dụng các mật mã truyền thống, nếu có thể
- Điều chỉnh các mật mã truyền thống để thích nghi với các thành phần phần
cứng và những giới hạn của hệ thống với chi phí thấp.
- Xây dựng, phát triển các giải pháp, thuật toán mới, chuyên dụng trên cả phần
cứng và phần mềm.
Cho đến nay, hầu hết các nghiên cứu đều tập trung vào hướng tiếp cận thứ 3 và đã
đạt được những kết quả tốt. Tuy nhiên việc xây một thuật toán mật mã thực thi được trên
cơ sở phần cứng hạn chế cũng có thể phải đánh đổi bằng độ bảo mật hoặc độ bền tổng thể
suy giảm.
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)
4
Hì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.
Nối tiếp Song song
8 vòng
48 vòng
80 bit
256 bit
An toàn
Chi phí Hiệu suất
Kích thước khóa Số vòng
Kiến trúc
5
- 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]
6
Hì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.
7
Hì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
Nonce
Bản rõ Dữ liệu liên kết
Bản mã Dữ liệu liên kết Thẻ xác thực
Hàm băm
Khóa 1
Bản rõ
Mã hóa
Bản mã MAC
Khóa 2
Hàm băm Khóa
Bản rõ
Mã hóa
Bản mã MAC
Bản rõ Khóa
Bản rõ MAC
Mã hóa
Bản mã
Hàm băm
8
Encrypt-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
9
lậ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
10
bả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)
11
Bảng 1.1: Số lượng ứng viên tham dự CAESAR
Kiến trúc Số lượng thành viên /56
Block cipher 30
Sponge 10
Stream cipher 9
Permutation 3
Dedicated 3
Compression Function 1
(POLAWIS không được xem xét vì kiến trúc rất phức tạp của nó)
Ở 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
4 FASER
(2 phiên bản
Độ bảo mật hoàn toàn cho tính
riêng và độ an toàn 64 và 96 bit
Tấn công tương quan
(correlation attack) lên
12
128 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
8 PAES
(2 phiên bản
Độ an toàn 128-bit cho cả tính
riêng tư và tính toàn vẹn với cả
Tấn công giả mạo phổ quát
lên PAES-8 trong trường
13
PAES-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
9 PANDA
(2 phiên bản
PANDA-s và
PANDAb)
Độ an toàn 128-bit cho cả tính
riêng tư và tính toàn vẹn trong
nonce-respceting setting, 128-bit
cho PANDA-b trong nonce-
ignoring setting và chỉ 128-bit
cho tính riêng tư của PANDA-b
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
++AE Tấn công giả mạo
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
CBA Tấn công phân biệt
14
ELmD 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
Hoán vị Prost-OTR Tấn công giả mạo
Đế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
15
- 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.
16
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
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.
2.1.1.1. Một số định nghĩa và ký hiệu
⊕ phép toán XOR
& phép toán AND
∼ phép toán NOT
|| phép toán ghép bit
AD Dữ liệu liên kết (associated data) (dữ liệu này sẽ không được mã hóa
hay giải mã)
mi --
fi
0 23 60 61 66 106 107 111 153 154 160 192 193 196 229 230 235 288 289 292
17
adi 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
P bản rõ.
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(𝑆𝑖, 𝑐𝑎𝑖, 𝑐𝑏𝑖)
18
= 𝑆𝑖,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.
StateUpdate128(𝑺𝒊,𝒎𝒊, 𝒄𝒂𝒊, 𝒄𝒃𝒊)
𝑆𝑖,289 = 𝑆𝑖,289⊕𝑆𝑖,235⊕𝑆𝑖,230
𝑆𝑖,230 = 𝑆𝑖,230⊕𝑆𝑖,196⊕𝑆𝑖,193
𝑆𝑖,193 = 𝑆𝑖,193⊕𝑆𝑖,160⊕𝑆𝑖,154
𝑆𝑖,154 = 𝑆𝑖,154⊕𝑆𝑖,111⊕𝑆𝑖,107
𝑆𝑖,107 = 𝑆𝑖,107⊕𝑆𝑖,66⊕𝑆𝑖,61
𝑆𝑖,61 = 𝑆𝑖,61⊕𝑆𝑖,23⊕𝑆𝑖,0
Cập nhật trạng thái dựa vào LFSRs
𝑘𝑠𝑖 = KSG128(S𝑖) Tạo dòng bit khóa
𝑓𝑖 = 𝐹𝐵𝐾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 ACORN-
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.
19
Bảng 2.1: Sự khác nhau giữa ACORN-v1 và ACORN-v2,v3
ACORN-v1 ACORN-v2,v3
KSG128(S𝑖) = 𝑆𝑖,12⊕ 𝑆𝑖,154
⊕maj(𝑆𝑖,235, 𝑆𝑖,61, 𝑆𝑖,193)
KSG128(S𝑖) = 𝑆𝑖,12⊕ 𝑆𝑖,154
⊕maj(𝑆𝑖,235, 𝑆𝑖,61, 𝑆𝑖,193)
⊕ ch(𝑆𝑖,230, 𝑆𝑖,111, 𝑆𝑖,66)
𝐹𝐵𝐾128(𝑆𝑖, 𝑐𝑎𝑖 , 𝑐𝑏𝑖) =
𝑆𝑖,0⊕ (~𝑆𝑖,107)⊕maj(𝑆𝑖,244, 𝑆𝑖,23, 𝑆𝑖,160)
⊕ ch(𝑆𝑖,230, 𝑆𝑖,111, 𝑆𝑖,66)
⊕ (𝑐𝑎𝑖&𝑆𝑖,196)
⊕ (𝑐𝑏𝑖&𝑘𝑠𝑖)
𝐹𝐵𝐾128(𝑆𝑖, 𝑐𝑎𝑖 , 𝑐𝑏𝑖) =
𝑆𝑖,0⊕ (~𝑆𝑖,107) ⊕maj(𝑆𝑖,244, 𝑆𝑖,23, 𝑆𝑖,160)
⊕ (𝑐𝑎𝑖&𝑆𝑖,196)
⊕ (𝑐𝑏𝑖&𝑘𝑠𝑖)
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.
20
Hì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:
AcornInit(S, K, IV)
S-1792 = {0} Khởi tạo trạng thái
for i = 0 127:
S StateUpdate128(S, Ki, 1, 1)
end for
for i = 0 127:
S StateUpdate128(S, IVi, 1, 1)
1792 bước cập nhật trạng thái
Hàm phản hồi
Trạng thái của ACORN
Hàm tạo khóa
Hàm cập
nhật
trạng thái
Khóa,
Vector khởi tạo,
Bản rõ, P
Dòng bit khóa,
Z
MÃ
HÓ
A
Hàm phản hồi
Trạng thái của ACORN
Hàm tạo khóa
Hàm cập
nhật trạng
thái
Khóa,
Vector khởi tạo,
V Bản rõ, P
Dòng bit khóa,
Z
GIẢ
I M
Ã
Bản mã
21
end for
S StateUpdate128(S, K0⊕1, 1, 1)
for i = 1 1535:
S StateUpdate128(S, Ki mod 128, 1, 1)
end for
Do bit điều khiển cbi = 1 nên bit trong dòng khóa được sử dụng để cập nhật trạng
thái.
Bit khóa được sử dụng để tác động lên quá trình khởi tạo trong 1664 bước (ở phiên
bản ACORN-v1, bit khóa chỉ được sử dụng trong 128 bước). Sự thay đổi này giúp cải
thiện độ an toàn của thuật toán để chống lại các cuộc tấn công sử dụng lại giá trị nonce –
nonce reuse attack)
b. 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
S StateUpdate128(S, 1, 1, 1) Bước step = adlen
for i = 1 127:
S StateUpdate128(S, 0, 1, 1)
end for
Bước step = adlen +1 adlen + 127
for i = 0 127
S StateUpdate128(S, 0, 0, 1)
end for
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
22
liê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.
AcornEncrypt(S, p)
for i = 0 pclen - 1:
S StateUpdate128(S, pi, 1, 0)
ci = pi ⊕ ksi+adlen+256
end for
Bước step = adlen + 256
adlen + pclen +255
S StateUpdate128(S, 1, 1, 0) Bước step = adlen + pclen +256
for i = 1 127:
S StateUpdate128(S, 0, 1, 0)
end for
Bước step = adlen + pclen + 257
adlen + pclen + 383
for i = 0 127
S StateUpdate128(S, 0, 0, 0)
end for
Bước step = adlen + pclen + 384
adlen + pclen + 511
d. Quá trình tạo thẻ xác thực
Kết thúc quá trình mã hóa, thuật toán được chạy thêm 768 bước để tạo thẻ xác thực.
AcornFinalization(S)
for i = 0 767:
S StateUpdate128(S, 0, 1, 1)
end for
Bước step = adlen + pclen + 512
adlen + pclen + 1279
T = ksadlen+pclen+1279-t+1|| ksadlen+pclen+1279-t+2||…|| ksadlen+pclen+1279 (64 ≤ t ≤ 128)
e. Quá trình giải mã và xác thực
Quá trình giải mã và xác thực được thực hiện tương tự như quá trình mã hóa và tạo
thẻ xác thực. Nếu quá trình xác thực thất bại, sẽ không trả về bản mã cũng như thẻ xác
23
thự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 state292 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-232 sau 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-289 sau 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.
24
Mộ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)
25
Giả 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⊕ 𝑆𝑖,66
Xá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,
26
xá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
Cuộc tấn công Tác giả Kết quả
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,8
Chỉ 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 khôi
phục khóa (Full
key – recovery)
[29]
Colin Chaigneau,
Thomas Fuhr,
Henri Gilbert
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õ
27
đượ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
28
Trong 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
cubes tested
Output: Secret variables of the cryptosystem
Preprocessing Phase
Select a random cube: Estimate the degree, d of the polynomial, choose a initial cube size
l_c≤d-1 and select a subset of l_c public variables v_i
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
29
Construct the linear equations
end if
end if
end for
end for
Do the preprocessing phase till sufficient number of linear equations are generated
Online Phase
Find the right hand side of the linear equations:
for Each possible cube found in preprocessing phase do
Compute the output bit
Sum all the output bits for all the possible values of the cube
end for
Solve the linear equations to recover the secret variables
Tấn công khối đã được Salam và các cộng sự sử dụng để tấn công thử nghiệm lên
ACORN [20] ở các giai đoạn: khởi tạo và mã hóa. ACORN không nhận bất kỳ đầu vào từ
bên ngoài nào trong suốt quá trình tạo thẻ xác thực, do đó, tấn công khối không thể được
thực hiện trong giai đoạn này.
Quá trình khởi tạo của ACORN có số vòng lớn: adlen + 2048 (nghiên cứu của
Salam coi quá trình khởi tạo bao gồm cả quá trình xử lý dữ liệu kết, do dòng bit khóa chỉ
được trả về sau khi kết thúc hai quá trình này). Trong trường hợp không có dữ liệu liên
kết, số vòng nhỏ nhất bằng 2048. Bậc đa thức đầu ra của ACORN tăng khi số vòng tăng,
và sẽ rất lớn khi sử dụng toàn bộ 2048 vòng. Kích thước khối lập phương cũng sẽ rất lớn
nếu lựa chọn khối sau 2048 vòng. Điều này đòi hỏi thời gian tính toán rất lớn. Do đó, thử
nghiệm chỉ được tiến hành trên phiên bản rút gọn số vòng của ACORN.
Với số vòng khởi tạo rút gọn xuống 500, kẻ tấn công cần đoán ra 107 bit khóa và 21
bit còn lại có thể được khôi phục dựa vào việc giải 21 phương trình tuyến tính được tìm
ra. Để rút ngắn việc tìm kiếm vét cạn hơn nữa, thử nghiệm giảm số vòng khởi tạo xuống
477 mà vẫn tìm ra 21 phương trình tuyến tính. Độ phức tạp để thực hiện tấn công là
khoảng 235.
30
Các tác giả cũng thực hiện tấn công khối lên quá trình mã hóa của ACORN nhằm
tìm ra trạng thái của thuật toán. Bản rõ được sử dụng làm tham số đầu vào. Tại mỗi vòng
nạp bản rõ, xem xét tính chất tuyến tính của hàm đầu ra. Bằng phương pháp này, nhóm
tác giả đã xác định được 103 phương trình tuyến tính với 293 biến. Điều này là không đủ
để giảm độ phức tạp xuống dưới tìm kiếm vét cạn (2128). Bằng cách lựa chọn khối lập
phương mới là khối hợp lệ nếu nó thỏa mãn phép thử tuyến tính (ở thực nghiệm trước
khối lập phương được chọn ngẫu nhiên nên làm tăng thời gian thực hiện), thu được 245
phương trình tuyến tính với 293 biến. Trong số 245 khối lập phương này, 42 khối có kích
thước 1 và các khối còn lại có kích thước 2. Độ phức tạp để tìm ra được các bit trạng thái
trong trường hợp này là khoảng 272,8.
Kết quả của cuộc tấn công chỉ ra rằng có thể tìm ra được trạng thái của thuật toán
với độ phức tạp nhỏ hơn so với việc tìm kiếm vét cạn. Tuy nhiên, điều này chỉ đúng khi
người gửi dùng cùng một cặp khóa – vector khởi tạo để mã hóa hoặc giải mã các bản rõ
khác nhau. Tấn công này không đe dọa đến sự an toàn của ACORN nếu như sử dụng
đúng đề nghị của người thiết kế.
2.1.3.2. Tấn công khôi phục khóa
Chaigneau và các cộng sự đã tiến hành tấn công khôi phục khóa lên ACORN với
giả định giá trị nonce được sử dụng lặp lại. Cuộc tấn công hoạt động như sau:
- Nếu giá trị nonce được sử dụng để mã hóa nhiều bản tin với cùng dữ liệu liên
kết thì trạng thái của ACORN là giống nhau sau quá trình xử lý dữ liệu liên
kết. Vì thế, mục tiêu của cuộc tấn công là thu thập thông tin về giá trị này
của trạng thái.
- Để thực hiện điều này, các tác giả khai thác thực tế là dòng bit khóa phụ
thuộc vào bản rõ sau một vài vòng. Điều này cho phép rút ra một hệ phương
trình tuyến tính có thể giải được liên quan đến trạng thái của ACORN.
- Sau đó, một khi trạng thái được khôi phục, có thể thực hiện ngược lại các
bước của thuật toán để tìm ra khóa bí mật.
31
Độ phức tạp của cách thức tấn công này khoảng 2235-42(n-1), với n là số bản rõ được
lựa chọn. Tính an toàn của ACORN sẽ bị phá vỡ nếu thực hiện tấn với nhiều hơn hoặc
bằng 7 bản rõ được lựa chọn.
Tuy nhiên, cuộc tấn công này chỉ được thực hiện trong điều kiện giá trị nonce được
sử dụng lại và không phá vỡ đi tuyên bố bảo mật của ACORN.
2.1.3.3. Tấn công gây lỗi vào trạng thái
Tấn công gây lỗi là một trong những phương pháp tấn công kênh kề hiệu quả nhất
và đã thu hút được cộng đồng mật mã học gần đây. Tấn công được thực hiện trên các thiết
bị vật lý, cho phép kẻ tấn công đưa các lỗi bằng laser (hoặc các xung không đều) nhằm
thay đổi một hay nhiều bit trạng thái của thuật toán. Sau đó sử dụng các thông tin thu
được từ trạng thái lỗi và không lỗi để tìm ra các thông số bí mật của hệ mật. Xiaojuan
Zhang cùng các cộng sự đã thực hiện tấn công gây lỗi lên ACORN với giả định rằng một
lỗi được đưa ngẫu nhiên vào trạng thái ban đầu của ACORN. Quá trình tấn công chia làm
hai giai đoạn: xác định vị trí lỗi và giải các phương trình thu được từ lỗi [30].
Trung bình, tấn công có thể thu được 7,03 phương trình tuyến tính và 4,23 phương
trình phi tuyến từ một lỗi được đưa vào trạng thái. Với 27 lỗi được thử nghiệm, thu được
304 phương trình, bao gồm 190 phương trình tuyến tính. Bằng việc dự đoán 52 bit, trạng
thái khởi tạo có thể được khôi phục. Độ phức tạp thời gian tính toán để khôi phục trạng
thái khởi tạo là c.252, trong đó c là độ phức tạp thời gian để giải phương trình tuyến tính
với 51 biến. Tấn công tiếp tục được thực hiện trên 42 lỗi và thu được 295 phương trình
tuyến tính, độ phức tạp thời gian tương đương giải phương trình tuyến tính với 293 biến.
Tổng quát, độ phức tạp thời gian tính toán để khôi phục trạng thái khởi tạo được xấp
xỉ theo công thức:
𝑐. 2293−7,03𝑛
2 ≈ 𝑐. 2146,5−3,52𝑛
Trong đó, n là số lỗi thực nghiệm 26<n<43
Tấn công cũng được thực hiện đối với phiên bản ACORN v2 và kết quả cho thấy
phiên bản ACORN v3 thậm chí dễ bị tổn thương hơn bởi tấn công gây lỗi. Nguyên nhân
chính là do một phần hàm phản hồi được đưa vào hàm tạo dòng bit khóa. Điều này giúp
32
cho ACORN v3 có độ an toàn cao hơn trước tấn công dự đoán và xác định nhưng lại kém
an toàn trước tấn công gây lỗi so với phiên bản trước đó.
2.1.4. Hiệu suất của thuật toán
Hiệu suất trên phần cứng
Phiên bản ACORN 8 bit song song được Tao Huang cài đặt trên Xilinx Virtex 7 sử
dụng 499 LUTs (Look up table) và đạt thông lượng 3.4 Gbits/s. Một phiên bản khác với
32 bit song song trên Xilinx Virtex 7 sử dụng 7979 LUTs và đạt thông lượng 11.3 Gbits/s.
Hiệu suất trên phần mềm
Phiên bản ACORN cài đặt bằng ngôn ngữ C, chạy trên vi xử lý Intel Core i7-6550U
2.2GHz, hệ điều hành Window 10 64-bit (đã vô hiệu hóa Turbo Boost) cho kết quả như
bảng 2.3.
Bảng 2.3: Tốc độ (cpb) của ACORN với các độ dài bản rõ khác nhau
trên bộ xử lý Intel Skylake processor [19]
64B 128B 256B 512B 1024B 2048B 4096B
Encryption 38.2 23.2 15.4 11.8 11.2 8.8 8.2
Decryption 37.8 22.1 14.3 10.5 8.4 7.5 7.1
2.2. Hệ mã Ascon
Ascon là một hệ mật mã có xác thực hạng nhẹ, được thiết kế để dễ dàng cài đặt và
có cơ chế chống lại tấn công kênh bên. Ascon được phát triển bởi 4 nhà mật mã học
Christoph Dobraunig, Maria Eichlseder, Florian Mendel, Martin Schläffer. Trải qua 4
vòng thi của cuộc thi CAESAR với 3 phiên bản v1, v1.1 và v1.2, Ascon đã trở thành ứng
viên xuất sắc nhất cho hạng mục ứng dụng nhẹ. 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 Ascon v1.2.
2.2.1. Tổng quan về thuật toán
Ascon là một họ thuật toán mã hóa có xác thực có dạng Ascona,b-k-r. Các thành viên
của họ thuật toán được tham số hóa bằng độ dài khóa k≤128 bit, tốc độ bit r và số lượng
vòng bên trong a và b. Mỗi thiết kế quy định một thuật toán mã hóa có xác thực Ɛa,b,k,r và
33
một thuật toán giải mã Ɗa,b,k,r. Đề xuất sử dụng chính là Ascon-128 và đề xuất thứ hai là
Ascon-128a [32].
Ascon sử dụng kiến trúc sponge với hàm khởi tạo khóa và hoàn thiện khóa mạnh
hơn. Độ dài khóa, thẻ xác thực và giá trị nonce được khuyến nghị là 128 bit. Sponge hoạt
động trên 320 bit trạng thái, với độ dài mỗi khối bản tin là 64 hoặc 128 bit. Ascon sử
dụng hai hoán vị pa và pb trong đó pa với số vòng a = 12 được dùng trong quá trình khởi
tạo và quá trình hoàn thiện (finally), pb với số vòng 𝑏 ∈ {6, 8} được dùng trong quá trình
xử lý dữ liệu liên kết và bản rõ.
Bảng 2.4: Các tham số cài đặt đề xuất cho Ascon [32]
Tên Thuật
toán
Kích thước (bit) Hoán vị (vòng)
Khóa Nonce Thẻ xác
thực
Khối pa pb
Ascon-
128
Ascon12,6-
128-64
128 128 128 64 12 6
Ascon-
128a
Ascon12,8-
128-128
128 128 128 128 12 8
2.2.1.1. Một số định nghĩa và ký hiệu
𝑥𝜖{0,1}𝑘 chuỗi bit x với độ dài k bit
0𝑘, 0∗ chuỗi bit 0 với độ dài k hoặc tùy ý
|𝑥| Độ dài chuỗi bit x (bit)
⌊𝑥⌋𝑘 Đoạn k bit đầu tiên của chuỗi bit x (most significant)
⌈𝑥⌉𝑘 Đoạn k bit sau của chuỗi bit x (least significant)
𝑥 ⊕ y Phép toán xor chuỗi bit x và y
𝑥||y Phép toán ghép chuỗi bit x và y
𝑆 320 bit trạng thái của sponge
𝑆𝑟,𝑆𝑐 r-bit rate và c-bit capacity của trạng thái S
𝑥0, … , 𝑥4 Năm từ 64 bit của trạng thái S
𝐾,𝑁, 𝑇 Khóa K, nonce N và thẻ xác thực K (độ dài <= 128 bit)
𝑃, 𝐶, 𝐴 Bản rõ P, bản mã C, dữ liệu liên kết A (với mỗi khối: Pi, Ci, Ai)
34
⊥ Lỗi, xác thực không thành công
p, pa, pb Hoán vị pa, pb tương ứng với a, b vòng cập nhật p
2.2.1.2. Phương thức hoạt động
Ascon sử dụng cơ chế hoạt động dựa trên duplex-sponge cho việc mã hóa có xác
thực. Một sponge có thể được định nghĩa dưới dạng [f, pad, r] trong đó f là hàm hoán vị,
pad là một quy tắc đệm và r là tốc độ bit.
Quá trình mã hóa của Ascon được chia làm 4 giai đoạn:
Khởi tạo: Khởi tạo trạng thái với khóa K và giá trị nonce N
Xử lý dữ liệu liên kết: cập nhật trạng thái với các khối dữ liệu liên kết Ai
Quá trình mã hóa: lần lượt đưa các khối dữ liệu Pi vào trạng thái và trích xuất các
khối bản mã Ci
Hoàn thiện: đưa khóa K trở lại và trích xuất thẻ xác thực T
Hình 2.3: Cơ chế hoạt động của Ascon [32]
a. Quy tắc đệm
Trong Ascon, kích thước một khối của bản tin là r bit. Quá trình đệm thêm một bit 1
và một số bit 0 vào mỗi khối để đạt được các khối có kích thước là bội của r. Khi đó, bản
tin sẽ được chia thành t khối với kích thước r bit: P1||…||Pt. Quá trình này cũng được thực
hiện tương tự với dữ liệu liên kết, chia dữ liệu liên kết thành s khối với kích thước r bit:
pa
A1
0*||K
As P1 C1
0*||1
pb pb pb pa pb
Pt-1 Ct-1 Ct Pt
K||0* K
T
320
r
c c c
r
c c
r
k IV||K||N
pa
A1
0*||K
As P1 C1
0*||1
pb pb pb pa pb
Pt-1 Ct-1 Ct Pt
K||0* K
T
320
r
c c c
r
c c
r
k IV||K||N
Initialization
Initialization
Associated Data Plaintext Finalization
Associated
Data
Ciphertext Finalization
35
A1||…||As. Trường hợp không có dữ liệu liên kết (kích thước bằng 0), quá trình đệm sẽ
không được thực hiện.
𝑃1, … , 𝑃𝑡 ← 𝑝𝑎𝑑𝑟(𝑃) = t khối r-bit của 𝑃||1||0𝑟−1−(|𝑃| 𝑚𝑜𝑑 𝑟)
𝐴1, … , 𝐴𝑠 ← 𝑝𝑎𝑑𝑟(𝐴) = {s khối r − bit của 𝐴||1||0(𝑟−1−(|𝐴| 𝑚𝑜𝑑 𝑟)), |𝐴| > 0
∅, |𝐴| = 0
b. Quá trình khởi tạo
Quá trình này khởi tạo 320 bit trạng thái của Ascon từ khóa K, giá trị nonce N (đều
có kích thước k bit) và vector khởi tạo IV:
AsconInit
𝐼𝑉 = 𝑘||r||a||b||0288−2𝑘
= {80400𝑐0600000000 𝑣ớ𝑖 𝐴𝑠𝑐𝑜𝑛 − 12880800𝑐0800000000 𝑣ớ𝑖 𝐴𝑠𝑐𝑜𝑛 − 128𝑎
Khởi tạo vector khởi tạo IV từ 4
giá trị nguyên 8 bit: k, r, a, b
S IV || K || N Khởi tạo trạng thái
𝑆 ← 𝑝𝑎(𝑆)⊕ (0320−𝑘||𝐾)
Áp dụng a phép chuyển vòng p
lên trạng thái
c. Quá trình xử lý dữ liệu liên kết
AsconADProcessing
for i = 0 s:
𝑆 ← 𝑝𝑏((𝑆𝑟⊕𝐴𝑖)||𝑆𝑐)
end for
Ai là khối dữ liệu liên kết thứ i
sau khi đã được đệm
𝑆 ← 𝑆 ⊕ (0319||1) Thêm bit tách miền vào trạng
thái
d. Quá trình mã hóa/giải mã
AsconEncryption
for i = 1 t-1:
36
𝑆𝑟 ← 𝑆𝑟⊕𝑃𝑖
𝐶𝑖 ← 𝑆𝑟
𝑆 ← 𝑝𝑏(𝑆)
end for
𝑆𝑟 ← 𝑆𝑟⊕𝑃𝑡
𝐶𝑡 ← ⌊𝐶𝑡⌋𝑙 𝑙 = |𝑃|𝑚𝑜𝑑 𝑟
Khối cuối cùng của bản mã được cắt ngắn bằng với độ dài khối cuối cùng của bãn rõ
khi chưa được đệm. Do đó toàn bộ bản mã sẽ có độ dài bằng với độ dài bản rõ.
Quá trình giải mã được thực hiện ngược lại với quá trình mã hóa, ngoại trừ vòng lặp
cuối cùng:
AsconDecryption
for i = 1 t-1:
𝑃𝑖 ← 𝑆𝑟⊕𝐶𝑖
𝑆 ← 𝐶𝑖 || 𝑆𝑐
𝑆 ← 𝑝𝑏(𝑆)
end for
𝑃𝑡 ← ⌊𝑆𝑟⌋𝑙⊕𝐶𝑡
𝑆 ← 𝐶𝑡||(⌈𝑆𝑟⌉𝑟−𝑙⊕ (1||0𝑟−1−𝑙))||𝑆𝑐 𝑙 = |𝐶|𝑚𝑜𝑑 𝑟
e. Quá trình hoàn thiện
AsconFinalization
𝑆 ← 𝑝𝑎(𝑆 ⊕ (0𝑟||𝐾||0𝑐−𝑘))
𝑇 ← ⌈𝑆⌉𝑘⊕K
Kết thúc quá trình mã hóa, thẻ xác thực T được tạo ra cùng với t khối của bản mã
C1, …, Ct. Quá trình giải mã chỉ trả lại các khối bản rõ P1, …, Pt nếu như quá trình xác
thực thẻ T thành công.
37
2.2.1.3. Hoán vị
Thành phần quan trọng để tạo nên Ascon là hai hoán vị 320 bit pa (dùng trong quá
trình khởi tạo và hoàn thiện) và pb (dùng trong quá trình xử lý dữ liệu). Các hoán vị áp
dụng phép chuyển vòng p dựa trên mạng SPN, bao gồm 3 phép chuyển vòng con pC, pS
và pL:
𝑝 = 𝑝𝐶°𝑝𝑆°𝑝𝐿
pa và pb chỉ khác nhau ở số vòng. Số vòng a cho quá trình khởi tạo và hoàn thiện, số
vòng b cho quá trình trung gian xử lý dữ liệu. Hai tham số này là các tham số an toàn có
thể điều chỉnh.
Để mô tả và ứng dụng các vòng chuyển đổi, 320 bit trạng thái S được chia làm 5
thanh ghi 64 bit xi, được thể hiện trong hình 2.4:
𝑆 = 𝑆𝑟||𝑆𝑐 = 𝑥0||𝑥1||𝑥2||𝑥3||𝑥4
Hình 2.4: Cấu trúc từ thanh ghi trạng thái của Ascon [32]
a. Thêm các hằng số vòng
Mỗi vòng p bắt đầu với một phép thêm hằng pC, thêm một hằng số cr vào mỗi từ
thanh ghi x2 của trạng thái S:
𝑥2 ← 𝑥2⊕ 𝑐𝑟
Ascon sử dụng các hằng số cr cho pa và ca-b+r cho pb. Giá trị các hằng số cho vòng
đầu tiên tương ứng với số vòng được cho trong bảng 2.5.
Bảng 2.5: Hằng số vòng sử dụng trên các hoán vị pa và pb [32]
P16 P8 P6 Hằng số
0 000000000000000000f0
1 000000000000000000e1
2 000000000000000000d2
3 000000000000000000c3
4 0 000000000000000000b4
5 1 000000000000000000a5
X0 X1 X2 X3 X4
38
6 2 0 00000000000000000096
7 3 1 00000000000000000087
8 4 2 00000000000000000078
9 5 3 00000000000000000069
10 6 4 0000000000000000005a
11 7 5 0000000000000000004b
b. Lớp thay thế phi tuyến
Ở lớp thay thế pS, Ascon sử dụng 64 S-box song song. S-box được áp dụng trên mỗi
bit của 5 thanh ghi x0, …, x4, trong đó x0 có vai trò như MSB và x4 có vai trò như LSB
của S-box.
Hình 2.5: Cấu trúc lớp thay thế của Ascon [32]
Bảng 2.6: S-box 5 bit của Ascon [32]
x 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
S(x) 4 11 31 20 26 21 9 2 27 5 8 18 29 3 6 28
x 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
S(x) 30 19 7 14 0 13 17 24 16 12 1 25 22 10 15 23
S-box thường được cài đặt dưới dạng bitsliced, với các phép toán thực hiện trên toàn
bộ từ 64 bit. Chuỗi các tập lệnh bitsliced rất phù hợp với kiến trúc đường ống, có thể thấy
được thông qua cài đặt với 5 thanh ghi tạm t0, …, t4 (Hình 2.6)
x0
x1
x2
x3
x4
39
Hình 2.6: Triển khai bitsliced của S-box 5 bit S(x) [32]
x0 ^= x4; x4 ^=x3; x2 ^= x1;
t0 = x0; t1 = x1; t2 = x2; t3 = x3; t4 = x4;
t0 =~ t0; t1 =~ t1; t2 =~ t2 t3 =~ t3; t4 =~ t4;
t0 & = x1; t1 &= x2; t2 &= x3; t3 &= x4; t4 &= x0
x0 ^= t1; x1 ^= t2; x2 ^= t3; x3 ^= t4; x4 ^= t0;
x1 ^= x0; x0 ^= x4; x3 ^= x2; x2 =~ x2;
c. Lớp khuếch tán tuyến tính
Lớp khuếch tán tuyến tính pL của Ascon được sử dụng để khuếch tán mỗi từ thanh
ghi 64-bit của trạng thái S (Hình 2.7). Các hàm tuyến tính ∑ (𝑥𝑖)𝑖 được áp dụng cho mỗi
từ xi:
𝑥𝑖 ←∑ (𝑥𝑖), 0 ≤ 𝑖 ≤ 4𝑖
Trong đó ∑i được định nghĩa như sau:
∑ (𝑥0)0
= 𝑥0⊕ (𝑥0 ≫> 19)⊕ (𝑥0 ≫> 28)
∑ (𝑥1)1
= 𝑥1⊕ (𝑥1 ≫> 61)⊕ (𝑥1 ≫> 39)
X0
X1
X2
X3
X4
X0
X1
X2
X3
X4
40
∑ (𝑥2)2
= 𝑥2⊕ (𝑥2 ≫> 1)⊕ (𝑥2 ≫> 6)
∑ (𝑥3)3
= 𝑥3⊕ (𝑥3 ≫> 10)⊕ (𝑥3 ≫> 17)
∑ (𝑥4)4
= 𝑥4⊕ (𝑥4 ≫> 7)⊕ (𝑥4 ≫> 41)
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]
2.2.2. Các đặc trưng an toàn của thuật toán
Hệ mật mã Ascon, với điều kiện không sử dụng lại giá trị nonce có thể đạt được độ
an toàn như trong bảng 2.7:
Bảng 2.7: Tuyến bố bảo mật của Ascon [32]
Yêu cầu Độ an toàn (bit)
Ascon-128 Ascon-128a
Tính bảo mật của bản tin 128 128
Tính toàn vẹn của bản tin 128 128
Tính toàn vẹn của dữ liệu liên kết 128 128
Tính toàn vẹn của số tin nhắn công
khai (public message number) 128 128
2.2.2.1. Các tính chất cơ bản
Lớp thay thế phi tuyến của Ascon được xây dựng dựa trên các S-box. Do đó, đặc
trưng của S-box có ảnh hưởng rất lớn đến đặc trưng an toàn của Ascon.
Đặc trưng vi sai
Giả sử hai giá trị X1 và X2 có cùng số bit thì vi sai giữa X1 và X2 là X = X1 ⊕ X2.
x0 x1 x2 x3
x4
41
Phép xor với giá trị khóa: Y1 = X1 ⊕ K, Y2 = X2 ⊕ K
Khi đó: Y1 ⊕ Y2 = X1 ⊕ X2. Tức là input XOR bằng output XOR, điều này đồng
nghĩa với việc giá trị vi sai không chịu tác động của khóa.
Bảng 2.8: Đặc trưng vi sai của S-box trong Ascon. [32]
Trong bảng trên tổng của mỗi dòng là 32 (là số cặp X1, X2 ứng với input XOR
tương ứng), tuy nhiên số 32 này không phân bố đều trên các output XOR. Từ bảng trên có
thể đưa ra một số kết luận về giá trị vi sai của S-box. Ví dụ, nếu input XOR là 00 thì
output XOR chắc chắn là 0, nếu input XOR là 10 thì output XOR là 9 với xác suất 8/32.
Có thể thấy xác suất lượng sai lớn nhất của S-box là 2-2 và số nhánh phi tuyến là 3.
Đặc trưng tuyến tính
S-box là một cấu trúc phi tuyến. Tuy nhiên, nếu chỉ xét một số bit của X và Y thì lại
có thể có những mối quan hệ tuyến tính.
42
Bảng 2.9: Đặc trưng tuyến tính của S-box trong Ascon [32]
Xét biểu thức:
(5⊕𝑖 = 1
𝑎𝑖𝑋𝑖)⊕ (5⊕𝑖 = 1
𝑏𝑖𝑌𝑖) = 0 (1)
Với ai và bi nhận các giá trị hexa từ 1 đến 1f. Bảng 2.3 mô tả độ lệch của xấp xỉ
tuyến tính được xác định bởi các mặt nạ đầu vào và đầu ra tương ứng, được tính bằng P-
1/2 với P là xác suất để đẳng thức (1) xảy ra.
Ví dụ, với a = 8 (01000) và b = A (01010) ta sẽ có X2 ⊕ Y2 ⊕ Y4 = 0 với xác suất
4/16 + 1/2 = 3/4. Từ bảng 2.4 cũng có thể thấy độ lệch xác suất tuyến tính lớn nhất của S-
box là 2-2 và số nhánh tuyến tính là 3.
Đặc trưng đại số
43
Ký hiệu x0, x1, x2, x3, x4 và y0, y1, y2, y3, y4 tương ứng là 5 bit đầu vào và đầu ra của
S-box. Trong đó, x0 đại diện cho MSB hay từ thanh ghi đầu tiên của S-box. Khi đó, dạng
đại số (ANF) của S-box được cho bởi:
𝑦0 = 𝑥4𝑥1 + 𝑥3 + 𝑥2𝑥1 + 𝑥2+𝑥1𝑥0 + 𝑥1 + 𝑥0
𝑦1 = 𝑥4 + 𝑥3𝑥2 + 𝑥3𝑥1+𝑥3 + 𝑥2𝑥1 + 𝑥2 + 𝑥1 + 𝑥0
𝑦2 = 𝑥4𝑥3 + 𝑥4 + 𝑥2 + 𝑥1 + 1
𝑦3 = 𝑥4𝑥0 + 𝑥4 + 𝑥3𝑥0 + 𝑥3+𝑥2 + 𝑥1 + 𝑥0
𝑦4 = 𝑥4𝑥1 + 𝑥4 + 𝑥3 + 𝑥1𝑥0 + 𝑥1
Số lượng đơn thức xuất hiện trong đa thức biểu diễn nhỏ hơn số lượng của S-box
được tạo ngẫu nhiên và có bậc đa thức là 2. Mặc dù, người ta có thể cho rằng S-box này
yếu đối với các cuộc tấn công đại số, nhưng đến thời điểm hiện tại vẫn chưa có bất kỳ
cuộc tấn công thực tế nào vào Ascon bằng cách sử dụng các thuộc tính này.
Tuy nhiên, cần lưu ý thêm rằng bậc đại số thấp của S-box và số lượng vòng nhỏ pa
và pb có thể dẫn đến các phân biệt tổng bằng 0 hiệu quả cho hai hoán vị. Do đó, hai hoán
vị này không thể được coi là hoán vị ngẫu nhiên hoàn hảo.
2.2.2.2. Lan truyền vi sai và tuyến tính
Hàm tuyến tính ∑i sử dụng trong lớp khuếch tán pL của Ascon có số nhánh bằng 4.
Điều này là không đủ để có một giới hạn đủ tốt để chống lại tấn công vi sai và tấn công
tuyến tính. Tuy nhiên, kết hợp với S-box (với số nhánh bằng 3), và thực tế là các giá trị
xoay khác nhau được sử dụng trong tất cả các ∑i, số lượng S-box hoạt động tăng lên đáng
kể. Nhóm tác giả của Ascon xác nhận rằng số lượng tối thiểu các S-box hoạt động phi
tuyến và tuyến tính trong 3 vòng là 15 và 13. Số S-box hoạt động phi tuyến và tuyến tính
trong 4 vòng là 44 và 43 (thông qua tìm kiếm heuristic). Kết quả tìm kiếm của họ cũng
cho thấy không tìm được bất kỳ vết vi sai và tuyến tính (differential and linear trail) nào
với số vòng lớn hơn 4 có số S-box hoạt động nhỏ hơn 64.
44
Bảng 2.10: Số lượng S-box hoạt động trong 4 vòng của hoán vị
(* biểu thị kết quả từ tìm kiếm heuristic) [32]
Vòng Số lượng S-box hoạt động
Vi sai Tuyến tính
1 1 1
2 4 4
3 15 13
4 *44 *43
2.2.2.3. Vi sai không thể (Impossible Differentials)
Nếu như phương pháp phân tích mật mã vi sai thông thường khai thác các vi sai xảy
ra với xác suất cao thì phương pháp thám mã vi sai không thể tập trung vào phân tích các
vi sai không thể xảy ra (xác suất bằng 0). Sử dụng công cụ tìm kiếm tự động, nhóm tác
giả Ascon có thể tìm các vi sai không thể trên 5 vòng của hoán vị và dự đoán các vi sai
không thể có thể tồn tại ở các vòng tiếp theo. Kết quả được mô tả trong bảng 2.11:
Bảng 2.11: Vi sai không thể trên 5 vòng của Ascon [32]
Vi sai đầu vào Vi sai đầu ra
x0 0000000000000000 0000000000100000
x1 0000000000000000 0000000000000000
x2 0000000000000000 0000000000000000
x3 0000000000000000 0000000000000000
x4 8000000000000000 0000000000000000
Tuy nhiên, đến thời điểm hiện tại vẫn chưa có nghiên cứu hay cuộc tấn công nào
khai thác thuộc tính này của hoán vị trong Ascon .
2.2.3. Một số cuộc tấn công lên hệ mã Ascon
Tính đến thời điểm hiện tại, đã có một số cuộc tấn công được thực hiện trên Ascon.
Kết quả tốt nhất nhận được là khôi phục thành công khóa mật của Ascon với độ phức tạp
khoảng 2104 trong trường hợp giảm số vòng khởi tạo từ 12 xuống 7, tương ứng với mức
bảo mật 42% [33].
45
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.12: Một số cuộc tấn công lên Ascon
Cuộc tấn công Tác giả Kết quả
Tấn công khôi
phục khóa sử dụng
phương pháp cube-
like [34]
Zheng Li, Xiaoyang Dong,
XiaoyunWang
Tấn công khôi phục khóa thành
công trên 5, 6, và 7 vòng khởi
tạo rút gọn của Ascon với độ
phức tạp lần lượt là 224, 240 và
2103.9
Tấn công khôi
phục khóa sử dụng
phương pháp vi sai
– tuyến tính [35]
Christoph Dobraunig,
Maria Eichlseder,
Florian Mendel, Martin
Tấn công khôi phục khóa thành
công với độ phức tạp 218 trên
phiên bản Ascon rút gọn với 4/12
vòng khởi tạo, và độ phức tạp 236
với 5/12 vòng khởi tạo.
Tấn công khôi
phục trạng thái sử
dụng SAT-solver
[36]
Ashutosh Dhar Dwivedi,
Miloš Klouček, Paweł
Morawiecki, Ivica Nikolić,
Josef Pieprzyk , Sebastian
Wójtowicz1
Sử dụng SAT-solver để thực
hiện tấn công lên quá trình mã
hóa của Ascon. Khôi phục trạng
thái thành công với số vòng rút
gọn 2/8.
2.2.3.1. Tấn công khôi phục khóa sử dụng phương pháp cube-like
Zheng Li và các cộng sự đã xây dựng mô hình tấn công dựa trên tấn công khối có
điều kiện (conditional cube attack) và kỹ thuật cube-like key-subset.
Tấn công khối có điều kiện
Tấn công khối có điều kiện được giới thiệu lần đầu tiên bởi Huang [37] trong cuộc
tấn công lên hàm sponge Keccak. Phương pháp này lấy cảm hứng từ phương pháp tấn
công khối động (Dynamic cube attack [38]), nhưng thay vì thêm một số bit điều kiện vào
IV, nó thêm các bit điều kiện vào khóa chính nhằm làm giảm bậc của đa thức đầu ra. Kỹ
thuật này tương tự như kỹ thuật sửa đổi bản tin [39, 40] và phân tích mật mã có điều kiện
[41], sử dụng các bit điều kiện để điều khiển quá trình lan truyền vi sai.
46
Một mật mã, sau một số vòng nhất định sẽ tạo ra l-bit output. Mỗi bit ouput có thể
được biểu diễn dưới dạng một đa thức 𝑓𝑖(𝑘0, … , 𝑘𝑛−1, 𝑣0, … , 𝑣𝑚−1), 𝑖 = 0, 1, … , 𝑙 − 1.
Chọn khối CT, ví dụ (𝑣0, … , 𝑣𝑠−1), 1 ≤ 𝑠 ≤ 𝑚 , khi đó 𝑓𝑖 = 𝑇 ∙ 𝑃𝑖 + 𝑄𝑖, 𝑖 = 0, 1, … , 𝑙 − 1.
Trong tấn công khối có điều kiện, có thể tìm được ước chung của Pi, là một đa thức
𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠, … , 𝑣𝑚−1). 𝑣𝑠 , … , 𝑣𝑚−1 là các hằng số khi tính tổng khối (cube sum)
𝑃𝑖 = 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠, … , 𝑣𝑚−1) ∙ 𝑃𝑖′. Từ đó thu được hệ quả sau: [34]
Cho một chuỗi các đa thức 𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}): {0, 1}𝑛 → {0, 1}.
{
𝑓0(𝑘0, … , 𝑘𝑛−1, 𝑣0, … , 𝑣𝑚−1) = 𝑇 ∙ 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠, … , 𝑣𝑚−1) ∙ 𝑃0′ + 𝑄0
𝑓1(𝑘0, … , 𝑘𝑛−1, 𝑣0, … , 𝑣𝑚−1) = 𝑇 ∙ 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠, … , 𝑣𝑚−1) ∙ 𝑃1′ + 𝑄0
…𝑓𝑙−1(𝑘0, … , 𝑘𝑛−1, 𝑣0, … , 𝑣𝑚−1) = 𝑇 ∙ 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠, … , 𝑣𝑚−1) ∙ 𝑃𝑙−1
′ + 𝑄𝑙−1
(2)
Trong đó T là một đơn thức, là tích của một số biến công khai. Không có đơn thức
nào trong Qi chia hết cho T. Khi đó, tổng khối được tính như sau:
{
∑ 𝑓0(𝑘0, … , 𝑘𝑛−1, 𝑣
′, 𝑣𝑠 , … , 𝑣𝑚−1) = 𝑇 ∙ 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠 , … , 𝑣𝑚−1) ∙ 𝑃0′
𝑣′∈𝐶𝑇
∑ 𝑓1(𝑘0, … , 𝑘𝑛−1, 𝑣′, 𝑣𝑠 , … , 𝑣𝑚−1) = 𝑇 ∙ 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠 , … , 𝑣𝑚−1) ∙ 𝑃1
′𝑣′∈𝐶𝑇
…∑ 𝑓𝑙−1(𝑘0, … , 𝑘𝑛−1, 𝑣
′, 𝑣𝑠 , … , 𝑣𝑚−1) = 𝑇 ∙ 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠 , … , 𝑣𝑚−1) ∙ 𝑃𝑙−1′
𝑣′∈𝐶𝑇
(3)
Zheng Li và các cộng sự đưa ra các tính chất và giả định sau:
Tính chất 1:
Nếu g = 0, tổng khối của 𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}) sẽ bằng 0 với xác suất 1.
Giả định 1:
Nếu g = 1, tổng khối của 𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}) sẽ được xác định bởi
𝑃𝑖′(𝑖𝜖{0, 1, … , 𝑙 − 1}), tất cả tổng khối của 𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}) bằng 0 với xác suất 2-l
nếu 𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}) là ngẫu nhiên
Tính chất 2:
Nếu có ít nhất một tổng khối bằng 0 xảy ra trong tất cả các tổng khối của
𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}) thì g = 1.
Giả định 2:
47
Nếu tất cả tổng khối của 𝑓𝑖(𝑖𝜖{0, 1, … , 𝑙 − 1}) bằng 0, thì g = 0. Lưu ý rằng, trong
một mô hình tiên đoán ngẫu nhiên (random orcle), g = 0 sai với xác suất 2-l, bởi vì 𝑃𝑖′
bằng 0 với xác suất 1/2.
Từ đó, nếu ước chung 𝑔(𝑘0, … , 𝑘𝑛−1, 𝑣𝑠 , … , 𝑣𝑚−1) đủ đơn giản, ví dụ g = k0, có thể
sử dụng tính chất 2 và giả định 2 để tìm ra k0.
Kỹ thuật cube-like key-subset
Khi l tổng khối Pi không có ước chung, có thể chia các tổng khối thành các tập con,
mà trong mỗi tập con này lại có một ước chung (gọi là ước chung một phần – partial
divisor). Giả sử g1, g2, g3 là ba ước chung của 3 tập {P0, P1, …, P19}, {P20, P21, …, P39} và
{P40, P41, …, Pl-1}. Khi đó, g1 = 0, g2 = 0 và g3 = 0 sẽ dẫn đến tất cả các tổng khối bằng 0
(theo tính chất 1).
Các ước chung một phần g1, g2, g3 là các đa thức tuyến tính phụ thuộc khóa. Giả sử,
g1 = k1 + a, g2 = k2 + b và g3 = k3 + c, trong đó k1, k2, k3 là 3 bit khóa. Ký hiệu CT(abc) là
một khối ứng với bộ số (a, b, c). Kiểm tra các khối CT(abc) thỏa mãn g1 = g2 = g3 = 0, từ đó
tìm được các bit khóa và rút gọn được không gian khóa cần tìm. Ví dụ, với không gian
khóa 128 bit, nếu CT(000) làm cho tất cả các tổng khối bằng 0, sẽ thu được k1 = 0, k2 = 0 và
k3 = 0 (theo giả định 2). Khi đó không gian khóa sẽ giảm xuống còn 125 bit. Kỹ thuật như
vậy được gọi là kỹ thuật cube-like key-subset [34].
Nhóm của Zheng Li sử dụng phương pháp tấn công có điều kiện để tấn công lên
Ason. Họ lựa chọn các khối sao cho các biến của khối này không bị nhân với các biến của
khối khác sau vòng đầu tiên, và không bị nhân với nhau sau vòng thứ hai với một số bit
khóa điều kiện. Điều này giúp giảm bậc của khối và tấn công khôi phục khóa thành công
lên Ascon với 5 và 6 vòng khởi tạo rút gọn, độ phức tạp tương ứng 224 và 260.
Đối với 7 vòng khởi tạo rút gọn của Ascon, họ chia không gian khóa thành 64 tập
con (63 tập chính và một tập phụ ứng với các bit khóa điều kiện). Với mỗi tập con này,
xây dựng các khối kích thước 65. Thực hiện kiểm tra các khối này để tìm ra khóa bí mật.
Độ phức tạp của tấn công là 2103.92. Tuy nhiên, trong trường hợp khóa yếu (weak-key), tấn
công khôi phục khóa có thể được thực hiện thành công với độ phức tạp 277.
48
2.2.3.2. Tấn công khôi phục khóa sử dụng phương pháp vi sai – tuyến tính
Christoph Dobraunig và các cộng sự đã thực hiện một cuộc tấn công khôi phục
khóa, sử dụng phương pháp thám mã vi sai – tuyến tính [41] lên phiên bản Ason với số
vòng khởi tạo rút gọn. Phương pháp này là sự kết hợp của phương pháp thám mã vi sai và
thám mã tuyến tính thông thường. Ý tưởng của phương pháp là chia mật mã thành hai
phần, một phần có xác suất lượng sai lớn E0, và một phần có độ lệch xác suất tuyến tính
(linear approximation bias) lớn E1. Sự kết hợp này cho phép xây dựng các bộ phân biệt
(distinguishers) hiệu quả. Theo Dunkelman [42], độ lệch (bias) đầu ra của đặc trưng vi sai
– tuyến tính (differential – linear characteristic) là khoảng 2pq2. Trong đó p là xác suất
lượng sai của thành phần E0 và q là độ lệch của thành phần tuyến tính E1. Dựa vào các giá
trị độ lệch ở đầu ra (phụ thuộc vào giá trị cụ thể của các bit bí mật và các bit hằng), có thể
khôi phục lại khóa bí mật của Ascon.
Nhóm tác giả thực hiện tấn công lên quá trình khởi tạo của Ascon với số vòng rút
gọn bằng 4 (trên tổng số 12 vòng). Với giả thiết, kẻ tấn công có khả năng lựa chọn giá trị
nonce và nhận được dòng bit khóa. Kẻ tấn công thực hiện một số lượng lớn truy vấn với
cặp giá trị nonce có vi sai ở x3[63] và x4[63], và tính toán độ lệch đầu ra tại x0[0] của dòng
bit khóa. Dựa vào bảng 2.13 , kẻ tấn công có thể khôi phục được 2 bit khóa bằng cách so
sánh độ lệch thực tế và độ lệch đã tính toán.
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]
Inputs
(x1[i], x2[i]) (0,0)
(0,1) (1,0) (1,1)
Output
x0[i+1]
Sign +1 -1 +1 -1
Bias 2-2.68 2-3.68 2-3.30 2-2.30
Độ phức tạp của tấn công trên 4 vòng khởi tạo của Ascon là 218. Trong thực tế,
nhóm tác giả cũng sử dụng độ lệch của tất cả các bit và tính toán mối tương quan với kết
quả của quá trình tiền mã hóa để thu được kết quả tốt hơn. Từ đó, thực hiện được tấn công
khôi phục khóa trên 5 vòng khởi tạo của Ascon với độ phức tạp 236.
49
2.2.3.3. Tấn công khôi phục trạng thái sử dụng SAT-solver
Bài toán CICO (constrained-input constrained-output)
Theo [43], CICO là một bài toán cần thiết trong phân tích bảo mật của các mật mã
được xây dựng dựa trên sponge. Gọi f là một hàm (ví dụ: hàm hoán vị) biến đổi các bit
đầu vào thành các bit đầu ra. Một số bit đã được biết trước, và cần xác định phần còn lại
của các bit đầu vào và đầu ra, sao cho hàm f thỏa mãn. Đối với các mật mã có xác thực
dựa trên sponge, thông thường trạng thái sẽ bao gồm hai phần: r-bit (bitrate) và c-bit
(capacity). Nếu biết trước một cặp bản rõ – bản mã, thì có thể thực hiện phép toán XOR
để tìm r-bit của trạng thái. Như vậy, tấn công khôi phục trạng thái có thể hiểu như một bài
toán CICO với r-bit là thành phần đã biết trước, và cần tìm ra c-bit còn lại của trạng thái.
Bài toán SAT
Bài toán SAT là bài toán nhằm kiểm tra tính thỏa mãn (SAT-satisfiability) hay
không thỏa mãn (UNSAT-unsatisfiability) của một logic mệnh đề. Một mệnh đề là SAT
nếu như tồn tại bộ giá trị true hoặc false trên các biến logic mệnh đề để công thức nhận
giá trị true. Và ngược lại, mệnh đề là UNSAT nếu như với mọi bộ giá trị của các biến
logic mệnh đề công thức đều nhận giá trị false.
SAT-solver là công cụ chứng minh logic mệnh đề là SAT hay UNSAT một cách tự
động. Công thức được đưa vào SAT-solver phải được biểu diễn dưới dạng chuẩn tắc hội
CNF. Ví dụ, với phép toán XOR 1 bit z = x ⊕ y, biểu diễn CNF sẽ có dạng:
(�̅� ∨ y ∨ z) ∧ (x ∨ �̅� ∨ z) ∧ (x ∨ y ∨ 𝑧)̅ ∧ (�̅� ∨ �̅� ∨ 𝑧)̅
Tấn công khôi phục trạng thái lên Ascon sử dụng SAT-solver
Nhóm của Ashutosh Dhar Dwivedi đã sử dụng SAT-solver plingeling [44] để tấn
công lên Ascon 128a. Họ xây dựng các CNF của một vòng với 2304 biến và 7936 mệnh
đề. Việc giải các CNF của Ascon khá khó khăn, do đó nhóm tác giả chỉ thực hiện tấn
công được trên 2 vòng (trong tổng số 8 vòng) của hoán vị. Họ cũng thực hiện khôi phục
khóa với giả thiết đã khôi phục được trạng thái của Ascon. CICO lúc này được áp dụng
lên quá trình hoàn thiện, với thành phần đã biết là 128-bit của thẻ xác thực, và thành phần
chưa biết là khóa bí mật. SAT-solver cũng chỉ tìm được khóa mật cho 2 vòng của Ascon.
50
2.2.4. Hiệu suất của thuật toán
Hiệu suất trên phần cứng
Ascon với trạng thái nhỏ gọn và hàm vòng đơn giản, rất thuận tiện cho việc cài đặt
các ứng dụng nhẹ, mà không làm ảnh hưởng đến độ bảo mật 128 bit. Đã có triển khai của
Ascon chỉ chiếm 2,6kGE [45]. Các triển khai round-based của cả hai phiên bản Ascon
128 và 128a đều chiếm nhỏ hơn 10kGE và vẫn đạt thông lượng 4.9-7.3 Gbps, đủ để mã
hóa trên các đường truyền Gigabit Ethernet.
Không những chỉ nhỏ gọn và có tốc độ cao, Ascon còn rất hiệu quả trong việc cài
đặt trên nhiều nền tảng khác nhau. Nó cho phép cân đối giữa thông lượng, độ trễ, số cổng,
mức tiêu thụ năng lượng, … [45]. Xét hiệu quả trên phần cứng thông qua chỉ số thông
lượng/diện tích, Ascon có hiệu quả tốt hơn so với rất nhiều ứng viên khác trong cuộc thi
CAESAR [46].
So với AES-GCM, Ascon có trạng thái nhỏ hơn, cần ít diện tích hơn khi triển khai
phần cứng. Ngoài ra, Ascon cũng yêu cầu chi phí nhỏ hơn đáng kể để triển khai kháng
kênh bên.
Hiệu suất trên phần mềm
Ascon được thiết kế để tạo điều kiện cho triển khai các phần mềm bitsliced. Hoán vị
của Ascon hoạt động trên các từ có kích thước 64 bit, đặc biệt hiệu quả trên các CPU cao
cấp. Tối đa 5 tập lệnh có thể được thực hiện song song trong mỗi bước hoán vị giúp cho
Ascon đạt tốc độ cao trên các CPU 64 bit cũng như 32 bit.
Trạng thái nhỏ của Ascon cho phép lưu toàn bộ trạng thái trên các thanh ghi của hầu
hết các CPU. Do đó, tối thiểu hóa được số lần tải lại từ bộ nhớ cache.
Ascon cũng đặc biệt hiệu quả trong trường hợp bản tin ngắn. Ví dụ, khi không có dữ
liệu liên kết, Ascon-128 có thể mã hóa các bản rõ nhỏ hơn 8 byte, và Ascon-128a có thể
mã hóa các bản rõ nhỏ hơn 16 byte chỉ với hai lần gọi đến hoán vị pa [33].
51
Bảng 2.14: Hiệu suất phần mềm (cycles per byte - cpb) trong trường hợp
không có dữ liệu liên kết của Ascon-128 và Ascon-128a [33]
Độ dài bản tin (byte) 1 8 16 32 64 1536 long
AMD Ryzen 7 1700 14.5 8.8 8.6
Intel Xeon E5-2609 17.3 10.8 10.5
Cortex-A57 (ARMv8) 18.3 11.3 11.0
Intel Core i5-6300U 367 58 35 23 17.6 11.9 11.4
Intel Core i5-4300U 521 81 49 32 23.9 16.2 15.8
Cortex-A15 (ARMv7) 69.8 36.2 34.6
Cortex-A7 (NEON) 2705 250 150 99 73.2 48.8 47.9
Cortex-A7 (ARMv7) 1871 292 175 115 86.6 58.3 57.2
ARM1176JZF-S (ARMv6) 2189 340 202 133 97.9 64.4 65.3
a) Ascon-128
Độ dài bản tin (byte) 1 8 16 32 64 1536 long
AMD Ryzen 7 1700 12.0 6.0 5.7
Intel Xeon E5-2609 14.1 7.3 6.9
Cortex-A57 (ARMv8) 15.1 7.6 7.3
Intel Core i5-6300U 365 47 31 19 13.5 8.0 7.8
Intel Core i5-4300U 519 67 44 27 18.8 11.0 10.6
Cortex-A15 (ARMv7) 60.3 25.3 23.8
Cortex-A7 (NEON) 2805 274 133 83 57.6 33.5 32.6
Cortex-A7 (ARMv7) 1911 255 161 102 71.3 42.3 41.2
ARM1176JZF-S (ARMv6) 2267 303 191 120 84.4 50.0 50.2
b) Ascon-128a
Trong nhiều trường hợp (ví dụ SSH với 5 byte dữ liệu liên kết và 1 byte văn bản
gốc), Ascon-128a có thể hoạt động rất tốt, ngay cả khi so sánh với các thiết kế dựa trên
AES có sử dụng các tập lệnh AES gốc (native AES instructions) trên bộ xử lý Intel
Skylake [47].
52
Trong chương này, luận văn đã trình bày tổng quan về hai hệ mật mã có xác thực
hạng nhẹ ACORN và Ascon. Đưa ra những phân tích về độ an toàn và hiệu suất của các
thuật toán. Bên cạnh đó, tổng hợp các cuộc tấn công thử nghiệm lên hai hệ mật này.
Trong chương tiếp theo, luận văn sẽ đi vào cài đặt thực nghiệm, so sánh hiệu quả của các
thuật toán ACORN, Ascon và AES-GCM
53
Chương 3: CÀI ĐẶT THỰC NGHIỆM TRÊN THIẾT BỊ
ANDROID
3.1. Mô tả bài toán
Ngày nay, số lượng người sử dụng điện thoại thông minh ngày một tăng nhanh.
Theo thống kê của Statista, số lượng người sử dụng điện thoại thông minh năm 2016 là
2.5 tỉ người, năm 2018 là 3 tỉ người và dự kiến tăng lên 3.8 tỉ người năm 2021 [48]. Cùng
với nhu cầu kết nối và trao đổi thông tin mạnh mẽ, là các hiểm họa về mất mát và rò rỉ
thông tin của người dùng. Đặc biệt đối với các hệ điều hành mã nguồn mở như Android,
cho phép bên thứ ba quyền sửa đổi mã nguồn theo yêu cầu của họ. Điều này có thể gây ra
những lỗ hổng bảo mật mà tin tặc có thể khai thác. Bên cạnh đó, số lượng ứng dụng di
động sử dụng dữ liệu nhạy cảm như thông tin ngân hàng, tài khoản email, thông tin cá
nhân, … ngày một tăng đặt ra yêu cầu phải bảo vệ những dữ liệu này khỏi các truy cập
trái phép. Một trong số các giải pháp được sử dụng phổ biến nhất là mã hóa dữ liệu.
Tuy nhiên, trong thời đại bùng nổ của IoT, và các ứng dụng như nhà ở thông minh,
quan hệ “kết nối” trở nên rộng hơn. Giờ đây điện thoại thông mình cần phải đáp ứng được
nhu cầu trao đổi thông tin với những thiết bị có tài nguyên hạn chế. Bên cạnh đó, vẫn đảm
bảo được độ an toàn cần thiết cho kênh truyền. Chính vì vậy, các thuật toán mật mã nhẹ
có xác thực là giải pháp hợp lý cho yêu cầu này.
Trong nội dung đề tài này, luận văn sẽ thực hiện cài đặt và so sánh hiệu suất của ba
hệ mật AES-GCM, ACORN và Ascon trên thiết bị điện thoại thông minh sử dụng hệ điều
hành Android, thông qua thời gian thực thi và bộ nhớ RAM được sử dụng.
3.2. Cài đặt
3.2.1. Môi trường thực nghiệm
Cấu hình phần cứng
Điện thoại Samsung Galaxy Note4
Hệ điều hành Android 6.0.1
Chip SnapDragion 805 2.65GHz
Bộ nhớ RAM 3 GB
54
Ngôn ngữ lập trình: Java, C++
3.2.2. Cài đặt thuật toán ACORN (v3), Ascon-128 (v1.2) và AES-128-GCM
Để việc đánh giá được thực hiện một cách công bằng và dễ dàng, các thuật toán sử
dụng chung một giao diện lập trình ứng dụng (API). Đây là chuẩn API được dùng trong
cuộc thi CAESAR [17].
#include "crypto_aead.h"
int crypto_aead_encrypt(
unsigned char *c,unsigned long long *clen,
const unsigned char *m,unsigned long long mlen,
const unsigned char *ad,unsigned long long adlen,
const unsigned char *nsec,
const unsigned char *npub,
const unsigned char *k
)
{
...
... the code for the cipher implementation goes here,
... generating a ciphertext c[0],c[1],...,c[*clen-1]
... from a plaintext m[0],m[1],...,m[mlen-1]
... and associated data ad[0],ad[1],...,ad[adlen-1]
... and secret message number nsec[0],nsec[1],...
... and public message number npub[0],npub[1],...
... and secret key k[0],k[1],...
...
return 0;
}
int crypto_aead_decrypt(
unsigned char *m,unsigned long long *mlen,
55
unsigned char *nsec,
const unsigned char *c,unsigned long long clen,
const unsigned char *ad,unsigned long long adlen,
const unsigned char *npub,
const unsigned char *k
)
{
...
... the code for the cipher implementation goes here,
... generating a plaintext m[0],m[1],...,m[*mlen-1]
... and secret message number nsec[0],nsec[1],...
... from a ciphertext c[0],c[1],...,c[clen-1]
... and associated data ad[0],ad[1],...,ad[adlen-1]
... and public message number npub[0],npub[1],...
... and secret key k[0],k[1],...
...
return 0;
}
Hàm mã hóa nhận bản rõ, khóa bí mật, dữ liệu liên kết, số bí mật (secret message
number), số công khai (public message number) làm tham số đầu vào, và trả về bản mã
cùng với thẻ xác thực.
Khóa bí mật: tham số bắt buộc, độ dài cố định (80, 128 hoặc 256 bit)
Bản rõ: tham số bắt buộc, độ dài thay đổi
Dữ liệu liên kết: tham số bắt buộc, độ dài thay đổi.
Số công khai: tham số không bắt buộc, độ dài cố định. Thường là một giá trị
nonce.
Số bí mật: tham số không bắt buộc, độ dài cố định.
Bản mã: giá trị trả về, độ dài thay đổi.
56
Thẻ xác thực: giá trị trả về, độ dài thay đổi (thường là 128 bit)
Thuật toán được cài đặt bằng ngôn ngữ C++. Để thuật toán chạy được trên thiết bị
Android cần thông qua một giao diện lập trình khác là Java Native Interface (JNI). JNI
đóng vai trò cầu nối, giúp một ứng dụng Android có thể gọi và được gọi bởi những ứng
dụng gốc và những thư viện được viết bằng ngôn ngữ khác như C, C++ và hợp ngữ.
Hình 3.1: Java Native Interface trong Android
3.2.3. Ứng dụng truyền dữ liệu đa phương tiện
Để đánh giá tính khả thi của các thuật toán trong các ứng dụng thời gian thực, luận
văn đã thực hiện cài đặt một ứng dụng Android truyền video được quay bởi camera giữa
hai điện thoại chạy hệ điều hành Android. Ứng dụng này có thể được sử dụng như những
camera giám sát hiện nay (với tốc độ từ 10 – 30 khung hình /giây).
J
N
I
Java Code C/C++ Code
57
Hình 3.2: Kiến trúc ứng dụng CryptoCamera
Ứng dụng bao gồm hai thành phần client và server, được cài đặt trên hai điện thoại
khác nhau. Trong phạm vi nghiên cứu này, luận văn chưa xem xét đến các giao thức
truyền video tiêu chuẩn. Thực nghiệm tiến hành lấy mẫu các khung hình từ video với tốc
độ 15 khung hình/giây và truyền đi thông qua mạng wifi với giao thức UDP. Kiến trúc
ứng dụng được mô tả trong hình 3.2.
Camera: nằm trên ứng dụng phía server, chịu trách nhiệm ghi video. Ứng dụng có
thể tương tác với camera của thiết bị thông qua CameraAPI [49].
Bitmap: lớp thể hiện một bức ảnh trong Android, chứa các thông tin và các phương
thức cơ bản để có thể làm việc với ảnh như đọc, ghi các điểm ảnh, lấy kích thước, …
Byte array: một mảng kiểu byte lưu trữ dữ liệu ảnh.
ServerSocket-Socket: hai lớp phục vụ cho các ứng dụng kết nối theo kiến trúc
client-server trong Android. Trong ứng dụng này, luận văn thực hiện truyền dữ liệu thông
qua socket, sử dụng giao thức UDP.
Camera
Byte
array
ServerSocket
Display
View
Byte
array
Socket Bitmap Bitmap
Mã hóa Giải mã
Server Client
58
Hình 3.3: Giao tiếp socket thông qua giao thức UDP
Display View: client sử dụng ImageView trong Android để hiển thị các khung hình
nhận được từ phía server.
socket() socket()
bind()
send()
send()
send()
send()
… …
Client Server
59
3.3. Kết quả và đánh giá
Xây dựng thành công ứng dụng CryptoTest để đánh giá và so sánh hiệu suất của các
thuật toán. Ứng dụng CryptoCamera thực hiện truyền video đã mã hóa được quay bằng
camera giữa hai điện thoại Android trong thời gian thực.
Hình 3.4: Ứng dụng CryptoTest để đánh giá thời gian thực thi
của các thuật toán mã hóa
60
Hình 3.5: Ứng dụng CryptoCamera truyền video mã hóa thời gian thực
3.3.1. Thời gian thực thi
Phương thức SystemClock.currentThreadTimeMillis() được sử dụng để lấy giá trị
thời gian tại thời điểm bắt đầu mã hóa và sau khi giải mã xong. Từ đó tính được thời gian
thực thi (bao gồm cả mã hóa và giải mã) của các thuật toán.
Kết quả được mô tả trong hình 3.6.
61
Hình 3.6: Thời gian thực thi của các thuật toán
AES-GCM, ACORN và Ascon
Biểu đồ trên sử dụng thang đo logarit cho thời gian thực thi của các thuật toán. Từ
biểu đồ có thể thấy, ACORN và Ascon đều đạt tốc độ cao hơn AES-GCM. Trong đó
Ascon vượt trội hơn cả. Dựa trên tổng thời gian thực thi của tất cả các lần kiểm thử, tốc
độ của Ascon cao gấp khoảng 50 lần so với ACORN, và khoảng 280 lần so với AES-
GCM.
3.3.2. Kích thước bộ nhớ RAM sử dụng
Kích thước bộ nhớ RAM bị chiếm bởi ứng dụng được đo bằng công cụ Android
Profiler [50] của Android Studio. Do bộ nhớ RAM được sử dụng bởi các thuật toán trong
một chu trình mã hóa – giải mã là khá nhỏ, nên việc đo lường sẽ được tiến hành bằng
cách lặp đi lặp lại quá trình mã hóa – giải mã này. Nói cách khác, kích thước bộ nhớ
RAM được đo sau khi thực hiện lặp lại n lần hàm mã hóa và giải mã (cụ thể, n = 10 được
lựa chọn trong thực nghiệm). Kích thước bản tin cho n lần mã hóa – giải mã đều là
100KB với tất cả các thuật toán.
Bộ nhớ RAM mà thuật toán sử dụng được tính là chênh lệnh bộ nhớ RAM bị chiếm
bởi ứng dụng CryptoTest ở giữa hai thời điểm: thời điểm bắt đầu thực nghiệm (n = 1) và
thời điểm ứng dụng thực hiện xong 10 lần hàm mã hóa – giải mã (n = 10).
Kết quả sau 10 thực nghiệm cho tất cả các thuật toán được mô tả trong hình 3.7.
62
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ã
Biểu đồ trên cho thấy rằng, ACORN và Ascon tiêu tốn dung lượng bộ nhớ gần như
tương đương nhau. Các thuật toán mã hóa nhẹ có hiệu quả hơn so với AES-GCM, tuy
nhiên sự khác biệt là không nhiều. Sự chênh lệch về kích thước bộ nhớ của các mật mã
nhẹ so với AES-GCM chỉ xấp xỉ 0.3-0.4 MB, quá nhỏ so với bộ nhớ của thiết bị (3GB).
3.3.3. Truyền video trong thời gian thực
Thực nghiệm truyền video với tốc độ 15 khung hình/giây cho thấy mã hóa Ascon
hiệu quả hơn cả. Ascon là hệ mã duy nhất đáp ứng được yêu cầu truyền video được mã
hóa trong thời gian thực. ACORN với tốc độ nhanh hơn AES-GCM nhưng vẫn gây ra tình
trạng giật lag trong quá trình truyền nhận dữ liệu. Độ trễ do thuật toán tạo ra là quá lớn để
có thể đáp ứng được yêu cầu truyền video thời gian thực.
63
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết quả đạt được
1.1 Lý thuyết
Trong bối cảnh nhu cầu về mật mã nhẹ ngày càng trở nên cần thiết cho sự phát triển
của IoT, cùng với việc xuất hiện những điểm yếu trong các tiêu chuẩn mật mã có
xác thực hiện tại như AES-GCM, đòi hỏi sự ra đời của các mật mã mới giải quyết
được các vấn đề này. Với việc nghiên cứu tổng quan về hai hệ mật mã hạng nhẹ có
xác thực giành chiến thắng trong cuộc thi CAESAR: ACORN và Ascon, luận văn đã
đưa ra được những phân tích, đánh giá về ưu nhược điểm của hai hệ mật mã mới
này. Bên cạnh đó, tổng hợp một số cuộc tấn công đã được thử nghiệm lên hai hệ
mật. Kết quả của các cuộc tấn công tính đến thời điểm hiện tại đều cho thấy sự an
toàn của hai hệ mật này trong điều kiện tuân thủ các cấu hình cài đặt của tác giả.
1.2 Thực nghiệm
Dựa trên những nghiên cứu về lý thuyết, luận văn tiến hành cài đặt thực nghiệm các
hệ mật ACORN, Ascon và AES-GCM trên điện thoại thông minh chạy hệ điều hành
Android. Thực nghiệm đo và đánh giá hiệu quả của các thuật toán dựa vào thời gian
thực thi và bộ nhớ RAM được sử dụng. Hai hệ mật ACORN và Ascon đều đạt hiệu
quả tốt hơn so với AES-GCM. Trong đó, Ascon vượt trội về mặt tốc độ so với hai
mật mã còn lại. Kết quả thực nghiệm cũng cho thấy, trên các thiết bị điện thoại
thông minh với cấu hình phần cứng cao như hiện nay, các hệ mã xác thực hạng nhẹ
chưa thực sự có nhiều ý nghĩa trong việc tối ưu bộ nhớ. Bởi vì kích thước bộ nhớ mà
các thuật toán sử dụng là không đáng kể so với tài nguyên của thiết bị.
Với kết quả thu được, có thể thấy khả năng ứng dụng của các hệ mật mã xác thực
hạng nhẹ trong các giao thức truyền tin như Bluetooth, wifi-direct, nfc, hay trong
các ứng dụng mã hóa bộ nhớ (vốn đòi hỏi thời gian tính toán rất lớn) để cải thiện trải
nghiệm của người dùng.
64
2. Hướng phát triển
Trong tương lai, luận văn sẽ tiếp tục nghiên cứu ứng dụng hiệu quả các hệ mật mã
có xác thực hạng nhẹ lên điện thoại thông minh. Đồng thời nghiên cứu để cứng hóa,
triển khai các hệ mật ACORN và Ascon lên các bộ xử lý khả trình.
65
TÀI LIỆU THAM KHẢO
[1] Masanobu Katagi and Shiho Moriai, "Lightweight Cryptography for the Internet of
Things".
[2] "Lightweight Cryptography Program of NIST," [Online]. Available:
https://csrc.nist.gov/projects/lightweight-cryptography.
[3] Alex Biryukow and Léo Perrin, "State of the Art in Lightweight Symmetric
Cryptography".
[4] M. Bellare and C. Namprempre, "Authenticated encryption: Relations among notions
andanalysis of the generic composition paradigm," in International Conference on
the Theory and Application of Cryptology and Information Security, Springer, 2000,
p. 531–545.
[5] C. S. Jutla, "Encryption modes with almost free message integrity," in International
Conference on the Theory and Applications of Cryptographic Techniques, 2001,
Springer, p. 529–544.
[6] P. Rogaway, M. Bellare, and J. Black. Ocb, "A block-cipher mode of operation for
efficient authenticated encryption," in ACM Transactions on Information and System
Security (TISSEC), 2003, p. 365–403.
[7] G. Bertoni, J. Daemen, M. Peeters, and G. Van Assche, "Permutation-based
encryption, authentication and authenticated encryption," Directions in Authenticated
Ciphers, 2012.
[8] M. ˚Agren, M. Hell, T. Johansson, and W. Meier, "Grain-128a: a new version of
grain-128 with optional authentication," in International Journal of Wireless and
Mobile Computing, 2011, p. 48–59.
[9] Denning, Dorothy E.; Sacco, Giovanni Maria , "Timestamps in key distribution
protocols," Communications of the ACM.
[10] B. PRENEEL, "Cryptographic Primitives for Information Authentication — State of
the Art," in State of the Art in Applied Cryptography, Springer-Verlag, 1998, pp. 49-
104.
[11] Jee Hea An and Mihir Bellare, Does encryption with redundancy provide
66
authenticity?.
[12] Tom Yu, Sam Hartman, Kenneth Raeburn , The Perils of Unauthenticated
Encryption: Kerberos Version 4∗.
[13] Virgil D. Gligor and Pompiliu Donescu, Integrity-Aware PCBC Encryption Schemes.
[14] D. McGrew and J. Viega, "The galois/counter mode of operation (gcm)," NIST
Modes Operation Symmetric Key Block Ciphers.
[15] D. A. McGrew and J. Viega, "The security and performance of the galois/counter
mode (gcm) of operation," in International Conference on Cryptology in India,
Springer, 2004, p. 343–355.
[16] Markku-Juhani O. Saarinen, "Cycling attacks on gcm, ghash and other polynomial
macs and hashes," in Fast Software Encryption, Springer, 2012, p. 216–225.
[17] D. J. Bernstein, Caesar call for submissions, January 27, 2014.
[18] F. Abed, C. Forler, and S. Lucks, "General classification of the authenticated
encryption schemes for the caesar competition," in Computer Science Review, 2016,
p. 13–26.
[19] Wu, Hongjun, ACORN: A Lightweight Authenticated Cipher (v3)., 2016.
[20] Md Iftekhar Salam, Harry Bartlett, Ed Dawson, Josef Pieprzyk, Leonie, Investigating
Cube Attacks on the Authenticated Encryption Stream Cipher ACORN, Singapore ,
2016.
[21] T. Johansson and F. Jonsson, Advances in Cryptology — EUROCRYPT ’99. s.l.,
Springer-Verlag, 1999.
[22] Siegenthaler, T., "Correlation-Immunity of Nonlinear Combining Functions for
Cryptographic Applications," IEEE Transactions on Information Theory, 1984.
[23] V.V. Chepyzhov, T. Johansson and B. Smeets, Fast Software Encryption, 2000.
[24] Willi MeierOthmar Staffelbach, "Fast Correlation Attacks on Certain Stream
Ciphers," Journal of Cryptography, 1989.
[25] Courtois, N. T., Advances in Cryptology, 2003.
[26] C. De Canniere, Bart Preneel, "Trivium," New Stream Cipher Designs – The
67
eSTREAM Finalists, 2008.
[27] X. Feng, J. Liu, Z. Zhou, C. Wu and D. Feng, "Advances in Cryptology – Asiacrypt,"
2010.
[28] Rose, P. Hawkes and G. G, Selected Area in Cryptography.
[29] Colin Chaigneau, Thomas Fuhr and Henri Gilbert, Full Key-recovery on ACORN in
Nonce-reuse and Decryption-misuse settings, 2015.
[30] Xiaojuan Zhang, Xiutao Feng, Dongdai Lin, Fault Attack on ACORN v3, China ,
2016.
[31] I. Dinur, A. Shamir, "Cube Attacks on Tweakable Black Box Polynomials,"
Advances in Cryptology - EUROCRYPT 2009.
[32] Christoph Dobraunig, Maria Eichlseder, Florian Mendal, Martin Schlaffer, Ascon:
Submission to the CAESAR Competition, 2016.
[33] Christoph Dobraunig, Maria Eichlseder, Florian Mendal, Martin Schlaffer, Ascon:
Submission to NIST, 2019.
[34] Zheng Li, Xiaoyang Dong, and XiaoyunWang, "Conditional Cube Attack on Round-
Reduced ASCON," in IACR Transactions on Symmetric Cryptology 2017.1 (2017),
2017, p. 175–202.
[35] Christoph Dobraunig, Maria Eichlseder, Florian Mendel, and Martin Schläffer,
"Cryptanalysis of Ascon," in CT-RSA 2015. Vol. 9048, Springer, p. 371–387.
[36] Ashutosh Dhar Dwivedi, Miloš Kloucek, Pawel Morawiecki, Ivica Nikolic, Josef
Pieprzyk, and Sebastian Wójtowicz, "SAT-based Cryptanalysis of Authenticated
Ciphers from the CAESAR Competition," in SECRYPT ICETE 2017, SciTePress,
2017, p. 237–246.
[37] Senyang Huang, Xiaoyun Wang, Guangwu Xu, Meiqin Wang, and Jingyuan Zhao,
"Conditional cube attack on reduced-round Keccak sponge function," EUROCRYPT
2017 .
[38] Itai Dinur and Adi Shamir, "Cube attacks on tweakable black box polynomials," in
Advances in Cryptology - EUROCRYPT 2009, 28th Annual International Conference
on the Theory and Applications of Cryptographic Techniques, Cologne, Germany,
2009, p. 278–299.
68
[39] Stein William and Joyner David, "SAGE: system for algebra and geometry
experimentation," ACM SIGSAM Bulletin, 2005.
[40] Xiaoyun Wang, Hongbo Yu, and Yiqun Lisa Yin, "Efficient collision search attacks
on SHA-0," in Advances in Cryptology - CRYPTO 2005: 25th Annual International
Cryptology Conference, Santa Barbara, California, USA, 2005, p. 1–16.
[41] Langford, S.K., Hellman, M.E., "Differential-linear cryptanalysis," in Advances in
Cryptology – CRYPTO 1994. LNCS, vol. 839, Springer , 1994, p. 17–25.
[42] Dunkelman, O., Indesteege, S., Keller, N, "A Differential-Linear Attack on 12-
Round Serpent," in Progress in Cryptology – INDOCRYPT 2008, Springer , 2008, p.
308–321.
[43] G. Bertoni, J. Daemen, M. Peeters, and G. Van Assche, Cryptographic Sponges.
[44] Armin Biere. Splatz, Lingeling, Plingeling, Treengeling, YalSAT, "Entering the SAT
Competition 2016," in Proceedings of SAT Competition 2016: Solver and Benchmark
Descriptions - SAT Competition 2016, 2016, p. 44–45.
[45] Hannes Gro, ErichWenger, Christoph Dobraunig, and Christoph Ehrenhofer, "Suit
up!- Made-to-measure hardware implementations of ASCON," in Digital System
Design, 2015, pp. 645-652.
[46] Kris Gaj and ATHENa Team. ATHENa, Automated Tool for Hardware Evaluation,
2016.
[47] Ralph Ankele and Robin Ankele, "Software Benchmarking of the 2nd round
CAESAR Candidates," pp. 20, 38, 2016.
[48] "Number of smartphone users worldwide from 2016 to 2021 (in billions)," [Online].
Available: https://www.statista.com/statistics/330695/number-of-smartphone-users-
worldwide/.
[49] "Camera API," [Online]. Available:
https://developer.android.com/guide/topics/media/camera.
[50] "Measure app performance with Android Profiler," [Online]. Available:
https://developer.android.com/studio/profile/android-profiler.
ĐẠI HỌC QUỐC GIA HÀ NỘI CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Độc lập - Tự do - Hạnh phúc
Hà Nội, ngày tháng năm 201
BẢN XÁC NHẬN ĐÃ SỬA CHỮA CÁC THIẾU SÓT CỦA LUẬN VĂN
Trường Đại học Công nghệ đã có Quyết định số 1239/QĐ-ĐT ngày 14 tháng 11 năm 2019 về việc thành lập Hội đồng chấm luận văn Thạc sĩ cho học viên Khuất Quang Duy, sinh ngày 30/01/1994, tại Hà Nội, chuyên ngành Khoa học máy tính,
ngành Khoa học máy tính.
Ngày 23 tháng 11 năm 2019, Trường Đại học Công nghệ (ĐHCN) đã tổ chức cho học viên bảo vệ luận văn Thạc sĩ trước Hội đồng chấm (có biên bản kèm theo). Theo Quyết
nghị của Hội đồng chấm luận văn Thạc sĩ, học viên phải bổ sung và sửa chữa các điểm sau
đây trước khi nộp quyển luận văn cuối cùng cho Nhà trường để hoàn thiện hồ sơ sau bảo
vệ:
1. Sửa đánh số công thức (trùng lặp công thức (1))
2. Thêm kết luận ở cuối mỗi chương
3. Thêm mục kết luận cho toàn bộ luận văn
4. Nêu tính hợp lý của mô hình thực nghiệm (Hình 3.2)
5. Thêm trích dẫn Hình 2.3, 2.4, 2.5, 2.6, 2.7; Bảng 2.4, 2.5, 2.6, 2.7, 2.8, 2.11, 2.13
Ngày …. tháng …. năm …….., học viên đã nộp bản luận văn có chỉnh sửa. Chúng tôi nhận thấy rằng nội dung, hình thức của luận văn và tóm tắt luận văn đã được sửa chữa,
bổ sung theo các điểm trên của Quyết nghị.
Đề nghị Trường Đại học Công nghệ, ĐHQG HN cho phép học viên được làm các
thủ tục khác để được công nhận và cấp bằng Thạc sĩ.
Xin trân trọng cảm ơn!
XÁC NHẬN CỦA THÀNH VIÊN HỘI ĐỒNG/HỘI ĐỒNG ĐỀ NGHỊ HỌC VIÊN SỬA CHỮA LUẬN VĂN
HỌC VIÊN CÁN BỘ HƯỚNG DẪN XÁC NHẬN CỦA CƠ SỞ ĐÀO TẠO
QUYXT NGHIcuA Her DoNc cnAnr luAN vAN rnAc si
Cdn cir Quyi5t dinh sd l23glQE-DT ngdy l4llll20lg cta HiQu tru&ng trudng D4i hgc C6ng nghQ v6
viQc thanh lfp HQi d6ng ch6m lu4n X[n thac si cira hgc vi6n Khu6t Quang Duy, HQi d6ng ch6m luQn v[nThac si dE hqp vdo h6i I . ..nsdt&.). .. thang4t).. nam,hf tai . . L4.0. ..EH Cdng nshQ, DHQGI{N
TCn dA tdi luQn vdn: Nghi6n cr?u hai he mft md h4ng nhg gidnh chitin thing trong cu6c thi CAESAR
DAI HQC QUOC GIA HA NQITRTIoNG DAr HQC CoNC NGHE
------m------
Ngdnh: Khoa hgc mriy tinh
Chuy6n ngd,nh: Khoa hqc m6y tinh
CQNG HOA XA HQI CHU NGHIA VITT NAMDQc l$p - Tg do - H4nh phric
*+*********
Hd N|| ngdy ... thdng .... ndm ...
M6 s6: 8480101.01
Sau khi nghe hoc vi0n trinh biy t6m tdt lufn vdn Thac si, c6c phdn biQn dqc nhAn x6t, hgc.vi6n trd
loi c6c cAu h6i, HQi d6ng dd hgp, trao d6i y kiCn vd thOng nh6t k6t tuan:
1. V6 tintr c6o thiiit. tinh thoi su. i' nshia lf lufln vi thuc ti6n cria tI6 tiri lufln v[n:
N^, d*,a, d l,irrf,: ffi,a .lia;. ile f,i$ tle ,ilI
3. Vd X6t qui nghiGn cfu:
il" tr"al {^;
4. IISn ch6 cria lu$n vdn (niiu cd):
5. D6nh gi6 chung vir k6t luin:
frf ile ,*fi A 4*rflrAr! urt,#""ofr*rr
Lufn vdn d$ [.L.J 10 di6m. Quy6t nghi ndy duqc .CIf /.OJ- thanh vi6n cira HQi d6ng nh6t tri th6ng qua.
CHU TICH HQI DONG
xAc NHAN CUA CO 56 DAO TAO
L fTV s,rt"
rHrrrf ugr DONG
tV^WM",
TL. HIEU TRT.rONG
mS\pHoNG DAo rAo
'l/ .rRur"nGf{ o-ar roq.' \. c0N6jElt
\;
ceNG no,q. xA ngr cnu Ncni.q. vIET NAMDQc lfp - Trl do - H4nh Phtic
NAN NH,|N XET PHAN BIEN LUAN VAN THAC Si
Hq vd t6n c6n bQ phan biQn: Nguy6n Dai Thq
Hgc him, hgc vi: Titin s!
Chuy6n nginh: An todn th6ng tin
Co quan c6ng t6c: Trudng D4i hgc C6ng nghQ
Hg vd t€n hgc vi6n cao hgc: Khudt Quang Duy
T6n d6 tii 1u0n v[n: Nghi6n ctu hai he mQt mi h4ng nhg ginnh chi6n thEng trong
cuQc thi Caesar Acorn vi Ascon
Chuy6n nginh: Khoa hgc m6Y tinh Md s6:
.f XrfN NHAN XET
Hgc vi€n Khu6t Quang Duy thlrc hien de tdi 1u0n v5n vd tim hitiu c6c h0 mOt m[ r16i
ximg h4ng nhg Acorn vA Ascon vd thri nghiem cdi dit chring.trdn h9 tfi6u hnnh
Android. Lugn v[n bao g6m ba chuong chinh tin luqt gioi thiQu vA mat ma dtii *t g,
citc giirithuit dugc chq;nghi€n criu Acorn vi Ascon, vd ktit qui cdi tlit thUc nghiQm
cic giitithu4t tr€n thi6t bi Android.
Lu{n 6n qu6 thi€n vC tim hitiu ki6n thric chuy6n nginh, thiiiu lli lu4nviibtii canh, dqng
co, mqc Ai.n ,ra tinh c5p thitit cria. aC tai. Hgc vi6n dcrn giin chi cdi dlt cic chucmg
trinh c6 sin. Kh6ng kh6 dr5 tim th6y md ngu6n C cga cic giiri thu{t Acorn vi Ascon
tr6n GitHub. Vi quZ phg thuQc vi m5 ngu6n C c6 sin, khdng chri tlQng l4p trinh c6c
giai tfruat Uing ngOn ngt Java cho thgcig phir hqp voi c6c thi6t bi Android n€n c6c
[6t qua thgc nghigm kh6n[ phin 6nh hodn toin chinh xric hiQu nlng cria c6c.giii thu4t
vi mqt khtii tuqng lcrn kha nang xri l1i cira CPU vd b0 nhd phii dinh cho chuy6n t16i
m6 nhi phin v€ m6i trudng bytecode cria m6y io Java th6ng qua giao di€n JNI (Java
Native Interface).
Nhin chung t6i th6y lufn vdn cria hec vi6n Khu6t Quang.Duy dtp img c6c y6u cAu vcri
m6t luan G",\u" sy ngedr C6ng nghQ Th6ng tin, t6i d6ng f 116 hqc vi6n bio vQ lu{n
vdn tru6c hQi t16ng.
HANQi, ngiry23 th6ng llndm20l9
xAc NHAN CUA CO euAN coNc rAc cAN s0 pHeN BIEN
-/9tcr*il'ed lko/t
ceNG HoA xA ugr cHU Ncnia vry.r NAM
DQc l$p - Tg do - H4nh phrlc
NHAN xfr cua cAN Be PHAN BrEN
LUAN VAN THAC SV
Ho vd t6n ciin b0 ch6m phin biQn: Trdn Nguy0n Ngoc
C6ng tric chuy6n m6n: Gi6ng day
Hgc hdm, hgc vi: Ph6 giSo su, Ti6n s!
Dcrn vi c6ng t6c: Khoa CNTT, Hgc viQn KTQS.
NII,IN XET LUAN VAN THAC SY
Od tai: Nghi6n cr?u hai h0 mQt m5 h4ng nhg gidnh chi6n thing trong cu6c thi Caesar ACORN vd
ASCON
Hgc vi6n: Khuit Quang Duy
ViQc nghidn cr?u vd cric hQ mat md hiQn ilai hang nhg li v6n Ae c6 ;f nghia thgc ti6n, d{c
biQt viQc ti{ip c4n c6c thu{t to6n trong cuQc thi Caesar ld nhmg nQi dung c6 tinh thdi sg cao
duqc th.5 gi6i quan tdm.
NQi dung lufln vdn g6m 3 chuong, trong d6 bao gdm:
o Chucmg 1 Gi6i thiQu T6ng quan vd mpt md nhg vd mE h6a c6 x6c thpc.
o Chucrng 2 Trinh bdy chi ti6t v6 hai thugt torin md h6a ACORN vi ASCON
o Chucrng 3 MO ta vigc cdi dAt thir nghiQm trong vi6c truyCn tii video tr6n thi6t bidi dQng
Lufln vdn du<v. c trinh bdy 16 rang, b6 cpc tuong OOi ptu: hqp. Tuy nhi6n phAn tim hi6u vC hai-,
thuQt to6n vd cilc ki6n thirc chung hcvi nhi6u (51 trang) trong khi ph6n thir nghiQm ld d6ng g6p
chinh chi khoing 10 trang cu6i.
Trong trinh bdy m5i chucrng khi ki5t thric n6n c6 k6t lu4n chuong vd d6n nhQp li6n ttit m5i aAu
chuong. ViQc d6nh s6 cric c6ng thric cdn trirng l{p, vi dp c6ng tflic 1f ; xu6t hiqn 6 ch trang 42
vd trang 46. LuQn vdn n6n c6 ktSt lufn chung cho c6 tdi liQu vd nOu bflt dugc ctic ktit qui nghi0n
criu, kh6ng chi nOu nhirng di6u hi6n nhi6n nhu muc 3.3.4.
ViQc trinh bdy ki5t qu6 thyc nghiQm mdi chi dirng <r viQc do thoi gian thuc thi thuat to6n vd kich
thu6c bO nh6 RAM sri dpng, circ vdn aC t6n quan dtin tinh b6o mdt duoc trinh bdy tru6c d6
chua th6y c6 kh6o srit.
Ngodi ra, thgc t6 viQc truy6n tii video dir li€u thucmg dugc n6n l4i, do vfy md hinh thir nghiQm
d6 xu6t t4i Hinh 3.2 c6 v6 chua thgc tti khi xir lf vd truy6n tii timg 6nh Bitmap, md hinh niyIphil hqp vdi truy6n 6nh hcrn ld video.
Tr6n co sd d6, aO tam rd h<yn nQi dung d6ng g6p cira minh, <16 nghi ttqc rie, lim rd mOt s6
nQi dung sau:
1. Trong thpc nghiQm truyAn video voi t6c dO 15 khung hinh/giAy chi b6o ndo cho th6y ddp
img dugc YOu c6u thoi gian thYc?
2. ViQc t6c gi6 cdi dat thu6t toiln c6 sir dpng thu viQn sin c6 hay ldm toan b0 tir dAu, c6c
tham s6 dAu vdo cho c6c thu6t to6n dugc thitlt 14p cU th6 nhu th6 ndo?
3. Vioc do kich thu6c bQ nho RAM khi thuc thi thuat toiln c6 tinh d6n ii.h tho6. anh hay
chi tinh pnan UO nh6 danh cho thu$t toiin m6 h6a, n6u mu6n x6c dinh vung nh6 danh
riOng cho md h6a thi x6c <linh thti nio?
Tuy cdn t6n tai mQt sd di6m chir y nhu dd n6u, song, ddy ld mot hudng nghian cr?u kh6' ddi
hoi ph.6n tich vi rl6nh gi6 thUc ti5 vd kii5n thric chuyOn sdu ve fnn v.uc nghiOn cftu, trong ph4m vi
lufln van cria minh, hgc.vi6n Khust Quang Duy d6 co b6n hoan thinh nhi€m vu dat ra vd t6i
itins i ili hgc vi1n il.rgc bdo vQ trrfc hQi iling ch6m lufn vdn Th4c s! theo chuy6n ngdnh
Khoa hgc mrlY tinh.
NSdy 19 thdng 1l ndm2019
NGTIoI CHAM PHAN BIE.N
TrAn Nguy0n Nggc