52
COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 1 HIENLTH Computer Network Security Lương Trần Hy Hiến

Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 1 HIENLTH

Computer Network Security

Lương Trần Hy Hiến

Page 2: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 2 HIENLTH

Chương 5: Kỹ thuật mã hóa

MÃ KHÓA CÔNG KHAI

Page 3: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 3 HIENLTH

Giới thiệu

• Những hạn chế của mật mã đối xứng

– Vấn đề phân phối khóa

• Khó đảm bảo chia sẻ mà không làm lộ khóa bí mật

• Trung tâm phân phối khóa có thể bị tấn công

– Không thích hợp cho chữ ký số

• Bên nhận có thể làm giả thông báo nói nhận được từ bên gửi

• Mật mã khóa công khai đề xuất bởi Whitfield Diffie vàMartin Hellman vào năm 1976

– Khắc phục những hạn chế của mật mã đối xứng

– Có thể coi là bước đột phá quan trọng nhất trong lịch sử củangành mật mã

– Bổ sung chứ không thay thế mật mã đối xứng

Page 4: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 4 HIENLTH

Đặc điểm mật mã khóa công khai

• Còn gọi là mật mã hai khóa hay bất đối xứng

• Các giải thuật khóa công khai sử dụng 2 khóa

– Một khóa công khai

• Ai cũng có thể biết

• Dùng để mã hóa thông báo và thẩm tra chữ ký

– Một khóa riêng

• Chỉ nơi giữ được biết

• Dùng để giải mã thông báo và ký (tạo ra) chữ ký

• Có tính bất đối xứng

– Bên mã hóa không thể giải mã thông báo

– Bên thẩm tra không thể tạo chữ ký

Page 5: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 5 HIENLTH

Mã hóa khóa công khai

Các khóa công khai

Nguyên bản

đầu vào

Nguyên bản

đầu ra

Bản mã

truyền đi

Giải thuật

mã hóa

Giải thuật

giải mã

Khóa công khai

của Alice

Khóa riêng

của Alice

Ted

AliceMike

Joy

Page 6: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 6 HIENLTH

Xác thực

Các khóa công khai

Nguyên bản

đầu vào

Nguyên bản

đầu ra

Bản mã

truyền đi

Giải thuật

mã hóa

Giải thuật

giải mã

Khóa riêng

của Bob

Khóa công khai

của Bob

Ted

BobMike

Joy

Page 7: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 7 HIENLTH

Ứng dụng mật mã khóa công khai

• Có thể phân ra 3 loại ứng dụng

– Mã hóa/giải mã

• Đảm bảo sự bí mật của thông tin

– Chữ ký số

• Hỗ trợ xác thực văn bản

– Trao đổi khóa

• Cho phép chia sẻ khóa phiên trong mã hóa đối xứng

• Một số giải thuật khóa công khai thích hợp cho cả 3 loại ứng dụng; một số khác chỉ có thể dùng cho 1 hay 2 loại

Page 8: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 8 HIENLTH

Mô hình đảm bảo bí mật

Nguồn

th. báo

Giải thuật

mã hóa

Giải thuật

giải mãĐích

th. báo

Nguồn

cặp khóa

Kẻ

phá mã

Nguồn A Đích B

Page 9: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 9 HIENLTH

Mô hình xác thực

Nguồn

th. báo

Giải thuật

mã hóa

Giải thuật

giải mãĐích

th. báo

Nguồn

cặp khóa

Kẻ

phá mã

Nguồn A Đích B

Page 10: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 10 HIENLTH

Mô hình kết hợp

Nguồn

th. báo

G. thuật

mã hóa

G. thuật

giải mãĐích

th. báo

Nguồn

cặp khóa

Nguồn A Đích B

G. thuật

mã hóa

G. thuật

giải mã

Nguồn

cặp khóa

Page 11: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 11 HIENLTH

Toán học cho Mã hóa

Page 12: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 12 HIENLTH

Tính chia hêt của các số nguyên

• Cho a và b là các số nguyên (integer) với b ≠ 0. Ta nói, a chia hết cho b nếu tồn tại 1 số nguyên c sao cho: a = bc

• Ký hiệu b a để chỉ a chia hết b

• Ký hiệu b a để chỉ a không chia hết b

• a là bội số của b (multiple), b là ước số (divisor) của a

• Ví dụ 2 | 6, 3 | 5

Page 13: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 13 HIENLTH

Đinh ly phep chia cua Euclid

• Đối với mọi số n, d ∈ Z\{0} luôn tồn tại duy nhất các số q, r ∈ Z sao cho

n = qd + r với 0 ≤ r < |d|

• n là số bị chia (dividend), d là số chia (divisor), q là thương số (quotient) và r làsố dư (remainder) ký hiệu là Rd(n)

• Ví dụ : R7(16) = 2 (vi 16 = 2 x 7+2)

R7(−16) = ?? 5 (vi −16 = −3 x 7+5)

R7(1) = R7(8) = R7(15) = R7(22)... = 1.

Page 14: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 14 HIENLTH

Ký hiệu

• Z = {…, -2, -1, 0, 1, 2, …} là tập hợp sốnguyên

• Zn = {0, 1, 2, .., n-1} là tập số nguyêntheo module n

• GCD(m,n): UCLN giữa m và n

(greatest common divisor)

http://www.math.cmu.edu/~bkell/21110-2010s/numbers.html

Page 15: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 15 HIENLTH

Thuật toán Euclid tìm UCLN

Ví dụ: gcd (36, 10) = gcd (10, 6) = gcd (6, 4)

= gcd (4, 2) = gcd (2, 0) = 2

Page 16: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 16 HIENLTH

Thuật toán Euclid tìm UCLN

• Tim gcd(2740,1760)

G R1 R2 R

1 2740 1760 980

1 1760 980 780

1 980 780 200

3 780 200 180

1 200 180 20

9 180 20 0

20 0

Page 17: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 17 HIENLTH

Thuật toán Euclid mở rộng(Extended Euclidean Algorithm)

http://www.math.cmu.edu/~bkell/21110-2010s/extended-euclidean.html

Page 18: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 18 HIENLTH

Thuật toán Euclid mở rộng(Extended Euclidean Algorithm)

Page 19: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 19 HIENLTH

Ví dụ: a= 161 và b = 28, tìm gcd (a, b)

r = r1- q × r2; s = s1-q × s2; t = t1- q × t2

gcd (161, 28) = 7, s = -1 và t = 6.

Ref and Question: https://www.di-mgt.com.au/euclidean.html

Page 20: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 20 HIENLTH

Nguyên tố cùng nhau(co-prime hay relatively prime)

• Hai số nguyên a, b ∈ Z \{0} được gọi là

nguyên tố cùng nhau nếu gcd(a, b)=1.

• Ví dụ: (5,8) , (9,14) là các cặp nguyên tố cùng nhau

Page 21: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 21 HIENLTH

Ky hiệu

• Zn* là tập hợp các số nguyên tố cùng nhau

với n

• (n) = | Zn* | : hàm phi Euler, số lượng

ước số của n.

Page 22: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 22 HIENLTH

• Nếu GCD(n,m) = 1 và n,m nguyên tố cùngnhau thi (n.m) = (n) (m)

• Nếu p, q là 2 số nguyên tố thi:

– (p) = p – 1

– (pq) = (p -1) (q – 1)

• Ví dụ: n = 15 cóZn

*={1,2,4,6,7,8,11,13,14} → (15) = 8

Mà 15 = 3 x 5 thi (15)=(3-1)(5-1)=8

Page 23: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 23 HIENLTH

Hệ mã hóa RSA

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

• Hệ mã hóa khóa công khai phổ dụng nhất

• Dựa trên số nguyên tố và kết quả từ lý thuyết số

• Mã hóa khối với mỗi khối là một số nguyên < n

– Thường kích cỡ n là 1024 bit ≈ 309 chữ số thập phân

• Đăng ký bản quyền năm 1983, hết hạn năm2000

• An ninh vì chi phí phân tích thừa số của một sốnguyên lớn là rất lớn

Page 24: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 24 HIENLTH

RSA

Cần xác định các hoạt động:

• Cách tạo khóa

• Cách mã hóa: C(m)

• Cách giải mã: D(c)

Page 25: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 25 HIENLTH

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:1. Chọn ngẫu nhiên 2 số nguyên tố đủ lớn p q2. Tính n = pq và (n) = (p-1)(q-1)3. Chọn ngẫu nhiên khóa mã hóa e sao cho 1 < e

< (n) và gcd(e, (n)) = 1 (nguyên tố cùng nhau)

4. Tim khóa giải mã d ≤ n thỏa mãn e.d ≡ 1 mod (n) (ed – 1 chia hết cho (n))

5. Công bố khóa công khai KU = {e, n}Giữ bí mật khóa giải mã riêng KR = {d, n}• Các giá trị bí mật p và q bị hủy bỏ

Page 26: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 26 HIENLTH

RSA: mã hóa và giải mã

Cho biết (e,n) và (d,n)1. Để mã hóa 1 thông báo nguyên bản 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ính C = Me mod n

2. Để giải mã bản mã C nhận được, bên nhận thực hiện:– Sử dụng khóa riêng KR = {d, n}– Tính M = Cd mod n

• Lưu ý là thông báo M phải nhỏ hơn n– Phân thành nhiều khối nếu cần

Page 27: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 27 HIENLTH

Chứng minh

• m = (me mod n)d mod n

c• Bạn nào chứng minh + 1 điểm cuối kỳ

(báo cáo) hoặc tùy chọn.

Bí mậtCó cộng điểm

Page 28: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 28 HIENLTH

Vì sao RSA khả thi

• Theo định lý Euler– a, n: gcd(a, n) = 1 a(n) mod n = 1– (n) là số các số nguyên dương nhỏ 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 ≡ 1 mod (n) số nguyên k: ed = k(n) + 1– M < n

• Có thể suy ra– Cd mod n = Med mod n = Mk(n) + 1 mod n = M mod n

= M

Page 29: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 29 HIENLTH

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

Giá trị d = 23 vi 23 7 = 161 = 1 160 + 1

• 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

Page 30: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 30 HIENLTH

Ví dụ thực hiện RSA

Mã hóa Giải mã

Nguyên

bảnNguyên

bản

Bản

Page 31: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 31 HIENLTH

VD2

Page 32: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 32 HIENLTH

VD2

Page 33: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 33 HIENLTH

VD2

Page 34: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 34 HIENLTH

VD3

Page 35: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 35 HIENLTH

VD3

Page 36: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 36 HIENLTH

Chọn tham số RSA

• Cần chọn p và q đủ lớn

• Thường chọn e nhỏ

• Thường có thể chọn cùng giá trị của e cho tất cả người dùng

• Trước đây khuyến nghị giá trị của e là 3, nhưng hiện nay được coi là quá nhỏ

• Thường chọn e = 216 - 1 = 65535

• Giá trị của d sẽ lớn và khó đoán

Page 37: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 37 HIENLTH

An ninh cua RSA

• Khóa 128 bit là một số giữa 1 và một số rất lớn

340.282.366.920.938.000.000.000.000.000.000.000.000

• Có bao nhiêu số nguyên tố giữa 1 và số này

≈ n / ln(n) = 2128 / ln(2128) ≈ 3.835.341.275.459.350.000.000.000.000.000.000.000

• Cần bao nhiêu thời gian nếu mỗi giây có thể tính được 1012 số

Hơn 121.617.874.031.562.000 năm (khoảng 10 triệu lần tuổi của vũ trụ)

• An ninh nhưng cần đề phòng những điểm yếu

Page 38: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 38 HIENLTH

Phá mã RSA

• Phương pháp vét cạn

– Thử tất cả các khóa riêng có thể

• 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ố p và q

– Xác định trực tiếp (n) không thông qua p và q

– Xác định trực tiếp d không thông qua (n)

• Phương pháp phân tích thời gian

– Dựa trên việc đo thời gian giải mã

– Có thể ngăn ngừa bằng cách làm nhiễu

Page 39: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 39 HIENLTH

Phân tích thừa số RSA

• An ninh của RSA dựa trên độ phức tạp của việc phân tích thừa số n

• Thời gian cần thiết để phân tích thừa số một số lớn tăng theo hàm mũ với số bit của số đó

– Mất nhiều năm khi số chữ số thập phân của n vượt quá 100 (giả sử làm 1 phép tính nhị phân mất 1 s)

• Kích thước khóa lớn đảm bảo an ninh cho RSA

– Từ 1024 bit trở lên

– Gần đây nhất năm 1999 đã phá mã được 512 bit (155 chữ số thập phân)

Page 40: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 40 HIENLTH

Trao đổi khóa

Page 41: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 41 HIENLTH

Sử dụng khóa công cộng để trao

đổi khóa bí mật

• RSA không thích hợp để mã hóa nội dung dữliệu dài.

• Nhưng RSA đóng vai trò quan trọng trong việctrao đổi khóa chung. Giúp cho việc triển khaibảo mật trên mạng khả thi.

Page 42: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 42 HIENLTH

Giao thức trao đổi khóa đơn

giản

• A PUA B

• A E(PUA, KS) B

• KS: khóa bí mật

→ tấn công man-in-the-middle

Page 43: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 43 HIENLTH

Certificate Authorities (CA)

• Một certificate được cấp bởi CA sẽ chứng thựcanh/chị đó là ai.

• Để nhận được certificate, user gửi public key đến CA

• Khi user mới muốn cấp certificate thi CA sẽ cócách để chứng thực user mới này.

• Một certificate cho user A (CA) như sau:

CA = E (PRauth, [T, IDA, PUA])

T: timestamp, IDA: ID của A, PUA: public key của A. Tất cảđược mã hóa bằng Private key của CA (PRauth).

Page 44: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 44 HIENLTH

• A sẽ trinh certificate CA cho B để chứngthực A. B sẽ dùng public key của CA đểgiải mã chứng thực CA.

• Điểm yếu của hệ thống là liệu người yêucầu cấp CA có phải là A.

• Chuẩn X.509 dành cho PKI (Public Key Infrastructure)

Page 45: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5
Page 46: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 46 HIENLTH

Hệ trao đổi khóa Diffie-Hellman

• Giải thuật mật mã khóa công khai đầu tiên

• Đề 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ật một cách an ninh trên các kênh thông tin không an ninh

• Khóa bí mật được tính toán bởi cả hai bên

• An ninh phụ thuộc vào độ phức tạp của việc tính log rời rạc

Page 47: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 47 HIENLTH

Thiết lập Diffie-Hellman

• Các bên thống nhất với nhau các tham số chung

– q là một số nguyên tố đủ lớn

– là một nguyên căn của q

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

• Bên A

– Chọn ngẫu nhiên làm khóa riêng XA < q

– Tính khóa công khai YA = XA mod q

• Bên B

– Chọn ngẫu nhiên làm khóa riêng XB < q

– Tính khóa công khai YB = XB mod q

Page 48: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 48 HIENLTH

Trao đổi khóa Diffie-Hellman

• Tính toán khóa bí mật

– Bên A biết khóa riêng XA và khóa công khai YB

K = YBXA mod q

– Bên B biết khóa riêng XB và khóa công khai YA

K = YAXB mod q

• Chứng minh

YAXB mod q = (

XA mod q)XB mod q

= XAXB mod q

= XBXA mod q

= (XB mod q)

XA mod q

= YBXA mod q

Page 49: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 49 HIENLTH

Ví dụ Diffie-Hellman

• Alice và Bob muốn trao đổi khóa bí mật• Cùng chọn q = 353 và = 3• Chọn ngẫu nhiên các khóa riêng

– Alice chọn XA = 97, Bob chọn XB = 233

• Tính toán các khóa công khai– YA = 397 mod 353 = 40 (Alice)– YB = 3233 mod 353 = 248 (Bob)

• Tính toán khóa bí mật chung– K = YB

XA mod 353 = 24897 mod 353 = 160(Alice)

– K = YAXB mod 353 = 40233 mod 353 = 160

(Bob)

Page 50: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 50 HIENLTH

Hạn chế cua khóa công khai

• Tốc độ xử lý– Các giải thuật khóa công khai chủ yếu dùng các phép

nhân chậm hơn nhiều so với các giải thuật đối xứng– Không thích hợp cho mã hóa thông thường– Thường dùng trao đổi khóa bí mật đầu phiên truyền

tin

• Tính xác thực của khóa công khai– Bất cứ ai cũng có thể tạo ra một khóa công bố đó là

của một người khác– Chừng nào việc giả mạo chưa bị phát hiện có thể đọc

được nội dung các thông báo gửi cho người kia– Cần đảm bảo những người đăng ký khóa là đáng tin

Page 51: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 51 HIENLTH

Q & A

Page 52: Computer Network Security · Computer Network Security Lương Trần Hy Hiến. COMP1049 - Bảo mật và An ninh Mạng –Network Security C5

COMP1049 - Bảo mật và An ninh Mạng – Network Security C5 – 52 HIENLTH

THE END