5.4.1. Khái niệm
Trước h ế t ta đ ịn h n g h ĩa kh ái niệm v i s a i (đạo hàm ) bậc cao của các hàm m ật m ã.
Định nghĩa 7: G iả sử (S, +) và (T, +) là các nhóm A b elian . Đ ôi vói h à m f: s -> T, đạo hàm (vi sai) cù a f tạ i điểm a € s
được đ ịn h n g h ĩa bồi: A,f(x) = f(x + a) - f(x)
Định nghĩa 8: G iả sử h àm f như tron g địn h nghĩa 7. Đ ạo h à m (vỉ sai) bậc i củ a f tạ i điểm a,, a 2, đ ư ợ c định ngh ĩa bỏi công thức:
C hú ý rằ n g các đặc trư ng và v i sa i được sử d ụ n g bỏi B ih am v à S h am ir tron g các tấ n công cù a họ là tương ứ n g với
v i sa i (đạo hàm ) bậc n h ấ t được mô tả bỏi X. Lai. D o đó dưòng n h ư m ột cách tự n h iên ta mỏ rộng kh ái n iệm vi sa i th à n h vi sa i bậc cao.
Định nghĩa 9: Vi sa i m ột vòn g bậc i là m ột bộ (i+1) có
dạng a,, a2,..., a,, P), sao cho: ^ f(x) = p
K hi hàm được x é t trên trường với trường cơ sở GF(2) (khi đó p h ép trừ cũ n g ch ín h là phép cộng), các điểm aj, a 2,...,aị p h ả i là độc lập tu y ế n tín h để đạo hàm bậc i không n h ậ n giá trị zero tầm thường.
Mệnh đề 1: G iả sử L[a„ ao,..., a j là danh sách của 2' tổ hỢp tu y ế n tín h có th ể có của aj, 3 2 ,..., a;. Khi đó:
YeL[aia2...a,]
N ếu a, là phụ th u ộc tu y ến tín h của aj, Hị,. -, aị.i, thì: A i‘. i , f ( x ) = 0
T a c ũ n g sử d ụ n g m ện h đ ề sa u đây của X. Lai.
Mệnh đề 2: G iả sử ord (0 là bậc phi tu y ến của h àm đa th ứ c n h iề u biến f(x). K hi đó:
ord(Aaf(x)) < ord(f(x)) - 1.
Đ iểu n ày dẫn đ ến m ệnh đ ề sau đây:
Chương 5: Một số phương pháp thảm mã dữ liệu D ES 207
ế 3: N ếu a|2
tu y ế n củ a h àm f là lớn hdn h a y bằng i.
Chứng minh: T ừ m ện h đê' 2 ta có:
o r d (f) > ord(Aa^ f ( x ) ) + ! > . . . > ord(A^‘*3^ f ( x ) ) + i
5 .4 .2 . Tấh công sử dụng vi sai bậc cao
X ét m ột h ệ P e is te l với cd k h ố i l à 2n. G iả sử rằ n g X r - nử a p h ả i củ a bản rõ là được cố đ ịn h n h ư là m ột h ằ n g số, v à ta xem x é t v ế ph ải củ a b ả n m ã là đ ầu ra của b ả n mã th u
gọn. Từ chỗ Xr là hằng sô", các bit trong Ỵr luôn có thể được
b iểu d iễn n h ư là đa th ứ c trên G F (2)[xi, X ị , . . . , Xnl th eo các b it
của Xl = (Xj, X2,..., x„). Giả sử rằng đa thức này có bậc không
lổ n hđn d. K hi đó th eo các m ện h đ ề tr ên ta có;
s P(’^l) = c (5.43)
XL€l-d
ở đ â y L<J là k h ôn g g ia n con d ch iều củ a GF(2)", c là n h ư n h a u
đôì vổi bất kỳ không gian con song song với Ld, p là hàm tính
to á n đ ầu ra củ a h ệ m ã th u gọn. T ừ đó su y ra rằng:
^ p(xl + w) = 0 , vói m ọi w € GF(2)" (5.44)
n ế u và ch ỉ n ếu p(x) là đa thứ c bậc d h oặc th ấp hơn- T rong
thuật toán sau đây các biến X = (x^, Xr) và y = (yl, yu) đóng
v a i trò bản rõ v à b ả n m ã củ a h ệ m ật. L ỉà h ạ n g của m a trận (d + l)x n ch iều tr ên G F(2) và F là h à m vòng.
1. Giả sử Xr và w là các hằng s ố nbit
'2. Vói m ọi a e G F (2)‘**‘
a. G iả sử Xl = aL + w.
b. T ín h bản m ã y(a) của b ả n rõ (xl, Xr).
3. V ới mọi giá trị k của k h ó a v ò n g cu ối cùng: a. G iả sử ơ = 0
b. V ói m ọi a 6 G F (2)‘*">: i. G iả sử y = y(a).
ii. G iả sử y*R = Yl e F(k, Yr). iii. G iả sử ơ = ơ ® .
Các kh óa là m cho ơ trỏ n ê n b ằ n g 0 là k h ó a đ ú n g tạ i v ò n g cu ối c ù n g với xác s u ấ t cao.
H ệ q u ả là với m ỗi giá trị k h ó a k có th ể tạ i v ò n g cuôl cù n g , c h ú n g ta k iểm tr a xem g iá trị ơ tư ơ n g ứ n g có b ằ n g 0
hay không, nếu nó bằng 0, tức là chúng ta đã tìm ra đưỢc
k h ó a đ ú n g với xác s u ấ t cao. N ế u c h ú n g ta m uốn chắc ch ắ n
hơn, thì có thể thực hiện ỉặp ỉại thuật toán vói các ỉựa chọn
khác của giá trị w. Phư đng pháp n à y có th ể tổ n g q u át h ó a đôi với các m ã lặp, ch ú n g ta p h át b iểu đ iều đó b ằ n g đ ịn h lý 4:
Định lý 4 [14]. Cho trước một mã khối lặp, giả sử d ỉà bậc của đa thức của cắc bit bản mả của vòng sât cuôĩ cùng như là hàm của cấc bit bẩn rõ. Ngoài ra, giả sử b là sô'cắc bit khóa vồng cuôì cùng. Giả sử rằng bậc của đa thức của bản mã là tăng theo sô'vòng. Khi đó tồn tại một tấn công vi sai bậc d với
đ ộ p h ứ c t ạ p t h ờ i g i a n t r u n g b ì n h 2!'*^ đ ò i h ỏ i b ả n r õ ì ự a c h ọ n s ẽ t h à n h c ô n g t r o n g v i ệ c m ở r a k h ó a t ạ i v ò n g c u ố i c ù n g .
C h ứ n g m i n h . Chúng ta chứng minh trưòng hợp mã khối lặp dạng Peistel, và từ đó có thể tổng quát hóa lên cho các trường hớp khác. Xét phép lặp (3b), giả sử k là giá trị khóa chính xác tại vòng cuối cùng, và giả sử k' là giá trị khóa sai. Khi đó:
yJt =yi.®F(k,yi,)
y ; = y L e F ( k '. y „ ) = y > F ( k , y J ® F ( k ', y R )
Sự sai khác giữa yR nhận được từ sử dụng khóa đúng với nhận được từ khóa sai, ỉà bằng hai ỉần sử dụng hàm F. Từ giậ thịết bậc củạ 4a thức là tăng theo số vòng, ta có thể hy vọng rằng ơ sẽ bằng 0 chỉ vói giá trị đúng của khóa vòng cuối cùng vói xác suất cao. Việc chạy một thuật toán tướng tự như thuật toán trên sẽ mất khoảng 2'*** bước vổi mỗi giá trị của khóa vòng cuôl cùng, v ề trung bình chúng ta phải kiểm tra một nửa sô' khóa trước khỉ tìm ra khóa đúng, điều này dẫn tối công thức tính độ phức tạp thòi gian.
Tấn công trên có thể được cải tiến bỏi một thừa s ố là 2, nếu hằng 8ố cùa phương trình (5.43) là c6 thể dự đoán được. Trong trưòng hỢp đó các phép ỉặp (2) và (3b) của thuật toán trên là được thực hiện chỉ với mọi a € GF(2)‘‘. Giá trị khóa tưdng ứng với ơ = c sẽ là khóa đúng với xác suất cao. Đôì với hầu hết các mã khôi, phụ thuộc vào hàm F có thể mỏ rộng 210 Nhập môn Phân tích thông í in có bảo mật
tấn công trên. Ta cũng có thể tấn công vào tập con của khóa vòng cuôl cùng, hoặc cũng có thể tìm kiếm khóa (một tập con) của khóa vòng đầu tiên.
Sau đây chúng ta áp dụng tấn công trên vào hệ RN. Chúng ta chọn các bản rõ mà vế phải là cố định. Từ chỗ các bit đầu ra của hàm vòng chỉ là bậc hai đôl với các bit đầu vào, các đa thức trong tấn công được mô tả trên đối vối phiên bản 6 vòng có bậc không lớn hơn 8. Do đó tấn công trên chỉ đòi hỏi 2®*' = 512 bản rõ lựa chọn và thòi gian chạy trung bình là vào cõ 2^*. Một biến thể cho tấn công tìm khóa tại hai vòng cuôì cùng đòi hỏi khoảng 32 bản rõ lựa chọn và thòi gian chạy trung bình là 2^°. Tương tự có các tấn công trên với các phiên bản 7 hay 8 vòng cùa hệ RN, độ phức tạp tương ứng là 2®, 2^''; và 2*’, 2®^. Việc tấn công sử dụng vi sai bậc cao đôi vói RN đã được chạy thử, và nó đã tìm ra khóa đúng tại vòng cuối cùng đúng như dự đoán. Chú ý rằng tấn công này có thể áp dụng cho các hệ mã khôi bất kỳ 2n, vói số bản rõ lựa chọn nhỏ hơn 2". Với các hệ mã khổì lớn hơn hay số vòng nhiều hđn cũng có thể bị tấn công. ( M ô t ả h ệ R N l à h ệ m ẵ k h ô i P e i s t e l 6 4 b i t . H à m F : G F ( 2 ^ ) -> G F ( 2 ^ ) c h o b ở i c ô n g t h ứ c F ( k , x ) = d ( f ( e ( x ) 0 k ) ) , ỗ đ â y f: G F (2 ^ ^ ) G F ( ^ ^ ) , f ( x ) = x ^ , k e G F ( ^ ) , e : G F ( ^ ^ ) ^ G F ( 2 ^ ) l à h à m m ở r ộ n g đ ô ì s ô 'c ủ a D Ó b ằ n g c á c h n ố i t h ê m m ộ t t ổ h Ợ p a i í m e c ủ a c á c b i t đ ầ u v à o , v à d : G F ( ^ ) G F ( ^ ^ ) l à h à m b ỏ đ i I b i t t ừ đ ô ĩ s ô 'c ủ a n ó )
5.5. TẮN CÕNG NỘI SUY
Trong mục này chúng tôi sẽ giới thiệu một kiểu tâúi công mối đôl với mã khôi. Tấn công này dựa trên công thức sau đây: Giả sử R là một trưòng. Cho trước 2n phần tử Xj, X,,..., x„, Yn y2>- Yn ^ ồ đây các Xj là khác nhau. Định nghĩa:
f(x) = i y . n — (5.45)
Y . — Y ■
1=1 !<j<nj?tl
Khi đó f(x) là đa thức trên R vối bậc nhiều nhất là n-1 sao cho f(Xị) = Yi Vi = 1, 2,..., n. Phưđng trình (5.45) được gọi là cồng thức nội suy Lagrange. Trong tấn công nội suy chúng ta sẽ xây dựng các đa thức bằng cách sử dụng các cặp bản rõ - bản mã. Chúng ta sẽ giả thiết rằng thòi gian cần thiết để xây dựng các đa thức này là nhỏ hơn thòi gian cần thiết để mã hóa các bản rõ trong tấn công này.
Xét hệ mã khôi PURE vdi r vòng. Chúng ta lợi dụng yếu tô' thao tác XOR được sử dụng trong hệ mã tương ứng với phép cộng trên trường hữu hạn vói đặc sế 2. Hệ quả ỉà, hệ mă này chỉ bao gồm các phép đại sô' đơn giản, và do đó mỗi một trong hai nửa của bản mă y, chẳng hạn nửa trái cửa nó có th ể được m ô tả n h ư là đ a th ứ c p (x l, Xr) € G F(2^*)[xj^, Xjj] của bản rõ với nhiều nhất là 3^'* + 3'^ + ‘ + 1 hệ sô' (chú ý rằng bậc của Xr và Xl cao nhất là 3'’ và 3’^ ’ tưđng ứng và
(g s r-l + g r + g r-l + ịị _ (g r + y ậ y t a
thể xây dựng đa thức này bằng cách xét nhiều nhất là g2r.i + + 31-1 + I gặp j5 _ jjjg bằng cách sử dụng cồng thức 212 Nhập môn Phân tích thông tin có bảo mật
nội suy Lagrange. Với r = 6 tấn công này cần nhiều nhất 2^® cặp rõ/mă đã biết, chúng sẽ cung cấp một thuật toán để suy diễn tổng thể. Chú ý rằng sô" các hệ sô" là thấp hơn so vôi ấn định trên, từ chỗ không phải tất cả các phần tử x'lx|j vói
3'‘‘‘ đều xuất hiện trong đa thức đó. Chúng ta có định lý tổng quát sau đây:
Đ ị n h l ý 5 . X é t m ộ t k h ố i m ả l ặ p v ớ i c d k h ô i l à m . B i ể u d i ễ n b ả n m ã n h ư l à m ộ t đ a t h ứ c c ủ a b ả n r õ v à g i ả s ử n k ý h i ệ u là s ố c á c h ệ s ô ' c ủ a đ a t h ứ c n à y . N ế u n < 2 ”, t h ì s ẽ t ồ n t ạ i m ộ t t ấ n c ô n g n ộ i s u y v ớ i đ ộ p h ứ c t ạ p t h ờ i g i a n l à n đ ò i h ỏ i n b ẳ n r ỗ đ ã b i ế t đ ư ợ c m ã b ở i c ù n g m ộ t k h ó a m ậ t K , c h ú n g s ẽ t h i ế t l ậ p m ộ t t h u ậ t t o á n t ư ơ n g đ ư ơ n g v ớ i p h é p m ẵ h ó a ( h a y p h é p g i ả i m ã ) v ớ i k h ó a K .
Trong biến thể tấn công bản rõ lựa chọn của tấn công này, nó có thể cho ngưòi tấn công thiết lập các đa thức vôi số hệ số ít hơn bằng cách cố định một vài bit trong các bản rõ ỉựa chọn. Trong trưòng hỢp đó, kết quả là một sự suy diễn tức thì, từ chỗ thuật toán nhận được có thể mã các bản rõ với một s ố bit cố định bằng các giá trị nào đó. Như lấy hệ PURE làm ví dụ, PURE có thể bị tấn công theo cách như thế nhò sử dụng chỉ 730 cặp rõ/mã lựa chọn. Hệ quả ỉà ngưòỉ tấn công đă có một thuật toán, chúng mã hóa 2^^ bản rõ mà không cần biết khóa mật.
( M ô t ả h ệ P U R E là h ệ m ã k h ô i P e i s t e l 6 4 b i t . H à m G F ( 2 F ) G F (2 ^ ^ ) c h o b ở i c ô n g t h ứ c : F ( k , x ) = f ( x e k ) , ở đ â y
f : G F (2 ^ ^ ) -> G F ( n f ( x ) = x ^ , t ứ c l à đ ầ u v à o c ủ a h à m l ậ p p h ư ơ n g l à k h ô n g đ ư ợ c m ở r ộ n g c ũ n g k h ô n g b ị c ắ t b ó t n h ư
t r o n g v í d ụ h ệ R N )
C h ú ý :
Cả hai hệ mã RN và PƯRE đều là an toàn, chống lại được tấn công vi sai và tấn công tuyến tính (chỉ cần sô' vòng bằng 6). Tuy nhiên chúng đều có nhược điểm là bậc phi tuyến của đầu ra là thấp theo các biến đầu vào hệ mã, và chúng có thể bị lới dụng để tấn công như đă nói ồ trên.
K h ô i p h ụ c k h ó a
Trong phần này chúng ta sẽ mở rộng phương pháp trên để thực hiện tấn công khôi phục khóa. Trước hết xét tấn công bản rõ đã biết. Thay vì việc ấn định bản mã như là một hàm của bản rõ, chúng ta biểu diễn đầu ra của hệ mã thu gọn y* như là đa thức p(x) e GF(2'")[x] cùa bản rõ. Giả sử rằng đa thức này có bậc d và rằng (d+1) cặp rõ - mă là có thể có được. Khỉ đó vdi mọi giá trị của khóa vòng cuối cùng ta thực hiện giải mã các bản mă một vòng và thừ xây dựng đa thúc. Với một cặp rõ/mã thêm vào hãy kiểm tra xem đa thức có đúng hay không. Nếu nó đúng, thì giá trị chính xác của khóa vòng CUÔI cừng đã được tìm thấy với xác suất cao, bỏị lý do tương tự như trong chứng minh định ỉý 4.
Biến thể cho tấn công bản rõ lựa chọn là hoàn toàn tướng tự. Chúng ta sẽ minh họa phương pháp này bằng một ví dụ, lấy chính hệ mã PURE 6 vòng. Giả s ử vế phải X r cùa bản rõ
là cố định, và xét vế phải của đầu ra yỊ( = p(xl) từ hệ mã rút gọn như là đa thức p(xl) e GF(2®^[xJ. Đa thức này có bậc nhiều nhất là 3^ = 27 từ chỗ bậc cùa nó không tăng trong vòng đầu tiên và do là bằng vế trái của đầu ra tại vòng thứ 4. Hệ quả là 28 cặp các giá trị tường ứng của Xl và y* là đủ để xác định nó một cách duy nhất (sử dụng nội suy Lagrange).
Chúng ta kiểm tra xem y* có phải là đầu ra thực sự của hệ mã rút gọn hay không. Thực hiện điều này bằng cách kiểm tra xem 29 cặp rõ/mã có thỏa mãn đa thức đó hay không. Nếu đúng, khi đó có thể xem rằng chúng ta đã tìm ra khóa đúng tại vòng cuối cùng. Độ phức tạp thòi gian trung bình sẽ là 29 ~ 2^®. Tổng quát ta có định lý sau: Đ ị n h l ý 6 [14]. X é t m ộ t m ả k b ô ì l ặ p v ô i c õ k h ô i l à m . B i ể u d i ễ n đ ầ u r a t ừ v ò n g g ầ n c u ô ì c ù n g n h ư ì à m ộ t đ a t h ứ c c ủ a b ẳ n r õ v à g i ả s ử n k ý h i ệ u l à s ô ' c á c h ệ s ô ' c ủ a đ a t h ứ c n à y . N g o à i r a , g i ả s ử k ý h i ệ u b là s ô ' c ắ c b i t k h ó a v ò n g c u ô ì c ù n g . K h i đ ó t ồ n t ạ i m ộ t t ấ n c ô n g n ộ i s u y v ở i đ ộ p h ứ c t ạ p t h ờ i g i a n t r u n g b ì n h 2f’ ‘. ( n + l ) đ ò i h ỏ i n + l b ả n r õ đ ã b i ế t ( h o ặ c l ự a c h ọ n ) c h ú n g s ẽ t h à n h c ô n g t r o n g v i ệ c m ở r a k h ó a t ạ i v ò n g c u ô ỉ c ù n g .
T ư ơ n g tự như tấn công trong định lý 5.19, ta có thể thực hiện tấn công chỉ trên một tập con của các khóa vòng cuối cùng hay chỉ tìm kiếm một tập con của khóa tại vòng đầu tiên (phụ thuộc vào cấu trúc của hàm vòng).
T i ế p c ậ n k i ể u t ấ n c ô n g g ặ p n h a u ỏ g i ữ a
Mục này sẽ mồ rộng tấn công trên theo cách tiếp cận íĩặp nhau ỏ giữa. Chúng ta chỉ trình bày đối với tấn công mỏ khóa đã xét trên.
Ngay lập tức chúng ta thử gợi ra giá trị khóa đúng vòng cuối cùng và sử dụng nó (để hy vọng) đạt được y* đã mô tả. Cho trưốc một mã khổì lặp r vòng, giả sử z là đầu ra tại vòng s, ỏ đây s < (r - 1). Giá trị của z biểu diễn theo bản rõ X như là đa thức g(x) e GF(2"')[x], ỏ đây m là cd khối. Tương tự, z có thể biểu diễn như là đa thức h(y*) € GF(2™)[y*] cùa đầu ra y* cùa hệ mã rút gọn. Giả sử bậc của g(x) là dg, bậc của h(y*) là dị, và ký hiệu dgj, = dg + dh- Như vậy, phương trình g(x) = h(y*) có nhiều nhất là dgh + 2 ẩn số. Phương trình này sẽ được giải bằng phép nhân và phép cộng cả g và h vói một hằng số. Do đó, để đảm bảo rằng chúng ta sẽ đạt được một lòi giải không tầm thưòng và duy nhất, ta phải đặt các hệ sô' tưđng ứng với lũy thừa cao nhất là bằng 1 và số hạng hằng số là bằng 0. Sau đó, chúng ta giải phương trình này bằng cách sử dụng bản rõ đã biết hoặc lựa chọn. Sau đó chúng ta kiểm tra xem với cặp rõ/mâ (x, y*) khác có thỏa mãn g(x) = h(y*) hay không. Nếu đúng, ta có thể xem rằng đã đoán đúng khóa tại vòng cuối cùng.
Ta cũng sẽ minh họa điều này bằng tấn công PURE 6 vòng.
Giả sử rằng vế phải Xr của bản rõ là cô' định. Ký hiệu Zl