Chương 6 CHỨNG MINH TÍNH AN TOÀN CHO LƯỢC ĐỒ KÝ RSA-PSS
6.2 RSA-PSS với việc khôi phục thông điệp
Chúng ta có thể mở rộng lƣợc đồ RSA-PSS để thêm vào chức năng khôi phục thông điệp. Chúng ta định nghĩa một lƣợc đồ ký RSA-GENPSS-R có đầu vào là một phần thông điệp MR có khả năng khôi phục lại và một phần thông điệp MNR không thể khôi phục được như dưới đây. Thao tác mã hóa GENPSS-R-ENCODE nhận xâu H có độ dài kh làm đầu vào, phần thông điệp khôi phục đƣợc MR và độ dài muối thỏa mãn k0
đƣợc chọn từ tập Ksig. Chúng ta yêu cầu rằng |MR| kmr – k0, trong đó kmr là một số nguyên cố định nhỏ hơn kg.
Ở đây:
: {0, 1}kmrk0 × {0, 1}kh × {0, 1}KsigKver {0,1}*
là một hàm thỏa mãn bộ ba (MR, H, r) dễ dàng tính đƣợc từ (MR,H,r). Cụ thể )
, , (MR H r
= (|MR|)64 ||MR||H||r) trong đó (i)64 là biểu diễn 64 bit thấp của số nguyên i. được định nghĩa như trong các lược đồ trước, ngoại trừ chúng ta cho phép bất kỳ đầu vào có độ dài bit lên tới kmr. Như đã nói ở mục trước x dễ dàng tính được từ (x).
Cụ thể (x) = 0kg-|x|-1|| 1 || x. ( trong trường hợp này giá trị kmr = kg -1 )
Với mỗi một xâu MR và r dễ dàng trích ra từ (MR,H,r), chỉ có phép nối của các xâu có thể xác định từ (MR||r). Còn độ dài muối là một đầu vào đối với thao tác xác minh, điều này có nghĩa là các xâu tách biệt có thể suy ra từ phép nối.
GENPSS-R-ENCODE(MR,H,k0) (1) rR {0,1}k0
(2) w h((MR,H,r)) (3) r* g(w)(MR ||r) (4) Return y = 0 || r*||w||E
Thủ tục xác minh khôi phục MR từ thông điệp đƣợc mã hóa nhƣ sau:
Cho k0 là một số nguyên thuộc tập Kver.
Định nghĩa sơ đồ rút gọn RSA-GENPSS-R-REDUCED(Ksig, Kver) nhƣ sau. Thao tác ký có đầu vào H {0,1}kh, MR {0,1}n, và một độ dài muối k0Kver. Quá trình thực thi nhƣ sau:
Thao tác khôi phục có đầu vào là thông điệp H {0, 1}kh, chữ ký x, độ dài muối k0
Kver và đƣợc thực thi nhƣ sau:
GENPSS-R-RECOVER(H,y,k0) (1) Viết y dưới dạng
y= b || r*||w ||E’ (|b| = 1,|r*|=kg , |w|=kh , |E’| = kE)
(2) Nếu b = 1 hoặc E # E’ cho ra là 0 và dừng kết thúc quá trình xác minh
(3) Nếu có thể thì viết g(w)r* = (r) với |MR| kmr – k0 và |r| = k0 ,nếu không trả về
“lỗi” và thoát ra.
(4) Nếu h((MR,H,r))w thì trả về xâu MR, ngƣợc lại thông báo “lỗi”
RSA-GENPSS-R-REDUCED-SIGN(MR,H,k0) (4) y GENPSS-R-ENCODE(MR,H,k0) (5) x f -1(y)
(6) return x.
RSA-GENPSS-R-REDUCED-RECOVER(H,x,k0)
(1) y f (x)
(2) M GENPSS-R-RECOVER(H,y,k )
Thao tác ký và khôi phục chính của lƣợc đồ RSA-GENPSS-R-SIGN và RSA- GENPSS-R-RECOVER nhận xâu MNR có độ dài tùy ý làm đầu vào thay vì xâu H có độ dài kh.
6.3 Các mô hình an toàn của lƣợc đồ ký RSA-PSS với việc khôi phục thông điệp
Các mô hình an toàn đối với sơ đồ RSA-GENPSS-R và RSA-GENPSS-R-REDUCED tương tự các mô hình của RSA-GENPSS và RSA-GENPSS-REDUCED với một vài điều chỉnh nhỏ:
1 Mục tiêu của người giả mạo trong lược đồ RSA-GENPSS-R là phải tìm ra một cặp (MNR, x) mà x là chữ ký hợp lệ của (MR, MNR) đối với MR nào đó.
2 Mục tiêu của người giả mạo trong lược đồ RSA-GENPSS-R- REDUCED là phải tìm ra một cặp (MNR, H, x) mà x là chữ ký hợp lệ của (M , H) đối với M nào đó.
RSA-GENPSS-R-SIGN(MR,MNR, k0) (1) H h(MNR)
(2) x RSA-GENPSS-R-REDUCED-SIGN(MR,H,k0) (3) Trả về x
RSA-GENPSS-R-RECOVER(MNR,x,k0) (1) H h(MNR)
(2) MR RSA-GENPSS-R-REDUCED-RECOVER(H,x,k0)
(3) Nếu không có “lỗi” xuất hiện thì trả về MR ngƣợc lại trả về “lỗi”
3 Các yêu cầu của oracle h đƣợc chấp nhận trong lƣợc đồ rút gọn là các xâu x thỏa mãn x = (MR,H,r) đối với |H| = kh, |r| Ksig Kver và
|MR|+|r| kmr.
Cũng như ở phần trước, chúng ta giả thiết rằng oracle g và oracle h trong lược đồ rút gọn là độc lập. Chúng ta cũng dễ dàng thấy đƣợc bổ đề 1 cũng đúng đối với lƣợc đồ GENPSS-R.
Định lý 2
Cho hệ thống ký hiệu nhƣ ở định lý 1. Giả thiết rằng phép tính nghịch đảo RSA là (t’,
’ )-khó. Khi đó với bất kỳ qsig và qhash lƣợc đồ RSA-GENPSS-R(Ksig, Kver) là (t, qsig, qhash, )-an toàn, trong đó
t(k) = t’(k) -
h E
k tot k
q
2 1
2 1
. khln2 qhash(k)2qsig(k)2.O(Tf(k)) và (k) =
) , , (
1 qsig
p
. ’(k) + c(qtot, kh) + 2-kh (7) Nếu Ksig Kver = thì (k) = ’(k) + c(qtot, kh) + 2-kh Chứng minh
Việc chứng minh hoàn toàn giống nhƣ định lý 1. Thuận toán yêu cầu oracle giống chính xác nhƣ ở định lý 1, ngoại trừ H, Hi và Hj đƣợc thay thế bằng (M, H), (Mi, Hi) và (Mj, Hj) ở những nơi thích hợp. Ví dụ, chúng ta cần một tập R(M, H, k0) cho mỗi (M, H) và k0 thay vì một tập R(H, k0) cho mỗi H và k0. Ngoài ra (r) phải đƣợc thay thế bằng (M ||r) ở bước H7 và S8.
Lưu ý
Điều quan trọng là mỗi một xâu MR, H và r có thể đƣợc trích ra theo một cách duy nhất từ (MR,H,r). Ví dụ (MR,H,r)=H||MR||r sẽ là một lựa chọn tồi bởi vì chữ ký của (MR, MNR) với muối r cũng sẽ là một chữ ký của (M’R, MNR) với muối r’ khi mà