You are on page 1of 4

Hệ mã ElGamal

1. Tổng quan

Hệ mật ElGamal là một hệ mật khóa bất đối xứng cho khóa công khai, dựa trên
trao đổi khóa Diffie – Hellan. Thuật toán do Taher Elgamal tạo ra vào năm 1985
lấy mô hình bài toán logarit rời rạc.

Thuật toán ElGamal có hai khóa: Public key (khóa công khai) và Private key (khóa
bí mật). Public key sẽ được công bố và mọi người đều có thể mã hóa bản tin nhưng
chỉ có Pravate key mới có thể giải mã.

2. Sơ đồ mã hóa và giải mã

3. Mô tả

Cách làm việc của giải thuật này khi áp dụng thuật toán là khi mã hóa một bản tin
bất kì, Alice tạo ra một số ngẫu nhiên kết hợp với bản rõ để tạo ra bản mã. Sau đó
Alice truyền bản mã cho Bob, để giải mã Bob cần có khóa bí mật để giải mã bản
tin.

Giả sử Bob nhận được bản tin được mã hóa như hình:
4. Mã hóa và giải mã
 Tạo khóa:

Để Alice và Bob có thể trao đổi thông tin với nhau bằng thuật toán mã Elgamal thì
cần phải tạo khóa trước tiên:

 Chọn số nguyên tố 𝑝 đủ lớn sao cho bài toán logarit trong 𝑍𝑝 là khó giải.
 Chọn một số 𝑑 thuộc nhóm 𝐺 = < 𝑍𝑝 ∗ ,×> sao cho 1 ≤ 𝑑 ≤ 𝑝 − 2 Chọn 𝑒1 là
phần tử nguyên tử của nhóm 𝐺 = < 𝑍𝑝 ∗ ,×>
d
 Tính e 2=e 1 mod p
 Khóa công khai sẽ là (e 1 ,e 2 , p). Khóa bí mật sẽ là 𝑑.
 Mã hóa:

Giả sử Alice gửi một bản tin M cho Bob, khi đó Alice sẽ thực hiện các bước:

 Chọn một số nguyên ngẫu nhiên 𝑟 nằm trong nhóm 𝐺 = < 𝑍𝑝 ∗ ,×> Khí đó
tính được bản mật C 1=e 1r mod p
r
 Sử dụng khóa công khai để tính bản mật C 2=e 2 × M mod p
 Alice sẽ có bản mã gồm (C 1 , C 2) để gửi đến cho Bob.
 Giải mã:
 Bob nhận được bản mã (C 1 , C 2) và có khóa bị mật 𝑑 khi đó Bob sẽ tìm được
bản rõ theo công thức: M =C 2 ×(C 1¿ ¿ d)−1 mod p ¿

Xây dưng được hệ mã ElGamal bộ khóa: K=(e 1 ,e 2 , p , d ) với:

 Thành phần khóa công khai: K U =(e 1 ,e 2 , p)


 Thành phần khóa bí mật: K R=( p , d)

Ví dụ: Cho hệ ElGamal có p=2579, e 1=2 , d=765 , r=853. Bản rõ M =1299 . Tìm khóa
của mã trên.
 Mã hóa:

Trước hết tính e 2=e 1d mod p=e2=2765 mod 2579=949

Để mã hóa thông điệp M =1299 ta tính theo r =853:


r 853
C 1=e 1 mod p=2 mod 2579=435

C 2=e 2r × M mod p=949853 × 1299 mod 2579=2396

Bản mã gửi đi là (435,2396).

 Giải mã:

Với khóa bí mật d=765:


−1 p−1−a 2579−1−765
(C 1¿ ¿ d) mod p=C 1 mod 2579=435 mod 2579=1980 ¿

M =C 2 ×(C 1¿ ¿ d)−1 mod p=2396 × 1980 mod 2579=1299 ¿

 Xây dưng được hệ mã ElGamal bộ khóa: K= ( e 1 , e 2 , p , d )=(2,949,2579,765) với:


Thành phần khóa công khai: K U = ( e1 , e 2 , p )=(2,949,2579)
Thành phần khóa bí mật: K R=( p , d )=(765,2579)
Mã hóa M =1299 với ( C 1 , C 2 )=(435,2396)
5. Tính bảo mật của hệ mật mã Elgamal

Hệ mật ElGamal sẽ bị phá vỡ nếu khóa bị mật 𝑑 hoặc 𝑟 có thể tính được trong bài
toán logarit rời rạc. Tuy nhiên bài toán logarit rời rạc chưa có phương pháp tính
hiệu quả nên độ an toàn của hệ mật là rất lớn, với một số 𝑝 đủ lớn thì thuật toán
ElGamal không có phương pháp thám mã hiệu quả.

6. Ưu điểm và nhược điểm của hệ mã Elgamal


 Ưu điểm:
 Do được xây dựng từ bài toán logarit rời rạc, độ phức tạp của bài toán
logarithm lớn nên có độ an toàn cao.
 Bản mã phụ thuộc vào bản rõ và giá trị ngẫu nhiên nên từ một bản rõ ta có
thể có nhiều bản mã khác nhau.
 Nhược điểm:
 Tốc độ chậm (do phải xử lý số nguyên lớn).
 Dung lượng bộ nhớ dành để lưu trữ các bản mã lớn gấp đôi so với các hệ mã
khác.
 Do việc sử dụng các số nguyên tố nên việc sinh khóa và quản lý khóa cũng
khó khăn hơn các hệ mã khối

You might also like