Chương 5 CHỨNG MINH TÍNH AN TOÀN TỐI ƯU CHO LƯỢC ĐỒ KÝ DỰA VÀO PHƯƠNG PHÁP XÁC SUẤT
5.2 Một biến thể của PSS
FDH là lƣợc đồ chữ ký an toàn chứng minh đƣợc và dựa trên RSA. Nó đƣợc định nghĩa nhƣ sau: thuật toán sinh khoá, với đầu vào 1k, thực hiện RSA(1k) để nhận đƣợc bộ giá trị (N, e, d). Nó cho ra (pk, sk), với khoá công khai pk là (N, e) và khoá bí mật sk là (N, d). Các thuật toán ký và kiểm tra sử dụng hàm băm H: {0, 1}* Z*N, nó ánh xạ các chuỗi bit có độ dài bất kỳ vào tập các số nguyên có nghịch đảo theo modulo N.
SignFDHN, d(M):
y H(M) trả về yd mod N
VerifyFDHN, e(M, x):
y xe mod N
nếu y = H(M) thì trả về 1 ngƣợc lại trả về 0
Trong phần này chúng ta giới thiệu một biến thể của PSS, đƣợc gọi là PFDH (Probabilistic Full Domain Hash). Lược đồ này tương tự như lược đồ Full Domain Hash ngoại trừ một muối ngẫu nhiên có độ dài k0 bit được nối vào thông điệp M trước khi băm. Lƣợc đồ này khác với PSS ở chỗ muối ngẫu nhiên không đƣợc lấy lại khi kiểm tra chữ ký. Giống nhƣ lƣợc đồ FDH, lƣợc đồ này sử dụng một hàm băm H: {0, 1}* Z*N
SignPFDHN, d(M):
r 0,1k0 y H(M||r) trả về (yd mod N, r)
VerifyPFDHN, e(M, s, r):
y se mod N
nếu y = H(M||r) thì trả về 1 ngƣợc lại trả về 0
Định lý dưới đây chứng minh tính an toàn của PFDH trong mô hình tiên đoán ngẫu nhiên với giả thiết bài toán ngƣợc RSA là khó. Chúng ta chỉ ra rằng PFDH có bằng chứng an toàn chặt với một muối ngẫu nhiên có độ dài k0 = log2qsig bit.
Định lý 1
Giả sử RSA là (t’, ')-secure thì lƣợc đồ ký PFDH[k0] là (t, qhash, qsig, )-secure, trong đó
t = t’ –(qhash+qsig).O(k3) (1)
= ’.(1+6.qsig.2-k0) (2) Chứng minh
Gọi F là người giả mạo muốn (t, qhash, qsig, )-break PFDH. Chúng ta muốn xây dựng phép toán ngƣợc I thoả mãn (t’, ')-breaks đƣợc bài toán RSA. Phép toán ngƣợc có đầu vào là bộ giá trị (N, e, ) và phải đƣa ra đƣợc dmod N. Chúng ta giả sử rằng người giả mạo không bao giờ lặp lại một yêu cầu băm. Tuy nhiên người giả mạo có thể lặp lại một yêu cầu ký để có đƣợc chữ ký của thông điệp M với các số nguyên r khác. Bộ nghịch đảo I duy trì con chạy i đƣợc khởi tạo giá trị ban đầu bằng 0. Lần đầu tiên thông điệp M yêu cầu băm hoặc ký thì bộ nghịch đảo tăng con chạy i lên và gắn Mi M. Sau đó bộ nghịch đảo sinh ra một danh sách Li gồm qsig số nguyên ngẫu nhiên thuộc tập 0,1k0.
Khi người giả mạo thực hiện một yêu cầu băm Mi||r thì xảy ra 2 khả năng sau:
1. Nếu r thuộc danh sách Li , bộ nghịch đảo sinh ra một số nguyên x Z*N và đƣa ra kết quả H(Mi||r) = xe mod N.
2. Ngƣợc lại bộ nghịch đảo sinh ra một số ngẫu nhiên x ZN* và đƣa ra kết quả .xe mod N.
Do đó đối với mỗi thông điệp Mi , danh sách Lilưu các số nguyên r 0,1k0 mà bộ nghịch đảo biết được x tương ứng với Mi || r.
Khi người giả mạo yêu cầu ký lên thông điệp Mi, bộ nghịch đảo nhặt ra một số ngẫu nhiên r thuộc tập Li và loại nó ra khỏi danh sách. Do ban đầu danh sách chứa qsig số nguyên và có tối đa qsig lần yêu cầu ký nên việc loại bỏ ra khỏi danh sách luôn luôn có thể. Nếu đã có một yêu cầu băm đối với Mi||r , chúng ta có H(Mi||r) = xe mod N và trả về chữ ký x. Ngƣợc lại bộ nghịch đảo sinh ra một số nguyên ngẫu nhiên x ZN* và gắn H(Mi||r) = xe mod N và trả về chữ ký x.
Khi người giả mạo đưa ra một chữ ký giả mạo (M, s, r), chúng ta giả sử rằng luôn thực hiện đƣợc phép băm lên thông điệp M, vì vậy M = Mi với giá trị i đã cho. Mặt khác bộ nghịch đảo thực hiện phép băm lên (M||r), khi đó nếu r không thuộc danh sách Li thì chúng ta có H(Mi||r) = .xe mod N. Do s = H(Mi||r)d = d.x mod N, nên d = s/x mod N và bộ nghịch đảo thành công trong việc đƣa ra d mod N.
Khi người giả mạo không thực hiện bất kỳ yêu cầu ký nào lên thông điệp Mi của chữ ký giả (Mi, s, r), người giả mạo sẽ không biết đến qsig số nguyên ngẫu nhiên của danh sách Li. Do đó xác suất để r không thuộc danh sách Li là (1- 2-k0)qsig. Nếu k0 > log2qsig và nếu qsig>2 chúng ta có (1- 2-k0)qsig (1-
qsig
1 )qsig 4
1.
Do người giả mạo đưa ra chữ ký giả mạovới xác suất là , xác suất thành công ’ của bộ nghịch đảo là ít hơn
4
. Điều này cho thấy rằng đối với k0 log2qsig xác suất để phá vỡ PFDH giống với xác suất bài toán ngƣợc RSA.
Trong trường hợp bình thường, chẳng hạn như chúng ta không giả sử k0 log2qsig , chúng ta sinh danh sách Li ít hơn qsig số nguyên ngẫu nhiên nên phần tử r của chữ ký giả mạo(Mi, s, r) thuộc danh sách Li với xác suất nhỏ hơn. Chính xác hơn từ một danh sách rỗng Li, bộ nghịch đảo sinh ra môt phần tử r 0,1k0 với xác suất , thêm nó vào danh sách Li và tiếp tục cho đến khi danh sách Li có qsig phần tử. Mặt khác với xác suất 1 - sẽ dừng lại quá trình thêm các số nguyên vào danh sách Li. Số lƣợng ai số nguyêntrong danh sách Li là một biến ngẫu nhiên tuân theo quy tắc sau đây:
Pr[ai = j] =
j
qsig
).
1 (
Bộ nghịch đảo trả lời một yêu cầu ký đối với thông điệp Mi danh sách Li tương ứng chứa đựng một hoặc nhiều hơn số nguyên, điều này xảy ra với xác suất (ngƣợc lại
nếu j < qsig
nếu j = qsig
bộ nghịch đảo sẽ bỏ qua). Do vậy bộ nghịch đảo trả lời tất cả các yêu cầu ký với xác suất lớn hơn qsig.
Xác suất để r của chữ ký giả mạo(Mi, s, r) không thuộc danh sách Li là (1- 2-k0)j khi số phần tử của Li là ai bằng j. Xác suất để r không thuộc danh sách Li đƣợc xác định nhƣ sau:
f() = i k j
q
j
j a r P
sig
2 0
1 .
0
(3)
Khi người giả mạo đưa ra sự giả mạo với xác suất , xác suất thành công của bộ nghịch đảo ít nhất bằng . qsig.f() . Chúng ta chọn giá trị cho để xác suất thành công là lớn nhất.
Đặt g() = i k j
q
j
j a r P
sig
2 0
1 .
0
với
Pr[ai = j] =
j
qsig
).
1 (
(4)
Đặt g0 = max {g(); [0, 1]} và chúng ta muốn chứng minh rằng g0
2 0
. . 6 1
1
k
qsig
Đặt 2k0, từ (3) và (4) chúng ta có g() = .(1 .(1 ) . )
).
1 ( 1
1
sig sig sig
q q
q
(5)
Từ đó chúng ta có g()
1 . 1
qsig
Nếu 2
.qsig 1
và gán = 1 - qsig
. 2
1 thì thu đƣợc g0
sig q
sig q
q
sig
. . 2 1 . 1 .
2 1 1
Cho qsig 1chúng ta có
qsig
qsig
. 2 1 1
2
1 nếu j < qsig
nếu j = qsig
Sử dụng điều kiện
2 .qsig 1
chúng ta có đƣợc g0
) . . 2 1 .(
2 1
qsig
qsig
. . 6 1
1
Cho 2
.qsig 1
và gán = 1 từ (5) chúng ta có g0 (1)qsig 1.qsig
qsig
. . 6 1 1 1
đối với
2 .qsig 1
Qua phép chứng minh cho thấy rằng với bất kỳ (qsig, k0), tồn tại giá trị 0 thoả mãn
) (
. 0
0
qsig f
2 0
. . 6 1
1
k
qsig
.Từ công thức này suy ra đƣợc công thức ở (2)
Thời gian thực hiện bộ nghịch đảo I là thực gian thực hiện thực hiên của F cộng với thời gian cần thiết để tính toán các số nguyên xe mod N, điều này suy ra đƣợc công thức (1).