Hệ mật Elgamal

Một phần của tài liệu giáo trình an toàn thông tin - chương 1 an toàn dữ liệu trên mạng máy tính (Trang 45 - 47)

C i= LSi(i-1) Di = LSi(Di-1)

5.4Hệ mật Elgamal

CHƯƠNG 5 MÃ HÓA KHÓA CÔNG KHA

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* 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

Một phần của tài liệu giáo trình an toàn thông tin - chương 1 an toàn dữ liệu trên mạng máy tính (Trang 45 - 47)