3.8. ARX¶
ARX là cách gọi chung của những mô hình mã hóa khối chỉ sử dụng ba toán tử Addition (A, phép cộng modulo \(2^n\)), Rotation (R, dịch vòng bit), và XOR (X, toán tử xor).
Giả sử ta có hai số nguyên \(a\) và \(b\) có \(n\) bit.
Khi đó, nếu ta biểu diễn \(a \in \mathbb{Z}_{2^n}\) dưới dạng nhị phân
thì số nguyên \(a\) cũng tương ứng với vector
Phép cộng modulo \(2^n\) giữa hai số nguyên \(a\) và \(b\) được định nghĩa là
Thông thường \(n\) cố định và là lũy thừa của \(2\). Ví dụ trong hệ mã Magma thì \(n = 32\).
Với số nguyên dương \(r\) cố định, phép dịch vòng trái và phải \(r\) bit lần lượt là
Đối với phép XOR thì ta thực hiện phép cộng modulo \(2\) theo từng vị trí trong vector
Dưới góc độ phá mã vi sai, phép dịch vòng bit và phép XOR là hai biến đổi tuyến tính, và phép cộng modulo \(2^n\) là biến đổi không tuyến tính. Do đó phép cộng modulo \(2^n\) có thể loại bỏ sự có mặt của S-box trong thuật toán, phù hợp với các thiết bị lightweight vì không phải dùng bộ nhớ để lưu trữ S-box và các chip hiện này đều hỗ trợ thực hiện các phép tính ARX.
Nhược điểm của ARX là có nhiều phần chưa được nghiên cứu rộng rãi, chẳng hạn, mặc dù phép cộng modulo \(2^n\) là biến đổi không tuyến tính nhưng có quan hệ gì với phép XOR hay không. Nói cách khác, có nhiều điểm chưa rõ ràng đối với các toán tử ARX ở thời điểm hiện tại (2025).
Một số thuật toán lightweight sử dụng ARX: họ SPECK/SIMON.