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

Bài giảng An toàn và bảo mật thông tin - Chương 4: Mã hóa công khai RSA

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 (835.16 KB, 26 trang )

Chương 4 
Mã hóa công khai RSA


Nội dung
Mô hình mã hóa công khai
 Mã hóa công khai RSA
 Bảo mật, chứng thực, không thể từ chối trong 
RSA
 Phương pháp trao đổi khóa



Đặt vấn đề


Mã hóa đối xứng dù phát triển từ cổ điển đến 
hiện đại, vẫn tồn tại 2 điểm yếu sau:
◦  Vấn đề trao đổi khóa giữa người gởi và người nhận: 

cần có một kênh an toàn để trao đổi khóa bí mật.
◦  Tính bí mật của khóa: không có cơ sở để quy trách 
nhiệm nếu khóa bị tiết lộ.


Năm 1976 Whitfield Diffie và Martin Hellman đưa 
ra giải pháp giải quyết vấn đề trên: mã hóa công 
khai


Ý tưởng




Khóa mỗi người dùng được chia ra làm hai phần:


Khoa chung: để mã hóa công khai với mọi người



Khóa bí mật: để giải mã thì được giữ bí mật chỉ được
biết bởi chủ nhân của nó.



Nếu khóa bí mật ở người nhận thì bộ sinh khóa
nằm ở người nhận.





Các giai đoạn mã hóa công khai


Định nghĩa hệ mã công khai


PP mã hóa RSA
Là PP mã hóa công khai được xây dựng bởi Ron 
Rivest, Adi Shamir và Len Adleman tại viện MIT 

năm 1977.
 Là PP mã hóa theo khối, bản rõ M và bản mã C là 
các số nguyên từ 0 đến 2i với I là số bit của khối 
(i thường là 1024).
 Sử dụng hàm một chiều: phân tích một số 
thành thừa số nguyên tố



Nguyên tắc thực hiện RSA


Ví dụ RSA


Ví dụ mã RSA (tt)


Độ phức tạp tính toán trong 
RSA

Phép mã hóa/giải mã: dùng phép lũy thừa 
modular. Để an toàn, chọn N, e, M lớn.
 Dùng phép “bình phương liên tiếp” tránh việc tính 
lũy thừa lớn, nâng cao tốc độ tính toán.
 Phép tính sinh khóa: chọn p và q đủ lớn để việc 
thử là không khả thi




Ví dụ sinh khóa trong RSA


Độ an toàn của RSA
1. Vét cạn khóa: thử tất cả các khóa d có thể để 

tìm bản rõ có nghĩa, N lớnbất khả thi.
2. Phân tích N thành thừa số nguyên tố p.q : việc 
phân tích này là bất khả thi vì đây là hàm một 
chiều, là nguyên tắc hoạt động của RSA.
3. Đo thời gian: đây là PP phá mã không dựa vào 
toán học mà dựa vào “hiệu ứng lề” sinh ra bởi 
quá trình giải mã RSA


Tính bảo mật, chứng thực, 
không từ chối trong mã hóa 
 Giả sử Alice và Bob dùng mã hóa công khai để gởi 
công khai
dữ liệu cho nhau, khóa (KRA , KUA), (KRB, KUB)
 Gởi dữ liệu cho Bob: C=E(M, KUB)
Bob giải mã: M= D(C, KRB)




Để đảm bảo tính chứng thực, Alice không từ chối 
tránh nhiệm gởi dữ liệu, Alice dùng khóa riêng để 
mã hóa
C=E(M, KRA)

M=D(C, KUA)


Nếu bản giải mã có nghĩa, tức Alice là người gởi dữ 
liệu. Nếu Trudy can thiệp chỉnh sửa thì bản giải mã 
không có nghĩa, nếu Trudy có khóa KRA thì Alice 
không thể thoái tránh nhiệm làm lộ khóa.
 Tuy nhiên mô hình CT không bảo mật. Để giải 
quyết, người ta đưa ra mô hình:



Trao đổi khóa công khai
Khi hai người dùng muốn truyền dữ liệu cho nhau 
bằng mã hóa công khai, trước tiên họ phải trao 
đổi khóa với nhau.
 Khóa có thể truyền công khai trên đường truyền 
thường.
Vấn đề: tính chứng thực của khóa KU mô 
hình chứng chỉ khóa công khai –CA (certificate 
Authority )



Trao đổi khóa công khai dùng 
CA


Dùng khóa công khai trao đổi 
khóa bí mật



Do đặc điểm toán học của mã hóa công khai 
chậm hơn so với mã hóa đối xứng nên trong thực 
tế, để đảm bảo bí mật, người ta dùng mã hóa đối 
xứng, mã hóa công khai được dùng để thiết lập 
khóa bí mật cho mỗi phiên trao đổi dữ liệu.


Dùng khóa công khai trao đổi 
khóa bí mật (tt)

A trao đổi khóa phiên Ks mã hóa bằng khóa riêng, 
sau đó mã hóa bằng khóa công khai của B
 Kết thức phiên trao đỗi DL, Ks được hủy để đảm 
bảo tính bí mật.



Phương pháp trao đổi khóa 
Diffie – Hellman


Dùng để thiết lập khóa bí mật giữa người gởi và 
người nhận mà không cần đến giải pháp mã hóa 
công khai hay chuyển chìa trên kênh truyền an 
toàn.


Giải pháp của Diffie­Hellman 

Alice

Bob

1. Chọn số ngto p và số g nhỏ hơn p và là primitive root 
của p. hai số p và g không cần giữ bí mật.
2. Chọn và giữ bí mật số a

Chọn và giữ bí mật số b

3. Tính A= ga mod p

Tính B = gb mod p

4. Alice và Bob trao đổi A và B với nhau
5.  Tính (gb)a mod p = gab 
mod p

Tính (ga)b mod p = gab mod 
p

Giá trị này được dùng làm khóa cho mã hóa đối xứng


Nhận xét



thuật toán Diffie­Hellman lại thất bại đối với cách 
tấn công kẻ­đứng­giữa.




Để an toàn, quá trình thiết lập khóa Diffie­Hellman 
vẫn phải được mã hóa bằng một khóa công khai.



Nếu đã được bảo vệ bằng khóa công khai, thì 


Bảo vệ khóa Diffie­Hellman 
bằng khóa công khai


×