Năm 2013, tác giả Fatma Ahmed và các cộng sự [1] đã giới thiệu một thuật toán AES cải biên với ngân hàng các hộp thế hoạt động giống như cơ chế khối quay (Rotor) và ma trận MDS phụ thuộc khóa - đặt tên là SDK-AES. Thuật toán SDK-AES được thiết kế để phụ thuộc khóa và có khả năng kháng lại tấn công tần số (Frequency Attack).
Khác với AES, thuật toán SDK-AES có thể mã hóa các khối bản rõ có độ dài 128 byte tạo ra các khối bản mã có độ dài tương tự. Độ dài khóa có thể là 128, 192 hoặc 256 byte. Số lượng tổng thể của các vòng tùy thuộc vào độ dài khóa, có thể là 10, 12 hoặc 14 vòng tương ứng. Theo [1], giả thiết độ dài khóa là 128 byte. Đầu vào của thuật toán mã hóa và giải mã là các khối có độ dài 128 byte. Khối này được chép lại thành một mảng trạng thái dạng ma trận 16x8 của các byte, ma trận này sẽ được thay đổi ở mỗi giai đoạn của quá trình mã hóa hoặc giải mã. Sau giai đoạn cuối cùng, mảng trạng thái được chép lại vào một ma trận đầu ra. Tương tự, khóa 128 byte cũng được mô tả bởi một ma trận 16x8 của các byte. Khóa này sau đó được mở rộng vào một mảng các từ của lược đồ khóa; mỗi từ gồm 4 byte và lược đồ khóa tổng thể bao gồm 32x11 từ. Quá trình mã hóa và giải mã của SDK-AES tương đối giống với AES. Hình 1 chỉ ra cấu trúc tổng thể của thuật toán SDK-AES.
Hình 1. Cấu trúc của thuật toán SDK-AES
Cấu trúc hàm vòng của thuật toán SDK-AES gần tương tự như AES. Sự khác nhau của hai thuật toán này là các hộp thế và ma trận MDS, đây là những thành phần bí mật và phụ thuộc khóa. Ngoài ra, trong vòng cuối cùng của quá trình mã hóa, hộp thế lại được dịch vòng một lần nữa.
Ngân hàng hộp thế
Trong thuật toán SDK-AES, ngân hàng các hộp thế phụ thuộc khóa hoạt động giống cơ chế khối quay [2]. Ngân hàng hộp thế chứa hai hộp thế, hộp thế đầu tiên là hộp đã được sử dụng trong AES. Để duy trì cho cấu trúc của mã khối đơn giản, hộp thế thứ hai được xây dựng từ hộp thế thứ nhất bằng cách dịch chuyển một lượng, lượng này được tính từ khóa của người dùng. Ở bước đầu tiên, tính tổng kiểm tra (Checksum) “Adler-32” cho khóa của người dùng. Kết quả đầu ra có độ dài 32 bit. Theo các tác giả, việc sử dụng thuật toán tổng kiểm tra sẽ đưa ra một kết quả khác, khi khóa của người dùng được thay đổi. Kết quả đầu ra từ Checksum sẽ được chia thành bốn khối con, mỗi khối có độ dài 8 bit. Bốn khối con đó sẽ được cộng XOR với nhau để tạo ra một khối có độ dài 8 bit, khối này biểu diễn con số sẽ sử dụng để dịch chuyển hộp thế đầu tiên để sinh ra hộp thế thứ hai.
Trong quá trình mã hóa, byte đầu vào được ánh xạ tới 1 byte mới thông qua ngân hàng hộp thế. Đầu tiên, byte đầu vào được ánh xạ bởi hộp thế thứ nhất. Đầu ra sẽ là đầu vào của hộp thế thứ hai. Nếu hộp thế thứ nhất này dịch vòng 1 byte thì sau 256 lần hộp thế sẽ trở lại vị trí ban đầu của nó và hoạt động này sẽ được lặp lại với tất cả 256 byte. Tuy nhiên, hộp thế thứ hai sẽ được dịch vòng bất quy tắc. Sự dịch vòng này bao gồm hai bước. Bước thứ nhất là dịch vòng hộp thế thứ hai trong vòng 10 sau khi ánh xạ mỗi byte bởi các số lẻ (1, 3, 5 và 7). Đầu tiên, dịch vòng hộp thế thứ hai bởi 1 byte cho đến khi dịch vòng hết 256 byte, sau đó dịch vòng 3 byte cho 256 byte đầu vào tiếp theo. Tiếp đó, dịch vòng 5 byte cho 256 byte đầu vào tiếp theo. Cuối cùng, dịch vòng 7 byte cho đến khi có 256 byte đầu vào. Ở bước thứ hai, sau khi vòng 10 kết thúc, dịch vòng hộp thế thứ hai 1 byte. Hai bước trên đảm bảo rằng hộp thế thứ hai dịch vòng bất quy tắc. Bởi sau khi mã hóa mỗi khối bản rõ, hộp thế thứ hai sẽ ở trong một sự sắp xếp khác, kể cả khi lặp lại dữ liệu đầu vào thì đầu ra sẽ hoàn toàn là khác nhau.
Ý tưởng cơ bản là làm cho hộp thế giống như hệ mật khối quay đảm bảo được độ an toàn và quá trình giải mã đơn giản. Trong thuật toán giải mã, không thực hiện dịch vòng các hộp thế mà chỉ trừ đầu ra từ nghịch đảo của hộp thế thứ hai với số lần mà các byte hộp thế thứ hai đã được dịch vòng. Chỉ thực hiện dịch vòng hộp thế thứ hai và giữ nguyên hộp thế thứ nhất, hộp thế thứ hai chỉ có người gửi và người nhận mới biết.
Biến đổi ShiftRows
Dữ liệu đầu vào được sắp thành 16 hàng và 8 cột. Biến đổi ShiftRow được thực hiện theo cách: giữ nguyên hàng đầu tiên và hàng thứ 9 của mảng trạng thái. Với hàng 2, thực hiện dịch vòng trái 1 byte. Với hàng 3, thực hiện dịch vòng trái 2 byte. Tiếp tục cho đến hàng 8, dịch vòng trái 7 byte. Sau đó, thực hiện dịch vòng trái hàng 10 với 1 byte, hàng 11 với 2 byte, cho đến hàng 16 với 7 byte. Biến đổi ShiftRow ngược thực hiện dịch vòng theo hướng ngược lại của mỗi hàng trong 16 hàng.
Ma trận MDS phụ thuộc khóa
Trong SDK-AES, các tác giả thiết kết các ma trận MDS động mới phụ thuộc khóa của người dùng. Số lượng các ma trận là 8, mỗi ma trận đều phụ thuộc khóa đó. Trong quá trình mã hóa, chỉ sử dụng một ma trận từ 8 ma trận cho mọi khối dữ liệu. Ma trận được lựa chọn phụ thuộc vào các khóa con và bản rõ. Các ma trận mới là tự nghịch đảo để ma trận tương tự có thể được sử dụng cho thuật toán giải mã, do đó làm giảm độ phức tạp của hệ thống.
Ma trận MDS mới là một ma trận vòng 4x4. Mã MDS là (12,8,5). Thuộc tính MDS của ma trận này được kiểm tra, nghĩa là một mã (12,8,5) là mã MDS nếu d = n - k +1. Điều này có thể thực hiện bằng cách kiểm tra số nhánh của phép biến đổi. Đầu vào với 1 hoặc 2 byte hoạt động được nhân với ma trận trên và đầu ra được kiểm tra, nếu tổng số các byte hoạt động bao gồm các byte hoạt động đầu vào và các byte hoạt động đầu ra là bằng 5 thì nó thỏa mãn thuộc tính MDS. Ma trận MDS mới được kiểm tra đối với thuộc tính tự nghịch đảo. Các tác giả thiết kế nó bằng cách cung cấp các điều kiện tự nghịch đảo từ ma trận dưới đây:
Với điều kiện:
Vì vậy, lựa chọn các phần tử cho ma trận MDS mới thỏa mãn các điều kiện trên. Sau đó, chọn b1 = b3 = 1 . Vì phép nhân với 1 là “free” nên có thể nâng cao tính hiệu quả trong tính toán với các ma trận MDS. Các phần tử b0 và b2 là phụ thuộc khóa. Ở bước đầu tiên, lấy 32 bit (đầu ra từ tổng kiểm tra của khóa) và chia nó thành 8 khối con, mỗi khối có độ dài 4 bit. Giá trị của mỗi khối con biểu diễn phần tử b0 trong mỗi ma trận D-MDS (8 khối con, tương ứng với 8 giá trị b0 cho 8 ma trận MDS). Phần tử b2 được tính từ phần tử nghịch đảo theo phép cộng của b0 trong GF(24).
Trong SDK-AES, dữ liệu được sao chép vào một ma trận 16x8 của các byte. Đầu tiên, chia mảng trạng thái của dữ liệu thành các mảng con, mỗi mảng là ma trận 4x4 của các byte. Do đó, thu được 8 mảng trạng thái con. Mỗi phần tử trong ma trận tích là tổng của các tích các phần tử của một hàng và một cột. Trong trường hợp này, các phép cộng và phép nhân đều được thực hiện trên GF(28). Đảm bảo rằng, mỗi byte sẽ ảnh hưởng tới tất cả các byte khác bằng cách thực hiện “tráo đổi hàng” sau khi nhân với ma trận MDS trên. Phương trình (4) biểu diễn việc thực hiện “tráo đổi hàng”.
Mở rộng khóa SDK-AES
Thuật toán mở rộng khóa SDK-AES lấy một khóa gồm 32 từ (128 byte) và tạo ra một mảng tuyến tính 32x11 từ. Mảng này đủ để cung cấp một khóa vòng gồm 32 từ cho biến đổi AddRoundKey khởi tạo và biến đổi này cho 10 vòng mã hóa. Thủ tục mở rộng khóa của SDK-AES giống với thủ tục mở rộng khóa của AES.
Kết luận
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 thám mã. Do đó, việc nghiên cứu các cách “động khóa” mã khối 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]. W. O. Chan, “Cryptanalysis of SIGABA”, Master’s Thesis, Department of Computer Science, San Jose State University, May 2007. |
TS. Trần Thị Lượng, Học viện Kỹ thuật mật mã
07:00 | 24/05/2021
10:00 | 08/10/2019
08:00 | 06/03/2020
13:00 | 12/08/2019
08:00 | 06/01/2021
15:00 | 15/09/2016
08:00 | 10/02/2024
22:58 | 19/05/2015
14:00 | 14/08/2023
Xu hướng số hóa đã mang lại nhiều lợi ích cho ngành công nghiệp sản xuất, nhưng nó cũng bộc lộ những lỗ hổng trong hệ thống công nghệ vận hành (Operational Technology - OT) được sử dụng trong những môi trường này. Khi ngày càng có nhiều hệ thống điều khiển công nghiệp (Industrial Control System - ICS) được kết nối với Internet, nguy cơ tấn công mạng nhằm vào các hệ thống này sẽ càng tăng lên. Nếu các hệ thống này bị xâm phạm, nó có thể dẫn đến những hậu quả nghiêm trọng, chẳng hạn như ảnh hưởng sản xuất, bị mất cắp dữ liệu, hư hỏng vật chất đối với thiết bị, nguy hiểm cho môi trường làm việc và thậm chí gây hại đến tính mạng con người. Chính vì vậy, việc đưa ra các lưu ý giúp tăng cường bảo mật OT trong môi trường công nghiệp sản xuất trở nên vô cùng quan trọng.
17:00 | 11/08/2023
Wireless Mesh Network là công nghệ mạng truyền thông đầy hứa hẹn với khả năng kết nối mạnh mẽ và ổn định, được ứng dụng trong nhiều lĩnh vực khác nhau. Trong số 1 (071) 2023 của Tạp chí An toàn thông tin, nhóm tác giả đã giới thiệu về cơ sở lý thuyết của Wifi Mesh. Để ứng dụng thực tiễn nền tảng này, trong bài báo dưới đây nhóm tác giả đề xuất một giải pháp thiết kế hệ thống giám sát độ nghiêng của thiết bị trong không gian ba chiều X, Y, Z sử dụng module ESP32 WROOM có tính năng truyền nhận dữ liệu bằng Wifi Mesh.
15:00 | 04/08/2023
Trong bối cảnh sự phát triển mạnh mẽ của các công nghệ ngày càng được ứng dụng trong hoạt động sản xuất, cùng với ngành công nghiệp dần được chuyển sang tự động hóa, công nghệ thông tin (Information Technology - IT) và công nghệ vận hành (Operational Technology - OT) đang có những bước chuyển mình tích cực. Tuy nhiên, dường như các doanh nghiệp mới chỉ tập trung phát triển một trong hai nền tảng trên, mà chưa chú trọng đến kết hợp, hội tụ cùng một môi trường sản xuất công nghiệp hiện đại. Bài báo sẽ đưa ra các lợi ích của sự hội tụ của hai hệ thống IT và OT.
10:00 | 21/12/2022
Hôm 9/12, chính phủ Vương quốc Anh vừa công bố quy tắc thực hành tự nguyện thúc giục các nhà điều hành cửa hàng ứng dụng và nhà phát triển ứng dụng nâng cấp các biện pháp bảo mật và quyền riêng tư của họ. Hướng dẫn này là kết quả của một cuộc tham vấn cộng đồng được đưa ra hồi tháng 5, với 59 phản hồi, phần lớn trong số đó là tích cực. Hướng dẫn mới sẽ được theo dõi để đảm bảo tuân thủ.
Hiện nay, số lượng các cuộc tấn công mạng nhắm đến hệ điều hành Linux đang ngày càng gia tăng cả về số lượng lẫn mức độ tinh vi, đặc biệt là các sự cố liên quan đến việc lộ lọt mật khẩu. Thông thường, khi tạo tài khoản mới trên Linux, người dùng có thể sử dụng những mật khẩu tùy ý, kể cả những mật khẩu yếu, điều này có thể gây ra nhiều rủi ro bảo mật tiềm ẩn trong hệ thống mạng, các tác nhân đe dọa sẽ dễ dàng tấn công và xâm phạm tài khoản hơn. Do đó, cần phải thực thi các chính sách sử dụng mật khẩu đủ mạnh để bảo vệ tài khoản người dùng tránh bị tấn công. Trong bài viết này sẽ gửi đến độc giả hướng dẫn thiết lập cấu hình mật khẩu an toàn trên Linux với nền tảng Centos 7.
10:00 | 10/04/2024
Mới đây, Cơ quan An ninh mạng và Cơ sở hạ tầng Hoa Kỳ (CISA) đã phát hành phiên bản mới của hệ thống Malware Next-Gen có khả năng tự động phân tích các tệp độc hại tiềm ẩn, địa chỉ URL đáng ngờ và truy tìm mối đe dọa an ninh mạng. Phiên bản mới này cho phép người dùng gửi các mẫu phần mềm độc hại để CISA phân tích.
13:00 | 17/04/2024