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

Chương 3 - Chữ ký điện tử và quản lý khóa trong hệ thống

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 (401.5 KB, 10 trang )

1
Tr
Tr


ờng
ờng
đạ
đạ
i
i
h
h


c
c
s
s


ph
ph


m
m
k
k



thu
thu


t
t
vinh
vinh
khoa
khoa
c
c
ô
ô
ng
ng
ngh
ngh


th
th
ô
ô
ng
ng
tin
tin
----------
----------

&&&
&&&
----------
----------
H
H


ng
ng


c
c
vinh
vinh
An to
An to


n d
n d


li
li


u
u

CH
CH


Kí I
Kí I


N T
N T


V
V


QU
QU


N Lí KH
N Lí KH


A TRONG H
A TRONG H


TH
TH



NG M
NG M


T M
T M
Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó
3 - 2
N
N


I DUNG
I DUNG
1. Ch
1. Ch


ký i
ký i


n t
n t


.
.

2. Ch
2. Ch


ký i
ký i


n t
n t


v
v


i mó kh
i mó kh
ú
ú
a cụng khai
a cụng khai
3. Qu
3. Qu


n lý kh
n lý kh
ú
ú

a.
a.
Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó
3 - 3
Trong i sng thng ngy, chỳng ta vn thng hay dựng ch ký
(vit tay) trờn mt vn bn minh chng v bn quyn hoc ớt nht l s
tỏn ng, tha nhn ca mỡnh i vi cỏc ni dung trong vn bn. Nhng
yu t no lm nờn "sc thuyt phc" ca ch ký?. V mt lý tng thỡ:
1. Ch ký l bng chng th hin ngi ký cú ch nh ký vn bn.
2. Ch ký th hin "ch quyn", nú lm cho ngi nhn vn bn bit rng ai
ớch th l ngi ó ký vn bn.
3. Ch ký khụng th "tỏi s dng c", tc l nú l phn ca vn bn m
khụng th sao chộp sang vn bn khỏc.
4. Vn bn ó ký khụng th thay i c.
5. Ch ký khụng th gi mo v cng l th khụng th chi b.
1. CH
1. CH


Kí I
Kí I


N T
N T


Chng 3: Ch ký in t v Qun lý khúa trong h thng mt mó
3 - 4
Ch ký in t (hay cũn gi l s ch ký s) l phng phỏp ký mt

vn bn lu di dng in t. Ch ký in t l mt th tc to ra mt hiu
qu tng t nh ch ký vit tay. Nú l mt du hiu m ch cú ngi gi
mi cú th to ra nhng nhng ngi khỏc cú th d nhn thy c rng nú
l ca ngi gi.
Mt s ch ký in t thng cha hai thnh phn:

Thut toỏn ký.

Thut toỏn xỏc thc (kim tra ch ký).
* Mt ngi A cú th ký vn bn in t x dựng thut toỏn ký an ton y = Sig(x). Ch ký y
nhn c cú th kim tra bng thut toỏn xỏc thc cụng khai Ver(x, y).
1.1 Kh
1.1 Kh


i ni
i ni


m ch
m ch


ký i
ký i


n t
n t



2
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 5

Một trong những ứng dụng sớm nhất của chữ ký điện tử được thực hiện
trong việc kiểm tra hiệp ước cấm phổ biến vũ khí hạt nhân giữa Liên Xô
và Mỹ. Liên Xô và Mỹ có thể đặt các máy đo địa chấn của mình trong
lòng đất của đối phương để kiểm tra các vụ thử hạt nhân của nhau.

Chữ ký điện tử được sử dụng trong thương mại điện tử: như mua bán qua
mạng, thanh toán điện tử, ký kết các hợp đồng ...

Xác thực các tác phẩm nghệ thuật trên mạng: Tranh ảnh, bản nhạc, ...
1.2. C
1.2. C
á
á
c
c


ng d
ng d


ng c
ng c



a ch
a ch


ký đi
ký đi


n t
n t


Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 6
2. CH
2. CH


KÝ ĐI
KÝ ĐI


N T
N T


V
V



I MÃ KH
I MÃ KH
Ó
Ó
A CÔNG KHAI
A CÔNG KHAI
Giao thức cơ bản trong giao dịch điện tử (sử dụng chữ ký điện tử với
mã khóa công khai) được thực hiện dựa trên ý tưởng của Diffie và Hellman:
(1). Người gửi (chủ nhân văn bản) ký văn bản bằng cách mã hóa nó với
khóa bí mật của mình.
(2). Người gửi chuyển văn bản đã “ký” cho người nhận.
(3). Người nhận văn bản kiểm tra chữ ký bằng việc sử dụng chìa khóa công
khai của người gửi để giải mã văn bản.
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 7
2. CH
2. CH


KÝ ĐI
KÝ ĐI


N T
N T


V
V



I MÃ KH
I MÃ KH
Ó
Ó
A CÔNG KHAI
A CÔNG KHAI
Người gửi
Tạo chữ ký số cho
văn bản
Người nhận
Xác thực chữ ký số
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 8
2.1.
2.1.
Sơ đ
Sơ đ


ch
ch


ký RSA
ký RSA
Có thể coi bài toán xác thực là bài toán "đối ngẫu" với bài toán bảo mật.
Vì vậy, sử dụng ngược thuật toán RSA ta có thể có được một sơ đồ chữ ký số
RSA như sau:


Cho n = p.q, với p, q là hai số nguyên tố đủ lớn.

Khoá K = {(n, p, q, e, d) | d ∈ Z
n
*, e.d ≡ 1 (mod φ(n) ) }
Với khóa k ∈ K. Ta định nghĩa:

Tạo chữ ký : y = Sig
k
(x) = x
d
mod n

Xác thực : Ver
k
(x, y) = TRUE ⇔ x = y
e
mod n
Trong đó:  Phần công khai là: (n, e)
 Phần bí mật là (p, q, d).
3
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 9
2.1.
2.1.
Sơ đ
Sơ đ


ch

ch


ký RSA
ký RSA
Lấy E
A
Người nhận B
E
B
= (e
B
, n
B
)
E
A
= (e
A
, n
A
)
Công bố E
A
Công bố E
B
Người gửi A
( x, S
A
)

Sơ đ
Sơ đ


ch
ch


ký RSA (không b
ký RSA (không b
í
í
m
m


t b
t b


n tin)
n tin)
Quán lý khóa công khai
Ký tên: S
A
= x
d
A
mod n
A

Xác thực: x = S
A
e
A
mod n
A
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 10
2.1.
2.1.
Sơ đ
Sơ đ


ch
ch


ký RSA
ký RSA
Người nhận B
Công bố E
B
Công bố E
A
Người gửi A
E
B
= (e
B

, n
B
)
E
A
= (e
A
, n
A
)
Quán lý khóa công khai
Lấy E
A
Bản mã Y
Sơ đ
Sơ đ


ch
ch


ký RSA (c
ký RSA (c
ó
ó
b
b
í
í

m
m


t b
t b


n tin)
n tin)
1. S
A
= x
d
A
mod n
A
2. M = x || S
A
3. Y = E
B
(M) = M
e
B
mod n
B
Lấy E
B
1. M = D
B

(Y) = Y
d
B
mod n
B
2. M = x || S
A
3. x = S
A
e
A
mod n
A
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 11
2.1.
2.1.
Sơ đ
Sơ đ


ch
ch


ký RSA
ký RSA
Người nhận B
Công bố E
A

Lấy E
A
Công bố E
B
Người gửi A
( M, S
A
)
Sơ đ
Sơ đ


ch
ch


ký RSA (c
ký RSA (c
ó
ó
b
b
í
í
m
m


t b
t b



n tin)
n tin)
E
B
= (e
B
, n
B
)
E
A
= (e
A
, n
A
)
Quán lý khóa công khai
1. M = E
B
(x) =x
e
B
mod n
B
2. S
A
= Sig
A

(M) = M
d
A
mod n
A
Lấy E
B
1. M = S
A
e
A
mod n
A
2. x = D
B
(M) = M
d
B
mod n
B
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 12
2.2.
2.2.
Sơ đ
Sơ đ


ch
ch



ký ElGramal
ký ElGramal
Trong đó:  Phần công khai là: (p, e, d)
 Phần bí mật là : a
Điểm mạnh của sơ đồ chữ ký Elgamal là cùng số nguyên tố p trong
cùng một sơ đồ thì với k là ngẫu nhiên nên ta có thể có nhiều chữ ký số. Có
nghĩa là có nhiều chữ ký hợp lệ trên văn bản cho trước. Thuật toán xác thực
phải có khả năng chấp nhận bất kỳ chữ ký hợp lệ nào khi xác thực chữ ký đó.

Cho p là một số nguyên tố đủ lớn và e ∈ Z
p
*
.

Khoá K = { (p, e, a, d) | d ≡ e
a
(mod p ) }
Chọn một số ngẫu nhiên k ∈ Z
p-1
. Ta định nghĩa

Tạo chữ ký: Sig
k
(x) = (y
1
, y
2
), với y

1
= e
k
mod p
y
2
= (x- a.y
1
).k
-1
mod (p-1)

Xác thực : Ver
k
(x, y
1
, y
2
) = TRUE ⇔ d
y
1
. y
1
y
2
= e
x
(mod p)
4
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã

3 - 13
2.2.
2.2.
Sơ đ
Sơ đ


ch
ch


ký ElGramal
ký ElGramal
 Ví du:
Với x = 5, p = 11→ e = 2
Chọn a = 8 → d = 2
8
= 256 mod 11= 3
Chọn k = 9

Ký tên:
y
1
= 2
9
mod 11 = 512 mod 11 = 6
y
2
= (5 - 8*6) *9
-1

(mod 10)
= (5 - 48) * 9 (mod 10) = 3

Thử xác thực:
z = 3
6
* 6
3
mod 11 = 10
e
x
= 2
5
mod 11 = 10 (đúng)
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 14
2.3. Chu
2.3. Chu


n ch
n ch


ký đi
ký đi


n t
n t



Chuẩn chữ ký số (Digital Signature Standard - DSS) được đề xuất
từ năm 1991 và được chấp nhận vào cuối năm 1994 để sử dụng trong một
số lĩnh vực giao dịch điện tử tại Hoa kỳ.
DSS dựa vào sơ đồ chữ ký ElGamal, với một vài sửa đổi. Để bảo
đảm an toàn, số nguyên tố p cần phải đủ lớn, biểu diễn nhị phân của p
phải có từ 512 bit trở lên (cụ thể từ 512 đến 1024 bit)
Ta được Sơ đồ chuẩn chữ ký số DSS như mô tả sau đây:
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 15
2.3. Chu
2.3. Chu


n ch
n ch


ký đi
ký đi


n t
n t


Chọn p là một số nguyên tố lớn có độ dài biểu diễn ≥ 512 bit sao
cho bài toán tính logarit rời rạc trong Z
p

là khó, q là một ước số
nguyên tố của (p - 1), có độ dài biểu diễn cỡ 160 bit. Gọi e ∈ Z
p
là một
căn bậc q của 1 theo (mod p).
Đặt P = Z
p
,
A
= Z
q
× Z
q
. Chọn a ∈ Z
q
và tính d ≡ e
a
(mod p). Xác
định khoá k = (p, q, a, e,d), trong đó khoá bí mật là (a) và khoá công
khai (p, q, e,d). Thuật toán ký và thuật toán kiểm thử được định nghĩa
như sau:
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 16
2.3. Chu
2.3. Chu


n ch
n ch



ký đi
ký đi


n t
n t


Với e ∈ Z
p

, ta chọn số ngẫu nhiên k (0≤ k ≤ q -1). Ta định nghĩa chữ ký:
Sig(x, k) = (y
1
, y
2
), trong đó y
1
= e
k
(mod p)
y
2
= (x + a.y
1
).k
-1
(mod q)
Thuật toán kiểm thử được định nghĩa bởi:

Ver(x, (y
1
, y
2
)) = TRUE ⇔ (e
c
1
. d
c
2
mod p) (mod q) = y
1
trong đó: c
1
= x. y
2
-1
(mod q) và c
2
= y
1
. y
2
-1
(mod q)
Chú ý rằng ta phải có y
2
≠ 0 (mod q) để có thể tính được (y
2
-1) (mod q) dùng

trong thuật toán kiểm thử, vì vậy nếu chọn k mà y
2
≡ 0 (mod q) thì phải chọn lại số k
khác để có được y
2
≠ 0 (mod q).
5
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 17
2.4. Sinh ch
2.4. Sinh ch


ký s
ký s


v
v


i h
i h
à
à
m băm
m băm
(Hash)
(Hash)


Ta biết rằng, tốc độ mã hóa khóa công khai là rất chậm, cho nên nếu ký
một văn bản có kích thước lớn thì việc dùng chữ ký số với mã khóa công
khai trực tiếp là không phù hợp.

Một cách đơn giản, để giải bài toán trên là chia văn bản lớn thành nhiều
đoạn con, sau đó ký lên các đoạn đó độc lập nhau. Điều này cũng tương tự
như mã một chuỗi dài bản rõ bằng cách mã tường kí tự bản rõ độc lập
nhau bằng cùng một khoá.

Tuy nhiên phương pháp này có nhược điểm đó là vẫn tốn kém về thời
gian đối với những văn bản có kích thước lớn. Mặt khác, một số đoạn có
thể bị thất lạc trong quá trình lưu chuyển đến người nhận, do đó mà có thể
bị lỗi trong quá trình xác thực chữ ký.
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 18
2.4. Sinh ch
2.4. Sinh ch


ký s
ký s


v
v


i h
i h
à

à
m băm
m băm
(Hash)
(Hash)
Mô h
Mô h
ì
ì
nh mã h
nh mã h
ó
ó
a t
a t


ng kh
ng kh


i
i
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 19
2.4. Sinh ch
2.4. Sinh ch


ký s

ký s


v
v


i h
i h
à
à
m băm
m băm
(Hash)
(Hash)

Phương pháp cải tiến cho các nhược điểm trên là: Thay vì ký tất cả các
đoạn văn bản, ta sẻ xây dựng một bản tóm lược thông tin của văn bản
(Messgage digest). Bản tóm lược này có kích thước cố định cho mọi văn
bản (tùy thuộc vào sơ đồ).

Bản tóm lược này phải thõa mãn điều kiện là bất kỳ sự thay đổi nào trên
văn bản đều làm thay đổi bản tóm lược của nó. (Nói cách khác, hai văn
bản khác nhau không thể có cùng bản tóm lược).

Giải pháp cho vấn đề trên là sử dụng hàm băm mã khóa công khai.
Hàm này lấy một văn bản điện tử có độ dài hữu hạn tùy ý và tạo ra một
bản tóm tắt có kích thước quy định.
Chương 3: Chữ ký điện tử và Quản lý khóa trong hệ thống mật mã
3 - 20

2.4. Sinh ch
2.4. Sinh ch


ký s
ký s


v
v


i h
i h
à
à
m băm
m băm
(Hash)
(Hash)
Mô h
Mô h
ì
ì
nh h
nh h
à
à
m băm
m băm

h
h

×