Phân tích độ an toàn của thuật toán SDK-AES

15:55 | 10/09/2019

Mã khối động được biết đến nhờ khả năng nâng cao độ an toàn của mã khối chống lại nhiều loại thám mã khác nhau. Bài báo này phân tích độ an toàn của thuật toán SDK-AES - thuật toán mã khối động ở cả tầng thay thế và khuếch tán.

Ảnh hưởng thác đổ

Trong mật mã, ảnh hưởng thác đổ là một thuộc tính mong đợi của các thuật toán mật mã. Thuộc tính này là hiển nhiên khi một đầu vào được thay đổi nhỏ (chẳng hạn lật 1 bit đơn) thì đầu ra sẽ thay đổi đáng kể (ví dụ: một nửa số bit của đầu ra được lật). Với các mã khối có chất lượng, thì một sự thay đổi nhỏ như vậy của khóa hoặc bản rõ sẽ gây ra một thay đổi lớn trong bản mã. Việc xây dựng một thuật toán mật mã cung cấp ảnh hưởng thác đổ lớn được xem là mục tiêu thiết kế chính. Ảnh hưởng thác đổ được tính bởi phương trình:

Ở đây, các tác giả [1] lấy hai bản rõ và hai khối dữ liệu có độ dài 128 byte được lật 1 bit (từ nhiều người) ở các vị trí khác nhau và sau đó tính ảnh hưởng thác đổ. Sau đó, thực hiện lật khóa của người dùng ở các vị trí khác nhau và tính ảnh hưởng thác đổ [2]. Các kết quả sau đạt được sau khi tính các ảnh hưởng thác đổ tương ứng.

Bảng 1. Ảnh hưởng AV với 1 bit được thay đổi trong bản rõ

Bảng 2. Ảnh hưởng AV với 1 bit được thay đổi trong khóa của người dùng

Từ kết quả trên cho thấy, ảnh hưởng thác đổ của thuật toán SDK-AES cao hơn so với thuật toán AES. Nguyên nhân, đối với thuật toán AES nếu chỉ 1 bit thay đổi thì sẽ ảnh hưởng tới khối dữ liệu của nó chứ không ảnh hưởng tới tất cả các khối. Trong khi với thuật toán SDK-AES thực hiện dịch vòng hộp thế sử dụng bản mã đầu ra, vì vậy, nếu chỉ một bit thay đổi thì nó tạo ra sự dịch vòng trong hộp thế.

Các nhóm dữ liệu mật

Xét dữ liệu mật được sử dụng trong thuật toán AES, tấn công vét cạn khóa trong trường hợp 128 bit là 2128 = 3,4 x 1038. Xét dữ liệu mật được sử dụng trong thuật toán SDK-AES, tấn công vét cạn khóa trong trường hợp 128 byte là 2128x8 = 1,8 x 10308. Hộp thế trong thuật toán SDK-AES sẽ tạo ra sự thay thế khác nhau trong vòng cuối cùng bởi vì nó dịch chuyển sau mọi byte đầu ra theo bước bất quay tắc. Để tính toán tấn công vét cạn trong trường hợp này, thực hiện tìm một số lượng lớn các vết để phá vỡ hệ thống đó.

Các thống kê ngôn ngữ

Độ dư ngôn ngữ [3] là vấn đề lớn nhất của một hệ mật bất kỳ. Thám mã sử dụng độ dư ngôn ngữ để tấn công các bản mã mật. Nếu thông báo đủ dài, thám mã sẽ tính tần số của mỗi ký tự và xem xét số lượng các tổ hợp khác nhau cho đến độ dài của khối mật. Sau đó thám mã thử đánh giá bản rõ từ kết quả thống kê này. Một hệ mật được xét là không thể phá vỡ bởi tấn công thống kê nếu bản mã của nó có phân bố đồng đều. Để thể hiện sức mạnh của thuật toán SDK-AES, Hình 2 và 3 chỉ ra các thống kê bản rõ của tệp được sử dụng. Các thống kê bản mã của thuật toán AES và SDK-AES được biểu diễn trong Hình 4 - 7. Từ các hình này, các tác giả cho rằng hệ thống mới của họ có khả năng che giấu hiệu quả các đặc trưng của bản mã, đặc biệt đối với những dữ liệu được lặp lại.

Hình 2. Các thống kê bản rõ của một tệp văn bản

Hình 3. Các thống kê bản rõ lặp lại

Hình 4. Các thống kê bản mã của thuật toán SDK-AES

Hình 5. Các thống kê bản mã của thuật toán AES

Hình 6. Các thống kê bản mã thuật toán SDK-AES của một thông báo gồm 20 KB ký tự “e”

Hình 7. Các thống kê bản mã thuật toán AES của một thông báo gồm 20 KB ký tự “e”

Bộ thống kế NIST

Viện tiêu chuẩn và công nghệ quốc gia (NIST) [4] đã phát triển một bộ kiểm tra (Test Suite). Bao gồm một gói thống kê 16 kiểm tra, được phát triển để kiểm tra tính ngẫu nhiên của các chuỗi nhị phân (độ dài tùy ý) được tạo ra bởi các bộ sinh số ngẫu nhiên hoặc giả ngẫu nhiên mật mã dựa trên phần cứng hoặc phần mềm. Các kiểm tra này tập trung vào các kiểu phi ngẫu nhiên khác nhau, có thể tồn tại trong một chuỗi bit. Một số kiểm tra có thể được phân tách thành nhiều kiểm tra con. Bảng 3 đưa ra các giá trị trung bình của các kiểm tra thống kê cho cả hai thuật toán AES và SDK-AES.

Bảng 3. Các kiểm tra thống kê của thuật toán SDK-AES và AES

Như vậy, trong [1] đã đưa ra một phiên bản cải tiến của thuật toán AES. Thuật toán SDK-AES không mâu thuẫn với độ an toàn và tính đơn giản của thuật toán AES. Các tác giả cải tiến độ an toàn của thuật toán AES bằng cách tăng kích cỡ khối dữ liệu lên 128 byte và kích cỡ khóa là 128, 192 và 256 byte. Điều này làm cho hộp thế của thuật toán SDK-AES hoạt động giống như một hệ mật khối quay mà vẫn duy trì được hoạt động giải mã đơn giản và làm cho nó phụ thuộc khóa. Bên cạnh đó, ma trận MDS được cải tiến và phụ thuộc khóa người dùng, có thuộc tính tự nghịch đảo. Trong thuật toán SDK-AES, nếu chỉ 1 bit thay đổi trong bản rõ hoặc khóa người dùng, thì gây ảnh hưởng đến hơn một nửa số bit của bản mã. Từ đó, các tác giả cho rằng đề xuất của họ có khả năng kháng lại các phương pháp vét cạn nổi tiếng.

Kết luận

Phương pháp của các tác giả trong [1] là xây dựng cả tầng thay thế động và tầng khuếch tán động cho mã khối AES. Tuy nhiên, có một nội dung cần xem xét là dạng ma trận MDS mà các tác giả đưa ra để thỏa mãn điều kiện tự nghịch đảo là:

Ma trận vuông con cấp hai với 4 số 1 ở trên là ma trận suy biến. Do đó, ma trận này không phải là ma trận MDS.

Bên cạnh đó, vì hộp thế động thứ hai thay đổi theo khóa và bản rõ đầu vào, nên cả hai bên tham gia có thể mã hóa đồng thời nhiều bản rõ nhưng thời gian tính toán có thể tốn kém nhiều hơn so với thuật toán AES. Việc giải mã không thể song song do bản rõ tiếp theo phụ thuộc vào bản rõ trước đó. Đây là một nhược điểm khác của phương pháp này.

Các mã khối động với những thành phần “động” có khả năng làm cho các nhà mã thám khó khăn hơn trong việc thám mã. Do đó, việc nghiên cứu các cách “động khóa” mã khối và đảm bảo cơ sở lý thuyết về độ an toàn của các mã khối động là một chủ đề nên được đầu tư nghiên cứu. Bài viết này đã giới thiệu một cách tiếp cận trong việc làm động mã khối. Đây có thể là một tham khảo hay cho các nhà nghiên cứu về mã khối và mã khối động.

TÀI LIỆU THAM KHẢO

[1]. Fatma Ahmed and Dalia Elkamchouchi, Strongest AES with S-Boxes Bank and Dynamic KeyMDS Matrix (SDK-AES), International Journal of Computer and Communication Engineering, Vol. 2, No. 4, July 2013, pp. 1-5.

[2]. A. Kumar, “Effective implementation and avalanche effect of AES”International Journal of Security, Privacy and Trust Management (IJSPTM), vol. 1, no. 3/4, pp. 31-35, August 2012.

[3]. B. Schneier, “Applied Cryptography, Protocols, Algorithms, and SourceCode in C”, Wiley Computer Publishing, Second Edition, John Wiley &Sons, Inc.

[4]. NIST, “A Statistical Test Suite for Random and PseudorandomGenerators for Cryptographic Applications”, NIST Special Publication, 2003.