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

Chương III - Các Hệ Mật Mã Công Khai docx

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 (724.25 KB, 48 trang )

Chươn
g
III
g
Các Hệ Mật Mã Công Khai
III.1 Nguyên lý hệ mật mã công khai
 Đ

c điểm:

• Mậtmãcôngkhaidựatrêncơ sở của các hàm toán học
ch

khôn
g
p
hảid

atrên
p

p
tha
y
th
ế
và đ

ichỗ nh
ư
g


p

pp
y
trong phương pháp mã hoá đốixứng.
• Mã m

tcôn
g
khai là
bấ
t đ

ixứn
g
.Tron
g
c
ơ
ch
ế
m
ã
m

t

g
g
g


khoá công khai sử dụng hai khoá: khoá mật và khoá
công khai. Việcsử dụng hai khoá không đốixứng đưa
đế
h
h

l h
h
đế
nn
h
ững
h
ệ qu

sâu s

ctrong
l
ĩn
h
vựcantoànt
h
ông
tin: tính toàn vẹn, tính xác thực, phân phối khoá.
III.1 Nguyên lý hệ mật mã công khai
 Xu

txứ:

• Hệ mã mật khoá công khai đượcpháttriểnnhằmgiải
q
u
yế
thaiv

n đ

p
hứct
ạp
nả
y
sinh t

p
hươn
g
p

p

qy
p
ạp
y
p g
pp
hoá đốixứng:
 Vấn đề thứ nhất: bài toán phân phối khoá;

ấ ề
 V

n đ

thứ hai: chữ ký điện tử.
III.1 Nguyên lý hệ mật mã công khai
 V

n đ

p
hân
p
h

i khóa:
p
p
• Trong sơđồmã hoá truyềnthống, quá trình phân phối
kho
á
đư
a
ra
y
êu c

uhai
p

hía tham
g
ia vào trao đ

i thôn
g
y
p
g
g
tin:
 Phảichiasẻ trước khoá, khoá này phải đượcphân


p
h

i
bằ
ng một cách nào đóhohọ.
 Phảisử dụng trung tâm phân phối khoá KDC.


 V

n đ

chữ ký điệntử:
• Chữ ký điệntử phải đượcsử dụng trong các thông điệp
điệnt


v
à
p
hảicóhiệulựctương đương vớich

ký trên
giấy.
III.1 Nguyên lý hệ mật mã công khai
 H

m

t khóa côn
g
khai:


g
• Mỗihệ thống đầucuốitạomộtcặp khoá để mã hoá và
g
iải mã các thôn
g
đi
ệp
.
g
g
ệp
• Mỗihệ thống đầucuốicôngbố một khoá trong cặp khoá

,khoá còn lại đượcgiữ mật.
ế


Nế
uAmu

ngửi thông điệpchoB,Asẽ mã ho
á
văn
b
ản
bằng khoá công khai củaB.

Khi
B
nhận
được
thông
điệp
B
sẽ
giải

bằng
khoá

Khi
B
nhận

được
thông
điệp
,
B
sẽ
giải

bằng
khoá
mật. Không mộtbênthứ ba có thể giảimãđược thông
điệp

chỉ

B
biết
khoá
mật
của
B
.
điệp

chỉ

B
biết
khoá
mật

của
B
.
III.1 Nguyên lý hệ mật mã công khai
 S
ơ
đ

mã hóa côn
g
khai:
g
• Sơđồmã mật khoá công khai sử dụng mộtkhoáđể mã
hoá v
à
m

t kho
á
khác có liên
q
uan đ

g
iảim
ã
.Cácthu

t


q
g

toánmãhoávàgiảimãcómộtsốđặc điểmquantrọng
sau:

ế
ế
 Không th

xác định đượckhoágiảim
ã
n
ế
uchỉ
b
i
ế
t
thuật toán mã hoá và khoá mã hoá.

Một
số
hệ

mật
khoá
công
khai
(như

RSA)
còn

Một
số
hệ

mật
khoá
công
khai
(như
RSA)
còn
cung cấpkhả năng sử dụng bấtkỳ một khoá trong cặp
khoá
làm
khoá

hoá,
khoá
còn
lại
sẽ
được
dùng
khoá
làm
khoá


hoá,
khoá
còn
lại
sẽ
được
dùng
làm khoá giảimã.
III.1 Nguyên lý hệ mật mã công khai
 S
ơ
đ

mã hóa:
III.1 Nguyên lý hệ mật mã công khai
 S
ơ
đ

chứn
g
th

c:
g

III.1 Nguyên lý hệ mật mã công khai
 Các bướcti
ế
nhành:

1. Mỗingườisử dụng tạomộtcặpkhoáđượcsử dụng để mã hóa và
giải mã thông điệp.

2. M

ingười dùng sẽ giao một trong hai khóa cho người đăng ký
khóa công cộng hoặcmộtfilecókhả năng truy cập. Khóa đólà
khóa côn
g
khai. Cái còn l

ilàsẽđư

c
g
i

bí m

t.
N
h
ư
tron
g
hình
g


g


g
trên đãgiả thiết, mỗingười dùng sẽ duy trì mộttập các khóa công
khai thu đượctừ các người dùng khác
3
Nếu
Bob
muốn
gửi
một
thông
điệp

mật
cho
Alice
Bob

hóa
3
.
Nếu
Bob
muốn
gửi
một
thông
điệp

mật

cho
Alice
,
Bob

hóa
thông điệpbằng cách sử dụng khóa công khai của Alice.
4. Khi Alice nhận được thông điệp, cô giảimãnóbằng khóa riêng

của mình. Không có ngườinhậnkháccóth

giải mã thông điệpvì
chỉ Alice biết khóa riêng của Alice.
III.1 Nguyên lý hệ mật mã công khai
 Mô hình đảmbảob
í
m

t:

Kẻ phá mã, quan
sát Y và có quyền
ậ à
truy c

p v
à
o KU
b
nhưng không có

q
u
yề
n tru
y
c
ập

qy y ập
vào KR
b
hoặc X,
để xem được
thông
tin
kẻ phá
thông

tin

kẻ

phá

mã phảiphục hồi
X và / hoặc KR
b
.
III.1 Nguyên lý hệ mật mã công khai
 Mô hình chứng thực:

Trong trường hợpnày,Asoạn một
tin nhắn đến B và mã hóa bằng khóa
riêng của A trước khi truyền nó. B
có th

g
iảimãthôn
g
đi
ệp
bằ
n
g
cách
g
g
ệp
g
sử dụng khóa công khai của A.Bởi
vì thông điệp đã đượcmãhóabằng
khó
a
riên
g
củ
a
A
,
chỉ Acóth


so

n
g
,

thông báo này.Vìvậy, thông điệp
được mã hóa toàn bộ phụcvụ như
một
chữ

số
.
Ngoài
ra,
không
thể
một
chữ

số
.
Ngoài
ra,
không
thể
thay đổi thông điệp mà không cần
truy cập vào các khóa riêng của A,
do
đó

thông
điệp
này

xác
thực
cả
do
đó
,
thông
điệp
này

xác
thực
cả
về nguồnvàvề tính toàn vẹndữ
liệu.
III.1 Nguyên lý hệ mật mã công khai
 Mô hình kếthợp:
Trong trường hợpnày,chúngta
bắt đầunhư trướcbằng cách mã
hóa
các
tin
nhắn
sử
dụng
khóa

hóa
các
tin
nhắn
,
sử
dụng
khóa
riêng củangườigửi. Công việc
này để cung cấp các chữ ký số.
Tiế
th

t
ã

ột
Tiế
p
th
eo, c

ng
t
a m
ã

am
ột
lầnnữa, bằng cách sử dụng khóa

công khai củangườinhận. Các
bảnmãcuối cùng chỉ có thểđược
giảimãchỉ bởingườinhận đã
được
xác
định
người

chìa
được
xác
định
,
người

chìa
khóa. Vì vậy, tính bảomật được
cung cấp.
III.1 Nguyên lý hệ mật mã công khai
 Các điềukiệncầnthiết:
• Bên B dễ dàng tạo ra được cặp (KU
b
, KR
b
)
• Bên A dễ dàng tạo ra được C = E
KU
b
(M)
Bê B dễ dà iảiãMD

(C)


n
B

dễ


ng g
iải
m
ã

M
=
D
KR
b
(C)
• Đối thủ không thể xác định được KR
b
khi biết KU
b

Đốithủ không thể xác định được M khi biếtKU
và C

Đối


thủ

không

thể

xác

định

được

M

khi

biết

KU
b


C
• Một trong hai khóa có thể dùng mã hóa trong khi khóa
kia có th

dùn
g

g

iải mã
gg
M = D
KR
b
(E
KU
b
(M)) = D
KU
b
(E
KR
b
(M))
III.1 Nguyên lý hệ mật mã công khai
 Mã hóa đ

ixứn
g
và mã hóa côn
g
khai:
g
g
III.2 Thuật Toán RSA
 H

mã hóa RSA:


• Đề xuấtbởi Ron Rivest, Adi Shamir và Len Adleman
(MIT) vào năm 1977


• Hệ mã hóa khóa công khai
p
h

dụng nh

t
• Mã hóa khốivớimỗikhốilàmộtsố nguyên < n
Thường
kích
cỡ
n

1024
bit

309
chữ
số
thập
phân
Thường
kích
cỡ
n


1024
bit

309
chữ
số
thập
phân
• Đăng ký bản quyềnnăm 1983, hếthạnnăm 2000
• An toàn vì chi
p

p
hân tích thừ
a
s

củ
a
mộts

n
g
u
y
ên
p
p
gy
lớnlàrấtlớn

III.2 Thuật Toán RSA
 T

o khóa RSA:

• Mỗi bên tự tạo ra một cặp khóa công khai - khóa riêng
theo các bước sau :
h ẫ hi ố ố đ l
 C
h
ọn ng

u n
hi
ên 2 s

nguyên t


đ

l
ớn p

q
 Tính n = pq
 Tính Φ
(
n
)

=
(p
-1
)(q
-1
)
() (p
)(q
)
 Chọn ngẫu nhiên khóa mã hóa e sao cho 1 < e < Φ(n) và gcd(e,
Φ(n)) = 1

Tìm khóa giảimãd≤ nthỏamãned≡ 1mod
Φ
(n)

Tìm

khóa

giải



d



n


thỏa

mãn

e
.
d



1

mod

Φ
(n)
• Công bố khóa mã hóa công khai KU = {e, n}
• Giữ bí mật khóa
g
iải mã riên
g
KR =
{
d, n
}
g g{}
 Các giá trị bí mật p và q bị hủy bỏ
III.2 Thuật Toán RSA
 Th


chi

nRSA:


• Để mã hóa 1 thông báo M, bên gửi thực hiện
 Lấy khóa công khai của bên nhận KU = {e, n}

Tí h C M
e
d


n
h

C
=
M
e
mo
d
n
• Để giải mã bản mã hóa C, bên nhận thực hiện
 Sử d

n
g
khóa riên
g

KR =
{
d
,
n
}
ụ gg{,}
 Tính M = C
d
mod n
• Lưu ý là thông báo M phải nhỏ hơn n

Phân thành nhiềukhốinếucần

Phân

thành

nhiều

khối

nếu

cần
III.2 Thuật Toán RSA
 Tính khả thi củaRSA:
• Theo định lý Euler
 ∀ a, n : gcd(a, n) = 1 ⇒ a
Φ(n)

mod n = 1

Φ
()làố á ố êd hỏ h àêtố ù

Φ
(
n
)


s

c
á
c s

nguy
ê
n
d
ương n
hỏ

h
ơn n v
à
nguy
ê
n

tố
c
ù
ng
nhau với n
• Đ

i với RSA có
 n = pq với p và q là các số nguyên tố
 Φ(n) = (p - 1)(q - 1)

ed ≡ 1mod
Φ
(n)


số nguyên k : ed = k
Φ
(n) + 1

ed



1

mod

Φ
(n)




số

nguyên

k

:

ed

=

k
Φ
(n)

+

1
 M < n
• Có thể suy ra
 C
d
mod n = M
e
d
mod n = M

k
Φ
(n) + 1
mod n = M mod n = M
III.2 Thuật Toán RSA
 V
í
d

t

o khóa RSA:


• Chọn 2 số nguyên tố p = 17 và q = 11
• Tính n = pq = 17 × 11 = 187
• Tính Φ(n) = (p - 1)(q - 1) = 16
×
10 = 160
• Chọn e : gcd(e, 160) = 1 và 1 < e < 160; lấy e = 7

Xác định d : de ≡ 1 mod 160 và d ≤ 187

Xác

định

d

:


de



1

mod

160



d



187
• Giá trị d = 23 vì 23 × 7 = 161 = 1 × 160 + 1

Công bố khóa công khai KU
=
{7, 187}
Công

bố

khóa

công


khai

KU

{7,

187}
• Giữ bí mật khóa riêng KR = {23, 187}
 Hủy bỏ các giá trị bí mật p = 17 và q = 11
III.2 Thuật Toán RSA
 V
í
d

t

o khóa RSA:


III.2 Thuật Toán RSA
 Ch

nthams

RSA:

• Cầnchọnpvàqđủ lớn
• Thường chọnenhỏ



• Thường có th

chọncùnggiátrị củaechot

tc

người
dùng

Trước
đây
khuyến
nghị
giá
trị
của
e

3
nhưng
hiện
nay

Trước
đây
khuyến
nghị
giá
trị

của
e

3
,
nhưng
hiện
nay
được coi là quá nhỏ
• Th
ườ
n
g
c
h

n
e
=2
16
-1=
65535
ườ g
c ọ
e
65535
• Giá trị củadsẽ lớn và khó đoán
III.2 Thuật Toán RSA
 An toàn củaRSA:
• Khóa 128 bit là mộtsố giữa1vàmộtsố rấtlớn

340.282.366.920.938.000.000.000.000.000.000.000.000

b
hiê

ê
tố
iữ
1
à

à


b
ao n
hiê
us

nguy
ê
n
tố
g
iữ
a
1
v
à
s


n
à
y
≈ n/ln(n)=2
128
/ ln(2
128
) ≈
3.835.341.275.459.350.000.000.000.000.000.000.000
• Cầnbaonhiêuthờigiannếumỗigiâycóthể tính được
10
12
số
H
121
617
874
031
562
000
ă
(kh ả
10
iệ
lầ
ổi

H
ơn

121
,
617
,
874
,
031
,
562
,
000
n
ă
m
(kh
o

ng
10
tr
iệ
u
lầ
ntu
ổi
c

a
vũ trụ)
• An

toà
nnh
ư
n
g
cầ
n
đề
p
h
ò
n
g
nh

n
g
đ
i

m
yếu
toà
ư g
cầ
đề
pòg
ữ g
đ ể
yếu

III.2 Thuật Toán RSA
 PhámãRSA:
• Phương pháp vét cạn
 Thử tấtcả các khóa riêng có thể
Phụ
thuộc
vào
độ
dài
khóa
Phụ
thuộc
vào
độ
dài
khóa
• Phương pháp phân tích toán học
 Phân n thành tích 2 số nguyên tố pvàq
ế
 Xác định trựcti
ế
p
Φ
(n) không thông qua
p
và q
 Xác định trựctiếp d không thông qua Φ(n)

Phương
pháp

phân
tích
thời
gian
Phương
pháp
phân
tích
thời
gian
 Dựatrênviệc đothờigiangiảimã
 Có thể ngănngừabằng cách làm nhiễu
III.3 Hệ Trao Đổi Khóa Diffie-Hellman
• Giải thu

t m

t mã khóa côn
g
khai đ

u tiên
ậ ậ g
• Đề xuất bởi Whitfield Diffie và Martin Hellman vào năm
1976

 Malcolm Williamson (GCHQ - Anh) phát hiện trước m

y năm
nhưng đến năm 1997 mới công bố


Chỉ dùng để trao đổi khóa bí mậtmột cách an toàn trên
Chỉ

dùng

để

trao

đổi

khóa



mật

một

cách

an

toàn

trên

các kêch thông tin không an toàn
• Khóa bí mật được tính toán bởi cả hai bên

• An toàn phụ thuộc vào độ phức tạp của việc tính log rời
rạc
III.3 Hệ Trao Đổi Khóa Diffie-Hellman
 Thi
ế
tl
ập
Diffie-Hellman:
ập
• Các bên thống nhấtvới nhau các tham số chung
 qlàmộtsố nguyên tốđủlớn


ột
ê
ă


α

m
ột
nguy
ê
nc
ă
nc

aq
α mod q, α

2
mod q, , α
p-1
mod q là các số nguyên giao hoán của các số từ
1 đếnq-1

A


n
A
 Chọnngẫu nhiên làm khóa riêng X
A
<q
 Tính khóa chun
g
Y
A
=
α
X
A
mo
d
q
g
A
q
• Bên B
 Chọnngẫu nhiên làm khóa riêng X

B
<q

Tính
khóa
chung
Y
α
X
B
mod
q

Tính
khóa
chung
Y
B
=
α
B
mod
q

×