Đị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 n và g
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 x y. 2.2.2.Mụ tả hệ mật mó ElGamal Tập cỏc bản rừ M : PZ*p {1, 2,...,p1}. Tập cỏc bản mó C : CZ*pZ*p Tập cỏc khoỏ cụng khai * { } e p K p 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ị p và g 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.
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 p và Ci2= 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à M < p, vậy DKd(C1, C2) = M mod p = M.