CHỮ KÝ KHÔNG THỂ PHỦ NHẬN 1. Khái niệm chữ ký không thể phủ nhận Chữ ký số, không giống như chữ ký trên giấy, nó có thể dễ dàng bị sao chép một cách chính xác. Thuộc tính này có thể có lợi cho những ứng dụng cần sự phổ biến rộng rãi của các thông báo cùng với khóa công khai, khi mà càng nhiều bản sao chép được phát ra càng tốt. Tuy nhiên, nó không phù hợp với nhiều ứng dụng khác. Ví dụ ứng dụng chữ ký điện tử thay thế cho ứng dụng mang tính cá nhân hoặc nhạy cảm như bản cam kết viết tay hoặc bằng miệng. Trong những trường hợp này, sự phổ biến của bản sao chép có thể làm cho người dùng không hợp lệ thực hiện các hành vi như tống tiền hoặc gián điệp. Người nhận của những cam kết này có thể chắc chắn rằng người ký cam kết này sau này không thể chối bỏ nó, nhưng người nhận không thể đưa ra bản cam kết này cho bất kỳ ai khác khi không có sự đồng thuận của người ký. Chữ ký không thể chối bỏ phù hợp với các ứng dụng như ở trên. Chữ ký không thể chối bỏ, giống như chữ ký số thông thường, là một số được đưa ra bởi người ký, phụ thuộc vào khóa bí mật của người ký và thông điệp cần ký. Tuy nhiên, không giống như chữ ký số thông thường, kiểm tra chữ ký không thể chối bỏ phải có sự hợp tác của người ký. Tính hợp lệ của chữ ký không thể chối bỏ có thể được kiểm tra (bởi bất kỳ ai) bằng cách đưa ra các giá trị hỏi (challenge) cho người ký, và người ký sẽ đưa ra các giá trị đáp lại (response). Nếu kiểm tra là sai, có hai trường hợp xảy ra: (a) chữ ký là không hợp lệ hoặc (b) người ký cố tình đưa ra các giá trị đáp sai để cố tình chối bỏ một chữ ký do anh ta ký. Tuy nhiên cho dù người ký có máy tính với năng lực tính toán vô hạn, người kiểm thử chữ ký có thể phân biệt được trường hợp (a) và (b) với độ chắc chắn cao bằng giao thức hỏi đáp thứ hai. 1.1. Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen Sơ đồ chữ ký không thể chối bỏ được David Chaum và Hans van Antwerpen đề xuất năm 1989. Sơ đồ gồm 3 phần: thuật toán ký, giao thức kiểm thử và giao thức chối bỏ. 1. Chuẩn bị các tham số + Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải, đồng thời thỏa mãn điều kiện p = 2 q + 1, q cũng là nguyên tố. + Chọn g ∈ là phần tử có cấp q. + Chọn 1 ≤ a ≤ q – 1, tính h = ga mod p. + G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của
Trang 1CHỮ KÝ KHÔNG THỂ PHỦ NHẬN
1 Khái niệm chữ ký không thể phủ nhận
Chữ ký số, không giống như chữ ký trên giấy, nó có thể dễ dàng bị sao chép một cách chính xác Thuộc tính này có thể có lợi cho những ứng dụng cần sự phổ biến rộng rãi của các thông báo cùng với khóa công khai, khi mà càng nhiều bản sao chép được phát ra càng tốt Tuy nhiên,
nó không phù hợp với nhiều ứng dụng khác Ví dụ ứng dụng chữ ký điện tử thay thế cho ứng dụng mang tính cá nhân hoặc nhạy cảm như bản cam kết viết tay hoặc bằng miệng Trong những trường hợp này, sự phổ biến của bản sao chép có thể làm cho người dùng không hợp lệ thực hiện các hành vi như tống tiền hoặc gián điệp Người nhận của những cam kết này có thể chắc chắn rằng người ký cam kết này sau này không thể chối bỏ nó, nhưng người nhận không thể đưa ra bản cam kết này cho bất kỳ ai khác khi không có sự đồng thuận của người ký Chữ ký không thể chối bỏ phù hợp với các ứng dụng như ở trên Chữ ký không thể chối bỏ, giống như chữ ký số thông thường, là một số được đưa ra bởi người ký, phụ thuộc vào khóa bí mật của người ký và thông điệp cần ký Tuy nhiên, không giống như chữ ký số thông thường, kiểm tra chữ ký không thể chối bỏ phải có sự hợp tác của người ký
Tính hợp lệ của chữ ký không thể chối bỏ có thể được kiểm tra (bởi bất kỳ ai) bằng cách đưa
ra các giá trị hỏi (challenge) cho người ký, và người ký sẽ đưa ra các giá trị đáp lại (response) Nếu kiểm tra là sai, có hai trường hợp xảy ra: (a) chữ ký là không hợp lệ hoặc (b) người ký cố tình đưa ra các giá trị đáp sai để cố tình chối bỏ một chữ ký do anh ta ký Tuy nhiên cho dù người ký có máy tính với năng lực tính toán vô hạn, người kiểm thử chữ ký có thể phân biệt được trường hợp (a) và (b) với độ chắc chắn cao bằng giao thức hỏi đáp thứ hai
1.1 Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen
Sơ đồ chữ ký không thể chối bỏ được David Chaum và Hans van Antwerpen đề xuất năm
1989 Sơ đồ gồm 3 phần: thuật toán ký, giao thức kiểm thử và giao thức chối bỏ
1/ Chuẩn bị các tham số
mãn điều kiện p = 2 * q + 1, q cũng là nguyên tố
+ Chọn g ∈ là phần tử có cấp q
+ Chọn 1 ≤ a ≤ q – 1, tính h = ga mod p
+ G là nhóm con (theo phép nhân) cấp q sinh ra bởi g của
+ Tập hữu hạn các văn bản có thể P, tập hữu hạn các chữ ký có thể A
Trang 2+ P = A = G
+ Khóa công khai được định nghĩa pk = ( p, g, h ), khóa bí mật sk = a
2/ Thuật toán ký
Dùng khóa bí mật sk ở trên để ký lên thông điệp x, chữ ký là:
y = sigsk( x ) = xa mod p
3/ Giao thức kiểm thử
Bob muốn xác thực chữ ký y trên thông điệp x được ký bởi Alice Giao thức được thực hiện như sau:
- Bob chọn ngẫu nhiên e1, e2∈
4/ Giao thức chối bỏ chữ ký
- Bob chọn ngẫu nhiên e1, e2 ∈
- Bob chọn ngẫu nhiên f1, f2 ∈
Trang 3- Alice tính D = mod p và gửi cho Bob
- Bob kết luận chữ ký y thực sự là giả mạo nếu:
mod p
1.2 Ví dụ minh họa
Trong ví dụ này, Alice là người ký, Bob là người cần xin chữ ký
1/ Chuẩn bị các tham số
Alice chuẩn bị các tham số cho việc ký
- Chọn số nguyên tố p = 59747 = 2 * q + 1, q = 29873 cũng là số nguyên tố
- G là nhóm nhân con của cấp q Chọn phần tử sinh của nhóm G là g = 3
- Đặt P = A = G, K = {(p, g, a, h ): a ∈ , h ≡ ga mod p }
2/ Thuật toán ký
Dùng khóa bí mật sk = a để ký lên x = 229
Chữ ký thu được là y = sigsk (x) = xa mod p = 22911mod 59747 = 30179
3/ Giao thức kiểm thử chữ ký
Dùng khóa công khai pk = ( p, g, h ) = ( 59747, 3, 57653 )
- Bob chọn ngẫu nhiên e1 = 11, e2 = 15 ∈
Trang 4- Bob kiểm tra điều kiện d ≡ mod p
→ Bob kết luận chữ ký là đúng
4/ Giao thức chối bỏ chữ ký
Giả sử Bob gửi tài liệu x = 229, với chữ ký y = 30178
- Bob chọn ngẫu nhiên e1 = 11, e2 = 15 ∈
=> Bob thực hiện tiếp
Bob chọn ngẫu nhiên f1 = 17, f2 = 19 ∈
- Bob kiểm tra:
(dg-e2)f1≡ (Dg-f2)e1 (mod p)
Có (dg-e2)f1 mod p = (33692 * 3-15)17 (mod 59747) = 40635
(Dg-f2)e1 ( mod p ) = (33028 * 3-19)11 ( mod 59747 ) = 40635
Trang 5 (dg-e2)f1≡ (Dg-f2)e1 (mod p)
Ví dụ này được trình bày với mục đích minh họa, nên chỉ sử dụng các số nguyên tố p, q nhỏ Trong thực tế ứng dụng, để đảm bảo an toàn, người ta dùng các số p, q rất lớn, chẳng hạn các số
có biểu diễn nhị phân cỡ 512 bits Khi đó ta có q ≥ 2512 tức là 1/q ≤ 2−512, một xác suất rất bé, có thể bỏ qua; và vì vậy, các yêu cầu đối với các giao thức kiểm thử và giao thức chối bỏ như trong phần đặt vấn đề có thể xem như là được thỏa mãn
1.3 Một số đánh giá về sơ đồ
1.3.1 Độ an toàn của chữ ký
Độ an toàn của hệ thống phụ thuộc vào bài toán logarit rời rạc do khóa bí mật sk = a được tính từ công thức h = ga mod p => a = loggh mod p, trong đó g, h, p là công khai Đây chính là vấn đề của bài toán logarit rời rạc khó giải
1.3.2 Chứng minh tính đúng đắn của giao thức xác thực
1/ Kết luận 1
chữ ký của Alice trên x theo giao thức kiểm thử là đúng
Chứng minh
Giả sử y là chữ ký hợp lệ trên x Bắt đầu từ giá trị d mà Bob nhận từ Alice:
h ≡ ga mod p => ≡ g mod p (3)
Từ (1) (2) (3) => d ≡ xe1ge2 mod p là điều kiện đúng để Bob chấp nhận một chữ ký là đúng
2/ Kết luận 2
theo giao thức kiểm thử, chấp nhận chữ ký y là chữ ký của Alice trên x, có thể xảy ra với xác suất là 1/q
Chứng minh
Trang 6- Giá trị c mà Alice nhận được quyết định bởi sự lựa chọn 2 giá trị e1, e2
- y, h là phần tử trong G cấp q
=> mỗi giá trị c tương ứng với q cặp (e1,e2 )
- Khi Alice nhận được c từ Bob, Alice không có cách gì để biết là Bob đã dùng cặp ( e1, e2)
mà Alice trả lại cho Bob tương ứng với duy nhất 1 trong q cặp ( e1, e2 ), tức là trong q cặp đó chỉ
có đúng một cặp ( e1, e2) thỏa mãn đồng dư thức d ≡ xe1ge2 (mod p) Thật vậy:
+ g là phần tử sinh của nhóm G theo modulo q Vì thế chúng ta có thể viết lại như sau:
c = gi mod q, d = gj mod q, x = gk mod q, y = gl mod q trong đó i, j, k, l ϵ Zq
+ Kết hợp với
c ≡ ye1he2 (mod p)
(I)
Do giả thiết y ≠ xa( mod p )
=> l ≢ ak ( mod q )
=> Định thức của ma trận hệ số của (I) với các ẩn số e1, e2 là khác 0 => (I) có nghiệm duy nhất => bất kỳ d ∈ G là giá trị đáp ( response ) của chỉ một trong q cặp giá trị có thể ( e1, e2 )
=> Xác suất để Alice đưa ra giá trị đáp đúng cho Bob trong quá trình xác thực chữ ký là 1/q Nhận định đưa ra đã được chứng minh
1.3.3 Chứng minh tính đúng đắn của giao thức chối bỏ
1/ Kết luận 1
(Dg-f2)e1 (mod p) tức giao thức cho kết quả chính xác
Chứng minh
Trang 7Giả sử y ≠ xa (mod p), Alice và Bob cùng thực hiện giao thức chối bỏ Do y không là chữ ký của Alice trên x nên Bob sẽ kiểm thử đúng các bất đồng dư thức trong các bước 3 và 6 của giao thức Vì h ≡ ga(mod p), nên ta có:
≡ ( mod p )
Như vậy, đồng dư thức ở bước 7 của giao thức được nghiệm đúng, và kết luận y là chữ ký giả mạo của A trên x là chính xác, không thể bác bỏ được
2/ Kết luận 2
Một điều thú vị có thể xảy ra khi Alice cố tình muốn chối bỏ một chữ ký của mình bằng cách không tuân theo giao thức hỏi – đáp một cách trung thực Alice có thể làm cho Bob nghĩ rằng chữ ký thực sự là giả mạo trong khi không phải như thế Dưới đây xin nêu ra 1 kết luận như sau: Xác suất để Alice chối bỏ một chữ ký đúng của anh ta là 1/q
Chứng minh
Nếu Alice cố gắng lừa Bob để Bob nghĩ rằng chữ ký đó là giả mạo, có nghĩa là những điều kiện sau đây đồng thời xảy ra:
y ≡ xa mod p (1)
d ≢ xe1ge2 mod p (2)
(dg -e2 ) f1 ≡ (Dg -f2 ) e1 (mod p) (4)
Điều kiện (4) có thể được viết lại như sau:
D ≡ dof1gf2 (mod p) trong đó x = do = d1/e1g-e2/e1 mod p mod p (5)
Như trong phần trình bày trước, chúng ta kết luận rằng y là chữ ký hợp lệ của do với xác suất
1 – 1/q (do xác suất của việc chấp nhận chữ ký y ≠ xamod p là 1/q)
Do y là chữ ký hợp lệ của x, x = do => (2) x ≢ d1/e1g-e2/e1 mod p
Trang 8Lại có do = d1/e1g-e2/e1 mod p
Từ 2 iều trên => x điều trên => x ≠ do Điều này có nghĩa là Alice làm cho Bod nghĩ rằng y là giả mạo với xác suất 1/q
2 Các hình thức tấn công chữ ký không thể phủ nhận
Trong [8], Markus Jakobsson trình bày hai hình thức tấn công chữ ký không thể chối bỏ như sau:
2.1 Tống tiền người ký
Giả sử Alice ký chữ ký y trên thông điệp x, nhưng không muốn để lộ thông tin về x cho các đối thủ của cô biết Người tống tiền Eve bằng cách nào đó, tìm được (x, y) và quyết định tống tiền Alice Eve thực hiện:
- Bước 1: Eve thông báo cho các đối thủ của Alice biết cô ta có một số thông tin mà họ cần
Cô ta đưa cho mỗi đối thủ {Enemyi}( i = 1 – n ) cặp giá trị {y, h} và yêu cầu mỗi đối thủ tạo hai
số bí mật ai, bi sau đó tính bí mật ci = ya1hbj và đưa giá trị ci cho Eve
- Bước 2: Eve cũng tạo bí mật cặp (a0, b0 ), tính c0 = yaohbo
thông điệp x’ bất kỳ, thu được chữ ký y’ Thay vì xác thực chữ ký x’, Eve xác thực chữ ký trên x Alice không thể biết được điều này bởi vì cặp giá trị ngẫu nhiêu trong giao thức hỏi đáp là do người xác thực chữ ký thực hiện Sau khi gửi giá trị c cho Alice, Eve nhận được d = xe1ge2 trong
- Bước 4: Alice yêu cầu các đối thủ của Alice đưa cho cô ta cặp giá trị (ai, bi) Eve thông báo cho Alice biết cô ta đã có được thông điệp x và có thể cô ta sẽ nói với các đối thủ của Alice Nếu Alice không thực hiện theo những gì Eve nói, Eve sẽ thực hiện bước 5 như sau:
có thể thấy cặp (ai, bi) được dùng trong tập {ai}{bi} dùng để xác thực chữ ký Vì thế họ tin rằng Alice đã kí lên thông điệp x
2.2 Nhiều người cùng xác thực chữ ký mà người ký không biết
Eve là người đứng ra xác thực, cô ta tính c = từ các giá trị ci = yaihbi mà những người muốn xác thực chữ ký gửi đến cho cô ta Eve gửi c cho Alice
Trang 9Sau khi nhận được d từ Alice, Eve gửi ( , , d) cho những người vừa gửi ci đến cho Eve Tất cả những người này đã xác thực được chữ ký mà Alice không hề hay biết Thật vậy:
rằng (ai, bi) đã được sử dụng trong giao thức kiểm tra chữ ký, và chữ ký được kiểm tra như là liên hệ trực tiếp với Alice
3 Ứng dụng chữ ký không thể phủ nhận
3.1 Ứng dụng trong thẻ chứng minh thư điện tử
Bởi vì quá trình xác thực một chữ ký cần sự cộng tác của người ký, chữ ký không thể chối bỏ phù hợp với ứng dụng chứng minh thư điện tử Ở Bỉ người ta đã sử dụng chứng minh thư điện tử dựa trên chữ ký không thể chối bỏ [6] Một ví dụ minh họa, người A mua một vài hàng hóa qua mạng Internet và được chuyển về bưu điện địa phương cho A A ký vào văn bản online sử dụng chữ ký không thể chối bỏ, khi A tới bưu điện để lấy hàng hóa, A xác thực rằng anh ta chính là chủ sở hữu của những hàng hóa đó
3.2 Ứng dụng trong ký hợp đồng qua điện thoại
Một ví dụ khác được minh họa trong [11] Bài báo trình bày về sự không chối cãi của cuộc hội thoại VoIP ( Voice – over –IP ) Do sự sử dụng rộng rãi của VoIP, sẽ là một sự tiện lợi nếu chúng ta ghi âm cuộc hội thoại và coi như 1 bản hợp đồng giữa hai tổ chức Một bản hợp đồng miệng có tính ràng buộc như một bản hợp đồng trên giấy, tuy nhiên hợp đồng trên giấy thường được sử dụng rộng rãi hơn bởi vì có chữ ký của hai bên nên sẽ dễ dàng xử lý khi có tranh chấp
Vì thế nếu chúng ta ghi âm cuộc hội thoại dưới dạng số và ký trên nó, thì đoạn ghi âm có thể được sử dụng như bằng chứng nếu có tranh chấp Khi đó nó có sức thuyết phục không kém gì hợp đồng trên giấy
Ở đây, chữ ký không thể chối bỏ là một sự lựa chọn tốt, bởi vì nó chỉ liên quan đến hai tổ chức, không cần phát tán ra bên ngoài Khi đó mỗi tổ chức dùng khóa bí mật của mình ký lên đoạn ghi âm Khi đó đoạn hội thoại cùng với 2 chữ ký của 2 tổ chức lên đoạn hội thoại chính là hợp đồng Bởi vì đoạn hội thoại đã được ký lên, không ai có thể thay đổi nó hoặc tạo ra một chữ
ký giả