Sinh các hộp thế phụ thuộc khóa cho AES sử dụng các LFSR và phép hoán vị hàng, cột

21:00 | 12/02/2021 | GP MẬT MÃ
Bài báo này trình bày một phương pháp sinh các hộp thế động phụ thuộc khóa cho AES. Phương pháp này dựa vào việc hoán vị hộp thế nguyên thủy của AES dưới sự điều khiển của khóa bí mật trên cơ sở bộ sinh số giả ngẫu nhiên và các thanh ghi dịch phản hồi tuyến tính.

Năm 2013, các tác giả trong [1] đã đề xuất một thuật toán sinh các hộp thế động phụ thuộc khóa cho AES. Thuật toán này dựa vào việc hoán vị hộp thế nguyên thủy của AES dưới sự điều khiển của khóa bí mật. Bước khởi tạo, khóa bí mật sẽ được thao tác và áp dụng vào bộ sinh số giả ngẫu nhiên (PN generator) dựa trên 3 thanh ghi dịch phản hồi tuyến tính (Linear feedback shift register). Bộ sinh PN và khóa bí mật của AES được dùng để sinh hai chuỗi hoán vị, có độ dài 16 giá trị hexa (8 byte). Các chuỗi này được dùng để sắp xếp lại các vectơ hộp thế ban đầu. Theo các tác giả, thuật toán đề xuất làm tăng độ phức tạp, khiến cho thám tuyến tính và thám lượng sai trở nên khó khăn hơn. Trong phương pháp này, hộp thế động mới được sử dụng cho mọi vòng mã hóa của thuật toán.

Bộ sinh chuỗi PN được đề xuất

Bộ sinh PN chịu trách nhiệm sinh chuỗi ngẫu nhiên hoàn hảo. Sau đó hoán vị hộp thế AES nhằm tạo ra một hộp thế động mới an toàn dựa trên chuỗi ngẫu nhiên này. Bộ sinh PN đề xuất bao gồm 3 thanh ghi dịch phản hồi độ dài cực đại với 31, 19 và 40 ô nhớ. Các hàm phản hồi lựa chọn nguyên thủy để đạt được chu kỳ cực đại cho mỗi thanh ghi [2]. Các hàm phản hồi của LFSR là:

Hình 1 biểu diễn một bộ sinh chuỗi PN có thể. Các đầu ra của LFSR được kết nối qua cổng XOR. Chu kỳ của chuỗi PN này là:

Đầu ra được chia thành các khối 128 bit. Mỗi khối được sử dụng để thay đổi hộp thế động.

Hình 1. Bộ sinh chuỗi PN

Như vậy, theo hình 1 ta thấy độ dài khóa của bộ sinh PN này là (14 + 19 +31) = 64, vì vậy bộ sinh này cần 64 giá trị khởi tạo. Khóa bí mật của AES được xếp vào hai vectơ độ dài 64 bit và được cộng XOR với nhau. Kết quả của phép XOR này là trạng thái khởi tạo của bộ sinh PN.

Khối hoán vị

Khối hoán vị được sử dụng để tạo ra hai chuỗi hoán vị S1 và S2 . Các chuỗi này chịu trách nhiện sắp xếp lại hộp thế của AES theo hàng và theo cột. Hoạt động này dựa trên khóa bí mật của AES-128 và chuỗi PN được sinh ra. Khóa bí mật của AES được XOR với chuỗi PN đó. Kết quả được chuyển về 32 giá trị hexa (16 byte). 16 giá trị đầu tiên (8 byte) được ký hiệu là S1 và 16 giá trị còn lại được ký hiệu là S2 . Việc đảm bảo các giá trị hoán vị ( S1 và  S2) được phân phối đều giữa (0, F) là rất quan trọng. Không sự lặp lại nào được chấp nhận ở đây. Nếu S1 hoặc S2 chứa các giá trị bất kỳ bị lặp lại thì những giá trị lặp đó được loại bỏ và số bị thiếu sẽ được thêm vào chuỗi đó để đảm bảo rằng tất cả các chỉ số của hộp thế đều được ánh xạ.

Các hộp thế phụ thuộc khóa

Hộp thế phụ thuộc khóa dựa trên hoán vị hoặc sự sắp xếp lại hộp thế chuẩn của AES theo cột và theo hàng. Vectơ Sđược dùng để sắp xếp lại các hàng, còn S2  sẽ sắp xếp lại các cột của S-box chuẩn; Hoặc ngược lại.

Bảng 1 biểu diễn các bước để tạo hộp thế phụ thuộc khóa. Bảng 2, 3 biểu diễn hộp thế được thực thi và hộp thế nghịch đảo tương ứng của nó với khóa bí mật được sử dụng là:  "B9B5ED7585C8B15D7454ED271AA3A3".

Bảng 1. Hộp thế phụ thuộc khóa

Bảng 2. Hộp thế nghịch đảo phụ thuộc khóa

Bảng 3. Các bước thực hiện hộp thế phụ thuộc khóa

Phân tích an toàn

Để đảm bảo rằng thuật toán AES-128 động được thực thi với hộp thế phụ thuộc khóa là an toàn thì một số kiểm tra mật mã phải được thực hiện. Do đó, các tác giả đã thực hiện một số kiểm tra dưới đây cho thuật toán AES-128 động đề xuất.

Các kiểm tra tính ngẫu nhiên: được sử dụng để đảm bảo các thuộc tính ngẫu nhiên của các đầu ra tương ứng của thuật toán được thực thi. Kiểm tra biểu đồ hình ảnh có thể được dùng cho mục đích này.

Ảnh hưởng thác đổ: đây là thuộc tính mong đợi của bất kỳ thuật toán mật mã nào, trong đó một thay đổi nhỏ trong bản rõ hoặc khóa sẽ tạo ra thay đổi đáng kể trong bản mã. Cụ thể hơn, một thay đổi trong 1 bit của bản rõ hoặc 1 bit trong khóa sẽ tạo ra sự thay đổi trong nhiều bit của bản mã.

Hệ số tương quan: là một số giữa -1 và 1 để đo độ liên quan tuyến tính của hai biến. Hệ số tương quan thể hiện độ phụ thuộc tuyến tính giữa các biến. Nếu các biến là độc lập thì tương quan bằng 0.

Thời gian mô phỏng: thời gian được yêu cầu bởi thuật toán để xử lý hoàn toàn một độ dài dữ liệu cụ thể. Nó phụ thuộc vào tốc độ vi xử lý, độ phức tạp của thuật toán… Thời gian mô phỏng với giá trị nhỏ nhất luôn được mong đợi.

Đánh giá AES được đề xuất với hộp thế phụ thuộc khóa

Để mô phỏng AES động với hộp thế phụ thuộc khóa, các tác giả đã sử dụng phần mềm Matlab (2011) cho cả AES và AES động. Với khóa được cố định cho cả 2 thuật toán. Các tác giả đã mã hóa một số lượng lớn khối dữ liệu và thực hiện nhiều kiểm tra để quan sát hiệu năng của AES. Các kết quả thử nghiệm đạt được như sau:

Kiểm tra biểu đồ hình ảnh

Trong kiểm tra này, hình ảnh được mã hóa sử dụng cùng một khóa với các hộp thế khác nhau. Biểu đồ cho các hình ảnh mã đó đã được các tác giả vẽ thành đồ thị (Hình 2). Hình 3 biểu diễn hình ảnh mã sử dụng thuật toán AES với biểu đồ của nó. Hình 4 chỉ ra hình ảnh mã sử dụng AES động với thuật toán hộp thế phụ thuộc khóa và biểu đồ của nó.

Các ảnh mã biểu diễn thuộc tính ngẫu nhiên của cả hai thuật toán. Biểu đồ của 2 ảnh được mã thì gần giống nhau, khá đồng dạng và khác nhiều so với hình ảnh ban đầu, nên nó không cung cấp bất cứ thể hiện nào để thực thi được tấn công thống kê.

Hình 2. Ảnh ban đầu vào biểu đồ của nó

Hình 3. Hình ảnh được mã bởi AES và biểu đồ của nó

Hình 4. Hình ảnh được mã bởi AES động và biểu đồ của nó

Ảnh hưởng thác đổ khi thay đổi một bit trong bản rõ

Hình 5, 6 biểu diễn ảnh hưởng thác đổ của thuật toán AES và thuật toán AES động đề xuất khi thay đổi 1 bit trong bản rõ. Thuật toán được thực thi biểu diễn ảnh hưởng thác đổ nằm trong khoảng 45% và 63%, chỉ số này rất khó cho thám mã để có thể dự đoán về đầu vào, nếu chỉ biết đầu ra. AES-128 và AES động có ảnh hưởng thác đổ gần bằng nhau.

Bảng 4 biểu diễn các mẫu bản mã của AES và AES động khi thay đổi một bit trong bản rõ (vị trí thay đổi một bit có thể thay đổi từ 0 đến 127).

Bảng 4. Các mẫu bản mã khi thay đổi 1 bit trong bản rõ

Hình 5. Các ảnh hưởng thác đổ cảu AES chuẩn

Hình 6. Các ảnh hưởng thác đổ của AES động với hộp thế phụ thuộc khóa

Ảnh hưởng thác đổ khi thay đổi 1 bit trong khóa bí mật

Xét khóa bí mật độ dài 128 bit dưới dạng hexa. Khóa là: "B9B5ED7585C8B15D7454ED271AA3A3A3" và hộp thế tương ứng của nó được biểu diễn trong Bảng 4.

Khi chỉ 1 bit trong khóa bí mật được thay đổi thì có 248 phần tử được thay đổi (trên 256) trong hộp thế tương ứng. Do đó xấp xỉ 96.8% phần tử của hộp thế thứ 2 được thay đổi.

Khi khóa được thay đổi là: "A9B5ED7585C8B15D7454ED271AA3A3A3" thì hộp thế tương ứng của nó được biểu diễn trong Bảng 5.

Bảng 6 biểu diễn các mẫu bản mã của thuật toán AES-128 động đề xuất khi thay đổi một bit trong bản rõ và ảnh hưởng thác đổ thu được.

Bảng 5. Hộp thế với khoá bí mật "A9B5ED7585C8B15D7454ED271AA3A3A3"

Bảng 5. Hộp thế với khóa bí mật

Bảng 6. Các mẫu bản mã khi thay đổi 1 bit trong bản rõ của AES-128 động

Hệ số tương quan

Hình 7 biểu diễn ảnh hưởng thác đổ của AES-128 đề xuất khi thay đổi 1 bit trong khóa bí mật. Nó biểu diễn ảnh hưởng thác đổ nằm trong khoảng 41% và 61%, chỉ số khó cho thám mã có thể dự đoán đầu vào khi chỉ biết đầu ra. Điều này phản ánh khả năng kháng lại thám tuyến tính và thám lượng sai của thuật toán này.

Hình 8 biểu diễn hệ số tương quan giữa AES chuẩn và AES động đề xuất. Bởi vì hệ số tương quan nằm giữa -0,3 và 0,3 (nghĩa là gần 0), điều này có nghĩa là hai thuật toán này độc lập nhau.

Hình 7. Ảnh hưởng thác đổ khi thay đổi 1 bit trong khóa mã

Hình 8. Kiểm tra hệ số tương quan

Thời gian mô phỏng

Thời gian mô phỏng 2 thuật toán trên khi thực hiện ghi 500 khối dữ liệu theo giây đuôi mô tả trong Bảng 7. Theo các tác giả, AES chuẩn có thời gian mô phỏng nhanh hơn AES động được đề xuất. Sự sai khác trong thời gian mô phỏng tương ứng với sự thay đổi động của hộp thế.

Bảng 7. So sánh thời gian mô phỏng

Theo bảng này thì AES động nhanh hơn AES tĩnh, có thể do các tác giả đưa nhầm thông số vào bảng này.

Tổng kết thuật toán động tầng thay thế áp dụng với AES trong [1]

Tổng kết ngắn gọn về thuật toán động tầng thay thế đã trình bày ở trên được thể hiện ở Bảng 8.

Bảng 8. Tổng kết thuật toán động tầng thay thế cho AES

Kết luận

Trong bài viết, tác giả đã trình bày một phương pháp sinh các hộp thế động phụ thuộc khóa cho AES. Phương pháp này dựa vào việc hoán vị hộp thế nguyên thủy của AES dưới sự điều khiển của khóa bí mật dựa trên bộ sinh số giả ngẫu nhiên và các thanh ghi dịch phản hồi tuyến tính. Việc sinh các hộp thế động sẽ có ý nghĩa trong việc làm “động” hóa mã khối AES, góp phần nâng cao độ an toàn cho mã khối này.

TÀI LIỆU THAM KHẢO

[1] Eman Mohammed Mahmoud, Ahmed Abd El Hafez, Talaat A. Elgarf, AbdelhalimZekry, Dynamic AES-128 with Key-Dependent S-box, International Journal of Engineering Research and Applications, Vol. 3, Issue 1, January -February 2013, pp.1662-1670.

[2] Mark Goresky, and  Andrew  Klapper, Pseudo noise Sequences Based on Algebraic Feedback  Shift  Registers,  IEEE TRANSACTIONS  ON  INFORMATION  THEORY, VOL. 52, NO. 4, April 2006.

TS. Trần Thị Lượng ( Học viện Kỹ thuật mật mã)

Tin cùng chuyên mục

Tin mới