Thuật toán mật mã ElGamal cổ điển

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số thuật toán hệ mật mã khoá công khai elgamal và ứng dụng (Trang 25 - 26)

Sơ đồ (ElGamal đề xuất năm 1985)

a/.Sinh khóa (bí mật, công khai) (a, h) :

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là “khó” giải. Chọn phần tử nguyên thuỷ gZp* .

Đặt P= Z p*, C = Z p*  Z p*.

Chọn khóa bí mật là aZp* . Tính khóa công khai hg a mod p. Định nghĩa tập khóa:  = {(p,g,a,h): hg a mod p}.

Các giá trị p, g, h đƣợc công khai, phải giữ bí mật a.

Với Bản rõ x P Bản mã y C, với khóa k  định nghĩa:

b/.Lập mã:

Chọn ngẫu nhiên bí mật rZp-1, Bản mã là y = ek(x, r) = (y1, y2)

Trong đó y1 = gr (mod p) y2 = x * hr (mod p) c/.Giải mã: dk (y1, y2) = y2 (y1 a) -1 ( mod p) = x.

Ví dụ

* Bản rõ x = 1985. Chọn p = 2179, g = 2, a = 365. Tính khóa công khai h = 2365 mod 2179 = 2175.

* Lập mã: Chọn ngẫu nhiên r = 503. Bản mã là y = (932, 91), trong đó

y1 = 2503 mod 2179 = 932

y2 = 1985 * 2175 503 mod 2179 = 91

Độ an toàn

a/. Hệ mã hóa ElGamal là không tất định, tức là với một bản rõ x và 1 khóa bí mật a, thì có thể có nhiều hơn một bản mã y, vì trong công thức lập mã còn có thành phần ngẫu nhiên r.

b/. Độ an toàn của hệ mật ElGamal dựa vào khả năng giải bài toán logarit rời rạc trong Zp. Theo giả thiết trong sơ đồ thì bài toán này phải là “khó” giải.

Cụ thể nhƣ sau:

Theo công thức lập mã: y = ek(x, r) = (y1, y2), trong đó:

y1 = gr mod py2 = x* hr mod p

Nhƣ vậy muốn xác định bản rõ x từ công thức y2, thám mã phải biết đƣợc r. Giá trị này có thể tính đƣợc từ công thức y1, nhƣng lại gặp bài toán logarit rời rạc.

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số thuật toán hệ mật mã khoá công khai elgamal và ứng dụng (Trang 25 - 26)

Tải bản đầy đủ (PDF)

(67 trang)