Tải bản đầy đủ (.doc) (26 trang)

TÌM HIỂU MẬT MÃ CÔNG KHAI VÀ ỨNG DỤ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.94 KB, 26 trang )

TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
HỌC VIỆN KỸ THUẬT MẬT MÃ
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI SỐ 2: TÌM HIỂU MẬT MÃ CÔNG KHAI VÀ ỨNG
DỤNG
GIÁO VIÊN HƯỚNG DẪN: VŨ THỊ VÂN
LỚP: AT8B
SINH VIÊN THỰC HIỆN:
Hà Nội Ngày 16/9/2014
1
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU VỀ MẬT MÃ KHÓA CÔNG KHAI 3

 
CHƯƠNG 2: CÁC HỆ MẬT 6
 !" #
a, Lịch sử hình thành 6
b, Quá trình tạo khóa cho hệ mật RSA 8
c, Quá trình mã hóa: 8
d, Quá trình giải mã: 8
e, Một số chú ý quan trọng về RSA 9
f, Một số phương pháp tấn công hệ mã RSA 10
g, Ứng dụng của hệ mật mã RSA 11
$% 
a, Hình thành khóa: 11
b, Quá trình mã hóa bản =n T: 11
c, Quá trình giải mã: 11
 & 
a, Quá trình tạo khóa: 12
b, Quá trình mã hóa: 12


c, Qúa trình giải mã: 12
'%'('%% 
a, Quá trình mã hóa: 14
b, Quá trình giải mã 15
)$%'' )
a, Quá trình hình thành khóa: 15
b, Quá trình mã hóa: 16
c, Quá trình giải mã: 16
#&*+, /01+234$%%56
a, Khái niệm về đường cong Ellip=c 17
b, Quá trình mã hóa: 18
c, Quá trình giải mã: 19
d, Ứng dụng của mật mã đường cong Ellip=c 19
CHƯƠNG 3: CHỮ KÍ SỐ 19
789 :
;<=>?, 
a, Chứng thực xác nhận một Iden=ty 21
b, Chữ ký và mã hóa Email 24
CHƯƠNG 4: KẾT LUẬN 25
2
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
CHƯƠNG 1: GIỚI THIỆU VỀ MẬT MÃ KHÓA CÔNG KHAI
1.1 Lịch sử phát triển của hệ mật mã khóa công khai
3
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Trong hầu hết lịch sử mật mã học, khóa dùng trong các quá trình mã hóa
và giải mã phải được giữ bí mật và cần được trao đổi bằng một phương pháp an
toàn khác (không dùng mật mã) như gặp nhau trực tiếp hay thông qua một người
đưa thư tin cậy. Vì vậy quá trình phân phối khóa trong thực tế gặp rất nhiều khó
khăn, đặc biệt là khi số lượng người sử dụng rất lớn. Mật mã hóa công khai đã

giải quyết được vấn đề này vì nó cho phép người dùng gửi thong tin mật trên
đường truyền không an toàn mà không cần thỏa thuận khóa từ trước.
Năm 1974, William Stanley Jevons xuấn bản cuốn sách mô tả mối quan
hệ giữa các hàm một chiều với mật mã học đồng thời đi sâu vào bài toán phân
tích ra thừa số nguyên tố ( sử dụng trong thuật toán RSA ). Whillam S. Jevons
đã phát hiện nhiều phép toán rất dễ thực hiện theo một chiều nhưng rất khó theo
chiều ngược lại. Một ví dụ đã chứng tỏ mã hóa rất dễ dàng trong khi giải mã thì
không. Đây chính là nguyên tắc cơ bản trong thuật toán mã hóa khóa công khai
RSA.
Thuật toán mã hóa khóa công khai được thiết kế đầu tiên bởi James H.
Ellis, Clifford Cocks, và Malcolm Williamson tại Anh vào đầu thập kỷ 1970.
Thuật toán sau này được phất triển và biết đến dưới tên Diffie – Hellman, và là
một trường hợp đặc biệt của RSA. Tuy nhiên những thong tin này chỉ được tiết
lộ vào năm 1977.
Năm 1976, Whitfeld Diffie và Martin Hellman công bố một hệ thống mật
mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa công khai.
Trao đổi khóa Diffie- Hellman là phương pháp có thể áp dụng trên thực tế đầu
tiên để phân phối khóa bí mật thông qua một kênh truyền thông tin không an
toàn.
Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ ký số, thảo
thuận khóa được phát triển. Các thuật toán như ElGamal ( mật mã) do Netscape
phất triển hay DSA do NSA và NIST cũng dựa trên các bài toán logarit rời rạc
tương tự như RSA. Vào giữa thập kỷ 1980, Neal Koblitz bắt đầu cho một dòng
thuật toán mới: Mật mã đường cong elliptic và cũng tạo ra nhiều thuật toán
tương tự. Mặc dù cơ sở toán học của dòng thuật toán này phức tạp hơn nhưng lại
giúp lầm giảm khối lượng tính toán đặc biệt khi khóa có độ dài lớn.
1.2 Mật mã khóa công khai
Mật mã khóa công khai tạo điều kiện cho các nhiệm vụ sau:
Mã hóa và giải mã cho phép hai bên giao tiếp để che giấu thông tin mà họ gửi
cho nhau. Người gửi mã hóa, hoặc những cuộc đua xe, thông tin trước khi gửi

đi. Người nhận giải mã, hoặc unscrambles, các thông tin sau khi nhận
được. Trong khi quá cảnh, các thông tin được mã hóa là khó hiểu cho một kẻ
xâm nhập.
Phát hiện giả mạo cho phép người nhận thông tin để xác minh rằng nó đã
không được sửa đổi trong quá cảnh. Bất kỳ cố gắng sửa đổi dữ liệu hoặc thay
thế một tin nhắn giả cho một hợp pháp sẽ được phát hiện.
Xác thực cho phép người nhận thông tin để xác định nguồn gốc của nó-đó là, để
xác nhận danh tính của người gửi.
4
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Chống chối bỏ ngăn chặn người gửi thông tin từ tuyên bố một ngày sau đó
rằng thông tin không bao giờ được gửi.
Phần này giới thiệu các khái niệm về mật mã khóa công khai làm cơ sở
cho khả năng này. Chúng ta rõ rằng các bên tham gia cần có một khóa mật để
mã hóa và giải mã. Điều này đồng nghĩa với việc trao đổi khóa mật qua kênh.
Việc giữ bí mật khóa mật đồng nghĩa với việc giữ mật thông tin. Nên việc trao
đổi khóa chỉ diễn ra trên kênh mật thì mới đảm bảo được, thế nhưng việc trao
đổi này cung không phải dễ để đảm bảo độ an toàn cao. Từ đây hình thành nên ý
tưởng của mật mã công khai. Tức là không cần phải trao đổi khóa mật qua kênh
nữa.
Có hai mục đích sử dụng chính của mật mã khóa công khai:
Mã hóa khóa công khai , trong đó tin nhắn được mã hóa với khóa công
khai của người nhận. Thông điệp này không thể được giải mã bởi bất cứ ai
không có khóa riêng phù hợp, do đó những người được cho là chủ sở hữu của
chủ chốt và người có liên quan với khóa công khai. Này được sử dụng trong một
nỗ lực để đảm bảo tính bảo mật .
Chữ ký kỹ thuật số , trong đó tin nhắn được ký kết với khóa riêng của
người gửi và có thể được xác nhận bởi bất cứ ai có quyền truy cập vào khóa
công khai của người gửi.Xác minh điều này chứng tỏ rằng người gửi đã truy cập
vào khóa riêng, và do đó có thể sẽ là người kết hợp với khóa công khai. Điều

này cũng đảm bảo rằng thông điệp đã không bị giả mạo, như bất kỳ thao tác của
tin nhắn sẽ dẫn đến những thay đổi trong mã hóa thông điệp tiêu hóa , mà nếu
không thay đổi giữa người gửi và người nhận.
Ý tưởng của hệ mật công khai được Diffie và Hellman đưa ra năm 1976.
Còn việc thực hiện hệ mật công khai thì do Rivest, Shamir và Adleman đưa ra
đầu tiên năm 1977, họ đề xuất một hệ mật RSA nổi tiếng. Và kể từ đó có một số
hệ mật khác được công bố, độ mật của chúng dựa trên bài tính toán khác nhau,
như dựa trên độ khó của bài toán phân tích thành nhân tử như hệ mật RSA, dựa
vào độ khó logarithm rời rạc như hệ mật ElGamal, hay dựa trên đường cong
Elliptíc. Chúng ta đi tìm hiểu cụ thể các hệ mật này trong các phần sau. Nhưng
trước tiên chúng ta đi tìm hiểu sơ đồ và nguyên tắc mã và giải mã của hệ mật
công khai.
Hình 1: Sơ đồ của hệ mã hóa công khai
5
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Hệ mã công khai sử dụng hai khóa có quan hệ toán học với nhau, tức là
một khóa này được hình thành từ khóa kia: Người muốn nhận bản mã (Alice)
tạo ra một khóa mật (private key) và từ khóa mật tính ra khóa công khai (public
key) với một thủ tục không phức tạp, còn việc tìm khóa mật khi biết khóa công
khai là bài toán khó giải được. Khóa công khai sẽ đưa đến cho người gởi bản tin
(Bob) qua kênh công cộng. Và bản tin được Bob mã hóa bằng khóa công cộng.
Bản mã truyền đến Alice, và nó được giải mã bằng khóa mật.
CHƯƠNG 2: CÁC HỆ MẬT
2.1 Hệ mật RSA
a, Lịch sử hình thành
Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu
tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (MIT). Tên của thuật
toán lấy từ 3 chữ cái đầu của tên 3 tác giả. Đây là thuật toán đầu tiên phù hợp
với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh dấu một sự
tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng.

6
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm
bảo an toàn với điều kiện độ dài khóa đủ lớn.


sở

thuật

toán

RSA

dựa

trên

tính

khó

của

bài

toán

phân


tích

các

số

lớn
ra

thừa

số

nguyên

tố:

không

không

tồn

tại

thuật

toán

thời


gian

đa

thức

(theo

độ
dài

của

biểu

diễn

nhị

phân

của

số

đó)

cho


bài

toán

này.

Chẳng

hạn,

việc

phân
tích

một

hợp

số



tích

của

2

số


nguyên

tố

lớn

hàng

trăm

chữ

số

sẽ

mất

hàng
ngàn

năm

tính

toán

với


một

máy

PC

trung

bình



CPU

khoảng

trên

2Ghz.
Ý

tưởng

(Motivation)
Các

nhà

phát


minh



lựa

chọn

khá

giản

dị



xây

dựng

thuật

toán
sinh/giải



trên




sở

phép

toán

lấy

luỹ

thừa

đồng



trên

trường

Z
n
=
{0,1,2, n-1}.

Chẳng

hạn,


việc

sinh



cho

tin

X

sẽ

được

thực

hiện

qua:
Y

=

X

e
± n



đây

ta

dùng



hiệu

a

=

b

+

n

nghĩa



a

=

b


+

k*

n

với

a

ϵ
Z
n
còn

k

=
1,2,3, ,



dụ

7

=

3

3
+

10)

còn

việc

giải

mã:
X

=
Y
d

± n
(e



khóa

sinh

mã,

d




khóa

giải

mã)
Như

vậy

để

hai

hàm

sinh





giải



này




hàm

ngược

của

nhau,

e



d
phải

được

chọn

sao

cho:

X
ed
=

X +


n
Người

ta

đã

tìm

được

cách

xây

dựng

cặp

số

(e,d)

này

trên




sở

công
thức

như

sau:

X
Φ
(n)

= 1
+

n

(định



Ơ

-

le)
Trong

đó Φ(n)


hàm

số

cho

biết

số

lượng

các

số

thuộc

Z
n


nguyên

tố

cùng
nhau


với

n.

Người

ta

cần

chọn

e*d

sao

cho

chia

Φ
(n)



1,hay

d=

e

-1
+

Φ
(n),
khi

đó

ta

sẽ



điều

cần

thiết:
X
ed
=

X
k.Φ(n)+1
= (
X
Φ(n)
)

d
*

X

=

1*X

= X
Φ
(n)



thể

tính

được

khi

đã

biết

công

thức


phân

tích

thừa

số

nguyên
tố

của

n,

cụ

thể



nếu

đã

biết

n


=

p*q

(p.q



số

nguyên

tố)

thì:

Φ
(n)

=

(p-1)

(q-1)
Nói

cách

khác


nếu

như

cho

trước

một

số

e

thì

nếu

đã

biết

công

thức
phân

tích

thừa


số

nguyên

tố

của

n

ta



thể

dễ

dàng

tìm

được

d

sao

cho


d

=

e
-1
+

Φ
(n)

hay



X
ed
=

X

+

n,

còn

nếu


không

biết

thì

rất

khó.
Vừa

rồi



phần

trình

bày

dẫn

dắt

về

cội

nguồn


của

thuật

toán,

sau

đây



thuật
toán

cụ

thể.
7
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
b, Quá trình tạo khóa cho hệ mật RSA.
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh
không an toàn (ví dụ như Internet). Với thuật toán RSA, Alice đầu tiên cần tạo
ra cho mình cặp khóa gồm khóa công khai và khóa bí mật theo 6 bước sau:
Chọn 2 số nguyên tố lớn khác nhau p, q thỏa mãn điều kiện
qp ≈
Tính tích của nó
qpn ⋅=
.

Tính giá trị hàm Phi Euler của n:
( ) ( )( )
1q1pn −−=ϕ
.
Chọn số nguyên d, sao cho
( )
nd ϕ<
và gcd(d,
)(n
ϕ
)=1.
Tính giá trị e thỏa mãn điều kiện:
( )( )
nmod1de ϕ=⋅
.
Khóa công khai bao gồm: n và e. Khóa mật:d còn p,q và
)(n
ϕ
thường là xóa sau
khi tính toán khóa.
c, Quá trình mã hóa:
Giả sử Bob muốn gửi đoạn thông tin m<n cho Alice, thì Bob tính bản mã
như sau.
)(modnmc
e
=
Cuối cùng Bob gửi c cho Alice.
d, Quá trình giải mã:
Alice nhận c từ Bob và khóa bí mật d. Alice có thể tìm được m từ c theo
công thức sau:

)(modncm
d
=
Quá trình giải mã hoạt động vì ta có
)(mod)( nmmc
edded
≡≡
Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), theo Định lý Fermat nhỏ nên:
)(mod pmm
ed

)(modqmm
ed

Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý phần dư trung hoa,
chúng ta có:
)(mod pqmm
ed

Hay
)(modnmc
d

Ví dụ:
=p
70793;
=q
707933;
=⋅= qpn
50116700869

( ) ( )( )
=−−=ϕ 1q1pn
50115922144
=d
30483041;
=e
5851898625
M
)(modnmc
e
=
)(mod
'
ncm
d
=
30483041 7523619714 30483041
7523619714 38101458113 7523619714
3487987 4469234330 3487987
754553 45262687896 754553
8
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
884545 48968540294 884545
46665533 10037623855 46665533
15657 29531681112 15657
95432 4648093185 95432
4545786 38326603863 4545786
777543 38921288996 777543
45673222 21930948547 45673222
e, Một số chú ý quan trọng về RSA

Điểm yếu của giải thuật:
Trong

hệ

RSA,

không

phải

tất

cả

các

thông

tin

đều

được

che

giấu

tốt,

tức



mọi

khoá

đều

tốt



đều

làm

bản



thay

đổi

hoàn

toàn. Đối


với

bất

kỳ
khoá

nào

tồn

tại

ít

nhất

9

bản



bị

‘phơi

mặt’,

tuy


nhiên

đối

với

n



200
điều

đó

không

còn

quan

trọng.

Mặc



vậy


phải

chú

ý



nếu

e

không

được
chọn

cẩn

thận thì



thể

gần

đến

50%


bản



bị

lộ.
An ninh:
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán
phân tích ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài
toán trên là khó (không tìm được thuật toán hiệu quả để giải chúng) thì không
thể thực hiện được việc phá mã toàn bộ đối với RSA. Phá mã một phần phải
được ngăn chặn bằng các phương pháp chuyển đổi bản rõ an toàn. Bài toán RSA
là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao cho m
e
=c mod
n, trong đó (e, n) chính là khóa công khai và c là bản mã. Hiện nay phương pháp
triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố. Khi thực
hiện được điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công khai và
có thể giải mã theo đúng quy trình của thuật toán. Nếu kẻ tấn công tìm được 2 số
nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm được giá trị (p-1)(q-1) và
qua đó xác định d từ e. Trong chương số học chúng ta đã biết chưa có một
phương pháp nào được tìm ra trên máy tính để giải bài toán này trong thời gian
đa thức (polynomial-time). Tuy nhiên người ta cũng chưa chứng minh được điều
ngược lại (sự không tồn tại của thuật toán).
Tốc độ:
RSA có tốc độ thực hiện chậm hơn đáng kể so với các thuật toán mã hóa
đối xứng. Trên thực tế, Bob sử dụng một thuật toán mã hóa đối xứng nào đó để
mã hóa văn bản cần gửi và chỉ sử dụng RSA để mã hóa khóa để giải mã (thông

thường khóa ngắn hơn nhiều so với văn bản). Phương thức này cũng tạo ra
những vấn đề an ninh mới. Một ví dụ là cần phải tạo ra khóa đối xứng thật sự
ngẫu nhiên. Nếu không, kẻ tấn công (thường ký hiệu là Eve) sẽ bỏ qua RSA và
tập trung vào việc đoán khóa đối xứng.
Chiều dài khóa:
9
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Số n cần phải có kích thước không nhỏ hơn 512 bít. Năm 2006 hệ mật
RSA được cho là hiệu quả với kích thước n phải từ 1024. Và họ khuyến cáo là
tương lai thì chiều dài n phải từ 2024 bít.
Chọn tham số công khai:
Để nâng cao tốc độ mã hóa, thì chúng ta nên chọn e với giá trị không lớn,
thường là 3, 7 hay 65537. Các số này khi biểu diễn ở dạng nhị phân chỉ có 2 chữ
số 1, nên khi thực hiện lệnh lũy thừa sẽ giảm đi lệnh nhân.
Chọn tham số mật.
p và q còn cần được chọn không quá gần nhau để phòng trường hợp phân tích n
bằng phương pháp phân tích Fermat. Ngoài ra, nếu p-1 hoặc q-1 có thừa số
nguyên tố nhỏ thì n cũng có thể dễ dàng bị phân tích theo phương pháp p-1
Pollaid và vì thế p và q cũng cần được thử để tránh khả năng này. Chúng ta có
thể chọn như sau. Trước tiên tìm số nguyên tố p
1
sao cho p=2p
1
+1 cũng là số
nguyên tố, tương tự chọn số nguyên tố lớn q
1
sao cho q=2q
1
+1 cũng là số
nguyên tố.

Giá trị d cần phải đủ lớn. Năm 1990 Michael J. Wiener đã chứng minh rằng nếu
như
qpq 2<<

3/
4/1
nd <
, thì có phương pháp hiệu quả để tính d theo n và e.
f, Một số phương pháp tấn công hệ mã RSA
Tấn công lặp
Simons và Norris [9][13] đã chỉ ra rằng hệ thống RSA có thể bị
tấn công khi sử dụng tấn công lặp liên tiếp. Đó là khi kẻ tấn công biết khóa công
khai (e, n) và bản mã C thì anh ta có thể tính chuỗi các bản mã sau:
C
1
= C
e
(mod n)
C
2
= C
1
e
(mod n)
…………………
C
i
= C
i-1
e

(mod n)
Nếu có một phần tử C
j
trong chuỗi C
1
, C
2
, …, C
i
, … sao cho C
j
= C thì khi đó anh ta sẽ tìm được M = C
j-1
bởi vì:
C
j
= C
e
j1
(mod n)
C = M
e
(mod n)
Kiểu tấn công module n dùng chung
Simons và Norris cũng chỉ ra rằng hệ thống RSA có thể bị tấn công khi sử
dụng module n dùng chung, thực vậy nếu một thông điệp M được mã hoá bằng
hai khoá công khai e
1
và e
2

từ hai thành viên trong hệ thống thì được:
C
1
= M
e1
(mod n) C
2
= M
e2
(mod n)
Sau đó người tấn công dùng thuật toán Euclide mở rộng:
e
1
*a + e
2
*b = 1 sao cho gcd(e
1
,e
2
) = 1
M được khôi phục lại như sau:
10
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
M =C
1
a
.C
2
b
mod n

g, Ứng dụng của hệ mật mã RSA
Thực tiễn cho thấy tốc độ thực hiện của RSA là chậm. Tuy nhiên, người ta
tìm thấy ở hệ mã RSA những khả năng ứng dụng độc đáo khác, thay vì trực tiếp
mã hoá văn bản.
Tạo vỏ bọc an toàn cho văn bản
Tạo chữ ký số cho văn bản
2.2 Hệ mật Elgama
Hệ mật Elgama hình thành trên cơ sở bài toán logarith rời rạc. Được đề
xuất năm 1984. Sau đó chuẩn chữ ký điện tử của Mỹ và Nga hình thành trên cơ
sở hệ mật này.
a, Hình thành khóa:
Giả sử Alice và Bob muốn trao đổi thông tin mật với nhau bằng hệ mật
Elgamma. Thì trước tiên Alice thực hiện qúa trình hình thành khóa như sau:
Chọn số nguyên tố đủ lớn p có chiều dài là k sao cho bài toán logarithm trong
p
Z
là khó giải
Chọn
*
p
Z∈
α
là phần tử nguyên thủy. Chọn x là số ngẫu nhiên sao cho 1<x<p.
Tính giá trị y thỏa mãn công thức:
( )
pmody
x
α=
Khóa mật là x, còn khóa mở là 3 số (
α

,p,y).
b, Quá trình mã hóa bản tin T:
Chọn số ngẫu nhiên
R
. (chọn k)
Tính:
( )
pmodC
R
α=

. (
( )
pr
k
mod
α
=
)
Sử dụng khóa mở tính:
( )
pmodTyC
R
=
′′
, (
( )
pTyC
k
mod=

)
Bob gởi bản mã gồm
( )
C,C
′′′
đến Alice (C,r)
c, Quá trình giải mã:
Tính giá trị:

( )
( )
Rx
x
R
x
CZ α=α=

=
. (
( )
( )
kx
x
k
x
rZ
αα
===
)
Tính gía trị nghịch đảo của Z:


( )
( )
pmodZ
1
Rx1


α=
. (
( )
( )
pZ
kx
mod
1
1


=
α
)
Giải mã theo bản mã
C
′′
:
( )
pmodZCT
1−


′′
=

. (
( )
paaTpayTpZCT
xkkxxkk
mod mod mod
1 −−−
==⋅=

Chúng ta kiểm chứng lại quá trình giải mã là đúng như sau:
TTTyZCT
RxxRRxR
===⋅
′′
=

−−− 111
).().(
ααα
Ví dụ:
=p
707933;

203
11
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
=x
765;

=y
371696
T R C’
R
y
C’’ Z
1
Z

T’
455 457 381267 181064 263892 181064 168667 455
2222 333 309977 545579 295242 545579 313868 2222
554 2224 114192 394828 691348 394828 530064 554
6878 1175 413040 351963 378587 351963 684082 6878
34333 95453 77756 698244 76073 698244 194793 34333
332 545 417805 231659 454024 231659 89120 332
978 9996 618551 527400 421976 527400 247794 978
8656 778645 305246 305321 144687 305321 329172 8656
1233 7564 558848 523937 379425 523937 419571 1233
8965 3434 239368 658412 626159 658412 701743 8965
2.3 Hệ mật Rabin
Đây là hệ mật dựa trên độ phức tạp của việc tính căn bậc hai theo hợp số.
Đây là hệ mật có độ an toàn về mặc tính toán chống lại được tấn công bản rõ lựa
chọn và không có khả năng phân tích được n=pq. Thuật toán được ứng dụng rất
nhiều trong thực tế.
a, Quá trình tạo khóa:
Để tạo ra khóa Alice cần phải thực hiện các thao tác sau:
Chọn 2 số nguyên tố ngẫu nhiên p và q, thỏa mãn điều kiện sau:
qp ≈
.

Tính tích p và q:
qpn ⋅=
.
Chọn số ngẫu nhiên b
*
n
Z∈
.
Sử dụng cặp (n,b) làm cặp khóa công cộng và cặp (p,q) làm khóa mật.
b, Quá trình mã hóa:
Để gởi thông tin mật
*
n
ZM ∈
cho Alice, Bob cần tạo ra bảng mã c như sau:
))(mod( nbMMc +←
c, Qúa trình giải mã:
Để giải mã bản mã c, Alice giải phương trình bậc hai sau:
)(mod0
2
ncbMM ≡−+
Với M<n.
12
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Chúng ta chứng minh thuật toán xxx này là một hệ mật, có nghĩa là quá
trình giải mã được thực hiện bởi Alice sẽ khôi phục lại bản rõ được mã hóa bới
Bob.
Giải phương trình bậc 2, chúng ta có nghiệm chung dạng:
)(mod
2

n
b
M
c
∆+−
=
,
ở đây
)(mod4
2
ncb
c
+=∆
bởi vì c phụ thuộc vào phần tử
*
n
ZM ∈
, nên phương trình bậc hai:
)(mod0
2
ncbMM ≡−+
,
Có nghiệm trong
*
n
Z
. Một trong các nghiệm của nó là số m, được gởi bởi
Bob.
Từ đây dẫn đến
c


phải là thặng dư bậc hai theo modulo n, hay là phần tử của
nhóm QR
n
.
Việc tính toán để mã hóa, cần phải lấy căn bậc hai theo modulo N. Bài toán này
tương đương với bài toán phân tích thành nhân tử của số n. Alice là người duy
nhất có thể tính được căn này, bởi vì Alice biết được thừa số của n, Alice có thể
tính căn của
c

(xem cách tính căn trong chương số học).
Chúng ta thấy rằng có 4 nghiệm được lấy ra khi giải mã. Điều này cần có thông
tin phụ để Alice có thể nhận ra được bản nào là bản tin mà Bob gởi.
Khi n là số nguyên Blum, có nghĩa là n=pq, với
)4(mod3≡≡ qp
. Chúng ta có thể
tính toán dể dàng hơn như sau:
Đặt m=M+b/2, thế vào phương trình bậc hai chúng ta có:
)(mod
4
2
2
nc
b
m +≡
Đặt
c
b
C +=

4
2
, thì phương trình trên có thể viết lại
)(mod
2
nCm ≡
Chúng ta đi giải phương trình này:
2
2
2
mod
mod
mod
m C p
m C n
m C q

=
= ⇒

=

;
Theo tiêu chuẩn Euler chúng ta có:
)(mod1
)(mod1
2
1
2
1

qC
pC
q
p




Dẫn đến:
)(mod
)(mod
2
1
2
1
qCC
pCC
q
p


+
+
Dẫn đến căn bậc hai của C theo modulo p và q lần lượt là:
13
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
)(mod
)(mod
2/1
4

1
2/1
4
1
qCC
pCC
q
p
≡±
≡±
+
+
Đặt:
1
2
1
2
mod
mod
p
q
m C p
m C q
=
=
;
1
2 1
1
4

1
4
mod
mod
p
p
p
p p
m C p
m p m p C p
+
+
=
= − = −
qmodCqmqm
qmodCm
4
1q
qq
4
1q
q
12
1
+
+
−−=
=
;
Ta rút ra được 4 nghiệm như sau:

( ) ( )
( )
1 1
1 1
1
mod mod mod
p q
M m q q p m p p q n
− −
= +
;
( ) ( )
( )
1 2
1 1
2
mod mod mod
p q
M m q q p m p p q n
− −
= +
;
2.4 Hệ mật Herkle-Hellman
( ) ( )
( )
2 1
1 1
3
mod mod mod
p q

M m q q p m p p q n
− −
= +
;
( ) ( )
( )
2 2
1 1
4
mod mod mod
p q
M m q q p m p p q n
− −
= +
;
Ví dụ:
p=13327; q=1567; n=20883409
M
C
1
p
m
2
p
m
1
q
m
2
q

m
1
M
2
M
3
M
4
M
7771 1862162
3
7771 5556 64
150
3
3019673 7771
2087563
8
17863736
Alice và Bob muốn trao đổi thông tin mật cho nhau, thì Alice phải thực
hiện quá trình hình thành khóa. Alice chọn dãy siêu tăng
( )
n
sss , ,,
21
làm khóa
mật, sau đó Alice đi tính khóa công cộng
), ,,(
21 n
tttt =
, với

)(mod psat
ii
⋅=
. Alice
gởi t cho Bob qua kênh mật.
a, Quá trình mã hóa:
Bob muốn trao bản tin
), ,,(
21 n
xxxx =
cho Alice, thì Bob tính bản mã y
như sau:
14
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014

=
=
n
i
ii
txy
1
,
Bob gởi bản y cho Alice.
b, Quá trình giải mã.
Alice nhận được bản mã y, thì Alice thực hiện giải mã:
Tính
)(mod
1
pyaz


=
Tìm giải pháp x với dãy siêu tăng
( )
n
sss , ,,
21
và tổng là z.
Chúng ta đi tìm hiểu ví dụ nhỏ sau về hệ mật Merkle-Hellman:
Giả sử Alice chọn dãy siêu tăng s=(2,5,9,21,45,103,215,450,946) có 9 phần tử,
dùng để mã hóa một số 9 bít và chọn p=2003, a=1289. Alice tính ra khóa công
khai t=(575,436,1586,1030,1921,569,721,1183,1570).
Gởi t cho Bob qua kênh công cộng.
Bob muốn gởi cho Alice bản tin x=(1,0,1,1,0,0,1,1,1). Thì Bob tính bản mã:
y=575+1586+1030+721+1183+1570=6665
Bob gởi y cho Alice.
Alice nhận được y, và tính
)(mod
1
pyaz

=
=317.6665 mod 2003=1643. Tiếp theo
Alice dùng thuật giải trên để tìm ra x.
2.5 Hệ mật McEliece
Hệ mật McEliece được đề xuất năm 1978, tác giả của nó là Robert
McEliece. Ý tưởng của bài toán này giống với ý tưởng của hệ mật Merkle-
Hellman: Phép giải mã là trường hợp đặc biệt của bài toán NP đầy đủ.
Để hiểu được hệ mật này các bạn phải nắm được kiến thức cơ bản về lý thuyết
cơ bản về truyền tin, thông tin.

Gọi C[n,k] là mã tuyến tính, t là số bít bị sai khi truyền bản mã qua kênh nhiểu,
các tham số này có liên quan với nhau bằng các hệ thức:
m
n 2=
,
mtnk −=
. Để áp
dụng trong thực tế hệ mật công khai McEliece đề nghị chọn 1024, t = 50.
Hệ mật McEliece hình thành như sau:
Alice và Bob muốn truyền tin mật cho nhau bằng hệ mật McEliece. Trước tiên
Alice phải hình thành khóa như sau:
a, Quá trình hình thành khóa:
Alice chọn mã tuyến tính C[n,k] có thể sửa được t lỗi. Mã này phải có
thuật toán giải mã hiệu quả.
Alice tạo ra ma trận sinh G cấp
nk ×
cho mã C.
Chọn S là ma trận khả nghịch cấp
kk ×
.
Chọn tiếp ma trận hoán vị P cấp
nn ×
.
Tính ma trận G’ cấp
nk ×
: G’=SGP.
Alice công khai khóa công cộng (G’, t) và giử kín khóa mật (G,P,S).
15
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
b, Quá trình mã hóa:

Bob muốn gởi thông tin mật m cho Alice, Bob sử dụng khóa công cộng
(G’,t) và tiến hành mã hóa theo các bước sau:
Mã hóa bản tin x ở dạng nhị phân chiều dài k.
Tính véc tơ c’=xG’.
Tạo ra một véc tơ ngẫu nhiên e, có trọng số t và chiều dài n.
Hình thành bản mã: y=c’+e.
c, Quá trình giải mã:
Tính ma trận khả nghịch của P là P
-1
.
Tính
1
.'

= Pyy
.
Sử dụng thuật toán giải mã code C để giải mã y’ thành y”.
Tính toán bản rõ: x=
1
"

Sy
Chúng ta tìm hiểu rõ hơn về phần giải mã, chúng ta có:
1
.'

= Pyy
=(c’+e)P
-1
=(xSGP+e)P

-1
=xSG+e’,
ở đây e’ là véc tơ có trọng số là t. Alice dùng thuật toán giải mã của mình để véc
cạn các gía trị có thể của e’. Và từ đó tìm xSG và từ đây chúng ta tính x dễ dàng
bằng cách nhân với ma trận nghịch đảo.
Ví dụ: Chúng ta xem mã Hamming (7,4). Ma trận sinh của mã này là G,
được cho như sau:
giả sử Alice chọn ma trận S và P như sau:
Alice tính ma trân công cộng G’:
16
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Bây giờ Bob muốn mã hóa thông điệp x=(1,1,0,1) bằng cách dùng véc tơ sai
ngẫu nhiên có trọng số là 1 dạng: e=(0,0,0,0,1,0,0), và tính bản mã:
Alice nhận được bản mã y, trước hết Alice tính P
-1
và tính y’=yP
-1
, ở đây
Và tính ra y’=(1000111). Alice dùng thuật toán giải mã để tìm lỗi và tìm
ra lỗi ở vị trí số 7. Nên y’’=(1000110). Từ đây suy ra xS=(1000). Để giải mã
Alice tính S
-1
,

Tính xS.S
-1
=(1,1,0,1). Đây chính là bản rõ của Bob.
2.6 Hệ mật bất đối xứng trên cơ sở đường cong Elliptic
a, Khái niệm về đường cong Elliptic
Đường


cong

elliptic



tập

hợp

các

điểm



toạ

độ

(
x,

y
)
thoả

mãn
phương


trình



dạng

sau

đây:

y
2

+
a

xy +
a

y

= x
3

+
a
2
x
2


+
a
4
x +
a
6

Trên

trường

F

biểu

diễn

bằng

phương

trình

Weiretrass:
y + a
1
xy + a

y


= x
3

+ a
2
x
2

+ a
4
x + a
6
Xét

đường

cong

E

trên

trường

nguyên

tố

hữu


hạn

F
p

(

p

nguyên

tố,p

>3)
với

công

thức

biến

đổi

như

sau:
17
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014

Y
2

= X
3

+ aX + b

nh
2
:
Mộ
t

dụ
về
đư

n
g co
n
g Elli
pt
ic
Chúng ta đi tìm hiểu hệ mật như sau:
Giả sử Alice và Bob muốn trao đổi thông tin mật cho nhau trên cơ sở
đường cong Elliptíc, thì Alice và Bob chọn đường cong Elliptic E với các hệ số
a, b, modulo p và điểm khởi tạo G,
EG ∈
, G có bậc là n (nG=0).


nh
3
:

ph

n
g
m
ã
h
óa cô
n
g
kh
ai
Alice hình thành khóa mật và khóa công khai qua các bước sau:
Chọn d là số ngẫu nhiên làm khóa mật thỏa mãn
1d1 −≤≤ n
.
Công bố khóa công cộng P
A
=d

G.
b, Quá trình mã hóa:
Bob muốn gởi thông tin mật m cho Alice, Bob thực hiện:
Chọn số ngẫu nhiên
nk <

. Và tính điểm G
k
(x
1
,y
1
)=k

G.
Tính giá trị P
Ak
(x,y)=k

P
A
.
Để mã hóa, Bob chọn tọa độ của điểm P
Ak
để mã hóa. Ví dụ như chọn tọa độ x,
và mã hóa thông điệp m: c=m.x (mod p).
18
q
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Gởi cặp (G
k
(x
1
,y
1
), c) cho Alice.

c, Quá trình giải mã:
Nhận được cặp (G
k
(x
1
,y
1
), c) từ Bob. Alice tiến hành giải mã qua các bước
sau:
Tính P
Bk
(x’,y’)=d

G
k
Chọn tọa độ x của điểm P
Bk
và tìm phần tử nghịch đảo của x’ là
)(mod'
1
px


tính giá trị m bằng biểu thức: m=
cx .'
1−
Chúng ta kiểm tra tính đúng đắn của hệ. Từ bước 1 của quá trình giải mã chúng
ta thấy d

G

k
=k.d

G= k

P
A
= P
Ak
(x,y), nên x’=x. Và quá trình giải mã là đúng.
d, Ứng dụng của mật mã đường cong Elliptic
Làm tăng độ phức tạp bài toán và gây khó khăn cho thám mã khi phải xác
định số ngẫu nhiên bí mật k từ kP và P.
Có thể mã hóa cho nhiều dạng bài toán khác nhau 1 cách dễ dàng, phù hợp nhất.
CHƯƠNG 3: CHỮ KÍ SỐ
3.1 Giới thiệu
Mã hóa và giải mã địa chỉ các vấn đề nghe trộm, một trong ba vấn đề bảo
mật Internet được đề cập ở phần đầu của tài liệu này. Tuy nhiên, mã hóa và giải
mã, bởi chính họ, không giải quyết được hai vấn đề khác được đề cập trong
" vấn đề Internet Security ": giả mạo và mạo danh. Phần này mô tả cách mật mã
khóa công khai đề cập đến vấn đề giả mạo. Phần này mô tả nó như thế nào giải
quyết vấn đề mạo danh.
Tamper phát hiện và xác thực liên quan kỹ thuật dựa vào một hàm toán
học gọi là một chiều băm (còn được gọi là tóm lược thông điệp). Một một chiều
băm là một số chiều dài cố định với các đặc điểm sau:
19
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Giá trị của băm là duy nhất cho dữ liệu băm. Bất kỳ sự thay đổi trong dữ
liệu, thậm chí xóa hoặc thay đổi một nhân vật duy nhất, kết quả trong một giá trị
khác nhau.

Nội dung của dữ liệu băm có thể không, cho tất cả các mục đích thực tế,
được rút ra từ các hash-đó là lý do tại sao nó được gọi là "một chiều".Như đã đề
cập trong " mã hóa công-Key ", nó có thể sử dụng khóa riêng của bạn để mã hóa
và khóa công khai của bạn để giải mã. Mặc dù điều này là không mong muốn
khi bạn đang mã hóa thông tin nhạy cảm, nó là một phần quan trọng của chữ ký
số bất kỳ dữ liệu. Thay vì mã hóa các dữ liệu chính nó, phần mềm ký kết tạo ra
một một chiều băm của dữ liệu, sau đó sử dụng khóa riêng của bạn để mã hóa
băm. Băm mã hóa, cùng với các thông tin khác, chẳng hạn như các thuật toán
băm, được biết đến như một chữ ký kỹ thuật số.
Hình 4 cho thấy một cái nhìn đơn giản của cách một chữ ký kỹ thuật số có thể
được sử dụng để xác nhận tính toàn vẹn của dữ liệu được ký.
Hình 4 cho thấy hai mục chuyển giao cho người nhận một số dữ liệu ký:
dữ liệu gốc và chữ ký kỹ thuật số, mà về cơ bản là một băm một chiều (các dữ
liệu ban đầu) đã được mã hóa với khóa riêng của người ký. Để xác nhận tính
toàn vẹn của dữ liệu, phần mềm nhận đầu tiên sử dụng khóa công khai của
người ký để giải mã băm. Sau đó sử dụng thuật toán băm cùng đã tạo ra băm
gốc để tạo ra một chiều mới băm của cùng một dữ liệu. (Thông tin về thuật toán
băm sử dụng được gửi cùng với chữ ký kỹ thuật số, mặc dù điều này không
được thể hiện trong hình). Cuối cùng, phần mềm nhận so sánh băm mới chống
lại băm gốc. Nếu hai băm phù hợp, dữ liệu đã không thay đổi kể từ khi nó được
ký kết. Nếu họ không phù hợp, dữ liệu có thể đã bị giả mạo kể từ khi nó được ký
kết, hoặc chữ ký có thể được tạo ra với một khóa riêng không tương ứng với
khóa công khai được trình bày bởi người ký.
Nếu hai băm phù hợp với, người nhận có thể chắc chắn rằng khóa công
khai được sử dụng để giải mã chữ ký số tương ứng với khóa bí mật dùng để tạo
chữ ký kỹ thuật số. Xác nhận danh tính của người ký, tuy nhiên, cũng đòi hỏi
một số cách để xác nhận rằng khóa công khai thực sự thuộc về một người cụ thể
20
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
hoặc tổ chức khác. Đối với một cuộc thảo luận về cách làm việc này, xem phần

tiếp theo, " Giấy chứng nhận và xác thực . "
Ý nghĩa của một chữ ký số được so sánh với ý nghĩa của một chữ ký viết
tay. Một khi bạn đã ký kết một số dữ liệu, rất khó để từ chối làm như vậy sau
này, giả định rằng các khóa riêng không bị tổn thương hoặc ra khỏi sự kiểm soát
của chủ sở hữu. Chất lượng của chữ ký số cung cấp một mức độ cao của chống
chối bỏ, có nghĩa là, chữ ký kỹ thuật số làm cho nó khó khăn cho người ký để từ
chối ký các dữ liệu. Trong một số trường hợp, một chữ ký kỹ thuật số có thể
ràng buộc như pháp lý như chữ ký viết tay.
3.2 Ứng dụng của chữ kí số
a, Chứng thực xác nhận một Identity
Xác thực là quá trình xác nhận một bản sắc. Trong bối cảnh các tương tác
mạng, xác thực liên quan đến việc xác định tự tin của một bên bởi một bên
khác. Xác thực qua mạng có thể có nhiều hình thức. Giấy chứng nhận là một
cách để hỗ trợ xác thực.
Tương tác mạng thường diễn ra giữa một khách hàng, chẳng hạn như
phần mềm trình duyệt đang chạy trên một máy tính cá nhân, và một máy chủ,
chẳng hạn như phần mềm và phần cứng sử dụng để lưu trữ một trang web. xác
nhận khách đề cập đến việc xác định tin tưởng của khách hàng bởi một máy chủ
( đó là, xác định người giả định là bằng cách sử dụng phần mềm máy
khách). Server authentication đề cập đến việc xác định tự tin của một máy chủ
của một khách hàng (có nghĩa là, xác định các tổ chức cho là chịu trách nhiệm
cho các máy chủ tại một địa chỉ mạng cụ thể) .
Khách hàng và máy chủ xác thực không phải là hình thức duy nhất của
xác thực giấy chứng nhận hỗ trợ. Ví dụ, chữ ký kỹ thuật số trên một thông báo
email, kết hợp với giấy chứng nhận xác định người gửi, cung cấp bằng chứng
mạnh mẽ rằng người được xác định bằng chứng chỉ đó đã thực sự gửi tin nhắn
đó. Tương tự như vậy, một chữ ký kỹ thuật số trên một mẫu HTML, kết hợp với
một chứng chỉ xác định người ký, có thể cung cấp bằng chứng, sau khi thực tế,
rằng người được xác định bằng chứng chỉ đó đã đồng ý với các nội dung của
biểu mẫu. Ngoài việc xác thực, chữ ký số trong cả hai trường hợp đảm bảo một

mức độ chống chối bỏ, đó là một chữ ký kỹ thuật số làm cho nó khó khăn cho
người ký tuyên bố sau đó không đã gửi email hoặc các hình thức.
Xác thực khách hàng là một yếu tố quan trọng của an ninh mạng trong
hầu hết các mạng Intranet hay Extranet. Phần này tương phản hai hình thức xác
thực khách hàng:
Mật khẩu dựa trên xác thực:
Hầu hết các phần mềm máy chủ cho phép xác thực khách hàng bằng
phương tiện của một tên và mật khẩu.Ví dụ, một máy chủ có thể yêu cầu người
dùng nhập tên và mật khẩu trước khi cấp quyền truy cập đến máy chủ. Các máy
chủ duy trì một danh sách tên và mật khẩu; nếu một tên cụ thể là trong danh
21
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
sách, và nếu sử dụng các loại mật khẩu chính xác, các khoản tài trợ máy chủ
truy cập.
Giấy chứng nhận dựa trên xác thực:
Khách hàng xác thực dựa trên chứng chỉ là một phần của giao thức
SSL. Các khách hàng kỹ thuật số ký một mảnh được tạo ngẫu nhiên của dữ liệu
và gửi cả hai giấy chứng nhận và các dữ liệu được ký trên mạng. Các máy chủ
sử dụng kỹ thuật mật mã khóa công khai để xác nhận chữ ký và xác nhận tính
hợp lệ của giấy chứng nhận.
Mật khẩu dựa trên xác thực
Hình 5:Đây là những bước thể hiện trong hình 4
Hình 5 cho thấy các bước cơ bản liên quan đến việc xác thực khách hàng
bằng một tên và mật khẩu. Hình 4 giả định sau đây:
Người sử dụng đã quyết định tin tưởng vào máy chủ, hoặc không có xác thực
hay trên cơ sở xác thực máy chủ thông qua SSL.
Người sử dụng đã yêu cầu một nguồn tài nguyên được điều khiển bởi máy chủ.
Các máy chủ yêu cầu xác thực khách hàng trước khi cho phép truy cập vào các
tài nguyên yêu cầu.
Để đáp ứng một yêu cầu xác thực từ máy chủ, khách hàng sẽ hiển thị một

hộp thoại yêu cầu tên người dùng và mật khẩu cho máy chủ đó.Người sử dụng
phải cung cấp tên và mật khẩu riêng cho từng máy chủ mới người sử dụng muốn
sử dụng trong một phiên làm việc.
Client gửi tên và mật khẩu trên mạng, hoặc trong các rõ ràng hoặc qua
một kết nối SSL được mã hóa.
Các máy chủ nhìn lên tên và mật khẩu trong cơ sở dữ liệu mật khẩu địa
phương của mình, và nếu chúng phù hợp, chấp nhận chúng như là bằng chứng
xác thực danh tính của người dùng.
Các máy chủ xác định liệu người sử dụng xác định được phép truy cập tài
nguyên yêu cầu, và nếu như vậy cho phép khách hàng truy cập vào nó.
Với sự sắp xếp này, người dùng phải cung cấp một mật khẩu mới cho mỗi
máy chủ, và người quản trị phải theo dõi các tên và mật khẩu cho mỗi người
dùng, điển hình trên các máy chủ riêng biệt.
22
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
Thực hiện đúng không lưu trữ mật khẩu trong bản rõ. Thay vào đó móc
nối với một mật khẩu ngẫu nhiên cho mỗi người dùng giá trị (được gọi là
"muối") và lưu trữ các giá trị băm của kết quả cùng với muối. Điều này làm cho
một số loại brute-force atacks khó khăn hơn.
Hình 6 giả định rằng người dùng đã quyết định tin tưởng vào máy chủ và
đã yêu cầu một nguồn tài nguyên, và các máy chủ đã yêu cầu xác thực khách
hàng trong quá trình thẩm định cấp hoặc không cấp quyền truy cập vào các tài
nguyên yêu cầu.
Không giống như quá trình thể hiện trong hình 4, quá trình thể hiện trong
hình 5 yêu cầu sử dụng SSL. Hình 6 cũng giả định rằng khách hàng có giấy
chứng nhận hợp lệ mà có thể được sử dụng để xác định các khách hàng đến máy
chủ. Certficate xác thực dựa trên thường được coi là thích hợp hơn để xác thực
dựa trên mật khẩu vì nó được dựa trên lúa mì người dùng có (khóa riêng) cũng
như những gì người sử dụng biết (mật khẩu để bảo vệ khóa riêng). Tuy nhiên,
điều quan trọng cần lưu ý là hai giả định này là đúng sự thật chỉ khi nhân trái

phép đã không được truy cập vào máy của người dùng hoặc mật khẩu, mật khẩu
cho cơ sở dữ liệu cá nhân quan trọng của phần mềm của khách hàng đã được
thiết lập, và các phần mềm được thiết lập để yêu cầu mật khẩu trong khoảng thời
gian thường xuyên hợp lý.
Không xác thực dựa trên mật khẩu cũng không vấn đề an ninh địa chỉ xác
thực dựa trên chứng chỉ liên quan đến truy cập vật lý đến máy tính cá nhân hay
mật khẩu. Mật mã khóa công khai chỉ có thể xác minh rằng một khóa bí mật sử
dụng để đăng một số dữ liệu tương ứng với khóa công khai trong giấy chứng
nhận. Đó là trách nhiệm của người sử dụng để bảo vệ an ninh vật lý của máy và
để giữ bí mật mật khẩu tư nhân chủ chốt.
Đây là những bước thể hiện trong hình 6 :
Các phần mềm máy khách, chẳng hạn như Communicator, duy trì một cơ
sở dữ liệu của các khóa riêng tương ứng với khóa công khai được công bố trong
bất kỳ giấy chứng nhận cấp cho khách hàng đó. Các khách hàng yêu cầu mật
23
TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
khẩu cơ sở dữ liệu này lần đầu tiên khách hàng cần truy cập vào nó trong một ví
dụ phiên cho được, lần đầu tiên người dùng cố gắng truy cập vào một máy chủ
SSL cho phép khách hàng có yêu cầu xác thực dựa trên chứng chỉ. Sau khi nhập
mật khẩu này một lần, người dùng không cần phải nhập lại cho phần còn lại của
phiên giao dịch, thậm chí khi truy cập vào các máy chủ SSL-kích hoạt khác.
Các khách hàng mở ra các cơ sở dữ liệu tư nhân chủ chốt, lấy chìa khóa
riêng tư cấp giấy chứng nhận của người sử dụng, và sử dụng khóa riêng để ký
một số dữ liệu đã được tạo ra một cách ngẫu nhiên cho mục đích này trên cơ sở
đầu vào từ cả máy khách và máy chủ.Những thông tin này và chữ ký kỹ thuật số
cấu thành "bằng chứng" có giá trị khóa riêng của. Chữ ký số có thể được tạo ra
chỉ với khóa riêng và có thể xác nhận với khóa công khai tương ứng với dữ liệu
có chữ ký, mà là duy nhất với phiên giao dịch SSL.
Các khách hàng gửi cả giấy chứng nhận của người dùng và các bằng
chứng (các mảnh được tạo ngẫu nhiên các dữ liệu đã được chứng thực số) trên

mạng.
Các máy chủ sử dụng giấy chứng nhận và bằng chứng để xác thực danh
tính của người dùng. ( Đối với một cuộc thảo luận chi tiết về cách làm việc này,
xem " Giới thiệu về SSL . ")
Tại thời điểm này, máy chủ có thể tùy chọn thực hiện nhiệm vụ xác thực
khác, chẳng hạn như kiểm tra các chứng chỉ trình bày của khách hàng được lưu
trữ trong entry của người dùng trong một thư mục LDAP. Các máy chủ sau đó
tiếp tục để đánh giá liệu người sử dụng xác định được phép truy cập tài nguyên
yêu cầu. Quá trình đánh giá này có thể sử dụng một loạt các cơ chế ủy quyền
tiêu chuẩn, có khả năng sử dụng thêm thông tin trong một thư mục LDAP, cơ sở
dữ liệu của công ty, và như vậy. Nếu kết quả của việc đánh giá là tích cực, các
máy chủ cho phép khách hàng truy cập vào tài nguyên yêu cầu.
b, Chữ ký và mã hóa Email
Một số chương trình email (bao gồm Messenger, mà là một phần của
Communicator) hỗ trợ chữ ký số và mã hóa email bằng cách sử dụng một giao
thức được chấp nhận rộng rãi được gọi là an toàn Multipurpose Internet Mail
Extension (S / MIME). Sử dụng S / MIME ký hoặc mã hóa thư điện tử yêu cầu
người gửi tin nhắn để có chứng chỉ S / MIME.
Một email bao gồm một chữ ký kỹ thuật số cung cấp một số bảo đảm rằng
nó đã được trong thực tế được gửi bởi người có tên trong tiêu đề tin nhắn, do
đó cung cấp xác thực của người gửi. Nếu chữ ký kỹ thuật số không thể được xác
nhận bởi các phần mềm email ở đầu nhận, người dùng sẽ được cảnh báo.
Chữ ký số là duy nhất cho thông điệp đi kèm với nó. Nếu tin nhắn nhận
được có khác nhau trong bất kỳ cách nào từ các tin nhắn đã được gửi, thậm chí
bằng cách thêm hoặc xóa một dấu phẩy chữ ký kỹ thuật số không thể được xác
nhận. Vì vậy, email ký cũng cung cấp một số bảo đảm rằng các email đã không
bị giả mạo. Như đã đề cập ở phần đầu của tài liệu này, loại này bảo đảm được
biết đến như chống chối bỏ. Nói cách khác, đã ký email làm cho nó rất khó khăn
cho người gửi để từ chối đã gửi tin nhắn. Điều này là quan trọng đối với nhiều
24

TÌM HIỂU VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ ỨNG DỤNG 16/9/ 2014
hình thức giao tiếp kinh doanh. (Để biết thông tin về cách thức chữ ký số công
việc, xem " kỹ thuật số chữ ký ".)
S / MIME cũng làm cho nó có thể mã hóa thư điện tử. Điều này cũng rất
quan trọng đối với một số người dùng doanh nghiệp. Tuy nhiên, bằng cách sử
dụng mã hóa cho email yêu cầu lập kế hoạch cẩn thận. Nếu người nhận tin nhắn
email được mã hóa mất chìa khóa riêng của mình và không có quyền truy cập
vào một bản sao lưu của khóa, ví dụ, các thông điệp được mã hóa có thể không
bao giờ được giải mã.
CHƯƠNG 4: KẾT LUẬN
Trong hơn 30 năm phát triển kể từ khi ra đời, những phát kiến trong mật
mã hầu hết rất phản trực quan và do đó càng bất ngờ thú vị , đã có ảnh hưởng
lớn đến nhiều ngành khoa học khác: áp dụng những kết quả trừu tượng trong lý
thuyết số vào thực tế, thúc đẩy sự phát triển của các thuật toán xác suất , đưa ra
những khái niệm quan trọng trong lý thuyết tính toán mà điển hình là khái niệm
chứng minh tương tác , tạo cầu nối dữa lý thuyết số và khoa học máy tính thông
qua lý thuyết số tính toán…
Mật mã khóa công khai đã đưa đến một bước ngoặt trong phát triển
ngành mật mã. Ý tưởng chính của nó rất đơn giản : lập mã và giải mã là hai quá
trình có bản chất khác nhau, nếu như giải mã nhất thiết phải dùng đến khóa bí
mật thì lập mã không nhất thiết phải như vậy. Do vậy, nếu ta có thể tạo ra một
khóa bí mật cho giải mã vầ một khoa công khai tương ứng cho lập mã thì quá
trình lập mã không còn bất kỳ bí mật nào . Tuy có vẻ tự nhiên nhưng việc mã
khóa sử dụng khóa công khai làm thay đổi hoàn toàn yêu cầu về sự an toàn:
25

×