Thám mã vi sai
Thám mã vi sai khai thác khả năng xảy ra cao của các vi sai bản rõ và các vi sai được đưa vào vòng cuối cùng của mật mã.
Ví dụ: Xét một hệ thống với đầu vàoX = [X1X2...Xn]và đầu raY = [Y1Y2...Yn].
vào là∆X =X0⊕X00, ở đây”⊕”là tốn tử XOR giữa từng cặp bít của hai véc tơn bít, do vậy
∆X = [∆X1∆X2...∆Xn]
ở đây ∆X =X0⊕X”với X0và X”là bít thứ i tương ứng củaX0vàX”. Cũng như vậy,
∆Y =Y0⊕Y”là vi sai đầu ra và
∆Y = [∆Y1∆Y2...∆Yn]
ở đây∆Y =Y0⊕Y”.Trong một mật mã bất kỳ lý tưởng, khả năng xảy ra của một vi sai đầu ra∆Y khi cho một vi sai đầu vào ∆X là1/2n ở đây n là số lượng bít của X. Thám mã vi sai cố gắng tìm kiếm một kịch bản, đó là một cặp∆Y xảy ra khi cho vi sai đầu vào
∆X với khả năng xảy ra xác suất (PD) cao (tức làPD >1/2n). Cặp (∆X,∆Y) được gọi là vi sai. Thám mã vi sai là kĩ thuật tấn công bản rõ lựa chọn, nghĩa là người tấn cơng có thể lựa chọn các đầu vào và xác định được các đầu ra, từ đó cố gắng trích rút ra được khóa. Với thám mã vi sai, người tấn cơng sẽ lựa chọn các cặp đầu vàoX0vàX00thỏa mãn một∆Xthì khi đó giá trị∆Y xảy ra với khả năng rất cao.
Để xây dựng được các đặc tính vi sai đúng có khả năng xảy ra cao thì ta xác định các đặc điểm của từng hộp-S và dùng các đặc điểm đó để tìm các đặc tính vi sai tốt. Cụ thể là ta xét các vi sai đầu vào và đầu ra của các hộp-S để từ đó xác định cặp vi sai khả năng xảy ra cao. Sau đó kết hợp các cặp vi sai hộp-S từ vịng tới vịng (các bít vi sai đầu ra khác khơng từ một vịng tương ứng với các bít vi sai đầu vào khác khơng của vịng kế tiếp) thì cho phép chúng ta tìm được đặc tính vi sai xảy ra cao của vi sai bản mã và vi sai đầu vào cho vịng cuối cùng. Các bít khóa con sẽ khơng xuất hiện trong biểu thức vi sai vì các bít khóa con nằm trong các tập dữ liệu và do vậy xét ảnh hưởng của các bít khóa con đến các vi sai bởi tốn tử XOR và 0, nghĩa là các bít khóa con khơng ảnh hưởng đến các vi sai.
Để xác định các cặp vi sai của một hộp-S. Xét hộp-S4×4được mơ tả trong phần trên với đầu vào X = [X1X2...Xn]và đầu ra Y = [Y1Y2...Yn]. Tất cả các cặp vi sai (∆X, ∆Y) của một hộp-S có thể được xác định và khả năng xảy ra của∆Y khi cho ∆X có thể được lấy bằng cách xét các cặp đầu vào(X0, X00)sao choX0⊕X00= ∆X. Với một hộp-S 4×4, chúng ta chỉ cần xét 16 giá trị choX0 và sau đó dùng giá trị của ∆X để tìm X” sao choX” = X0⊕∆X. Xét hộp-S trong mật mã, ta có thể lấy các giá trị của ∆Y đối với mỗi cặp đầu vào (X0, X00 = X0⊕∆X). Với các giá trị nhị phân của X, Y và các giá trị tương ứng với∆Y khi cho các cặp đầu vào (X0, X0 ⊕∆X) chúng ta có thể xếp thành
bảng dữ liệu hồn chỉnh cho một hộp-S trong một bảng phân phối vi sai trong đó các cột biểu diễn các giá trị∆X (trong hệ Hexa) và các dòng biểu diễn các giá trị∆Y (trong hệ Hexa). Bảng phân phối vi sai cho hộp-S được mô tả trong bảng 5 dưới đây (theo tài liệu của Axel York Poschmann, năm 2009 [8] ).
∆X 0 1 2 3 4 5 6 7 8 9 A B C D E F ∆Y 0 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 2 0 2 0 4 0 0 0 2 0 2 0 4 2 0 0 0 0 0 0 2 2 0 2 2 0 2 4 2 0 3 0 4 2 2 0 0 0 0 2 0 2 0 0 2 2 0 4 0 0 0 2 0 2 0 0 0 4 0 2 0 2 0 4 5 0 0 4 0 4 0 0 0 0 0 4 0 4 0 0 0 6 0 0 2 4 2 0 2 2 0 2 0 0 0 0 2 0 7 0 4 0 2 2 0 0 0 2 0 0 0 2 2 2 0 8 0 0 0 0 0 0 2 2 0 2 2 4 2 0 2 0 9 0 4 0 0 2 2 0 0 2 0 0 2 2 0 2 0 A 0 0 2 2 2 2 0 0 0 0 2 2 2 2 0 0 B 0 0 0 2 0 2 4 0 4 0 0 2 0 2 0 0 C 0 0 2 0 2 4 2 2 0 2 0 0 0 0 2 0 D 0 4 2 0 0 2 0 0 2 0 2 2 0 0 2 0 E 0 0 2 0 2 0 0 0 0 4 2 0 2 0 0 4 F 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 4
Bảng 5: Bảng phân phối vi sai của hơp-S PRESENT
Có vài đặc điểm về bảng phân phối vi sai được đề cặp ở trên. Đầu tiên, số phần tử trong một hàng bằng số phần tử trong một cột và bằng2n = 16 phần tử. Tiếp theo, tất cả các giá trị của phần tử trong bảng là chẵn. Kết quả này là vì một cặp giá trị đầu vào
(X0, X00)(hoặc cặp giá trị đầu ra) có giá trị∆X giống như cặp giá trị vào(X00, X0), nghĩa
là∆X =X0⊕X00 =X00⊕X0. Tiếp theo, vi sai đầu vào∆X = 0 sẽ phải dẫn đến vi sai đầu ra∆Y = 0 cho ánh xạ 1 tới 1 của hộp-S. Do vậy, góc trái trên cùng của bảng 5 có giá trị của 2n = 16và tất cả các giá trị khác trong dòng đầu tiên và cột đầu tiên là 0. Cuối cùng, nếu chúng ta xây dựng một hộp-S lý tưởng (không cho thông tin sai về đầu ra khi
cho giá trị đầu vào) thì hộp-S sẽ có tất cả các phần tử trong bảng 5 bằng 1 và khả năng xảy ra của một giá trị∆Y khi cho một giá trị∆X sẽ là 1/2n = 1/16. Tuy nhiên, các đặc
điểm được thảo luận ở trên phải được duy trì, điều này là rõ ràng, nếu không, không thể thực hiện được.
Sử dụng sự kết hợp của các đặc tính vi sai hộp-S để lấy ra các đặc tính vi sai và đánh giá của một đặc tính vi sai tốt để dùng cho tấn cơng. Để thực hiện việc đó ta sẽ xét việc xây dựng các đặc tính vi sai như sau:
Từ bảng phân phối vi sai của hộp-S, một bít vi sai đầu vào sẽ gây ra ít nhất là hai bít vi sai đầu ra. Điều này sẽ gây ra hai hoạt động của hộp-S trong vịng tiếp theo. Sau đó, mỗi hoạt động của hộp-S sẽ có ít nhất hai bít vi sai đầu ra, sẽ gây ra ít nhất bốn hoạt động hộp-S trong vịng tiếp theo. Từ đó ta có định lý sau:
Định lý 2.1. Với bất kỳ đặc tính vi sai nào của 5 vịng trong PRESENT sẽ có ít
nhất là 10 hoạt động của hộp-S.
Chứng minh định lý:Với 31 vòng được đánh số từ 1 đến 31. Xét 5 vòng liên tiếp của PRESENT vớii= 2đếni+ 2choi∈[3...29]. ChoDj là số lần hoạt động của hộp-S trongj vòng. NếuDj ≥2, choi−2≤j ≤i+ 2, thì định lý là khơng đúng. Vì vậy, giả sử
rằng một trong cácDj = 1. Chúng ta có thể xét các trường hợp sau:
Trường hợp D = 1. Từ hộp-S của PRESENT cho thấy vi sai trong một bít đầu vào đơn
gây ra sự vi sai ở ít nhất hai bít đầu ra (xem tiêu chí thiết kế thứ 2 của hôp-S). Như vậy, Di−1+Di+1 ≥ 3. Sử dụng nhận xét (1) ở trên ta thấy, tất cả các
hộp-S hoạt động của vịng i−1 đều thuộc cùng một nhóm, và mỗi hộp-S hoạt động chỉ có một bít vi sai đầu ra tương ứng. Vì vậy, theo nhận xét thứ (2) ta có Di−2 ≥ 2Di−1. Ngược lại, theo nhận xét thứ (3), tất cả các hộp-S
hoạt động trong vòng i+ 1 thuộc về các nhóm khác biệt và chỉ có một vi sai duy nhất trong đầu vào tương ứng. Vì vậy, theo nhận xét thứ (4) ta có Di+2≥2Di+1. Điều này sẽ đưa raPi+2j=i−2Dj ≥1 + 3 + 2×3 = 10.
Trường hợp Di−1 = 1. NếuDi = 1theo chứng minh ở trên, giả sử rằng nếu Di ≥ 2thì theo nhận xét (3), tất cả các hộp-S hoạt động của vòng ithuộc về các nhóm khác nhau và chỉ có một vi sai duy nhất trong đầu vào tương ứng. Như vậy, theo nhận xét thứ (4), ta cóDi+1≥2Di≥4. Hơn nữa, tất cả các hộp-S hoạt
động tại vịng i+ 1 chỉ có một vi sai đầu vào duy nhất tương ứng và được phân bố sao cho ít nhất hai nhóm hộp-S có chứa ít nhất một hộp-S hoạt động.
Như vậy, chúng ta cóDi−2 ≥4và do đóPi+2j=i−2Dj ≥1 + 1 + 2 + 4 + 4 = 12.
Trường hợp Di+1 = 1. Nếu Di = 1 theo chứng minh ở trên. Giả sử rằng nếuDi ≥ 2thì theo nhận xét (1), tất cả các hộp-S hoạt động của vịng i thuộc cùng một nhóm và mỗi hộp-S hoạt động chỉ có một vi sai duy nhất trong đầu ra tương ứng. Như vậy, theo nhận xét thứ (2), ta cóDi−1 ≥2Di ≥ 4. Hơn nữa, tất cả
các hộp-S hoạt động tại vịngi−1chỉ có một vi sai đầu ra duy nhất tương ứng và được phân bố sao cho ít nhất có hai nhóm có hai hộp-S hoạt động. Như vậy, chúng ta cóDi−2 ≥4và do đóPi+2j=i−2Dj ≥4 + 4 + 2 + 1 + 1 = 12.
Trường hợp Di+2= 1hoặcDi−2 = 1. Chứng minh tương tự như trường hợp 2 và 3 từ đó
định lý được chứng minh.
Theo Định lý 2.1 ta có, với bất kỳ các đặc tính vi sai của 25 vịng trong PRESENT sẽ có ít nhất 5×10 = 50 hoạt động của hộp-S. Xác suất vi sai tối đa của một hộp-S PRESENT là2−2, do đó, xác suất của một đặc tính vi sai của 25 vịng là(2−2)50= 2−100. Ngày nay, các kỹ thuật tiên tiến cho phép thám mã bằng cách loại bỏ các vịng ngồi từ một mật mã để khai thác một đặc tính ngắn hơn. Tuy nhiên, trong thuật tốn này, khi chúng ta cho phép kẻ tấn cơng loại bỏ 6 vịng khỏi mật mã (đây là tình huống mà chưa có tiền lệ) thì dữ liệu cần thiết để khai thác đặc tính vi sai của 25 vịng cịn lại vượt q số giá trị đã có. Vì vậy các phạm vi bảo mật có nhiều hơn những gì chúng ta yêu cầu. Tuy nhiên, để xác nhận thực tế rằng các rằng buộc về số lượng các hoạt động của hộp-S trong Định lý 2.1 là tốt, ta thực hiện minh họa như sau:
Chúng ta sẽ xác định các đặc tính có liên quan đến 10 hộp-S trong 5 vịng. Hai đặc điểm lặp lại sau đây bao gồm hai hộp-S trong mỗi vòng và với xác suất trong 25 vòng là
225
4= 0000000000000011 →0000000000030003 →0000000000000011 =4.
Tuy nhiên, với việc xác định mức độ ảnh hưởng của vi sai là một công việc phức tạp và mất thời gian mà chúng ta cần tập trung nghiên cứu hơn nữa.
Thám mã tuyến tính
Thám mã tuyến tính là việc cố gắng tận dụng các khả năng xảy ra xác suất cao của các biểu thức tuyến tính có liên quan đến các bít bản rõ, các bít bản mã và các bít khóa. Đây là một cuộc tấn cơng mà kẻ tấn công biết được một số các bản rõ và bản mã tương ứng.
Thám mã tuyến tính của PRESENT được xét theo định lý sau, trong đó chúng ta phân tích phép xấp xỉ tuyến tính tốt nhất cho bốn vòng của PRESENT [8].
Định lý 2.2 Cho 4R là độ chênh lệch tối đa của một phép xấp xỉ tuyến tính trong bốn vịng của PRESENT. Khi đó4R ≤ 1
27.
Chứng minh: Nhớ lại bổ đề piling-up của Matsui [25] ước tính độ chênh lệch của
một phép xấp xỉ tuyến tínhP rliên quan đếnnhộp-S.
Chonbiến nhị phân độc lập ngẫu nhiên,X1, X2, ...Xn, P r(X1⊕...⊕Xn = 0) = 1/2 + 2n−1
n
Y
i=1
i
Hoặc tương đương với
1,2,...,n= 2n−1
n
Y
i=1
i
Trong đó các giá trị i là độ chênh lệch của mỗi hộp-S riêng biệt. Theo nguyên tắc thiết kế của PRESENT, độ chênh lệch của tất cả các xấp xỉ tuyến tính nhỏ hơn 2−2
trong khi độ chênh lệch của một bít xấp xỉ nhỏ hơn2−3. Cho(j)4R thể hiện độ chênh lệch của một phép xấp xỉ tuyến tính trong 4 vòng liên quan đếnjhộp-S hoạt động. Xét trong 3 trường hợp sau:
(1) Giả sử rằng xấp xỉ tuyến tính mỗi vịng trong bốn vịng có chính xác một hộp-S hoạt động. khi đó, độ chênh lệch của mỗi hộp-S ở các vịng giữa tối đa là 1 / 8 và độ chênh lệch tổng thể cho một xấp xỉ bốn vịng có thể bị giới hạn như sau
(4)4R ≤23×(2−3)2×(2−2)2= 2−7.
(2) Thay vào đó, giả sử rằng có năm hộp-S hoạt động trên bốn vịng, sau đó bằng cách nhóm các hộp-S xem hình..., các hộp-S hoạt động trong ba vịng liên tiếp không thể
tạo thành theo sơ đồ 1-2-1. Để điều này xảy ra, hai hộp-S hoạt động ở vịng giữa được kích hoạt giống như hộp-S và do đó phải thuộc ở hai nhóm hộp-S khác nhau. Nhưng nếu đây là trường hợp mà chúng ta khơng thể kích hoạt chỉ một hộp-S trong vịng sau. Do đó, số hộp-S hoạt động là hoặc 2-1-1-1 hoặc 1-1-1-2, do đó
(5)4R ≤24×(2−3)×(2−2)4 = 2−7. (3) Cuối cùng, giả sử rằng có hơn năm hộp-S hoạt động. Như vậy
(j)4R ≤2j−1×(2−2)j = (2−j−1)2≤2−7choj >5
Tương đương về mặt lý thuyết có thể đạt được vớij = 6. Nhưng không đúng đối
với tất cả cácj. Định lý được chứng minh.
Chúng ta có thể sử dụng trực tiếp định lý 2.2 để hạn chế độ chênh lệch tối đa của phép toán xấp xỉ tuyến tính cho 28 vịng bởi biểu thức sau:
26×74R = 26×(2−7)7 = 2−43
Do đó, theo giả thiết rằng một người thám mã (cryptanalyst) chỉ cần khoảng 28 vòng trong số 31 vòng của PRESENT để làm nhiệm vụ tấn cơng khơi phục khóa, việc thám mã tuyến tính của mật mã sẽ u cầu thực hiện286bản rõ/ bản mã. Với yêu cầu dữ liệu như vậy đã vượt q văn bản có sẵn vì vậy thám mã tuyến tính với PRESENT được coi là an tồn.
2.6.2 Tấn cơng đại số (Algebraic attacks)
Các cuộc tấn cơng đại số có kết quả tốt hơn khi áp dụng cho mật mã dòng so với mật mã khối. Tuy nhiên, với cấu trúc đơn giản của PRESENT thì việc nghiên cứu thám mã này sẽ được đề cập. Hộp-S của PRESENT được mơ tả bởi 21 phương trình bậc hai trong 8 tham số đầu vào/đầu ra trên GF(2). Điều này là hiển nhiên, vì với bất kỳ 4 bít
hộp-S có thể được mơ tả ít nhất 21 phương trình như vậy. Khi đó tồn bộ mã có thể được mơ tả bởi số phương trình bậc hai (quadratic equations) trong các tham s nh sau [8]:
ã e=nì21(el s phng trỡnh bc hai)
Trong đónlà số hộp-S trong thuật tốn mã hóa và sinh khóa. Đối với PRESENT chúng ta có n = (31×16) + 16 = 527 , do đó tồn bộ cơ chế gồm cóe= 527×21 = 11,067
phương trình bậc hai trongv =n×8 = 4,216tham số.
Trên thực tế khi chạy mô phỏng trên các phiên bản với quy mơ nhỏ sử dụng thuật tốn F4 [11] trong Magma [21], với một hộp-S, nghĩa là một kích thước khối 4 bít rất nhỏ, có thể thực hiện trên nhiều vòng và đưa ra kết quả của phương trình. Tuy nhiên, với việc tăng kích thước khối và thêm hộp-S cùng với một lớp khuếch tán tuyến tính thích hợp thì hệ phương trình trở lên q lớn.
Xem xét trên PRESENT với một hệ thống gồm 7 hộp-S tương ứng với một kích thước khối là 28 bít áp dụng cho hai vịng của mật mã, chúng ta cón= 7×2 = 14, có số
phương trình làe= 14×21 = 294trongv = 14×8 = 112tham số, một kết quả tương đối lớn. Chính vì vậy ta thấy việc thám mã đại số với PRESENT là khơng khả thi.
2.7 Thực hiện cứng hóa trên ASIC
Đối với những kịch bản ứng dụng khác nhau cũng tồn tại các yêu cầu khác nhau đối với việc thực hiện và các mục tiêu tối ưu. Việc triển khai các thiết bị thông minh