ĐẠI HỌC QUỐC GIA – HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÁO CÁO TIỂU LUẬN
MẬT MÃ VÀ AN TOÀN DỮ LIỆU
Đề Tài: Sơ đồ ký số trên thiết bị cầm tay
Giảng viên: TS. Trịnh Nhật Tiến
Học Viên: Đỗ Thị Nương – K19HTTT
H N i, 04-2014à ộ
MỤC LỤC
DANH SÁCH CÁC TỪ VIẾT TẮT
SBS Server Based Signature
NRS Non Reputation Sender
NRR Non Reputation Receiver
CA Certificate Authority
PK Public Key
MỞ ĐẦU
Trong những năm gần đây, Internet trở lên ngày càng phát triển mạnh mẽ và có nhiều
ứng dụng trên đó. Lượng lớn các giao dịch thương mại được thực hiện trên mạng
Internet. Nhờ sự phát triển nhanh chóng của công nghệ thông tin di động, người ta có thể
sử dụng di động, điện thoại, máy tính bỏ túi và PDA để truy cập Internet ở bất cứ đâu và
bất cứ lúc nào. Tuy nhiên, nhiều ứng dụng thông tin di động đang phải đối mặt với một số
vấn đề: sự riêng tư và bảo mật. Các ứng dụng này bao gồm:
Hệ thống thanh toán di động
Ví điện tử
Hệ thống vé điện tử
Chứng thực hình ảnh và giao dịch
Chữ ký số có thể được áp dụng cho các ứng dụng như vậy bởi vì nó cung cấp xác
thực, tính toàn vẹn dữ liệu và các dịch vụ chống chối bỏ. Lược đồ chữ ký số truyền thống
dựa trên kỹ thuật mã hóa không đối xứng làm cho việc tính toán rất tốn kém. Mặc dù
thiết bị cầm tay có thể có nhiều dạng và được sử dụng cho các mục đích khác nhau, tuy
nhiên chúng có những hạn chế nhất định: 1) khả năng tính toán hạn chế, 2) tuổi thọ pin
ngắn. Nếu việc tính toán mã hóa bất đối xứng truyền thống được thực hiện trên các thiết
bị di động, các thiết bị sẽ bị block cho một khoảng thời gian, và pin sẽ cạn một cách
nhanh chóng.
Có rất nhiều lược đồ ký số được đề xuất. Các lược đồ này có thể được phân thành hai
loại chính: các lược đồ dựa trên thông điệp đại diện, và các lược đồ dựa trên khôi phục
thông điệp. Trong lược đồ ký số dựa trên thông điệp dại diện, các thông báo ban đầu
được ánh xạ tới một checksum bởi một hàm một chiều. Sau đó checksum này được sử
dụng để tạo ra chữ ký số. Check sum được sử dụng để cung cấp tính toàn vẹn của dữ liệu.
Trong lược đồ ký số dựa trên khôi phục thông điệp, người nhận có thể khôi phục lại
thông điệp gốc từ chữ ký nhận được.
Ngoài ra còn có một số nghiên cứu về chữ ký số cho các thiết bị di động. Asokan và
các cộng sự [1] đề xuất lược đồ ký số được hỗ trợ bởi server (Server – supported
Signature scheme) cho thông tin di động. Dựa trên nghiên cứu của Asokan và các cộng sự
[1] , Ding và các cộng sự [2] đã đưa ra một lược đồ ký số khác được gọi là lược đồ ký
được trợ giúp bởi server. Trong lược đồ này, người sử dụng có liên quan đến việc tạo ra
thẻ chữ ký, cho các tính năng trực tuyến và bảo vệ tấn công DOS. Không giống như chữ
ký truyền thống kỹ thuật số thường sử dụng cặp khóa công khai / bí mật để tạo thẻ chữ ký
chống chối bỏ, [1] và [2] sử dụng hàm băm 1 chiều để tạo khóa bí mật của bên gửi và sử
dụng khóa này để tạo thẻ chữ ký chống chối bỏ.
Trong báo cáo tiểu luận này tôi xin trình bày lược đồ chữ ký số “Server Based
Signature (SBS)” [3] cho các thiết bị di động, với các tính năng:
Giúp thiết bị di động tạo ra chữ ký số hiệu quả.
Giảm liên lạc giữa các bên trong quá trình ký.
Cung cấp bảo mật mạnh như các lược đồ ký số truyền thống.
Sử dụng một giải thuật ký trong [5], lược đồ này tránh được chi phí tính toán khi
người dùng đang xác minh chữ ký được tạo ra từ server mà không mất tính bảo mật. Vì
vậy lược đồ này xem là hiệu quả hơn [1] và [2].
Phần tiếp theo của báo cáo được tổ chức như sau:
Phần I: Tổng quan về chữ ký số [4]
Phần II: Sơ đồ ký số trên thiết bị cầm tay “Server Based Signature” [3]
Tổng kết
PHẦN 1: TỔNG QUAN VỀ CHỮ KÝ SỐ
1.1. Một số khái niệm
1.1.1. Chữ ký số
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu (ví dụ: đơn xin học, giấy
báo nhập học, ), lâu nay người ta dùng chữ ký “tay”, ghi vào phía dưới của mỗi tài
liệu. Như vậy người ký phải trực tiếp “ký tay” vào tài liệu.
Ngày nay các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồn
gốc hay hiệu lực của các tài liệu này. Rõ ràng không thể “ký tay” vào tài liệu, vì chúng
không được in ấn trên giấy.
Những năm 80 của thế kỷ 20, các nhà khoa học đã phát minh ra “chữ ký số” để
chứng thực một “tài liệu số”. Đó chính là “bản mã” của xâu bít tài liệu.
“Chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra “bản mã” của tài
liệu với “khóa lập mã”, ký số trên tài liệu số là ký trên từng bit của tài liệu.
Mặt mạnh của “chữ ký số” hơn “chữ ký tay” ở chỗ người ta có thể “ký” vào tài liệu
từ rất xa (trên mạng công khai). Hơn thế nữa, có thể “ký” bằng các thiết bị cầm tay (điện
thoại di động, PDA) tại khắp mọi nơi và di động, miễn là kết nối được vào mạng. Đỡ tốn
bao thời gian, sức lực, chi phí.
“Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất cũng bằng
độ dài của tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm băm” để
tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại diện” này.
1.1.2. Hàm băm
1.1.2.1. Khái niệm hàm băm
Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ “băm”
thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) tài liệu (bản tin) và cho kết quả là một
giá trị “băm” có kích thước cố định, còn gọi là “đại diện tài liệu” hay “đại diện bản tin”,
“đại diện thông điệp”.
Hàm băm là hàm một chiều, theo nghĩa giá trị của hàm băm là duy nhất, và từ giá
trị băm này, “khó thể” suy ngược lại được nội dung hay độ dài ban đầu của tài liệu gốc.
1.1.2.2. Đặc tính của Hàm băm
Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau:
1). Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x).
2). Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trị
băm h(x’) ≠ h(x).
Cho dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bản
tin gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi. Điều này có nghĩa là: hai
thông điệp khác nhau, thì giá trị băm của chúng cũng khác nhau.
3). Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó. Nghĩa là:
với thông điệp x thì “dễ” tính được z = h(x), nhưng lại “khó” tính ngược lại được x
nếu chỉ biết giá trị băm h(x) (Kể cả khi biết hàm băm h).
1.2. Sơ đồ chữ ký số
Sơ đồ chữ ký là bộ năm (P, A, K, S, V), trong đó:
P là tập hữu hạn các văn bản có thể.
A là tập hữu hạn các chữ ký có thể.
K là tập hữu hạn các khoá có thể.
S là tập các thuật toán ký.
V là tập các thuật toán kiểm thử.
Với mỗi khóa k ∈ K, có thuật toán ký Sig
k
∈ S, Sig
k
: P→ A, có thuật toán
kiểm tra chữ ký Ver
k
∈ V, Ver
k
: P × A→ {đúng, sai}, thoả mãn điều kiện sau với mọi
x ∈ P, y ∈ A:
Đúng, nếu y = Sig
k
(x)
Ver
k
(x, y) =
Sai, nếu y ≠ Sig
k
(x)
Chú ý:
Người ta thường dùng hệ mã hóa khóa công khai để lập “Sơ đồ chữ ký số”. Ở
đây khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa
kiểm tra “chữ ký”.
Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã., dùng khóa bí
mật a để giải mã.
Điều này là hoàn toàn tự nhiên, vì “ký” cần giữ bí mật nên phải dùng khóa bí
mật a để “ký”. Còn “chữ ký” là công khai cho mọi người biết, nên họ dùng
khóa công khai b để kiểm tra.
1.3. Yêu cầu của một hệ thống chữ ký số
Hệ thống chữ ký số cần thỏa mãn các yêu cầu sau:
Tính an toàn (security).
Tính hiệu quả (performance):
Chống nhân bản chữ ký.
Tính không thể phủ nhận (non-repudiation).
1.4. Một số sơ đồ ký số
1.4.1. Chữ ký RSA
1.4.1.1. Sơ đồ (Đề xuất năm 1978)
1. Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = A =
Z
n
Tính bí mật φ(n) = (p-1).(q-1).
Chọn khóa công khai b < φ(n), nguyên tố cung nhau với φ(n).
Khóa bí mật a là phần tử nghịch đảo của b theo mod φ(n): a*b ≡ 1 (mod
φ(n).
Tập cặp khóa (bí mật, công khai) K = {(a, b)/ a, b ∈ Z
n
, a*b ≡ 1 (mod
φ(n))}.
2. Ký số: Chữ ký trên x ∈ P là y = Sig
k
(x) = x
a
(mod n), y ∈ A. (R1)
3. Kiểm tra chữ ký: Ver
k
(x, y) = đúng ⇔ x ≡ y
b
(mod n). (R2)
1.4.1.2. Độ an toàn của chữ ký RSA
Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký RSA:
o Bài toán tách số nguyên n thành tích của 2 số nguyên tố: n = p*q
o Vì nếu giải được bài toán này thì có thể tính được khóa mật a từ khóa
công khai b và phần tử công khai n.
1.4.2. Chữ ký Elgamal
1.4.2.1. Sơ đồ (Elgamal đề xuất năm 1985)
1. Tạo cặp khóa (bí mật, công khai) (a, h) :
Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z
p
là “khó” giải.
Chọn phần tử nguyên thuỷ g ∈ Z
p
*. Đặt P = Z
p
*, A = Z
p
* x Z
p-1
.
Chọn khóa bí mật là a ∈ Z
p
*. Tính khóa công khai h ≡ g
a
mod p.
Định nghĩa tập khóa: = {(p, g, a, h): h ≡ g
a
mod p}.
Các giá trị p, g, h được công khai, phải giữ bí mật a.
2. Ký số:
Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r ∈ Z
p-1
*
.
o (Vì r ∈ Z
p-1
*
, nên nguyên tố cùng p -1, do đó tồn tại r
-1
mod (p -1) ).
Chữ ký trên x ∈ P là y = Sig
a
(x, r) = (γ, δ), y ∈ A (E1)
Trong đó γ ∈ Z
p
*, δ ∈ Z
p-1
:
o γ = g
r
mod p và δ = (x – a * γ ) * r
-1
mod (p -1)
3. Kiểm tra chữ ký:
κ
Ver
k
(x, γ, δ) = đúng ⇔ h
γ
* γ
δ
≡ g
x
mod p. (E2)
Chú ý: Nếu chữ ký được tính đúng, kiểm thử sẽ thành công vì:
h
γ
* γ
δ
≡ g
a
γ
* g
r
*
δ
mod p ≡ g
(a
γ
+
r
*
δ
)
mod p ≡ g
x
mod p.
Do δ = (x – a * γ ) * r
-1
mod (p -1) nên (a * γ + r *δ) ≡ x mod (p-1).
1.4.2.2. Độ an toàn của chữ ký Elgamal
Bài toán căn bản bảo đảm độ an toàn của Sơ đồ chữ ký Elgamal:
o Bài toán tính Logarit rời rạc:
Biết khóa công khai h ≡ g
a
mod p.
Nên có thể xác định khóa bí mật a bằng cách tính Log
g
h.
1.4.3. Chữ ký DSS
1.4.3.1. Giới thiệu Chuẩn chữ ký số DSS
Chuẩn chữ ký số (DSS: Digital Signature Standard) được đề xuất năm 1991, là cải
biên của sơ đồ chữ ký ElGamal, và được chấp nhận là chuẩn vào năm 1994 để dùng trong
một số lĩnh vực giao dịch ở USA.
Thông thường tài liệu số được mã hoá và giải mã 1 lần. Nhưng chữ ký lại liên
quan đến pháp luật, chữ ký, có thể phải kiểm thử sau nhiều năm đã ký. Do đó chữ ký phải
được bảo vệ cẩn thận.
Số nguyên tố p phải đủ lớn (chẳng hạn dài cỡ 512 bit) để bảo đảm an toàn, nhiều
người đề nghị nó phải dài 1024 bit. Tuy nhiên, độ dài chữ ký theo sơ đồ Elgamal là gấp
đôi số bit của p, do đó nếu p dài 512 bit thì độ dài chữ ký là 1024 bit.
Trong ứng dụng dùng thẻ thông minh (Smart card) lại mong muốn có chữ ký ngắn,
nên giải pháp sửa đổi là một mặt dùng p với độ dài từ 512 bit đến 1024 bit (bội của 64),
mặt khác trong chữ ký (γ, δ), các số γ, δ có độ dài biểu diễn ngắn, ví dụ 160 bit. Khi đó
chữ ký là 320 bit.
Điều này được thực hiện bằng cách dùng nhóm con cyclic Z
q
* của Z
p
* thay cho
Z
p
*, do đó mọi tính toán được thực hiện trong Z
p
*, nhưng thành phần chữ ký lại thuộc
Z
q
*.
Trong sơ đồ ký Elgamal, công thức tính δ được sửa đổi thành
δ = (x + a *γ) r
-1
mod q.
Điều kiện kiểm thử h
γ
γ
δ
≡
g
x
mod p được sửa đổi thành:
Chú ý: Nếu UCLN(x + g * γ, p-1) = 1 thì δ
-1
mod p tồn tại.
1.4.3.2. Sơ đồ Chuẩn chữ ký số DSS
1. Tạo cặp khóa (bí mật, công khai) (a, h) :
Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z
p
là “khó” giải.
o Chọn q là ước nguyên tố của p-1. Tức là p-1 = t * q hay p = t * q + 1.
o (Số nguyên tố p cỡ 512 bit, q cỡ 160 bit).
Chọn g ∈ Z
p
* là căn bậc q của 1 mod p, (g là phần tử sinh của Z
p
*).
Tính α = g
t
, chọn khóa bí mật a ∈ Z
p
*, tính khóa công khai h ≡ α
a
mod p.
Đặt P = Z
q
*, A = Z
q
* x Z
q
* , K = {(p, q, α, a, h)/ a ∈ Z
p
*, h ≡ α
a
mod p}.
Với mỗi khóa (p, q, α, a, h), k’ = a bí mật, k” = (p, q, α, h) công khai.
2. Ký số: Dùng 2 khóa ký: khóa a và khóa ngẫu nhiên bí mật r ∈ Z
q
*.
Chữ ký trên x ∈ Z
p
* là Sig
k’
(x, r) = (γ, δ), trong đó
o γ = (α
r
mod p) mod q, δ = ((x + a * γ ) * r
-1
mod q.
o (Chú ý r ∈ Z
q
*, để bảo đảm tồn tại r
-1
mod q).
3. Kiểm tra chữ ký: Với e
1
= x * δ
-1
mod q, e
2
= γ * δ
-1
mod q.
Ver
k”
(x, γ, δ) = đúng ⇔ (α
e1
* h
e2
mod p) mod q = γ
1.4.4. Chữ ký không thể phủ định
1.4.4.1. Giới thiệu chữ ký không thể phủ định
Trong phần trước ta đã trình bày một số sơ đồ chữ ký điện tử. Trong các sơ đồ đó,
việc kiểm thử tính đúng đắn của chữ ký là do người nhận thực hiện. Nhằm tránh việc
nhân bản chữ ký để sử dụng nhiều lần, tốt nhất là để người gửi tham gia trực tiếp vào việc
kiểm thử chữ ký. Điều đó được thực hiện bằng một giao thức kiểm thử, dưới dạng một
giao thức mời hỏi và trả lời.
)(mod
11
p
x
γβα
δγδ
≡∗
−−
∗∗
Giả sử tài liệu cùng chữ ký từ G gửi đến N. Khi N yêu cầu G cùng kiểm thử chữ
ký, thì một vấn đề nảy sinh là làm sao để ngăn cản G chối bỏ một chữ ký mà anh ta đã
ký, G có thể tuyên bố rằng chữ ký đó là giả mạo ?
Để giải quyết tình huống trên, cần có thêm giao thức chối bỏ, bằng giao thức này,
G có thể chứng minh một chữ ký là giả mạo. Nếu G từ chối tham gia vào giao thức đó,
thì có thể xem rằng G không chứng minh được chữ ký đó là giả mạo.
Như vậy sơ đồ chữ ký không phủ định được gồm 3 phần: một thuật toán ký, một
giao thức kiểm thử, và một giao thức chối bỏ.
1.4.4.2. Sơ đồ chữ ký không thể phủ định (Chaum - van Antverpen)
*Chuẩn bị các tham số:
Chọn số nguyên tố p sao cho bài toán log rời rạc trong Z
p
là khó.
p = 2*q+1, q cũng là số nguyên tố.
Gọi P là nhóm nhân con của Z
p
* theo q (P gồm các thặng dư bậc hai theo mod
p).
Chọn phần tử sinh g của nhóm P cấp q.
Đặt P = A = P, K = {(p, g, a, h): a ∈ Z
q
*
, h ≡ g
a
mod p }
1. Thuật toán ký: Dùng khoá bí mật k’ = a để ký lên x:
Chữ ký là y = Sig
k’
(x) = x
a
mod p.
2. Giao thức kiểm thử: Dùng khoá công khai k” = (p, g, h).
Với x, y ∈ P, người nhận N cùng người gửi G thực hiện giao thức kiểm thử:
1/. N chọn ngẫu nhiên e
1
, e
2
∈ Z
q
*
2/. N tính c = y
e1
h
e2
mod p, và gửi cho G.
3/. G tính và gửi cho N.
4/. N chấp nhận y là chữ ký đúng, nếu d ≡ x
e1
g
e2
mod p
pcd
qa
mod
mod
1
−
=
3. Giao thức chối bỏ:
1/. N chọn ngẫu nhiên e
1
, e
2
∈ Z
q
*
2/. N tính c = y
e1
h
e2
mod p, và gửi cho G.
3/. G tính và gửi cho N.
4/. N thử điều kiện d ≠ x
e1
g
e2
(mod p).
5/. N chọn ngẫu nhiên f
1
, f
2
∈ Z
q
*
.
6/. N tính và gửi cho G.
7/. G tính và gửi cho N.
8/. N thử điều kiện D ≠ x
f1
g
f2
(mod p).
9/. N kết luận y là chữ ký giả mạo nếu:
(thay
α
bằng g).
pcd
qa
mod
mod
1
−
=
pyC
ff
mod*
21
β
=
pCD
qa
mod
mod
1
−
=
)(mod)*()*( pDd
effe
1212
−−
≡
αα
PHẦN 2: SƠ ĐỒ KÝ SỐ TRÊN THIẾT BỊ CẦM TAY “SERVER
BASED SIGNATURE”
Chương trước đã trình bày tổng quan về chữ ký số và một số sơ đồ ký số truyền
thống. Các sơ đồ ký số này đều rất ưu việt. Tuy nhiên để áp dụng trên các thiết bị có năng
lực tính toán và vòng đời của pin thấp như các thiết bị di động, cầm tay, thì các sơ đồ này
tỏ ra không hiệu quả. Trong chương này tôi xin trình bày về một sơ đồ ký số được dùng
trong thiết bị di động mà khắc phục được hạn chế của các số đồ truyền thống đó là sơ đồ
“Server Based Signature” [3]
2.1. Sơ đồ ký SBS - Server Based Signature
Sơ đồ SBS dựa trên ý tưởng sử dụng một server ký trung gian tham gia vào quá
trình ký, để thực hiện một số tính toán phức tạp tránh tải cho phía clients (các thiết bị di
động).
Như đã biết, có nhiều loại dịch vụ chống chối bỏ. Hai loại đáng chú ý: Chống chối
bỏ bên gửi (NRS) và chống chối bỏ bên nhận (NRR).
NRS đảm bảo rằng bên gửi thông điệp không thể phủ nhận việc gửi thông
điệp đó.
NRR đảm bảo rằng bên nhận thông điệp không thể phủ nhận đã nhận thông
điệp đó.
Quá trình thực hiện của SBS được minh họa theo hình sau:
Hình : Quá trình thực hiện của SBS
2.1.1. Giao thức ký NRS của SBS
Tất cả các bên tham gia đồng ý về một hàm băm một chiều chống va chạm, ví dụ
SHA1 hoặc MD5. Hơn nữa, bên gửi và bên nhận phải giữ một cặp hàm băm riêng h
snd
()
và h
rcv
(). Những hàm băm này là những hàm băm khóa. Điều này có thể dễ dàng được
thực hiện bằng cách chèn định danh của bên gửi hoặc bên nhận như một tham số của các
hàm băm. h
i
snd
() và h
i
rcv
() biểu thị các hàm băm khóa liên kết định danh với chỉ số i ( số
lần băm i).
Mỗi người dùng tạo ra một khóa bí mật K
u
(u đại diện cho người sử dụng). Sử
dụng K
u
như là đầu vào ban đầu, người sử dụng có thể xây dựng một chuỗi băm K
u
0
,
K
u
1
, . . . , K
u
n
, ở đó K
u
0
= h
i
u
(K
u
) = h
u
(K
u
i -1
). PK
u
= K
u
n
được coi là khóa công khai của
người dùng. Giả sử bên gửi muốn gửi thông điệp x cho bên nhận. Với các ký hiệu được
định nghĩa trên, quá trình ký số được thực hiện như sau:
Bước 1 : Đầu tiên, bên gửi sẽ tạo ra khóa công khai của mình PK
snd
, sau đó chọn
một server ký (S). Cuối cùng bên gửi trình định danh của mình, số chữ ký tối đa n,
khóa công khai PK
snd
và S tới cơ quan chứng thực (CA ) để lấy được một chứng
chỉ. Dạng của chứng chỉ đó như sau:
• Cert
snd
= SK
CA
(Bên gửi, n, PK
snd
, S)
• SK
CA
đại diện cho khóa bí mật của CA. Sau khi chứng chỉ hoàn thành, kết
quả có thể được công bố công khai thông qua một dịch vụ lưu trữ online
như LDAP.
Bước 2: Server ký (S) tạo ra hai số nguyên tố lớn p và q và cho m = p × q, φ (m) =
(p - 1) × (q -1). Số d cũng được chọn là e × d = 1 φ mod (m), trong đó e = 3. S giữ
(d, p, q) là khóa bí mật của mình và công khai (e, m).
Bước 3: Nếu bên gửi muốn tạo một chữ ký số có nội dung x, đầu tiên nó chọn
ngẫu nhiên hai số r và v, r, v ∈ Zn*. Sau đó, nó tính δ = r
e
h(x)(v
2
+ 1 ) mod m và
gửi ( δ, K
snd
i
, i) cho S. Sau đó, S chọn ngẫu nhiên một số z dương, z < m và gửi
nó lại cho bên gửi. Sau khi nhận được số z, bên gửi sẽ chọn ngẫu nhiên một số
nguyên r’ khác và tính b, b = r × r’. Cuối cùng, bên gửi tính được η, ở đó η = b
e
×
(v - z) và gửi nó trở lại S.
Bước 4 : S tính γ = η -1 mod m và t = h (Cert
snd
) d (δ (z
2
+ 1) η
-2
)
2d
mod m, sau đó
gửi (γ, t) cho bên gửi. Khi nhận được (γ, t), bên gửi tính c = (vz + 1) × γ × b
e
= (vz
+ 1) (v - z)
-1
mod n, và s = t × r
2
× r’
4
mod m. Bộ ba (Certsnd, c, s) là chữ ký của
thông điệp x. Bởi vì s
e
≡ h (Cert
snd
) h(x)
2
(c
2
+ 1)
2
mod m [5] , vì vậy tất cả mọi
người có thể xác minh chữ ký (Cert
snd
, c, s) của thông điệp x hiệu quả. Sau khi
kiểm tra chữ ký, bên gửi gửi (Cert
snd
, c, s) và K
snd
i
- 1
lại cho server ký.
S xác minh chữ ký và K
snd
i
= h (K
snd
i -1
). Nếu tất cả lại kết quả là chính xác, S sẽ gửi
thông điệp s với chứ ký của nó tới bên nhận. (Cert
snd
, c, s), K
snd
i
– 1
và K
snd
i
bao gồm thẻ
NRS.
2.1.2. Giao thức ký NRS và NRR của SBS
Phần này sẽ giải quyết vấn đề chống chối bỏ của bên nhận (NRR).
• NRR được giải quyết dựa trên lược đồ NRS của SBS.
• Như quá trình trên từ bước 1 đến bước 4, bên nhận cũng tạo ra một chữ ký
(Cert
rcv
, C’, s’). (Cert
rcv
, C’, s’) được gọi là thẻ NRR.
• Trong bước 4, trước khi bên gửi gửi K
snd
i
– 1
tới server ký, bên nhận sẽ gửi
thẻ NRR này với khóa công khai của nó K
j
rcv
cho bên nhận.
• Sau đó, bên nhận gửi K
snd
i
– 1
tới server ký sau khi xác minh thẻ NRR. Sau
khi server ký nhận được cả ((Cert
snd
, c, s), i, K
snd
i
– 1
, K
snd
i
), nó gửi chữ ký
của bên gửi là ((Cert
snd
, c, s), i, K
snd
i
–
1, K
snd
i
) cho bên nhận và K
rcv
i
tới cho
bên gửi. Khi đó, quá trình SBS hoàn thành
2.1.3. Phân tích chối bỏ
a. Bên gửi chối bỏ
Trong trường hợp bên gửi tuyên bố nó không gửi thông được ký bởi thẻ NRS, bên
nhận có thể cung câp thẻ, thông điệp, chứng chỉ và chữ ký số cho quan tòa. Quá trình
quan tòa xác minh như sau:
Bước 1: Quan tòa xác minh chứng chỉ (Cert
snd
) được cấp bởi CA với định đanh,
khóa công khai, định danh của server ký… là của bên nhận.
Bước 2: Kiểm tra chữ ký (Cert
snd
, c, s) sử dụng công thức: s
e
≡ h (Cert
snd
) h(x)
2
(c
2
+ 1)
2
mod m
Bước 3: Quan tòa sẽ xác định khóa công khai PK
u
= K
n
u
có thể tính từ khóa K
i-1
u
,
K
i
u
sử dụng hàm băm một chiều công khai.
Bước 4: Nếu tất cả kết quả là đúng, quan tòa có thể kết chứng minh rằng bên gửi
đã gửi thông điệp này cho bên nhận.
Với những kết quả kiểm tra thành công, nếu bên nhận vẫn muốn chối bỏ, bên nhận
cần phải cung cấp các chứng cứ sau:
CA gian lận: Trong lược đồ SBS, mỗi bên gửi đăng ký khóa công khai liên quan
tới một server ký. Nếu bên gửi muốn tuyên bố CA gian lận, bên gửi cần phải đưa ra một
chứng chỉ với khóa công khai khác. Vì vậy khi chứng chỉ này được trình ra, CA phải trả
lời tại sao điều này xảy ra.
Server ký gian lận: Để chứng minh server ký gian lận, người gửi phải đưa ra một
chữ ký khác (Cert
snd
, c, s) và K
snd
i
– 1
mà có thể ký thông điệp x. Nếu bên gửi không cung
cấp K
snd
i
– 1
, việc tính K
snd
i
– 1
từ K
snd
i
là không thể vì đặc tính của hàm băm một chiều.
Chữ ký (Cert
snd
, c, s) được tạo từ thông điệp x sử dụng SHA và RSA [4], vì vậy việc làm
giả là không thể trên phương diện tính toán.
Trong lược đồ SBS, server ký được coi là đáng tin cậy để tránh các vấn đề của
NRR và NRS.
b. Bên nhận chối bỏ
Tương tự như vậy cho việc phân tích chối bỏ của bên nhận.
Do vậy, lược đồ này ngăn được việc chối bỏ của cả bên gửi và bên nhận
2.2. Phân tích tính bảo mật và hiệu quả của SBS
2.2.1. Tính bảo mật
Lược đồ ký số SBS có thể đáp ứng tính bảo mật giống như các lược đồ truyền
thống. Nếu những kẻ tấn công có thể phá hủy lược đồ này thì chúng phải tấn công được
các giải thuật mã khóa SHA và RSA. Trong hầu hết các trường hợp, việc tấn công chữ ký
số tương đương với việc làm giả chữ ký.
Việc làm giả chữ ký là một trong cách tiếp cận tấn công phổ biến, ở đó kẻ tấn công
cố gắng giả mạo chữ kí SBS (Cert
u
, c, s). Kẻ tấn công có thể làm hợp lệ chữ ký hoặc
không và cố gắng dẫn ra một vài chữ ký giả mạo.
Trong lược đồ SBS, tất cả những tấn công này sẽ bị thất bại.
Đầu tiên, giả sử kẻ tấn công có được một chữ ký hợp lệ. Để qua được việc xác
thực chữ ký thì s
e
≡ h (Cert
u
) h(x)
2
(c
2
+ 1)
2
mod m phải thành công, kẻ tấn công cần lấy 1
s’, s’≡ h (Cert
u
d
) h(x)
2d
(c
2
+ 1)
2d
mod m, với các giá trị h (Cert
u
), h(x) và c đã cho. Tuy
nhiên, không khả thi để suy diễn d từ e và n mà không biết các số nguyên tố lớn p và q
(theo giải thuật RSA [4]). Vì những lý do này, kẻ tấn công không thể suy diễn c, ở đó c
2
≡
(s
e
x h (Cert
u
)
-1
x h(x)
-2
)
-1/2
- 1 mod n. Vì vậy kẻ tấn công không thể giả mạo chứ ký cho
dù chữ ký của anh ta là hợp lệ. Mặt khác, nếu kẻ tấn công không có một chữ ký hợp lệ
(Cert
u
, c, s), thì khó để suy diễn các chữ ký hợp lệ như vậy. Do vậy việc giả mạo chữ ký
trong SBS là khó tương đương với việc giả mạo của các lược đồ ký số truyền thống như
DSS [4].
Để giả mạo chữ ký kẻ tấn công còn phải tìm 1 K
u
i
– 1
, ở đó h
u
(K
u
i
– 1
) = K
u
i
, K
u
i
được công khai bởi người dùng. Tuy nhiên tìm K
u
i
– 1
là không khả thi về mặt tính toán do
đặc tính của hàm băm một chiều h
u
() ví dụ sử dụng SHA.
Từ đây có thể kết luận rằng tính bảo mật của sơ đồ ký số SBS là tương đương với
các sơ đồ ký số truyền thống.
2.2.2. Tính Hiệu quả
Toàn bộ chi phí của sơ đồ SBS có thể được phân chia thành 2 phần:
1. Chi phí tính toán. Trong sơ đồ này, việc tính toán bao gồm:
(a) Tính toán trên server ký: Server tạo cặp khóa RSA, sau đó công khai chúng sử
dụng các dịch vụ lưu trữ bảo mật như LDAP. Cuối cùng, sử dụng các giải thuật mã
hóa bất đối xứng để tạo chữ ký số trên thông điệp cần ký x.
(b) Tính toán phía người dùng: Đầu tiên, người dùng phải tính chuỗi các giá trị băm
dựa trên một vài đầu vào đặc biệt. Và ở bước 4 trong sơ đồ SBS, người dùng phải
xác minh chữ ký được tạo ra bởi server ký.
2. Chi phí truyền thông. Để ký một thông điệp, người dùng dựa trên server ký để thực
thi hầu hết các tính toán của việc tạo chữ ký số. Vì vậy cần các kênh truyền thông
giữa người dùng và server ký trong suốt quá trình ký.
So với sơ đồ ký truyền thống [1], tải truyền thông của SBS trội hơn ở các mục như
tạo khóa công khai, và xác minh thẻ ký. Tuy nhiên, sơ đồ này phù hợp hơn với các thiết
bị cầm tay với năng lực tính toán hạn chế.
TỔNG KẾT
Sơ đồ ký số SBS được áp dụng cho các thiết bị di động, bao gồm cả máy tính bỏ
túi, điện thoại di động và PDA. Do khả năng tính toán và tuổi thọ pin hạn chế, các thiết bị
này không phù hợp để chạy thuật toán mã hóa truyền thống. Sơ đồ ký SBS tiêu tốn ít tài
nguyên tính toán ở phía client (các thiết bị mobile) và thực dụng hơn các sơ đồ ký truyền
thống. Tính bảo mật của sở đồ này cũng được phân tích và chứng minh là tương đương
với các lược đồ truyền thống. Sơ đồ SBS được sử dụng trên nhiều hệ thống như xác minh
mã di động, thanh toán di động, giáo dục từ xa, xác thực ảnh…
TÀI LIỆU THAM KHẢO
[1]N. Asokan, G. Tsudik, M. Waidner. Server-supported signa-tures. Journal of
Computer Security, Volume 5, Issue 1, pages 91–108, January 1997.
[2]Xuhua Ding, Daniele Mazzocchi, Gene Tsudik. Experiment-ing with Server-Aided
Signatures. In Proceedings of Network and Distributed System Security Symposium
(NDSS’2002), San Diego, 2002.
[3]Yu Lei, Deren Chen, Zhong ding Jiang. Generating Digital Signatures on Mobile
Devices. In Advanced Information Networking and Applications, 2004.
[4]TS. Trịnh Nhật Tiến, Bài giảng môn “Mật mã và an toàn dữ liệu”. Đại học Công Nghệ
- Đại học Quốc Gia Hà Nội.
[5]Hung-Yu Chien, Jinn-Ke Jan, Yuh-Min Tseng. RSA-based partially blind signature
with low computation. In Proceed-ings of International Conference on Parallel and
Distributed Systems (ICPADS’2001), 2001.