MẬT MÃ ELGAMAL

Một phần của tài liệu Giáo trình bảo mật thông tin (Trang 95 - 97)

Trong quy trình mật mã ElGamal (Taher Elgamal, 1984) một bản nguồn cĩ thể mã hố thành nhiều bản mã khác nhau:

TẠO KHỐ:

Ngƣời sử dụng tạo cặp khĩa cơng khai/cá nhân:

Chọn số nguyên tố lớn p, và cơ số  là phần tử sinh (primitive root) theo modulo p (tức là với k = [1..p-1], k

mod p sẽ cho các giá trị [1..p-1]).

Các giá trị này sẽ đƣợc cơng bố cơng khai.

Ngƣời dùng A chọn ngẫu nhiên số nguyên XA với 0 < XA < p-1

Tính: YA = mod p

Khố cá nhân và khố cơng khai của A là XA và {p, , YA}

MÃ HỐ:

Giả sử B cĩ khĩa cơng khai của A và B cĩ thể mã hố thơng điệp để gửi cho A nhƣ sau:

- Giả sử thơng điệp M là một số nguyên: 0  M p -1

- B chọn số nguyên ngẫu nhiên k với 1  k p -1

- B tính khố một lần: K = (YA )k mod p

- Sau đĩ B tạo bản mã gồm cặp hai giá trị {C1, C2} với C1 = k

mod p; C2 = (K  M) mod p

Vậy B đã mã hĩa bản nguồn M thành bản mã {C1, C2} và gửi bản mã cho A

Số k chỉ dùng đúng một lần để tính {C1, C2}.

GIẢI MÃ:

A giải mã {C1, C2} bằng khĩa cá nhân của mình XA nhƣ sau:

- A tính: K = mod p

( mod p = mod p = mod p = K )

- A khơi phục lại bản nguồn M = (C2 K-1) mod p

An tồn của thuật tốn ElGamal phụ thuộc vào độ khĩ của bài tốn tính logarit rời rạc trên các số lớn. Ví dụ nhƣ tính từ YA trong cơng thức:

YA = mod p phải dùng phép tính logarit rời rạc. Hoặc để tính K trong

cơng thức K = (YA )k mod p ngƣời thám mã phải tính đƣợc k từ cơng thức C1

= k

Chọn số nguyên tố: p = 97, và giá trị sinh của nĩ: = 5,

- A chọn khố cá nhân XA = 58

- A tính: YA = mod p = 558 mod 97 = 44

Khĩa cơng khai của A là {p, , YA} = {97, 5, 44} đƣợc gửi cho B B muốn gửi thơng điệp M = 3 cho A

- B chọn k = 36, tính K = (YA )k mod p = 4436 mod 97 = 75

- B tính C1= k

mod p = 536 mod 97 = 50

C2 = (K  M) mod p = (75  3) mod 97= 31 Nhận đƣợc thơng điệp: {C1, C2} = (50, 31), A giải mã:

K = mod p = 5058 mod 97 = 75

M = (C2 K-1) mod p = (31  K-1) mod 97 = (31  22) mod 97 = 3

Một phần của tài liệu Giáo trình bảo mật thông tin (Trang 95 - 97)