Professional Documents
Culture Documents
Hà Nội, 2019
Mã hóa đối xứng
2
Câu hỏi
Alice và Bob có thể trao đổi tài liệu mật với nhau mà không cần
thỏa thuận trước một khóa không?
3
Giải pháp?
A A B
1
Alice Bob
A B
3
B
4
Mô tả hình thức
Nhận xét?
Trong mã hóa/giải mã không đơn giản như “khóa hòm” mà cần
tuân theo nguyên tắc nghịch đảo (mã hóa sau – giải mã trước)
Kết quả Bob nhận được P’ ≠ P
5
Trao đổi khóa bí mật
6
Trao đổi khóa Diffie-Hellman
7
Yêu cầu của giao thức DH
8
Ví dụ
1.Alice và Bob thỏa thuận sử dụng chung một số nguyên tố p=23 và căn nguyên thủy g=5.
2.Alice chọn một số nguyên bí mật a=6, và gửi cho Bob giá trị A = ga mod p
1. A = 56 mod 23
2. A = 15,625 mod 23
3. A = 8
3.Bob chọn một số nguyên bí mật b=15, và gửi cho Alice giá trị B = gb mod p
1. B = 515 mod 23
2. B = 30,517,578,125 mod 23
3. B = 19
4.Alice tính s = B a mod p
1. s = 196 mod 23
2. s = 47,045,881 mod 23
3. s = 2
5.Bob tính s = A b mod p
1. s = 815 mod 23
2. s = 35,184,372,088,832 mod 23
3. s = 2
6.Như vậy Alice và Bob cùng chia sẻ bí mật chung là số 2 vì 6*15 cũng bằng 15*6.
9
Tính an toàn của lược đồ Diffie-Helmann
Đối phương có thể biết p, g, ga, gb nhưng nếu a, b, p rất lớn thì
sẽ rất khó tính ra được a và b
Tuy nhiên, giao thức thất bại trước tấn công man-in-the-middle
10
Giao thức Station-to-Station
11
Nhược điểm của giao thức DH
12
Các tiếp cận tính an toàn
Thời sơ khai
Che giấu thông tin nhờ thống nhất những qui ước bí mật chung
Nguyên lý Kerckhoffs (thế kỷ 19)
An toàn của một hệ mật mã chỉ dựa trên khóa bí mật
Với các hệ mật mã khóa đối xứng
Khó chia sẻ khóa
Khóa công khai (từ 1970s)
Làm sao tạo được cặp khóa (khóa công khai và khóa bí mật)
Giải pháp: các hàm cửa lật một chiều (one-way trapdoor)
Phân tích một số thành các thừa số nguyên tố RSA
Logarith rời rạc ElGammal
13
Số học đồng dư
14
Số học đồng dư (2)
n=10, a=2 không nguyên tố cùng nhau không tồn tại nghịch đảo
Một số ví dụ khác…
23-1 mod 206
15
RSA
16
Thuật toán RSA
Mã hóa
C = E(M, Ku) = Me mod n
Giải mã
M = D(C, KR) = Cd mod n
17
Ví dụ
18
Độ phức tạp tính toán của RSA
Vấn đề
Sinh số nguyên tố lớn?
Mã hóa/ giải mã: Tính lũy thừa số lớn?
Giải pháp?
Sinh số nguyên tố lớn [Kiểm tra khả năng nguyên tố của nó (xác suất)]
Thuật toán Miller-Rabin
Thuật toán Solovay-Strassen
Tính lũy thừa số lớn:
Thuật toán bình phương liên tiếp
19
Thuật toán bình phương liên tiếp
20
Thuật toán bình phương liên tiếp (2)
21
Độ an toàn của RSA
22
Tóm tắt
Số học đồng dư
23
Bài tập
1. Bản rõ M = 88
Chọn 2 số nguyên tố: p=17, q=11 n = p.q = 187
Tính φ(n) = (p-1)(q-1) = 160
Chọn e: gcd(e, 160)=1 e = ?
Chọn d: e.d = 1 mod 160 d = ?
Khóa công khai Ku = (e, 187), khóa bí mật KR = (d, 187)
Mã hóa: C = Me mod n
Giải mã: M = Cd mod n
24
Bài tập
25