Với sự tham gia của “trọng tài” văn bản x có thể đƣợc chứng minh là xuất phát từ A, do đó A không thể chối bỏ trách nhiệm của mình trên tài liệu đã gửi cho B. và cũng không thể thoái thác trách nhiệm cho lỗi trên đƣờng truyền vì trong giao thức trên có cả quá trình xác thực đồng nhất, chứng minh toàn vẹn dữ liệu.
Với giao thức trên ta có thể mở rộng, cho phép thực hiện trên một mạng nhiều thành viên, và trong tài đƣợc tin cậy bởi các thành viên trong mạng. Trong tài có vai trò quan trọng trong việc xác thực đồng nhất và xác thực thực thể trong mạng đó.
3.3.2 Sơ đồ chữ ký chống chối cãi Chaum-van Antverpen.
Trong các sơ đồ ký điện tử, việc kiểm thử tính đúng đắn của chữ ký là do ngƣời nhận thực hiện. Nhƣ vậy, cả văn bản cùng chữ ký có thể đƣợc sao chép và tán phát cho nhiều ngƣời mà không đƣợc phép của ngƣời gửi. Để tránh khả năng đó, ngƣời ta đƣa ra các sơ đồ chữ ký không phủ định được với một yêu cầu là chữ ký không thể đƣợc kiểm thử nếu không có sự hợp tác của ngƣời ký. Sự hợp tác đó đƣợc thực hiện thông qua một giao thức mời hỏi và trả lời giữa ngƣời nhận và ngƣời gửi (cũng là người ký), gọi là giao thức kiểm thử. Khi chữ ký đòi hỏi đƣợc xác nhận bằng một giao thức kiểm thử thì một vấn đề khác lại nẩy sinh là làm thế nào để ngăn cản ngƣời ký chối bỏ một chữ ký mà anh ta đã ký bằng cách tuyên bố rằng chữ ký đó là giả mạo? Để đáp ứng yêu cầu đó, cần có thêm một giao thức chối bỏ, thông qua giao thức này ngƣời ký có thể chứng minh một chữ ký không phải của mình đúng thực là giả mạo. Nếu anh ta từ chối không tham gia giao thức đó thì có bằng chứng để chứng tỏ rằng anh ta không chứng minh đƣợc đó là chữ ký giả mạo, tức không chối bỏ đƣợc chữ ký của mình!
Nhƣ vậy, một sơ đồ chữ ký không phủ định được sẽ gồm ba phần : một thuật toán ký, một giao thức kiểm thử và một giao thức chối bỏ.
Sơ đồ chữ ký không phủ định được đầu tiên đƣợc Chaum và van Antverpen đề xuất năm 1989. Một chủ thể A chọn một số nguyên tố dạng Sophie Germain
p=2q +1, trong đó q cũng là số nguyên tố; chọn p
Z là một phần tử cấp q . Gọi G là nhóm con (theo phép nhân) cấp q sinh bởi của Zp. Sơ đồ chữ ký Chaum - van Antverpen của A gồm có: P =A =G, cặp khoá K =(K’,K'') gồm có khoá bí mật K’ = a và khoá công khai K'' = (p,, a, ), trong đó là một số nguyên dƣơng p -1, và = a
Thuật toán Ký và Kiểm thử chữ ký Chaum và van Antverpen
5. Ký : (Ký A ký trên văn bản x P =G với chữ ký) a. y = s igK( )x xamod p
6. Kiểm thử : (Với (x,y) B và A thực hiện giao thức kiểm thử sau đây) a. B chọn ngẫu nhiên hai sốe e1, 2 Zq,tính 1 2
.
e e
c y mod p và gửi c cho A b. A tính a1 m o d
d c
q
mod p và gửi d cho B.
c. B chấp nhận y là chữ ký của A trên x nếu 1 2
.
e e
d x m o dp . 7. Giao thức chối bỏ: (gồm các bước sau đây)
a. B chọn ngẫu nhiên hai số e e1, 2 Zq,tính 1 2
.
e e
c y modp và gửi c cho A b. A tính a1 m o d
d c
q
mod p và gửi d cho B, c. B thử điều kiện d ≢ 1 2 . ( e e x m o dp .) d. B chọn tiếp hai số f1, f2Zq,tính 1 2 . f f
C y modp và gửi C cho A e. A tính a 1 m o d
D C
q
modp và gửi D cho B, f. B thử điều kiện D ≢ 1 2
. (
f f
x m o dp .)
g. B kết luận y là chữ ký giả mạo, nếu: 2 1 2 1
(de )f (Df )e
(modp).
Thí dụ minh hoạ:
Chọn p = 467, q =233 (p = 2q +1), = 4 là phần tử sinh của một nhóm con G
cấp 233 của Z4 6 7 . Chọn a = 101, khi đó ta có = a
mod p = 4101mod 467 =449. A có cặp khoá K =(K’,K'') với K’ =101, và K'' = (467, 4, 449). Giả thử A ký trên văn bản x =119 với chữ ký
1. B có thể dùng giao thức kiểm thử để biết y có đúng là chữ ký của A trên x
hay không nhƣ sau: B chọn ngẫu nhiên e1=38, e2=397, và tính c =13; A sẽ trả lời lại bằng d =9. B thử điều kiện 1 2 . e e d x m o dp , tức là 9 11938.4397(mod 467).
Đồng dƣ thức đó đúng. B chấp nhận 129 đúng là chữ ký của A trên văn bản 119. 2. Bây giờ ta thử thực hiện giao thức chối bỏ. Giả thử A gửi văn bản x =286 với chữ ký y = 83. B chọn ngẫu nhiên e1=45, e2=237, rồi tính c =305 và gửi cho A; A trả lời lại bằng d =109. B thử điều kiện d≢ 1 2
. (
e e
x m o dp ), điều kiện đó đƣợc thoả mãn vì 109149(=28645
.4237 mod 467). B lại tiếp tục phần sau của giao thức bằng cách chọn ngẫu nhiên f1 =125, f2 =9, và tính C =270, gửi cho A, A trả lời lại bằng
D=68. B lại thử điều kiện D≢ 1 2
. (
f f
x m o dp ), điều kiện này cũng đƣợc thoả mãn vì
6825(=286125
.49 mod 467). Bây giờ B lại thử điều kiện cuối cùng của giao thức bằng cách tính: 2 1 2 1 ( ) ( ) e f - 2 3 7 ) 1 2 5 f e - 9 4 5 d ( 1 0 9 .4 ) 1 8 8 ( m o d 4 6 7 ) D ( 6 8 .4 ) 1 8 8 ( m o d 4 6 7 )
Hai giá trị đó bằng nhau. B có thể kết luận y không phải là chữ ký của A trên x
với xác suất sai lầm là 1/233!
Thí dụ này đƣợc trình bày với mục đích minh hoạ, nên chỉ sử dụng các số nguyên tố p, q bé cho dễ tính. Trong thực tế ứng dụng, để bảo đảm tính an toàn, ta phải dùng các số p, q rất lớn, chẳng hạn phải là các số có biểu diễn nhị phân cỡ 512 bit, khi đó ta có q 2510, tức là 1/q 2-510, một xác suất rất bé, có thể bỏ qua.
3.4 PHƢƠNG PHÁP KẾT HỢP CHỮ KÝ SỐ VÀ CHỨNG CHỈ SỐ. 3.4.1 Mô hình xác thực bản quyền sử dụng chứng chỉ số. 3.4.1 Mô hình xác thực bản quyền sử dụng chứng chỉ số.
Giả sử A cần có khóa công cộng của B để xác nhận bản quyền . Khi đó, A sẽ nhận xác nhận khóa công cộng của B từ CA Server và sử dụng khóa công cộng của CA để kiểm tra xem đây có thật sự là khóa công cộng của B hay không. A sẽ dễ dàng phát hiện đƣợc xác nhận khóa công cộng giả của B do C tạo ra nhờ vào khóa công cộng của CA.
Mã hóa khóa công cộng có thể gặp phải vấn đề trong việc phân phối khóa nhƣng vấn đề này không nghiêm trọng nhƣ trong việc phân phối khóa của mã hóa đối xứng. Sự chứng thực của khóa công cộng có thể đƣợc thực hiện bởi một tổ chức trung gian thứ ba đáng tin cậy. Sự bảo đảm về tính xác thực của ngƣời sở hữu khóa công cộng đƣợc gọi là sự chứng nhận khóa công cộng. Ngƣời hay tổ chức chứng nhận khóa công cộng đƣợc gọi là tổ chức chứng nhận (CA – Certification Authority).