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

Giáo trình mật mã học phần 2 – Học viện bưu chính viễn 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 (2.27 MB, 168 trang )

Giáo trình Mật mã học


164
4.8.5. Tính ton vẹn của dữ liệu v xác thực thông báo
4.8.5.1. Định nghĩa 1
Tính ton vẹn của dữ liệu l tính chất đảm bảo dữ liệu không
bị sửa đổi một cách bất hợp pháp kể từ khi dữ liệu đợc tạo ra,
đợc phát hoặc đợc lu giữ bởi một nguồn đợc xác định.
4.8.5.2. Định nghĩa 2
Xác thực tính nguyên bản của dữ liệu l một kiểu xác thực
đảm bảo một bên liên lạc đợc chứng thực l nguồn thực sự tạo ra
dữ liệu đó ở một thời điểm no đó trong quá khứ.
Xác thực thông báo l một thuật ngữ đợc dùng tơng đơng
với xác thực nguyên gốc của dữ liệu.
Có ba phơng pháp cung cấp tính ton vẹn của dữ liệu bằng
cách dùng các hm băm.
- Chỉ dùng MAC
Thông báo Thuật toán MAC
MAC
Kênh khôn
g
an toàn
Khóa bí mật
Thông báo

Hình 4.7
- Dùng MDC v mã hóa
Thông báo Thuật toán MDC
MDC
Thông báo


Thuật toán
mã hóa
Khóa bí mật
MDC
Thông báo
Kênh khôn
g
an toàn

Hình 4.8
Chơng 4: Mật mã khóa công khai


165
- Sử dụng MDC v kênh tin cậy
Thông báo Thuật toán MDC
MDC
Kênh tin cậ
y
Kênh khôn
g
an toàn

Hình 4.9
4.8.5.6. Các phơng pháp đảm bảo xác thực tính nguyên vẹn
của dữ liệu
- Dùng MAC.
- Dùng các sơ đồ chữ ký số.
- Gắn (trớc khi mã hóa) một giá trị thẻ xác thực bí mật vo
văn bản đợc mã.

4.8.6. Trao đổi v thỏa thuận khóa
Giả sử A v B muốn liên lạc sử dụng hệ mật khóa bí mật. Để
thoả thuận mật khóa K chung cho cả hai bên qua một kênh không
an ton m không ai khác có thể biết đợc, A v B có thể dùng thủ
tục thỏa thuận khóa Diffie Hellman sau:
(1) Chọn trớc một số nguyên tố p thích hợp v một phần tử
sinh của
()
2p2Z
*
p
. Các giá trị p v đợc công khai.
(2) A gửi cho B giá trị pmod
x
. (2.1)
B gửi cho A giá trị pmod
y
. (2.2)
(3) Thực hiện các bớc sau mỗi khi cần có khóa chung:
Giáo trình Mật mã học


166
a) A chọn một số nguyên bí mật x: 2px1



v gửi cho B
thông báo (2.1).
b) B chọn một số nguyên bí mật y: 2py1




v gửi cho A
thông báo (2.2).
c) B thu đợc
x
v tính khóa chung k:
(
)
pmodk
y
x
=
d) A thu đợc
y
v tính khóa chung k:
(
)
pmodk
x
y
=
Ví dụ: Giả sử A v B chọn p = 11 v = 2
Nhóm nhân xyclic sinh bởi :

{
}
{
}

6,3,7,9,10,5,8,4,2,19,0i,
i
==
(Các phần tử sinh của nhóm ny bao gồm các phần tử sau:
2=
, 8
3
= , 7
7
= , 6
9
= ).
Giả sử A chọn giá trị ngẫu nhiên x = 4 v gửi cho B giá trị
511mod2
4
= .
Giả sử B chọn giá trị ngẫu nhiên y = 7 v gửi cho A giá trị
711mod2
7
= .
B nhận đợc 5 v tính khóa chung 311mod5k
7
== .
A nhận đợc 7 v tính khóa chung 311mod7k
4
== .
4.8.7. Chữ ký số
Chữ ký số đợc xây dựng trên cơ sở kết hợp mã hoá khóa
công khai với hm băm.
Các bớc tạo chữ ký v kiểm tra chữ ký đợc mô tả trên

hình sau:
Chơng 4: Mật mã khóa công khai


167
Hợp đồng
kinh tế

Thuật toán
băm
a3edbf5
3408scj
Mã hóa
khóa công khai
Khóa bí mật
của ngời gửi
Tóm lợc thông báo
Bản tin gốc
Tóm lợc thông báo
đã mã hóa
Hợp đồng
kinh tế

3408scj
Hợp đồng đã đợc ký
bằng chữ ký số

Hình 4.10: Tạo một thông báo có ký bằng chữ ký số
3408scj Giải mã a3edbf5
Khóa công khai

của ngời gửi
Tóm lợc thông báo
đã mã hóa
Tóm lợc thông báo
đã đợc phục hồi
Hợp đồng
kinh tế

Thuật toán
băm
a3edbf5
Tóm lợc thông báo

Hình 4.11: Các bớc kiểm tra một thông báo đã ký
Ví dụ: Sơ đồ chữ ký số RSA
Có thể coi bi toán xác thực l bi toán "đối ngẫu" với bi
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:
Giáo trình Mật mã học


168
Giả sử q.pn = , trong đó p v q l các số nguyên tố lớn có kích
thớc tơng đơng.

()
(
)
{
}

n4mod1ed,Zd:d,e,nK
*
n
=
Với
()
d,e,nK
=
ta có dD
=
l khóa bí mật,
()
e,nE = l
khóa công khai, m l bản tin cần ký.
Tạo chữ ký :
(
)
nmodmmsigS
d
D
==
Kiểm tra chữ ký :
(
)
s,mver
E
= đúng nmodSm
e
.
Hoạt động của sơ đồ chữ ký RSA có thể mô tả nh sau:

a) Trờng hợp bản tin rõ m không cần bí mật (Hình 4.12)
A ký bản tin m v gửi cho B.
B kiểm tra chữ ký của A.
D = d
AA
E = (e , n )
AAA
E = (e , n )
ABB
D = d
BB
Công bố E
A
Côn
g
bố E
B
Lấy E
A
A
Gửi
(
m, S
)
cho B
B
A
K
ý
: S = m mod n

A
A
d
A
Kiểm tra: m = S mod n
A
e
A
A

Hình 4.12: Sơ đồ chữ ký số RSA (không bí mật bản tin)
Giả sử A muốn gửi cho B bản tin rõ m có xác thực bằng chữ
ký số của mình. Trớc tiên A tính chữ ký số

(
)
A
d
DA
nmodmmsigS
A
A
==
Sau đó A gửi cho B bộ đôi
(
)
A
S,m . B nhận đợc
()
A

S,m v
kiểm tra xem điều kiện
A
e
A
nmodSm
A
có thoả mãn không. Nếu
thoả mãn, thì khi đó B khẳng định rằng
(
)
AE
S,mver
A
nhận giá trị
Đúng v chấp nhận chữ ký của A trên m.
Chơng 4: Mật mã khóa công khai


169
b) Trờng hợp bản tin rõ m cần giữ bí mật (hình 4.13)
D = d
AA
E = (e , n )
AAA
E = (e , n )
ABB
D = d
BB
Lấy E

B
Công bố E
A
Công bố E
B
Lấy E
A
A
Gửi M cho B
B
i. S = m mod n
AA
d
A
ii. X = m S
A
iii. M = X mod n
B
e
B
i. X = m mod n
B
d
B
ii. X = m S
A
iii. Kiểm tra: m = S mod n
A
e
A

A

Hình 4.13: Sơ đồ chữ ký số RSA (có bí mật bản tin)
A ký bản tin rõ m để đợc chữ ký
A
S
. Sau đó A dùng khóa
mã công khai
B
E của B để lập bản mã
(
)
AB
S,mEM
=
rồi gửi đến
B. Khi nhận dợc bản mã M, B dùng khóa bí mật
B
D của mình để
giải mã cho M v thu đợc
A
S,m . Tiếp đó dùng thuật toán kiểm
tra
A
E
ver
để xác nhận chữ ký của A.
4.8.8. Hệ mật dựa trên định danh
4.8.8.1. ý tởng cơ bản
Hệ mật dựa trên định danh do Shamin đề xuất [16] l một hệ

mật bất đối xứng trong đó thông tin định danh của thực thể (tên
riêng) đóng vai trò khóa công khai của nó. Trung tâm xác thực T
đợc sử dụng để tính khóa riêng tơng ứng của thực thể ny.
Trong các hệ mật khóa công khai thông thờng mỗi ngời sử dụng
có một cặp khóa (s, P) trong đó s l khóa bí mật (chỉ có ngời dùng
ny biết) còn P l khóa công khai m mọi ngời đều có thể biết.
Nh vậy, các khóa công khai không cần phải giữ kín m cần công
bố rộng rãi. Tuy nhiên tính công khai ny lại trở thnh đối tợng
cho các tấn công tích cực nh việc thay khóa công khai giả vo vị
trí khóa công khai thực trong danh bạ. Bởi vậy, ngoi cặp khóa
Giáo trình Mật mã học


170
(s, P) ta cần phải có chuỗi định danh I v không một dấu hiệu đảm
bảo G để biết rằng P thực sự l khóa công khai của ngời dùng I
v không phải l một kẻ giả mạo. Khi ta sử dụng các hệ mật
dựa trên định danh, khóa công khai sẽ tơng đơng với định danh
(P = I). Còn dấu hiệu đảm bảo sẽ tơng đơng với khóa bí mật (tức
l G = s). Hệ thống ny có nhiều đặc tính tốt do không phải lu
trữ chứng chỉ để kiểm tra.
Sau khi tính khóa riêng của một ngời dùng T sẽ chuyển
khóa riêng cho ngời dùng đó trên một kênh riêng an ton. khóa
riêng ny đợc tính không chỉ từ thông tin định danh của thực thể
m còn phải l một hm của một thông tin riêng no đó chỉ có T
mới biết (khóa riêng của T). Đây l điều cần thiết nhằm tránh giả
mạo v bắt chớc. Điều chủ yếu l chỉ T mới có khả năng tạo các
khóa riêng hợp lệ phù hợp với thông tin định danh.
4.8.8.2. Sơ đồ trao đổi khóa Okamoto-Tanaka
Phần ny mô tả tóm lợc sơ đồ trao đổi khóa Okamoto-

Tanaka [17] l một hệ thống phân phối khóa dựa trên định danh.
Sơ đồ ny gồm 3 pha sau:
a) Pha chuẩn bị
Trung tâm xác thực tin cậy chọn 2 số nguyên tố p v q v
đa công khai các giá trị n, g v e, trong đó n = p.q, g l phần tử
sinh của cả
*
q
Z v
*
q
Z , còn e
*
)n(
Z

. ở đây, hm Carmichael của n
đợc xác định nh sau:
(n) = BCNN(p 1, q 1)
Chơng 4: Mật mã khóa công khai


171
Cho d
*
)n(
Z

l khóa bí mật của trung tâm thỏa mãn điều kiện:
ed 1(mod(n))

Trun
g
tâm T
Ngời dùng
Alice
N
g
ời dùn
g
Bob
x = s .g
AA
r
A
x = s .
g
BB
r
B
WK = (ID x )
A
BBB
e
r
A
WK =
(
ID x
)
BA

A
A
e
r
B

Hình 4.14: Sơ đồ trao đổi khóa Okamoto-Tanaka
b) Pha tham gia của ngời dùng
Cho ID
i
l thông tin định danh của ngời dùng thứ i (i = A,
B, C, ). Cho
i
s l khóa bí mật của ngời dùng i thỏa mãn:
)n(modIDs
d
ii


Sau đó trung tâm T sẽ công bố (e, n, g, ID
i
) v phân phát
s
i
tới mỗi ngời dùng i qua một kênh an ton (hoặc bằng cách
dùng thẻ).
c. Pha tạo khóa chung
Ta giả sử ở đây rằng hai ngời dùng Alice v Bob muốn chia
sẻ một khóa chung (chẳng hạn để dùng cho một hệ mật khóa bí mật).
Trớc tiên Alice tạo một số ngẫu nhiên

A
r v tính:

()
A
r
AA
xs
g
mod n

v gửi nó cho Bob.
Giáo trình Mật mã học


172
Tơng tự, Bob tạo một số ngẫu nhiên
B
r v tính:
()
B
r
BB
xs
g
mod n

v gửi nó cho Alice.
Tiếp theo, Alice tính:
(

)
()
A
r
e
AB B B
WK ID x mod n=

Tơng tự, Bob tính
(
)
()
B
r
e
BA A A
WK ID x mod n=

WK
AB
v WK
BA
sẽ dùng lm khóa chung vì:
(
)
()
()
()
A
A

B
A
B
BA
r
e
AB B B
r
e
r
BB
r
e
re
d
BB
e.r .r
BA
WK ID .x
ID s .g
ID ID .g
g
WK mod n

=

=




=


=
=


bi tập

1. Ví dụ về hệ mật RSA. Cho p = 7 v q = 17.
a. Tính n.
b. Cho e (số mũ mã hóa) bằng 5. Hãy tính số mũ giải mã d.
c. Hãy mã hóa v giải mã cho các số 49 v 12.
2. Ngời ta biết rằng đối với hệ mật RSA, tập các bản rõ bằng tập
các bản mã. Tuy nhiên bạn có cho rằng một số giá trị trong không
gian thông báo (bản rõ) l không mong muốn?
Chơng 4: Mật mã khóa công khai


173
3. Trong hệ mật Rabin, giả sử p = 199, q = 211.
a. Xác định 4 căn bậc hai của 1 mod n, trong đó n = p.q.
b. Tính bản mã của 32767.
c. Xác định 4 bản giải mã có thể của bản mã trên.
4. Xét trờng hợp đơn giản của hệ mật Merkle-Hellman sử dụng
phép toán hoán vị đồng nhất. Giả sử dãy siêu tăng đợc chọn l (2,
3. 6, 13, 27, 52) giá trị ngẫu nhiên w đợc chọn l 31, modulo M
đợc chọn l 105.
a. Hãy xác định khóa bí mật.
b. Bản tin ở dạng nhị phân có dạng 011000_110101_101110.

Hãy tính bản mã v hãy giải mã để tìm lại bản tin ban đầu.
5. Đây l một ví dụ về hệ mật ElGamal áp dụng trong
()
3
GF 3
. Đa
thức x
3
+ x
2
+ 1 l một đa thức bất khả quy trên
[
]
3
Zx
v bởi vậy
[
]
()
32
3
Zx x x 1++
chính l GF(3
3
). Ta có thể gắn 26 chữ cái của
bảng chữ cái tiếng Anh với 26 phần tử khác không của trờng v
nh vậy có thể mã hóa một văn bản thông thờng theo cách
truyền thống. Ta sẽ dùng thứ tự theo từ điển của các đa thức khác
không để thiết lập sự tơng ứng.
2

222
222
22 2
22 2
222
22
A1 B2 Cx
Dx1 Ex2 F2x
G2x1 H2x2 I x
Jx1 Kx2 Lxx
Mxx1 Nxx2 Ox2x
Px2x1 Qx2x2 R2x
S2x1 T2x2 U2xx
V2xx1 W2xx2 X2x2x
Y2x2x1 Z2x2x2

+ +
+ +
+ + +
++ ++ +
++ ++
+ + +
++ ++ +
++ ++

Giáo trình Mật mã học


174
Giả sử Bob dùng x= v a = 11 trong hệ mật ElGamal, khi

đó
a
x2= +
. Hãy chỉ ra cách m Bob sẽ giải mã cho bản mã sau:
(K, H) (P,X) (N,K) (H, R) (T, F) (V, Y) (E, H) (F, A) (T, W) (J,
D) (V, J).
6. Mã BCH (15, 7, 5) có ma trận kiểm tra sau:
100010011010111
010011010111100
001001101011110
000100110101111
H
100011000110001
000110001100011
001100011001110
011110111101111






=









Hãy giải mã cho các véctơ nhân đợc sau bằng phơng pháp
giải mã theo syndrom:
a. r = (1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
b. r = (1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0)
c. r = (1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0).
7. Giả sử p = 25307 còn
2

=
l các tham số công khai dùng cho
thủ tục thoả thuận khóa Diffie-Hellman.
Giả sử A chọn x = 3578 v B chọn y = 19956. Hãy tính khóa
chung của A v B.











PhÇn III
C¸c thñ tôc vμ øng dông














các thủ tục v các chú ý trong
thực tế khi sử dụng mã hóa

Trong chơng 3 v 4 ta đã xem xét các ví dụ về các hệ thống
mật mã đợc coi l mật. Có hng trăm phơng pháp mã hóa khác
nhau ngoi DES v RSA l hai hệ mật khóa công khai v khóa bí
mật đợc thừa nhận rộng rãi nhất trong thực tế.
Tuy nhiên chỉ đơn giản l có v sử dụng một hệ mật mạnh l
cha đủ để đảm bảo mọi giao dịch sử dụng hệ mật đó đợc đảm
bảo an ton. Có những cách thức đúng hoặc không đúng khi sử
dụng các phơng pháp mã hóa. Hơn nữa các thuật toán ny có thể
đợc dùng để giải quyết các vấn đề m bí mật hoặc xác thực chỉ l
một phần của nó. Trong chơng ny ta sẽ nghiên cứu v đánh giá
các kỹ thuật sử dụng mã hóa để thiết lập một kênh liên lạc mật
giữa hai ngời dùng. Ta cũng khai thác các cách thích hợp để sử
dụng mã hóa.
5.1. Các thủ tục: hnh vi có thứ tự
Các hệ thống mã hóa l một công cụ quan trọng trong an
ton máy tính, chúng cho phép bạn phát thông tin ở dạng đợc
che dấu. Chúng đợc dùng để phát các ti liệu v số liệu trên một

kênh có thể bị thu chặn. Bằng cách sử dụng các quy ớc đợc thiết
Giáo trình Mật mã học


178
lập giữa hai bên với hệ mật có thể đợc dùng cho những mục đích
khác với việc liên lạc an ton. Các quy ớc ny đợc gọi l các thủ
tục, chúng sẽ l chủ đề của phần sau:
5.1.1. Định nghĩa thủ tục
Một thủ tục l một dãy các bớc có thứ tự m hai bên (hoặc
nhiều hơn) phải thực hiện để hon tất một công việc no đó. Các
bên sử dụng thủ tục phải nhất trí hon tất thủ tục trớc khi dùng
nó. Thứ tự của các bớc cũng quan trọng nh hoạt động của mỗi
bớc. Ngời ta sử dụng các thủ tục để điều chỉnh hnh vi v
quyền lợi chung.
Sử dụng điện thoại l một ví dụ đơn giản của một thủ tục.
Ngời quay số sẽ nghe cả âm chuông v tiếng nhấc máy khi kết
nối đợc thiết lập. Trong thực tế, thủ tục ở đây l ngời nhận sẽ
nói trớc (chẳng hạn xin cho, hoặc tôi nghe đây). Ngời ta sẽ
trả lời bằng một lời cho giới thiệu bản thân. Hai bên sau đó sẽ
lần lợt trao đổi. Không có thủ tục ny cả hai bên có thể nói cùng
một lúc khi kết nối đợc thiết lập v không một ai có thể nghe
đợc ngời khác.
Tơng tự nh ví dụ trên ta có thể thấy rằng một thủ tục tốt
sẽ có các đặc tính sau:
- Đợc thiết lập trớc: Thủ tục đợc thiết kế hon chỉnh trớc
khi nó đợc sử dụng.
- Có sự thống nhất chung: Mọi thnh viên nhất trí tuân thủ
các bớc trong thủ tục theo thứ tự.
- Không nhập nhằng: Không một ai có thể thực hiện sai một

bớc do không hiểu nó.
Chơng 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa


179
- Hon chỉnh: Đối với mọi tình huống có thể xảy ra đều phải
có một hnh động đợc mô tả trớc cần thực hiện.
Các thủ tục cũng đợc dùng trong liên lạc giữa máy tính với
máy tính. Một máy tính cần phải biết khi no nói v nghe với
máy đang liên lạc với nó v liệu nó đã nhận đủ thông tin cha
Hiển nhiên l cả hai máy tính phải tuân theo cùng một thủ tục.
5.1.2. Các loại thủ tục
Các nhiệm vụ nhất định, chẳng hạn nh thỏa thuận hợp
đồng, bầu cử, phân phối thông tin v thậm chí l chơi bi đều l
các hoạt động của con ngời. Tuy nhiên nhiều nhiệm vụ kiểu ny
phụ thuộc vo ngời lm chứng để đảm bảo sự công bằng. Liệu
bạn có tin vo một ngời nói rằng anh ta sẽ xóc các quân bi m
không nhìn vo chúng v đa cho bạn? Liệu bạn có tin vo một
ngời nếu bạn không quen biết v nếu số tiền đặt cợc cao?
Xã hội hiện đại đòi hỏi việc sử dụng máy tính v liên lạc nh
những công cụ thơng mại. Nhiều ngời sử dụng máy tính không
có sự quen biết cá nhân đối với ngời quản lý v những ngời sử
dụng khác trong hệ thống. Trong nhiều trờng hợp việc liên lạc
máy tính đợc thực hiện trên những khoảng cách lớn. Do tính vô
danh v do khoảng cách ngời dùng sẽ không tin vo các nh
quản lý v những ngời dùng khác trong hệ thống. Để sử dụng
máy tính một cách hiệu quả ta phải phát triển các thủ tục m nhờ
chúng hai ngời đa nghi có thể giao tiếp với nhau v tin vo sự
công bằng.
Hơn nữa để điều chỉnh hnh vi, các thủ tục còn phục vụ cho

một mục đích rất quan trọng khác l các thủ tục phải tách quá
Giáo trình Mật mã học


180
trình hon tất một nhiệm vụ khỏi cơ chế thực thi nó. Một thủ tục
sẽ chỉ xác định các quy tắc của hnh vi. Bằng cách ny ta có thể
kiểm tra một thủ tục để tin rằng nó đạt kết quả mong muốn. Ta sẽ
kiểm tra tính đúng đắn của quá trình ở mức cao.
Sau khi đã tin vo tính đúng đắn của thiết kế ta có thể áp
dụng thủ tục bằng cách dùng một cơ chế no đó (tức l dùng một
ngôn ngữ riêng no đó hoặc một hệ thống mã hóa). áp dụng phải
tách khỏi thiết kế. Bởi vậy ta chỉ cần kiểm tra rằng cơ chế sẽ phản
ảnh thiết kế đúng đắn, ta không cần kiểm tra lại rằng ứng dụng
sẽ giải quyết vấn đề m thủ tục đợc thiết kế cho nó. Hơn nữa,
sau ny ta có thể thay đổi ứng dụng m không ảnh hởng tới thiết
kế. Việc tách rời thiết kế khỏi các ứng dụng l một u điểm quan
trọng trong việc dùng các thủ tục.
5.1.3. Các thủ tục có trọng ti
Trọng ti l một bên thứ ba vô t đợc tin cậy để hon tất
một giao dịch giữa hai bên không tin cậy nhau. Nếu bạn bán một
chiếc xe cho một ngời lạ v anh ta đa cho bạn một tấm séc thì
bạn không có cách no để biết rằng tấm séc ny có giá trị không.
Bạn muốn gửi tấm séc ny v giữ xe lại trong ít ngy cho tới khi
bạn tin chắc rằng séc không có vấn đề gì. Một ngời mua đa nghi
sẽ không chịu nh vậy vì bạn lại có cả xe v séc v biết đâu bạn có
thể chuồn khỏi thnh phố với chúng?
Giải pháp ở đây l sử dụng một bên thứ ba đợc tín nhiệm
chẳng hạn một chủ nh băng hoặc một luật s lm trọng ti. Bạn
trao chứng nhận sở hữu xe v chìa khóa xe cho trọng ti v ngời

mua xe đa séc cho trọng ti. Bạn có một sự đồng ý tay ba vo thời
điểm séc đợc xác nhận. Trọng ti sẽ gửi séc vo ti khoản của
Chơng 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa


181
bạn. Nếu trong một thời hạn xác định séc đợc xác nhận thì trọng
ti sẽ chuyển xe của bạn cho ngời mua. Nếu séc không đợc xác
nhận thì trọng ti sẽ trả xe về cho bạn. Trong một thủ tục máy
tính, trọng ti l một bên thứ ba tin cậy đủ đảm bảo sự công bằng.
Trọng ti có thể l một ngời, một chơng trình hoặc một máy
tính. Ví dụ trong một mạng, trọng ti có thể l một chơng trình
chạy trên một máy trong mạng. Chơng trình sẽ nhận v gửi các
thông báo giữa các ngời dùng. Ngời dùng tin rằng khi trọng ti
gửi tới một thông báo nói rằng nó tới từ A thì thông báo thực sự
đợc gửi từ ngời dùng A. Khái niệm trọng ti l một khái niệm cơ
bản đối với loại thủ tục an ton đợc gọi l thủ tục có trọng ti.
Các thủ tục máy tính có trọng ti có một số nhợc điểm:
- Hai bên không có khả năng tìm một bên thứ ba vô t m cả
hai đều tin tởng. Những ngời dùng đa nghi có lý khi họ không
tin vo một trọng ti không đợc biết trên mạng.
- Việc duy trì hoạt động của trọng ti sẽ lm tăng chi phí cho
những ngời sử dụng hoặc mạng chi phí ny có thể rất lớn.
- Trọng ti sẽ gây nên thời gian giữ chậm khi liên lạc vì bên
thứ ba phải thu, xem xét v rồi mới gửi đi đối với mỗi giao dịch.
- Nếu dịch vụ trọng ti đợc dùng quá nặng nề thì nó có thể
trở thnh một nút cổ chai trong mạng vì nhiều ngời dùng đều
muốn có trọng ti riêng.
- Tính bí mật trở nên dễ bị tổn thơng vì trọng ti phải truy
nhập tới nhiều thông tin nhạy cảm.

Vì những lý do trên m ngời ta thờng tránh dùng thủ tục
ny nếu có thể.
Giáo trình Mật mã học


182
5.1.4. Các thủ tục có phán xét
Tơng tự nh trọng ti l ý tởng sử dụng quan tòa. Quan
tòa l một bên thứ ba có thể phán xét liệu một giao dịch có đợc
thực hiện một cách công bằng hay không. Ví dụ công chứng viên l
một bên thứ ba vô t đợc tin cậy sẽ chứng thực rằng một ti liệu
đã đợc ký một cách tự nguyện v xác nhận rằng anh ta có đầy đủ
lý do để xác định rằng ngời ký l có thẩm quyền. Chữ ký của
công chứng viên thờng cần thiết đối với những t liệu hợp lệ m
tính xác thực của nó sau ny có thể bị nghi ngờ. Công chứng viên
không thêm một tý gì vo giao dịch ngoi việc l một ngời lm
chứng - một ngời sau ny có thể kiểm tra khi có sự nghi ngờ.
Một số thủ tục máy tính sử dụng một kiểu tơng tự công
chứng viên để xây dựng bằng chứng công bằng. Với một thủ tục có
khả năng phán xét, số liệu đủ l cần thiết để bên thứ ba vô t
phán xét đợc tính công bằng dựa trên bằng chứng. Bên thứ ba
không chỉ có thể xác định liệu hai bên tranh chấp có xử sự đúng
không (tức l nằm trong các quy tắc của thủ tục) m còn có thể
xác định đợc ai l ngời gian lận.
Các thủ tục có phán xét sẽ xoay quanh các dịch vụ của bên
thứ ba chỉ trong trờng hợp có tranh chấp. Bởi vậy các thủ tục ny
có chi phí thấp hơn các thủ tục có trọng ti. Tuy nhiên chúng chỉ
xác định đợc sai sót sau khi sai sót xảy ra.
5.1.5. Các thủ tục tự r
ng buộc

Một thủ tục tự rng buộc l một thủ tục đảm bảo sự công
bằng. Nếu một bên no đó cố gắng gian lận thì điều ny phải đợc
bên kia thấy rõ. Không cần bất cứ một ngời ngoi no để đảm
bảo sự công bằng. Hiển nhiên l các thủ tục tự rng buộc đợc a
thích hơn cả. Tuy nhiên, không có một thủ tục tự rng buộc đối với
mọi tình huống.
Chơng 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa


183
Nh vậy có ba mức các thủ tục:
- Các thủ tục có trọng ti trong đó một bên thứ ba tin cậy sẽ
tham gia vo mỗi giao dịch để đảm bảo rằng cả hai bên đều xử sự
đúng đắn.
- Các thủ tục có sự phán xét trong đó một bên thứ ba có thể
phán xét liệu cả hai bên có xử sự đúng đắn hay không v nếu
không thì bên no l gian lận.
- Các thủ tục tự rng buộc trong đó những mu toan gian lận
của một bên no đó sẽ bị bên khác hiện.
Các loại thủ tục ny đợc mô tả ở hình hình 5.1.
b
a. Các thủ tục có trọng tài
Trọng tài
A đã chơi đẹp

Bằng chứng
b
b
Quan tòa
b


Bằng chứng
b
A
B
B
b. Các thủ tục có phán xét
A
đang gian lận
bb
B
A
c. Các thủ tục ràng buộc

Hình 5.1: Các loại thủ tục
Giáo trình Mật mã học


184
Sau đây ta sẽ hớng mối quan tâm vo việc sử dụng các thủ
tục để giải quyết các bi toán trong an ton mạng máy tính.
5.2. Các thủ tục để giải quyết các vấn đề
Bây giờ ta sẽ nghiên cứu việc sử dụng các thủ tục trên những
bi toán thực tế. Rõ rng l khi hai ngời tiếp xúc trực tiếp họ sẽ
lm khác với khi có một máy tính giữa họ. Mặc dù có thể có những
khác biệt về quan điểm nhng chúng tôi vẫn muốn đa ra những
thủ tục cho một môi trờng tự động m nhờ nó con ngời có thể
tiến hnh các công việc hng ngy nh ký các hợp đồng, chi trả
các hóa đơn, bỏ phiếu bầu cũng an ton nh các giao tiếp giữa
ngời với ngời. Ta cũng nghiên cứu một số vấn đề m có các thủ

tục an ton cho chúng.
5.2.1. Phân phối khóa
Thay đổi khóa mã hóa l một vấn đề quan trọng nhng
không dễ. Có thể thấy rằng thám mã sẽ cng có cơ may thnh
công nếu có cng nhiều bản mã. Bản mã từ các khóa khác nhau có
thể giúp cho việc xác định cấu trúc của một thuật toán bí mật
hoặc các khóa bí mật nhng bản mã từ cũng một khóa lại giúp
cho việc tìm giá trị của khóa. Nh vậy, trên thực tế cần thay đổi
khóa một cách định kỳ để đảm bảo lợng bản mã tạo từ một khóa
bất kỳ không giúp ích đáng kể cho thám mã.
Tuy nhiên ta hãy xem xét một việc sử dụng mã hóa cho các
chữ ký số trên các hợp đồng. Nếu bạn đa ra hoặc thu nhận một
hợp đồng đã đợc ký bằng chữ ký số thì bạn muốn giữ hợp đồng
lm bằng chứng cho tới khi mọi tranh chấp có thể có đã đợc giải
Chơng 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa


185
quyết. Điều ny có thể l phải nhiều năm sau khi hợp đồng đã
đợc thực hiện . Ngời gửi v ngời nhận cần phải giữ mọi khóa
cần thiết để kiểm chứng giá trị các chữ ký của hợp đồng. Nếu
ngời gửi thay đổi các khóa mã hóa hng ngy hoặc thậm chí l
hng tháng thì vẫn phải lu giữ hng trăm hoặc hng nghìn khóa.
V những khóa ny phải đợc lu giữ một cách an ton. Điều ny
cho thấy không nên thay đổi khóa thờng xuyên hơn mức cần
thiết. Mặt khác, nếu một khóa bị mất hoặc bị lộ thì cng dùng ít
khóa nguy cơ ny cng ít. Bởi vậy việc chọn một tần suất thay đổi
khóa thích hợp không phải l một công việc dễ dng.
Một số thủ tục đã đợc phát triển cho việc phân phối khóa.
Các thủ tục ny phụ thuộc vo mức độ chia sẻ thông tin giữa

ngời gửi v ngời nhận.
5.2.1.1. Trao đổi khóa đối xứng không có máy chủ (Server)
Giả sử rằng hai ngời sử dụng đều có một bản sao của khóa
mã hóa đối xứng (bí mật) K m chỉ có họ biết. Khi lợng thông báo
không lớn lắm hoặc nếu không có nguy cơ xâm nhập đáng kể thì
họ có thể dùng K để trao đổi các thông báo.
Tuy nhiên nếu hai ngời muốn an ton hơn họ có thể đồng ý
thay đổi khóa thờng kỳ thậm chí l dùng khóa khác nhau đối với
mỗi thông báo. Để l
m đợc điều ny một trong hai ngời có thể
tạo một khóa mới (đợc gọi l Knew) rồi mã hóa nó bằng K v gửi
E (Knew, K) tới ngời còn lại. Trong một số hệ mật K đợc gọi l
khóa chủ hay mã hóa khóa v Knew đợc gọi l khóa phiên hay
khoa lu chuyển.
Giáo trình Mật mã học


186
Nhợc điểm của phơng pháp ny l hai ngời dùng phải
cùng chia sẻ một khóa duy nhất của họ. Các cặp ngời dùng khóa
cũng cần các khóa duy nhất v nói chung n ngời dùng phải cần
tới n(n+1)/2 khóa.
5.2.1.2. Trao đổi khóa đối xứng có máy chủ (Server)
Một phơng pháp khác l sử dụng dịch vụ phân phối khóa
trung tâm cho 2 ngời dùng. ở thủ tục ny số khóa sẽ giảm nhng
tính mềm dẻo của giải pháp cũng giảm đi một mức no đó.
Giả sử Pablo v Rơnê muốn có một khóa bí mật dùng để trao
đổi các thông báo nhng họ không có khóa chung. Tuy nhiên ta
cũng coi rằng có một kho chứa khóa trung tâm sao cho Pablo v
kho ny có một khóa chung K

P
, Rơnê v kho có một khóa chung
khác K
R
. Nh đã nêu trong [8], trớc tiên Pablo sẽ gửi tới kho (P,
R, I
P
) báo danh tính của mình (P), danh tính của ngời nhận (R)
v một định danh I
P
để đánh dấu kết quả, kho sẽ gửi trở lại thông
tin của Pablo (giả sử rằng Pablo có thể gửi nhiều yêu cầu tới kho
v cần một định danh để phân biệt) v để tránh các tấn công theo
kiểu phát lại (các tấn công dạng ny có thể buộc Pablo v Rơnê
dùng lại khóa trớc). Thông tin ny không cần phải mã hóa vì:
- Nếu thông báo đợc đọc bởi một ngời ngoi (Chẳng hạn
Octavia) thì việc biết rằng Pablo v Rơnê muốn trao đổi thông báo
riêng cũng chẳng gây tổn hại gì.
- Nếu thông báo bị thu chặn v bị sửa đổi thì trờng hợp xấu
nhất có thể xảy ra l yêu cầu sẽ bị thay đổi từ yêu cầu Pablo/ Rơnê
sang yêu cầu Pablo/ Octavia, vì vậy sự thay đổi ny sẽ đợc phát
hiện ngay ở bớc sau.
Chơng 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa


187
- Nếu thông báo bị Octavia thu chặn v không phát đi thì
Pablo sẽ nhận thấy không có trả lời v sẽ có hnh động đối phó.
- Nếu thông báo bị Octavia thu chặn v giả mạo tạo một câu
trả lời thì Pablo sẽ nhận thấy rằng câu trả lời không đợc mã hóa

đúng ở bớc tiếp.
Trung tâm phân phối khóa sẽ tạo một khóa mã hóa mới cho
Pablo v Rơnê để sử dụng (ta gọi l K
PR
). Trung tâm phân phối sẽ
gửi cho Pablo.
E((I
P
, R, K
PR
, E((K
PR
, P), K
R
)), K
P
)
Trong phần giao dịch ny Pablo sẽ nhận 4 tin sau đợc mã
hóa bằng K
P
:
- Định danh thông báo I
P
.
- Tính danh của Rơnê R.
- Khóa liên lạc K
PR
.
- Một xâu bao gồm tính danh của anh ta v cũng khóa đó
đợc mã bằng khóa của trung tâm phân phối chung với Rơnê,

E((K
PR
, P), K
R
).
Pablo không thể giải mã thông tin cuối cùng ny nhng anh
ta có thể gửi nó cho Rơnê. Một lần nữa, các tấn công của Octavia
cũng không thnh công vì:
- Nếu Octavia thay R bằng O trong thông báo gốc của Pablo
để thay đổi tính danh của mình vo vị trí của Rơnê thì trong trả
lời từ trung tâm phân phối Pablo sẽ nhận thấy rằng tính danh của
Rơnê đã bị thay đổi thnh tính danh của Octavia.
Giáo trình Mật mã học


188
- Nếu Octavia thay P bằng O trong thông báo gốc của Pablo
để thay tính danh của mình vo vị trí tính danh của Pablo. Khi đó
Octavia (chứ không phải l Pablo) sẽ thu đợc trả lời, còn về phần
mình Rơnê sẽ xác định rằng Octavia (chứ không phải l Pablo) l
ngời muốn liên lạc với mình (qua thông báo đợc mã bằng khóa
chỉ có trung tâm phân phối v Rơnê đợc biết).
- Nếu Octavia thu chặn thông báo từ trung tâm phân phối
thì ton bộ thông báô đợc mã bằng khóa K
P
nên Octavia không
thể biết đợc v cũng không thể thay đổi nó một cách logic.
Cuối cùng Pablo sẽ gửi cho Rơnê E((K
PR
, P), K

R
), khóa đợc
xác nhận v đợc ký bởi trung tâm phân phối l khóa dùng để liên
lạc với Pablo. Thủ tục ny đợc chỉ ra trên hình 5.2.
b
c
Trung tâm
phân phối
(2) Đây là khóa
cho bạn và một
bản sao cho Rơnê
(1) Hãy trao cho
tôi khóa để liên
lạc với Rơnê
(3) Rơnê, trung tâm phân phối đã cho tôi
khóa này dùng để liên lạc giữa hai ta

Hình 5.2: Phân phối khóa qua trung tâm phân phối khóa
Thủ tục đợc đa ra ở đây đòi hỏi phải luôn có trung tâm
phân phối khóa. Việc thêm vo trung tâm ny có thể gây ra hiện
tợng tắc nghẽn (do nhiều ngời yêu cầu khóa), nó cũng l một
mục tiêu rất hấp dẫn để qua mặt tại sao Octavia lại phải mất thời
gian để thu chặn v thay đổi các thông báo riêng nếu nh cô ta
Chơng 5: Các thủ tục và các chú ý trong thực tế khi sử dụng mã hóa


189
có thể qua mặt, giả mạo hoặc lm mất hiệu lực của trung tâm
phân phối.
Tuy nhiên sơ đồ ny tốt khi mở rộng vì khi thêm một ngời

dùng mới chỉ cần thêm một khóa chung với trung tâm phân phối
khóa. Hơn nữa, ngời dùng có thể thay đổi khóa thờng xuyên
theo mong muốn bằng cách đa ra yêu cầu khóa mới cho trung
tâm phân phối. Thủ tục ny cũng thích hợp khi Pablo v Rơnê
không cần trao đổi liên lạc trớc nếu họ đã đợc ghi nhận ở trung
tâm phân phối.
5.2.1.3. Trao đổi khóa không đối xứng không có máy chủ
(Server)
Sử dụng mã hóa không đối xứng (khóa công khai) sẽ lm
giảm nhu cầu đối với các khóa riêng v cũng không lm giảm khả
năng dễ bị tấn công của kho chứa trung tâm. Giả sử Pablo v
Rơnê muốn trao đổi một thông báo, mỗi ngời đều có một cặp khóa
riêng v khóa công khai v mỗi ngời đều có thể truy nhập đợc
vo khóa công khai của ngời khác. Ta ký hiệu các khóa riêng v
khóa công khai của Pablo l E
P
v D
P
, các khóa tơng ứng ny của
Rơnê l E
R
v D
R
.
Pablo có thể gửi trực tiếp E
R
(M) tới Rơnê. Tuy nhiên các
thuật toán mã hóa công khai điển hình thực hiện chậm hơn hẳn so
với các thuật toán mã hóa đối xứng (thờng kém tới một vi bậc).
Bởi vậy, trong khi bản thân việc mã hóa l một gánh nặng đối với

tốc độ liên lạc thì mã hóa khóa công khai lại l một gánh nặng tới
mức không thể chấp nhận đợc. Vì lý do đó, Pablo v Rơnê có thể

×