Định nghĩa và giải thuật

Một phần của tài liệu Nghiên cứu hệ mật mã khoá công khai trong giao dịch điện tử (Trang 63)

Mó hoỏ khoỏ cụng khai RSA cú khụng gian bản tin và khụng gian bản mó đều là Zn = {0, 1, 2, … , n-1} trong đú n = p.q là tớch của hai số nguyờn tố phõn biệt được lựa chọn ngẫu nhiờn. Phộp mó hoỏ và giải mó của hệ mó RSA là đối xứng hoàn toàn do đú nếu đổi ngược lại trỡnh tự của mó hoỏ khoỏ cụng khai RSA, ta sẽ đạt được sơ đồ chữ ký RSA cho phộp: phộp giải mó được sử dụng làm phộp biến đổi ký (sử dụng khoỏ cỏ nhõn) và phộp mó hoỏ được dựng là phộp biến đổi xỏc minh chữ ký (sử dụng khoỏ cụng khai) và chỉ người gửi cú thể kớ trong khi ai cũng cú thể xỏc minh chữ kớ đú.

Sơ đồ chữ ký số RSA là sơ đồ chữ ký tiền định, cho phộp khụi phục lại bản tin. Khụng gian ký MS và khụng gian chữ kớ S, đều là Zn. (Do đú người ta cũn sử dụng đặc tớnh cú  Zn hay khụng để xỏc minh chữ ký).

Định nghĩa: Cho n=p.q, p,q là 2 số nguyờn tố; P = A = Zn; định nghĩa K = { (n,p,q,e,d): n=pq; p,q là cỏc số nguyờn tố; ed 1 (mod (n))}. Cỏc giỏ trị cụng khai là n và e (khoỏ cụng khai) , cỏc giỏ trị giữ bớ mật là d, p, q trong đú d là khoỏ cỏ nhõn. Với mỗi K K ta định nghĩa:

SigK(x) = xd mod n = s

VerK(s)= True x se (mod n)

Như vậy, khi A muốn gửi cho B một bức điện x (x tương đương với m~ núi trờn, là giỏ trị của bản tin m đó được biến đổi để ký được), A phải tạo một chữ ký bằng cỏch sử dụng hàm sigK: s = sigK(x). Sau đú A mó hoỏ (x,s) bằng khoỏ cụng khai của B: eB(x,s) = z, sau đú A gửi z cho B trờn một kờnh liờn lạc.

Thụng thường, khi B nhận được z, B sử dụng khoỏ cỏ nhõn của mỡnh để giải mó:

B sử dụng thuật toỏn xỏc minh để kiểm tra độ xỏc thực của chữ ký mà A dựng: VerA(s) =    FALSE TRUE

Giải thuật xõy dựng sơ đồ chữ ký RSA trong thực tế Tạo khoỏ

Mỗi người dựng tạo ra một khoỏ cụng khai RSA và một khoỏ cỏ nhõn tương ứng, quỏ trỡnh được thực hiện như sau:

1. Tạo hai số nguyờn tố lớn ngẫu nhiờn phõn biệt p và q cú cựng kớch thước;

2. Tớnh n = p.q và tớnh  = (p-1)(q-1);

3. Chọn một số nguyờn ngẫu nhiờn e, 1 < e < , sao cho: UCLN(e,) = 1;

4. Sử dụng thuật toỏn Euclid mở rộng để tỡm ra một số nguyờn duy nhất d thoả món: 1 < d <  và ed  1 (mod );

(n, e) được dựng làm khoỏ cụng khai và d được dựng làm khoỏ cỏ nhõn của A.

Tạo và xỏc minh (khụi phục) chữ ký

Người ký A tạo chữ ký trờn bản tin m  M, bất kỳ ai cũng cú thể xỏc minh chữ ký của người tạo.

1. Tạo chữ ký: Người gửi A thực hiện những cụng việc sau:

a. Tớnh x = R(m), là một số nguyờn trong khoảng [0,n-1] (chuyển đổi bản tin gốc thành một số nguyờn  Zn);

b. Tớnh s = xd n

mod , s chớnh là chữ ký của A trờn m.

2. Xỏc minh: Để xỏc minh chữ ký s của A (khụi phục) bản tin m, B thực hiện cỏc việc sau:

a. Lấy khoỏ cụng khai (n, e) của A (trờn chứng chỉ điện tử); b. Tớnh xsemod n (điều kiện x  Zn dựng để xỏc minh

c. m = R-1( x).

Một phần của tài liệu Nghiên cứu hệ mật mã khoá công khai trong giao dịch điện tử (Trang 63)