Professional Documents
Culture Documents
IIS Chapter05
IIS Chapter05
NỘI DUNG
• Mật mã học (cryptography): là ngành khoa học nghiên cứu các phương pháp toán
5.1. Khái niệm cơ bản về hệ thống mật mã học
học để mã hóa bảo mật thông tin. Bao gồm mã hóa và giải mã.
5.2. Hệ thống mã hóa đối xứng • Mã hóa (Encryption): là quá trình chuyển bản rõ thành mã hóa, nhằm che giấu,
bảo mật thông tin trong khi lưu trữ và trong quá trình truyền thông tin.
5.3. Hệ thống mã hóa bất đối xứng
• Giải mã (Decryption): là quá trình đưa bản mã về lại bản rõ ban đầu
24/03/2022
5.1. KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG MẬT MÃ HỌC 5.1. KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG MẬT MÃ HỌC
5.1.1. Một số khái niệm 5.1.1. Một số khái niệm
• Bản rõ (Plaintext): là văn bản ban đầu được gọi là bản tin gốc, ở dạng rõ, có nghĩa
có thể đọc hiểu và cần bảo vệ.
• Bản mã (Ciphertext): là văn bản sau khi mã hóa, ở dạng mờ, không thể đọc hiểu
được.
5.1. KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG MẬT MÃ HỌC 5.1. KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG MẬT MÃ HỌC
5.1.2. Chức năng cơ bản của hệ thống mã hóa 5.1.3. Hai hệ thống mã hóa cơ bản
• Bảo mật: đảm bảo tính bảo mật cho dữ liệu và thông tin mà hệ thống truyền tải hoặc • Hệ thống mã hóa đối xứng (Symmetric Cryptosystem)
lưu trữ và chỉ những người liên quan mới biết được nội dung. • Hệ thống mã hóa một khóa
• Toàn vẹn: đảm bảo dữ liệu không bị mất mát hoặc chỉnh sửa trong quá trình gửi và • Hệ thống mã hóa khóa bí mật
nhận.
• Hệ thống mã hóa thông thường
• Xác thực: đảm bảo xác thực danh tính của chủ thể của dữ liệu • Hệ thống mã hóa bất đối xứng (Asymmetric Cryptosystem)
• Tính không thể chối từ: đảm bảo người thực hiện thao tác trên dữ liệu không thể • Hệ thống mã hóa khóa công khai
chối bỏ hành vi đã thực hiện
• Hệ thống mã hóa hai khóa
24/03/2022
5.1. KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG MẬT MÃ HỌC 5.1. KHÁI NIỆM CƠ BẢN VỀ HỆ THỐNG MẬT MÃ HỌC
5.1.3. Hai hệ thống mã hóa cơ bản 5.1.4. Kỹ thuật chuyển bản rõ thành bản mã
• Phép thế (substitution): dùng từng ký tự (hoặc từng nhóm ký tự) trong bản rõ được
thay thế bằng một ký tự (hoặc một nhóm ký tự) khác để tạo ra bản mã. Bên nhận chỉ
cần đảo ngược trình tự thay thế trên bản mã để có được bản rõ ban đầu.
• Hoán vị (transposition): các ký tự trong bản rõ được giữ nguyên, chúng chỉ được
sắp xếp lại vị trí để tạo ra bản mã. Yêu cầu cơ bản là không có thông tin nào bị mất
(nghĩa là tất cả các thao tác có thể đảo ngược).
• Sử dụng một khóa bí mật chia sẻ (sharedsecret-key) cho cả hai quá trình mã hóa
5.1. Khái niệm cơ bản về hệ thống mật mã học và giải mã
• Chỉ ai có khóa Ks thì mới thể giải C (Bản mật ciphertext-C) thành M (Bản rõ
5.2. Hệ thống mã hóa đối xứng plaintext-M)
5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG 5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG
5.2.2. Các thành phần trong hệ thống mã hóa 5.2.3. Khóa bí mật chia sẻ (sharedsecret-key) - Ks
• Bản rõ (M): bản tin được sinh ra bởi bên gửi • Khóa chỉ có người gửi và người nhận chia sẻ lẫn nhau và bí mật với tất cả những người
khác
• Bản mã (C): bản tin che giấu thông tin của bản rõ, được gửi tới bên nhận qua một • Khóa Ks là giá trị ngẫu nhiên được tạo ra từ:
kênh truyền thông thường (không bảo mật) Bên thứ 3 được tin cậy tạo và phân phối tới bên gửi và bên nhận
• Khóa (Ks): Khóa bí mật được chia sẻ giữa các bên trao đổi thông tin Hoặc, bên gửi tạo ra và chuyển cho bên nhận
• Cần một kênh truyền bảo mật để chia sẻ khóa bí mật chia sẻ giữa người gửi và người nhận
• Mã hóa (encrypt-E): C = E(KS, M)
tốn chi phí cao
• Giải mã (decrypt): M = D(KS, C) = D(KS, E(KS, M)) • Để trao đổi an toàn thì mỗi người cần có bao nhiêu khóa bí mật chia sẻ khi trao đổi thông
điệp với n người khác nhau? Cần n khóa khác nhau
5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG 5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG
5.2.3. Khóa bí mật chia sẻ (sharedsecret-key) - Ks Thảo luận
5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG 5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG
5.2.4. Các thuật toán mã hóa đối xứng thông dụng 5.2.4.1. Mã hóa cổ điển
• Mã hoá cổ điển là cách đơn giản nhất, tồn lại lâu nhất trên thế giới và không cần
Mã cổ khóa bảo mật, chỉ cần người gửi và người nhận cùng biết về thuật toán này là
DES
điển được.
• Ví dụ: nếu chúng ta dùng thuật toán đổi kí tự trong câu văn thành kí tự liền kề trong
bảng chữ cái thì chữ “Tinh tế” sẽ biến thành “Ujoi uf”. Người nhận khi nhận được
Triple
AES chữ “Ujoi uf” thì chỉ việc dịch ngược lại là xong.
DES
5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG 5.2. HỆ THỐNG MÃ HÓA ĐỐI XỨNG
5.2.4.2. Mã DES 5.2.4.3. Mã Triple DES
• Data Encryption Standard (DES): Phát hành 1977, chuẩn hóa 1979 Triple DES được khuyến khích sử dụng thay cho DES (1999)
• Mỗi thông điệp được chia thành những khối (block) 64 bits
• Triple DES: thực hiện giải thuật DES ba lần.
• Kích thước khóa là 56 bits
• Mã hóa: C=E(E(E(M, K1),K2),K3)
• 1998, tổ chức Electronic Frontier Foundation (EFF) xây dựng được một thiết bị phá mã DES gồm
nhiều máy tính chạy song song, trị giá khoảng 250.000$. Thời gian thử khóa là 3 ngày. • Chiều dài khóa là 168 bít sẽ gây phức tạp hơn nhiều cho việc phá mã bằng
phương pháp tấn công gặp-nhau-ở-giữa.
• Hiện nay mã DES vẫn còn được sử dụng trong thương mại, tuy nhiên người ta đã bắt đầu áp
dụng những phương pháp mã hóa khác có chiều dài khóa lớn hơn (128 bít hay 256 bít) như • Trong thực tế người ta chỉ dùng Triple DES với hai khóa K1, K2 mà vẫn đảm bảo
TripleDES hoặc AES.
độ an toàn cần thiết.
24/03/2022
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.1. Các vấn đề gặp phải của mã hóa đối xứng 5.3.1. Tổng quan
input : văn bản thuần tuý Văn bản mật mã output : văn bản thuần tuý
• Quản lý và phân phối khóa phức tạp
“An intro to PKI “Py75c%bn&*)9|fDe “An intro to PKI
and few deploy ^bDzjF@g5=&nmdFg and few deploy
• Mỗi cặp người dùng phải có khóa riêng hints” egMs” hints”
RSA RSA
• N người dùng cần N * (N-1)/2 khóa, việc quản lý khóa trở nên phức tạp khi số lượng
Mã hoá Giải mã
người dùng tăng
• Không phù hợp cho chữ ký số, do không đạt được: tính xác thực và tính chống
khoái thác
Hai khoá khác nhau
24/03/2022
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.1. Tổng quan 5.3.1. Tổng quan
• Mỗi người dùng có 1 khóa riêng phần (Private key) và 1 khóa công khai (Public • Mật mã hóa khóa công khai là một dạng mật mã cho phép người sử dụng
Key)
trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí mật
• Khóa riêng phần bí mật
trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có
• Khóa công khai có thể chia sẻ quan hệ toán học với nhau là khóa công khai và khóa khóa bí mật.
• Quản lý khóa
• Mã hóa khóa bất đối xứng thường đồng nghĩa với mật mã hóa khóa công
• N người dùng cần N khóa công khai được xác thực
khai, tuy có những thuật toán mật mã khóa bất đối xứng mà cả hai khóa (cho
• Hạ tầng khóa công khai PKI
mã hóa và giải mã) đều cần phải giữ bí mật.
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.1. Tổng quan 5.3.2. Ý tưởng
• Độ phức tạp • RSA • Alice muốn gởi dữ liệu cho Bob thì dùng
khóa K1 (khóa công khai) để mã hóa. Bob
• Số học đồng dư (Modular Arithmetic) • Đường cong êlip (Elliptic Curve)
dùng K2 (khóa bí mật) để giải mã.
• Diffie-Hellman
• Người nhận (Bob) giữ bí mật khóa K2, còn
• ElGamal khóa K1 thì công khai cho tất cả mọi người
biết.
• DSS
24/03/2022
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.2. Ý tưởng 5.3.2. Ý tưởng
Ý tưởng 1 Ý tưởng 1
• Tổ hợp khoá bí mật của mình với khoá công khai của
• Dùng khoá bí mật để ký một thông
người khác tạo ra khoá dùng chung chỉ hai người biết.
báo;
• Trudy (người thứ 3) cũng biết khóa K1, tuy nhiên
• Dùng khoá công khai để xác minh chữ
không thể dùng chính K1 để giải mã mà phải dùng K2.
ký. Do đó chỉ có duy nhất Bob mới có thể giải mã được
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.2. Ý tưởng 5.3.3. Đặc điểm
Ý tưởng 2
• Mã bất đối xứng có thể dùng để bảo mật (Confidentiality), chứng thực
• Người gửi (Alice) giữ bí mật khóa K1, và công khai khóa K2. Alice muốn gởi dữ liệu cho Bob thì dùng
khóa K1 để mã hóa. Bob dùng K2 để giải mã.
(Authentication), hoặc cả hai.
• Người thứ 3 -Trudy cũng biết khóa K2 nên Trudy cũng có thể giải mã được. Do đó phương án này
không đảm bảo tính bảo mật.
• Tuy nhiên cách này đảm bảo tính chứng thực và tính không từ chối. • Hiện nay, mã hóa khóa công khai được ứng dụng rộng rãi trong nhiều lĩnh vực,
Vì chỉ có Alice biết được khóa K1, và gửi bản mã, Bob dùng K2 để giải mã bản tin
trong đó bao gồm: trao đổi, phân phối khóa, chữ ký số, bảo mật dữ liệu.
Nếu Trudy cũng có khóa K1 để gửi bản mã thì Alice sẽ bị quy trách nhiệm làm lộ khóa K1.
• Một số thuật toán mã hóa đối xứng: Diffie-Hellman, El-Gamal, RSA, ECC …
Mã bất đối xứng kết hợp 2 ý tưởng trên
24/03/2022
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
Thảo luận 5.3.3. Đặc điểm
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.3. Đặc điểm 5.3.4. So sánh hệ thống mã hóa đối xứng và bất đối xứng
Xác thực dữ liệu Hệ thống mã hóa Đối xứng Bất đối xứng
• Giải mã dùng công khai KU: M = D(C, KU) = D(E(M, KR) , KU) Khóa được chia sẻ giữa người 1 khóa riêng phần được bí mật;
Bảo vệ khóa gửi và người nhận; bí mật với tất 1 khóa công khai được công khai cho tất cả
cả người khác mọi người
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.5. Giải thuật mật mã hóa khóa công khai 5.3.5. Giải thuật mật mã hóa khóa công khai
1. Đầu vào của giải thuật: Bản rõ (thông điệp có thể đọc)
3. Khóa công khai và bí mật: một cặp khóa được chọn sao cho 1 khóa dùng để mã
hóa và 1 khóa dùng để giải mã.
4. Bản mã: thông điệp đầu ra ở dạng không đọc được, phụ thuộc vào bản rõ và
khóa. Nghĩa là với cùng một thông điệp, 2 khóa khác nhau sinh ra 2 bảng mã khác
nhau
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.5. Giải thuật mật mã hóa khóa công khai 5.3.5. Giải thuật mật mã hóa khóa công khai
Đặc điểm
• Không thể tính toán để tìm khóa giải mã (decryption key) khi chỉ biết
thuật toán và khóa mã hóa (encryption key)
• Một trong hai khóa có thể dùng cho việc mã hóa (encryption), Khóa
còn lại dùng cho giải mã (đối với thuật toán RSA)
24/03/2022
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.6. Ứng dụng mã hóa công khai 5.3.6. Ứng dụng mã hóa công khai
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.6. Ứng dụng mã hóa công khai 5.3.6. Ứng dụng mã hóa công khai
Trao đổi khóa (Key exchange): Một vài thuật toán thì phù hợp cho tất cả các ứng dụng, loại khác thì chỉ dành riêng
• Hai bên hợp tác để thực hiện và trao đổi khóa phiên cho một loại ứng dụng
• Khóa phiên (session key): Thuật toán Mã hóa/Giải mã Chữ ký số Trao đổi khóa
Được phát sinh bằng một thuật toán phát sinh khóa phiên
RSA Yes Yes Yes
Chỉ có tác dụng xác thực tại một phiên làm việc hiện tại, hết phiên làm việc thì khóa đó sẽ
không còn có tác dụng Elliptic Curve Yes Yes Yes
Khóa phiên này có thể đóng vai trò như là khóa bí mật chia sẻ trong hệ thống mã hóa khóa bí
Diffie-Hellman No No Yes
mật, dùng khóa phiên sẽ hạn chế được tấn công nghe lén khóa
• Thuật toán tạo khóa phiên: được xây dựng dựa trên hệ thống mã hóa bất đối xứng DSS No Yes No
24/03/2022
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.7. Phá mã khóa công khai 5.3.8. An ninh của mã hóa khóa công khai
Tấn công vét cạn (Brute Force attack) • An toán của hệ mã hóa khóa công khai dựa trên độ khó của việc giải bài
• Luôn luôn là có thể về mặt lý thuyết toán ngược.
• Sử dụng khóa đủ lớn (>512 bits) • Tính bền của sự an toàn này còn phụ thuộc vào phương pháp tấn công
• Khóa lớn ảnh hưởng đến tốc độ của việc mã hóa và giải mã của các thám mã
• Chưa được chứng minh tính khả thi của phương pháp này
5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG 5.3. HỆ THỐNG MÃ HÓA BẤT ĐỐI XỨNG
5.3.9. Ưu điểm mã hóa khóa công khai 5.3.10. Hạn chế của mã khóa công khai
1. Khái niệm mã hóa khóa công khai, cơ chế, các thành phần của hệ mã hóa công khai
2. Các đặc điểm và yêu cầu của hệ mã hóa khóa công khai
3. Nêu nguyên tắc của mã hóa khóa công khai? Tại sao trong mã hóa khóa công khai không
cần dùng đến kênh an toàn để truyền khóa?
4. Trong mã hóa khóa công khai, khóa riêng và khóa công khai có phải là 2 khóa tùy ý,
không liên quan? Nếu có liên quan, tại sao không thể tính khóa riêng từ khóa công khai?
6. Ngoài vấn đề truyền khóa, mã hóa khóa công khai còn ưu điểm hơn mã hóa đối xứng ở
điểm nào? Nêu nhược điểm của mã hóa khóa công khai.
7. Hãy nêu các vấn đề về RSA
8. Thế nào là độ an toàn của một thuật toán mã hóa?