Tính không phân biệt đƣợc (Indistinguishability)(IND)

Một phần của tài liệu Phân tích đánh giá một số hệ mã hóa (Trang 32)

Mục tiêu của mã hoá là duy trì tính bí mật của thông tin: Thám mã sẽ khó thể dùng bản mã để biết được thông tin về bản rõ tương ứng ngoại trừ độ dài của bản rõ đó. Chúng ta định nghĩa như sau:

Giả sử A = (A1, A2) là hai giai đoạn tấn công của thám mã. Giải thuật A1 chạy trên đầu vào là khoá công khai pk , cho đầu ra là bộ ba (x0, x1, s), hai thành phần đầu tiên x0 và x1 là những thông tin có cùng độ dài, và thành phần cuối cùng s là thông tin về trạng thái mà thám mã muốn duy trì (có thể bao gồm pk ) . Chọn ngẫu nhiên x0 hoặc x1, gọi là xb. Mã hóa xb dùng khóa công khai pk ta thu được bản mã y.

Giải thuật A2 với đầu vào là y, s, x0, x1 cho đầu ra là b (có nghĩa là xác định xem bit b là 1 hay là 0).

Cho đơn giản, ta định nghĩa đồng thời các kiểu tấn công CPA, CCA1, và CCA2. Sự khác nhau duy nhất nằm ở chỗ có hoặc không A1 và A2 được cho trước những máy tư vấn giải mã (decryption oracles).

Ta đặt chuỗi atk (viết tắt của từ attack), là đại diện cho cả cpa, cca1, cca2, trong khi ATK tương ứng là đại diện cho CPA, CCA1, CCA2.

Khi ta nói Oi =  , i  {1, 2}, có nghĩa Oi là hàm, trong đó trên bất kì đầu vào nào đều trả về chuỗi rỗng , tức là không có tư vấn (hàm Oi ở đây chẳng qua là đại diện cho việc có hoặc không máy tư vấn giải mã).

Ký hiệu Advatk(A) là xác xuất thành công để dự đoán giá trị của b của kẻ thám mã A, dùng giải thuật thời gian đa thức, cùng với phương pháp thám mã atk (như ta ký hiệu ở trên nếu atk là cpa thì đó là phương pháp thám mã cpa, tương tự nếu atk là cca1 thì kẻ thám mã đó dùng phương pháp thám mã cca1,…).

Ký hiệu Gk là giải thuật tạo cặp khóa công khai và bí mật (pk và sk), có đầu vào là chuỗi {0,1}k

.

E là giải thuật mã hóa, D là giải thuật giải mã, Pr[ … ] là xác xuất mà A cho ra dự đoán b là bằng 0 hay bằng 1.

Ký hiệu “;” là phân tách thứ tự một bước thực hiện. Ký hiệu “:” là phân tách sự kiện của xác xuất Pr.

Như ở trường hợp dưới 2 2( 0, 1, , )

y s x x

A O =b là sự kiện của xác xuất Pr. Hay hiểu theo một cách khác Pr[… :A2O2(x0,x1,s,y)=b] chính là xác xuất của sự kiện A2O2(x0,x1,s,y)=b.

Còn ký hiệu A2O2 (x0,x1,s,y)=b có nghĩa là thám mã A chạy trong giai đoạn hai (dùng giải thuật A2 như trên ta đã định nghĩa), có đầu vào là (x0, x1, s, y), và dùng hàm tư vấn O2, có đầu ra là b.

Định nghĩa 2.1 : [IND-CPA, IND-CCA1, IND-CCA2].

Đặt  = (Gk, E ,D) là lược đồ mã hoá. Gọi A = (A1, A2) là thám mã. Với atk  {cpa, cca1, cca2} và k  N đặt

Adv atk(A) = 2. Pr[(Gk({0, 1}k)  (pk, sk); 1( )

1 k O p A  (x0, x1, s); {0, 1} R b; Ep (xb) k  y) : A2O2 (x0,x1,s,y)= b ] - 1 Trong đó

Nếu atk = cpa thì O1() =  và O2() =  (không có tư vấn giải mã).

Nếu atk = cca1 thì O1() = Dsk () và O2() =  (Chỉ có tư vấn giải mã ở A1). Nếu atk = cca2 thì O1() = Dsk () và O2() = Dsk () (Có tư vấn giải mã ở cả A1 và A2).

Như ở trên ta có A1 cho đầu ra là x0 và x1 với |x0| = |x1| (độ dài bằng nhau). Trong trường hợp CCA2, chúng ta cũng khẳng định rằng A2 không được hỏi máy giải mã của nó để giải mã y (vì nếu như vậy thì không còn gì để nói).

Ta nói rằng lược đồ  là an toàn trong trường hợp của ATK, nếu A là thời gian đa thức thì đưa đến Adv atk(A) là "không đáng kể".

Một hàm Q : N  R là "không đáng kể" (negligible) nếu với mỗi hằng số c  0 tồn tại một số nguyên k0 để cho Q(k)  k -c với mọi k  k0.. 

Kết Luận:

Ví dụ bản rõ là một đoạn văn bản “abdfhjjk”, sau khi dùng một bảng mã nào đó (ví dụ Unicode), và thông qua hệ cơ số 2, chuyển về thành một chuỗi bit 0 và 1 (ví dụ như 011010101110001…..).

Thông thường từ chuỗi bit này ta cắt thành từng đoạn (ví dụ từng đoạn là 50 bit chẳng hạn), rồi tính giá trị ở hệ cơ số 10 của từng đoạn bit đó (bằng công thức 0 * 249

+ 1* 248 +… nếu chuỗi bit có độ dài 50 và có dạng 01…). Sau khi nhận được giá trị là một số nguyên ở hệ cơ số 10, ta mới đi mã hóa số nguyên đó.

Nhưng ở trường hợp an toàn IND, ta không chuyển thành số nguyên ở hệ cơ số 10 để mã hóa, mà ta đi mã hóa trực tiếp từng bit một.

Ví dụ chuỗi bit có độ dài 50 là 01101010…., ta đi mã hóa bit 0 đầu tiên thành một giá trị thuộc {0, 1}, tương tự bit 1 thứ hai thành một giá trị thuộc {0, 1}, …

An toàn IND có nghĩa là việc dự đoán từng bit một của chuỗi bản rõ đó của kẻ thám mã A dùng giải thuật thời gian đa thức chỉ có xác xuất là ½ + , trong đó là một lượng “không đáng kể”.

Nếu kẻ thám mã dùng phương pháp thám mã atk (với atk là ký hiệu của cpa, cca1, cca2), mà hệ mã vẫn đạt an toàn IND, thì ta nói hệ mã đạt an toàn IND trước phương pháp thám mã atk.

Mức an toàn (i, j, t)-IND:

Chúng ta quan tâm đến trường hợp cụ thể hơn bằng việc đưa ra mức độ an toàn (i, j)-IND, trong đó thám mã có thể hỏi máy tư vấn giải mã (decryption oracle) nhiều nhất i (j tương ứng) câu hỏi trước khi (sau khi tương ứng) nhận bản mã mục tiêu (ở đây là y).

Có nghĩa là trước khi nhận bản mã mục tiêu , được hỏi tối đa là i câu hỏi, sau khi biết bản mã mục tiêu , thì chỉ được hỏi tối đa là j câu hỏi tới máy tư vấn giải mã, tất nhiên là không hỏi máy tư vấn giải mã bản mã mục tiêu. Rõ ràng là trong tấn công CCA1 thì j = 0, và trong tấn công CPA thì i = j = 0.

Mỗi câu hỏi đều có vai trò khác nhau, không thể thay thế câu hỏi trước khi nhận bản mã mục tiêu bằng câu hỏi sau khi nhận bản mã mục tiêu được.

Cụ thể hơn nữa, người ta đưa ra khái niệm (i, j, t)-IND, trong đó kẻ thám mã chỉ có thể thực hiện một cách chính xác i (j tương ứng) câu hỏi giải mã trước khi (sau khi tương ứng), nhận bản mã mục tiêu trong phạm vi thời gian t.

Gọi A là kẻ thám mã như định nghĩa 2.1,

Ta ký hiệu Adv atk(A, t) là lợi thế lớn nhất (max) trên tất cả các kẻ thám mã A chạy trong thời gian giới hạn t.

Một phần của tài liệu Phân tích đánh giá một số hệ mã hóa (Trang 32)

Tải bản đầy đủ (PDF)

(91 trang)