HỆ MẬT MÃ KHÓA CÔNGKHAI ELGAMAL 3 8-

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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ử Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 38 - 43)

Hệ mật mã khóa công khai ElGamal [2], [9] được giới thiệu vào năm 1985 bởi T. ElGamal, độ an toàn của hệ này phụ thuộc vào độ khó giải bài toán logarithm rời rạc trong trường số hữu hạn Zp. Vì vậy số nguyên tố p cần phải được chọn sao cho bài toán logarithm là khó tính toán. Trong trường hợp đặc biệt để ngăn ngừa sự tấn công, thì số nguyên tố p cần phải được chọn sao cho số (p – 1) có ít nhất một thừa số nguyên tố p. Mục đích của hệ này được thiết kế chủ yếu ứng dụng vào mục đích chữ ký điện tử.

2.3.1. Bài toán logarithm rời rạc

Độ an toàn của nhiều kỹ thuật mã phụ thuộc vào việc khó giải nổi bài toán logarithm rời rạc (discrete logarithm problem). Một phần danh sách đó bao gồm: lược đồ trao đổi khoá Diffie-Helllman, lược đồ mã hoã ElGamal, lược đồ chữ ký ElGemal và một số các lược đồ mật mã khác…

Định nghĩa 2.1: Cho G là một nhóm vòng (cyclic) hữu hạn có bậc n và g là phần tử sinh của G. Logarithm rời rạc của y cơ số g biểu thị loggy, là một số nguyên duy nhất x, với 0 ≤ x ≤ n – 1 sao cho y = gx

Bài toán 2.3: Cho số nguyên tố p, một phần tử sinh g của Zp*, và một phần tử y

Zp, tìm số nguyên x, 0 ≤ x ≤ p – 2 sao cho y = gx (mod p). (tìm x = loggy).

2.3.2. Định nghĩa các tập làm việc của hệ mật mã ElGamal

 Tập các bản rõ M = Zp* = {1, 2,…, p – 1}

 Tập các bản mã C = Zp*

x Zp*

 Tập các khoá công khai Ke = {p} x P x Zp* (với P là tập các phần tử chính)

 Tập các khoá riêng Kd = Zp – 1 = {1, 2,…, p – 2}

2.3.3. Mô tả các quá trình tạo khoá, mã hoá, giải mã

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.

2.3.4. Tính đúng của quá trình giải mã

Ta có: y = gx

Và C1 = gk mod p C2 = M * yk mod p  DKd(C1, C2) = C2 * (C1x)-1 mod p = M * yk * ([gk])-x mod p = M * [gx]k *([gk])-x mod p = M * gkx* g-kx mod p = M mod p mà M < p, vậy DKd(C1, C2) = M mod p = M

Ví dụ 2.2: Minh hoạ cụ thể các bước thực hiện hệ mật mã ElGamal.

Tạo khoá:

Để đơn giản trong việc tính toán, ở ví dụ này ta chọn số nguyên tố p, x, k là những số nhỏ nhằm mục đích minh hoạ, mà không xét đến độ an toàn của hệ.

 Chọn số nguyên tố p = 2579 và phần tử chính g = 2.

 Chọn số ngẫu nhiên x = 765, tính y = 2765 (mod 2579) = 949.

 Công bố bộ ba số (2579, 2, 949) làm khoá công khai. Còn số x = 765 được giữ bí mật làm khoá riêng.

Mã hoá:

Giả sử thông điệp muốn mã hoá là M = “LOP CAO HOC CNTT”.

 Biến đổi các ký tự trong nội dung thông điệp thành các số theo quy tắc:  00 (: khoảng trắng), A  01, B  02,…,Z  26 như bảng sau:

L O P  C A O  H O C  C N T T

13 15 16 00 03 01 15 00 08 15 03 00 03 14 20 20

 Chia thông điệp thành 8 nhóm số có 4 chữ số, mỗi nhóm biểu diễn một số nguyên tương ứng Mi < p (1 ≤ i ≤ 8).

 Chọn ngẫu nhiên số k = 853, mã hoá lần lượt từng khối Mi bằng cách tính: Ci = E(Mi, k) = (Ci1, Ci2) = (2815 mod 2579, M1 *949853 mod 2579).

 Tính lần lượt các cặp số Ci bằng cách thay các số Mi ở cột tương ứng ta có kết quả thu được ở cột Ci là bản mã để gửi đến người nhận

Số khối Khối Mi Khối mã Ci=E(Mi) Số khối Khối Mi Khối mã Ci=E(Mi) 1 135 (435, 2495) 5 0815 (435, 46) 2 1600 (435, 2163) 6 0300 (435, 2501) 3 0301 (435, 2346) 7 0314 (435, 331) 4 1500 (435, 2189) 8 2020 (435, 1538)  Giải mã:

 Thực hiện giải mã lần lượt từng cặp số Ci, i =1,…,8 bằng các tính như sau: Mi = DKd(Ci) =DKd(Ci1, Ci2) = Ci2* (Ci1)-765(mod 2579)

Đầu tiên giải mã cặp số C1 =(435,2495) thì ta có Mi = DKd(C11,C12)= 2495 * (435)765 (mod 2579)

=[(2495 mod 2579) * ((435765)-1 mod 2579)] mod 2579 =2495 *1980 mod 2579 =4940100 mod 2579 =1315.

Tiếp tục thực hiện giải mã các cặp số Ci còn lại, ta được kết thu ở cột Mi là các số nguyên của bản rõ. Số khối I Khối mã Ci =E(Mi) Khối Gốc Mi Số khối I Khối mã Ci=E(Mi) Khối Gốc Mi 1 (435,2495) 1315 5 (435,46) 0815 2 (435,2163) 1600 6 (435,2501) 0300 3 (435,2346) 0301 7 (435,331) 0314 4 435,2189 1500 8 (435,1538) 2020

 Thực hiện phép biến đổi ngược lại từ các số ở cột Mi thành các chuỗi kí tự tương ứng theo quy tắc biến đổi đã chọn, để khôi phục lại thông điệp ban đầu M = “LOP CAO HỌC CNTT”.

2.3.5. Đánh giá hệ mật mã công khai Elgamal

2.3.5.1. Độ an toàn

Độ khó giải bài toán logarithm rời rạc gần giống như bài toán phân tích số nguyên lớn ra thừa số, do đó có thể nói hệ mật mã Elgamal và hệ mật mã RSA có

độ an toàn ngang nhau. Trong thực tế để đảm bảo được độ an toàn cho hệ Elgamal người thiết kết phải tạo số nguyên tố p lớn nhằm ngăn ngừa sự tấn công của kỹ thuật Pohlig – Hellman. Ngoài ra số ngẫu nhiên k không được sử dụng để mã hoá cho hai thông điệp M và M‟ với kết quả là (C1, C2) và (C1‟,C2‟) thì ta có C2(C2‟) = M(M‟)-1 (mod p). Vậy nếu biết được M thì M‟ có thể tính toán được dễ dàng.

2.3.5.2. Hiệu suất thực hiện và ứng dụng

Phương pháp tính toán của hệ mật mã Elgamal gần giống như hệ RSA. Tuy nhiên nó phức tạp hơn vì đòi hỏi nhiều phép tính luỹ thừa modulo, trong quá trình mã hoá và giải mã, nên có hiệu suất thực hiện kém hơn. Do đó thường không được ứng dụng trong những trường hợp mã hoá khối lượng lớn dữ liệu. Tính chất “không thể phủ nhận” (no – repudiation) của hệ này cũng như của hệ này cũng như của hệ RSA là cơ sở của các lược đồ chứng thực và chữ ký điện tử (phiên bản sửa đổi của lược đồ chữ ký Elgamal là chữ ký DSA được dùng trong chuẩn chữ kí điện tử của NIST ở Mỹ và cả thế giới).

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) 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ử Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 38 - 43)

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

(123 trang)