Mô tả các quá trình tạo khoá, mã hoá, giải mã 3 9-

Một phần của tài liệu Hệ mật mã khóa công khai ứng dụng bảo mật thông tin trong thương mại điện tử (Trang 39 - 40)

Tạo khoá:

Để sử dụng hệ mật mã khoá công khai ElGamal, đầu tiên mỗi người dùng trong nhóm phải tạo riêng cho mình một cặp khoá bao gồm khóa công khai và khoá riêng. Thực hiện theo các bước sau đây:

 Tạo số nguyên tố p lớn sao cho bài toán logarithm rời rạc trong Zp là khó giải nổi và số p – 1 có ít nhất một thừa số nguyên tố q lớn.

 Chọn số g  Zp* là phần tử chính (primitive element). Các giá trị p và g thường được sử dụng chọn ngẫu nhiên số x sao cho 0 < x < p –2, và định nghĩa: K = {(p, g, x, y): y = gx

(mod p)}.

 Công bố bộ ba số nguyên (p, g, y) làm khoá công khai, còn số nguyên x được giữ bí mật làm khoá riêng.

Mã hoá:

Hệ mật mã ElGamal thực hiện mã hoá theo kiểu khối, nghĩa là thông điệp ban đầu được chia ra thành nhiều khối (hoặc chuỗi) có chiều dài cố định, mỗi khối được mã hoá riêng. Giả sử muốn mã hoá thông điệp m gửi cho B, thì người gửi A thực hiện các bước như sau:

 Lấy khoá công khai đích thực của người nhận B (p, g, y).

 Đầu tiên dùng thuật toán để chia thông điệp m ra nhiều khối có chiều dài cố định, và mỗi khối được biến đổi thành một số nguyên tương ứng Mi < p, (i = 1,…, k) theo một thuật toán nào đó. Ví dụ dùng thuật toán như sau:

- Biến đổi các ký tự trong nội dung của thông điệp thành các số tương ứng theo qui tắc  00, A  01, B  02,…,Z  26.

- Chia thông điệp số vừa biến đổi thành 1 nhóm số có chiều dài bằng nhau, mỗi nhóm biểu diễn một số nguyên Mi < p với (1 ≤ i ≤ 1).

 Chọn ngẫu nhiên một số nguyên k sao cho 0 ≤ k ≤ (p – 2).

 Mã hoá lần lượt từng số Mi (1 ≤ i ≤ 1) với khoá công khai của người nhận bằng cách tính: Ci = Eke(Mi) = (Ci1, Ci2). Với Ci1 = gk mod p và Ci2 = Mi * yk mod p.

Tập số {C1, C2,…, Ck}, với Ci = (Ci1, Ci2), i = 1,…, 1 là bản mã gửi cho B.  Giải mã:

Để giải mã bản mã {C1, C2,…, Ck}, người nhận B thực hịên các bước như sau:

 Giải mã lần lượt các cặp số Ci = (Ci1, Ci2), với 1 ≤ i ≤ 1 bằng cách: Tính:Mi = DKd(Ci1, Ci2) = Ci2 * (Ci1u)-1 mod p.

 Kết quả thu được là tập các số nguyên lớn {M1, M2,.., Mk}. Biến đổi các số nguyên Mi trở lại các chuổi ký tự tương ứng để khôi phục lại thông điệp M.

Bảng 2.3. Bảng tóm các bước tạo khoá, mã hoá, giải mã của Hệ ElGamal

Tạo khoá:

 Tạo số nguyên tố p chọn sao cho bài toán Logarithm rời rạc trong Zp* là khó thực hiện nổi.  Chọn g  Zp* là phần tử chính.  Chọn ngẫu nhiên số 0 < x < p – 2  Tính y = gx (mod p). Mã hoá: Mã hoá bản rõ M.  Chọn số ngẫu nhiên k, 1 ≤ k ≤ p – 2.  Tính C = Eke(M) = (C1, C2) với C1 = gk (mod p) C2 = M * yk (mod p).

Khoá công khai: (p, g, y).

Khoá riêng: (x).

Giải mã: Giải mã bản mã C.

 M = D(C) = Dkd(C1, C2) = C2 * (C1x)-1 mod p.

Một phần của tài liệu Hệ mật mã khóa công khai ứng dụng bảo mật thông tin trong thương mại điện tử (Trang 39 - 40)