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

Xây dựng hệ thống quản lý chứng chỉ số sử dụng công nghệ IAIK và SSL

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 (1.47 MB, 120 trang )



ĐẠI HỌC CÔNG NGHỆ
ĐẠI HỌC QUỐC GIA HÀ NỘI



VŨ VĂN TRIỆU




XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỔ SỬ
DỤNG CÔNG NGHỆ IAIK VÀ SSL





LUẬN VĂN TH.S CÔNG NGHỆ THÔNG TIN




Ngưới hướng dẫn:PGS.TS Trịnh Nhật Tiến



Hà Nội 2007



2
MỤC LỤC
LỜI CẢM ƠN 4
CÁC THUẬT NGỮ VIẾT TẮT 5
MỞ ĐẦU 8
Chương 1. CÁC KHÁI NIỆM CƠ BẢN 10
1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems) 10
1.1.3 Hệ mã hóa RC2 14
1.1.4. Hệ mã hóa RC4 18
1.1.5. Hệ mã hóa IDEA 19
1.1.6. Giao thức trao đổi khóa 22
1.2. HỆ MÃ HÓA KHÓA CÔNG KHAI 24
1.2.1. Khái niệm mã hóa công khai 24
1.2.2. Hệ mã hóa RSA 28
1.2.3. Các vấn đề liên quan đến hệ mã hóa RSA 30
1.3. GIAO THỨC SSL 32
1.3.1. Giới thiệu giao thức SSL 32
1.3.2. Vị trí của tầng giao thức SSL 33
1.3.3. Hoạt động của giao thức SSL 34
Chương 2. VẤN ĐỀ CÔNG NGHỆ CỦA 41
CƠ SỞ HẠ TÂNG MẬT MÃ KHÓA CÔNG KHAI 41
2.1. GIỚI THIỆU 41
2.1.1. Khái niệm cơ sở hạ tầng mật mã khóa công khai. 41
2.1.2. Tình hình sử dụng chứng chỉ khóa công khai 43
2.2. CHỨNG CHỈ KHÓA CÔNG KHAI 50
2.2.1. Định dạng X.509 của chứng chỉ số 50
2.2.2. Đường chứng thực và sự tin tưởng 52
2.2.3. Các trường cơ bản của một chứng chỉ số 52
2.2.3.1 Trường tbsCertificate 53
2.2.3.2. Trường signatureAlgorithm 54

2.2.3.3. Trường signatureValue 54
2.2.3.4. Trường version 54
2.2.3.5. Trường serialNumber 54
2.2.3.6. Trường signature 54
2.2.3.7. Trường issuer 55
2.2.3.8. Trường validity 56
2.2.3.9. Trường subject 56
2.2.3.10. Trường subjectPublicKeyInfo 56
2.2.4. Định dạng PEM của chứng chỉ số 57
2.2.5. Mô hình quản lý chứng chỉ số 58
2.2.5.1. Đối tượng sử dụng 59
2.2.5.2. Thành phần CA 60
2.2.5.3. Thành phần RA 60
2.2.5.4. Kho thông tin 61
2.2.5.5. CRL Ủy quyền 61
2.2.6. Các chức năng quản lý chứng chỉ số 61


3
2.2.6.1. Đăng ký 61
2.2.6.2. Khởi tạo 62
2.2.6.3. Chứng thực 62
2.2.6.4. Phục hồi cặp khóa 62
2.2.6.5. Cập nhật cặp khóa 62
2.2.6.6. Yêu cầu thu hồi 63
2.2.6.7. Chứng thực chéo 63
2.2.6.8. Các chức năng thêm 63
2.2.7. Các giao thức quản lý chứng chỉ số 64
Chương 3. THỬ NGHIỆM XÂY DỰNG HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ 65
3.1. TỔNG QUAN 65

3.2. YÊU CẦU 68
3.3. PHÂN TÍCH 70
3.3.1. Hoạt động của hệ thống 70
3.3.2. Xem xét hệ thống dưới góc độ khách hàng sử dụng 71
3.3.3. Xem xét hệ thống dưới góc độ quản trị hệ thống 75
3.3.4. Hiện thực hoá hệ thống CA 78
3.4. Công cụ hỗ trợ PKI :IAIK 80
3.4.1. Giới thiệu chung về IAIK 80
3.4.2. Sử dụng IAIK xây dựng hệ thống 81
3.5 HỆ THỐNG QUẢN LÝ CHỨNG CHỈ SỐ 83
3.5.1. Mô hình phân cấp hệ thống 84
3.5.2. Một số chức năng chính của hệ thống 85
3.5.2.1. Cấp mới 85
3.5.2.2. Gia hạn hoặc thay thế 86
3.5.2.3. Xem trạng thái yêu cầu 87
3.5.2.4. Tìm kiếm, xem trạng thái và lấy chứng chỉ số 87
3.5.2.5. Xem và cài đặt chuỗi chứng thực 88
3.5.2.6. Xem và cài đặt danh sách chứng chỉ số bị thu hồi 88
3.5.2.7 Đăng ký thu hồi 89
3.5.2.8 Quản trị hệ thống 89
KẾT LUẬN 91
TÀI LIỆU THAM KHẢO 92
PHỤ LỤC 93














5
CÁC THUẬT NGỮ VIẾT TẮT
CA – Certification Authority
Thc th có thm quyn chng thc, là thc th duy nht trong PKI có chc
p chng ch s.
ASN.1 – Abstract Syntax Notation One
Là mt ngôn ng hình thc mô t i trong mt phm
vi rng gia các các dng Internet, mng thông minh, mng di
n t
BER – Basic Encoding Rules
Lun. Mt luc s dng trong thp k 
gin, thô, nhng không có hiu qu.
CRL – Certificate Revocation List
Danh sách các chng ch s b thu hi hay không còn hp l.
DER – Distinguished Encoding Rules
Lut mã hóa phân bit. Lut mã hóa không có s tùy chn s  n, thô
 u qu. Lut mã hóa DER din gii c các thành phn tùy
chn, ví du dài hay không, la chn các kiu.
Digital Certificate
Chng ch s, là mt cu trúc d lic s d gn các thông
c xác thc ca mng vào mt khóa công khai cng
u cách gi khác: certificate, public key certificate.
Digital Signature
Ch n t, là mt k thut s dng mã khóa công khai cho phép không th

gi mo mp.
DSA – Digital Signature Algorithm
Mt thuc s dng cho công ngh ch n t i
NIST.
LDAP - Lightweight Directory Access Protocol
LDAP là dch v th mc cc dùng rng rãi trên Internet.
PEM - Privacy Enhanced Mail
PEM là mt chun c i bo mn t.


6
PKI – Public key Cryptography Infrastruture
 h tng mã khóa công khai, là h thng s dng h mã khóa công khai
cho vic chng thm bo bí mt và toàn vn thông tin.
PKIX - Public key Cryptography Infrastruture X.509
 h tng mã khóa công khai da trên X.509 do mt nhóm c
 áp dng PKI cho Internet.
PKCS – Public key Cryptographic Standards
Các chun cn do RSA Laboratories

Private Key Khóa riêng, mt trong hai khóa trong cp khóa trong h mã hóa
bi xng.
Public Key Khóa công khai, khóa còn li trong cng vi Private
key.
Message Digest Dm d liu s dng
các thut toán mt chiu, t d li  c d liu gc.
Chiu dài ca kt qu ng byte) là c i vi mi thut toán

RA – Registration Authority
Thc th c CA y quyn qun lý vi

RFC – Requests for Comments
 , 







 1969 














 , , 







.

RSA
Mt trong h mã khóa công khc công b 
3 nhà khoa hc Rivest, Shamir và Adleman tìm ra.
X.500
ch v c, bao gm c chng ch s.
X.501
ng và giá tr  dch v c.


7
X.509
Chunh dng chng ch s, do ITU ban hành.
Ciphertext Bn mã.
Plaintext Bn rõ.
IAIK
Institute for Applied Information Processing and Communication : Cung cp
Crypto toolkit vit trên ngôn ng Java.


8

MỞ ĐẦU
Cuộc cách mạng công nghệ thông tin.
S i và phát trin nhanh chóng ca cuc cách mng công ngh thông tin
i mc phát trin mi cho xã hi. Mi s dng máy tính
và tng thành qu ca h thng truyn thông mt cách vô th c
ma mình mà hm nhn rõ rt s hin hu ca chúng.

u này khnh ảnh hưởng của cuộc cách mạng công nghệ thông tin là rất
sâu đậm, và để lại dấu ấn trên từng hành vi của mỗi cá nhân hàng ngày, hàng
giờ.
Xã hội số hoá.
Vai trò ch o ca mng nói chung và Internet nói riêng là quá rõ ràng trong
nn kinh t th gii mi. Trên nó, xã hội số hoá c bii tên gi
không gian điều khiển ng ln rng dn. Trong th
gii o này, các phương tiện, nghi thức, quy ước, luật lệ của loài người đang
dần được tái sáng tạo.
An toàn bảo mật.
Mt trong nhng thách thc ln nhi vi s m rng tm ng ca
xã hi s hoá trong thi gian g vấn đề an toàn bảo mật. Nói nôm na là
làm th  a các hành vi truy nhp bt hp pháp hoc ch ng các
loi ti phm tin hu này có th d c bi mt xã hi không th
phát trin mà không da trên mt nn tng pháp lut). Chúng tn ti các
d nghe trm, si trái phép thn gi
mo, gian li
u bt ngun t bn cht phân tán ca mng Internet,
p xúc vt lý trc tip v
th gii thc) và thông tin giao dch buc phhuyn qua nhiu trm trung
chuyn không nm trong s kim soát cng
mt giao dch chuyn tin tr giá 1.000.000$ chc s c thc hin
qua mng nm bo là không ai có th xâm nh si hoc
nghe try, nhu cu an toàn bo mt trên kênh truyn tin là
rt thit thc và b thành mt v thi s i gii quyt
tri và có h thng.


9
Chứng chỉ số là mt trong các công c  thc hin an toàn và bo mt

trong h thng thông tin .
Các mc tiêu chung ca h thng bo mt m bo:
 Tính bí mt (Secrecy hay Confidential): Tài nguyên ch có th c truy
cp bi có thm quyn.
 Tính toàn vn (Accuracy, Integrity, Authencity): Tài nguyên ch c
si bi có thm quyn.
 Tính kh dng (Avaiability): Tài nguyên (thông tin, dch vc
si có thm quyn.
Vì vy vic xây dng Hệ Thống Quản Lý Chứng Chỉ Số là rt cn thit,
quan trng và tt yu. Trên th git nhiu t chc khác nhau xây dng
h th , RSASecurityDo tính tt yu cho nên
vic xây dng Hệ Thống Quản Lý Chứng Chỉ Số  Vit Nam là vô cùng quan
tr  mt trong nhng vai trò quy  i vi s phát trin công
ngh thông tin cc nhà.
Luu xây dng h thng qun lý chng ch s da trên công
ngh ng tha ra các gii pháp v công ngh cho các
ng dng thc t n chng ch s.
Lum 3 chng:
Chương 1: Trình bày v các khái nin:  i xng, mã hóa
khóa công khai, giao thc SSL.
Chương 2: Trình bày mt s v v công ngh c h tng mt mã
khóa công khai.
Chưong 3: Trình bày v vic th nghim xây dng h thng cung cp và
qun lý chng ch s.





10

Chương 1. CÁC KHÁI NIỆM CƠ BẢN


1.1. HỆ MÃ HÓA KHÓA ĐỐI XỨNG (Symmetric Key Cryptosystems)
1.1.1. Khái niệm mã hóa khóa đối xứng.
 m bo tính bí mt, p trong kênh truyn tin cn phc
mã hoá. Mô hình v truyn tin có bo mt có th 







Hình 1-1. Mô hình truyền tin có bảo mật

Cơ chế hoạt động:
i phát tin S mun gi mt thông tin X ti nhn R qua mt kênh
truyn tinng th E có th nghe tr ly c thông tin X.
S s dng mt phép mã hoá thông tin X,  to ra n mã Y khó có th
c. Y u ni dung ca thông tin X. Khoá là thông s u khin
ca phép bii này. Gic li nhn thu
c thônu X t n mã Y.
Nu bit khóa lp mã, d c khóa gic li, h mã
i là h i xng( trong mt s h i xng,
khóa lp mã và khóa gii mã là trùng nhau)


Đối tượng thứ 3: truy cập bất hợp pháp
Mã hóa

Gii mã
Kênh
truyn tin
Người gửi
Người nhận


11
1.1.2. Hệ mã hóa DES (Data Encryption Standard)
Chun mã hoá d liu DES do hãng IBM  xut nm 1974 gây ting vang
ln và nhanh chóng c s dng rng rãi, n nm 1977 c chp nhn là
chun liên bang M. Vi DES d liu c mã hoá theo tng khi 64-bits s
dng khoá 56-bits. Thut toán chuyn i 64-bits u vào qua mc
và -bits mã hoá.
Sơ đồ mã hóa DES:
Vic mã hoá trong DES c thc hin theo các pha vi hai u vào D liu
cn mã hoá và khoá. D liu vào phi là các khi 64-bits và khoá là 56-bits
(thc t 64 bits khoá c  lý, tuy nhiên ch có 56 bits c s
dng cho mã hoá và 8 bits còn li s dng cho parity kim tra chn l). 64-bits
bn tin rõ (plaintext) c      hoán v ban u (IP- initial
permutation) sau ó chúng phi i qua 16 vòng lp vi cùng chc nng bao gm
c hàm hoán v và thay th. Sau 16 vòng lp thu c 64-bits d liu là t hp
ca bn tin rõ và khóa và phi qua i ch 32-bit, tip theo là hoán v c (IP
-
1
) vi hoán v ban u  c bn mã.

















Hoán v ban u
Lp 1
Lp 2
Lp 16
i ch 32 -bit
Hoán v c
64-bit plaintext
Dch trái
Dchtrái
Dch trái
Dch trái
Hoán v chn 2
Hoán v chn 2
Hoán v chn 2
Hoán v chn
1
64-bit
ciphertext

56  bit key
Hình 1-2. Mã hóa trong DES



12
Trường hợp truyền không bị lỗi

Key 00000001 00000001 00000001 00000001 00000001 00000001
00000001 00000001
Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000




Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111

Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111





Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000
DES
Mã hoá

DES



13
Trường hợp truyền bị lỗi
Key 00000001 00000001 00000001 00000001 00000001 00000001
00000001 00000001
Plaintext: 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000




Ciphertext:10011000 10100110 01001101 11101001 11000001 10110011
00100011 10100111


Ciphertext:10011000 10100110 01001001 11101001 11000001 10110011
00100011 10100111




Plaintext: 00110101 10010101 10001101 11010011 11100110 00111100
01101100 01000011
Ta thy rng, ch sai s 1 bit ciphertext trong quá trình truyn, d liu gii mã
ã khác hoàn toàn plaintext ban u.
iu này tuy gây mt s phc tp trong quá trình hiu chnh li, i là
im c mã hoá DES bi vì nu mt thay i nh trong ciphertext

dn n mt thay i nh trong plaintext, thì s d tìm c mt th tc  làm
vô hiu hoá quá trình.
H mã hoá DES t c nhng yêu cu sau i vi mt mã khi:

Confusion (Hn lon): S ph thuc ca mã i vi tin phi tht phc tp 
gây rc ri hn lon i vi ng có ý nh tìm qui lut  phá mã.
Quan h ca mã vi tin là phi tuyn.
Diffusion (khuych tán): Làm khuych tán vn bn mang tính th 
vy ng th 3 khó có th phá mã nh da vào các mu có tn sut lp cao.
DES
Mã hoá

DES


Bit b li


14
1.1.3 Hệ mã hóa RC2
H mã hóa RC2 là h mã hoá khối vi các kh dài
64 bits, t mã hoá nhanh gp hai ln thut toán mã hoá chun DES (vi gi
thit thao tác m rc thc hin).
m ni bt ca Rc s dng rc
khoá vào bii (t t trong nhng yêu cu
quan trng ca các ng dng mã hoá áp di hin nay. Chính
vì nh  m ni b  ng ti ngay t khi thit k này mà RC2
c khuyn ngh thay th h mã hoá chu thành chun trong
p S/MIME. Hong ca RC2 gc.


Bước 1 : Mở rộng khoá.
c ca khoá bii trong khong t c
khi s d mã hoá và gii mã cn phi có thao tác chun hoá khoá gi là
m rng khoá (Key Expansion).
c khi mô t hong ca thut toán m rng khoá, c mt s
ký hiu.   m khoá m rng theo byte và theo word.
- Nhìn theo byte, ta ký hiu b m khoá là mc 128
byte t L[0] ti L[127].
- Nhìn theo word, ta ký hiu b c 64 word t K[0]
ti K[63].
Chú ý   ta s dng ký hiu mng K và L cùng ch ti b m khoá vào,

K[i] = L[2*i] + 256*L[2*i+1]
Gi thi dài ca khoá là T byte, vt toán m rng
t T byte khoá vào b m khoá t L[0] ti L[T-1]. Ký hiu s bit có hiu
lc ca khoá vào là T1, s u vào có hiu lc là T8 =
 
8/1T
và mt n bit
c tính theo công thc:
TM = 255 mod 2
8(1-T8)+T1
.


15
Thut toán 
1. for i = T, T+1, 127 do
L[i] = PITABLE[(L[i-1]+L[i-T]) MOD 255]
2. L[128-T8] = PITABLE[L[128-T8] AND TM]

3. for i = 127 - T8, , 0 do
L[i] = PITABLE[L[i+1] XOR L[i+T8]]
T mt mng 256 byte ngu nhiên, hoán v ca các giá tr
t 0 ti 255.
Sau thut toán m rng khoá, mng K cha 64 word s dng trong quá trình
mã hoá và gii mã.



16
Bước 2 : Mã hoá.
Mc thc hin bi hai thao tác n là "mix" và "mash". R là mng
4 word, R[0] R[3] là b m d liu vc khi to
bc thao tác trên mng R, kt qu bn mã
 trong mng R.
a) Các bước mix và mash được định nghĩa như sau:
 Mix up R[i]:
R[i] = R[i]+K[j] + (R[i-1] AND R[i-2]) + (NOT(R[i-1]) AND R[i3]);
j = j+1; R[i] = R[i] rol s[i];
T s ca mc thc hin modulo 4 :
R[i] = R[i MOD 4], s[i] = s[i MOD 4]
mng có s[0] = 1; s[1] = 2; s[2] = 3; s[3] = 5;
 Mixing round:
Mix up R[0], Mix up R[1], Mix up R[2], Mix up R[3]
 Mash R[i]:
R[i] = R[i] + K[R[i-1] AND 63];
 Mashing round:
Mash R[0], Mash R[1], Mash R[2], Mash R[3]
b) Mã hoá được thực hiện như sau:
1. Khi to mng R[0], , R[3] cha khi 64 bit bn rõ.

2. M rng khoá to mng khoá m rng K[0], , K[63].
3. Khi to j = 0.
4. Thc hin 5 ln Mixing round.
5. Thc hin 1 ln Mashing round.
6. Thc hin 6 ln Mixing round.
7. Thc hin 1 ln Mashing round.
8. Thc hin 5 ln Mixing round.
9. Bn mã trong mng R[0], , R[3].


17
Bước 3: Giải mã.
Gii mã thc hin các thao tác c vi quá trình "mix", "mash" trong quá
trình mã hoá, c ký hiu lt là "R-mix" và "R-mash".
a) Các bước R-mix và R-mash thực hiện như sau:
 R-Mix up R[i]:
R[i] = R[i] ROR s[i];
R[i] = R[i]-K[j]-(((R[i-1] AND R[i-2]))-(NOT(R[i-1]) AND R[i3]));
j = j-1;
 R-Mixing round:
R-Mix up R[3], R-Mix up R[2], R-Mix up R[1], R-Mix up R[0]
 R-Mash R[i]:
R[i] = R[i] - K[R[i-1] AND 63];
 R-Mashing round:
R-Mash R[3], R-Mash R[2], R-Mash R[1], R-Mash R[0]
b) Giải mã được thực hiện như sau:
1. Khi to mng R[0], , R[3] cha 64 bit bn mã.
2. M rng khoá to mng K[0], , K[63].
3. Khi to j = 63.
4. Thc hin 5 ln r-mixing round.

5. Thc hin 1 ln r-mashing round.
6. Thc hin 6 ln r-mixing round.
7. Thc hin 1 ln r-mashing round.
8. Thc hin 5 ln r-mixing round.
9. Bn rõ cha trong mng R[0], , R[3].


18
1.1.4. Hệ mã hóa RC4
RC4 là h mã hoá dòng, d li dài khoá bic phát trin vào
p 10 ln thut toán DES, d
thit k t. RC4 làm vic  ch  OFB (Output Feedback Mode). RC4
s dng 8x8 S-box t S
0
ti S
255
.
Các S-box khi t
for i = 0 to 255 do S(i) = i;
j = 0;
for i = 0 to 255 do
begin
j = (j+S(i)+K(i)) mod 256;
swap S(i) and S(j);
end;
y bng khoá vào
lp li.
Mi byte trong lung d liu lc mã hoá (gi
Khi to i = 0; j = 0.
To s ngu nhiên:

i = (i+1) mod 256;
j = (j+S
i
) mod 256;
swap S
i
and S
j
t = (S
i
+S
j
) mod 256
K = S
t
.
K XOR vi bn rõ thì to ra bn mã, K XOR vi bn mã thì to ra bn rõ.


19
1.1.5. Hệ mã hóa IDEA
c xem là hệ mã hoá khối mnh nht hin nay, nó thao tác trên các
khi 64 bit bc khoá vào là 128 bit, s dng cùng thu
mã hoá và gii mã.
Thut toán hong da trên s kt hp ca ba nhóm các phép bii
s. Các phép bii s này d t c v phn cng ln phn m
các phép bii:
+XOR.
+Cng theo module 2
16

.
+Nhân theo module 2
16
+1. (Thao tác này có th -box ca
IDEA).
Sơ đồ hệ mã hóa IDEA
Hình 1-3 mô t hong ca c chia thành các
khi khoá con 16 bit, mi khi 64 bit d lic chia thành 4 khi
con 16 bit X
1
, X
2
, X
3
và X
4
, các khi 16 bit con này tr u vào cho vòng
u tiên ca thut toán. Có tng cng 8 vòng, ti mi vòng 4 khi con 16 bit này
c XOR, cng, nhân vi nhau và vi 16 bit khoá con. Gia các vòng các khi
16 bit con hai và bi. Cui cùng, 4 khc kt hp vi
các khoá con  u ra.














20





















Hình 1-3. Sơ đồ IDEA



























21
1. Nhân X
1
vi khoá con th nht.
2. Cng X
2
vi khoá con th hai.

3. Cng X
3
vi khoá con th ba.
4. Nhân X
4
vi khoá con th 3.
5. XOR kt qu cc 3.
XOR kt qu cc 4.
6. Nhân kt qu ci khoá con th 5.
7. Cng kt qu cc 7.
8. Nhân kt qu cc 8 vi khoá con th 8.
9. Cng kt qu cc 7 và 9.
10. XOR kt qu cc 1 và 9.
11. XOR kt qu cc 3 và 9.
12. XOR kt qu cc 2 và 10.
13. XOR kt qu cc 4 và 10.
Sau 8 vòng (thc hin 13 , thc hin tip:
1. Nhân X
1
vi khoá con th nht.
2. Cng X
2
vi khoá con th hai.
3. Cng X
3
vi khoá con th ba.
4. Nhân X
4
vi khoá con th 
Các khc ni li v to thành bn mã. Các khoá con c

to ra t 128 bit khoá K u. K c chia thành 8 khi 16 bit khoá con,
c quay trái 25 bit và li chia thành 8 khoá con.


22
1.1.6. Giao thức trao đổi khóa
Trong các h mã hóa i xngi tác cn phi s dng chung mt
khoá (khoá này ch i tác c bió h phi thông
 thit lp nên khoá này.
Cn phi nh rng truyo mt,  bo mt
i khi thit lp nên khoá này? Có th thc hin qua mt s cách
 sau:

Cách 1

i tác s dng mt kênh truyn tin bí mt b sung (chng hn 
).

m ca cách này: tn kém, chm,  an toàn vn b t du hi, ví
d  tin cc không?

Cách 2

Trao chuyn khoá thông qua mt nhà thm quy
Mi user s liên lc bí mt vi S (nhà thm quyi user cn thit
lc vi S mt kênh liên lc bí mt, có th i xng vi khoá
c thit lp do gp g trc tip.
Sau này nu user A mun thit lp liên lc bí mt vi user B khác, thì A có th
gi yêu cu thit lp liên lc ti B qua S. Nh qua S mà khoc thit
lp gia A và B.


i phi có nhà thm quy
tin trên mng, vi   i khá nhiu v      n.
Ngoài ra nó còn to ra mm bottleneck (tht nút c trai) trên mng, tt c
các khu liên lc gia mt cp user u phi thông qua S, nên S d b quá ti
gây tc nghn.



23
Cách 3

S dng giao thc  i khoá, ví d giao th  i khóa Diffie-
Hellman.

Giao thc i khoá Diffie-Hellman
A và B thng nht chn mt s nguyên t p, mt phn t nguyên thy
(primitive element) 
{ 
0
, 
1
,

2

p-1
}={1, 2, 3, p-1}
A chn mt s ngu nhiên X
A

, 1 
A
B chn mt s ngu nhiên X
B
, 1 
X
B
.
 A tính: Y
A
=
A
X

p
A gi cho B: Y
A

A gi bí mt X
A

B tính: Y
B
=
B
X

p
B gi cho A: Y
B


B gi bí mt X
B

 A tính:
K=
A
X
B
Y )(
p =
BA
XX

p
 B tính
K=
B
X
A
Y )(
p =
BA
XX

p
y hai bên A, B tri hai giá tr a ca i bc X
A
và X
B

)
t c s K là lu tha ci bc bng tích X
A
*X
B
.Vì
X
A
, X
B
c gi bí mt không truyt, tc là hai bên có th
thng nht chn s K chung này làm khoá bí mt.
Hacker ch có th nghe trm c Y
A
, Y
B
truyn qua m c K,
Hacker phi bit X
A
, X
B
 c X
A
, X
B
t Y
A
, Y
B
là rt khó.  an toàn

ca h thng quynh bi tính khó ca bài toán tính logarit ri rc.


24
1.2. HỆ MÃ HÓA KHÓA CÔNG KHAI
1.2.1. Khái niệm mã hóa công khai
Các h mc nghiên cu và phát trin t cui nhng
thp k 70. M bo mc bm b phc tp tính toán. Ý ng
n ca các h mt mã này là xây dng nhng h thng sao cho bit khoá
 mã hoá P và thun rc cách
gii mãng là khó do phi khc phc m phc tp tính toán rt l
c khoá gi  gii mã p là
khác nhau. Khoá P - khoá công khai , khóa p - khoá riêng và là khoá bí mt.
 c gi là khoá công khai, vì vy h thc gi là
h mt mã khoá công khai (Public-Key Cryptosystem-PKC).
H mã khoá công khai c  gii quyt hai vn  khó khn tn ti
vi mã hoá truyn th  i xng): ó là vn  qun lý phân phi
khoá và vn  ch ký in t. Khác vi mã hoá truyn thng ch s dng mt
khoá cho c hai b phn mã hoá và giy không cn iu
kin nào khác ngoài vic cung cp mt khoá duy nht và bí mt.
Quá trình mã hoá và gii mã vi khoá công khai c mô t trong hình 1-4:







Hình 1-4. Mã hoá dùng khoá công khai
Plaintext

Plaintext
Ciphertext

mã hoá

gii mã
User A
User B
Khoá
công khai

Khoá mt
ca B


25
1. H thng u cui trong mt network sinh ra mt cp khoá  mã hoá
và gii mã thông tin.
2. Mi h thng công b khoá mã ca nó bng cách a mình
vào ngân hàng khoá.
3. Nu A mun gi thông ip bí mt cho B, vic mã hoá thông ip s
dng khoá công khai ca B.
4. Khi B nhn c thông ip, B thc hin gii mã bng khoá mt ca B.
Không mi nào khác có th gii c thông ip vì ch có B mi
bit c khoá mt ca mình.
Khoá mt c sinh ra mt cách cc b bi ti tham d và ch mình
i ó bit, khóa công khai c truy nhp bi tt c mi.
Gi s A mun gi mt thông ip X cho B, B sinh ra mt cp khoá vi:
khoá công khai Z
b

và khoá bí mt z
b
. Thông ip X c mã hoá bi khoá công
khai ca B:
Y=E(Z
b
, X)
Bên nhn thc hin gii mã vi khoá bí mt ca mình:
X=D(z
b
, Y)
ng hp A gi thông ip cho B và mã hoá bng khoá mt ca A
khi truyn i, B có th gii mã thông ip khi s dng khoá công khai ca A.
Ch có A mi có khoá mt ca A  mã hoá bn tin y ch có A mi
sinh ra bn tin ó, ta có th coi  chng thc cho bn tin. ây chính là
k thut  to lp mt ch ký s.


26
ng hp:
 Thông điệp được truyền và nhận bí mật:
Khi ó A mã hoá thông ip bng khoá công khai ca B (Z
b
) và gi cho B, B
nhn c thông ip s gii mã nó bng khoá mt z
b
ca B.











Hình 1-5. Mã hoá công khai – truyền bí mật
 Chứng thực: (Authentication).
Khi ó A mã hoá bn tin bng khoá mt ca A  truyn cho B và khi B nhn
c s gii mã bng khoá công khai ca A. Ch có A mi có th mã hoá bn tin
ó bng chính khoá mt ca A nên có th coi ó là s chng thc ca A i vi
bn tin.








Hình 1-6. Mã hoá công khai – chứng thực
X
X
Ngun
Mã hóa


Y
Cp khóa

za

Za

X
X
Ngun
Mã hóa


Y
Cp khóa
z
b
Z
b
A
B

×