Chương 9
Các sơ đồ định danh
9.1 Giới thiệu.
Các k thuật mật mã cho phép nhiu i toán dường như không thể gii
được thành thgii được. Một bài toán như vậy là i toán xây dng các
đồ định danh mật. Trong nhiều trường hợp cần thiết phải chứng minh”
bằng phương tin điện tử danh tính của ai đó. Dưới đây là một số trường hợp
điển hình:
1. Để rút tiền từ một máy thủ quỹ tự động (ATM), ta dùng thcùng với số
định danh cá nhân (PIN) có 4 chữ số.
2. Để trả tiền cho các cuộc mua bán trên đin thoại dùng th tín dụng, tất cả
đều cần số thẻ tín dụng (và thời hạn dùng thẻ)
3. Để trả tiền cho các cú gọi điện thoại đường dài (dùng thgọi) chỉ cần s
điện thoại và PIN 4 chsố.
4. Để vào mạng máy tính, cần tên hợp lệ của người sdụng và mật khu
tương ứng.
Thực tế, c kiểu đy tng không được thực hiện theo ch an toàn.
Trong các giao thức thực hiện tn điện thoại, bất kì knghe trộm nào cũng
thể dùng thông tin định danh cho mục đích riêng ca mình. Nhng người
này cũng có thể người nhận thông tin. Các mưu đồ xấu trên thtín dụng
đều hoạt động theo cách này. ThATM an toàn hơn một ct song vẫn còn
những điểm yếu. Ví dụ, ai đó điều khiển đường y liên lạc thể nhận
được tất cả c thông tin được mã hoá trên di t tính ca thẻ cũng như
thông tin về PIN. Điu này cho phép một kẻ mạo danh tiếp cận vào tài khon
nhà ng. Cuối cùng, việc chui vào mng máy tính từ xa cũng là vn đề
nghiêm trng do các ID và mật khẩu của người sdụng được truyền trên
mạng ở dạng không mã. Như vậy, họ là những vùng dễ bị tổn thương đối vi
những người điều khin mạng máy tính.
Mục đích của đồ định danh là: ai đó nghe” như Alice tư ng
danh vi Bob không thể tự bịa đặt mình là Alice. Ngoài ra, chúng ta s cố
gắng giảm xác suất để chính Bob ththmạo nhận là Alice sau khi ta
t xưng danh với anh ta. i cách khác, Alice muốn có khả năng chứng
minh danh tính của mình bng phương tiện điện t mà kng cần đưa ra
chút thông tin nào hết về danh tính của mình.
Một vài sơ đồ định danh như vậy đã được nêu ra. Một mục đích thực
tế là tìm một đ đ đơn giản để th thực hin được trên th thông
minh, đặc biệt là thtín dụng gn thêm một chíp khả năng thực hiện c
tính toán shọc. Vì thế, thẻ đòi hỏi cả khối lượng tính toán lẫn bộ nhớ nhỏ
đến mức thể. Thẻ như vậy an toàn hơn các thẻ ATM hiện tại. Tuy nhiên,
điều quan trọng cần cý là san toàn đặc biệt” liên quan đến người điều
khiển đường dây thông tin. Vì là thđể chứng minh danh tính nên không
cần bảo vệ chống mất thẻ. Song vẫn cn thiết PIN để biết ai là ch
nhân thực sự của thẻ.
Trong các phần sau sẽ mô tả một số sơ đồ định danh thông dụng nhất.
Tuy nhiên, trước hết hãy xét một đồ rất đơn giản dựa trên hthống mã
khoá riêng bất kì, chẳng hạn như DES. Giao thức mô tả trên hình 9.1 được
gọi là giao thc yêu cu và trlời”, trong đó giả thiết rằng, Alice đang tự
xưng danh với Bob và Bob chia nhau một khoá mật chung K, khoá này
chỉ là hàm mã eK.
Hình 9.1: Giao thức Yêu cầu và đáp ứng:
1. Bob chọn một yêu cu x- một chuỗi ngẫu nhiên 64 bit. Bob gửi x cho
Alice
2. Alice tính y = eK(x)
gửi nó cho Bob.
3. Bob tính:
y’ = eK(x)
và xác minh y= y.
Ta s minh hoạ giao thức này bng dụ nhỏ dưới dây.
Ví dụ 9.1
Giả sử Alice và Bob dùng m mã m luỹ thừa tính modulo:
eK(x) = x102379 mod 167653.
Giả sử yêu cầu của Bob x = 77835. Khi đó Alice sẽ trả lời với y = 100369.
Mọi sơ đồ định danh thực sđều là các giao thc Yêu cầu đáp
ứng” song các sơ đồ hiệu quả nhất li không yêu cầu các khoá chia sẻ (dùng
chung). ý tưởng này sẽ được tiếp tục trong phn còn lại ca chương này.
9.2 Sơ đồ định danh Schnorr.
Ta bắt đầu bằng việc tả sơ đồ định danh Schnorr - một trong
những sơ đồ định danh thực tiễn đáng cý nhất. đồ y đòi hỏi một
người được uỷ quyền có tín nhiệm mà ta hiu TA. Ta schọn các tham
số cho sơ đồ như sau:
1. p s nguyên t lớn (tức p 2512) sao cho i toán logarithm ri rạc
trong Zp là không giải được.
2. q là ước nguyên tlớn của p-1 (tức q 2140).
 *
p
Z bậc q (có thể tính như (p-1)
) đều được công khai.
TA s đóng một dấu xác nhận cho Alice. Khi Alice muốn nhận được
một dấu xác thực từ TA, phải tiến nh các bước như trên hình 9.2. o
thời điểm cuối, khi Alice muốn chứng minh danh tính của trước Bob, cô
thực hiện giao thức như trên hình 9.3.
Như đã nêu trên, t một tham smt. Mục đích của ngăn kẻ
mạo danh - chng hạn Olga - khỏi phỏng đoán yêu cu r ca Bob. Ví dụ, nếu
Olga đoán đúng giá trị r, cô ta có thể chọn giá trị bất kỳ cho y và tính
= yv mod p
Cô sẽ đưa cho Bob như trong bước 1 và sau đó khi nhận được yêu cu r, cô
scung cấp giá trị y đã chọn sẵn. Khi đó sđược Bob xác minh như trong
bước 6.
Hình 9.2 Cấp dấu xác nhận cho Alice.
1. TA thiết lập danh tính của Alice bằng cách lập giấy chứng minh thông
thường chẳng hạn như xác nhận ngày sinh, hchiếu ... Sau đó TA thiết
lập một chuỗi ID (Alice) chứa các thông tin định danh của cô ta.
2. Alice bí mật chọn mt số mũ ngẫu nhiên a, 0 a q-1. Alice tính:
v = -a mod p
và gửi v cho TA
3. TA tạo ra một chữ kí:
s =sigTA(I,v).
Dấu xác nhận
C(Alice) = (ID(Alice),v,s)
và đưa cho Alice
Xác suất để Olga phỏng đoán đúng r là 2-t nếu r được Bob chọn ngẫu nhiên.
Như vậy, t = 40 là giá tr hợp với hầu hết các ng dụng, (tuy nhiên, cý
rằng, Bob sẽ chọn r ngẫu nhiên mỗi lần Alice ng danh với anh ta. Nếu
Bob luôn dùng cùng một r thì Olga th mạo danh Alice bằng pơng
pháp mô tở trên).
hai vn đề nảy sinh trong giao thức xác minh. Trước hết, chữ kí s
chứng minh tính hợp lệ của dấu xác nhân ca Alice. Nvậy, Bob xác minh
chký của TA trên dấu xác nhận của Alice để thuyết phục chính bản tn
mình rng dấu xác nhn là xác thực. Đây là xác nhn tương tnhư cách đã
dùng ở chương 8.
Vấn đề thứ hai của giao thức liên quan đến mã smật a. Gtra
chức năng tương tự như PIN để thuyết phục Bob rằng, người thực hin giao
thức định danh quả thực là Alice. Tuy nhiên có một khác nhau quan trọng so
với PIN là: trong giao thức định danh, a không b lộ. Thay vào đó, Alice
(hay chính xác hơn thẻ thông minh của cô) chứng minh rằng, (thẻ) biết
giá tra trong bước 5 bằng cách tính y trong khi trả li đòi hỏi r do Bob đưa
ra. a không blộ nên kĩ thuật này gọi là chng minh kng tiết lthông
tin.
Hình 9.3. sơ đồ định danh Schnorr
1. Alice chọn một số ngẫu nhiên k, 0 k q-1 và tính:
= k mod p.
2. Alice gửi dấu xác nhận của mình cho C(Alice) = (ID(Alice),v,s) và cho
Bob.
3. Bob xác minh chữ kí của TA bằng cách kiểm tra xem có thoả mãn
ver(ID(Alice),v,s) = true hay không.
4. Bob chọn một sngẫu nhiên r, 1 r 2t đưa nó cho Alice.
5. Alice tính:
y = k + ar mod q
và đưa y cho Bob.
6. Bob xác minh xem có thomãn đồng dư thức sau không
yvr (mod p).
Các đồng dư sau đây chứng minh rằng Alice khả năng chứng minh danh
tính của cô cho Bob:
yvr k+arvr (mod p)
k+arvar (mod p)
k(mod p)
(mod p)
Như vậy sẽ chấp nhn bằng chứng về danh tính của Alice và giao thức
được gọi là có tính đầy đủ.
Dưới đây là một dnhỏ minh hoạ khía cạnh thách thức đáp
ứng” của giao thức.
Ví dụ 9.2
Gisử p=88667, q = 1031, t=10. Phần t = 70322 bc q thuộc *
p
Z. Gi
sử số mã mt của Alice a = 755. Khi đó:
v = -a( mod p)
= 703221031-755mod 88667
= 13136
Giả sử Alice chọn k = 543, sau đó cô tính:
= k mod p
= 70322543 mod 88667
= 84109
và gửi cho Bob. Giả thiết Bob đưa ra yêu cầu r = 1000. Khi đó Alice tính:
y = k + ar mod q
= 543 + 755 1000 mod 1031
= 851
và gửi y cho Bob. Sau đó Bob xác minh xem
84109 70322851131361000(mod 88667)
Nếu đúng, Bob sẽ tin rằng anh ta đang liên lạc với Alice.
Tiếp theo ta hãy xem xét cách ai đó thể mạo danh Alice. Olga - k
đang cố mạo danh Alice bằng cách làm gidấu xác nhận:
C’(Alice) = (ID(Alice), v’, s’),
trong đó vv. Song sđược giả thiết là chkí của (ID(Alice), v’, s’) và
được Bob xác minh trong bước 3 của giao thức. Nếu sơ đồ chữ kí của TA là
an tn, Olga s không thể làm gi ch s’ (mà sau này s b Bob xác
minh).
Biện pháp khác sẽ cho Olga dùng du xác nhận đúng của Alice
C(Alice) = (ID(Alice), v, s) (nh lại rằng, các dấu xác nhận không mật và
thông tin trên du xác nhận blộ mỗi lần thực hiện giao thức định danh).
Tuy nhiên Olga sẽ không thể mạo danh Alice trừ phi cô ta cũng biết giá trị a.
Đó vìu cầu” r trong bước 4. ở bước 5, Olga sphải tính y mà y hàm
của a. Việc tính a từ v bao hàm việc giải bài toán logarithm ri rạc là i
toán mà ta đã giả thiết là không thể giải được.
thchứng minh một định chính xác n về tính an toàn của giao
thức như sau:
Định lí 9.1.
Gisử Olga biết giá trị
nhđó c suất
1/2t-1 để giả mạo
Alice thành công trong giao thức xác minh. Khi đó Olga có thể tính a trong
thời gian đa thức.
Chứng minh
Với một phần
trên 2t u cu r, Olga thể tính giá trị y (sẽ được
Bob chp nhn trong bước 6). Vì
1/2t-1 nên ta 2t/
2 bi vậy,
Olga có thể tính được các giá trị y1,y2,r1r2 sao cho
y1 y2
11 Îy v
22 Îy v
(mod p)
hay )(mod
212 pv rryy
Vì v = -a nên ta có:
y1-y2 a(r1- r2) (mod q)
Xét thấy 0 < | r1- r2 | <2t q > 2t nguyên tố. Vì UCLN(r1- r2, q) = 1
và Olga có thể tính:
a = (y1-y2)(r1 - r2)-1mod q
như mong muốn…