Tải bản đầy đủ (.doc) (9 trang)

TIỂU LUẬN AN NINH CƠ SỞ DỮ LIỆU: CHỮ KÝ KHÔNG THỂ PHỦ NHẬN

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (182.96 KB, 9 trang )

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 Z
p
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 = g


a
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
+ 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 = sig
sk
( x ) = x
a
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 e
1
, e
2

- Bob tính c = mod p và gửi cho Alice.
- Alice tính d = mod p và gửi cho Bob.
- Bob chấp nhận y là chữ ký đúng trên x khi và chỉ khi d ≡ mod p
4/. Giao thức chối bỏ chữ ký
- Bob chọn ngẫu nhiên e
1
, e
2


- Bob tính c = mod p và gửi cho Alice.
- Alice tính d = mod p và gửi cho Bob.
- Bob kiểm tra d ≢ mod p
- Bob chọn ngẫu nhiên f
1
, f
2

- Bob tính C = mod p và gửi cho Alice
- Alice tính D = mod p và gửi cho Bob
- Bob kiểm tra D ≢ mod p
- 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 ≡ g
a
mod p }
Chọn a = 11, h = 3
11
mod 59747 = 57653
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 = sig
sk
(x) = x

a
mod p = 229
11
mod 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 e
1
= 11, e
2
= 15 ∈
- Bob tính c = mod p = 30179
11
57653
15
mod 59747 = 55601
- Alice tính d = mod p = mod 59747 = 43319
- Bob kiểm tra điều kiện d ≡ mod p
Có mod p = 229
11
3
15
mod 59747 = 43319 ≡ 43319 mod 59747
→ 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 tính c = mod p = 30178
11
57653

15
mod 59747 = 19071
- Alice tính d = mod p = mod 59747 = 33692
- Bob kiểm tra điều kiện d ≡ mod p
Có = 229
11
3
15
mod 59747 = 43319 ≠ 33692 mod 59747
=> Bob thực hiện tiếp
Bob chọn ngẫu nhiên f1 = 17, f2 = 19 ∈
- Bob tính C = mod p = 30178
17
57653
19
mod 59747 = 9217 và gửi cho Alice
- Alice tính D = mod p = mod 59747 = 33028 và gửi cho Bob
- Bob kiểm tra D ≢ mod p
- 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
 (dg
-e2
)
f1
≡ (Dg
-f2
)
e1
(mod p)
 Bob kết luận chữ ký là giả mạo
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 ≥ 2
512

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 = g
a
mod p => a = log
g
h 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
Nếu y đúng là chữ ký của Alice trên x ( tức là y ≡ x
a
mod p ), thì việc Bob chấp nhận y là
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:
d = mod p = mod p (1)
- Lại có y ≡ x
a
mod p => ≡ x mod p (2)
h ≡ g
a
mod p => ≡ g mod p (3)
Từ (1) (2) (3) => d ≡ x

e1
g
e2
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
Trong trường hợp y ≠ x
a
(mod p), tức y không phải là chữ ký của Alice trên x thì việc Bob,
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
- 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)
nào trong q cặp có thể đó. Chúng ta sẽ chứng minh rằng, nếu y ≠ x
a
mod p, bất kỳ giá trị d nào
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 ≡ x
e1
g
e2
(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 = g
i
mod q, d = g
j

mod q, x = g
k
mod q, y = g
l
mod q trong đó i, j, k, l ϵ Zq.
+ Kết hợp với
c ≡ y
e1
h
e2
(mod p)
d ≡ x
e1
g
e2
(mod p)
(I)

Do giả thiết y ≠ x
a
( 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
 Nếu y ≠ x
a

mod p và cả Alice và Bob đều tuân theo giao thức chối bỏ, thì (dg
-e2
)
f1

(Dg
-f2
)
e1
(mod p) tức giao thức cho kết quả chính xác.
Chứng minh
Giả sử y ≠ x
a
(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 ≡ g
a
(mod p), nên ta có:
(dg
-e2
)
f1
≡ (mod p)
≡ ( mod p )
≡ ( mod p )
Tương tự ta cũng có: (Dg
-f2
)
e1
≡ ( 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 ≡ x
a
mod p (1)
d ≢ x
e1
g
e2
mod p (2)
D ≢ x
f1
g
f2
mod p (3)
(dg
-e2
)
f1
≡ (Dg
-f2
)

e1
(mod p) (4)
Điều kiện (4) có thể được viết lại như sau:
D ≡ d
o
f1
g
f2
(mod p) trong đó x = do = d
1/e1
g
-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 d
o
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 ≠ x
a
mod p là 1/q)
Do y là chữ ký hợp lệ của x, x = d
o
=> (2)  x ≢ d
1/e1
g
-e2/e1
mod p
Lại có d
o
= d
1/e1

g
-e2/e1
mod p
Từ 2 điều trên => x ≠ d
o
. Đ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ủ {Enemy
i
}( 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 c
i
= y
a1
h
bj
và đưa giá trị c
i
cho Eve.
- Bước 2: Eve cũng tạo bí mật cặp (a
0
, b

0
), tính c
0
= y
ao
h
bo
.
- Bước 3: Eve tính c = . Sau đó, Eve bằng cách nào đó yêu cầu Alice ký lên một
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 = x
e1
g
e2
trong
đó e1 = và e2 = ( vào thời điểm này, Eve không biết các giá trị a
i
, b
i
).
- Bước 4: Alice yêu cầu các đối thủ của Alice đưa cho cô ta cặp giá trị (a
i
, b
i
). 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:
Bước 5: Ở bước này, Eve đưa ( ) cho tất cả các đối thủ . Khi đó {Enemy}
i

có thể thấy cặp (a
i
, b
i
) được dùng trong tập {a
i
}{b
i
} 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ị c
i
= y
ai
h
bi
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.
Sau khi nhận được d từ Alice, Eve gửi ( , , d) cho những người vừa gửi c
i
đế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:
c = = = y
=> e1 = và e2 = . Khi đó tất cả những người gửi ci cho Eve kiểm tra được
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ả.

×