ài này nhằm bổ sung cho bài An toàn thông tin
trong thơng mại điện tử[1]
bằng một số trình
bầy chi tiết hơn, có tính chất toán học và kĩ
thuật, về các nội dung của lý thuyết mật mã, cơ
sở của các giải pháp đã đợc đề cập trong bài trớc
[1]
I. Mật mã và cơ sở lý thuyết mật mã
hiện đại
1. Mật mã khoá
Mật mã đã đợc nghiên cứu và sử dụng từ rất
lâu trong lịch sử loài ngời. Tuy nhiên chỉ vài ba
chục năm gần đây, nó mới đợc nghiên cứu công
khai và tìm đợc các lĩnh vực ứng dụng trong đời
sống công cộng với sự phát triển của kỹ thuật
tính toán và viễn thông hiện đại. Và từ đó, ngành
khoa học này đã phát triển rất mạnh mẽ, đạt đợc
nhiều kết quả lý thuyết sâu sắc và tạo cơ sở cho
việc phát triển các giải pháp bảo mật và an toàn
thông tin trong mọi lĩnh vực hoạt động của con
ngời ở thời đại mà công nghệ thông tin đợc ứng
dụng rộng khắp.
Việc ra đời các máy tính điện tử có năng lực
tính toán lớn cùng với việc phát hiện nhiều loại
bài toán đòi hỏi những năng lực tính toán còn
lớn hơn gấp bội đã đa đến việc nghiên cứu về độ
phức tạp tính toán, và một quan niệm về bí mật
gắn với độ phức tạp tính toán. Một giải pháp đợc
gọi là bí mật lý tởng, nếu để phá đợc giải
pháp đó (tức là giải đợc bí mật đó) cần phải thực
dễ. (Dễ, là có độ phức tạp tính toán chấp nhận đ-
ợc; rất khó là có độ phức tạp tính toán không vợt
qua nổi trên thực tế)
Thí dụ: Giả sử p là một số nguyên tố rất lớn,
và g là một căn nguyên thuỷ modulo p (tức g là
phần tử sinh của nhóm Z
p
*
gồm các số bé hơn p
và nguyên tố với p).
Ta có Hàm y = f(x) = g
x
(mod p) là hàm một
phía, vì biết x tính y là khá đơn giản, nhng biết y
để tính x thì với các thuật toán đã biết hiện nay
đòi hỏi một khối lợng tính toán cỡ
O(exp(lnp.lnlnp)
1/2
) phép tính (nếu p là số
nguyên tố cỡ 200 chữ số thập phân, thì khối l-
ợng tính toán trên đòi hỏi một máy tính 1 tỷ
phép tính/giây làm việc không nghỉ trong
GS. TS. Phan Đình Diệu
1
1
khoảng 3000 năm!). Giả sử n = p.q là tích của
hai số nguyên tố lớn p, q và e là một số nguyên
tố với
(n) = (p-1)(q-1). Biết p, q, dễ tính đợc d
cũng đầy khó khăn.
II. Mật mã khoá công khai với an
toàn thông tin
1. Truyền tin bảo mật:
Trong các hệ thống bảo mật cổ điển, hai ngời
muốn truyền tin bí mật cho nhau phải thoả thuận
một khoá mật mã chung K, K vừa là khoá để lập
bản mật mã C từ bản rõ P, và cũng là khoá để
giải mã từ C tìm lại P theo các phép lập mật mã
C = E
K
(P) và phép giải mã P = D
K
(C). Tất nhiên
ta có D
K
(E
K
(P)) = P. Khoá K phải giữ kín, chỉ
có hai ngời biết.
Mật mã khoá công khai dựa trên ý tởng sau
đây: có thể tách riêng hai quá trình lập mã và
giải mã với hai khoá riêng biệt. Bí mật là dành
cho ngời nhận tin, nên khoá giải mã phải đợc
giữ mật cho ngời nhận tin, còn việc lập mã để
gửi đến một ngời A có thể công khai để mọi ng-
ời có thể dùng để gửi thông tin mật cho A. ý t-
ởng đó đợc thực hiện nhờ vào các hàm cửa sập
một phía. Thí dụ về hàm cửa sập một phía kể
trên là cơ sở của hệ mật mã khoá công khai nổi
(p) = P(P + B) mod n,
D
Ks
(c) =
B
2
/
4 + C - B/2 mod p.
Thuật toán giải mã là dễ thực hiện nếu biết p,
q; do đó chỉ có A là giải mã đợc dễ dàng, còn
ngời khác không biết p, q thì tính D
Ks
cũng khó
tơng đơng với việc tìm các thừa số p, q.
Ta giới thiệu thêm một hệ mật mã khoá công
khai khác là hệ ElGamal. Giả sử hệ xác định
một số nguyên tố lớn p và một căn nguyên thuỷ
g mod p. p và g có thể dùng chung cho cả hệ
thống gồm nhiều ngời. Mỗi thành viên A chọn
và giữ bí mật một số a (Ks = a); tính b = g
a
mod
p và công bố công khai b (Kp = b). Mỗi lần một
thành viên khác muốn gửi bí mật một thông báo
P cho A thì làm nh sau: chọn ngẫu nhiên một số
r
p-1, rồi tính
)
-1
mod p.
Dễ thử lại rằng D
Ks
(C) = P.
Hệ mật mã này có một đặc điểm quan trọng:
mỗi lần lập mã, ngời gửi có thể chọn thêm một
yếu tố ngẫu nhiên để tăng độ mật của bản mã,
nh vậy trên thực tế mỗi lần lập mã đều có sử
dụng thêm một khoá riêng.
Tính u việt của mã khoá công khai là ở chỗ:
trong một hệ truyền tin bảo mật không ai phải
trao đổi khoá bí mật trớc với ai cả, mỗi ngời chỉ
giữ cái mật mã riêng của mình mà vẫn truyền tin
bảo mật đợc với mọi ngời khác. Điều này đặc
biệt quan trọng khi việc truyền tin đợc phát triển
trên các mạng rộng, nh Internet với số ngời sử
dụng gần nh không hạn chế. Mặt khác, nh trên
2
2
đã nói, mật mã khoá công khai không chỉ có tác
dụng với bảo mật, mà còn nhiều ứng dụng đặc
sắc khác nh sẽ đợc trình bầy trong các phần sau.
2- Bài toán xác nhận.
Trong cách giao thiệp truyền thống, một chữ kí
viết tay của ngời gửi dới một văn bản không có
tẩy, xoá là đủ để xác nhận ngời gửi là ai, ngời
gửi có trách nhiệm về văn bản và sự toàn vẹn
của văn bản, và cũng không thể chối bỏ trách
d
mod n
M
d
mod n là chữ kí của A trên văn bản M (M
n; thông thờng, văn bản có thể dài, nhng ta
muốn có chữ kí ngắn. Để làm điều đó ngời ta
dùng kĩ thuật hàm băm biến mỗi văn bản có độ
dài tuỳ ý thành một digest có độ dài n, và kí
trên digest đó. Kĩ thuật hàm băm là một vấn đề
quan trọng, có thể đợc đề cập trong một dịp khác.
Chú ý rằng chỉ có A mới tạo ra đợc chữ kí đó
(vì có khoá mật d). A gửi (M, sig
A
(M)) đến ngời
nhận. Dùng khoá công khai K
p
= (n, e), ta có
một điều kiện kiểm thử ver
A
(x, y) để xác nhận y
có đúng là chữ kí của A trên văn bản x hay
không. Trong trờng hợp này, ver
A
(x, y) =
df
(y
e
x mod n)
mod p ; z = (M - ay) r
-1
mod (p-1)
(y, z) là chữ kí của A trên văn bản M. Điều
kiện kiểm thử đợc xác định bởi
ver
A
(M, (y, z)) =
df
(b
y
.y
z
g
M
mod p).
Dễ thử lại rằng ver
A
(M, (y, z)) đúng khi (y, z)
là chữ kí của A trên văn bản M.
Trên cơ sở sơ đồ chữ kí ElGamal, với một số
bổ sung để bảo đảm tốt hơn độ tin cậy, ngời ta
đã xây dựng sơ đồ chữ kí DSS, đợc chấp nhận là
chuẩn chữ kí điện tử trong một số lĩnh vực giao
dịch ở Mỹ từ đầu những năm 90.
Các sơ đồ chữ kí nói trên đợc thực hiện không
cần đối thoại. Tuy nhiên, trong một số trờng hợp
để ràng buộc trách nhiệm rõ ràng trong việc xác
mod p và công bố công khai b
i
nh là khoá công
khai của mình (ta nhớ rằng biết a
i
để tính b
i
là
dễ, còn ngợc lại, biết b
i
mà tìm ra đợc a
i
là cực
kì khó). Hai ngời A
i
và A
j
khi muốn trao đổi
(Xem tiếp trang 28)
3
3
thông tin mật với nhau thì có thể cùng tạo ra
khoá riêng của hai ngời nh sau: A
i
tính b
j
ai
mod
p, A
không ai có thể tìm đợc
K
ij
!
Về nguyên tắc, trên mạng truyền thông công
cộng, kể cả mạng lớn nh Internet, với phơng
pháp mã hoá công khai, có thể tổ chức các hệ
thống trao đổi thông tin bảo mật mà không ngời
nào phải trao đổi trớc một bí mật nào của mình
với ngời khác. Tuy nhiên, tuỳ theo yêu cầu của
độ an toàn và tin cậy, các hình thức tổ chức có
sự quản lí, điều phối tập trung theo mức độ nào
đó vẫn là cần thiết. Và do đó, việc quản trị khoá,
phân phối khoá, thoả thuận khoá, chuyển vận
khoá với sự can thiệp của trọng tài,... theo các
yêu cầu tổ chức khác nhau vẫn là một vấn đề rất
đợc quan tâm, đã và đang tiếp tục đợc nghiên
cứu rộng rãi.
.
4
4