C i= LSi(i-1) Di = LSi (Di-1)
5.4Hệ 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*
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 = xβk mod p với y1 ,y2 ∈ Zp* ta xác định:
dk(y1 ,y2 ) = y2 (y1a )-1 mod p
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.