Chương 2 : Cỏc hàm băm
2.6.1.4 Tấn cụng cỏc mục tiờu song song trờn OWHFs
Khi tấn cụng cơ bản, kẻ tấn cụng thường tỡm kiếm tiền ảnh thứ 2 dựa trờn một mục tiờu xỏc định (tỡm ra tiền ảnh khỏc từ một tiền ảnh đầu tiờn). Nếu đó cú r tiền ảnh, mục tiờu của kẻ tấn cụng là tỡm ra tiền ảnh thứ 2 của bất cứ tiền ảnh nào trong số r tiền ảnh núi trờn, khi đú xỏc suất tấn cụng thành cụng sẽ tăng lờn r lần so với ban đầu. Trong cỏc sơ đồ sử dụng MAC, vớ dụ như sơ đồ chữ ký, việc sử dụng lặp đi lặp lại khoỏ làm cho độ an toàn của sơ đồ bị suy yếu. Khi kẻ tấn cụng nắm được r bản tin đó được ký, xỏc suất để tấn cụng thành cụng sơ đồ chữ ký đú sẽ được tăng lờn r lần.
2.6.1.5 Tấn cụng bản tin dài dành cho tiền ảnh thứ 2
Gọi h là một hàm hash đựơc lặp lại với hàm nộn f . Gọi x là bản tin chưa t khối. Khi đú tiền ảnh thứ 2 của h(x) cú thể được tỡm thấy trong khoảng thời gian (2n/s) + s thao tỏc tớnh f và khụng gian nhớ n(s + lg(s)) bit với bất kỳ giỏ trị s trong dải 1 ≤ s ≤ min(t, 2n/2). ỏp dụng tấn cụng ngày sinh nhật (trỡnh bày trong phần sau) trờn cỏc kết quả băm với lựa chọn s=t. Tớnh h(x), lưu cỏc giỏ trị (Hi, i) ứng với mỗi t kết quả trung gian Hi tương ứng với t khối lối vào xi. Sau đú tớnh giỏ trị H(z) của một giỏ trị chọn ngẫu nhiờn z, kiểm tra xung đột của h(z) trờn bảng cỏc giỏ trị thu được ở trờn, cho đến khi nào tỡm ra xung đột, ỏp dụng nghịch lý ngày sinh nhật cú khoảng xấp xỉ 2n/s giỏ trị z sẽ được thử như vậy. Tương ứng với chỉ số j của bảng cỏc giỏ trị tỡm xung đột là lối vào xung đột với lối vào đó biết x.
Phương phỏp này được ỏp dụng cho cỏc bản tin dài, tiền ảnh thứ 2 (tồn tại va chạm [2] thường dễ tỡm ra hơn so với tỡm tiền ảnh (tỡm tiền ảnh mất khoảng 2n thao tỏc tớnh), càng dễ hơn với cỏc bản tin x dài. Với t ≥ 2n/2, phộp tớnh toỏn được tối thiểu hoỏ khi chọn s = 2n/2 , trong trường hợp này cần 2n/2 thao tỏc tớnh hàm f để tỡm ra tiền ảnh thứ 2.
2.6.1.6 Tấn cụng từng bit trờn MDC
Cho trước một bản tin xỏc định x với hàm hash h(x) nbit, phương phỏp thụ sơ để tỡm một lối vào xung đột với x là lấy một xõu bit ngẫu nhiờn x’ (độ dài giới
35 hạn) và kiểm tra xem h(x’) = h(x) hay khụng. Giả sử mó băm là một biến ngẫu nhiờn, xỏc suất để tỡm được là 2-n. Khi đú:
Với một hàm h cú lối ra nbit, để tỡm ra được tiền ảnh hay tiền ảnh thứ 2 của nú cần khoảng 2n thao tỏc băm. Một kẻ tấn cụng cú thể chọn cỏc bản tin, phương phỏp tấn cụng ngày sinh nhật cho phộp cặp bản tin xung đột x và x’ với h(x) = h(x’) được tỡm ra sau 2n/2 thao tỏc (băm), với khụng gian bộ nhớ sử dụng khụng đỏng kế.
Một hàm băm khụng khoỏ cú kớch thước lối ra n bit gọi là an toàn lý tưởng nếu: cho trước lối ra của hàm, yờu cầu xấp xỉ 2n thao tỏc để cú thể tỡm ra một tiền ảnh hoặc một tiền ảnh thứ 2, và 2n/2 thao tỏc để tỡm ra được một xung đột.
Cỏc kớch thước bit yờu cầu trong thực tế
Với một hàm băm cú lối ra là cỏc giỏ trị n bit, và ngưỡng tiờu chuẩn dành
cho số lượng cỏc thao tỏc cú thể tớnh được là 280,[2] khi đú n phải thoả món cỏc điều kiện sau:
Với những hàm OWHF, n ≥ 80. Phộp tấn cụng vột cạn offline yờu cầu khoảng 2n thao tỏc tớnh, nhưng số lượng thao tỏc tớnh cú thể bị giảm xuống nếu ỏp dụng được phộp tõn cụng tớnh toỏn trước;
Với những hàm CRHF, n ≥ 160 để cú thể trỏnh đựơc tấn cụng ngày sinh nhật;
Đối với MAC, n ≥ 64 với khoỏ MAC cú kớch thước từ 64 đến 80 bit. Nếu chỉ một khoỏ MAC được sử dụng, tấn cụng offline cú thể tỡm ra được một hoặc nhiều hơn cặp text – MAC, nhưng nếu trờn một giải thuật MAC tốt, tớnh chất chặn tiền ảnh và chặn tiền ảnh thứ 2 (tớnh chất chống xung đột) làm cho cỏc dạng tấn cụng phụ thuộc nhiều vào kớch thước khoỏ được sử dụng chứ khụng phải n. Đối với cỏc dạng tấn cụng online, cú thể chấp nhận giỏ trị tối thiểu của n = 32 hoặc n = 40.
2.6.2 Tấn cụng ngày sinh nhật
Tấn cụng ngày sinh nhật là phương phỏp tấn cụng bằng cỏch tỡm kiếm đơn giản cỏc va chạm của hàm băm. Thuật ngữ ngày sinh nhật xuất phỏt từ một bài toỏn xỏc xuất nghịch lý ngày sinh nhật[1]: trong một nhúm 23 ngưới ngẫu nhiờn, cú ớt nhất 2 ngưới cú trựng ngày sinh nhật với nhau với xỏc suất ớt nhất là 1/2 !!!
Cỏc hàm băm h: X Z với X và Z là hữu hạn, X m và Z n, thụng thường m > n, do đú luụn tồn tại xung đột trong hàm hash h. Ta cú thể minh họa
36 phương phỏp tấn cụng ngày sinh nhật một cỏch đơn giản như sau: Chọn k phần tử ngẫu nhiờn phõn biệt trong khụng gian lối vào của hàm h: x1, x2, …, xk X, sau đú tớnh zi = h(xi), 1 ≤ i ≤ k. Tỡm trong số cỏc kết quả thu được xem cú tồn tại va chạm nào khụng. Quỏ trỡnh này giống như khi ta nộm k quả búng vào n thựng và sau đú kiểm tra xem cú thựng nào chứa ớt nhất 2 quả hay khụng.
Nhận thấy rằng xỏc suất để tỡm thấy một va chạm chớnh là xỏc suất thành cụng của bài toỏn tấn cụng.
Giả sử cỏc ảnh đảo cú xỏc suất như nhau khi đú h1(z) m/n với mọi z Z. Vỡ xi được chọn một cỏch ngẫu nhiờn cho nờn cú thể xem cỏc phần tử nhận được zi cũng là ngẫu nhiờn của Z. Tập hợp cỏc zi thu được tương ứng với cỏc xi là : z1, …, zk. Xỏc suất để z2 ≠ z1 là (1-1/n), xỏc suất để z3 ≠ z1 và z3 ≠ z2 là (1-2/n),…
Xỏc suất để khụng cú va chạm nào xảy ra là xỏc suất để tất cả cỏc zi khỏc nhau từng đụi một: 1 1 1 1 1 . . . 2 1 1 1 k i n i n k n n (2.1) Ta cú: e-x = 1xx2/2!x3/3!... Nếu x là số thực nhỏ khi đú: e-x 1 – x . Khi đú xỏc suất khụng cú va chạm nào sẽ là:
n k k k i n i k i e e n i 1 ( 1)/ 1 / 1 1 1 (2.2)
Như thế, gọi xỏc suất để tồn tại ớt nhất 1 va chạm, được tớnh:
= 1- ek(k1)/n (2.3) n k k e ( 1)/ = 1 - -k(k-1)/n = ln (1-) k2 – k = n ln (1-)-1 k2 – k = n ln (1/(1 - )
37 Cú thể viết: k 1 1 ln n
Giả sử = 0.5, khi đú k 1.17 n ; điều này cú nghĩa là nếu thực hiện băm trờn n phần tử của X sẽ cú một xỏc suất va chạm là 0.5. Núi chung, biểu thức trờn đó chỉ ra rằng k tỷ lệ với n. Những dạng tấn cụng ỏp dụng tớnh chất này được gọi là tấn cụng căn bậc 2.
Xột tập X là tập người, Y là tập 365 ngày trong năm thường, h(x) là ngày sinh nhật của một cỏ thể x trong tập X. Trong bài toỏn nghịch lý ngày sinh nhật này, n = 365 thỡ k = 22.3. Vỡ vậy, như đó núi ở trờn, trong số 23 người chọn ngẫu nhiờn, xỏc suất ớt nhất để 02 người cú trựng ngày sinh nhật là 0.5.
Căn cứ vào dạng tấn cụng này, giới hạn về cỏc kớch thước bit được đặt ra cho cỏc bản túm lược thụng bỏo. Với những hàm CRHF, n ≥ 160 (ngưỡng tớnh toỏn tiờu chuẩn là 280).
Đối với MAC, n ≥ 64 với khoỏ MAC cú kớch thước từ 64 đến 80 bit. Nếu chỉ một khoỏ MAC được sử dụng, tấn cụng offline cú thể tỡm ra được một hoặc nhiều hơn cặp text – MAC, nhưng nếu trờn một giải thuật MAC tốt, tớnh chất chặn tiền ảnh và chặn tiền ảnh thứ 2 (tớnh chất chống xung đột) làm cho cỏc dạng tấn cụng phụ thuộc nhiều vào kớch thước khoỏ được sử dụng chứ khụng phải n. Đối với cỏc dạng tấn cụng online, cú thể chấp nhận giỏ trị tối thiểu của n = 32 hoặc n = 40.
Phương phỏp tấn cụng ngày sinh nhật của Yuval
Tấn cụng ngày sinh nhật của Yuval là một trong những phương phỏp tấn cụng hàng đầu ứng dụng bài toỏn nghịch lý ngày sinh nhật. Xỏc suất cao (≥ 0.5) để cỏc phần lặp lại sẽ tớnh được sau O( n) lựa chọn (O là một hàm của n). Điểm chung của cỏc phương phỏp tấn cụng ngày sinh nhật là tim cỏc va chạm cho một hàm băm một chiều chứ khụng tỡm cỏc tiền ảnh, hay cỏc tiền ảnh thứ 2 của chỳng.
Giải thuật của phương phỏp
Lối vào: bản tin hợp lệ x1, bản tin giả mạo x2 , một hàm n bit băm một chiều h (cú lối ra là n bit).
38 Lối ra: '
1
x , ' 2
x thu được từ những biến đổi của x1 và x2 với h( ' 1
x ) = h( ' 2
x ). (Điều này làm cho chữ ký trờn bản tin '
1 x cũng hợp lệ như chữ ký trờn ' 2 x ). 1. Chọn k = 2m/2 , số những phộp biến đổi nhỏ ' 1 x của x1 . Chọn g là một hàm để sao cho g(x1, H) = ' 1
x - được gọi là phộp biến đổi nhỏ của x1. ' 1
x
được quyết định bởi giỏ trị băm H của x1; cú thể viết ' 1 ) (
1 H x
gx . 2. Băm từng bản tin bị biến đổi '
1
x , lưu cỏc giỏ trị băm (cú thể được chia nhúm tương ứng với bản tin) để cú thể sử dụng về sau. (Bước này được thực hiện trong khoảng thời gian O(k)).
3. Tạo những thay đổi nhỏ ' 2 x của x2 bằng cỏch tớnh h( ' 2 x ) cho từng giỏ trị ' 1
x và kiểm tra chỳng, cho đến khi tỡm được giỏ trị thớch hợp thoả món h( '
1
x ) = h( ' 2
x ). (Mỗi phộp tra bảng yờu cầu một khoảng thời gian nhất định, giỏ trị phự hợp cú thể được tỡm ra sau k giỏ trị '
2
x được kiểm tra).
í tưởng của phương phỏp tấn cụng này được những kẻ giả mạo ứng dụng bằng cỏch ký thoả thuận với đối tỏc trờn bản tin '
1
x , sau đú lại khẳng định rằng thực chất bản tin được ký là bản '
2
x .
Chỳ ý rằng, những xung đột được tỡm ra của phương phỏp tấn cụng ngày sinh nhật là thực ( khụng như xung đột hàm nộn hoặc giả xung đột ). Với hàm băm cú lối ra 128bit, giỏ trị k được tớnh bằng 64, do đú yờu cầu 264 biến đổi. Thời gian yờu cầu là O(264), yờu cầu khụng gian nhớ cho O(264) bản tin. Chớnh điểm này làm phỏt sinh nghiờn cứu phộp biến đổi khụng nhớ của tấn cụng ngày sinh nhật. ý tưởng của phương phỏp này là chọn phộp biến đổi nhỏ g núi trờn là hàm đơn ỏnh, khi đú cỏc giỏ trị H phõn biệt sẽ cho ra cỏc giỏ trị '
1
x phõn biệt. Khi đú, với hai bản tin xỏc định x1 và x2 và một vài đặc tớnh cú thể dựng để phõn biệt một cỏch dễ dàng sẽ chia được khụng gian cỏc giỏ trị băm thành hai tập con gần bằng nhau. Ta định nghĩa một hàm r ỏnh xạ cỏc kết quả băm sang cỏc kết quả băm như sau:
(2.4) Sau đú, ứng dụng kỹ thuật tỡm kiếm xung đột khụng nhớ núi trờn để tỡm ra hai lối vào r mà ỏnh xạ ra cựng một lối ra (xung đột). Nếu h là một ỏnh xạ ngẫu
le la H neu H g h chan la H neu H g h H r x x )) ( ( )) ( ( ) ( 2 1
39 nhiờn với xỏc suất va chạm xảy ra là 0.5, sự phõn biệt chẵn lẻ của H và H’ tương ứng với cỏc lối vào xung đột. Trong trường hợp đú h(gx1(H)) h(gx2(H')và cặp va
chạm là ( ) 1 ' 1 g H x x và ( ') 2 ' 2 g H
x x tương ứng với 2 bản tin phõn biệt x1 và x2 . Phương phỏp này yờu cầu một dung lượng nhớ sử dụng khụng đỏng kể do đú cũn được gọi là phộp biến đổi khụng nhớ của tấn cụng ngày sinh nhật.
Ngoài tấn cụng ngày sinh nhật, cũn cú cỏc dạng tấn cụng giả xung đột, tấn cụng biến dõy chuyền, tấn cụng dựa trờn cỏc đặc tớnh nổi bật của bộ mó khối. Tuy nhiờn, phương phỏp tấn cụng ngày sinh nhật được cho là phương phỏp tấn cụng cú hiệu quả nhất trờn cỏc hàm hash.
Chỳ ý: Trong cỏc tài liệu liờn quan, kỹ thuật tấn cụng tiền ảnh hay tiền ảnh thứ 2 cũn được gọi là tấn cụng mục tiờu, tấn cụng giả tiền ảnh cũn được gọi là tấn cụng mục tiờu khởi phỏt tự do; tấn cụng va chạm chớnh là tấn cụng với cỏc hằng số IV[1] là xỏc định; tấn cụng va chạm với IV ngẫu nhiờn gọi là tấn cụng va chạm bỏn khởi phỏt tự do, tấn cụng giả va chạm cũn được gọi là tấn cụng va chạm khởi phỏt tự do. Cỏc dạng tấn cụng này đều thuộc phương phỏp tấn cụng hàm nộn.
41
Chương 3
HỆ MẬT MÃ KHOÁ CễNG KHAI
Trong cỏc mụ hỡnh mật mó cổ điển, người gửi và người nhận chọn một khoỏ bớ mật K và dựng K để tạo luật mó eK và giải mó dK. Vỡ sử dụng cựng một khoỏ K cho nờn quỏ trỡnh giải mó hồn tồn tương tự như quỏ trỡnh mó nhưng theo thủ tục ngược lại. Nhược điểm của hệ mật này là luụn yờu cầu phải giữ bớ mật khoỏ K (thậm chớ cả eK và dK) trong khi đú cả người gửi và người nhận đều phải biết thụng tin về khoỏ trước khi sử dụng, do đú họ phải trao đổi với nhau trờn một kờnh nào đú trước khi tiến hành thủ tục gửi nhận tin và chẳng cú gỡ bảo đảm rằng kờnh liờn lạc mà họ (người gửi và người nhận) sử dụng là an toàn, bớ mật khụng ai ngoài họ được biết tới.
Từ nhược điểm trờn, ý tưởng xõy dựng hệ mật mó khúa cụng khai (cũn được gọi là dựng chung) ra đời: một hệ mật mà phộp giải mó khụng liờn đới đến phộp mó hoỏ đó được sử dụng, đương nhiờn cũng cú những ràng buộc nào đú nhưng núi chung, khụng thể thực hiện phộp giải mó nếu biết trước phộp mó hoỏ đựơc sử dụng. Điều này cho phộp phộp mó hoỏ eK là cụng khai. Ưu điểm của hệ mật này là người gửi tin cú thể gửi một bản tin cho người nhận mà khụng cần quan tõm đến cỏc thụng tin về khoỏ giải mó bằng cỏch sử dụng phộp mó hoỏ eK cụng khai của người nhận. Thứ được giữ bớ mật chớnh là phộp giải mó dK của người nhận, điều này cho phộp chỉ cú người nhận tin cú thể giải mó được bản tin gửi cho mỡnh. Cú thể hỡnh dung hệ mật này như sau: người gửi tin A đặt một bức thư vào trong một cỏi hộp rồi chọn ra khoỏ của người sẽ nhận tin để khoỏ cỏi hộp đú lại, sau đú gửi cỏi hộp đó được khoỏ đú đi trờn một kờnh bất kỳ cho người nhận. Người nhận tin là người đó đặt khoỏ của mỡnh ở mọi nơi cú nhu cầu gửi tin đến cho anh ta, tuy nhiờn chỉ cú anh ta là người sử dụng duy nhất bộ chỡa khoỏ dựng để mở khúa. Do đú, khi thụng tin đến với người nhận, chỉ anh ta mới cú thể biết được nội dung trong hộp là những gỡ.
Hệ mật mó khoỏ cụng khai đầu tiờn và nổi tiếng nhất được thực hiện đú là hệ mật mó khoỏ cụng khai RSA. Kể từ đú, hàng loạt cỏc hệ mật mó khoỏ cụng khai khỏc ra đời dựa trờn cỏc giải thuật tớnh toỏn khỏc nhau. Tuy chứa đựng nhiều ưu điểm, nhưng cỏc hệ mật mó khoỏ cụng khai khụng bao giờ là an toàn (bảo mật) tuyệt đối, chỉ cú thể núi rằng độ bảo mật của hệ mó phụ thuộc vào độ khú khi giải ra một bài toỏn, bài toỏn càng khú giải, hệ mật càng an toàn.
42 Hệ mật mó khoỏ cụng khai ứng dụng mạnh mẽ vai trũ của cỏc hàm băm. Bởi hàm mó hoỏ cụng khai eK là một hàm dễ tớnh toỏn, nhưng phải thật khú tớnh ngược