Mã hóa đối xứng
- Khái niệm
phương pháp mã hóa đối xứng tổng quát được biểu diễn bằng mô hình sau:
Hình 1: Mô hình mã hóa đối xứng
Mô hình trên gồm 5 yếu tố:
Bản rõ P (plaintext)
– Thuật toán mã hóa E (encrypt algorithm)
– Khóa bí mật K (secret key)
– Bản mã C (ciphertext)
– Thuật toán giải mã D (decrypt algorithm)
Trong đó: C = E (P, K) và P = D (C, K)
Thuật toán mã hóa và giải mã sử dụng chung một khóa, thuật toán giải mã là phép toán ngược của thuật toán mã hóa.
Vì vậy mô hình trên được gọi là phương pháp mã hóa đối xứng
Đặc điểm:
Khóa phải được giữ bí mật giữa người gởi và người nhận (ta thấy trên hình thì khóa phải truyền trên môi trường an toàn)
Vậy tại sao chúng ta không truyền bản tin trên môi trường này?
Đó là vì nội dung bản tin thì có thể rất dài, còn khóa thì thường là ngắn.
Một khóa có thể áp dụng để truyền tin nhiều lần
2. Các tính chất bảo mật của mã hóa đối xứng
Trong bài viết “Tổng quan về mật mã” mục 4 là các tính chất của mã hóa, ta đối chiếu các tính chất đó.
2.1 Đảm bảo tính bí mật
Bản mã C được gởi đi trên kênh truyền. Do bản mã C đã được biến đổi so với bản rõ P, cho nên những người thứ ba can thiệp vào kênh truyền để lấy được bản mã C, thì không hiểu được ý nghĩa của bản mã. Đây chính là đặc điểm quan trọng của mã hóa, cho phép đảm bảo tính bảo mật (confidentiality)
2.2 Đảm bảo tính toàn vẹn dữ liệu
Nếu Trudy chặn được bản mã C của Alice và sửa C thành CT, thì xác suất để PT là văn bản có nghĩa cũng rất bé. Và Bob biết được C đã bị sửa đổi. Đối với mã hóa hiện đại cũng vậy, nếu Trudy chọn CT là một dãy bít bất kỳ thì bản rõ PT cũng là một dãy bít lộn xộn, không có cấu trúc ý nghĩa.
2.3. Tính xác thực (authentication) của mã hóa đối xứng.
Mã hóa đối xứng có thể chống lại các hình thức tấn công sửa đổi thông điệp, mạo danh và phát lại thông điệp được hay không? Câu trả lời là có
2.4 Tính không từ chối (non-repudiation) của mã hóa đối xứng.
Mặc dù mã hóa đối xứng thỏa mãn tính bảo mật nhưng mã hóa đối xứng lại không thỏa mãn được tính không từ chối. Vì khóa của mã hóa đối xứng chỉ có hai người biết, nên nếu khóa K bị tiết lộ thì không có cơ sở để quy trách nhiệm cho Alice hay Bob làm lộ khóa.
Có phương pháp nào mã hóa nào mà khóa bí mật chỉ có một người biết mà. Đó là phương pháp mã hóa khóa công khai (được giới thiệu sau)
3. Trao đổi khóa bí mật bằng trung tâm phân phối khóa
Giả sử có N người sử dụng, trao đổi dữ liệu bằng mã hóa đối xứng, mỗi cặp người sử dụng cần có một khóa bí mật riêng, như vậy cần có N(N-1)/2 khóa bí mật. Do vậy sẽ dẫn đến cho người dùng khó khăn vì có quá nhiều khóa phải nhớ. Do vậy phương pháp trao đổi khóa bằng trung tâm phân phối khóa (Key Distribution Center – KDC) giúp đơn giản hóa vấn đề này. Đây chính là mô hình mà Domain Controller trên hệ điều hành windows triển khai
HÌnh 2: N(N-1)/2 khóa nếu có N người dùng trao đổi dữ liệu
Hình 3: Mô hình trao đổi khóa tập trung
Phương pháp trao đổi khóa bằng trung tâm phân phối khóa (Key Distribution Center – KDC) giúp đơn giản hóa vấn đề này. Trong mô hình sử dụng KDC, mỗi người sử dụng chỉ cần có một khóa bí mật với KDC. Còn khóa dùng để trao đổi dữ liệu giữa các người sử dụng sẽ do KDC cung cấp.
Giả sử Alice có khóa bí mật KA với KDC và Bob có khóa bí mật KB với KDC. Bây giờ Alice muốn trao đổi dữ liệu với Bob. Quá trình thiết lập khóa chung KAB giữa Alice và Bob gồm các bước:
1) Alice gửi yêu cầu muốn trao đổi dữ liệu với Bob cho KDC.
2) KDC tạo một khóa bí mật KAB và mã hóa thành hai bản mã. Một bản mã được mã hóa bằng khóa bí mật của Alice E(KAB, KA) và một bản mã được mã hóa bằng khóa bí mật của Bob E(KAB, KB).
3) Alice giải mã E(KAB, KA) để có KAB
4) Alice gửi E(KAB, KB) cho Bob, Bob giải mã để có được KAB
5) Alice và Bob trao đổi dữ liệu qua khóa bí mật KAB
Như vậy, khóa KAB chỉ có KDC, Alice và Bob biết. Trách nhiệm của KDC là giữ bí mật khóa này. Alice và Bob dùng khóa KAB để mã hóa dữ liệu. Khi kết thúc quá trình truyền dữ liệu, KAB được hủy bỏ. Lần sau nếu Alice lại truyền số liệu với Bob thì KDC sẽ cung cấp khóa KAB khác
Phần sau giới thiệu mã hóa bất đối xứng (mã hóa công khai)
Lượt xem (9273)