Chƣơng 3 : PHÂN TÍCH ĐÁNH GIÁ MỘT SỐ HỆ MÃ HOÁ
3.2. HỆ MÃ HOÁ ELGAMAL
3.2.1. Hệ mã ELGAMAL đảm bảo an toàn ngữ nghĩa
Sơ đồ hệ mã Elgamal:
Tập bản rõ P = Z*p , tập bản mã C = Z*p Z*p , p là số nguyên tố.
Khóa công khai là bộ (p, , ), khóa bí mật là a, trong đó a
mod p, Z*p là phần tử sinh của Z*p .
Thuật toán lập mã:
Chọn r ngẫu nhiên thuộc Zp-1 c = E(m, r) = (c1 = r
, c2 = m.r
= m. a.r
) Thuật toán giải mã:
m = (c1a)-1 . c2
Hệ mã Elgamal có tính chất xác suất (do việc chọn r ngẫu nhiên thuộc Zp-1), tức là một bản rõ có thể có nhiều bản mã tùy thuộc vào việc ta chọn số ngẫu nhiên r.
Do p là số nguyên tố lớn, nên việc chọn ngẫu nhiên r bằng nhau giữa hai lần lập mã của cùng một bản rõ là xảy ra với xác xuất không đáng kể, vì vậy việc biết bản mã cũng không mang lại chút thông tin gì về bản rõ, nếu như giả thiết toán học của hệ mã là đúng đắn.
Độ khó của hệ mã dựa trên độ khó của bài toán Logarit rời rạc, hay giả thuyết Diffe-Hellman, cho đến nay cũng như bài toán RSA, vẫn chưa có lời giải với thời gian chấp nhận được. Theo định nghĩa, hệ Elgamal đảm bảo an toàn ngữ nghĩa.
3.2.2. Hệ mã ELGAMAL an toàn trƣớc tấn công KPA, COA, CPA
ELGAMAL là hệ mã hóa công khai, nên hiển nhiên mô hình tấn công CPA (Chosen plaintext attack) là luôn luôn thỏa mãn, và thám mã có thể mã hóa bất kỳ bản rõ nào mà họ chọn.
Việc giải mã để tìm bản rõ tương đương với việc giải bài toán Logarit rời rạc, mà ta đã biết cho đến nay vẫn chưa có phương pháp để giải bài toán Logarit rời rạc trong thời gian chấp nhận được.
Đến nay người ta vẫn tin rằng, hệ mã ELGAMAL là an toàn trong mô hình tấn công CPA, và do vậy kéo theo là an toàn trong các mô hình tấn công yếu hơn như COA (Ciphertext only attack) và KPA (Known plaintext attack).
3.2.3. Hệ mã ELGAMAL không đạt an toàn trƣớc tấn công CCA
Nhận xét:
Xét hai bản rõ m1 và m2 , theo hệ mã Elgamal ta có E(m1) = (r1
, m1 r1
), E(m2) = (r2
, m2 r2). Với r1 , r2 là hai số ngẫu nhiên. E(m1) E(m2) = (r1 , m1 r1 ) (r2 , m2 r2 ) = (r1 + r2 , m1m2 r1 + r2 ) = (r , m1m2r ) = E(m1m2), với r = r1 + r2.
E(m1m2) chính là một sự mã hóa của bản rõ m1m2 dưới số ngẫu nhiên r = r1 + r2 .
Nói cách khác giải mã bản mã E(m1) E(m2) ta sẽ thu được bản rõ là m1m2 .
Nếu thám mã nhận bản mã c = (c1 , c2) trong mô hình tấn công CCA, nó có thể chọn một bản rõ m‟ và bằng cách gửi bản mã c E(m‟) = E(m) E(m‟) tới máy tư vấn giải mã (trong mô hình tấn công CCA thám mã hoàn toàn có quyền này, vẫn thỏa điều kiện không truy vấn máy tư vấn giải mã trực tiếp trên bản mã c). Máy tư vấn giải mã sẽ trả kết quả về bản rõ mm‟. Rõ ràng thám mã có thể thu về bản rõ m cần tìm, tức là hệ mã đã bị phá.