C i= LSi(i-1) Di = LSi(Di-1)
CHƯƠNG 5 MÃ HÓA KHÓA CÔNG KHA
5.4 Hệ mật Elgamal
Elgamal đã phát triển một hệ mật khóa công khai dựa trên bài toán logarith rời rạc. Hệ thống này được trình bày dưới đây
Cho p là số nguyên tố sao cho bài toán logarith rời rạc trong Zp là khó giải. Cho Zp* là phần tử nguyên thủy. Giả sử P = Zp* C = Zp* Zp* . Ta định nghĩa:
K= {(p, ,a,): a (mod p)}
Các giá trị p, , được công khai, còn a giữ kín Với K = (p, ,a,) và một số ngẫu nhiên bí mật k Zp-1 , ta xác định: ek (x,k) = (y1 ,y2 )
trong đó y1 = k mod p y2 = xk mod p
với y1 ,y2 Zp* ta xác định: dk(y1 ,y2 ) = y2 (y1a )-1 mod p
Hệ mật khóa công khai Elgamal trong Zp*
Trong hệ mật này, bản mã phụ thuộc vào cả bản rõ x lẫn giá trị ngẫu nhiên k. Bởi vậy sẽ có nhiều bản mã được mã từ cùng một bản rõ. Sau đây sẽ mô tả sơ lược cách làm việc của hệ mật Elgamal. Bản rõ x được “che dấu” bằng cách nhân nó với βk để tạo ra y2 . Giá trị αk cũng được gửi đi như một phần của bản mã. Nếu một người biết số mũ bí mật a có thể tính được βk từ αk . Sau đó anh ta sẽ “tháo mặt nạ” bằng cách chia y2 cho βk
để thu được x.
Ví dụ: Cho p = 2579, α = 2, a = 765. Khi đó:
β = 2765 mod 2579 = 949
Bây giờ ta giả sử Alice muốn gửi thông báo x = 1299 tới Bob. Giả sử số ngẫu nhiên k mà cô chọn là k = 853.
Sau đó cô ta tính
y1 = 2853 mod 2579 = 435
y2 = 1299 × 949853 mod 2579 = 2396 Sau đó Bob thu được bản mã y = (435,2396), anh ta tính
x = 2396 × (435765)-1 mod 2579 =1299 Đó chính là bản rõ mà Alice đã mã hóa.
True nếu y=sig(x) False nếu y≠sig(x) verk =
Trường Đại học Hải Phòng Bài giảng: An toàn thông tin