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

Phát triển lược đồ chữ ký số mù

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 (234.16 KB, 9 trang )

Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)

PHÁT TRIỂN LƯỢC ĐỒ CHỮ KÝ SỐ MÙ
Nguyễn Tiền Giang, Nguyễn Đức Thụy, Lưu Hồng Dũng.
Cục Công Nghệ Thông Tin – Bộ QP, Trường Cao Đẳng Kinh Tế - Kỹ Thuật Thành Phố Hồ Chí Minh,
Khoa Cơng Nghệ Thơng Tin. Học Viện Kỹ Thuật Quân Sự.
Email: , ,
Tóm tắt— Bài báo đề xuất xây dựng 2 lược đồ chữ ký số mù
từ việc phát triển lược đồ chữ ký số trên cơ sở bài toán
logarithm rời rạc. Các lược đồ mới đề xuất ở đây có mức
độ an tồn cao hơn về khả năng chống tấn công làm lộ
nguồn gốc của bản tin được ký so với một số lược đồ đã
biết trước đó trong thực tế.
Từ khóa- Digital Signature, Blind Signature, Digital
Signature Scheme, Blind Signature Scheme.

I.

ĐẶT VẤN ĐỀ

Khái niệm chữ ký số mù được đề xuất bởi D. Chaum vào
năm 1983 [1], đây là một loại chữ ký số được sử dụng để xác
thực tính tồn vẹn của một bản tin điện tử và danh tính của
người ký, nhưng khơng cho phép xác thực nguồn gốc thực sự
của bản tin được ký. Nói cách khác, loại chữ ký này cho phép
ẩn danh người tạo ra bản tin được ký. Trong [2-4] đã chỉ ra
ứng dụng của loại chữ ký này khi cần bảo vệ tính riêng tư của
các khách hàng trong các hệ thống thanh toán điện tử hay vấn
đề ẩn danh của cử tri trong việc tổ chức bầu cử trực tuyến [5].
Một điểm cần chú ý ở đây là, với các loại chữ ký số thơng
thường thì người ký cũng chính là người tạo ra bản tin được


ký, cịn với chữ ký số mù thì người ký và người tạo ra bản tin
được ký là 2 đối tượng hoàn toàn khác nhau. Đây là tính chất
đặc trưng của chữ ký số mù và cũng là một tiêu chí quan trọng
để đánh giá mức độ an toàn của loại chữ ký số này.
Trong [1-5] các tác giả đã đề xuất một số lược đồ chữ ký số
mù ứng dụng khi cần bảo vệ tính riêng tư của các khách hàng
trong các hệ thống thanh toán điện tử hay vấn đề ẩn danh của
cử tri trong việc tổ chức bầu cử trực tuyến. Tuy nhiên, điểm
yếu chung của các lược đồ trên là khơng có khả năng chống lại
kiểu tấn cơng làm lộ nguồn gốc của bản tin được ký, vì thế khả
năng ứng dụng của các lược đồ này trong thực tế là rất hạn chế.
Nội dung bài báo tập trung phân tích điểm yếu có thể tấn cơng
làm lộ nguồn gốc bản tin được ký của một số lược đồ chữ ký số
mù đã được cơng bố, từ đó đề xuất xây dựng một lược đồ mới
có độ an tồn cao hơn về khả năng giữ bí mật nguồn gốc của
bản tin được ký có thể đáp ứng các yêu cầu mà thực tế đặt ra.
II.

TẤN CÔNG LÀM LỘ NGUỒN GỐC BẢN TIN ĐỐI
VỚI MỘT SỐ LƯỢC ĐỒ CHỮ KÝ SỐ MÙ.

2.1. Tấn công lược đồ chữ ký số mù RSA
2.1.1. Lược đồ chữ ký số mù RSA

112

Lược đồ chữ ký số mù RSA được phát triển từ lược đồ chữ
ký số RSA [6]. Lược đồ chữ ký số mù RSA có thể mơ tả như
sau: Giả sử A là người ký có khóa bí mật (d), cơng khai (n,e)
được hình thành theo lược đồ chữ ký RSA. B là người tạo ra

bản tin M và yêu cầu A ký lên M (người yêu cầu ký). Để che
dấu danh tính của B sau khi bản tin M đã được ký, thủ tục
hình thành chữ ký (“ký mù”) được thực hiện qua các bước như
sau:
Bước 1: B làm “mù” bản tin M bằng cách chọn ngẫu nhiên
một giá trị k thỏa mãn: 1 < k < n và k nguyên tố cùng nhau
với n (gcd(k,n) = 1), sau đó B tính: m' = m × k mod n , ở
đây: m = H (M ) là giá trị đại diện của bản tin cần ký M và
H(.) là hàm băm kháng va chạm. B gửi bản tin đã được làm
mù (m’) cho A.
Bước 2: A sẽ ký lên m’ bằng thuật toán ký của lược đồ
e

RSA: s' = ( m' ) mod n rồi gửi lại s’ cho B.
Bước 3: B “xóa mù” s’ và nhận được chữ ký s như sau:
d

s = s'×k −1 mod n .
Việc kiểm tra tính hợp lệ của s và do đó là tính tồn vẹn
của M được thực hiện như ở lược đồ RSA. Vấn đề ở đây là,
một đối tượng bất kỳ có thể kiểm tra tính hợp lệ của s, từ đó
khẳng định tính tồn vẹn của M và danh tính người ký bằng
thuật tốn kiểm tra RSA, nhưng khơng thể xác định được bản
tin M là do ai tạo ra. Nghĩa là danh tính của B đã được giấu
kín.
2.1.2. Tấn cơng làm lộ nguồn gốc bản tin được ký
Với lược đồ chữ ký số mù RSA như đã mô tả ở trên, việc
xác định danh tính của người tạo ra bản tin được ký M là có
thể thực hiện được. Bởi vì tại thời điểm ký, người ký (A) chỉ
khơng biết nội dung của M, nhưng danh tính của B thì A hồn

tồn biết rõ, điều này là hiển nhiên vì A chỉ ký khi biết rõ B là
ai. Giả sử danh tính của B được ký hiệu là IDB, để xác định
danh tính của người yêu cầu ký từ bản tin M và chữ ký s tương
ứng sau thời điểm ký (khi M và s đã được công khai), ở mỗi
lần ký chỉ cần A lưu trữ giá trị s’ và IDB trong một cơ sở dữ
liệu. Từ đó, việc xác định danh tính của người yêu cầu ký IDB từ bản tin được ký M và chữ ký s là hồn tồn có thể thực
hiện được bằng một thuật toán như sau:
Thuật toán 1.1:
Input: (M,s), {(si’, IDBi)| i=0,1,2,…N}.
Output: IDBi.
[1]. m ← H (M ) , i = 0


Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
[2]. select:

Output: IDBi.
[1]. m ← H (M ) , i = 0

( si ' , IDBi )

[3]. k ∗ ← si '×m − d mod n

[2]. select:

gcd(k ∗ , n) ≠ 1 then
[4.1]. i ← i + 1

[4]. if


−1

[3]. α ← mi '×m −1 × r × (R') mod q

(

[5]. R ← (Ri ' ) × g mod p
α

( s ≠ s ) then
[6.1]. i ← i + 1


có khóa bí mật

β

[6]. r ∗ ← R mod q

[6.2]. goto [2]
[7]. return IDBi
Nhận xét:
Từ Thuật tốn 1.1 cho thấy, nếu N khơng đủ lớn thì việc
xác định được danh tính của người yêu cầu ký (người tạo ra
bản tin được ký) là hồn tồn có thể thực hiện được. Nói cách
khác, lược đồ chữ ký số mù RSA là khơng an tồn nếu số
lượng bản tin được ký không đủ lớn.
2.2. Tấn công lược đồ chữ ký số mù DSA
2.2.1. Lược đồ chữ ký số mù DSA
Từ lược đồ chữ ký số DSA [8], nhóm tác giả Jan L.

Camenisch, Jean-Marc Piveteau, Markus A. Stadler đề xuất
một lược đồ chữ ký số mù [8] với thủ tục hình thành tham số
hệ thống bao gồm một số nguyên tố p, một số nguyên tố q là
ước của (p-1) và phần tử sinh

)

[4]. β ← m −1 × s − si '×r × (R ' )−1 mod q

[4.2]. goto [2]
[5]. s ∗ ← si '×(k ∗ ) −1 mod n
[6]. if

( Ri ' , mi ' , si ' , IDBi )

g ∈ Z *p có bậc là q. Người ký

x ∈ Z q và khóa cơng khai tương ứng là

(r ∗ ≠ r ) then
[7.1]. i ← i + 1

[7]. if

[7.2]. goto [2]
[8]. return IDBi
Nhận xét:
Tương tự như với lược đồ chữ ký mù RSA, từ Thuật tốn
1.2 cho thấy, nếu N khơng đủ lớn thì việc xác định được danh
tính của người yêu cầu ký (người tạo ra bản tin được ký) là

hồn tồn có thể thực hiện được. Nói cách khác, lược đồ chữ
ký số mù DSA cũng sẽ khơng an tồn xét theo khía cạnh
chống tấn công làm lộ nguồn gốc bản tin nếu số lượng bản tin
được ký không đủ lớn.
2.3. Tấn công lược đồ chữ ký số mù Nyberg-Rueppel
2.3.1. Lược đồ chữ ký số Nyberg-Rueppel
Tham số hệ thống của lược đồ chữ ký số do K. Nyberg và
R. A. Rueppel đề xuất [7] được lựa chọn tương tự như ở lược
đồ DSA. Để ký lên một bản tin M có giá trị đại diện m ∈ Z p ,

y = g mod p . Thủ tục hình thành chữ ký “mù” bao gồm các

người ký chọn ngẫu nhiên một giá trị k ∈ Z q và tính:

bước như sau:
1. a) Người ký (A) chọn một giá trị

r = m × g k mod p
s = k + x.r mod q
Chữ ký lên bản tin M ở đây là cặp (r,s). Chữ ký được coi là
hợp lệ nếu thỏa mãn phương trình kiểm tra:

x

k ∈ Z q và tính

R ' = g mod p
k

b) A kiểm tra nếu gcd( R ' , q ) ≠ 1 thì thực hiện lại bước

a). Ngược lại, A gửi R cho người yêu cầu ký (B).
2. a) Người yêu cầu ký B chọn 2 giá trị α , β ∈ Z q và tính
R = (R' ) × g β mod p .
α

b) B kiểm tra nếu gcd( R ' , q ) = 1 thì tính tiếp giá trị

m' = α × m × R '×R −1 mod q rồi gửi m’ cho A. Nếu
điều kiện chỉ ra không thỏa mãn, B thực hiện lại bước
a).
3. Người ký A tính giá trị s ' = ( k × m '+ x × R ' ) mod q rồi
gửi cho B.
4. Người yêu cầu ký B tính các thành phần (r,s) của chữ
ký: r = R mod q , s = ( s '× R × (R ' )−1 + β × m ) mod q .
Thủ tục kiểm tra tính hợp lệ của chữ ký hồn toàn tương
tự như ở lược đồ chữ ký DSA.
2.2.2. Tấn công làm lộ nguồn gốc bản tin được ký
Để tấn công làm lộ nguồn gốc bản tin được ký M, người
ký A cần lưu trữ giá trị các tham số {R’,m’,s’} và IDB ở mỗi
lần ký. A có thể xác định được danh tính của B bằng Thuật
tốn 1.2 như sau:
Thuật toán 1.2:
Input: (M,r,s), {(Ri’, mi’,si’,IDBi)| i=0,1,2,…N}.

113

m = y − s × g r × r mod p
Ở đây m là giá trị đại diện của bản tin cần thẩm tra M:
m = H (M ) , với H(.) là hàm băm.
2.3.2. Lược đồ chữ ký số mù Nyberg-Rueppel

Cũng nhóm tác giả Jan L. Camenisch, Jean-Marc
Piveteau, Markus A. Stadler [8] đã đề xuất một lược đồ chữ ký
số mù được phát triển từ lược đồ chữ ký Nyberg-Rueppel với
thủ tục hình thành chữ ký “mù” bao gồm các bước như sau:
1. Người ký (A) chọn một giá trị k ∈ Z q và tính

r ' = g k mod p rồi gửi cho người yêu cầu ký (B).
2. a) B chọn ngẫu nhiên giá trị

α ∈ Z q , β ∈ Z q*

và tính

β
r = m × g α × (r ' ) mod p , m' = r × β −1 mod q .

b) B kiểm tra nếu

m' ∈ Z q* thì gửi m’ cho người ký A.

Ngược lại, B thực hiện lại bước a).
3. A tính giá trị s' = (k + x × m' ) mod q rồi gửi cho B.
4. B tính s = ( s '× β + α ) mod q và chữ ký của A lên M là
cặp (r,s).


Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Thủ tục kiểm tra tính hợp lệ của chữ ký tương tự như ở
lược đồ chữ ký Nyberg-Rueppel. Nghĩa là: chữ ký (r,s) được
coi là hợp lệ nếu thỏa mãn phương trình kiểm tra:

m = y − s × g r × r mod p
Ở đây m là giá trị đại diện của bản tin cần thẩm tra M.
2.3.3. Tấn công làm lộ nguồn gốc bản tin được ký
Để tấn công làm lộ nguồn gốc bản tin được ký M, người ký
A cần lưu trữ giá trị các tham số {r’,m’,s’} và IDB ở mỗi lần
ký. Từ đó, A có thể xác định được danh tính của B bằng thuật
tốn như sau:
Thuật tốn 1.3:
Input: (M,r,s), {(ri’, mi’,si’, IDBi)| i=0,1,2,…N}.
Output: IDBi.
[1]. m ← H (M ) , i = 0
[2]. select: (ri ' , mi ' , si ' , IDBi )
[3]. β ← r × (mi ' )−1 mod q
[4]. α ← ( s − si '×β ) mod q
[5]. r * = m × g α × (ri ' )β mod p

( r* ≠ r ) then
[6.1]. i ← i + 1

[6]. if

[6.2]. goto [2]
[7]. return IDBi
Nhận xét:
Tương tự như 2 thuật toán ký mù đã xét ở trên, Thuật
toán 1.3 cho thấy lược đồ chữ ký mù Nyberg-Rueppel là
khơng an tồn nếu số lượng bản tin được ký khơng đủ lớn, khi
đó việc xác định nguồn gốc bản tin là có thể thực hiện được.
2.4. Tấn công lược đồ chữ ký số mù Moldovyan
2.4.1. Lược đồ chữ ký số mù Moldovyan

Đây là lược đồ chữ ký số mù được N.A. Modovyvan [9]
đề xuất trên cơ sở phát triển từ chuẩn chữ ký số của
Belarusian STB 1176.2-9 [12]. Các tham số hệ thống bao gồm
2 số nguyên tố p, q thỏa mãn: q|(p-1) và phần tử sinh g ∈ Z *p
có bậc là q. Người ký có khóa bí mật x ∈ Z q và khóa cơng
khai tương ứng là y = g x mod p . Thủ tục hình thành chữ ký
“mù” bao gồm các bước như sau:
1. Người ký A chọn ngẫu nhiên một giá trị k thỏa mãn:
1 < k < q và tính T = g k mod p rồi gửi T cho người
yêu cầu ký B.
2. B chọn ngẫu nhiên 2 giá trị τ và ϵ rồi tính:
T ' = T × yτ × g ε mod p , e' = FH (T ' || M ) và e = (e'−τ ) mod q , ở
đây: FH(.) là hàm băm và “||” là toán tử nối 2 xâu bit .
Sau đó B gửi e cho A.
3. A tính giá trị s = ( k − x × e) mod q rồi gửi cho B.
4. B tính thành phần thứ 2 của chữ ký: s' = (s + ε ) mod q và
chữ ký của A lên M là cặp (e' , s ' ) .
Thủ tục kiểm tra tính hợp lệ của chữ ký tương tự như ở
STB 1176.2-9, như sau:
1. Kiểm tra nếu: 1 < s ' < q và 0 < e' < q thì chuyển sang bước
2. Ngược lại, (e' , s ' ) sẽ bị từ chối về tính hợp lệ.
2. Tính giá trị: T ∗ = g s ' × y e' mod p

114

3. Tính giá trị: e∗ = FH (T ∗ || M )

e∗ = e' thì (e' , s ' ) được công nhận hợp
lệ. Ngược lại, (e' , s ' ) sẽ bị từ chối.


4. Kiểm tra nếu:

2.4.2. Tấn công làm lộ nguồn gốc bản tin được ký
Để tấn công làm lộ nguồn gốc bản tin được ký M, người ký
A cần lưu trữ giá trị các tham số {T,e,s} và IDB ở mỗi lần ký.
Từ đó, A có thể xác định được danh tính của B bằng Thuật
tốn 1.4 như sau:
Thuật toán 1.4:
Input: (M,e’,s’), {(ei, si,Ti, IDBi)| i=0,1,2,…N}.
Output: IDBi.
[1]. m ← H (M ) , i = 0
[2]. select: (ei , si , Ti , IDBi )
[3]. τ ← (e'−ei ) mod q
[4]. ε ← ( s '− si ) mod q
[5]. T ∗ = Ti × y τ × g ε mod p
[6]. e∗ = FH (T ∗ || M )

(e∗ ≠ e' ) then
[7.1]. i ← i + 1

[7]. if

[7.2]. goto [2]
[8]. return IDBi
Nhận xét:
Tương tự như các thuật toán ký mù đã xét ở trên, Thuật
toán 1.4 cho thấy lược đồ chữ ký mù Moldovyan là khơng an
tồn nếu số lượng bản tin được ký (N) khơng đủ lớn, khi đó
việc xác định nguồn gốc bản tin là có thể thực hiện được.
III.


XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ MÙ

Qua phân tích các lược đồ chữ ký số mù trên đây đã cho
thấy việc làm “mù” bản tin với một tham số bí mật như ở lược
đồ chữ ký số mù RSA, hay với 2 tham số như ở các lược đồ
DSA, Nyberg-Rueppal và Moldovyan thì người ký vẫn có thể
tìm được nguồn gốc thực sự của bản tin được ký (danh tính
của người yêu cầu ký). Mục này đề xuất việc phát triển lược
đồ chữ ký số mù từ một lược đồ chữ ký cơ sở được cải tiến từ
lược đồ chữ ký Schnorr [13] và một lược đồ xây dựng trên bài
toán logarit rời rạc – DLP (Discrete Logarithm Problem) [14].
Ưu điểm của các lược đồ mới này là cũng chỉ sử dụng 2 tham
số bí mật như ở các lược đồ mù DSA, Nyberg-Rueppal hay
Moldovyan,... nhưng không cho phép người ký hay bất kỳ
một đối tượng nào khác có thể xác định được nguồn gốc thực
sự của bản tin như ở các lược đồ đã được cơng bố trước đó [15].
3.1. Xây dựng lược đồ chữ ký cơ sở

3.1.1. Lược đồ chữ ký cơ sở LD 15.01A
Lược đồ chữ ký cơ sở ở đây, ký hiệu LD 15.01A, được
cải tiến từ lược đồ chữ ký do C. Schnorr đề xuất vào năm 1991
và được sử dụng làm cơ sở để phát triển lược đồ chữ ký số mù
ở phần tiếp theo. Lược đồ chữ ký LD 15.01A bao gồm các
thuật tốn hình thành tham số và khóa, thuật tốn hình thành
và kiểm tra chữ ký như sau:
a) Thuật tốn hình thành tham số và khóa


Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Cơng Nghệ Thơng Tin (ECIT 2015)

Thuật tốn 2.1a:
Input: p, q|(p-1), x – khóa bí mật của A.
Output: g, y, H(.).
[1]. g ← h ( p −1) / q mod p , 1 < h < p
[2]. select H : {0,1} a Z t , q < t < p


[3]. y ← g − x mod p
[4]. return {g,y,H(.)}

(2.1a)

b) Thuật toán ký

Thuật toán 2.2a:
Input: p, q, g, x, k, M – bản tin cần ký.
Output: (e,s) – chữ ký của A lên M.
[1]. r ← g k mod p
(2.2a)
[2]. e ← H (r || M ) mod q
(2.3a)
[3]. s ← ( k + x × e) mod q
(2.4a)
[4]. return (e,s)
Chú thích:
- Tốn tử “||” ở đây là phép nối 2 xâu bit.
c) Thuật toán kiểm tra
Thuật toán 2.3a:
Input: p, q, g, y, M, (e,s).
Output: (e,s) = true / false .

[1]. u ← g s × y e mod p
(2.5a)
[2]. v ← H (u || M ) mod q
(2.6a)
[3]. if ( v = e ) then {return true }
else {return false }
Chú thích:
- Nếu kết quả trả về true thì chữ ký (e,s) hợp lệ, do đó
nguồn gốc và tính tồn vẹn của bản tin cần thẩm tra M được
công nhận.
- Nếu kết quả trả về là false thì chữ ký (e,s) là giả mạo, hoặc
nội dung bản tin M đã bị sửa đổi.
d) Tính đúng đắn của lược đồ cơ sở LD 15.01A
Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố
thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với:

1 < h < p , H : {0,1} a Z t với: q < t < p ,

1 < x, k < q ,

y = g − x mod p ,

r = g k mod p , e = H (r || M ) mod q ,

s = ( k + x × e ) mod q

.

Nếu:


u = g s × y e mod p

v = H (u || M ) mod q

thì: v = e .
Thật vậy, từ (2.1a), (2.3a), (2.4a) và (2.5a) ta có:
u = g s × y e mod p = g k + x.e × g − x.e mod p

= g x.e+ k − x.e mod p = g k mod p
Từ (2.2a) và (2.7a), suy ra:

u=r
Thay (2.8a) vào (2.6a) ta được:
v = H (u || M ) mod q = H (r || M ) mod q
Từ (2.3a) và (2.9a), suy ra: v = e
Đây là điều cần chứng minh.
e) Mức độ an toàn của lược đồ cơ sở

115

(2.7a)

(2.8a)
(2.9a)



Mức độ an toàn của một lược đồ chữ ký số nói chung được
đánh giá qua các khả năng:
- Chống tấn cơng làm lộ khóa mật.

- Chống tấn công giả mạo chữ ký.
Về khả năng chống tấn công làm lộ khóa mât: Từ (2.1a)
cho thấy mức độ an tồn xét theo khả năng chống tấn cơng
làm lộ khóa mật của lược đồ cơ sở phụ thuộc vào mức độ khó
giải của bài tốn logarit rời rạc, hồn tồn tương tự như với
các lược đồ chữ ký DSA [9] , GOST R34.10-94 [10] và
Schnorr [13].
Về khả năng chống tấn công giả mạo chữ ký: Từ (2.3a),
(2.5a) và (2.6a) của lược đồ cơ sở cho thấy, một cặp (e,s) bất
kỳ (khơng được tạo ra bởi Thuật tốn ký 2.2a của lược đồ và
từ khóa bí mật x của người ký) nhưng vẫn sẽ được công nhận
là chữ ký hợp lệ của đối tượng sở hữu khóa cơng khai y lên
bản tin M nếu thỏa mãn điều kiện:
(2.10a)
e = H (( g s × y e mod p) || M ) mod q
Tương tự như ở lược đồ chữ ký Schnorr, có thể thấy rằng
(2.10a) là một dạng bài tốn khó nếu các tham số p, q và kích
thước của dữ liệu đầu ra hàm băm H(.) được chọn đủ lớn.
3.1.2. Lược đồ chữ ký cơ sở LD 15.01B
Lược đồ chữ ký cơ sở đề xuất ở đây, ký hiệu LD 15.01B,
được xây dựng dựa trên tính khó của bài tốn DLP và được sử
dụng để phát triển lược đồ chữ ký số mù trong phần tiếp theo.
a) Thuật tốn hình thành tham số và khóa
Thuật tốn 21b:
Input: p, q|(p-1), x – khóa bí mật của A.
Output: g, y, H(.).
[1]. g ← h ( p −1) / q mod p , 1 < h < p
[2]. select H : {0,1}∗ a Z t , q < t < p
−1


[3]. y ← g x mod p
[4]. return {g,y,H(.)}
b) Thuật toán ký
Thuật toán 2.2b:
Input: p, q, g, x, k, M – bản tin cần ký.
Output: (e,s) – chữ ký của A lên M.
[1]. r ← g k mod p
[2]. e ← H (r || M ) mod q
[3]. s ← x × ( k + e ) mod q
[4]. return (e,s)

(2.1b)

(2.2b)
(2.3b)
(2.4b)

c) Thuật toán kiểm tra
Thuật toán 2.3b:
Input: p, q, g, y, M, (e,s).
Output: (e,s) = true / false .
[1]. u ← g − e × y s mod p
[2]. v ← H (u || M ) mod q
[3]. if ( v = e ) then {return true }
else {return false }

d) Tính đúng đắn của lược đồ cơ sở LD 15.01B

(2.5b)
(2.6b)



Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)

Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố
thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với:

1 < h < p , H : {0,1}∗ a Z t với: q < t < p ,

1 < x, k < q ,

−1

y = g x mod p ,
r = g k mod p , e = H (r || M ) mod q ,
s = x × ( k + e ) mod q . Nếu: u = g − e × y s mod p và

v = e.
Thật vậy, từ (2.1b), (2.3b), (2.4b) và (2.5b) ta có:

v = H (r || M ) mod q thì:

u = g − e × y s mod p = g − e × g x. x
=g

e +k −e

−1

.( k + e )


mod p

(2.7b)

mod p = g mod p
k

Từ (2.2b) và (2.7b), suy ra:

u=r
(2.8b)
Thay (2.8b) vào (2.6b) ta được:
(2.9b)
v = H (u || M ) mod q = H ( r || M ) mod q
Từ (2.3b) và (2.9b), suy ra: v = e
Đây là điều cần chứng minh.
e) Mức độ an toàn của lược đồ cơ sở LD 15.01B
Tương tự lược đồ LD 15.01A, mức độ an toàn xét theo
khả năng chống tấn cơng làm lộ khóa mật của lược đồ LD15.01B phụ thuộc vào mức độ khó giải của bài tốn logarit rời
rạc, cịn khả năng chống tấn cơng giả mạo chữ ký phụ thuộc
vào độ khó của việc giải (2.10b):
(2.10b)
e = H (( g − e × y s mod p) || M ) modq
3.2. Xây dựng lược đồ chữ ký số mù
3.2.1. Lược đồ chữ ký số mù LD 15.02A
Lược đồ chữ ký số mù ở đây được phát triển từ lược đồ
cơ sở LD 15.01A. Giả sử A là người người ký có khóa cơng
khai được hình thành theo Thuật tốn 2.1a của lược đồ cơ sở
và B là người tạo ra bản tin M được ký. Khi đó, thuật tốn ký

và kiểm tra chữ ký của lược đồ được chỉ ra như sau:
a) Thuật toán ký
Thuật toán 3.1a:
Input: p, q, g, x, y, α, β, k , M.
Output: (e,s).
[1]. ra ← g k mod p
(3.1a)
[2]. rb ← (ra )α × ( y × g )β mod p
[3]. e ← H (rb || M ) mod q
[4]. eb ← α × (e − β ) mod q
[5]. s a ← (k + x × eb ) mod q
[6]. s ← (α × sa + β ) mod q
−1

(3.2a)
(3.3a)

(3.4a)
(3.5a)
(3.6a)

[7]. return (e,s)
Chú thích:
- Các bước [1], [5] do người ký A thực hiện.
- Các bước [2], [3], [4], [6] và [7] do người có bản tin
cần ký B thực hiện.
- Tham số k do A lựa chọn thỏa mãn: 1< k < q.
- Tham số α, β do B lựa chọn thỏa mãn: 1 < α, β < q.
- {x,y} là cặp khóa bí mật/cơng khai của A.
b) Thuật toán kiểm tra


Thuật toán 3.2a:
Input: p, q, g, y, M – bản tin cần thẩm tra, (e,s) – chữ
ký của A.

116

Output: (e,s) = true / false .
[1]. u ← g s × y e mod p
[2]. v ← H (u || M ) mod q
[3]. if ( v = e ) then {return true }

(3.7a)
(3.8a)

else {return false }
Chú thích:
- Nếu kết quả trả về true thì tính hợp lệ của chữ ký (e,s)
được cơng nhận, do đó tính tồn vẹn của bản tin cần thẩm tra
M và danh tính của người ký (A) được khẳng định.
- Nếu kết quả trả về là false thì chữ ký (e,s) là giả mạo, hoặc
nội dung bản tin M đã bị sửa đổi.
c) Tính đúng đắn của lược đồ LD 15.02A
Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố
thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với:
1 < h < p , H : {0,1}∗ a Z q ,
y = g − x mod p ,

1 < x, k < q , 1 < α , β < q ,


ra = g mod p ,
k

e = H (rb || M ) mod q

,

sa = (k + x × eb ) mod q

α
β
rb = (ra ) × ( y × g ) mod p ,
,
eb = α −1 × ( e − β ) mod q

s = (α × s a + β ) mod q .

,

Nếu:

u = ( g ) × ( y ) mod p và v = H (u || M ) mod q thì: v = e .
Thật vậy, từ (3.4a), (3.5a), (3.6a) và (3.7a) ta có:
u = g s × y e mod p
e

s

= g (α .sa + β ) × y (α .eb + β ) mod p
= g α .( k + x.eb ) + β × g − x.(α .eb + β ) mod p

= g k .α × g x.eb .α × g β × g − x.eb .α × g − x.β mod p

(3.9a)

( ) × (g ) × g mod p
= (r ) × y × g mod p
= gk

α

α

−x β

β

β

β

a

α

= (ra ) × ( y × g ) β mod p
Từ (2.1a), (3.1a) và (3.9a) ta có:

( ) × (g )

u = g −β × g −x


β

−k α

mod p

(3.10a)

= (ra ) × g × y mod p
Từ (3.2) và (3.10), suy ra:
α

−β

u = rb

β

(3.11a)

Thay (3.11a) vào (3.8a) ta có:
(3.12a)
v = H (u || M ) mod q = H (rb || M ) mod q
Từ (3.2a) và (3.12a), suy ra: v = e . Đây là điều cần chứng
minh.
d) Mức độ an toàn của lược đồ LD 15.02A
Tương tự như với lược đồ cơ sở, mức độ an toàn của lược
đồ chữ ký mù mới đề xuất cũng được đánh giá qua các khả
năng:

- Chống tấn cơng làm lộ khóa mật.
- Chống giả mạo chữ ký.
Ngoài ra, với một lược đồ chữ ký số mù, mức độ an tồn
của nó cịn được đánh giá qua khả năng chống tấn công làm lộ
nguồn gốc bản tin sau khi được ký. Yêu cầu đặt ra đối với
lược đồ mới đề xuất là bản tin M sau khi đã được ký, thì người
ký A hay bất kỳ một đối tượng sử dụng nào khác cũng hoàn


Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Cơng Nghệ Thơng Tin (ECIT 2015)

tồn khơng thể biết được bản tin M được tạo ra từ đối tượng
B.
Khả năng chống tấn cơng làm lộ khóa mật và giả mạo chữ

Mức độ an toàn của lược đồ chữ ký mù mới đề xuất được
thiết lập dựa trên mức độ an toàn của lược đồ cơ sở . Xét theo
khả năng chống tấn cơng làm lộ khóa mật và khả năng chống
giả mạo chữ ký, có thể thấy rằng mức độ an toàn của 2 lược
đồ này là tương đương như nhau.
Khả năng chống tấn công làm lộ nguồn gốc của bản tin
được ký
Thuật toán ký của lược đồ mới đề xuất cho thấy, nếu ở mỗi
lần ký bằng việc lưu trữ các tham số {sa,ra,eb,k} cùng với định
danh của người yêu cầu ký (IDB), người ký A có thể xác định
được mối quan hệ giữa {M,(e,s)} với IDB, nghĩa là từ bản tin
M và chữ ký tương ứng (e,s) có thể xác định được danh tính
của người u cầu ký B, với điều kiện người ký A biết được
các tham số (α,β). Thật vậy, khi biết (α,β) người ký A hồn
tồn có thể xác định được IDB bằng Thuật toán 3.3a như sau:

Thuật toán 3.3a:
Input: {(rai,ebi,sai,ki,IDBi)| i=0,1,2,…N}, M, (e,s), α, β.
Output: IDBi.
[1]. m ← H (M ) , i = 0

dụng bản tin đã ký M cùng thành phần thứ nhất e của chữ
ký, A vẫn có thể xác định được danh tính của B bằng
Thuật tốn 3.4a như sau:
Thuật toán 3.4a:
Input: {(rai,IDBi)| i=1,2,…N}, (M,e), α, β.
Output: IDBi.
[1]. m ← H (M ) , i = 0
[2]. select: ( rai , IDBi )
[3]. rbi * ← (rai )α × (g × y )β mod p
[4]. e∗ ← H (rbi * || M ) mod q

e∗ ≠ e then
[5.1]. i ← i + 1 ;

[5]. if

[3]. rbi * ← (rai )α × (g × y )β mod p

[5.2]. goto [2];
[6]. return IDBi
Trường hợp chỉ lưu giữ các tham số (ra,,IDB) và sử
dụng thành phần thứ nhất e của chữ ký, A vẫn có thể xác
định được danh tính của B bằng Thuật toán 3.5a như sau:
Thuật toán 3.5a:
Input: {(ebi,IDBi)| i=0,1,2,…N}, e, α, β.

Output: IDBi.
[1]. i = 0
[2]. select: (ebi , IDBi )

[4]. e∗ ← H (rbi * || M ) mod q

[3]. ebi∗ ← α −1 × (e − β ) mod q

[2]. select:

(rai , ebi , sai , ki , IDBi )

ebi∗ ≠ ebi then
[4.1]. i ← i + 1 ;

[5]. if

[4]. if

[5.2]. goto [2];
[6]. ebi∗ ← α −1 × (e − β ) mod q

[4.2]. goto [2];
[5]. return IDBi
Trường hợp chỉ lưu giữ các tham số (sa,,eb,k,IDB) và
sử dụng thành phần thứ hai s của chữ ký, A xác định được
danh tính của B bằng Thuật tốn 3.6a như sau:
Thuật toán 3.6a:
Input: {(ebi,sai,ki,IDBi)| i=0,1,2,…N}, s, α, β.
Output: IDBi.

[1]. i = 0
[2]. select: (ebi , sai , k i , IDBi )

e∗ ≠ e then
[5.1]. i ← i + 1 ;

ebi∗ ≠ ebi then
[7.1]. i ← i + 1 ;

[7]. if

[7.2]. goto [2];
[8]. sai∗ ← (ki + x × ebi ) mod q

sai∗ ≠ sai then
[9.1]. i ← i + 1 ;

[9]. if

[9.2]. goto [2];
[10]. s ∗ ← (α × sai + β ) mod q
[11]. if



s ≠ s then
[11.1]. i ← i + 1 ;

[11.2]. goto [2];
[12]. return IDBi

Thuật tốn 3.3a trên đây có thể xác định được danh
tính của B với độ chính xác cao, nhưng địi hỏi phải lưu
giữ nhiều tham số (sa,ra,eb,k,IDB) và mất nhiều thời gian
tính tốn. Tuy nhiên, từ thuật tốn này có thể chỉ ra sau
đây một số thuật tốn tấn cơng khác đòi hỏi việc lưu giữ
tham số và thời gian tính tốn ít hơn mà vẫn có thể xác
định được danh tính của người yêu cầu ký bản tin B.
Trường hợp chỉ lưu giữ các tham số (ra,,IDB) và sử

117

[3]. sai∗ ← (ki + x × ebi ) mod q

sai∗ ≠ sai then
[4.1]. i ← i + 1 ;

[4]. if

[4.2]. goto [2];
[5]. return IDBi
Trường hợp chỉ lưu giữ các tham số (sa,,IDB) và sử dụng
thành phần thứ hai s của chữ ký, A xác định được danh
tính của B bằng Thuật toán 3.7a như sau:
Thuật toán 3.7a:
Input: {(sai,IDBi)| i=0,1,2,…N}, e, α, β.
Output: IDBi.
[1]. i = 0
[2]. select: ( sai , IDBi )



Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Cơng Nghệ Thơng Tin (ECIT 2015)
b). Thuật tốn kiểm tra

[3]. s ∗ ← (α × sai + β ) mod q

Thuật toán 3.2b:
Input: p, q, g, y, M – bản tin cần thẩm tra, (e,s) –
chữ ký của A.
Output: (e,s) = true / false .

s ∗ ≠ s then
[4.1]. i ← i + 1 ;

[4]. if

[4.2]. goto [1];
[5]. return IDBi
Nhận xét:
Các thuật toán từ 3.3a đến 3.7a đều chung đặc điểm là có
thể xác định được danh tính của người yêu cầu ký B nếu biết
được các tham số bí mật (α,β) do B tạo ra. Nói cách khác, mức
độ an toàn của lược đồ mới đề xuất xét theo khả năng giữ bí
mật nguồn gốc của bản tin phụ thuộc vào mức độ khó của việc
tìm được các tham số bí mật (α,β). Từ thuật tốn ký của lược
đồ mới đề xuất cho thấy tại thời điểm ký A chỉ biết được các
tham số ra, eb, sa. Điều đó có nghĩa là để tính được (α,β), A cần
phải giải (3.13a):
eb = α −1 × ( H ((ra )α × (g × y ) mod p || M ) mod q − β ) mod q
β


(3.13a)
Tuy nhiên, từ các kết quả nghiên cứu đã được cơng bố có
thể thấy rằng (3.13a) là một dạng bài tốn khó chưa có lời giải
nếu các tham số p, q được chọn đủ lớn để phương pháp vét
cạn là không khả thi trong các ứng dụng thực tế.
Mặt khác, do mỗi bước thực hiện của thuật toán ký (Thuật
toán 3.1) đều sử dụng 2 tham số bí mật (α,β) do B tạo ra nên
các dạng tấn công làm lộ nguồn gốc bản tin như các thuật toán
đã chỉ ra ở Mục 2 (Thuật tốn 1.1, 1.2, 1.3 và 1.4) là khơng
khả thi đối với lược đồ mới đề xuất.
3.2.2. Lược đồ chữ ký số mù LD 15.02B
Lược đồ chữ ký số mù, ký hiệu LD-15.02B, được phát
triển từ lược đồ cơ sở LD-15.01B. Cũng giả thiết rằng A là
người ký có khóa cơng khai được hình thành theo Thuật tốn
2.1b của lược đồ cơ sở LD 15.01B và B là người tạo ra bản tin
M được ký. Khi đó, thuật tốn ký và kiểm tra chữ ký của lược
đồ được chỉ ra như sau:
a) Thuật toán ký
Thuật toán 3.1b:
Input: p, q, g, x, y, α, β, k , M.
Output: (e,s).
[1]. ra ← g k mod p
(3.1b)
[2]. rb ← (ra ) × g × y
[3]. e ← H (rb || M ) mod q
α

β

α .β


mod p

[4]. eb ← α −1 × ( e + β ) mod q
[5]. sa ← x × (k + eb ) mod q


1 < h < p , H : {0,1} a Z t với: q < t < p ,
−1

y = g x mod p ,

,

1 < α, β < q

rb ← (ra ) × g × y
α

eb = α

−1

β

,

,

1 < x, k < q ,

ra = g k mod p

,

e = H (rb || M ) mod q

,

sa = x × (k + eb ) mod q

,

u = g − e × y s mod p



Nếu:

v = H (u || M ) mod q thì: v = e .
Thật vậy, từ (3.4b), (3.5b), (3.6b) và (3.7b) ta có:
u = g − e × y s mod p
= g β − α . eb × g x
=g

.α .( β + s a )

mod p

x .α . ( β + x . (k + e b ))


×g

β

− eb .α

= g ×g

−1

−1

β − α . eb

×g

x −1 .α . β

( )

= gβ × gx

−1

α .β

−1

mod p


× g x .α . x

( )

= g β × g −eb .α × g x

α .β

−1

.( k + eb )

mod p

α
× (g k ) × g α .eb mod p (3.9b)

× (g k ) mod p
α

Từ (2.1b), (3.1b) và (3.9b) ta có:

( ) × (g )

(3.3b)

α

(3.5b)


mod p

s = α × (s a + β ) mod q .

u = gβ × gx

(3.4b)

α .β

× (e + β ) mod q

(3.2b)

[6]. s ← α × (s a + β ) mod q
(3.6b)
[7]. return (e,s)
Chú thích:
- Các bước [1], [5] do người ký A thực hiện.
- Các bước [2], [3], [4], [6] và [7] do người có bản tin cần ký
B thực hiện.
- Tham số k do A lựa chọn thỏa mãn: 1< k < q.
- Tham số α, β do B lựa chọn thỏa mãn: 1 < α, β < q.
- {x,y} là cặp khóa bí mật/cơng khai của A.

118

[1]. u ← g − e × y s mod p
(3.7b)
[2]. v ← H (u || M ) mod q

(3.8b)
[3]. if ( v = e ) then {return true }
else {return false }
Chú thích:
- Nếu kết quả trả về true thì tính hợp lệ của chữ ký (e,s)
được cơng nhận, do đó tính tồn vẹn của bản tin cần
thẩm tra M và danh tính của người ký (A) được khẳng
định.
- Nếu kết quả trả về là false thì chữ ký (e,s) là giả mạo,
hoặc nội dung bản tin M đã bị sửa đổi.
c) Tính đúng đắn của lược đồ LD 15.02B
Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố
thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với:

−1

α .β

= (ra ) × g × y
β

α .β

k α

mod p

(3.10b)

mod p


Từ (3.2) và (3.10), suy ra: u = rb

(3.11b)

Thay (3.11) vào (3.8) ta có:
(3.12b)
v = H (u || M ) mod q = H (rb || M ) mod q
Từ (3.2b) và (3.12b), suy ra: v = e . Đây là điều cần chứng
minh.
d) Mức độ an toàn của lược đồ LD 15.02B
Tương tự lươc đồ LD 15.02A, khả năng chống tấn công làm
lộ nguồn gốc của bản tin sau khi ký của lược đồ LD-15.02B
cũng có thể được đánh giá qua phân tích khả năng thực hiện
một số thuật tấn cơng như sau:
Thuật tốn 3.3b:


Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)

Input: {(rai,ebi,sai,ki,IDBi)| i=0,1,2,…N}, M, (e,s), α, β.
Output: IDBi.
[1]. m ← H (M ) , i = 0
[2]. select: (rai , ebi , sai , ki , IDBi )
[3]. rbi * ← (rai )α × g β × y α . β mod p
[4]. e∗ ← rbi *×H (M ) mod q


[5]. if e ≠ e then
[5.1]. i ← i + 1 ;

[5.2]. goto [2];
[6]. ebi∗ ← α −1 × (e + β ) mod q

ebi∗ ≠ ebi then
[7.1]. i ← i + 1 ;

[7]. if

[7.2]. goto [2];
[8]. sai∗ ← x × (ki + ebi ) mod q

sai∗ ≠ sai then
[9.1]. i ← i + 1 ;

[9]. if

[9.2]. goto [2];
[10]. s ∗ ← α × (sai + β ) mod q

s ∗ ≠ s then
[11.1]. i ← i + 1 ;

[11]. if

[11.2]. goto [2];
[12]. return IDBi
Thuật tốn 3.3b trên đây có thể xác định được danh tính
của B với độ chính xác cao, nhưng địi hỏi phải lưu giữ nhiều
tham số (sa,ra,eb,k,IDB) và mất nhiều thời gian tính tốn. Tuy
nhiên, từ thuật tốn này có thể chỉ ra sau đây một số thuật tốn

tấn cơng tương ứng với các trường hợp đòi hỏi việc lưu giữ
tham số và thời gian tính tốn ít hơn mà vẫn có thể xác định
được danh tính của người u cầu ký bản tin B.
Trường hợp 1, A chỉ lưu giữ các tham số (ra,,IDB) và sử
dụng bản tin đã ký M cùng thành phần thứ nhất e của chữ ký,
A vẫn có thể xác định được danh tính của B bằng Thuật toán
3.4b như sau:
Thuật toán 3.4b:
Input: {(rai,IDBi)| i=1,2,…N}, (M,e), α, β.
Output: IDBi.
[1]. m ← H (M ) , i = 0
[2]. select: (rai , IDBi )
[3]. rbi * ← (rai )α × g β × y α . β mod p
[4]. e∗ ← rbi *×H (M ) mod q

e∗ ≠ e then
[5.1]. i ← i + 1 ;

[5]. if

[5.2]. goto [2];
[6]. return IDBi
Trường hợp 2, A chỉ lưu giữ các tham số (ra,,IDB) và sử
dụng thành phần thứ nhất e của chữ ký, A vẫn có thể xác định
được danh tính của B bằng Thuật tốn 3.5b như sau:

119

Thuật toán 3.5b:
Input: {(ebi,IDBi)| i=0,1,2,…N}, e, α, β.

Output: IDBi.
[1]. i = 0
[2]. select: (ebi , IDBi )
[3]. ebi∗ ← α −1 × (e + β ) mod q
[4]. if ebi∗ ≠ ebi then
[4.1]. i ← i + 1 ;
[4.2]. goto [2];
[5]. return IDBi
Trường hợp 3, A chỉ lưu giữ các tham số (sa,,eb,k,IDB) và
sử dụng thành phần thứ hai s của chữ ký, A xác định được
danh tính của B bằng Thuật toán 3.6b như sau:
Thuật toán 3.6b:
Input: {(ebi,sai,ki,IDBi)| i=0,1,2,…N}, s, α, β.
Output: IDBi.
[1]. i = 0
[2]. select: (ebi , sai , k i , IDBi )
[3]. sai∗ ← x × (k i + ebi ) mod q

sai∗ ≠ sai then
[4.1]. i ← i + 1 ;

[4]. if

[4.2]. goto [2];
[5]. return IDBi
Trường hợp 4, A chỉ lưu giữ các tham số (sa,,IDB) và sử
dụng thành phần thứ hai s của chữ ký, A xác định được danh
tính của B bằng Thuật toán 3.7b như sau:
Thuật toán 3.7b:
Input: {(sai,IDBi)| i=0,1,2,…N}, e, α, β.

Output: IDBi.
[1]. i = 0
[2]. select: ( sai , IDBi )
[3]. s ∗ ← α × (sai + β ) mod q

s ∗ ≠ s then
[4.1]. i ← i + 1 ;

[4]. if

[4.2]. goto [1];
[5]. return IDBi
Nhận xét:
Các Thuật toán 3.3b, 34b, 3.5b, 3.6b và 3.7b trên đây cho
phép A có thể xác định được danh tính của B nếu biết được
các tham số bí mật (α,β) do B tạo ra. Như vậy, mức độ an toàn
của lược đồ LD 15.02B xét theo khả năng giữ bí mật nguồn
gốc của bản tin phụ thuộc vào mức độ khó của việc tìm được
các tham số bí mật (α,β). Từ thuật toán ký của lược đồ
LD 15.02B cho thấy A chỉ biết được các tham số ra, eb, sa tại
thời điểm ký. Nên để có thể tính (α,β), A cần phải giải được:
eb = α −1 × ( H ((( ra ) α × g β × y α . β mod p ) || M ) mod q + β ) mod q

(3.13b)
Có thể thấy rằng, (3.13b) cũng là một dạng bài tốn khó
chưa có lời giải nếu các tham số p, q được chọn đủ lớn để


Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
phương pháp “vét cạn” là không khả thi trong các ứng dụng

thực tế. Mặt khác, do mỗi bước thực hiện của thuật toán ký
(Thuật tốn 3.1b) đều sử dụng 2 tham số bí mật (α,β) do B tạo
ra nên các dạng tấn công làm lộ nguồn gốc bản tin như các
thuật toán đã chỉ ra ở Mục 2 (Thuật toán 1.1, 1.2, 1.3 và 1.4)
là không khả thi đối với lược đồ mới đề xuất.
IV.

KẾT LUẬN

Từ việc phân tích điểm yếu của một số lược đồ chữ ký số
mù đã được công bố, bài báo đề xuất 2 lược đồ chữ ký số mù
mới được phát triển từ các lược đồ chữ ký cơ sở xây dựng dựa
trên tính khó của bài tốn logarit rời rạc, 2 lược đồ mới này có
mức độ an toàn cao hơn các lược đồ đã biết về khả năng chống
tấn công làm lộ nguồn gốc của bản tin được ký. Đây là một
yếu tố quan trọng cho phép lược đồ mới đề xuất có tính khả
thi trong các ứng dụng thực tế.
TÀI LIỆU THAM KHẢO
[1]
[2]
[3]
[4]

120

D. Chaum, Blind Signature Systems, Advances in Cryptology, Crypto’
83, Plenum Press, pp. 153.
D. Chaum, A. Fiat, M. Naor, “Untraceable Electronic Cash”, Advances
in Cryptology,Crypto’ 88, LNCS 403, Springer Verlag, pp. 319-327.
D. Chaum, “Privacy Protected Payment”, SMART CARD 2000, Elsevier

Science Publishers B.V., 1989, pp. 69-93.
N. Ferguson, “Single Term Off-line Coins”, Advances in Cryptology,
Eurocrypt’93, LNCS 765, Springer Verlag, pp. 318-328.

[5]

[6]

[7]

[8]

[9]
[10]
[11]

[12]

[13]
[14]

D. Chaum, B. den Boer, E. van Heyst, S. Mjolsnes, A. Steenbeek,
“Efficient Offline Electronic Checks”, Advances in Cryptology,
Eurocrypt’89, LNCS 434, Springer Verlag, pp. 294-301.
B. C. 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.
K. Nyberg, R. A. Rueppel, A New Signature Scheme Base on the DSA
Giving Message Recovery, 1st ACM conference on Computer and
Communications Security, November 3 – 5, Fairfax, Virginia.

Jan L. Camenisch, Jean-Marc Piveteau, Markus A. Stadler, Blind
Signatures Base on Discrete Logarithm Problem, Swiss KWF
Foundation, grant no. 2724.1.
Nikolay A. Moldovyan, Blind Collective Signature Protocol, Computer
Science Journal of Moldova, vol.19, no.1(55), 2011.
National Institute of Standards and Technology, NIST FIPS PUB 186-3.
Digital Signature Standard, U.S. Department of Commerce, 1994.
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).
Kharin Yu.S., Bernik V.I., Matveev G.V., Aguievich S.V. Mathematic
and computer foundations of cryptology, Novoe znanie, Minsk, 2003.
381 p. (in Russian).
C. P. Schnorr, “Efficient signature generation by smart cards”, Journal
of Cryptology, vol. 4, pp. 161 – 174, 1991.
T. ElGamal, “ A public key cryptosystem and a signature scheme based
on discrete logarithms”, IEEE Transactions on Information Theory.
1985, Vol. IT-31, No. 4. pp.469–472.



×