Bài toỏn logarit rời rạc

Một phần của tài liệu Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi (Trang 43 - 45)

Định nghĩa 2.1. Một trường hữu hạn là một trường F chứa một số hữu hạn cỏc phần tử. Bậc của F là số cỏc phần tử tồn tại trong F. Trường hữu hạn cú q phần tử được ký hiệu bằng Fq.

Định nghĩa 2.2. Cho Fq là một trường hữu hạn, và một phần tử gFq. Bậc (order) của g là số nguyờn dương m nhỏ nhất sao cho gm 1 mod  q và ký hiệu là Ordq(g) = m.

Định nghĩa 2.3. g là một phần tử sinh của trường hữu hạn Fq, nếu g cú bậc 1

q .

Phỏt biểu tương đương: g là phần tử sinh (chớnh), nếu cỏc lũy thừa của g

cú thể sinh ra tất cả cỏc phần tử khỏc khụng của *

q

F .

Nghĩa là: *

{gx : 0  x q 2}Fq

Định lý 2.1.Mỗi trường hữu hạn đều cú phần tử sinh. Nếu g là một phần tử sinh của *

q

F thỡ gjlà phần tử sinh nếu và chỉ nếu gdc( ,j q 1) 1. Vậy cú tổng cộng (q 1)

  phần tử sinh khỏc nhau của Fq*.

Định nghĩa 2.4: Cho G là một nhúm vũng (cyclic) hữu hạn cú bậc ng

là phần tử sinh của G. Logarithm rời rạc cơ số gcủa y, kớ hiệu logg y là một số nguyờn duy nhất x, với 0  x x 1 sao cho ygx.

Bài toỏn 2.1: Cho số nguyờn tố p, một phần tử sinh g của Z*p và một phần

tử *

p

yZ , tỡm số nguyờn x , 0  x p 2 sao choygx modp, tức tỡm logg xy. 2.2.2.Mụ tả hệ mật mó ElGamal  Tập cỏc bản rừ M : PZ*p {1, 2,...,p1}.  Tập cỏc bản mó C : CZ*pZ*p  Tập cỏc khoỏ cụng khai * { } e p Kp  P Z (với P là tập cỏc phần tử sinh)  Tập cỏc khúa riờng Kd = Zp - 1 = {1, 2,..., p – 2}

Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn

Tạo khúa

 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 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ử sinh. Cỏc giỏ trị pg thường được sử dụng như những tham số chung trong nhúm.

 Người 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 = gxmod 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 khúa riờng.

Mó húa

Mó húa 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:

 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).

 Biến đổi cỏc ký tự của thụng điệp thành cỏc số tương ứng, thớ dụ theo qui tắc: Dấu cỏch  00, A  01, B  02, ..., Z  26. (adsbygoogle = window.adsbygoogle || []).push({});

 Chia thụng điệp số vừa biến đổi thành r 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 r).

 Lấy khúa cụng khai của người nhận B (p, g, y).

 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 với khúa 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 pCi2= Mi * yk mod p

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

Giải mó

Để giải mó bản mó {C1, C2, ...,Cr}, người nhận B thực hiệ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 r

Tớnh: Mi = DKd(Ci1, Ci2) = Ci2 * (Ci1x)-1mod p.

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

Số húa bởi Trung tõm Học liệu – Đại học Thỏi Nguyờn http://www.lrc-tnu.edu.vn

Tạo khoỏ:

* Tạo số nguyờn tố p lớn, sao cho bài toỏn logarithm rời rạc trong Zp* là khú thực hiện.

* Chọn g Zp* là phần tử sinh. * Chọn ngẫu nhiờn số 0 < x < p – 2. * Tớnh y = gx (mod p).

Khoỏ cụng khai: (p, g, y) Khúa riờng: ( x )

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)

Giải mó: Giải mó bản mó C

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

Bảng 2.4: Túm tắt cỏc bước tạo khoỏ, mó hoỏ, giải mó của Hệ ElGamal

2.2.3. Tớnh đỳng của quỏ trỡnh giải mó

Ta cú: y = gx (mod p) (định nghĩa) Và C1 = gkmod 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 < p, vậy DKd(C1, C2) = M mod p = M.

Một phần của tài liệu Ứng dụng hệ mật mã khóa công khai trong quản lý đề thi (Trang 43 - 45)