Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

86
ĐẠI HC QUC GIA HÀ NI TRƯỜNG ĐẠI HC CÔNG NGHKHUT QUANG DUY NGHIÊN CU HAI HMT MÃ HNG NHGIÀNH CHIN THNG TRONG CUC THI CAESAR ACORN VÀ ASCON LUẬN VĂN THẠC SĨ Ngành: Khoa hc máy tính HÀ NI - 2019

Transcript of Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

Page 1: Đ Ạ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

Page 2: Đ Ạ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

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

Page 3: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 4: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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!

Page 5: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 6: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 7: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 8: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 9: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 10: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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ệ

Page 11: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C 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ủ

Page 12: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 13: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 14: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 15: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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)

Page 16: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 17: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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]

Page 18: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 19: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 20: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 21: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 22: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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)

Page 23: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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ấ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

Page 24: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 25: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 26: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 27: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 28: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 29: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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(𝑆𝑖, 𝑐𝑎𝑖, 𝑐𝑏𝑖)

Page 30: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 31: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 32: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

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ã

Page 33: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 34: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 35: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 36: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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)

Page 37: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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,

Page 38: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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õ

Page 39: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 40: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 41: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 42: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 43: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 44: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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à

Page 45: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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)

Page 46: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 47: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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:

Page 48: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 49: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 50: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 51: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 52: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 53: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 54: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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ố

Page 55: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 56: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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].

Page 57: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 58: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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:

Page 59: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 60: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 61: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 62: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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].

Page 63: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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].

Page 64: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 65: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 66: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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,

Page 67: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 68: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 69: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 70: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 71: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 72: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 73: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 74: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 75: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 76: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 77: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 78: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 79: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 80: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 81: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

ĐẠ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

Page 82: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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 {^;

Page 83: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

\;

Page 84: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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

Page 85: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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.

Page 86: Đ ẠI HỌC QUỐC GIA HÀ NỘI I H C CÔNG NGH

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