Chữ ký không thể phủ nhận
Transcript of Chữ ký không thể phủ nhận
Chương 3: CHỮ KÝ KHÔNG THỂ PHỦ NHẬN
3.1 Khái niệm chữ ký không thể phủ nhận
-Trong các phần trước đã trình bày một vài sơ đồ chữ ký điện tử; trong các sơ đồ
đó, 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à phát tán 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 thể phủ nhận với một yêu cầu là chữ ký không thể phủ nhận 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ôngqua 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ểmthử 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ộtchữ ký mà anh ta
đã ký bằng cách tuyên bố 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 mà 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 thể phủ nhận 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ỏ.
3.2 Hiệu quả của chứ ký, tính ưu việt so với các chữ ký khác.
-Chữ ký điện tử thông thường có thể bị sao chép. Đôi khi thuộc tính này cũng rất
hữu ích ví dụ như trong việc phát hành các thông báo công cộng.Mặt khác nó cũng
là một vấn đề không tốt. Thử tưởng tượng xem một bức thư cá nhận hoặc thư
thương mại được ký điện tử. Nếu rất nhiều bản sao của các tài liệu này được phát
hành rộng rãi, mỗi một bản đó có thể được xác thực bởi bất kì ai, điều này dẫn đến
tình trạng lúng túng hoặc sự hăm dọa để tống tiến.
- Giải pháp tốt nhất để giải quyết vấn đề này là phải xây dựng một loại chữ ký điện
tử mà nó có thể chứng minh được tính pháp lícủa chữ ký nhưng người nhận
chữ ký không thể xác thực chữ ký đó với người thứ 3 mà không được sự cho
phép của người kí.
3.3 Ví dụ về hiệu quả của chữ kí
-Công ty phần mềm của An phát hành sản phẩm DEW (Do-Everything-World).Để
đảm bảo với khách hàng là sản phẩm của họ hoàn toàn không có virus, họ đã thêm
một chữ ký điện tử cùng với mỗi một bản sao của phần mềm. Tuy nhiên, họ muốn
chỉ những người mua sản phẩm hợp pháp mới có thể xác nhận được chữ ký này,
còn những người mua bất hợp pháp không thể xác nhận được chữ ký này. Đồng
thời nếu những bản sao của phần mềm DEW được tìm ra là có chứa virus, thì công
ty phần
mềm An không thể chối bỏ một chữ ký hợp pháp.
-Chữ ký không thể phủ nhận rất thích hợp cho những nhiệm vụ như thế này.
Giống như chữ ký điện tử thông thường, một chữ ký không thể phủ nhận phụ thuộc
vào tài liệu được ký và khóa bí mật của người ký. Nhưng nó không giống chữ ký
điện
tử thông thường ở chỗ: chữ ký không thể phủ nhận không thể xác thực nếu
không
có sự cho phép của người ký. Một cái tên hay hơn cho những loại chữ ký như này
có thể là một cái gì đó kiểu như “chữ ký không thể chuyển giao quyền sở hữu”
cái tên này bắt nguồn từ thực tế là nếu trước tòa An buộc phải hoặc thừa nhận hoặc
chối bỏ chữ ký, thì cô ấy không thể chối bỏ chữ ký thật của của cô ta.
-Tính toán thì rất là phức tạp nhưng mà ý tưởng cơ bản thì rất đơn giản:
(1) An giới thiệu với Bình chữ ký.
(2) Bình chọn một số ngẫu nhiên gửi cho An.
(3) An làm các tính toán bằng số ngẫu nhiên đó với khóa bí mật của cô ta và gửi
kết quả cho Bình. An chỉ có thể làm các phép tính đó nếu chữ ký đó là hợp pháp.
(4) Bình xác nhận kết quả này.
-Cũng có một giao thức khác để An có thể chứng minh là cô ấy đã không ký tài
liệu này và không thể chối bỏ một chữ ký hợp pháp.Bình không thể quay sang và
thuyết phục Chi rằng chữ ký của An là hợp pháp bởi vì Chi không biết rằng những
số của Bình là ngẫu nhiên. Bình đã làm việc với giao thức đó một cách dễ dàng
trên giấy mà không cần bất cứ sự giúp đỡ nào từ phía An và sau đó Bình đưa kết
quả cuối cùng cho An. Chi có thể bị thuyết phục rằng chữ ký của An là hợp pháp
chỉ trong trường hợp Chi hoàn thành giao thức với An bởi chính Chi.
-Giải pháp này không phải là hoàn hảo. Yvo Desmedt và Moti Yung đã chỉ ra
rằng nó không thích hợp trong một vài ứng dụng, cho việc Bình thuyết phục Chi
rằng chữ ký của An là có hiệu lực.
-Chẳng hạn như, Bình mua phần mềm DEW có bản quyền. Bình có thể xác
nhận tính hợp lệ của chữ ký trong gói phần mềm đó bất cứ lúc nào anh ta muốn.
Sau
đó, Bình thuyết phục Chi rằng Bình là một đại diện của công ty phần mềm của An.
-Bình bán cho Chi một bản sao bất hợp pháp của phần mềm DEW. Khi mà Chi thử
xác nhận tính hợp lệ của chữ ký với Bình, Bình ngay lập tức xác nhận tính hợp lệ
của chữký đó với An. Khi mà Chi gửi cho Bình số ngẫu nhiên, Bình ngay lập tức
gửi nó tớiAn. Khi An trả lời, ngay sau đó Bình gửi kết quả đó tới Chi. Chi đã bị
thuyết phục
rằng cô ta là người mua phần mềm hợp pháp mặc dù sự thực không phải như thế.
Cách
tấn công này là một ví dụ của vấn đề Chess Grandmaster.
-Tuy nhiên, chữ ký không thể phủ nhận có rất nhiều ứng dụng, trong rất nhiều
trường hợp An không muốn bất cứ ai có thể xác thực chữ ký của cô ta. An có
thểkhông muốn thư từ cá nhân bị xác thực bởi báo chí, bị chỉ ra và xác thực ngoài
ngữcảnh, hoặc thậm chí bị xác thực sau khi bị chỉnh sửa một vài thứ. Nếu An kí
một phần thông tin mà cô ta đã bán, An không muốn người không trả tiền cho
thông tin có khảnăng xác nhận tính xác thực của thông tin đó. Điều khiển những
người xác thực thong tin là cách cho An bảo vệ thông tin bí mật cuả cô âý.
-Một biến thể của chữ ký không thể phủ nhận tách rời sự quan hệ giữa người kí và
thông điệp với sự quan hệ giữa người ký và chữ ký. Trong một sơ đồ ký, bất cứ ai
có thể xác thực chữ ký mà người ký đã thực sự tạo ra nó, nhưng người cộng tác của
người ký phải được yêu cầu để xác thực chữ ký (chữ ký có giá trị đối với thông
điệp).
-Một khái nhiệm liên quan là chữ ký không thể phủ nhận được giao phó. Hãy
tưởng tượng rằng An làm việc cho tập đoàn FPT, An gửi tài liệu buộc tội cho một
tờbáo sửdụng một giao thức kí không thể phủ nhận. An có thể xác thực chữ ký của
cô ta
với phóng viên, nhưng không thể làm điều này với bất cứ ai khác. Tuy nhiên, Bình
(chủ tịch của FPT) nghi ngờ An là người đã gửi những tài liệu đó cho tòa soạn.
Bình yêu cầu An chạy giao thức chối bỏ (disavowal protocol) để xác định rõ tên
của cô ta và An đã từ chối việc này. Bình nghĩ rằng lý do duy nhất mà An từ chối
là chính An đã làm việc gửi các tài liệu đó cho tờ báo và Bình đã buộc tội cho An.
-Chữ ký không thể phủ nhận được giao phó cũng giống như chữ ký không thể
phủ nhận, chỉ khác chữ ký không thể phủ nhận ở chỗ giao thức chối bỏ chỉ có thể
thực
thi bởi Đức. Bình không thể bắt An chạy giao thức chối bỏ, chỉ Đức mới có thể
làm
điều đó. Và nếu Đức là quan tòa, thì anh ta sẽ chạy giao thức đó và giải quyết tranh
cãi.
3.4 Sơ đồ chữ ký không thể phủ nhận Chaum-van Antwerpen.
-Sơ đồ này được Chaum-van Antwerpen giới thiệu lần đâu tiên vào năm 1989,
từ đó đến nay mỗi năm có khoảng hơn mười công trình nghiên cứu về chữ ký
không
thể phủ nhận nhưng đều dựa trên nên tảng chữ ký không thể phủ nhận của Chaum-
van Antwerpen. Do vậy, đầu tiên chúng ta sẽ nghiên cứu sơ đồ chữ ký không thể
phủ nhận
củaChaum-van Antwerpen.
3.4.1 Giao thức ký.
* Sinh khóa.
-Mỗi chủ thể lựa chọn một khóa bí mật và một khóa công khai tướng ứng như
các bước dưới đây:
+Bước 1: Lựa chọn một số nguyên tố ngẫu nhiên p = 2q+1 (q cũng là sốnguyên
tố)
+Bước 2: Lựa chọn phần tử sinh α cho nhóm con bậc q (α ∈ Z*p)
Tiếp theo lựa chọn phần tử β∈Z*p,Z, tính α = β
( p−1) / qmod p .
Nếu α =1 thì quay lại (a).
+Bước 3: Lựa chọn một số nguyên a∈{1, 2,3,..., q −1}, tính y =αamod p
Khóa công khai là (p,α,y), khóa bí mật là a.
3.4.2Thuật toán ký.
-A ký một thông điệp m mà B có thể xác nhận chữ ký đó với sự cộng tác của A.
A: s = ma mod p ,slà chữ ký của A trên m.
s =mamod p
3.4.3 Giao thức kiểm thử.
+Bước 1: B chọn ngẫu nhiên 2 số nguyên x1 ,x2∈1, 2,3,.., p −1} sau đó tính
z = sx1
yx2
(mod p) và gửi z cho A.
+Bước 2: A tính w=(z)a-1
mod p ( aa−1
=1mod p ) sau đó gửi w cho B.
+Bước 3: B tính w' = mx1
αx2
mod p , B chấp nhận s là chữ kí của A trên m nếu w =
w' .
-Sau khi Bình và An thực hiện xong giao thức này thì Bình sẽ tin là An đã kí thông
điệp này. Bình muốn thuyết phục Chi, do đó Bình đưa ra một bản sao của giao
thức. Tuy nhiên, Đức muốn thuyết phục Chi rằng người nào đó đã ký văn bản đó
chứ không phải là An. Đức tạo ra một bản sao giả của giao thức. Đầu tiên Đức
sinh ra thông điệp trong bước 1.Sau đó trong bước 3 Đức sinh ra w và sự chuyển
giao giả từ người khác trong bước 2.Kết thúc, Đức tạo ra thông điệp trong bước 2.
Với Chi, cả bản sao của Bình và Đức đều giống hệt nhau.
- Chi không thể bị thuyết phục về giá trị pháp lí của chữ ký trừ khi Chi thực thi
giao thức kiểm thử bởi chính cô ta.
-Tất nhiên, nếu Chi được xem trực tiếp Bình hoàn thành giao thức kiểm thử thì
cô ấy sẽ bị thuyết phục. Chi phải nhìn thấy những bước đã hoàn thành theo thứ tự
mà
Bình vừa làm xong.
Có thể có vấn đề với sơ đồ kí này, ta sẽ bàn đến trong phần những yếu điểm
của chữ ký không thể phủ nhận.
(p,α,y)
a z=sx1
yx2
(mod p) x1,x2
Người xác nhận
m S
Người ký
w=(za)
-1mod p
w=w’ w
’=m
x1α
x2mod p
Mô hình: Giao thức kiểm thử
(*)Tính hợp thức của giao thức kiểm thử.
Định lý1: Nếu s đúng là chữ ký của A trên m , tức s ≡ mamod p , thì việc B chấp
nhận s là chữ ký của A trên m theo giao thức kiểm thử là đúng.
Chứng minh:
-Giả sử 1:s≡mamod p⇒(s
a)
-1mod p =mmod p (1)
-Ta cũng có: y=αamod p⇒( y
a)
-1mod p =α mod p (2)
Mà w=(za)
-1mod p=(s
x1a)
-1.(y
x2a)
-1(mod p) (3)
Từ (1),(2),(3) ⇒w = mx1
αx2
(mod p) và theo giao thức kiểm thử, B chấp nhận s là
chữ ký của A trên m , và việc chấp nhận đó là đúng.
Định lý2:Nếus ≠ mamod p , tức s không phải là chữ ký của A trên m thì việc
B theo giao thức kiểm thử chấp nhận s là chữ ký của A trên m có thể xẩy ra với xác
suất 1/ q .
Chứng minh:
Giả sử s ≠ ma mod p .
Mỗi một z tương ứng với q cặp (x1,x2) .
-Do s, y là các phần tử của nhóm nhân G cấp q .Khi A nhận được z , A không có
cách gì để biết B đã dùng cặp (x1, x2) trong q cặp có thể có.
-Ta chứng minh rằng do s ≠ mamod p nên trong q cặp đó chỉ có 1 cặp thỏa mãn
đồng dư thức w = mx1
αx2
(mod p)
-Đặt z=αi,w=α
j,m=α
k,s=α
l,I,j,k,l∈ Zp
Vì α là phần tử sinh của G nên :
⇔
⇒ Định thức của hệ phương trình thứ 2 là:
D=l-ak (1) Do s ≠ ma mod p ⇒l − ak≠ 0(mod q) (2)
Từ (1),(2)⇒mỗi w∈G là câu trả lời đúng (theo giao thức kiểm thử) chỉ với
một cặp (x1, x2) trong q cặp có thể. Vì vậy nếu s ≡ mamod p thì xác suất để B chấp
thuận s là chữ kí của A trên m(theo giao thức) là bằng 1/ q (Điều phải chứng minh).
3.4.4 Giao thức chối bỏ.
A có thể từ chối một chữ ký đúng bằng các cách sau:
(1)Từ chối tham gia vào giao thức
(2) Cố tình làm sai trong giao thức kiểm thử.
(3) Tuyên bố rằng chữ kí là giả mạo mặc dù nó được xác minh một cách chính xác.
Các bước thực hiện:
Bước 1: B lấy khóa công khai của A ( p,α , y) , chọn ngẫu nhiên 2 số nguyên x1,
x2∈{1,2,3,..,q−1} tính z = sx1
yx2
mod p , sau đó gửi cho A.
Bước 2: A tính w=(za)
-1mod p , gửi w cho B.
Bước 3: B thử điều kiện w≡mx1
αx2
mod p
Bước 4: B chọn ngẫu nhiên 2 số nguyên tố x1 ', x2 '∈{1,2,3,..,q−1 }tính z ' = sx1'
yx2
'mod p sau đó gửi cho z ' cho A.
Bước 5: A tính w'= (z 'a)
-1mod p , sau đó gửi w' cho B.
Bước 6: B thử điều kiện w'=mx1
αx2'
mod p .
Bước 7: B tính c = (wα −x2
)x1'
modp, c' = (w'α −x2 '
)x1
mod p
=>Nếu c = c'B kết luận s là chữ ký giả mạo, nếu không thì s là chữ ký đúng, Acố
tình chối bỏ.
(p,α,y)
a x1,x2∈ Z*p
z=sx1
yx2
(mod p)
w=(za)
-1 mod p
Kiểm tra
w=mx1
αx2
mod p
x1’,x2
’∈Zp*
z’=sx1’
yx2’
(mod p)
w’=(z’a)
-1 mod p Kiểm tra
w=mx1
αx2
mod p
c = (wα −x2
)x1'
mod p
Nếu c=c’ =>Giả mạo
c' = (w'α −x2 '
)x1
mod p
Mô hình:Giao thức chối bỏ
Người ký Người xác nhận
(*)Tính hợp thức của giao thức chối bỏ.
Định lý 3:
-Nếu s ≠ mamod p và cả A, B điều tuân theo giao thức chối bỏ, thì c = c' tức giao
thức cho kết quả chính xác.
-Nếu s ≠ mamod p,A và B đều tuân theo giao thức và có w≠ m
x1α
x2(mod p) và
w'≠mx1
α' x2'
(mod p).
-Khi đó đồng dư thức (wα −x2
)x1'
= (w'α −x2 '
)x1
(mod p) đúng với xác suất
1/q, tức nếu y đúng là chữ ký của A trên x, thì theo giao thức , B có thể kết luận
rằng
nó là giả mạo (một cách sai lầm) với xác suất 1/q.
*Chứng minh:
-Giả sử s ≠ ma mod p , và A, B cùng thực hiện giao thức chối bỏ. Do s không là chữ
ký của A trên m nên B sẽ kiểm thử đúng các bất đồng dư thức trong các bước 3, 6
của giao thức.
-Vì y =αamod p nên:
c= (wα−x2
)x1'
mod p
=((sx1
yx2
)a)
-1α
x2)
x1'(mod p)= (s
a)
-1x1 x1'(y
a)
-1 x2 x1’α
-x2x1’mod
p
= (sa)
-1x1 x1’mod p
Tương tự ta có: c’=(wα−x2
)x1'
mod p= (sa)
-1x1 x1’mod p
- Như vậy, đồng dư thức ở điểm 7 của giao thức được kiểm nghiệm đúng và kết
luận s là chữ ký giả mạo của A trên x là chính xác, không thể bác bỏ được.
-Ta giả thiết s = ma mod p và A, B cùng thực hiện giao thức chối bỏ.
Đặt m0= w 1/x1
−α-x2/x1
(mod p) ta có:
m0a= w
a/x1α
-x2/x1= (m
x1 α
x2)
a/x1 α
-ax2/x1=m
a=s(mod p)
-Theo định lý 2, B có thể chấp nhận s là chữ ký của A trên m0, tức là đồng dư thức
w' ≡m0 x1’
α x2’
mod p với xác suất 1/q. Nhưng đồng dư thức đó tương đương với
đồng dư thức (wα −x2
)x1'
= (w'α −x2 '
)x1
(mod p).
=>Tức đồng dư thức này cũng có thể xảy ra với xác suất 1/q. Định lý được chứng
minh.