Sơ đồ x−ng danh Schnorr

Một phần của tài liệu Tài liệu Lý thuyết mật mã và An toàn thông tin pptx (Trang 142 - 145)

Trong sơ đồ x−ng danh này có sự tham gia của một cơ quan đ−ợc uỷ thác mà ta ký hiệu là TA. TA sẽ chọn các tham số cho sơ đồ x−ng danh nh− sau:

- một số nguyên tố lớn p sao cho bài toán tính lôgarit rời rạc theo modp là rất khó; và một −ớc số nguyên tố q của p -1 (ng−ời ta khuyên nên chọn p≥ 2512 và q≥ 2140 ).

- một phần tử α∈Zp∗ có cấp q (một phần tử α nh− vậy có thể lấy là một luỹ thừa bậc (p -1)/q của một phần tử nguyên thuỷ theo modp.

- một tham số an toàn t sao cho q ≥ 2t. Có thể lấy t =40.

- TA chọn cho mình một sơ đồ chữ ký gồm một thuật toán ký(bí mật) sigTA và một thuật toán kiểm thử (công khai)verTA.

- một hàm băm an toàn (một phía và không va chạm mạnh). Ta giả thiết là mọi thông tin đều đ−ợc “tóm l−ợc” bởi hàm băm tr−ớc khi đ−ợc ký; tuy nhiên trong mô tả sau đây để cho đơn giản ta sẽ bỏ qua các b−ớc sử dụng hàm băm.

Các tham số p, q, α, thuật toán kiểm thử verTA và hàm băm đều có thể đ−ợc công bố công khai.

Bây giờ, một chủ thể A cần x−ng danh sẽ yêu cầu TA cấp cho mình một chứng chỉ. Thủ tục cấp chứng chỉ cho A đ−ợc tiến hành nh− sau:

1.TA xác lập các thông tin về danh tính của A nh− họ,tên, ngày sinh, số chứng minh hoặc hộ chiếu, v.v... d−ới dạng một dãy ký tự mà ta ký hiệu là I A hay ID(A).

2. A chọn bí mật một số ngẫu nhiên a (0≤aq-1), tính

mod

a

v=α− p và chuyển số v cho TA.

3. TA tạo chữ ký s =sigTA(IA, v) và cấp cho A chứng chỉ C(A) = (ID(A), v, s ).

Nh− vậy, chứng chỉ mà TA cấp cho A gồm (IA, v) và chữ ký của TA trên thông tin (IA, v) đó. Chú ý rằng TA cấp chứng chỉ cho A mà hoàn toàn không biết gì về thông tin bí mật của A là số a.

Bây giờ, với chứng chỉ C(A) đó, A có thể x−ng danh với bất kỳ đối tác B nào bằng cách cùng B thực hiện một giao thức xác nhận danh tính nh− sau:

1. A chọn thêm một số ngẫu nhiên k (0≤kq-1), tính

k

γ α= modp,

và gửi cho B các thông tin C(A) và γ.

2. B kiểm thử chữ ký của TA trong chứng chỉ C(A) bởi hệ thức verTA(ID(A), v, s) =đúng. Kiểm thử xong, B chọn một số ngẫu nhiên r (1≤r ≤ 2t ) và gửi r cho A.

3. A tính y =k +ar modq và gửi y cho B. 4. B thử điều kiện

y r

v

γ α≡ (modp)

và nếu điều kiện đó đ−ợc thoả mãn thì xác nhận danh tính của A. Thực hiện giao thức đó, A sẽ chứng minh đ−ợc danh tính của mình, vì y r k a r r k a r a r k v v α ≡α + ≡α + α− ≡α (modp) ≡γ(modp), tức điều kiện mà B cần thử là đúng.

Sơ đồ x−ng danh cùng với giao thức xác nhận danh tính nh−

mô tả ở trên có các tính chất đáp ứng các yêu cầu nh− đề ra từ phần đặt vấn đề ở tiết 6.1. Điều vừa chứng minh ở trên chứng tỏ rằng nếu A tuân thủ giao thức thì B xác nhận danh tính của A là đúng (B tin rằng A quả thực có sở hữu một bí mật a, dù B cũng không biết cái bí mật a đó là số nào).

Bây giờ ta xét khả năng một ng−ời O muốn giả danh A để giao dịch với B. Khả năng thứ nhất là O tạo ra một chứng chỉ giả mạo với danh tính của A, một chứng chỉ nh− vậy có dạng

C’(A) = (ID(A), v , s’),

trong đó v ≠v. Để tạo ra một chứng chỉ nh− vậy thì O phải tạo ra đ−ợc s là chữ ký của TA trên (ID(A), v ), O không biết thuật toán ký sigTA nên không thể tạo ra chữ ký đúng của TA đ−ợc, và nếu lấy s’ là một chữ ký giả mạo, thì khi thực hiện điểm 2 của giao thức xác nhận danh tính thể nào B cũng phát hiện ra. Khả năng thứ hai là O vẫn dùng chứng chỉ thật C(A) của A, tự chọn một số k và tính số γ t−ơng ứng theo điểm 1 của giao thức xác nhận danh tính. Vấn đề ở đây là khi B gửi đến số r , O phải trả lời lại bằng một số y sao cho điều kiện (modp) đ−ợc nghiệm đúng. Điều này xem ra là rất khó, ít nhất cũng khó nh− là O biết bí mật về số a của A vậy. Thực vậy,giả sử O có khả năng nói trên, khi đó ta cho hai lần hỏi r

y r v γ α≡ 1 và r 2 O sẽ có hai trả lời y1 và y2, và ta có 1 1 2 2 mod ) y r y r v v γ α≡ ≡α ( p , từ đó suy ra αy1−y2 ≡vr2−r1(modp). Vì v = α-a , ta có y1 – y2 ≡a(r2 – r1) (modq). Vì q là số nguyên tố > 2t và 0<⎟r2 - r1⎟< 2t , nên gcd(r2 - r1, q) =1, và O có thể tính đ−ợc 1 1 2 2 1 ( )( a= yy rr)− modq . Thí dụ : Lấy p =88667, q = 1031 và t =10. Phần tử α = 70322 có cấp q trong Zp. Giả sử A chọn số mũ bí mật là a = 755, khi đóv = 13136. A và B có thể thực hiện giao thức xác định danh tính nh− sau: A chọn k = 543, và tính γ =70322543mod88667 =84109 rồi gửi γ cho B. Giả sử B gửi r =1000 cho A, A trả lời lại bằng y =k +ar modq = =543+755.1000mod1031 = 851. B thử điều kiện (modp), trong tr−ờng hợp này là: y r v γ α≡ 84109 ≡ 70322851131361000 (mod 88667), đó là đồng d− thức đúng. B xác nhận danh tính của A.

Bây giờ vẫn với các tham số trên, giả thiết O có khả năng trả lời đúng hai câu hỏi r1=1000 và r2=19 của B bằng y1=851 và y2=454. Khi đó O có thể tính đ−ợc 1 1 2 2 1 ( )( a= yy rr)− modq = (851-454)(19-1000)-1 mod1031 = 755, đúng là số bí mật của A.

Sơ đồ x−ng danh Schnorr, với giao thức xác nhận danh tính nh− định nghĩa ở trên, là có tính chất đầy đủ (việc có bí mật a bảo đảm A chứng minh đ−ợc danh tính của mình), và đúng đắn ( việc giả danh A thành công cũng khó nh− biết bí mật của A); tuy nhiên nh− vừa trình bày trong thí dụ trên, sơ đồ đó ch−a phải là an toàn,

việc giả danh là khó nếu O không hề biết gì về sơ đồ x−ng danh đó, chứ nếu, chẳng hạn, O đã đ−ợc A x−ng danh với ít nhất hai lần (tức hai lần biết đ−ợc hai cặp số (r1, y1) và (r2, y2)) thì có khả năng O phát hiện đ−ợc bí mật của A, nh− vậy việc x−ng danh của A không còn an toàn nữa!

Để khắc phục điểm yếu đó của sơ đồ Schnorr, Okamoto đã đề xuất một sửa đổi làm cho sơ đồ trở nên an toàn, sửa đổi này dựa trên tính khó của một bài toán đặc biệt về tính lôgarit rời rạc. Ta trình bày trong tiết sau đây sơ đồ đ−ợc sửa đổi đó.

Một phần của tài liệu Tài liệu Lý thuyết mật mã và An toàn thông tin pptx (Trang 142 - 145)

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

(168 trang)