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
15:00 | 19/02/2024
SoftEther là phần mềm xây dựng mạng riêng ảo (Virtual Private Network - VPN ) cho phép hoạt động ở lớp 2 trong mô hình OSI (lớp liên kết dữ liệu). SoftEther tích hợp nhiều giao thức VPN mà có thể hoạt động ở các lớp khác nhau, trong đó có giao thức SE-VPN hoạt động ở lớp 2. Bài viết này giới thiệu về giải pháp máy chủ VPN tích hợp SoftEther, cũng như trình bày về cách xử lý, đóng gói gói tin của giao thức SE-VPN được sử dụng trong máy chủ SoftEther.
08:00 | 21/12/2023
Theo số liệu của DataReportal, hiện Việt Nam đang có khoảng 49,9 triệu người sử dụng mạng xã hội TikTok, xếp thứ 6 trên 10 quốc gia có số người sử dụng TikTok nhiều nhất thế giới. Đáng chú ý là mạng xã hội này đang dần chiếm lĩnh thị trường nhờ vào những đoạn video có nội dung đa dạng mang tính "gây nghiện", thu hút mọi lứa tuổi trong đó có trẻ em. Tuy nhiên không như những mạng xã hội khác, TikTok thường xuyên bị cáo buộc việc gây ra những rủi ro nghiêm trọng về bảo mật và quyền riêng tư của người dùng. Thời gian qua đã có ít nhất 10 quốc gia cấm sử dụng ứng dụng này, trong đó có những nguyên nhân là do Tiktok gây ảnh hưởng nghiêm trọng tới suy nghĩ và hành động của trẻ em.
18:00 | 22/09/2023
Do lưu giữ những thông tin quan trọng nên cơ sở dữ liệu thường nằm trong tầm ngắm của nhiều tin tặc. Ngày nay, các cuộc tấn công liên quan đến cơ sở dữ liệu để đánh cắp hay sửa đổi thông tin càng trở nên khó lường và tinh vi hơn, vì vậy việc quản lý cơ sở dữ liệu đặt ra những yêu cầu mới với các tổ chức, doanh nghiệp. Trong hệ thống phân tán, khi dữ liệu được phân mảnh và phân phối trên các vị trí khác nhau có thể dẫn đến khả năng mất toàn vẹn của dữ liệu. Thông qua sử dụng cây Merkle và công nghệ Blockchain ta có thể xác minh tính toàn vẹn của dữ liệu. Trong bài viết này, nhóm tác giả sẽ trình bày các nghiên cứu về ứng dụng cây Merkle và công nghệ Blockchain để bảo đảm tính toàn vẹn dữ liệu cho cơ sở dữ liệu phân tán, đồng thời đảm bảo hiệu năng của hệ thố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.
Theo báo cáo năm 2022 về những mối đe doạ mạng của SonicWall, trong năm 2021, thế giới có tổng cộng 623,3 triệu cuộc tấn công ransomware, tương đương với trung bình có 19 cuộc tấn công mỗi giây. Điều này cho thấy một nhu cầu cấp thiết là các tổ chức cần tăng cường khả năng an ninh mạng của mình. Như việc gần đây, các cuộc tấn công mã độc tống tiền (ransomware) liên tục xảy ra. Do đó, các tổ chức, doanh nghiệp cần quan tâm hơn đến phương án khôi phục sau khi bị tấn công.
19:00 | 30/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