Mức độ an toàncủalược đồ chữk ýtập thể LD 2.02 được thiếtlậpdựa trên
độ an toàncủalược đồcơsở LD 2.01. Vìvậy,lược đồ chữk ýtập thể LD 2.02
cần phải tuân thủ các điều kiện an toàn đã được chỉ ra ởlược đồcơsở
LD 2.01. Ngoài ra, ở cáclược đồ chữ kýtập thể còn tiềm ẩn các nguycơtấn
công giảmạo chữk ýtừ bên tronghệ thống [21],[31],[32],[33],[34],[35],[36].
Vấn đề này được xem xétdưới góc độ Bài toán giảmạo chữ ký như sau:
85 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2402 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu, phát triển các lược đồ chữ ký số tập thể, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tra chữ k ý
tập thể (Thuật toán 1.13) nhằm ngăn chặn việc mạo danh các đối tượng k ý.
Ngoài ra, có thể kiểm tra tính hợp pháp của đối tượng k ý một cách độc lập
bằng Thuật toán 1.10b.
Tính đúng đắn của các thuật toán chứng nhận và kiểm tra tính hợp pháp
đối tượng k ý được chứng minh như sau:
Đặt: e1 = 1, e2 = ui, e3 = t, k = ki, r = ri, s = vi, x = xCA, y = yCA. Theo (2.17),
(2.18), (2.20) và Mệnh đề 1.1 ta có:
vi
t mod n = ri . yCA
-ui mod n (2.36)
Từ (2.36) suy ra:
ri = vi
t . y
CA
-ui mod n (2.37)
Từ (2.21) và (2.37) ta có:
r* = ri (2.38)
Thay (2.38) vào (2.22), ta được:
u = H(ri ||yi ||IDi) (2.39)
Từ (2.39) và (2.19) suy ra:
u = ui.
Đây là điều cần chứng minh.
b) Tính đúng đắn của thuật toán hình thành và kiểm tra chữ k ý cá nhân của
một đối tượng k ý.
Hình thành chữ k ý cá nhân của một đối tượng k ý được thực hiện ở các
39
bước từ [1] đến [4], còn kiểm tra chữ k ý cá nhân được thực hiện ở bước thứ
[5] của thuật toán hình thành chữ k ý của một hay một nhóm đối tượng lên một
thông điệp dữ liệu (Thuật toán 1.11). Tính đúng đắn của thuật toán hình thành
và kiểm tra chữ ký cá nhân của đối tượng k ý được chứng minh như sau:
Đặt: e1 = 1, e2 = ui, e3 = t, s = si, x = xi, k = ki, y = yi , r = ri. Theo (2.16),
(2.23), (2.24), (2.25), (2.26) và Mệnh đề 1.1, ta có:
si
t mod n = ri . yi
-e mod n (2.40)
Từ (2.40) suy ra:
r i = si
t. yi
e mod n
Đây là điều cần chứng minh.
c) Tính đúng đắn của thuật toán chứng nhận và kiểm tra chứng nhận của
CA đối với chữ k ý cá nhân của một hay một nhóm đối tượng k ý.
Hình thành chứng nhận của CA đối với chữ k ý cá nhân của một hay một
nhóm đối tượng ký lên một thông điệp dữ liệu được thực hiện bằng Thuật
toán 1.12. Kiểm tra tính hợp lệ chứng nhận của CA được thực hiện ở bước [2]
của thuật toán kiểm tra chữ ký tập thể (Thuật toán 1.13). Tính đúng đắn của
thuật toán hình thành và kiểm tra chứng nhận của CA được chứng minh như
sau:
Đặt: e1 = 1, e2 = uM, e3 = t, s = vM, y = yCA. Theo (2.17), (2.28), (2.29),
(2.30) và Mệnh đề 1.1, ta có:
v
M
t mod n = r .yCA
-u
M mod n (2.41)
Từ (2.41) suy ra:
r = v
M
t . y
CA
-u
M mod n (2.42)
Từ (2.32) và (2.42) ta có:
r* = r (2.43)
Thay (2.43) vào (2.33), ta được:
u = H(r||y ||M) (2.44)
40
Từ (2.29) và (2.44) suy ra:
u = u
M
Đây là điều cần chứng minh.
d) Tính đúng đắn của thuật toán hình thành và kiểm tra chữ k ý của một
nhóm đối tượng lên một thông điệp dữ liệu.
Mệnh đề 1.2:
Cho p, q là 2 số nguyên tố phân biệt, n = p.q, 1 < x < n,
1 < e1, e2, e3 < (p-1).(q-1), 1 < xi, ki < n (i=1, 2,...,m). Nếu: yi = xi
e3 mod n,
ri = ki
e3 mod n, si = ki
e1. xi
e2 mod n, r = Õ
=
m
i
ir
1
mod n, s = Õ
=
m
i
is
1
mod n thì:
se3 mod n = re1 . ye2 mod n.
Chứng minh
Thật vậy, ta có:
se3 mod n = (Õ
=
m
i
is
1
mod n )
e3 mod n
= (Õ
=
m
i
e
ik
1
1 mod n)
e3 . (Õ
=
m
i
e
ix
1
2 mod n)
e3 mod n
= (Õ
=
m
i
e
ik
1
3 mod n)
e1 . (Õ
=
m
i
e
ix
1
3 mod n)
e2 mod n
= (Õ
=
m
i
ir
1
mod n)
e1 . (Õ
=
m
i
iy
1
mod n)
e2 mod n
= re1 . ye2 mod n
Chữ k ý nhóm (e,s) hay chữ k ý cá nhân của một nhóm đối tượng k ý lên
một thông điệp dữ liệu (M) được hình thành bằng Thuật toán 1.11. Kiểm tra
tính đúng đắn của chữ k ý nhóm được thực hiện ở bước [2] của thuật toán CA
chứng nhận cho {M,(e,s)} (Thuật toán 1.12) và bước [3] của thuật toán kiểm
tra chữ k ý tập thể (Thuật toán 1.13).
Tính đúng đắn của thuật toán hình thành và kiểm tra chữ ký nhóm được
41
chứng minh như sau:
Đặt: e1 = 1, e2 = e, e3 = t. Theo (2.24), (2.25), (2.27), (2.31) và
Mệnh đề 1.2, ta có:
st mod n = r . y-e mod n (2.45)
Từ (2.45) suy ra:
r = st . ye mod n (2.46)
Từ (2.46) và (2.34) ta có:
u = r (2.47)
Thay (2.47) vào (2.35), ta được:
v = H(r||M) (2.48)
Từ (2.48) và (2.25) suy ra:
v = e
Đây là điều phải chứng minh.
2.3.1.5 Mức độ an toàn của lược đồ LD 1.02
Mức độ an toàn của lược đồ chữ k ý tập thể LD 1.02 được thiết lập dựa trên
độ an toàn của lược đồ cơ sở LD 1.01. Vì vậy, lược đồ chữ k ý tập thể LD 1.02
cần phải tuân thủ các điều kiện an toàn đã được chỉ ra ở lược đồ cơ sở
LD 1.01. Ngoài ra, ở các lược đồ chữ ký tập thể còn tiềm ẩn các nguy cơ tấn
công giả mạo chữ k ý từ bên trong hệ thống [21]. Vấn đề này được xem xét
dưới góc độ Bài toán giả mạo chữ ký như sau:
a) Bài toán giả mạo chữ k ý nhóm
Cho U và U* với U Ë U* là hai nhóm các đối tượng trong hệ thống tương
ứng với cặp tham số {n,t}. Khi này Bài toán giả mạo chữ ký nhóm có thể
được mô tả như sau:
Bài toán LD1(U,U*): Cho các tham số bí mật của các thành viên trong U*.
Khi đó với mỗi thông báo M, hãy tìm cặp {e,s} được chấp nhận theo điều kiện
42
của thuật toán kiểm tra chữ k ý (Thuật toán 1.12) với đầu vào là bộ tham số
công khai của U.
Mỗi giải thuật cho bài toán LD1(U,U*) được gọi là "thuật toán giả mạo chữ
ký của U lên M do U* thực hiện".
Để khảo sát tính an toàn của lược đồ LD 1.02, trước tiên cần xây dựng hai
giải thuật toán lần lượt cho các bài toán LD1(U,U*) và LD1(U',U*) với:
U* = {U*i| i=1...m*}, U' = {U'i| i=1...m'}, U*ÇU' = Æ và U*ÈU' = U. (2.49)
Hai tập U* và U' thỏa mãn (2.49) còn được gọi là một phân hoạch của U
và phép toán U*ÈU' còn được ký hiệu là U*+U'.
Thuật toán 1.14. Thuật giải cho bài toán LD1(U,U*).
Input: n, t, M, (e’,s’) – chữ ký của U' lên M.
Output: (e,s) – chữ ký (giả mạo) của U lên M do U* tạo ra.
[1]. s* = 1;
[2]. for i = 1 to m* do
s* = s*. (xi)
e’mod n; (2.50)
[3]. s = s’. s* mod n; (2.51)
[4]. e = e’; (2.52)
[5]. return (e,s);
Thuật toán 1.14 cho phép U* từ chữ k ý của U’ tạo được chữ k ý của U lên
M. Tính đúng đắn của Thuật toán 1.14 được chứng minh như sau:
Từ (2.50) với mọi: i = 1,2,..,m*, ta có:
(si*)
t . (yi*)
e mod n = (xi*)
e.t . (xi*)
-e.t mod n = 1 (2.53)
Với điều kiện trong (2.49), dễ dàng kiểm tra được rằng:
43
y = (y'.Õ
=
*m
1i
*
iy ) mod n (2.54)
Từ (2.53) và (2.54) ta có:
st. ye mod n = (s'.Õ
=
*m
1i
*
is )
t.(y'.Õ
=
*m
1i
*
iy )
e mod n
= (s')t.(y')e.Õ
=
*m
1i
e*
i
t*
i )y()s( mod n
= (s')t. (y')e’ mod n = r' (2.55)
Từ (2.55) và (2.34) suy ra:
u = r’ (2.56)
Thay (2.56) vào (2.35) ta được:
v = H(r’||M) = e’ (2.57)
Từ (2.57) và (2.52) ta có: v = e
Như vậy, mặc dù (e,s) do U* tạo ra nhưng vẫn được công nhận là chữ k ý
hợp lệ của U lên M, Thuật toán 1.14 đã được chứng minh là đúng.
Thuật toán 1.15. Thuật giải cho bài toán LD1(U',U*).
Input: n, t, M, (e,s) - chữ ký của U lên M.
Output: (e’,s’) - chữ ký (giả mạo) của U' lên M do U* tạo ra.
[1]. s* = 1;
[2]. for i = 1 to m* do
s* = s*. (xi)
e mod n; (2.58)
[3]. s’ = s . (s*)-1 mod n; (2.59)
[4]. e’ = e; (2.60)
[5]. return (e’,s’);
44
Thuật toán 1.15 cho phép U* từ chữ k ý của U tạo được chữ k ý của U’ lên
M. Chứng minh tính đúng đắn của thuật toán 1.15 như sau:
Từ (2.58) với mọi: i = 1,2,..,m*, ta có:
(si*)
- t . (yi*)
- e mod n = (xi*)
- e.t . (xi*)
e.t mod n = 1 (2.61)
Với điều kiện (2.49), dễ dàng kiểm tra được rằng:
y’ = (y.Õ
=
-
*m
1i
1*
i )y( ) mod n (2.62)
Từ việc các tham số mật x của mọi thành viên đều có tham số công khai y
tương ứng được xác định theo (2.16), điều này có nghĩa các giá trị
si*(i=1,2,..,m*) tính theo công thức (2.26) đều có giá trị nghịch đảo theo
modulo n, do đó việc tính s' theo (2.59) là thực hiện được.
Vì vậy, từ (2.61) và (2.62) ta có:
(s')t.(y')e’ mod n = (s.Õ
=
-
*m
1i
1*
i )s( )
t
.(y.Õ
=
-
*m
1i
1*
i )y( )
e
mod n
= (s)
t
.(y)
e
.Õ
=
-
*m
1i
1e*
i
t*
i ))y()s(( mod n
= st. ye mod n = r (2.63)
Từ (2.63) và (2.34) suy ra:
u = r (2.64)
Thay (2.64) vào (2.35) ta được:
v = H(r||M) = e (2.65)
Từ (2.65) và (2.55) ta có:
v = e’
Như vậy, (e’,s’) là do U* tạo ra nhưng vẫn được công nhận là chữ k ý hợp
lệ của U' lên M, nói cách khác: Thuật toán 1.15 đã được chứng minh là đúng.
45
b) Sự an toàn của lược đồ LD 1.02 trước các tấn công giả mạo chữ ký
nhóm.
Bài toán LD1(U,U*), LD1(U’,U*) chỉ ra khả năng tấn công giả mạo từ bên
trong hệ thống do một nhóm con (U*) của một nhóm đối tượng k ý (U) gây ra.
Từ đó cho thấy, việc giả mạo chữ k ý cá nhân của một hay một nhóm đối
tượng ký ở lược đồ LD 1.02 là có khả năng thực hiện được. Tuy nhiên, bằng
việc sử dụng chứng nhận của CA, mà thực chất là chữ k ý của CA lên thông
điệp dữ liệu cần ký M và khóa công khai chung của nhóm ký, như là một
phần của chữ k ý tập thể thì sự giả mạo này hoàn toàn có thể phát hiện được.
Nói cách khác, lược đồ LD 1.02 có khả năng chống được các dạng tấn công
giả mạo từ bên trong hệ thống đã được biết đến trong thực tế [8],[33],[34],
[35],[36].
2.3.2 Lược đồ chữ ký tập thể LD 1.03
Lược đồ chữ ký tập thể - ký hiệu LD 1.03, cũng được phát triển từ lược đồ
cơ sở LD 1.01với các chức năng tương tự như lược đồ LD 1.02. Điểm khác
nhau giữa 2 lược đồ là: LD 1.02 không qui định thứ tự k ý của các thành viên
trong nhóm, còn ở LD 1.03 chữ ký của nhóm được hình thành từ 3 yếu tố:
- Thông điệp dữ liệu cần ký M.
- Khóa bí mật của các thành viên KS.
- Thứ tự ký của các thành viên trong nhóm .
Như vậy ở lược đồ LD 1.03, chữ k ý cá nhân của một nhóm đối tượng và
do đó là chữ k ý tập thể tương ứng chỉ có thể được tạo ra khi các thành viên
thực hiện đúng thứ tự k ý đã qui định. Điều đó cũng có nghĩa là, một chữ k ý
tập thể do lược đồ LD 1.03 tạo ra, khi được công nhận là hợp lệ thì nó khẳng
định đồng thời các yếu tố:
- Tính toàn vẹn của thông điệp dữ liệu được thẩm tra.
46
- Nguồn gốc của thông điệp dữ liệu ở 2 cấp độ cá nhân của đối tượng hay
nhóm nhóm đối tượng k ý và tổ chức mà các đối tượng ký là thành viên
của nó.
- Trình tự k ý của các thành viên trong nhóm ký.
Lược đồ LD 1.03 được xây dựng với các thuật toán hình thành tham số và
khóa, thuật toán chứng nhận và kiểm tra tính hợp pháp của các đối tượng k ý,
thuật toán hình thành chứng nhận của CA đối với chữ k ý của một hay một
nhóm đối tượng ký lên một thông điệp dữ liệu và thuật toán kiểm tra chữ k ý
tập thể là hoàn toàn như các thuật toán tương ứng của lược đồ LD 1.02. Chỉ
có thuật toán hình thành chữ k ý cá nhân của một hay một nhóm đối tượng lên
thông điệp dữ liệu được xây dựng mới nhằm bảo đảm qui định về thứ tự k ý
của các thành viên trong nhóm, đây là điểm khác biệt duy nhất giữa 2 lược đồ
này. Vì vậy, mục này (2.3.2) chỉ trình bày Thuật toán hình thành chữ ký cá
nhân của một hay một nhóm đối tượng k ý lên một thông điệp dữ liệu và
chứng minh tính đúng đắn của nó, bao gồm cả tính đúng đắn của thuật toán
kiểm tra thứ tự k ý của các thành viên trong nhóm.
2.3.2.1 Thuật toán hình thành chữ ký cá nhân của một nhóm đối tượng lên
một thông điệp dữ liệu.
Giả sử nhóm ký gồm m thành viên: U = {Ui| i=1,2,...,m}. Các thành viên
nhóm ký có khóa bí mật là: KS = {xi| i=1,2,...,m} và các khóa công khai tương
ứng là: KP = {yi| i=1,2,...,m}.
Trong thực tế, thứ tự k ý của các thành viên trong nhóm được qui định bởi
vai trò, chức trách (chức vụ, quyền hạn,...) của mỗi thành viên trong tổ chức.
Không làm mất tính tổng quát, ở lược đồ mới đề xuất giả thiết rằng thứ tự ký
của các thành viên được qui định là chỉ số i gán cho các tham số cá nhân
(xi, yi, ri, si, ...) cuả mỗi thành viên trong nhóm. Cụ thể là, thành viên có chỉ số
i = 1 sẽ là người ký đầu tiên, còn thành viên có chỉ số i = m sẽ ký sau cùng.
47
Cũng như ở lược đồ LD 1.02, các yêu cầu đặt ra khi hình thành chữ ký cá
nhân của nhóm k ý ở đây là:
- Độ dài của chữ ký không phụ thuộc số lượng thành viên nhóm ký.
- Chữ ký chỉ được tạo ra khi có đủ số lượng thành viên tham gia ký.
- Chữ ký được thẩm tra nhờ khóa công khai chung của nhóm, mà khóa
công khai chung này được hình thành từ đầy đủ các khóa công khai riêng của
mỗi thành viên .
- Việc thẩm tra chữ ký của một nhóm m-đối tượng k ý thực hiện hoàn toàn
như với chữ ký được tạo ra bởi 1 đối tượng k ý.
Thuật toán 1.16: Hình thành chữ ký của một nhóm đối tượng lên thông
điệp dữ liệu M theo kiểu k ý tuần tự.
Input: n, t, M, m, KS = {xi| i=1,2,..,m}, KP = {yi| i=1,2,..,m}.
Output: (e,s) – chữ k ý U lên M.
[1]. for i = 1 to m do
[1.1]. ki ← H(xi||M);
[1.2]. ri ← (ki)
t mod n; (2.66)
[1.3]. send ri to {U1, U2,..., Ui-1, Ui+1,..., Um}
[2]. r ← 1; for i = 1 to m do
r ← r . ri mod n; (2.67)
[3]. e ← H(r||M); (2.68)
[4]. s0 ← 1; Y0 ← 1; R0 ← 1;
[5]. for i = 1 to m do
48
[5.1]. Yi-1 ← y1 . y2 .... yi-1 mod n; (2.69)
[5.2]. Ri-1 ← r1 . r2 .... ri-1 mod n; (2.70)
[5.3]. if (Ri-1 ≠ ((si-1)
t
. (Yi-1)
e
mod n)) then return (0,0); (2.71)
[5.4]. si ← si-1 . ki . (xi )
e mod n; (2.72)
[5.5] if (i < m) then {send si to Ui+1 } else s = si ;
[6]. return (e,s);
Chú ý: Trường hợp hình thành chữ k ý của một đối tượng lên thông điệp
dữ liệu thì chỉ cần thực hiện Thuật toán 1.16 với lựa chọn m = 1.
2.3.2.2 Tính đúng đắn của lược đồ LD 1.03
Tính đúng đắn của lược đồ mới đề xuất bao gồm:a) Tính đúng đắn của các
thuật toán chứng nhận và kiểm tra tính hợp pháp của đối tượng k ý, thuật toán
hình thành và kiểm tra chứng nhận của CA đối với chữ k ý của một hay một
nhóm đối tượng k ý lên một thông điệp dữ liệu, thuật toán kiểm tra chữ k ý tập
thể được chứng minh tương tự như các thuật toán tương ứng của lược đồ LD
1.02.
b) Tính đúng đắn của thuật toán kiểm tra thứ tự k ý của các thành viên
trong một nhóm k ý.
Kiểm tra thứ tự k ý của các thành viên trong nhóm ký được thực hiện ở các
bước từ [5.1] đến [5.3] của Thuật toán 1.16. Việc kiểm tra này cho phép một
đối tượng Ui có thể khẳng định được các đối tượng: U1, U2,..,Ui-1 đã k ý hay
chưa? Chứng minh tính đúng đắn của thuật toán kiểm tra thứ tự k ý được thực
hiện như sau:
Từ (2.72) ta có:
si-1 = si-2 . ki-1.(xi-1)
e mod n
= k1.k2...ki-1.(x1.x2...xi-1)
e mod n (2.73)
49
Đặt: e1 = 1, e2 = e, e3 = t, y = Yi-1, r = Ri-1, s = si-1. Theo (2.69), (2.70),
(2.73) và Mệnh đề 1.2, ta có:
(si-1)
t = Ri-1 . (Yi-1)
-e mod n (2.74)
Từ (2.74) suy ra:
Ri-1 = ((si-1)
t . (Yi-1)
e mod n
Đây là điều phải chứng minh.
c) Tính đúng đắn của thuật toán hình thành và kiểm tra chữ k ý nhóm.
Từ (2.70) ta có:
s = sm = k1.k2...km.x1
e . x2
e...xm
e mod n
= Õ
=
m
i
ik
1
. Õ
=
m
i
e
ix
1
mod n (2.75)
Do đó, nếu đặt: e1 = 1, e2 = e, e3 = t . Theo (2.31), (2.66), (2.67), (2.75) và
Mệnh đề 1.2, ta có:
st mod n = r . y-e mod n (2.76)
Từ (2.76) suy ra:
r = st . ye mod n (2.77)
Từ (2.43) và (2.77) ta có:
u = r (2.78)
Thay (2.78) vào (2.35), ta được:
v = H(r||M) (2.79)
Từ (2.68) và (2.79) suy ra:
v = e
Đây là điều phải chứng minh.
50
2.3.2.3 Mức độ an toàn của lược đồ LD 1.03
Việc phân tích, đánh giá mức độ an toàn của lược đồ LD 1.03 thực hiện
tương tự như với lược đồ LD 1.02.
Ở lược đồ LD 1.03, thứ tự k ý của các thành viên được xem như một khía
cạnh về tính an toàn của lược đồ. Thủ tục kiểm tra thứ tự k ý bao gồm các
bước từ [5.1] đến [5.3] của Thuật toán 1.16, thủ tục này cho phép mỗi đối
tượng k ý Ui (i = 1,2,...,m) có thể kiểm tra và khẳng định được các đối tượng
có trách nhiệm k ý trước đã thực hiện xong phần công việc của mình hay
chưa? Đây là yêu cầu thực tế đặt ra mà các lược đồ chữ k ý tập thể theo kiểu
tuần tự cần phải bảo đảm được.
2.4 Kết luận Chương 2
Các kết quả đã đạt được ở Chương 2 bao gồm 3 lược đồ chữ ký số mới,
bao gồm một lược đồ cơ sở (LD 1.01) và 2 lược đồ chữ k ý tập thể (LD 1.02,
LD 1.03). Trong đó, lược đồ cơ sở LD 1.01 là một dạng lược đồ chữ k ý số
mới, được xây dựng trên cơ sở bài toán khai căn trên vành số nguyên Zn=p.q
với {p,q} là các số nguyên tố phân biệt. Hai lược đồ chữ k ý tập thể là kết quả
được phát triển từ lược đồ cơ sở theo mô hình ứng dụng được đề xuất ở
Chương 1.
51
CHƯƠNG 3
XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ DỰA TRÊN
HỆ MẬT ELGAMAL
Nội dung Chương 3 đề xuất xây dựng lược đồ chữ ký tập thể dựa trên hệ
mật ElGamal theo mô hình ứng dụng đã được trình bày ở Chương 1.
3.1 Cơ sở toán học
3.1.1 Bài toán logarit rời rạc trên trường hữu hạn nguyên tố ZP
Cho p là một số nguyên tố và g là phần tử sinh của nhóm ZP*. Khi đó bài
toán logarit rời rạc trên trường ZP hay còn gọi là bài toán DLP(p,g) được phát
biểu như sau:
Bài toán DLP(p,g): Với mỗi số nguyên dương yÎ ℤp*, hãy tìm x thỏa mãn
phương trình sau:
g x mod p = y (3.1)
Giải thuật cho bài toán logarit rời rạc với các tham số {p, g} công khai có
thể được viết như một thuật toán tính hàm DLP(p,g)(.) với biến đầu vào là y
còn giá trị hàm là nghiệm x của phương trình (3.1):
x = DLP(p,g)(y)
Tương tự như bài toán RSA(n,t), trong một hệ thống giao dịch điện tử ứng
dụng chứng thực số để xác thực nguồn gốc và tính toàn vẹn thông tin cho các
thông điệp dữ liệu, bài toán DLP(p,g) là khó theo nghĩa không thể thực hiện
được trong thời gian thực. Ở đó, mỗi thành viên U của hệ thống tự chọn cho
mình khóa bí mật x thỏa mãn: 1 < x < (p -1), tính và công khai tham số:
y = g x mod p (3.2)
52
Chú ý:
(i) Bài toán DLP(p,g) là khó theo nghĩa không thể thực hiện được trong thời
gian thực, tuy nhiên không phải với mọi yÎZP* thì việc tính DLP(p,g) đều
khó, chẳng hạn những y = g
x
mod p với x không đủ lớn thì bằng cách duyệt
dần x = 1, 2, ... cho đến khi tìm được nghiệm của (3.2) ta sẽ tìm được khóa bí
mật x, do đó các giá trị của khóa mật x phải được lựa chọn sao cho việc tính
DLP(p,g)(y) đều khó.
(ii) Với lựa chọn x như trên thì không có ai ngoài U biết được giá trị x, vì
vậy việc biết được x đủ để xác thực đó là U.
3.1.2 Hệ mật ElGamal
Hệ mật ElGamal được xây dựng dựa trên tính khó của bài toán DLP(p,g)
nói trên và do T. El Gamal đề xuất vào năm 1985 [5]. Không như RSA, hệ
mật này bao gồm 2 thuật toán mật mã khóa công khai và chữ k ý số độc lập.
Các chuẩn chữ k ý số DSA của Hoa Kỳ [19] và GOST R34.10-94 của Liên
bang Nga [10] đều là các biến thể của thuật toán chữ k ý số El Gamal và được
gọi chung là các thuật toán chữ k ý số họ ElGamal. Trên thực tế, chưa có
phương pháp tấn công hiệu quả nào phá vỡ được hệ mật ElGamal nói chung
và các thuật toán chữ k ý số họ ElGamal nói riêng [9],[26],[28],[29] nếu các
tham số của nó được lựa chọn phù hợp. Cũng như hệ mật RSA với bài toán
khai căn trên vành Zn, có thể coi hệ mật ElGamal là một đánh giá thực tế cho
tính khó giải của bài toán DLP(p,g).
3.2 Xây dựng lược đồ cơ sở
Lược đồ cơ sở đề xuất ở đây được xây dựng dựa trên bài toán logarit rời
rạc theo cùng nguyên tắc với các thuật toán chữ k ý số họ ElGamal (DSA,
GOST R34.10-94). Lược đồ này sẽ được sử dụng để xây dựng các lược đồ
chữ ký tập thể theo mô hình ứng dụng được đề xuất ở Chương 1.
53
3.2.1 Lược đồ cơ sở dạng tổng quát
n Phương pháp hình thành tham số và khóa
Dữ liệu vào: p, q, x.
Kết quả: g, y, H(.).
Các bước thực hiện:
1. Tính phần tử sinh g của Zp*: g = h
(p-1)/q mod p, với: 1 < h < p;
2. Tính khóa công khai: y = g-x mod p;
3. Chọn hàm băm H: {0,1}* → Zq ;
Chú thích:
(i) p, q: 2 số nguyên tố thỏa mãn q|(p-1).
(ii) x: khóa bí mật của đối tượng ký.
n Phương pháp hình thành chữ ký
Dữ liệu vào: p, q, g, x, k, M.
Kết quả: (r,s).
Các bước thực hiện:
1. Hình thành phần thứ nhất của chữ k ý theo công thức:
r = (gk mod p) mod q;
2. Hình thành phần thứ nhất của chữ k ý theo công thức:
s = k.f1(M,r)
-1
+ x.f2(M,r) mod q;
Chú thích:
(i) M: thông điệp dữ liệu cần k ý.
(ii) (r,s): chữ ký lên M của đối tượng sở hữu {x,y}.
n Phương pháp kiểm tra chữ ký
Dữ liệu vào: p, q, g, y, M, (r,s).
Kết quả: Khẳng định (r,s) là chữ k ý hợp lệ ((r,s) = true) hay (r,s) là giả
mạo và/hoặc M không còn toàn vẹn ((r,s) = false).
Các bước thực hiện:
54
1. Tính giá trị: u = (g
s.f1(M,r) . y
f1(M,r).f2(M,r) mod p) mod q;
2. Nếu u = r thì (r,s) = true, ngược lại: (r,s) = false.
3.2.2 Lược đồ cơ sở LD 2.01
Lược đồ cơ sở - k ý hiệu LD 2.01, được hình thành từ lược đồ cơ sở dạng
tổng quát với lựa chọn: f1(M,r) = H(M), f2(M,r) = r.
3.2.2.1 Thuật toán hình thành tham số và khóa
Thuật toán 2.1a: Hình thành các tham số hệ thống.
Input: lp, lq: độ dài (tính theo bit) của số nguyên tố p, q.
Output: p, q, g, H(.).
[1]. select p, q: len(p) = lp, len(q)= lq, q|(p-1);
[2]. select h Î ℤp* ;
[3]. g ← h
(p-1)/q
mod p (3.3)
[4]. if (g = 1) then goto [2];
[5]. select H: {0,1}* → Zq ;
[6]. return {p, q, g, H(.)};
Chú thích: len(.) là hàm tính độ dài (theo bit) của một số.
Thuật toán 2.1b: Hình thành khóa.
Input: p, q, g, x.
Output: y.
[1]. y ← g-x mod p; (3.4)
[2]. return (y);
55
3.2.2.2 Thuật toán hình thành chữ k ý.
Thuật toán 2.2: Hình thành chữ ký.
Input: p, q, g, x, k , M, H(.).
Output: (r,s).
[1]. e ← H(M); (3.5)
[2]. r ← (gk mod p) mod q; (3.6)
[3]. s ← k. e-1 + x. r mod q; (3.7)
[4]. return (r,s);
3.2.2.3 Thuật toán kiểm tra chữ k ý
Thuật toán 2.3: Kiểm tra chữ ký.
Input: p, q, g, y, H(.), M, (r,s).
Output: (r,s) = true / false.
[1]. e ← H(M); (3.8)
[2]. u ← (gs.e. yr.e mod p) mod q; (3.9)
[3]. if (u = r) then {return true;} (3.10)
else {return false;}
3.2.2.4 Tính đúng đắn của lược đồ LD 2.01
Bổ đề 2.1:
Cho p và q là 2 số nguyên tố với q là ước số của (p-1), h là một số nguyên
dương nhỏ hơn p. Nếu: g = h
(p-1)/q
mod p thì: g
q
mod p = 1.
Chứng minh:
Ta có:
gq mod p = (h
(p-1)/q
mod p)
q
mod p = h
(p-1)
mod p
Theo định l ý Fermat thì:
h
(p-1)
mod p = 1
Vì vậy:
56
gq mod p = 1
Bổ đề đã được chứng minh.
Bổ đề 2.2:
Cho p và q là 2 số nguyên tố với q là ước số của (p -1), h là một số nguyên
dương nhỏ hơn p và g = h
(p-1)/q
mod p. Nếu: (m mod q) = (n mod q) thì:
gm mod p = gn mod p.
Chứng minh:
Nếu: (m mod q) = (n mod q) thì: m = n + k.q hoặc: n = m + k.q, với k là
một số nguyên. Không làm mất tính tổng quát, giả sử: m = n + k.q.
Do đó:
gm mod p = gn + k.q mod p = gn. g
k.q mod p
= (gn mod p).(gk.q mod p) mod p
= (gn mod p). (gq mod p)k mod p
Theo Bổ đề 2.1 ta có:
gq mod p = 1
Nên:
gm mod p = (gn mod p). 1k mod p = gn mod p
Bổ đề đã được chứng minh.
Mệnh đề 2.1:
Cho p và q là 2 số nguyên tố với q là ước số của (p-1), h là một số nguyên
dương nhỏ hơn p và g = h
(p-1)/q
mod p, 1 < x, k < p, 1 < e1, e2 < q. Nếu:
y = g–x mod p, r = (gk mod p) mod q, s = k. e1
-1 + x. e2 mod q thì:
(g
e1.s . y
e1.e2 mod p) mod q = r.
Chứng minh:
Thật vậy, ta có:
s = k. e1
-1 + x. e2 mod q = e1
-1. (k + x.e1.e2) mod q
57
Nên:
e1. s mod q = k + x.e1.e2 mod q
Theo Bổ đề 2.2 ta có:
g
e1.s mod p = g
k + x.e1.e2 mod p
Suy ra:
g
e1.s . g
-x.e1.e2 mod p = g
k
mod p
Hay:
g
e1.s . y
e1.e2 mod p = g
k
mod p
Nên ta có:
(gk
mod p) mod q = (g
e1.s . y
e1.e2 mod p) mod q
Do:
r = (gk
mod p) mod q
Dẫn đến:
(g
e1.s . y
e1.e2 mod p) mod q = r
Đây là điều cần chứng minh.
Chứng minh tính đúng đắn của lược đồ LD 2.01 là chứng minh chữ k ý
được tạo ra bởi thuật toán hình thành chữ ký (Thuật toán 2.2) sẽ thỏa mãn
điều kiện (3.10) của thuật toán kiểm tra chữ ký (Thuật toán 2.3).
Tính đúng đắn của lược đồ LD 2.01 được chứng minh như sau:
Đặt: e1 = e, e2 = r. Theo (3.3), (3.4), (3.5), (3.6), (3.7) và Mệnh đề 2.1 ta
có:
(gs.e . yr.e mod p) mod q = r (3.11)
Từ (3.8), (3.11) ta có:
(gs.e . yr.e mod p) mod q = r (3.12)
Từ (3.9) và (3.12) suy ra: u = r.
Đây là điều cần chứng minh.
58
3.2.2.5 Mức độ an toàn của lược đồ LD 2.01
Mức độ an toàn của lược đồ mới đề xuất được đánh giá bằng:
a) Khả năng chống tấn công làm lộ khóa mật
Tương tự như DSA và GOST R34.10-94, khả năng chống tấn công làm lộ
khóa mật ở lược đồ mới đề xuất phụ thuộc vào mức độ khó của Bài toán
DLP(p,g). Một số dạng của giải thuật DLP(p,g)(.) đã được biết đến như các thuật
toán Baby-step Giant-step, Pollard’s rho, Pohlig-Hellman, Index-Calculus,...
[18], [22], [28].
Trong ứng dụng thực tế, các tham số hệ thống {p,q,g} của lược đồ
LD 2.01 có thể hình thành theo phương pháp của DSA đã được chỉ ra trong
FIPS 186-3 [19], hay theo phương pháp hình thành tham số của GOST
R34.10-94 [10]. Khi đó, từ (3.3), (3.4), (3.6), (3.7) cho thấy mức độ an toàn
xét theo khía cạnh chống tấn công làm lộ khóa mật của LD 2.01 là hoàn toàn
tương đương với DSA và GOST R34.10-94 nếu các điều kiện an toàn chỉ ra
sau đây được tuân thủ.
Điều kiện 2.1: Khóa bí mật x và k phải được chọn để việc tính:
x = DLP(p,g)(y) và: k = DLP(p,g)(r) là khó.
Cũng tương tự như DSA và GOST R34.10-94 nói riêng hay các lược đồ
chữ k ý họ ElGamal nói chung, một điểm yếu có thể tấn công làm lộ khóa mật
của LD 2.01 là khi giá trị của khóa k bị sử dụng lại trong các lần k ý khác
nhau.
Thật vậy, giả sử với cùng 1 giá trị của k được sử dụng để k ý hai thông điệp
dữ liệu khác nhau M1 và M2, khi đó các thành phần thứ hai của chữ k ý s1, s2
sẽ là:
s1 = k. e1
-1 + x. r mod q
s2 = k. e2
-1 + x. r mod q
59
với: r = (gk mod p) mod q, e1 = H(M1) và e2 = H(M2).
Từ hệ 2 phương trình 2 ẩn số trên đây có thể dễ dàng tính được khóa k, từ
đó tính được khóa bí mật x. Như vậy, một điều kiện cần thiết nữa để LD 2.01
an toàn đối với dạng tấn công làm lộ khóa mật là:
Điều kiện 2.2: Giá trị của k không được lặp lại ở các lần k ý khác nhau.
b) Khả năng chống tấn công giả mạo chữ ký .
Giả sử đối tượng k ý U có khóa bí mật là x và khóa công khai tương ứng là
y. Một đối tượng U* có thể mạo danh U để k ý lên một thông điệp dữ liệu M
bằng cách tạo ra chữ ký giả mạo (r*,s*) thỏa mãn điều kiện của thuật toán
kiểm tra (Thuật toán 2.3): r* = (gs*.e. yr*.e mod p) mod q. Khi đó, (r*,s*) sẽ
được công nhận là chữ k ý của U lên M, nghĩa là U* đã mạo danh U thành
công.
Thuật toán 2.4: Giả mạo chữ ký.
Input: p, q, g, y , H(.), M.
Output: (r*,s*) – chữ k ý của U lên M do U* tạo ra.
[1]. e ← H(M);
[2]. select r* : 1 < r* < q;
[3]. r’ ← r* + k. q, k ≥ 0, r’ < p;
[4]. s* ← logge r’.y
–r*.e mod p; (3.13)
[5]. return (r*,s*);
Nhận xét: Từ (3.13) cho thấy, để thực hiện Thuật toán 2.4, U* cần phải
giải được bài toán DLP(p,g). Nghĩa là, khả năng chống giả mạo chữ k ý của
lược đồ LD 2.01 phụ thuộc tính khó giải của bài toán DLP(p,g).
Thuật toán 2.5: Giả mạo chữ ký.
Input: p, q, g, y , H(.), M.
Output: (r*,s*) – chữ k ý của U lên M do U* tạo ra.
60
[1]. e ← H(M);
[2]. select s* : 1 < s* < q;
[3]. select r*: (r* + k.q). y– r*.e ≡ gs*.e mod p, k ≥ 0; (3.14)
[4]. return (r*,s*);
Nhận xét: Với Thuật toán 2.5, để chọn được (r*,s*) thỏa mãn (3.10), U*
cần phải giải được (3.14). Hiện thời đây là bài toán chưa có lời giải, song
cũng chưa có một kết quả nghiên cứu nào khẳng định là bài toán này không
thể giải được.
3.3 Xây dựng lược đồ chữ ký số tập thể
Hai lược đồ chữ ký tập thể đề xuất ở đây - k ý hiệu LD 2.02 và LD 2.03,
được phát triển từ lược đồ cơ sở LD 2.01 theo mô hình đề xuất ở Chương 1 và
có cùng nguyên tắc xây dựng với các lược đồ chữ k ý tập thể LD 1.02 và
LD 1.03 đã được trình bày ở Chương 2.
3.3.1 Lược đồ chữ ký tập thể LD 2.02
3.3.1.1 Thuật toán hình thành tham số và khóa.
Các tham số hệ thống được hình thành theo phương pháp của DSA hoặc
GOST R34.10-94 [10],[19],[20].
Thuật toán 2.6a: Hình thành khóa của U = {Ui| i = 1, 2,..,n}.
Input: p, g, n, KS = {xi| i = 1,2,…,n}.
Output: KP = {yi| i = 1, 2,..,n}.
[1]. for i = 1 to n do
[1.1]. yi ← g
- xi mod p; (3.15)
[1.2]. KP[i] ← yi;
[2]. return KP;
61
Thuật toán 2.6b: Hình thành khóa của CA.
Input: p, g, x
CA
.
Output: y
CA
.
[1]. y
CA
← g- xCA mod p; (3.16)
[2]. return (y
CA
);
3.3.1.2 Thuật toán chứng nhận và kiểm tra đối tượng k ý.
Thuật toán 2.7a: CA chứng nhận đối tượng ký Ui (i = 1,2,…,n).
Input: IDi, yi, xCA.
Output: (ui,vi) – chứng nhận của CA đối với Ui.
[1]. ki ← H(xCA||yi||IDi);
[2]. ui ← (g
ki mod p) mod q; (3.17)
[3]. e ← H(yi||IDi); (3.18)
[4]. vi ← ki. e
-1+ x
CA
. ui mod q; (3.19)
[5]. return (ui,vi);
Thuật toán 2.7b: Kiểm tra tính hợp pháp của đối tượng Ui (i = 1,2,…,n).
Input: yi, yCA, IDi, (ui,vi).
Output: (ui,vi) = true / false.
[1]. e ← H(yi||IDi); (3.20)
[2]. u ← (gvi.e . (y
CA
)ui.e mod p) mod q; (3.21)
[3]. if (u = ui) then {return true;}
else {return false;}
62
3.3.1.3 Thuật toán hình thành và kiểm tra chữ k ý tập thể.
Thuật toán 2.8: Hình thành chữ ký cá nhân của một hay một nhóm đối
tượng lên thông điệp dữ liệu M.
Input: M, n, KS = {xi| i = 1, 2,..,n}, KP = {yi| i = 1, 2,..,n}.
Output: (r,s) – chữ k ý của Ui (i = 1, 2,..,n) hay U lên M.
[1]. for i = 1 to n do
[1.1]. ki ← H(xi||M);
[1.2]. ri ← g
ki mod p; (3.22)
[1.3]. send ri to {U1, U2,...., Ui-1, Ui+1,..., Un};
[2]. r ← 1; for i = 1 to n do
r ← r . ri mod n; (3.23)
[3]. for i = 1 to n do
[3.1]. e ← H(M); (3.24)
[3.2]. si ← ki. e
-1+ xi. r mod q; (3.25)
[4]. s ← 1; for i = 1 to n do
[4.1]. if (ri ≠ g
si.e. (yi)
ri.e mod p) then return (0,0);
[4.2]. s ← s . si mod q; (3.26)
[5]. return (r,s);
Thuật toán 2.9: Hình thành chứng nhận của CA đối với chữ ký cá nhân
của một hay một nhóm đối tượng lên thông điệp M.
Input: p, q, g, x
CA
, n, KP = {yi| i = 1, 2,..,n}, (ui,vi), {M, (r,s)}.
Output: (u
M
,v
M
) – chứng nhận của CA đối với {M, (r,s)}.
[1]. y ← 1; for i = 1 to n do
[1.1]. e ← H(yi||IDi);
[1.2]. u ← (g
vi.e . (y
CA
)
ui.e mod p) mod q;
63
[1.3]. if (u ≠ ui) then return (0,0);
[1.4]. y ← y. yi mod p;
[2]. if ( r = 0 or s = 0) then {return (0,0);} else
[2.1]. e ← H(M);
[2.2]. u ← (gs.e . yr.e mod p) mod q;
[2.3]. if (u ≠ r) then {return (0,0);}
[3]. k ← H(x
CA
||y||M);
[4]. u
M
← (gk mod p) mod q; (3.27)
[5]. e ← H(y||M); (3.28)
[6]. v
M
← k. e-1 + x
CA
. u
M
mod q; (3.29)
[7]. return (u
M
,v
M
);
Thuật toán 2.10: Kiểm tra chữ ký tập thể của một hay một nhóm đối
tượng lên thông điệp dữ liệu M.
Input: p, q, g, n, yCA, , KP = {yi| i = 1, 2,..,n}, M, {(r,s), (uM,vM)}.
Output: {(r,s), (uM,vM)} = true / false.
[1]. y ← 1; for i = 1 to n do
[1.1]. e ← H(yi||IDi);
[1.2]. u ← (g
vi.e . (y
CA
)
ui.e mod p) mod q;
[1.3]. if (u ≠ ui) then return (0,0);
[1.4]. y ← y . yi mod p; (3.30)
[2]. if (u
M
= 0 or v
M
= 0) then return false;
[2.1]. e ← H(y||M); (3.31)
[2.2]. u ← (gvM.e . (y
CA
)uM.e mod p) mod q; (3.32)
[2.3]. if (u ≠ u
M
) then return false;
64
[3]. If ( r = 0 or s = 0) then {return (0,0);} else
[3.1]. e ← H(M); (3.33)
[3.2]. u ← (gs.e . yr.e mod p) mod q; (3.34)
[3.3]. if (u = r) then {return true;}
else {return false;}
3.3.1.4 Tính đúng đắn của lược đồ LD 2.02
Tính đúng đắn của lược đồ mới đề xuất bao gồm:
a) Tính đúng đắn của thuật toán chứng nhận và kiểm tra đối tượng k ý.
Đặt: e1 = e, e2 = ui, s = vi, x = xCA, y = yCA. Theo (3.16), (3.17), (3.19) và
Mệnh đề 2.1 ta có:
(g
vi.e . (y
CA
)
ui.e mod p) mod q = ui (3.35)
Từ (3.35) và (3.21) suy ra:
u = ui
Đây là điều cần chứng minh.
b) Tính đúng đắn của thuật toán hình thành và kiểm tra chữ k ý cá nhân.
Đặt: e1 = e, e2 = ui, s = si, x = xi, k = ki, y = yi , r = ri. Theo (3.22), (3.23),
(3.24), (3.25) và Mệnh đề 2.1, ta có:
(g
si.e . (yi)
ri.e mod p) mod q = ri
Đây là điều cần chứng minh.
c) Tính đúng đắn của thuật toán hình thành và kiểm tra chứng nhận của
CA đối với chữ k ý cá nhân của đối tượng k ý.
Đặt: e1 = e, e2 = uM, s = vM, y = yCA. Theo (3.16), (3.27), (3.28), (3.29) và
Mệnh đề 2.1, ta có:
(gvM.e . (y
CA
)uM.e mod p) mod q = u
M
(3.36)
65
Từ (3.30), (3.31), (3.32) và (3.36) suy ra:
u = u
M
Đây là điều cần chứng minh.
d) Tính đúng đắn của thuật toán hình thành và kiểm tra chữ k ý cá nhân của
một nhóm đối tượng k ý.
Mệnh đề 2.2:
Cho p và q là 2 số nguyên tố với q là ước số của (p -1), h là một số nguyên
dương nhỏ hơn p và g = h
(p-1)/q
mod p, 1 < xi, ki < p, 1 < e1, e2 < q. Nếu:
yi = g
–xi mod p, ri = g
ki mod p, si = ki. e1
-1 + xi. e2 mod q, y = Õ
=
n
i
iy
1
mod p,
r = (Õ
=
n
i
ir
1
mod p)mod q, s = å
=
n
i
is
1
mod q thì: (g
e1.s . y
e1.e2 mod p) mod q = r.
Chứng minh:
Thật vậy, ta có:
(g
e1.s . y
e1.e2 mod p) mod q =
= (g
e
1
.
å
=
n
i
ik
1 . (Õ
=
n
i
iy
1
mod p)
e
1
.e
2
mod p) mod q
= (g
e
1
. å
=
n
i 1
ki. e1
-1 + xi. e2
. g
-å
=
n
i 1
xi .e1. e2
mod p) mod q
= (g
å
=
n
i
ik
1 mod p) mod q = Õ
=
n
i
ir
1
mod q = r
Tính đúng đắn của thuật toán hình thành và kiểm tra chữ ký của một hoặc
một nhóm đối tượng k ý lên một thông điệp dữ liệu (M) được chứng minh như
sau:
Đặt: e1 = e, e2 = r. Theo (3.23), (3.24), (3.26), (3.30) và Mệnh đề 2.2, ta
có:
(gs.e . yr.e mod p) mod q = r (3.37)
66
Từ (3.37) và (3.34) suy ra:
u = r
Đây là điều phải chứng minh.
3.3.1.5 Mức độ an toàn của lược đồ LD 2.02
Mức độ an toàn của lược đồ chữ k ý tập thể LD 2.02 được thiết lập dựa trên
độ an toàn của lược đồ cơ sở LD 2.01. Vì vậy, lược đồ chữ k ý tập thể LD 2.02
cần phải tuân thủ các điều kiện an toàn đã được chỉ ra ở lược đồ cơ sở
LD 2.01. Ngoài ra, ở các lược đồ chữ ký tập thể còn tiềm ẩn các nguy cơ tấn
công giả mạo chữ k ý từ bên trong hệ thống [21],[31],[32],[33],[34],[35],[36].
Vấn đề này được xem xét dưới góc độ Bài toán giả mạo chữ ký như sau:
a) Bài toán giả mạo chữ k ý nhóm
Cho U và U* với U Ë U* là hai nhóm các đối tượng trong hệ thống tương
ứng với cặp tham số {p,q,g}. Khi này Bài toán giả mạo chữ ký nhóm có thể
được mô tả như sau:
Bài toán LD2(U,U*): Cho các tham số bí mật của các thành viên trong U*.
Khi đó với mỗi thông báo M, hãy tìm cặp {r,s} được chấp nhận theo điều kiện
của thuật toán kiểm tra chữ k ý (Thuật toán 2.10) với đầu vào là bộ tham số
công khai của U.
Mỗi giải thuật cho bài toán LD2(U,U*) được gọi là "thuật toán giả mạo chữ
ký của U lên M do U* thực hiện".
Để khảo sát tính an toàn của lược đồ LD 2.02, trước tiên cần xây dựng hai
giải thuật lần lượt cho các bài toán LD2(U,U*) và LD2(U',U*) với giả thiết:
U* = {U*i| i=1...m*}, U' = {U'i| i=1...m'}, U*ÇU' = Æ và U*ÈU' = U. (3.38)
67
Thuật toán 2.11. Thuật giải cho bài toán LD2(U,U*).
Input: p, q, g, M, (r’,s’) – chữ ký của U' lên M.
Output: (r,s) – chữ ký (giả mạo) của U lên M do U* tạo ra.
[1]. s* = 0;
[2]. for i = 1 to m* do
s* = s* + xi*. r’ mod q; (3.39)
[3]. s = s’ + s* mod q; (3.40)
[4]. r = r’; (3.41)
[5]. return (r,s);
Tính đúng đắn của Thuật toán 2.11 được chứng minh như sau:
Từ (3.39) với mọi: i = 1,2,..,m*, ta có:
g
si*.e . (yi*)
r’.e
mod p = g
xi*.r’.e . g
- xi*.r’.e mod p = 1 (3.42)
Với điều kiện (3.38), dễ dàng kiểm tra được rằng:
y = y'. (Õ
=
*
1
*
m
i
iy mod p) mod p (3.43)
Từ (3.42) và (3.43) ta có:
(gs.e . yr.e mod p) mod q =
= (g
(s' + å
*
=
*
m
i
is
1
). e . (y'. (Õ
=
*m
1i
*
iy mod p) mod p)
r.e
mod q
= (g
s'.e . (y')
r.e
. g
( å
*
=
*
m
i
is
1
). e .
)(
*
1
*Õ
=
m
i
iy
r.e mod p) mod q
= (g
s'.e . (y')
r’.e
. (Õ
=
*
1
m
i
g
si*. e . (yi*)
r’.e
mod p) mod p) mod q
= (gs'.e . (y')r’.e mod p) mod q = r' (3.44)
68
Từ (3.34), (3.41) và (3.44) suy ra:
u = r (3.45)
Từ (3.45) cho thấy, mặc dù (r,s) do U* tạo ra nhưng vẫn được công nhận
là chữ k ý hợp lệ của U lên M. Như vậy, Thuật toán 2.11 đã được chứng minh
là đúng.
Thuật toán 2.12. Thuật giải cho bài toán LD2(U',U*).
Input: p, q, g, M, (r,s) - chữ ký của U lên M.
Output: (r’,s’) - chữ ký (giả mạo) của U' lên M do U* tạo ra.
[1]. s* = 0;
[2]. for i = 1 to m* do
s* = s* + xi*. r mod q; (3.46)
[3]. s’ = s - s* mod q; (3.47)
[4]. r’ = r; (3.48)
[5]. return (r’,s’);
Chứng minh tính đúng đắn của Thuật toán 2.12.
Từ (3.46) với mọi: i = 1,2,..,m*, ta có:
g- si*.e . (yi*)
- r.e mod p = g- xi*.r.e . gxi*.r.e mod p = 1 (3.49)
Với điều kiện (3.38), dễ dàng kiểm tra được rằng:
y’ = y . Õ
=
-
*m
1i
1*
i )y( mod p (3.50)
Từ (3.49) và (3.50) ta có:
(gs’.e . (y’)r’.e mod p) mod q = (g(s - s*).e . (y’)r.e mod p) mod q
= (g
(s -å
*
=
*
m
i
is
1
). e
. (y. Õ
=
-
*m
1i
1*
i )y( mod p)
r.e
mod p)
mod q
69
= (gs.e . yr.e. g
( -å
*
=
*
m
i
is
1
). e .
)(
*
1
*Õ
=
m
i
iy
- r.e mod p) mod q
= (gs.e . yr.e . (Õ
=
*
1
m
i
g- si*.e . (yi*)
- r.e mod p) mod p) mod q
= (gs.e . yr.e mod p) mod q = r (3.51)
Từ (3.34), (3.48) và (3.51) suy ra:
u = r’ (3.52)
Từ (3.52) cho thấy, mặc dù (r’,s’) do U* tạo ra nhưng vẫn được công nhận
là chữ k ý hợp lệ của U’ lên M, nói cách khác Thuật toán 2.12 đã được chứng
minh là đúng.
b) Sự an toàn của lược đồ LD 2.02 trước các tấn công giả mạo chữ ký
nhóm.
Từ việc xem xét Bài toán LD2(U,U*) cho thấy nếu sử dụng mô hình chữ k ý
tập thể dạng kết hợp, mà ở đó CA cũng k ý trực tiếp lên thông điệp dữ liệu như
các thành viên của nhóm ký thì lược đồ chữ k ý tập thể sẽ không có khả năng
chống lại các tấn công giả mạo từ bên trong hệ thống.
Xây dựng theo mô hình chữ k ý tập thể dạng phân biệt, ở đó CA tạo chứng
nhận bằng cách ký lên thông điệp dữ liệu cần ký M và khóa công khai chung
của nhóm ký, lược đồ LD 1.02 có khả năng ngăn chặn hoàn toàn các dạng tấn
công giả mạo từ bên trong hệ thống đã biết trong thực tế.
3.3.2 Lược đồ chữ ký tập thể LD 2.03
Lược đồ LD 2.03 với các thuật toán hình thành tham số và khóa, thuật toán
chứng nhận và kiểm tra tính hợp pháp của các đối tượng k ý, thuật toán chứng
nhận của CA đối với chữ k ý cá nhân của một hay một nhóm đối tượng và
thuật toán kiểm tra chữ k ý tập thể được xây dựng hoàn toàn như các thuật
toán tương ứng của lược đồ LD 2.02. Riêng thuật toán hình thành chữ k ý cá
70
nhân của một nhóm đối tượng lên một thông điệp dữ liệu được xây dựng mới
với qui định về thứ tự k ý của các thành viên trong nhóm.
3.3.2.1 Thuật toán hình thành chữ ký cá nhân của một hay một nhóm đối
tượng k ý.
Giả sử nhóm ký gồm n-thành viên: U = {Ui| i=1,2,...,n}. Các thành viên
nhóm ký có khóa bí mật là: KS = {xi| i=1,2,...,n} và các khóa công khai tương
ứng là: KP = {yi| i=1,2,...,n}.
Thuật toán 2.13: Hình thành chữ ký cá nhân của một hay một nhóm đối
tượng lên thông điệp dữ liệu M.
Input: p, q, g, M, n, KS = {xi| i = 1, 2,..,n}, KP = {yi| i = 1, 2,..,n}.
Output: (r,s) – chữ ký của Ui (i = 1, 2,..,n) hay U lên M.
[1]. for i = 1 to n do
[1.1]. ki ← H(xi||M);
[1.2]. ri ← g
ki mod p; (3.53)
[1.3]. send ri to {U1, U2,..., Ui-1, Ui+1,..., Un}
[2]. r ← 1; for i = 1 to n do
r ← r . ri mod p; (3.54)
[3]. r ← r mod q; (3.55)
[4]. e ← H(M);
[5]. s0 ← 0, Y0 ← 1, R0 ← 1; for i = 1 to n do
[5.1]. Yi-1 ← y1 . y2 .... yi-1 mod p; (3.56)
[5.2]. Ri-1 ← r1 . r2 .... ri-1 mod p; (3.57)
71
[5.3]. if (Ri-1 ≠ (g
si-1.e . (Yi-1)
r.e
mod p)) then return (0,0); (3.58)
[5.4]. si ← si-1 + ki . e
-1+ xi . r mod q; (3.59)
[5.5] if (i < n) then {send si to Ui+1} else s = si;
[6]. return (r,s);
3.3.2.2 Tính đúng đắn của lược đồ LD 2.03
Tính đúng đắn của lược đồ mới đề xuất bao gồm:
a) Tính đúng đắn của các thuật toán chứng nhận và kiểm tra tính hợp pháp
của đối tượng k ý, thuật toán hình thành và kiểm tra chứng nhận của CA đối
với chữ k ý của một hay một nhóm đối tượng k ý, thuật toán kiểm tra chữ k ý
tập thể được chứng minh tương tự như các thuật toán tương ứng của lược đồ
LD 2.02.
b) Tính đúng đắn của thuật toán kiểm tra thứ tự k ý của các thành viên
trong một nhóm k ý.
Từ (3.59) ta có:
si-1 = si-2 + k1. e
-1 + x1. r mod q
= (k1+k2+...+ki-1). e
-1+(x1+x2+...+xi-1). r mod q (3.60)
Đặt: e1 = e, e2 = r, y = Yi-1, s = si-1. Theo (3.56), (3.57), (3.60) và
Mệnh đề 2.2, ta có:
(g
si-1.e . (Yi-1)
r.e
mod p) = Ri-1
Đây là điều phải chứng minh.
c) Tính đúng đắn của thuật toán hình thành và kiểm tra chữ k ý nhóm
Từ (3.59) ta có:
s = sm = (k1+k2+...+kn). e
-1 + (x1+x2+...+xn). r mod q
= e-1.å
=
n
i
ik
1
+ r. å
=
n
i
ix
1
mod q (3.61)
72
Do đó, nếu đặt: e1 = e, e2 = r. Theo (3.34), (3.56), (3.57), (3.61) và Mệnh
đề 2.2, ta có:
(gs.e . yr.e mod p) mod q = r (3.62)
Từ (3.34) và (3.62) suy ra:
u = r
Đây là điều phải chứng minh.
3.3.2.3 Mức độ an toàn của lược đồ LD 2.03
Việc phân tích, đánh giá mức độ an toàn của lược đồ LD 2.03 thực hiện
tương tự như với lược đồ LD 1.03 và LD 2.02.
3.4 Kết luận Chương 3
Các kết quả đã đạt được ở Chương 3 bao gồm 3 lược đồ chữ ký số mới,
trong đó có 1 lược đồ cơ sở xây dựng trên bài toán logarit rời rạc trong trường
hữu hạn nguyên tố theo cùng nguyên tắc với các lược đồ chữ k ý họ ElGamal
như các chuẩn chữ ký số DSS và GOST R34.10-94. Lược đồ này có ưu điểm
so với các lược đồ thuộc họ El Gamal là chỉ cần sử dụng một khóa bí mật duy
nhất để hình thành chữ ký, do đó đã khắc phục được yếu điểm của các lược
đồ họ ElGamal khi khóa thứ hai bị sử dụng lặp lại. Hai lược đồ chữ ký tập thể
là kết quả phát triển từ lược đồ cơ sở theo mô hình đã đề xuất ở Chương 1.
73
KẾT LUẬN
1. Những kết quả đã đạt được của Luận án:
- Đề xuất mô hình ứng dụng chữ ký số nhằm đáp ứng các yêu cầu về
chứng thực các thông điệp dữ liệu trong các giao dịch điện tử, có thể áp dụng
phù hợp trong các tổ chức xã hội, cơ quan hành chính nhà nước, các doanh
nghiệp,...
- Xây dựng 6 lược đồ chữ ký số, trong đó có 2 lược đồ cơ sở (LD 1.01,
LD 2.01) và 4 lược đồ chữ ký tập thể (LD 1.02, LD 1.03, LD 2.02, LD 2.03)
theo mô hình mới đề xuất.
2. Những đóng góp mới của Luận án:
- Mô hình chữ ký số tập thể: đây là mô hình ứng dụng chữ ký số nhằm đáp
ứng yêu cầu xác thực nguồn gốc và tính toàn vẹn cho các thông điệp dữ liệu ở
nhiều cấp độ khác nhau, ứng dụng phù hợp trong các tổ chức xã hội, các cơ
quan hành chính nhà nước, các doanh nghiệp,... Kết quả này được thể hiện ở
công trình số [4],[5] của Luận án.
- Lược đồ cơ sở LD 1.01: đây là một dạng thuật toán chữ k ý số mới được
xây dựng trên cơ sở bài toán khai căn trên vành Zn=p.q, trong đó {p,q} là các số
nguyên tố phân biệt. Kết quả này được thể hiện ở công trình số [5] của Luận
án.
- Lược đồ cơ sở LD 2.01: được xây dựng trên cơ sở bài toán logarit rời rạc
trên trường hữu hạn nguyên tố theo cùng nguyên tắc với các lược đồ chữ k ý
họ ElGamal (DSS, GOST R34.10-94). Lược đồ này có ưu điểm so với các
lược đồ họ El Gamal là chỉ cần sử dụng một khóa bí mật duy nhất để hình
thành chữ ký, do đó đã khắc phục được yếu điểm của các lược đồ họ ElGamal
khi khóa thứ hai bị sử dụng lặp lại. Kết quả này được thể hiện ở công trình số
[6],[7],[8] của Luận án.
74
- Các lược đồ chữ ký số tập thể: được phát triển từ các lược đồ cơ sở
(LD 1.01, LD 2.01) theo mô hình ứng dụng mới đề xuất, có thể đáp ứng yêu
cầu chứng thực các thông điệp dữ liệu trong các giao dịch điện tử áp dụng cho
các tổ chức xã hội, cơ quan hành chính nhà nước, các doanh nghiệp,... Kết
quả này được thể hiện ở công trình số [4],[5],[6] của Luận án.
75
DANH MỤC CÁC CÔNG TRÌNH CỦA TÁC GIẢ
1. Lưu Hồng Dũng, Trần Trung Dũng (2011), Xây dựng lược đồ đa chữ ký
số tuần tự, Tạp chí Khoa học và Kỹ thuật (Học viện KTQS), số 141 (06-
2011).
2. Lưu Hồng Dũng (2011), Phát triển lược đồ đa chữ ký số trên cơ sở bài
toán logarit rời rạc, Chuyên san Các công trình nghiên cứu, phát triển và
ứng dụng CNTT và TT (Bộ Thông tin và Truyền thông), tập V-1, số
5(25) (06-2011).
3. Lưu Hồng Dũng, Nguyễn Thị Thu Thủy (2012), Nghiên cứu xây dựng mô
hình tổng quát cho các lược đồ chữ ký số phân biệt trách nhiệm, Tạp chí
Khoa học và Kỹ thuật (Học viện KTQS), số 146 (02-2012).
4. Lưu Hồng Dũng (2012), Một mô hình mới cho các lược đồ chữ ký số, Tạp
chí Khoa học và Kỹ thuật (Học viện KTQS), số 147 (04-2012).
5. Lưu Hồng Dũng, Hoàng Văn Việt (2012), Xây dựng lược đồ chữ ký số
dựa trên hệ mật RSA, Tạp chí Khoa học và Kỹ thuật (Học viện KTQS),
số 148 (06-2012).
6. Lưu Hồng Dũng (2012), Nghiên cứu xây dựng lược đồ chữ ký số tập thể,
Chuyên san Các công trình nghiên cứu, phát triển và ứng dụng CNTT và
TT (Bộ Thông tin và Truyền thông), tập V-1, số 7(27) (05-2012).
7. Lưu Hồng Dũng, Tống Minh Đức, Trần Trung Dũng (2012), Nghiên cứu
xây dựng hệ tích hợp mật mã khóa công khai – chữ k ý số, Tạp chí Khoa
học và Kỹ thuật (Học viện KTQS), số 149 (08-2012).
8. Lưu Hồng Dũng (2012), Phát triển thuật toán mật mã khóa công khai dựa
trên hệ mật ElGamal, Chuyên san Các công trình nghiên cứu, phát triển
và ứng dụng CNTT và TT (Bộ Thông tin và Truyền thông), tập V-1, số
8(28) (12-2012).
76
TÀI LIỆU THAM KHẢO
1. Adams C. (1999), Understanding Public Key Infrastructures, New Riders
Publishing, Indianapolis.
2. Boeyen S., Howes T. and Richard P. (1999), Internet X.509 Public Key
Infrastructure Operational Protocols – LDAP2, RFC 2559.
3. Boneh D. (1999), “Twenty Years of Attacks on the RSA Cryptosystem”,
Notices of the American Mathematical Society, Vol. 46, No. 2, pp. 203-
213.
4. Boyd C. (1989), Digital multisignatures, Proc. IMA Conf. Crypto. Coding,
Oxford, pp. 241–246.
5. ElGamal T. (1985), “A public key cryptosystem and a signature scheme
based on discrete logarithms”, IEEE Transactions on Information Theory,
Vol. IT-31, No. 4, pp. 469 – 472.
6. Fegghi, J.(1999), Digital Certificates and Applied Internet Security,
Addison-Wesley Longman Inc.
7. Goldwasser S. and Bellare M. (1997), “Digital Signatures”, Lecture Notes
on Cryptography 1997, pp. 96-118.
8. Goldwasser S., Micali S. and Rivest R. (1988), “A digital signature
scheme secure against adaptive chosen-message attacks”, SIAM Journal of
Computing, Vol.17, No. 2, pp. 281-308.
9. Gordon D. (1993), “Discrete logarithms in GF(p) using the number field
sieve”, SIAM Journal on Discrete Mathematics, (6), pp. 124-138.
10. GOST R 34.10-94. Russian Federation Standard. Information Technology.
Cryptographic data Security. Produce and check procedures of Electronic
Digital Signature based on Asymmetric Cryptographic Algorithm.
Government Committee of the Russia for Standards, 1994 (in Russian).
11. Hans Delfs, Helmut Knebl (2007), Introduction to Cryptography: Principle
and Applications, Second Edition, Springer.
12. Housley R., Polk W., Ford W. and Solo D. (2002), Internet X.509 Public
Key Infrastructure Certificate and Certificate Revocation List (CRL)
Profile, RFC 3280.
13. Jonge W.D., Chaum D. (1986), “Attacks on Some RSA
Signatures”,Advances in Cryptology, Crypto '85 proceedings, Lectures
Notes In Computer Science, Vol. 218, Springer-Verlag, Berlin 1986, pp.
77
18-27.
14. Jonsson J., Kaliski B. (2003), Public-Key Cryptography Standards
(PKCS)#1: RSA cryptography specifications, Version 2.1. Internet Request
for Comments 3447 (RFC 3447),
15. Kocher P. (1996), “Timing Attacks on Implementations of Diffie-Hellman,
RSA, DSS, and Other Systems,” Proceeding of CRYPTO ’96, Springer-
Verlag 1996, pp. 104-113.
16. Lenstra A.K. and Verheul E.R. (2000), “Selecting Cryptographic Key
Sizes”, The 2000 International Workshop on Practice and Theory in Public
Key Cryptography (PKC2000), Melbourne, Australia (January 2000).
17. Maurer U.M. (1995), “Fast generation of prime numbers and secure
public-key cryptographic parameters”. Journal of Cryptology, 8: 123-155.
18. Menezes A., Van Oorschot P. and Vanstone S. (1996), Handbook of
Applied Cryptography, Boca Raton, Florida: CRC Press.
19. National Institute of Standards and Technology, NIST FIPS PUB 186-3.
Digital Signature Standard, U.S. Department of Commerce, 1994.
20. National Institute of Standards and Technology, U.S. Department of
Commerce. Secure Hash Standard, 2002. FIPS PUB 180-2.
21. Ohta K. and Okamoto T. (1999), “Multisignature schemes secure against
active insider attacks”, IEICE Trans. Fundamentals, E82-A(1), pp. 21–31.
22. Pollard J. (1978), “Monte Carlo methods for index computation mod p”,
Mathematics of Computation, (32), pp. 918-924.
23. Rivest R., Shamir A., Adleman L. (1978), “A Method for Obtaining
Digital Signatures and Public Key Cryptosystems”, Communications of
the ACM, Vol. 21, No. 2, pp. 120 – 126.
24. H. Riesel (1994), Prime Numbers and Computer Methods for
Factorization. Boston, Basel: BirkhÄauser.
25. RSA Laboratories (2002), PKCS #1 v2.1: RSA Encryption Standard.
26. Schnorr C. and Jakobsson M. (1976), “Security of Signed ElGamal
Encryption,” In Asiacrypt ’00, LNCS Vol. 1976, pp. 73–89.
27. Shannon C.E. (1949), “Communication theory of secrecy systems”. Bell
Systems Journal, 28: 656-715.
28. Stinson D.R. (2005), Cryptography: Theory and practice, third edition,
Chapman & Hall/CRC.
78
29. Tsiounis Y. and Yung M. (1998), “On the Security of ElGamal Based
Encryption,” In PKC ’98, LNCS Vol. 1431, pp. 117–134.
30. US Secure Hash Algorithm 1 (SHA1). Internet Request for Comments
3174 (RFC 3174), 2001.
31. Wiener M. (1990), “Cryptanalysis of short RSA secret exponents”, IEEE
Transactions on Information Theory, pp 553-558.
32. Williams H.C (1982), “A p+1 Method of factoring”. Math. Comp. 39,
225-234.
33. Zhang J. (2010), “Cryptographic Analysis of the Two Structured Multi-
signature Schemes”, Journal of Computational Information Systems Vol.6,
No.9, pp.3127-3135.
34. Zheng Y. and Seberry J. (1992), “Practical Approaches to Attaining
Security Against Adaptively Chosen Ciphertext Attacks”, Advances in
Cryptology - Crypto '92, pp. 292-304. Springer Verlag 1992.
35. Zheng Y., Seberry J. (1993), “Immunizing public key cryptosystems
against chosen ciphertext attacks”, IEEE Journal on Selected Areas in
Communications 11, pp. 715-724.
36. Zheng Y. (1994), “Improved public key cryptosystems secure against
chosen ciphertext attacks”, Technical Report 94-1 University of
Wollongong, Australia.
Các file đính kèm theo tài liệu này:
- luan_an_4887.pdf