Chƣơng 3 : PHÂN TÍCH ĐÁNH GIÁ MỘT SỐ HỆ MÃ HOÁ
3.5.4. Đánh giá lƣợc đồ
3.5.4.1. OAEP đạt an toàn ngữ nghĩa (hay IND)
Đầu tiên ta xét lại thám mã chạy trong hai giai đoạn.
Giai đoạn đầu ta đặt tên là giai đoạn tìm kiếm (find), cho trước giải thuật mã hóa, và hai message x0 và x1 , kèm theo một chuỗi c ghi lại những gì cần thiết (ví dụ như lịch sử và đầu vào của nó).
Chọn ngẫu nhiên x0 hoặc x1 (tương ứng với việc chọn bit b) và mã hóa nó để nhận bản mã y.
Tìm kiếm ở đây nghĩa là tìm bản mã mục tiêu, ở đây là y.
Trong giai đoạn thứ hai, ta đặt tên là giai đoạn dự đoán (guess), cung cấp cho thám mã A các giá trị x0, x1, c của giai đoạn trên, và bản mã y. Tiếp theo A phải dự đoán b (tức là message nào đã được mã hóa).
Dự đoán ở đây là dự đoán giá trị của b.
Thực ra đây là khái niệm IND, tương đương với khái niệm an toàn ngữ nghĩa.
Lược đồ mã hóa khóa công khai bao gồm một giải thuật xác xuất thời gian đa thức để tạo khóa Gk , và hai hàm mã hóa và giải mã E, D. Trong đó E là giải thuật xác xuất thời gian đa thức, D là giải thuật đơn định thời gian đa thức, kết hợp với một hàm n() gọi là hàm độ dài bản rõ.
Với đầu vào {0, 1}k
, bộ tạo Gk cho đầu ra là cặp khóa công khai và bí mật (pk, sk).
Mỗi một giải thuật E, D có thể truy cập tư vấn vào hai hàm H và G. Một người u dùng Gk để nhận được (pk, sk). Công bố công khai pkvà giữ sk để làm bí mật. Để mã hóa thông tin x {0, 1}n(k) bằng việc dùng hàm E kết hợp với G, H, người ta tính y = EG, H
(x) và gửi y cho u. Để giải mã y, người dùng u tính x = DG, H
(y).
Ta yêu cầu DG, H(y) = x với mọi y [EG, H (x)] (tại vì do E là giải thuật xác xuất nên một x có thể có nhiều y), ngược lại ta cho DG, H(y) = * nếu không có giá trị nào thỏa mãn.
Thám mã thực chất là một giải thuật A, có thể truy cập tư vấn vào được hai hàm G và H.
Ta ký hiệu qgen là số truy vấn nhiều nhất của thám mã A tới G, tương tự qhash là số truy vấn nhiều nhất của thám mã A tới H.
Định nghĩa 3.1: Giải thuật thành công phá vỡ an toàn IND của hệ mã với thời gian lớn nhất là t
(Mihir Bellare và Phillip Rogaway)
Đặt Gk và n() lần lượt là bộ tạo xác xuất và hàm độ dài bản rõ như trên. Thám mã A gọi là thành công trong việc đưa ra dự đoán giá trị chính xác của b, với xác xuất bé nhất là ½ + /2 , trong thời gian lớn nhất là t, thực hiện tối đa qgen truy vấn tới G, tối đa qhash truy vấn tới H nếu :
≤ 2 . Pr[(Gk({0, 1}k ) (pk, sk); G, H; AG, H (E , find) (x0 , x1 , c); {0, 1} R b; EG, H(xb) y) : AG, H (y, x0 , x1 , c, guess) = b] – 1
Trong đó t là tổng thời gian chạy ở cả hai giai đoạn find và guess, qgen và qhash lần lượt là số truy vấn lớn nhất tới G và H trong cả hai giai đoạn.
Ký hiệu AG, H
(E , find) (x0 , x1 , c) có nghĩa là thám mã A sử dụng giải thuật thời gian đa thức, chạy trong giai đoạn find như ta đã định nghĩa ở trên (3.5.4.1). Trong giai đoạn này thám mã A biết hàm mã hóa E, và có thể truy cập vào hai hàm G, H. Kết thúc giai đoạn này thám mã cho đầu ra là bộ ba (x0 , x1 , c).
Tương tự như thế là ký hiệu AG, H
(y, x0 , x1 , c, guess). Tức là thám mã A chạy trong giai đoạn thứ hai (guess), có đầu vào là y, x0, x1, c, cùng với khả năng truy cập được vào hai hàm G, H. Kết thúc giai đoạn này thám mã cho ra dự đoán giá trị của b.
Ta gọi giải thuật A như vậy là thành công trong (t, qgen , qhash , ) phá vỡ độ an toàn của hệ mã.
Dùng từ "phá vỡ độ an toàn của hệ mã" ,vì đưa ra dự đoán chính xác giá trị của b, tức là đã dự đoán chính xác được bản rõ.
Định nghĩa 3.2. Giải thuật thành công tính hàm ngƣợc f -1
(Mihir Bellare và Phillip Rogaway)
Gọi F là giải thuật xác xuất thời gian đa thức, với đầu vào {0, 1}k
, cho kết quả là cặp giải thuật đơn định (f, f -1
), trong đó f là hàm một phía có cửa sập và f -1
là hàm ngược.
Ta gọi TF(k) là thời gian để tính f(w) với w {0, 1}k , và TF(k) là khả thi với thiết bị phần cứng.
Ta nói một giải thuật (ký hiệu là M), là thành công trong việc tính hàm ngược f -1
trong thời gian lớn nhất là t với xác xuất thành công bé nhất là nếu :
Pr[( F({0, 1}k) (f, f-1) ;{0, 1}k w ;f(w) y) : M(f, y) = w] ≥ t là thời gian chạy giải thuật, là xác xuất thành công bé nhất.
Ta gọi giải thuật M như vậy là thành công trong (t, )tính hàm ngược f -1
Định lý 3.4 (Mihir Bellare và Phillip Rogaway)
Xét lược đồ OAEP như trên, với F là giải thuật xác xuất thời gian đa thức, tạo ra cặp hàm một phía có cửa sập (f, f -1
), k0 , k1 , n là các tham số của lược đồ như trên. Với k là số nguyên (k =k0 + k1+ n), nếu tồn tại giải thuật A thành công trong (t, qgen , qhash , ) phá vỡ độ an toàn của hệ mã (như định nghĩa 3.1), thì cũng tồn tại hằng số và giải thuật M thành công trong (t‟ , ‟) tính hàm ngược f -1
(như định nghĩa 3.2), Trong đó
t‟ = t + qgen . qhash . (TF(k) + k)
‟ = . (1 – qgen 2-k0 - qhash 2-n-k1 ) – qgen 2-k+1 .
Chứng minh xem ([14]).
Nhận xét:
vì qgen , qhash , TF(k) , k là những hằng số và có thể thực hiện được với thiết bị phần cứng, do vậy việc thực hiện được với thiết bị phần cứng, đối với t và t‟ là như nhau (nghĩa là nếu thời gian t khả thi với phần cứng, thì t‟ cũng khả thi với phần cứng).
Nếu ta chọn k hợp lý (ví dụ k = 512), và theo cách chọn khi tạo lập lược đồ ở trên, thì các lượng 2-k0
, 2-n-k1 , 2-k+1 đều là những lượng “không đáng kể”, thì rõ ràng ‟ với những giá trị hợp lý của qgen và qhash .
Kết luận:
Ý nghĩa của định lý có thể hiểu: Nếu tồn tại một giải thuật A mà phá vỡ độ an toàn IND của hệ mã, thì cũng tồn tại một giải thuật M để tính hàm ngược f -1. Tức độ khó của hai giải thuật này là tương đương.
Hay có thể hiểu: độ an toàn của lược đồ OAEP tương đương với độ an toàn của việc tính toán hàm ngược f-1
.
Nếu chọn hàm f là hàm RSA, thì rõ ràng việc tính f -1
là bài toán khó, đến nay vẫn chưa có lời giải, với thời gian khả thi với phần cứng hiện có. Vì vậy cho đến nay, ta khẳng định rằng hệ mã OAEP đạt an toàn ngữ nghĩa (Semantic Security) (hay IND) .
3.5.4.2. OAEP đạt an toàn WPA (an toàn IND-CCA1)
Ký hiệu gen và hash lần lượt là danh sách những câu truy vấn / trả lời tới G và H.
gen = (g1 , G(g1)), …, (gqgen , G(gqgen)) hash = (h1 , H(h1)), …, (hqhash , G(hqhash))
g1 là câu truy vấn, G(g1) là câu trả lời, các cái khác tương tự. Ký hiệu cặp (gen , hash) là O.
Ta định nghĩa lại thám mã A là (t, ) Plaintext – Extractor P nếu Pr[(Gk({0, 1}k ) (pk, sk) ; G, H ; ExecA(pk) (y, O)): P(y, pk, O) Dsk(y)] ≤
Ký hiệu ExecA
(pk) (y, O) có nghĩa là thám mã A dùng khóa công khai pk , cho đầu ra là bản mã y (bản mã mà kẻ thám mã tạo ra), và O như định nghĩa ở trên.
Ký hiệu B(t, qgen, qhash) là thám mã B dùng giải thuật chạy trong thời gian lớn nhất là t, và thực hiện tối đa là qgen truy vấn tới hàm G, tối đa qhash truy vấn tới hàm H.
Định lý 3.5: (Mihir Bellare và Phillip Rogaway)
Xét lược đồ OAEP như trên, với F là giải thuật xác xuất thời gian đa thức, tạo ra cặp hàm một phía có cửa sập (f, f -1
), k0 , k1 , n là các tham số của lược đồ như trên. Với k là số nguyên (k =k0 + k1+ n).
Nếu B(t, qgen, qhash) là thám mã CCA1 đối với hệ mã OAEP, thì tồn tại máy (t‟ , ‟)Plaintext – Extractor P (3.5.2.1) đối với hệ mã sao cho
t‟ = t + qgen . qhash . (TF(k) + k) ‟ = qgen 2-k0 + 2-k1 .
Nhận xét:
Như nhận xét ở trên, t và t‟ có khả năng tính toán bởi các thiết bị phần cứng là tương đương nhau, và do 2-k0
và 2-k1 đều là những lượng không đáng kể, nên ‟ cũng là một lượng không đáng kể.
Kết luận:
Ý nghĩa của định lý : nếu B là thám mã CCA1 tạo ra bất kỳ bản mã nào, thì đều tồn tại máy Plaintext – Extractor P với xác xuất rất lớn chạy trong thời gian đa thức, để tìm ra bản rõ tương ứng. Tức là thám mã B không có khả năng tạo ra một bản mã hợp lệ, mà không biết bản rõ tương ứng. Vì vậy theo định nghĩa của WPA (3.5.2.1), hệ mã OAEP đạt an toàn WPA, hay đạt an toàn IND-CCA1.
3.5.4.3. Điều kiện OAEP đạt an toàn IND-CCA2 * Khái niệm hàm một phía bộ phận có cửa sập
Hàm f: {0, 1}k
→ {0, 1}k, hay cũng tương đương với
f : {0, 1}n+k1 × {0, 1}k0 → {0, 1}n+k1 × {0, 1}k0 , với k = n + k1 + k0
Hàm f là (, ) - một phía, nếu bất kì thám mã A nào chạy trong thời gian giới hạn là , có xác xuất thành công Succow(A), giới hạn trên bởi , trong đó:
Succow(A) = Prx,y [ A(f(x, y)) = (x, y)] ≤ .
Ký hiệu Succow(A) là xác xuất thành công của thám mã A, từ đầu vào f(x, y) cho đầu ra là (x, y).
Hàm f là (, ) - một phía bộ phận (partial – domain one – way) nếu bất kì thám mã A nào chạy trong thời gian giới hạn là , có xác xuất thành công Succpd-ow(A), giới hạn trên bởi , trong đó:
Succpd-ow(A) = Prx,y [ A(f(x, y)) = x ] ≤ .
Ký hiệu Succpd-ow(A) là xác xuất thành công của thám mã A, từ đầu vào f(x, y) cho đầu ra là x.
Hàm f là (l, , ) - một phía bộ phận tập (set partial – domain one – way) nếu bất kì thám mã A nào cho đầu ra là tập l phần tử, chạy trong thời gian giới hạn là , có xác xuất thành công Succs-pd-ow(A), giới hạn trên bởi , trong đó:
Succs-pd-ow(A) = Prx,y [ x A(f(x, y)) ] ≤ .
Ký hiệu Succs-pd-ow(A) là xác xuất thành công của thám mã A, từ đầu vào f(x, y) cho đầu ra là x.
Khác hơn so với Succpd-ow(A) là ở đây thám mã A cho đầu ra là một tập các giá trị của x, chỉ cần x thuộc một giá trị trong tập đó là thám mã A thành công.
Ta ký hiệu Succow() là xác xuất thành công lớn nhất của Succow(A), (của tất cả các thám mã A). Hay Succow
() = max (Succow(A)) với mọi A. Tương tự:
Succpd-ow() là xác xuất thành công lớn nhất của Succpd-ow
(A). Succs-pd-ow(l, ) là xác xuất thành công lớn nhất của Succs-pd-ow
(A).
Rõ ràng với bất kì và l ≥ 1 ta luôn có: Succs-pd-ow(l, ) ≥ Succpd-ow
() ≥ Succow
()
Trong trường hợp hàm là RSA ([7]) thì cả ba khái niệm này là tương đương.
Định lý 3.6:
Gọi A là thám mã CCA2 chống lại an toàn ngữ nghĩa của lược đồ OAEP (Gk, E, D), f là hàm một phía bộ phận có cửa sập .
Giả sử rằng A có xác xuất thành công trong việc phá vỡ tính an toàn ngữ nghĩa của hệ mã OAEP là , thời gian chạy lớn nhất là , tạo ra qD , qG và qH truy vấn tới máy tư vấn giải mã, và những hàm băm G và H. Thì:
Succs-pd-ow(qH , ‟) + (qD qG + qD + qG )/2k0 + qD/2k1 ≥ / 2
Với ‟ ≤ + qH . qG . (Tf + O(1)), trong đó Tf là thời gian để tính toán f.
Nhận xét:
Do chọn ban đầu nên 2k0 và 2k1 là những số rất lớn, vì vậy giá trị (qD qG + qD + qG )/2k0 + qD/2k1 là “không đáng kể”. Mặt khác do tính chất của hàm một phía bộ phận có cửa sập nên Succs-pd-ow
(qH , ‟) cũng là giá trị “không đáng kể”, dẫn đến tổng Succs-pd-ow
(qH , ‟) + (qD qG + qD + qG )/2k0 + qD/2k1 là lượng “không đáng kể”, nên / 2 là một lượng không đáng kể, cuối cùng suy ra là giá trị “không đáng kể”. Điều đó chứng tỏ lược đồ OAEP là an toàn IND-CCA2 nếu f là hàm một phía bộ phận có cửa sập.
Kết luận
Với những đánh giá trên, hệ OAEP là an toàn đối với phương pháp tấn công CCA2, nhưng có nhược điểm là phải giả thuyết rằng mô hình Random Oracle tồn tại, tức là các hàm G và H phải có những tính chất đặc biệt như trong kết luận 3.5.1.1.
Gần đây một số nghiên cứu đã chỉ ra rằng, để xây dựng được những hàm như thế là rất khó trong thực tế ([20]).
Những hệ OAEP được cài đặt trên thực tế cho đến nay, chỉ được xây dựng trên những hàm băm, mà tác giả (người xây dựng hàm băm đó) chứng minh rằng nó có được những tính chất đó bằng phương pháp Heuristic, chưa có luận cứ toán học cụ thể.