1. Trang chủ
  2. » Công Nghệ Thông Tin

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

48 309 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các Hệ Mật Mã Công Khai
Trường học Đại Học Khoa Học Tự Nhiên Hà Nội
Chuyên ngành Khoa học Máy Tính
Thể loại Báo Cáo
Thành phố Hà Nội
Định dạng
Số trang 48
Dung lượng 724,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

III.1 Nguyên lý hệ mật mã công khai™ Vấn đề phân phối khóa: p p • Trong sơ đồ mã hoá truyền thống, quá trình phân phốikhoá đưa ra yêu cầu hai phía tham gia vào trao đổi thôngy p g gtin:

Trang 1

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

Trang 2

III.1 Nguyên lý hệ mật mã công khai

™ Đặc điểm: ặ

• Mật mã công khai dựa trên cơ sở của các hàm toán học

chứ không phải dựa trên phép thay thế và đổi chỗ nhưg p ự p p ytrong phương pháp mã hoá đối xứng

• Mã mật công khai là bất đối xứng Trong 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ệc sử dụng hai khoá không đối xứng đưa

đến những hệ quả sâu sắc trong lĩnh vực an toàn thôngtin: tính toàn vẹn, tính xác thực, phân phối khoá

Trang 3

III.1 Nguyên lý hệ mật mã công khai

™ Xuất xứ:

• Hệ mã mật khoá công khai được phát triển nhằm giải

quyết hai vấn đề phức tạp nảy sinh từ phương pháp mã

Trang 4

III.1 Nguyên lý hệ mật mã công khai

™ Vấn đề phân phối khóa: p p

• Trong sơ đồ mã hoá truyền thống, quá trình phân phốikhoá đưa ra yêu cầu hai phía tham gia vào trao đổi thôngy p g gtin:

ƒ Phải chia sẻ trước khoá, khoá này phải được phân

• Chữ ký điện tử phải được sử dụng trong các thông điệp

điện tử và phải có hiệu lực tương đương với chữ ký trêngiấy

Trang 5

III.1 Nguyên lý hệ mật mã công khai

™ Hệ mật khóa công khai: ệ ậ g

• Mỗi hệ thống đầu cuối tạo một cặp khoá để mã hoá và

giải mã các thông điệp

• Mỗi hệ thống đầu cuối công bố một khoá trong cặp khoá

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

• Nếu A muốn gửi thông điệp cho B, A sẽ mã hoá văn bản

bằng khoá công khai của B

• Khi B nhận được thông điệp B sẽ giải mã bằng khoá

• Khi B nhận được thông điệp, B sẽ giải mã bằng khoá

mật Không một bên thứ ba có thể giải mã được thôngđiệp vì chỉ có B biết khoá mật của B

Trang 6

III.1 Nguyên lý hệ mật mã công khai

™ Sơ đồ mã hóa công khai: g

• Sơ đồ mã mật khoá công khai sử dụng một khoá để mã

hoá và một khoá khác có liên quan để giải mã Các thuậtộ q g ậtoán mã hoá và giải mã có một số đặc điểm quan trọngsau:

ƒ Không thể xác định được khoá giải mã nếu chỉ biết

thuật toán mã hoá và khoá mã hoá

ƒ Một số hệ mã mật khoá công khai (như RSA) còn

cung cấp khả năng sử dụng bất kỳ một khoá trong cặpkhoá làm khoá mã hoá, khoá còn lại sẽ được dùnglàm khoá giải mã

Trang 7

III.1 Nguyên lý hệ mật mã công khai

™ Sơ đồ mã hóa:

Trang 8

III.1 Nguyên lý hệ mật mã công khai

™ Sơ đồ chứng thực: g ự

Trang 9

III.1 Nguyên lý hệ mật mã công khai

™ Các bước tiến hành:

1 Mỗi người sử dụng tạo một cặp khoá được sử dụng để mã hóa và

giải mã thông điệp.

2 Mỗi người dùng sẽ giao một trong hai khóa cho người đăng ký

khóa công cộng hoặc một file có khả năng truy cập Khóa đó là khóa công khai Cái còn lại là sẽ được giữ bí mật Như trong hình g ạ ợ g ậ g trên đã giả thiết, mỗi người dùng sẽ duy trì một tập các khóa công khai thu được từ các người dùng khác

3 Nếu Bob muốn gửi một thông điệp bí mật cho Alice Bob mã hóa

thông điệp bằ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ải mã nó bằng khóa riêng

ể của mình Không có người nhận khác có thể giải mã thông điệp vì chỉ Alice biết khóa riêng của Alice.

Trang 10

III.1 Nguyên lý hệ mật mã công khai

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

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

ậ à

truy cập vào KUbnhưng không có quyền truy cập

q y y ập vào KRb hoặc X,

để xem được thông tin kẻ phá

thông tin kẻ phá

mã phải phục hồi

X và / hoặc KRb.

Trang 11

III.1 Nguyên lý hệ mật mã công khai

™ Mô hình chứng thực:

Trong trường hợp này, A soạ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ể giải mã thông điệp bằng cách g g ệp g

sử dụng khóa công khai của A Bởi

vì thông điệp đã được mã hóa bằng khóa riêng của A, chỉ A có 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ục vụ như một chữ ký 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 là xác thực cả

về nguồn và về tính toàn vẹn dữ liệu.

Trang 12

III.1 Nguyên lý hệ mật mã công khai

™ Mô hình kết hợp:

Trong trường hợp này, chúng ta bắt đầu như trước bằng cách mã hóa các tin nhắn sử dụng khóa riêng của người gửi Công việc này để cung cấp các chữ ký số Tiế th hú t ã hó ột

Tiếp theo, chúng ta mã hóa một lần nữa, bằng cách sử dụng khóa công khai của người nhận Các bản mã cuối cùng chỉ có thể được giải mã chỉ bởi người nhận đã được xác định người có chìa khóa Vì vậy, tính bảo mật được cung cấp.

Trang 13

III.1 Nguyên lý hệ mật mã công khai

™ Các điều kiện cần thiết:

• Bên B dễ dàng tạo ra được cặp (KUb, KRb)

• Bên A dễ dàng tạo ra được C = EKUb(M)

• Bên B dễ dàng giải mã M = DKRb(C)

• Đối thủ không thể xác định được KRb khi biết KUb

• Đối thủ không thể xác định được M khi biết KU và C

• Đối thủ không thể xác định được M khi biết KUb và C

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

kia có thể dùng giải mãg g

M = DKRb(EKUb(M)) = DKUb(EKRb(M))

Trang 14

III.1 Nguyên lý hệ mật mã công khai

™ Mã hóa đối xứng và mã hóa công khai: g g

Trang 15

III.2 Thuật Toán RSA

™ 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

• 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ăm 2000

• An toàn vì chi phí phân tích thừa số của một số nguyênp p g y

lớn là rất lớn

Trang 16

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 :

ƒ Tìm khóa giải mã d ≤ n thỏa mãn e d ≡ 1 mod Φ(n)

ƒ Tìm khóa giải mã 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 giải mã riêng KR = {d, n}g g { }

ƒ Các giá trị bí mật p và q bị hủy bỏ

Trang 17

III.2 Thuật Toán RSA

™ Thực hiện RSA: ự ệ

• Để 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}

• 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

Trang 18

III.2 Thuật Toán RSA

™ Tính khả thi của RSA:

Trang 19

III.2 Thuật Toán RSA

™ Ví dụ tạo khóa RSA: ụ ạ

• 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

Trang 20

III.2 Thuật Toán RSA

™ Ví dụ tạo khóa RSA: ụ ạ

Trang 21

III.2 Thuật Toán RSA

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

• 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 = 2ườ g c ọ e 16 - 1 = 6553565535

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

Trang 22

III.2 Thuật Toán RSA

™ An toàn của 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) = 2 128 / ln(2 128 ) ≈ 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

Trang 23

III.2 Thuật Toán RSA

™ 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

Trang 24

III.3 Hệ Trao Đổi Khóa Diffie-Hellman

• Giải thuật mật mã khóa công 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ật một cách an toàn trênChỉ dùng để trao đổi khóa bí 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

Trang 25

III.3 Hệ Trao Đổi Khóa Diffie-Hellman

™ Thiết lập Diffie-Hellman: ập

• 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à ột ê ă ủ

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

α 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 đến q - 1

Bê A

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

ƒ Tính khóa chung Y g AA = αXA mod q q

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

ƒ Tính khóa chung Y αXB mod q

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

Trang 26

III.3 Hệ Trao Đổi Khóa Diffie-Hellman

™ Trao đổi khóa Diffie-Hellman:

Trang 27

III.3 Hệ Trao Đổi Khóa Diffie-Hellman

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

ƒ K = YBXA mod 353 = 248 97 mod 353 = 160 (Alice)

ƒ K = Y K YAAXB mod 353 = 40 mod 353 40 mod 353 160 (Bob) 97 mod 353 = 160 (Bob)

Trang 28

III.3 Hệ Trao Đổi Khóa Diffie-Hellman

™ Hạn chế của khóa công khai: ạ g

• 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

hậ hơ hiề ới á iải th ật đối ứ

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ầ đả bả hữ ời đă ký khó là đá i

ƒ Cần đảm bảo những người đăng ký khóa là đáng tin

Trang 29

Chương IV g Xác Thực và Chữ Ký Số

Trang 30

IV.1 Các Hành Động Tấn Công

Giải phòng nội dung thông điệp: Phát hành nội dung thông điệp tới một

ế người hoặc một tiến trình nào đó mà không sở hữu khóa mật thích hợp.

Phân tích tải: để xác định tần suất, thời gian kết nối, số lượng và chiều

dài của thông điệp giữa 2 bên g ệp g

Giả mạo: chèn tin nhắn vào mạng từ một nguồn gian lận, chẳng hạn như

tạo ra các thông điệp có mục đích xấu bởi người có thẩm quyền.

Th đổi ội d Th đổi á ội d ủ ti hắ ó b ồ

Thay đổi nội dung: Thay đổi các nội dung của tin nhắn có, bao gồm

chèn, xóa, hoán vị, và sửa đổi

Thay đổi thứ tự: là bất ky một sự sửa đổi nào cho một chuỗi các thông

điệp giữa các bên, bao gồm chèn, xóa, và sắp xếp lại.

Thay đổi thời gian: làm trễ hoặc phát lại các tin nhắn

Sự từ chối dịch vụ: từ chối gửi các thông điệp từ nguồn gửi hoặc từ chối

Sự từ chối dịch vụ: từ chối gửi các thông điệp từ nguồn gửi hoặc từ chối

nhận các thông điệp ở đích.

Trang 31

IV.1 Các Vấn Đề Xác Thực

• Các tiêu chuẩn cần xác minh

ƒ Thông báo có nguồn gốc rõ ràng chính xác

ƒ Nội dung thông báo toàn vẹn, không bị thay đổi

ƒ Thông báo được gửi đúng trình tự và thời điểm

• Mục đích chống lại tấn công chủ động (xuyên tạc dữ

liệu )

• Các phương pháp xác thực thông báo

ƒ Mã hoá thông báo(1)Mã hoá thông báo(1)

ƒ Sử dụng mã xác thực thông báo(2)

ƒ Sử dụng hàm băm(3)

Trang 32

ƒ Các gói tin được đánh số thứ tự à mã hóa nên không thể tha

ƒ Các gói tin được đánh số thứ tự và mã hóa nên không thể thay

đổi trình tự và thời điểm nhận được

• Sử dụng mã hóa khóa công khai

ƒ Không chỉ xác thực thông báo mà còn tạo chữ ký số

ƒ Phức tạp và mất thời gian hơn mã hóa đối xứng

Trang 33

từ thông báo đó và khóa bí mật chung

so xem MAC có chính xác không

giải ngược.

Trang 34

IV.1 Các Vấn Đề Xác Thực

™ Xác thực dùng mã Checksum: ự g

• Có thể có nhiều thông báo có cùng chung MAC

ƒ Nhưng nếu biết 1 thông báo và MAC, rất khó tìm rag g ,

một thông báo khác cùng MAC

ƒ Các thông báo có cùng xác suất tạo ra MAC

• Đáp ứng 3 tiêu chuẩn xác thực

Trang 36

IV.1 Các Vấn Đề Xác Thực

™ Tại sao dùng MAC:

• Nhiều trường hợp chỉ cần xác thực, không cần mã hóa tốn thời gian và tài nguyên

Trang 37

IV.1 Các Vấn Đề Xác Thực

™ Xác thực dùng hàm băm:

Một hàm băm nhận đầu vào là một thông báo có độ dài

tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định,

đôi khi được gọi là tóm tắt thông báo hoặc chữ ký số.

• Tạo ra một giá trị băm có kích thước cố định từ thông

báo đầu vào (không dùng khóa)

h = H(M)

• Hàm băm không cần giữ bí mậtg g ậ

• Giá trị băm gắn kèm với thông báo dùng để kiểm tra tính

toàn vẹn của thông báo

• Bất kỳ sự thay đổi M nào dù nhỏ cũng tạo ra một giá trị h

khác

Trang 38

IV.1 Các Vấn Đề Xác Thực

™ Xác thực dùng hàm băm:

Trang 39

IV.1 Các Vấn Đề Xác Thực

™ Xác thực dùng hàm băm:

Trang 40

IV.1 Các Vấn Đề Xác Thực

™ Yêu cầu đối với hàm băm:

• Có thể áp dụng với thông báo M có độ dài bất kỳ

• Tạo ra giá trị băm h có độ dài cố định

• H(M) dễ dàng tính được với bất kỳ M nào

• Từ h rất khó tìm được M sao cho H(M) = h

Trang 41

IV.1 Các Vấn Đề Xác Thực

™ Yêu cầu đối với hàm băm:

• Có thể áp dụng với thông báo M có độ dài bất kỳ

• Tạo ra giá trị băm h có độ dài cố định

• H(M) dễ dàng tính được với bất kỳ M nào

• Từ h rất khó tìm được M sao cho H(M) = h

Trang 42

IV.2 Vấn Đề An Toàn Của Hàm Băm & MAC

™ Kiểu tấn công ngày sinh: g g y

• Nghịch lý ngày sinh

ƒ Trong 23 người, xác suất tìm ra 1 người khác có cùng ngày

i h ới A là 6%

sinh với A là ≈ 6%

ƒ Xác suất 2 trong 23 người có cùng ngày sinh là ≈ 50%

• Cách thức tấn công mã băm m bitg

ƒ Tạo ra 2 m/2 biến thể đồng nghĩa của thông báo hợp lệ

ƒ Tạo ra 2 m/2 biến thể của thông báo giả mạo

ƒ So sánh 2 tập thông báo với nhau tìm ra 1 cặp có cùng mã băm

(xác suất > 0,5 theo nghịch lý ngày sinh)

ƒ Để người gửi ký biến thể hợp lệ, rồi dùng chữ ký gắn vào biến

ể thể giả mạo

Trang 43

IV.2 Vấn Đề An Toàn Của Hàm Băm & MAC

• Kiểu tấn công vét cạn

• Kiểu tấn công vét cạn

ƒ Với hàm băm, nỗ lực phụ thuộc độ dài m của mã băm

¾ Độ phức tạp của tính một chiều và tính chống xung đột yếu là 2 m ; của

í h hố độ h là 2 /2

tính chống xung đột mạnh là 2 m/2

¾ 128 bit có thể phá được, thường dùng 160 bit

ƒ Với MAC, nỗ lực phụ thuộc vào độ dài k của khóa và độ dài n

của MAC

¾ Độ phức tạp là min(2 k , 2 n )

¾ Ít nhất phải là 128 bit

ể ấ

• Kiểu tấn công dùng kỹ thuật

ƒ Hàm băm thường gồm nhiều vòng như mã hóa khối nên có thể

tập trung khai thác điểm yếu hàm vòng

Trang 44

IV.3 Chữ ký số

• Xác thực thông báo không có tác dụng khi bên gửi và bên

nhận muốn gây hại cho nhau

ƒ Bên nhận giả mạo thông báo của bên gửi

ƒ Bên gửi chối là đã gửi thông báo đến bên nhận

• Chữ ký số không những giúp xác thực thông báo mà còn

bảo vệ mỗi bên khỏi bên kia

• Chức năng chữ ký số

ƒ Xác minh tác giả và thời điểm ký thông báo

ƒ Xác thực nội dung thông báo

ƒ Là căn cứ để giải quyết tranh chấp

Trang 45

IV.3 Chữ ký số

™ Yêu cầu đối với chữ ký số: ý

• Phụ thuộc vào thông báo được ký

• Có sử dụng thông tin riêng của người gửi

ƒ Để tránh giả mạo và chối bỏ

• Tương đối dễ tạo ra

• Tương đối dễ nhận biết và kiểm tra

• Tương đối dễ nhận biết và kiểm tra

• Rất khó giả mạo

ƒ Bằng cách tạo thông báo khác có cùng chữ ký số

ƒ Bằng cách tạo chữ ký số theo ý muốn cho thông báo

• Thuận tiện trong việc lưu trữ

Trang 46

IV.3 Chữ ký số

™ Chữ ký số trực tiếp: ý ự p

• Chỉ liên quan đến bên gửi và bên nhận

• Với mật mã khóa công khai

ƒ Dùng khóa riêng ký toàn bộ thông báo hoặc giá trị băm

ƒ Có thể mã hóa sử dụng khóa công khai của bên nhận

ƒ Quan trọng là ký trước mã hóa sau Q ọ g ý

• Chỉ có tác dụng khi khóa riêng của bên gửi được đảm

bảo an toàn

ê i ó hể i ờ ấ khó iê

ƒ Bên gửi có thể giả vờ mất khóa riêng

¾ Cần bổ xung thông tin thời gian và báo mất khóa kịp thời

ƒ Khóa riêng có thể bị mất thật

¾ Kẻ cắp có thể gửi thông báo với thông tin thời gian sai lệch

Trang 47

IV.3 Chữ ký số

™ Chữ ký số gián tiếp:

• Có sự tham gia của một bên trọng tài

ƒ Nhận thông báo có chữ ký số từ bên gửi, kiểm tra tính hợp lệ

của nó

ƒ Bổ xung thông tin thời gian và gửi đến bên nhận

• An toàn phụ thuộc chủ yếu vào bên trọng tài

ƒ Cần được bên gửi và bên nhận tin tưởng

• Có thể cài đặt với mã hóa đối xứng hoặc mã hóa khóa

công khai

• Bên trọng tài có thể được phép nhìn thấy hoặc không nội

dung thông báo

Trang 48

(1) X → A : IDX ║ EKXY[M] ║ EKXA[IDX ║ H(EKXY[M])]

(2) A → Y : E [ID ║ E [M] ║ E [ID ║ H(E [M])]

(2) A → Y : EKAY[IDX ║ EKXY[M] ║ EKXA[IDX ║ H(EKXY[M])]

║ T

(c) Mã hóa khóa công khai, trọng tài không thấy thông báo

(1) X → A : IDX ║ EKRX[IDX ║ EKUY[EKRX[M])]

(2) A → Y : EKRA[IDX ║ EKUY[EKRX[M]] ║ T]

Ký hiệu : ý ệ X = Bên gửi g M = Thông báo g

Y = Bên nhận T = Nhãn thời gian

A = Trọng tài

Ngày đăng: 01/08/2014, 17:21

TỪ KHÓA LIÊN QUAN

w