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 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ị đượ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ạ.
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ơ S1 đượ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
Để đả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.
Để 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 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ã)
13:00 | 22/01/2021
08:00 | 28/04/2021
08:00 | 06/01/2021
08:00 | 30/03/2020
09:00 | 28/04/2024
Không chỉ tác động đến lĩnh vực an toàn thông tin, Bug Bounty còn được cho là cổ vũ cho nền kinh tế Gig Economy kiểu Orwell. Điều này có là một góc nhìn tiêu cực cho hình thức bảo mật này?
14:00 | 01/03/2024
Giấu tin (steganography) là một kỹ thuật nhúng thông tin vào một nguồn đa phương tiện nào đó, ví dụ như tệp âm thanh, tệp hình ảnh,... Việc này giúp thông tin được giấu trở nên khó phát hiện và gây ra nhiều thách thức trong lĩnh vực bảo mật và an toàn thông tin, đặc biệt là quá trình điều tra số. Thời gian gần đây, số lượng các cuộc tấn công mạng có sử dụng kỹ thuật giấu tin đang tăng lên, tin tặc lợi dụng việc giấu các câu lệnh vào trong bức ảnh và khi xâm nhập được vào máy tính nạn nhân, các câu lệnh chứa mã độc sẽ được trích xuất từ ảnh và thực thi. Nhằm mục đích cung cấp cái nhìn tổng quan về phương thức ẩn giấu mã độc nguy hiểm, bài báo sẽ giới thiệu về kỹ thuật giấu tin trong ảnh và phân tích một cuộc tấn công cụ thể để làm rõ về kỹ thuật này.
10:00 | 02/01/2024
Trong hệ mật RSA, mô hình hệ mật, cấu trúc thuật toán của các nguyên thủy mật mã là công khai. Tuy nhiên, việc lựa chọn và sử dụng các tham số cho hệ mật này sao cho an toàn và hiệu quả là một vấn đề đã và đang được nhiều tổ chức quan tâm nghiên cứu. Trong bài viết này, nhóm tác giả đã tổng hợp một số khuyến nghị cho mức an toàn đối với độ dài khóa RSA được Lenstra, Verheul và ECRYPT đề xuất.
09:00 | 24/11/2023
Bằng chứng không tiết lộ tri thức (Zero-Knowledge Proofs - ZKP) là một dạng kỹ thuật mật mã được công bố từ thập niên 90 của thế kỷ trước, công nghệ mật mã này cho phép xác minh tính xác thực của một phần thông tin mà không tiết lộ chính thông tin đó. Tuy nhiên, trong những năm gần đây ZKP mới được đưa vào ứng dụng nhiều trong hệ thống công nghệ thông tin. Bài viết này sẽ trình bày chi tiết về khái niệm, tính chất, cách thức phân loại và một số ứng dụng phổ biến của ZKP trong an toàn thông tin.
Cùng với sự phát triển của khoa học kỹ thuật có ngày càng nhiều những cuộc tấn công vào phần cứng và gây ra nhiều hậu quả nghiêm trọng. Nhiều giải pháp để bảo vệ phần cứng được đưa ra, trong đó, hàm không thể sao chép vật lý PUF (Physically Unclonable Functions) đang nổi lên như là một trong số những giải pháp bảo mật phần cứng rất triển vọng mạnh mẽ. RO-PUF (Ring Oscillator Physically Unclonable Function) là một kỹ thuật thiết kế PUF nội tại điển hình trong xác thực hay định danh chính xác thiết bị. Bài báo sẽ trình bày một mô hình ứng dụng RO-PUF và chứng minh tính năng xác thực của PUF trong bảo vệ phần cứng FPGA.
10:00 | 13/05/2024
Mã độc không sử dụng tệp (fileless malware hay mã độc fileless) còn có tên gọi khác là “non-malware”, “memory-based malware”. Đây là mối đe dọa không xuất hiện ở một tệp cụ thể, mà thường nằm ở các đoạn mã được lưu trữ trên RAM, do vậy các phần mềm anti-virus hầu như không thể phát hiện được. Thay vào đó, kẻ tấn công sử dụng các kỹ thuật như tiêm lỗi vào bộ nhớ, lợi dụng các công cụ hệ thống tích hợp và sử dụng các ngôn ngữ kịch bản để thực hiện các hoạt động độc hại trực tiếp trong bộ nhớ của hệ thống. Bài báo tìm hiểu về hình thức tấn công bằng mã độc fileless và đề xuất một số giải pháp phòng chống mối đe dọa tinh vi này.
10:00 | 17/05/2024