Tải bản đầy đủ (.pdf) (18 trang)

Giáo trình tin học: Các sơ đồ định danh mật và phương pháp chứng minh điện tử danh tính

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 (297.71 KB, 18 trang )

Giáo trình tin học
Các sơ đồ định danh mật và
phương pháp chứng minh
điện tử danh tính




Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

Giáo trình tin học: Các sơ đồ định danh mật và phng phỏp chng minh in t
danh tớnh
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 nhiều bài toán dờng nh không thể giải đợc
thành có thể giải đợc. Một bài toán nh vậy là bài toán xây dựng các sơ đồ
định danh mật. Trong nhiều trờng hợp cần thiết phải chứng minh bằng
phơng tiện đ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 thẻ cù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 điện 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 thẻ gọi) chỉ cần số
điện thoại và PIN 4 chữ số.
4. Để vào mạng máy tính, cần tên hợp lệ của ngời sử dụng và mật khẩu


tơng ứng.
Thực tế, các kiểu sơ đồ này thờng không đợc thực hiện theo cách an toàn.
Trong các giao thức thực hiện trên điện thoại, bất kì kẻ nghe trộm nào cũng
có thể dùng thông tin định danh cho mục đích riêng của mình. Những ngời
này cũng có thể là ngời nhận thông tin. Các mu đồ xấu trên thẻ tín dụng
đều hoạt động theo cách này. Thẻ ATM an toàn hơn một chút song vẫn còn
những điểm yếu. Ví dụ, ai đó điều khiển đờng dây liên lạc có thể nhận đợc
tất cả các thông tin đợc mà hoá trên dải từ tính của thẻ cũng nh thông tin
về PIN. Điều này cho phép một kẻ mạo danh tiếp cận vào tài khoản nhà
băng. Cuối cùng, việc chui vào mạng máy tính từ xa cũng là vấn đề nghiêm
trọng do các ID và mật khẩu của ngời sử dụ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 với những
ngời điều khiển mạng máy tính.
Mục đích của sơ đồ định danh là: ai đó nghe nh Alice t xng danh
với 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 có thể thử mạo nhận là Alice sau khi cô ta tự
xng danh với anh ta. Nói cách khác, Alice muốn có khả năng chứng minh
danh tính của mình bằng phơng tiện điện tử mà không 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 sơ đồ đủ đơn giản để có thể thực hiện đợc trên thẻ thông minh,
đặc biệt là thẻ tín dụng gắn thêm một chíp có khả năng thực hiện các tính
toán số học. Vì thế, thẻ đòi hỏi cả khối lợng tính toán lẫn bộ nhớ nhỏ đến
mức 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 chú ý là sự an toàn đặc biệt liên quan đến ngời điều khiÓn
Trang 1


Vietebooks
Nguyễn Hồng Cương

Simpo PDF
Merge and Split Unregistered Version -

®−êng dây thông tin. Vì nó là thẻ để chứng minh danh tính nên không cần
bảo vệ chống mất thẻ. Song nó vẫn cần thiết có 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 sơ đồ rất đơn giản dựa trên hệ thố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 thức yêu cầu và trả lời, trong ®ã gi¶ thiÕt r»ng, Alice ®ang tù
x−ng danh víi Bob cô 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 cầu x- là 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 bằng ví dụ nhỏ dới dây.
Ví dụ 9.1
Giả sử Alice và Bob dùng hàm mà là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 thức Yêu cầu và đáp
ứng song các sơ đồ hiệu quả nhất lại 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 phần còn lại của chơng này.
9.2 Sơ đồ định danh Schnorr.

Ta bắt đầu bằng việc mô tả sơ đồ định danh Schnorr - là một trong
những sơ đồ định danh thực tiễn và đáng chú ý nhất. Sơ đồ này đòi hỏi một
ngời đợc uỷ quyền cã tÝn nhiƯm mµ ta ký hiƯu lµ TA. Ta sẽ chọn các tham
số cho sơ đồ nh sau:
1. p là số nguyên tố lớn (tức p 2512) sao cho bài toán logarithm rời rạc
trong Zp là không giải đợc.
2. q là ớc nguyên tố lớn của p-1 (tức q 2140).

bậc
q
(có
thể
tính

nh
(p-1)
3. Z *p
) đề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, cô phải tiến hành các bớc nh trên hình 9.2. Vào

Trang 2


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -


thêi ®iĨm ci, khi Alice mn chøng minh danh tÝnh cđa cô trớc Bob, cô
thực hiện giao thức nh trên hình 9.3.
Nh đà nêu ở trên, t là một tham số mật. Mục đích của nó là ngăn kẻ
mạo danh - chẳng hạn Olga - khỏi phỏng đoán yêu cầu r của 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 cầu r, cô
sẽ cung 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, hộ chiế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 mét 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 lý với hầu hết các ứng dụng, (tuy nhiên, chú ý
rằng, Bob sẽ chọn r ngẫu nhiên mỗi lần Alice xng danh với anh ta. Nếu Bob
luôn dùng cùng một r thì Olga có thể mạo danh Alice bằng phơng pháp mô
tả ở trên).
Có hai vấn đề 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 của Alice. Nh vậy, Bob xác minh
chữ ký của TA trên dấu xác nhận của Alice để thuyết phục chính bản thân
mình rằng dấu xác nhận là xác thực. Đây là xác nhận tơng tự nh cách ®·

dïng ë ch−¬ng 8.
VÊn ®Ị thø hai cđa giao thøc liên quan đến mà số mật a. Giá trị a có
chức năng tơng tự nh PIN để thuyết phục Bob rằng, ngời thực hiện 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 là thẻ thông minh của cô) chứng minh rằng, cô (thẻ) biết giá
trị a trong bớc 5 bằng cách tính y trong khi trả lời đòi hỏi r do Bob đa ra.
Vì a không bị lộ nên kĩ thuật này gọi là chứng minh không tiết lộ thô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.
Trang 3


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

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 số ngẫu nhiên r, 1 r 2t và đ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ó thoả mÃn đồng d thức sau không
yvr (mod p).
Các đồng d sau đây chứng minh rằng Alice có 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 nhËn 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 ví dụ nhỏ minh hoạ khía cạnh thách thức và đáp
ứng của giao thức.
Ví dụ 9.2
Giả sử p=88667, q = 1031, t=10. PhÇn tư α = 70322 cã bËc q thc Z *p . Gi¶
sư sè m· mËt 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 đó có thể mạo danh Alice. Olga - kẻ
đang cố mạo danh Alice bằng cách làm giả dÊu x¸c nhËn:
C’(Alice) = (ID(Alice), v’, s’),
Trang 4



Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

trong đó vv. Song s đợc giả thiết là chữ kí của (ID(Alice), v, s) và nó
đợc Bob xác minh trong bớc 3 của giao thức. Nếu sơ đồ chữ kí của TA là
an toàn, Olga sẽ không thể làm giả chữ kí s (mà sau này sẽ bị Bob xác
minh).
Biện pháp khác sẽ cho Olga dùng dấu 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 dấu xác nhận bị lộ 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. Đó
là vì yêu cầu r trong bớc 4. ở bớc 5, Olga sẽ phải tính y mà y là hàm của
a. Việc tính a từ v bao hàm việc giải bài toán logarithm rời rạc là bài toán mà
ta đà giả thiết là không thể giải đợc.
Có thể chứng minh một định lí chính xác hơn về tính an toàn của giao
thức nh sau:
Định lí 9.1.
Giả sử Olga biết giá trị nhờ đó cô có xá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 yêu cầu r, Olga có thể tính giá trị y (sẽ đợc
Bob chấp nhận trong bớc 6). Vì 1/2t-1 nên ta có 2t/ 2 và bởi vậy, Olga
có thể tính đợc các giá trị y1,y2,r1 và r2 sao cho
y1 y2
y Î

vµ γ ≡ α v ≡ α y v Î (mod p)
hay α y − y ≡ v r −r (mod p)
Vì v = -a nên ta có:
y1-y2 a(r1- r2) (mod q)
XÐt thÊy 0 < | r1- r2 | <2t và q > 2t là 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
1



2

1

2

1

2

2

Định lý trên chứng minh rằng, bất kỳ ai có cơ hội (không phải không đáng
kể) thực hiện thành công giao thức định danh đều phải biết (hoặc có thể tính
trong thời gian đa thức) số mũ mật a của Alice. Tính chất này thờng đợc
gọi là tính đúng đắn (sound). Dới đây là ví dụ minh ho¹:

Trang 5



Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

VÝ dụ 9.3
Giả sử ta cũng có các tham số nh trong vÝ dô 9.2: p = 88667, q =
1031, t= 10, α = 70322, a = 755 vµ v = 13136. Giả sử Olga nghiên cứu thấy
rằng:
851v1000 454v19(mod p).
khi ®ã cã thÓ tÝnh:
a =(851 - 454)(1000 - 19)-1 mod 1031 = 755
và nh vậy sẽ khám phá ra số mị mËt cđa Alice. …
Chóng ta ®· chøng minh r»ng, giao thức có tính đúng đắn và đầy đủ.
Song tính đúng đắn và đầy đủ cha đủ để bảo đảm rằng giao thức là an toàn.
Chẳng hạn, nếu Alice để lé sè mị mËt a cđa m×nh khi chøng minh danh tính
của cô với Olga thì giao thức vẫn còn đúng đắn và đầy đủ. Tuy nhiên nó sẽ
hoàn toàn không an toàn vì sau đó Olga có thể mạo danh Alice.
Điều này thúc đẩy động cơ xem xét thông tin mật đà cho ngời xác
minh - ngời cũng tham gia trong giao thøc - biÕt (trong giao thøc nµy, thông
mật là a). Hy vọng là không có thông tin nào về a có thể bị gia tăng bởi Olga
khi Alice chứng minh danh tính của mình cho cô ta, để sau đó Olga có thể
giả dạng nh Alice.
Nói chung, cã thĨ h×nh dung t×nh hng khi Alice chøng minh danh
tÝnh cđa m×nh víi Olga trong mét sè t×nh hng khác nhau. Có lẽ Olga
không chọn các yêu cầu của cô (tức các giá trị r) theo kiểu ngẫu nhiên. Sau
vài lần thực hiện giao thức, Olga sẽ cố gắng xác định giá trị a để sau đó có
thể mạo danh Alice. Nếu Olga không thể xác định đợc chút thông tin nào

về a qua tham gia với số lần ®a thøc thùc hiƯn giao thøc vµ sau ®ã thùc hiện
một lợng tính toán đa thức thì giao thức có thể đợc gọi là an toàn.
Hiện tại vẫn cha chứng minh đợc rằng giao thc Schnorr là an toàn,
song trong phần tiếp sau, ta sẽ đa ra một cải tiến về sơ đồ này (do Okmoto
đa ra) mà có thể chứng minh đợc nó là an toàn khi cho trớc giả thuyết
tính toán nào đó.
Sơ đồ Schnorr đà đợc thiết kế với tốc độ nhanh và hiệu quả theo quan
điểm cả về tính toán lẫn lợng thông tin cần thiết ®Ĩ trao ®ỉi trong giao thøc.
Nã cịng ®−ỵc thiÕt kÕ nhằm tối thiểu hoá lợng tính toán mà Alice phải thực
hiện. Đây là những đặc tính tốt vì trong thực tế, các tính toán của Alice sẽ
phải tính trên các thẻ thông minh có khả năng tính toán thấp trong khi các
tính toán của Bob lại trên các máy lớn.
Vì mục đích thảo luận, ta hÃy giả sử rằng, ID(Alice) là chuỗi 512 bit, v
cũng gồm 512 bit, còn s bằng 320 bit nến DSS đợc dùng nh sơ đồ chữ kí.
Kích thớc tổng cộng của dấu xác nhận C(Alice) (cần đợc lu trên thẻ của
Alice) là 1444 bit.
Xét các tính toán của Alice: Bớc 1 cần lấy mũ theo modulo, bớc 5
so sánh một phép công modulo và một phép nhân modulo. Đó là phép luỹ
Trang 6


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

thõa modulo mạnh về tính toán song có thể tính toán gián tiếp nếu muốn.
Còn các tính toán trực tiếp đợc Alice thực hiện bình thờng.
Việc tính số bit cần thiết trong quá trình liên lạc để thực hiện giao thức
cũng khá đơn giản. Có thể mô tả thông tin đợc liên lạc ở dạng đồ hình nh

sau
C,
Alice
r
Bob
y
Alice đa cho Bob 1444 + 512 = 1956 bit th«ng tin trong b−íc 2: Bob
đa cho Alice 40 bit trong bớc 4 và Alice ®−a cho Bob 160 bit trong b−íc 6.
Nh− vËy các yêu cầu về liên lạc rất mức độ.
9.3 Sơ đồ định danh của Okamoto.
Trong phần này ta sẽ đa ra một biến thể của sơ đồ Schnorr do
Okamoto đa ra. Sơ đồ cải tiến này Zp không giải đợc.
Để thiết lập sơ đồ, TA chọn p và q nh trong sơ đồ Schnorr. TA cũng
chọn hai phần tử 1 và 2 Z*p đều có bậc q. Giá trị c = log12 đợc giữ bí
mật kể cả đối với Alice. Ta sẽ giả thiết rằng, không ai có thể giải đợc (thậm
chí Alice và Olga liên minh với nhau) để tính ra giá trị c. Nh trớc đây, TA
chọn sơ đồ chữ kí số và hàm hash. Dấu xác nhận mà TA đà phát cho Alice
đợc xây dựng nh mô tả ở hình 9.4.
Dới đây là một ví dụ về sơ đồ Okamoto.
Ví dụ 9.4.
Cũng nh ví dụ tr−íc, ta lÊy p = 88667, q = 1031, t = 10. Cho α1 =
58902 vµ cho α2 = 73611 (cả 1 lẫn 2 đều có bậc q trong Z*p ). Giả sử
a1=846, a2 = 515, khi đó v = 13078.
Gi¶ sư Alice chän k1 = 899, k2 = 16, khi đó = 14573. Nếu Bob đa ra
yêu cầu r = 489 thì Alice sẽ trả lời y1 = 131 và y2 = 287. Bob sẽ xác minh
thấy:
58902131786112871378489 ≡ 14574 (mod 88667).
V× thÕ Bob chÊp nhËn b»ng chøng cđa Alice vỊ danh tÝnh cđa c«. …
ViƯc chøng minh giao thức là đầy đủ không khó (tức là Bob sÏ chÊp
nhËn b»ng chøng vỊ danh tÝnh cđa c«). Sù khác nhau giữa sơ đồ của

Okamoto và Schnorr là ở chỗ, ta có thể chứng minh rằng sơ đồ Okamota an
toàn miễn là bài toán logarithm rời rác không giải đợc.
Hình 9.4: Đóng dấu xác nhận cho Alice.
1. TA thiết lập danh tính của Alice và phát chuỗi định danh ID(Alice).
2. Alice chän bÝ mËt hai sè mị ngÉu nhiªn a1,a2 trong ®ã 0 ≤ a1,a2 ≤ q -1
Alice tÝnh:
Trang 7


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

v = 1 a 1 a mod p
và đa cho TA.
3. TA tạo chữ kí
s = sigTA(I,v).
và đa dấu x¸c nhËn
C(Alice) = (ID(Alice),v,s)
cho Alice
PhÐp chøng minh vỊ tÝnh an toàn rất tinh tế. Đây là ý kiến chung: Nh
trớc đây, Alice tự định danh với Olga trong nhiều thời gian đa thức thông
qua thực hiện giao thức. Khi đó ta giả thiết rằng Olga có khả năng nghiên
cứu một số thông tin về các giá trị a1,a2. Nếu nh vậy thì Olga và Alice kết
hợp với nhau có khả năng tính đợc logarithm rời rạc c trong thời gian đa
thức. Điều này mâu thuẫn với giả định ở trên và chứng tỏ rằng Olga chắc
không thể nhận đợc chút thông tin nào về các số mũ của Alice thông qua
việc tham gia vào giao thức.
Phần đầu tiên của giao thức này tơng tự với chứng minh tính đầy đủ

trong sơ đồ Schnorr.
Định lý 9.2.
Giả sử Olga biết a giá trị mà nhờ nó cô có xác suất thành công
t-1
1/2 khi đánh giá Alice trong giao thức xác minh. Khi đó, Olga có thể tính
các giá trị b1,b2 trong thêi gian ®a thøc sao cho
v ≡ α 1− b α 1− b mod p .
Chøng minh:
Víi phÇn trên 2t yêu cầu có thể r, Olga có thể tính các giá trị y1, y2,
z1, z2, r và s víi r ≠ s vµ:
γ ≡ α 1 y α 2y vr ≡ α 1 z α 2Ζ v8(mod p).
Ta định nghĩa:
b1= (y1 - z1)(r - s)-t mod q

b1= (y2 - z2)(r - s)-t mod q
Khi đó dễ dàng kiÓm tra thÊy r»ng:
1

2

1

2

1

2

1


2

v ≡ α 1− b1α 2− b2 (mod p )

nh− mong muèn.…

Trang 8


Vietebooks
Nguyễn Hồng Cương
Simpo PDF
Merge and Split Unregistered Version -

H×nh 9.5. Sơ đồ định danh Okamoto.
1. Alice chọn các số ngÉu nhiªn k1, k2, 0 ≤ k1, k2 ≤ q -1 vµ tÝnh:
γ = α 1 k α 2k (mod p).
2. Alice gửi dấu xác nhận của cô 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 ®ång
nhÊt thøc:
verTA(ID(Alice),v,s) = true
4. Bob chän sè ngÉu nhiªn r, 1 r 2t và đa nó cho Alice.
5. Alice tÝnh:
y1 = k1 + a1r mod q

y2 = k2 + a2r mod q
và đa y1,y2 cho Bob.
6. Bob xác minh xem:
1y 2y vr(mod p) hay không.
Bây giờ ta tiếp tục chỉ ra cách Alice và Olga cùng tính giá trị c.

Định lý 9.3.
Giả sử Olga biết giá trị (mà với nó cô có xác suất giả danh Alice
thành công là 1/2t-1) trong giao thức xác minh. Khi đó, Alice và Olga có
thể cùng nhau tÝnh logα α 2 trong thêi gian ®a thøc với xác suất 1-1/q.
Chứng minh
Theo định lý 9.2, Olga có khả năng xác định các giá trị b1 và b2 sao
cho
v ≡ α 1b α 2b (mod p )
Gi¶ thiÕt rằng Alice để lộ các giá trị a1 và a2 cho Olga biÕt. DÜ nhiªn:
v ≡ α 1a α 2a (mod p )
v× thÕ
α 1a −b ≡ α 2b − a (mod p)
giả sử rằng (a1,a2) (b1,b2), khi đó (a1-b1)-1 tồn tại và logarithm rời rạc:
c = log 2 = (a1-b1)(b2-a2)-1 mod q
có thể tính đợc trong thời gian đa thức.
Phần còn lại là xem xét xác suất để (a1,a2) = (b1,b2). Nếu xảy ra điều
này thì giá trị c không thể tính theo mô tả ở trên. Tuy nhiªn, ta sÏ chØ ra r»ng
(a1,a2) = (b1,b2) sÏ chỉ xảy ra với xác suất rất bé 1/q, vì thế giao thức nhờ đó
Alice và Olga tính đợc c sẽ hầu nh chắc chắn thành công.
Định nghĩa:
A ={ (a1' , a2' ) ∈ Ζ p × Ζ q : α1− a α 2− a ≡ α1− a α 2− a (mod p) }
Nghĩa là A gồm tất cả các cặp đợc sắp có thể và chúng có thể là c¸c sè mị
mËt cđa Alice. XÐt thÊy r»ng:
A ={a1- cθ, a2 + θ : θ∈ZP},
1

2

1


2

1

1

1

2

1

2

1

2

2

1

'
1

'
2

Trang 9


'
1

'
2


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

Trong ®ã c = logα α 2 . Nh− vËy A chứa q cặp đợc sắp.
Cặp đợc sắp (b1,b2) do Olga tÝnh ch¾c ch¾n ë trong tËp A. Ta sÏ chØ ra
rằng, giá trị của cặp (b1,b2) độc lập với cặp (a1,a2) chứa các số mũ mật của
Alice. Vì (a1,a2) đợc Alice chọn đầu tiên một cách ngẫu nhiên nên xác suất
để (a1,a2) = (b1,b2) là 1/q.
Nh vậy, (b1,b2) là độc lập với (a1,a2). Cặp (a1,a2) của Alice là
một trong q cặp đợc sắp có thể trong A và không có thông tin nào về nó (là
cặp đúng) đà bị Alice ®Ĩ lé cho Olga biÕt khi c« x−ng danh víi Olga. (Một
cách hình thức, Olga biết một cặp trong A chøa sè mị cđa Alice song c« ta
kh«ng biÕt nã là cặp nào).
Ta hÃy xét thông tin đợc trao đổi trong giao thức định danh. Về cơ
bản, trong mỗi lần thùc hiÖn giao thøc, Alice chän γ, Olga chän r và Alice để
lộ y1 và y2 sao cho:
= 1y α1 y vr (mod p).
Ta nhí l¹i r»ng, Alice tÝnh:
y1 = k1 + a1r mod q

y2 = k2 + a2r mod q

trong ®ã
γ = α1k α1k mod q
Chó ý r»ng k1 và k2 không bị lộ (mà a1 và a2 cũng không).
Bốn phần tử cụ thể (,r,y1,y2) đợc tạo ra trong thực hiện giao thức tuỳ thuộc
vào cặp (a1,a2) của Alice vì y1 và y2 đợc định nghĩa theo a1 và a2. Tuy nhiên
ta sẽ chỉ ra rằng, mỗi bộ bốn nh vậy có thể đợc tạo ra nh nhau từ cặp
đợc sắp bất kì khác (a1, a2) A. Để thấy rõ, giả thiết (a1, a2) A, tức là
a1=a1 - c và a2 = a2 + , trong đó 0 ≤ θ ≤ q -1.
Cã thĨ biĨu diƠn y1 vµ y2 nh− sau:
y1 = k1 + a1r
= k1 + (a1’+ cθ)r
= (k1 + rcθ)+a1’r

y2 = k2 + a2r
= k2 + (a2 - )r
= (k2 - r)+a2r
Trong đó tất cả các phÐp tÝnh sè häc ®Ịu thùc hiƯn trong Zp. NghÜa là bộ bốn
(,r,y1,y2) cũng phù hợp với cặp đợc sắp (a1' , a 2' ) b»ng viƯc dïng c¸c phÐp
chän ngẫu nhiên k1' = k1 + rc và k 2' = r để tạo ra . Cần chú ý rằng, các giá trị
k1 và k2 không bị Alice làm lộ nên bộ (, r, y1, y2) không cho biết thông tin gì
về cặp nào trong A đợc Alice dùng làm số mũ mật của cô. Đây là điều phải
chứng minh.
1

1

2

1


2

Trang 10


Vietebooks
Nguyễn Hồng Cương
Simpo PDF
Merge and Split Unregistered Version -

ViƯc chứng minh tính an toàn này khá tinh vi và tối u. Chắc nó sẽ
hữu dụng để lắp mới các ®Ỉc ®iĨm cđa giao thøc, dÉn tíi b»ng chøng vỊ sù
an toµn. Nh− vËy, Alice chän 2 sè mị mËt cao hơn là chọn một. Có tổng
cộng q cặp trong A tơng đơng với cặp (a1,a2) của Alice. Điều này dẫn đến
mâu thuẫn cơ bản là, việc hiều biết hai cặp khác nhau trong A sẽ cho một
phơng pháp hiệu quả tính toán logarithm rời rạc c. Alice dĩ nhiên chØ biÕt
mét cỈp trong A; nÕu ta chøng minh r»ng Olga có thể giả danh Alice thì
Olga có thể tính một cặp trong A khác với cặp của Alice (với xác suất cao).
Nh vậy Alice và Olga có thể cùng nhau tìm hai cặp trong A và tính c - cho
mâu thuẫn nh mong muốn.
Dới đây là một ví dụ nhỏ minh hoạ việc Alice và Olga tính toán log α 2 :
VÝ dô 9.5.
Gièng nh− trong vÝ dô 9.4, ta lÊy p =88667, q = 1031, t = 10 và giả sử
v = 13078.
Giả thiết Olga đà xác định đợc rằng:
11312287v489 18902303v199 (mod p)
Khi đó cô tính:
b1 = (131 - 890)(489 - 199)-1 mod 1031 = 456

b2 = (287 - 303)(489 - 199)-1 mod 1031 = 519

Dïng c¸c giá trị a1 và a2 do Alice đa cho, giá trÞ c tÝnh nh− sau:
c = (846 - 456)(519 - 515)-1 mod 1031 = 613
giá trị thực tế này là log 2 mà có thể xác minh bằng cách tính:
58902613 mod 88667 = 73611.
Cuối cùng, cần nhấn mạnh rằng, mặc dù không có chứng minh đà biết nào
chứng tỏ sơ đồ Schnorr an toàn (thậm chí giả thiết rằng, bài toán logarithm
rời rạc không giải đợc) song ta cũng không biết bất kì nhợc điểm nào của
sơ đồ này. Thực sự sơ đồ Schnorr đợc a thích hơn sơ đồ Okamoto do nó
nhanh hơn.
1

1

9.4 Sơ đồ định danh Guillou - quisquater.
Trong phần này sẽ mô tả một sơ đồ định danh khác do Guillou và
Quisquater đa ra dựa trên RSA.
Việc thiết lập sơ đồ nh sau: TA chọn 2 số nguyên tố p và q và lập tích
n =pq. Giá trị của p và q đợc giữ bí mật trong khi n công khai. Giống nh
trớc đây, p và q nên chọn đủ lớn để việc phân tích n không thể thực hiện
đợc. Cũng nh vậy, TA chọn số nguyên tố đủ lớn b giữ chức năng tham số
mật nh số mũ mật trong RSA. Giả thiết b là số nguyên tố dài 40 bít. Cuối
cùng TA chọn sơ đồ chữ kí và hàm hash.
Hình 9.6: Phát dấu xác nhận cho Alice
1. TA thiết lập định danh cho Alice và phát chuỗi định danh ID(Alice).
Trang 11


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF

Merge and Split Unregistered Version -

2. Alice chọn bí mật một số nguyên u, trong đó 0 ≤ u ≤ n -1. Alice tÝnh:
v = (u-1)b mod n
và đa u cho TA
3. TA tạo ra chữ kí:
s = sigTA(I,v)
Dấu xác nhận:
C(Alice) = (ID(Alice), v, s)
và đa cho Alice
Dấu xác nhận do TA phát cho Alice đợc xây dựng nh mô tả trong
hình 9.6. Khi Alice muốn chøng minh danh tÝnh cđa c« cho Bob, c« thùc
hiƯn giao thức hình 9.7. Ta sẽ chứng minh rằng, sơ đồ Guillou - Quisquater
là đúng đắn và đầy đủ. Tuy nhiên, sơ đồ không đợc chứng minh là an toàn
(mặc dù giả thiết hệ thống mà RSA là an toàn).
Ví dơ 9.6:
Gi¶ sư TA chän p = 467, q = 479, vì thế n = 223693. Giả sử b = 503 và
số nguyên mật của Alice u = 101576. Khi ®ã c« tÝnh:
v = (u-1)b mod n
= (101576-1)503 mod 223693
= 24412.
Hình 9.7: Sơ đồ định danh Guillou - Quisquater.
1. Alice chọn số ngẫu nhiên k, trong đó 0 k ≤ n -1 vµ tÝnh:
γ = kb mod n
2. Alice đa cho Bob dấu xác nhận của cô C(Alice) = (ID(Alice), v, s) và .
3. Bob xác minh chữ kí của TA bằng cách kiểm tra xem có thoả mÃn hay
không đồng d thức:
ver(ID(Alice), v, s) = true.
4. Bob chọn sè ngÉu nhiªn r, 0 ≤ r ≤ b -1 và đa nó cho Alice.
5. Alice tính:

y = k u mod n
và đa y cho Bob
6. Bob xác minh rằng
vryb (mod n)
Giả sử Bob trả lời bằng yêu cầu r = 375. Khi đó Alice sẽ tính
y = ku mod n
= 187485 ì 101576375 mod 223693
= 93725
và đa nó cho Bob. Bob xác minh thấy:
24412 8988837593725503(mod 223693)
vì thÕ Bob chÊp nhËn b»ng chøng vỊ danh tÝnh cđa Alice. …

Trang 12


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

Gièng nh trờng hợp tổng quát, việc chứng minh tính đầy đủ rất đơn giản:
vryb (u-b)r(kur)b(mod n)
u-brkbubr (mod n)
kb (mod n)
(mod n)
Bây giờ ta xét đến tính đúng đắn. Ta sẽ chứng minh sơ đồ là đúng đắn miễn
là không dễ dàng tính đợc u từ v. Vì v đợc lập từ u bằng phép mà RSA nên
đây là giả thiết có vẻ hợp lý.
Định lí 9.4
Giảsử Olga biết giá trị nhờ nó cô có xác suất thành công trong việc

giả danh Alice là > 1/b trong giao thức xác minh. Khi đó Olga cã thĨ tÝnh u
trong thêi gian ®a thøc.
Chøng minh
Víi γ nào đó, Olga có thể tính giá trị y1, y2, r1, r2 víi r1 ≠ r2 sao cho:
γ ≡ v r y b ≡ v r y2b (mod n)
kh«ng mÊt tính tổng quát, giả sử rằng r1 > r2. Khi ®ã ta cã:
1

2

v r1 − r2 ≡ ( y2 / y1 )b (mod n)

vì 0 < r1- r2 có thể tính nó trong thời gian đa thức bằng thuật toán Euclidean. Vì thÕ ta cã:
v ( r1 − r2 )t ≡ ( y2 / y1 )bt (mod n).

xÐt thÊy,
(r1- r2)t = lb +1
với số nguyên dơng l nào đó, vì thế:
vlb +1 (y2/y1)bt(mod n)
hay tơng đơng,
v (y2/y1)bt(v-1)lb(mod n).
Nâng cả hai vÕ lªn luü thõa b-1 mod φ(n) ta cã:
u-1≡ (y2/y1)t(v-1)l(mod n).
cuối cùng tính modulo đảo của cả hai vế của đồng d thức này, ta nhận đợc
công thức sau cho u:
u = (y2/y1)tvl mod n
Olga cã thĨ dïng c«ng thøc này để tính u trong thời gian đa thức.
Ví dơ 9.7
Gièng nh− vÝ dơ tr−íc, gi¶ sư r»ng n = 223963, b = 503, u = 101576 vµ

v = 89888. Giả thiết Olga nghiên cứu thấy rằng:
v401103386b v37593725b (mod n)
Trớc tiên cô tính:
t = (r1- r2)-1 mod b
= (401 - 375)-1mod 503
= 445
Trang 13


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

TiÕp theo c« tÝnh:
l = ((r1- r2)t - 1)/b
= ((401 - 375)445 -1)/503 = 23
Cuối cùng cô có thể nhận đợc giá trị u mật nh sau:
u = (y1/y2)tvl mod n
= (103386/93725)4458988823 mod 233693
= 101576
vµ nh− vËy, sè mị mËt cđa Alice đà bị lộ.
9.4.1Sơ đồ định danh dựa trên tính đồng nhất.
Sơ đồ định danh Guillou - Quisquater có thể chuyển thành sơ đồ định
danh dựa trên tính đồng nhất. Điều này có nghĩa là không cần các dấu xác
nhận. Thay vào đó, TA tính giá trị của u nh một hàm của chuỗi ID của
Alice bằng cách dùng một hàm hash công khai h trong phạm vi Zn nh chỉ ra
trên hình 9.8. Giao thức định danh lúc này làm việc nh mô tả trong hình
9.9. Giá trị v đợc tính từ chuỗi ID của Alice thông qua hàm hash công khai.
Để tiến hành giao thức định danh, Alice cần biết giá trị u, giá trị này chỉ TA

là có thể tính đợc (giả thiết hệ thống mà khoá công khai RSA là an toàn).
Nếu Olga cố tự xng mình là Alice cô sẽ không thành công nếu không biết
u.
Hình 9.8: Phát giá trị u cho Alice
1. Thiết lập danh tính của Alice và phát chuỗi định danh ID(Alice):
2. TA tính
u = (h(ID(Alice)-1)a mod n
và đa u cho Alice
Hình 9.9: Sơ đồ định danh dựa trên tính đồng nhÊt Guillou - Quisquater.
1. Alice chän mét sè ngÉu nhiªn k, 0 ≤ k ≤ n -1 vµ tÝnh:
γ = kb mod n
2. Alice đa ID(Alice) và cho Bob
3. Bob tÝnh:
v = h(ID(Alice))
4. Bob chän sè ngÉu nhiªn r, 0 r b-1 và đa nó cho Alice.
5. Alice tính:
y = kur mod n
và đa y cho Bob
6. Bob xác minh xem có thoả mÃn hay không điều kiện dới đây:
= vryb(mod n)
9.5 Chuyến sơ đồ định danh thành sơ đồ chữ kí.
Có một phơng pháp chuẩn để chuyển sơ đồ định danh thành sơ đồ
chữ kí. ý tởng cơ bản là thay thế ngời xác minh (Bob) bằng hàm hash công
khai h. Trong sơ đồ chữ kí thực hiện theo phơng pháp này, thông báo không

Trang 14


Vietebooks
Nguyễn Hồng Cương

Simpo PDF
Merge and Split Unregistered Version -

bÞ chặt ra (băm) trớc khi đợc kí: Quá trình băm đợc tích hợp thành thuật
toán kí.
Sau đây sẽ minh hoạ biện pháp này bằng việc chuyển sơ đồ Schnorr
thành sơ đồ chữ kí (hình 9.10). Thực tế, có khả năng đa hàm hash h vào
SHS và làm giảm đợc modulo q. Do SHS tạo ra xâu bit có độ dài 160 và q là
số nguyên tố 160 bit, nên việc giảm đợc modulo q chỉ cần thiết khi bản tóm
lợc của thông báo do SHS tạo ra vợt quá q. Thậm chí trong trờng hợp
này, chỉ cần trừ q khỏi kết quả.
Trong quá trình chuyển từ sơ đồ định danh thành sơ đồ chữ kí, ta đÃ
thay yêu cầu 40 bit bằng bản tóm lợc thông báo 160 bit, 40 bit là đủ đối với
một yêu cầu (challenge) vì kẻ mạo danh cần có khả năng phỏng đoán yêu
cầu để tính trớc câu trả lời (mà sẽ đợc chấp nhận). Song trong phạm vi của
sơ đồ chữ kí, ta cần cac bản tóm lợc thông báo có kích thớc lớn hơn nhiều
để ngăn chặc sự tấn công thông qua việc tìm kiếm các va chạm trong hàm
hash.
Hình 9.10: Sơ đồ chữ kí Schnorr.
Cho p là số nguyên tố 512 bít sao cho bài toán logarithm rời rạc trong
ZP là không giải đợc; cho q là số nguyên tố 160 bít chia hết cho p-1. Giả sử
*p là căn bËc q cđa 1modulo p. Cho h lµ hµm hash trong phạm vi *p .
Định nghĩa P= *p .A = *p ì ZP và định nghĩa:
K = {(p, q, α, a, v) : v ≡ α-a(mod p)}
C¸c giá trị p, q, và v là công khai cßn a mËt.
Víi K = (p, q, α, a, v) và với số ngẫu nhiên k mật *p , ta định nghĩa:
sigK(x,k) = (,y)
trong đó
= k mod p


y = k + ah(x,γ) mod q.
víi x,γ ∈ Ζ *p và yZP, định nghĩa
ver(x, , y) = true yvh(x,y)(mod p)
9.6 Các chú giải và tài liệu tham khảo
Sơ đồ định danh Schnorr nêu trong tài liệu [Sc91], sơ đồ Okamoto
đợc đa ra trong [OK93] còn sơ ®å Guillou - quisquater cã thĨ t×m thÊy
trong [GQ88]. Mét sơ đồ khác chứng minh sự an toàn dới giả thiết tính toán
hợp lý là của Brickell và McCurley [BM92].

Trang 15


Vietebooks
Nguyễn Hồng Cương
Simpo PDF
Merge and Split Unregistered Version -

C¸c sơ đồ định danh phổ biến khác chứa đựng trong sơ đồ Fiege - Fiat
- Shamir [FFS88] và sơ đồ nhân hoán vị [SH90]. Sơ đồ Fiege - Fiat - Shamir
đợc chứng minh là an toàn nhờ dùng kĩ thuật tri thức không.
Phơng pháp xây dựng sơ đồ chữ kí từ các sơ đồ định danh là do Fiat
và Shamir đa ra [FS87]. Chúng cũng đợc mô tả và phiên bản dựa trên tính
đồng nhất của sơ đồ định danh của chính họ.
Các tổng quan về các sơ đồ định danh này đà đợc công bố trong công
trình của Burmester, Desmedt và Beth [BDB92] và công trình của Waleffe và
Quisquater [DWQ93].
Các bài tập
9.1. Xét sơ đồ định danh sau đây: Alice sở hữu khoá mật n = pq, p và q là
những số nguyên tố và p q 3 (mod 4). Các giá trị n và ID(Alice) đều do
TA kí nh thờng lệ và lu trên dấu xác nhËn cđa Alice. Khi Alice mn tù

x−ng danh víi Bob, Bob sẽ đa cho Alice một thặng d bình phơng theo
modulo n gọi là x. Sau đó Alice sẽ tính căn bình phơng y của x và đa nó
cho Bob. Khi đó Bob xác minh xem y2 có x(mod n) hay không. HÃy giải
thích tại sao sơ đồ này không an toàn.
9.2. Giả sử Alice đang dùng sơ đồ Schnorr víi q = 1201, p =122503, t = 10
cßn α= 11538.
a/ H·y kiÓm tra xem α cã bËc q trên *p không.
b/ Giả thiết số mũ mật của Alice là = 357, hÃy tính v.
c/ Giả sử k = 868, hÃy tính .
d/ Giả sử Bob đa ra yêu cầu r = 501, hÃy tính câu trả lêi y cđa Alice.
e/ Thùc hiƯn c¸c tÝnh to¸n cđa Bob khi xác minh y
9.3. Giả thiết, Alice dùng sơ ®å Schnorr víi p, q, t nh− trong bµi tËp 9.2.
v=51131 và giả sử Olga có thể nghiên cứu thấy r»ng:
α3v148 ≡ α151v1077 (mod p)
H·y chØ ra c¸ch Olga cã thĨ tÝnh sè mị mËt a cđa Alice.
9.4. Gi¶ sư Alice đang dùng sơ đồ Okamoto với q = 1201, p = 122503, t= 10,
1=60497 và 2 = 17163
a/ Giả sư c¸c sè mị mËt cđa Alice a1=432, a2 = 423, h·y tÝnh v.
b/ Gi¶ sư k1 = 389, k2 = 191, tính
c/ Giả thiết Bob đa ra yêu cầu r = 21. HÃy tính câu trả lời y1 và y2 của
Alice
d/ Thực hiện các tính toan của Bob để xác minh y1và y2.
9.5/ Cũng giả thiết rằng Alice dùng sơ đồ Okamoto với p, q, t, 1và 2 nh−
trong bµi tËp 9.4, vµ v = 119504.
a/ H·y kiĨm tra xem phơng trình sau có thoả mÃn không:
883 992
170α 1033
v 877 = α `248
(mod p )
2

1 α2 v

Trang 16


Vietebooks
Nguyễn Hoàng Cương
Simpo PDF
Merge and Split Unregistered Version -

b/ Dùng thông tin trên để tính b1 và b2 sao cho:
α 1− b α 2− b ≡ v(mod p ) .
c/ Giả sử rằng Alice để lộ 1=484 và 2 =935. HÃy chỉ ra cách Alice
và Olga cùng nhau tính log 2 .
9.6. Giả sử rằng, Alice đang dùng sơ đồ Quisquater với p = 503, q = 379 và
b= 509.
a/ Giả sử giá trị u mật của Alice = 155863 tÝnh v.
b/ Gi¶ sư k = 123845, h·y tính .
c/ Giả thiết Bob đa ra yêu cầu r = 487. HÃy tính câu trả lời y của
Alice
d/ Thực hiện các tính toán của Bob để xác minh y
9.7. Giả sử Alice đang dùng sơ đồ Quisquater với n = 199543, b = 523 và
v=146152. Giả thiết Olga đà khám phá ra rằng
v456101360b = v25736056b(mod n)
HÃy nêu cách Olga cã thÓ tÝnh u.
1

2

1


Trang 17