Bài viết này chứng minh rằng lược đồ đề xuất là an toàn trong những tình huống trùng kháo phiên hoặc bị lộ khóa phiên, đồng thời đảm bảo tính đúng đắn, an toàn và hiệu quả. Với những đặc tính này, lược đồ đề xuất có thể ứng dụng vào thực tế.
Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) PHÁT TRIỂN LƯỢC ĐỒ CHỮ KÝ SỐ ELGAMAL TRÊN VÀNH Zn NGĂN NGỪA TẤN CÔNG DỰA VÀO TÌNH HUỐNG LỘ KHĨA PHIÊN HOẶC TRÙNG KHĨA PHIÊN Lê Văn Tuấn1 , Tạ Minh Thanh1 , Bùi Thế Truyền1 Tóm tắt Lược đồ ElGamal biến thể dựa tính khó giải toán logarit rời rạc trường hữu hạn Zp khơng an tồn xảy tình lộ khóa phiên trùng khóa phiên Dựa lược đồ ElGamal, xây dựng lược đồ chữ ký sở để phát triển lược đồ chữ ký số có độ an tồn dựa tính khó giải toán logarit rời rạc vành hữu hạn Zn Chúng chứng minh lược đồ đề xuất an tồn tình trùng kháo phiên bị lộ khóa phiên, đồng thời đảm bảo tính đắn, an toàn hiệu Với đặc tính này, lược đồ đề xuất ứng dụng vào thực tế Từ khóa Lược đồ chữ ký số, toán logarit rời rạc, hàm băm Giới thiệu Lược đồ chữ ký số ElGamal đề xuất vào năm 1985 [8],[9] ElGmal Dựa lược đồ ElGaml, có nhiều lược đồ chữ ký số biến thể ElGaml đề xuất nhà khoa học giới, chẳng hạn lược đồ chữ ký số Schnorr năm 1990 [10], lược đồ chữ ký số DSA năm 1994 [11] lược đồ phụ thuộc vào độ khó giải tốn logarit rời rạc trường hữu hạn Zp khơng an tồn tình lộ khóa phiên trùng khóa phiên, nguyên nhân lược đồ chữ ký số công khai bậc phần tử sinh, điều kết nghiên cứu liên quan [12], [13], [14], [15],[16] Để khắc phục điểm tồn lược đồ chữ ký số Elgamal biến thể nó, thời gian qua, nhiều lược đồ chữ ký số vành nghiên cứu phát triển nhà khoa học nước giới[1],[2],[3], [17],[18],[19],[20], số lí sau: Thứ nhất, cấu trúc vành Zn cho phép che giấu bậc phẩn tử sinh[3].Chúng ta biết tập Zn với phép cộng phép nhân theo modul n tạo nên vành hữu hạn Zn , n cấu tạo từ hai đến số nguyên tố (thông thường n = p.q, Học viện Kỹ thuật quân 91 Section on Information and Communication Technology (ICT) - No 13 (6-2019) p, q số nguyên tố phân biệt) Trường hợp n = p.q nhóm nhân Zn∗ nhóm có bậc lớn (p − 1).(q − 1) việc tìm giá trị cho khó khơng biết phân tích n, tức bậc nhóm nhóm nhân Zn∗ giữ bí mật khơng biết phân tích n Thứ hai, tốn logarít rời rạc vành Zn (n = p.q, p, q số nguyên tố phân biệt) cho khó tồn logarít rời rạc trường Zp [3], để giải phải giải đồng thời ba tốn, là: tốn phân tích số n = p.q, tốn DLPp DLPq Thứ ba, nay, ngồi thuật tốn Baby step-giant step Danied Shank ứng dụng để giải toán logarit rời rạc vành Zn [6] thuật tốn khác chẳng hạn như: thuật tốn Rho Pollard, thuật tốn Pohlig-Hellman, khơng áp dụng để giải toán logarit rời rạc trường hữu hạn Zp Các lược đồ tiêu biểu vành nhà khoa học nước như: Pham Van Hiep cộng [1] vào năm 2018; Vũ Long Vân cộng [3] vào năm 2017 Bên cạnh lược đồ chữ ký số phát triển nhà khoa học giới, là: lược đồ Tripathi Gupta[19] vào năm 2017; Tan[20] vào năm 2003 Tuy nhiên, kết khảo sát cho thấy lược đồ chữ ký vành số điểm tồn tại, chẳng hạn như: bậc phân tử sinh chưa tường minh, miền giá trị lớn mức cần thiết vừa chi phí tính tốn lớn, vừa tốn nhớ mà chưa an toàn[19],[20]; Một số lược đồ có bậc phần tử sinh đuợc cấu tạo số nguyên tố siêu mạnh mà việc sinh số nguyên tố khó khăn [18] Việc khắc phục điểm tồn lược đồ chữ ký số vành Zn nhiệm vụ nghiên cứu báo này, cụ thể dựa lược đồ Elgamal, nhóm tác giả đề xuất lược đồ chữ ký số vành Zn với số đóng góp quan trọng báo này, là: Thứ nhất, xây dựng lược đồ chữ ký số sở vành Zn , từ đề xuất lược đồ chữ ký số dựa lược đồ sở an tồn tình trùng khóa phiên lộ khóa phiên xảy Thứ hai, xây dựng sở toán học để xác định phần tử sinh sinh thành công tham số lược đồ đề xuất có cỡ khóa sát với cỡ khóa thực tế (vài ngàn bit) phục vụ cho thử nghiệm Thứ ba, thử nghiệm thành công lược đồ đề xuất với tham số sinh Tiến trình thử nghiệm thực hai khâu: khâu sinh chữ ký xác nhận chữ ký Kết thử nghiệm cho thấy phân tích lí thuyết kết thử nghiệm tương đồng Bài báo tổ chức sau: Ngồi phần giới thiệu, phần II, chúng tơi đưa số công việc liên quan Phần III, chúng tơi trình bày lược đồ đề xuất Cuối cùng, chúng tơi trình bày số kết thử nghiệm, kết luận Phần phụ lục trình bày cơng cụ để thử nghiệm số kết thử nghiệm 92 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) Một số kiến thức liên quan 2.1 Một số hàm định lý bổ trợ Định nghĩa 2.1 Hàm H: {0, 1}∞ −→ {0, 1}512 chuyển xâu có độ dài hữu hạn thành xâu có 512 bit Định nghĩa 2.2 Hàm Num: {0, 1}∞ −→ Z, đổi xâu nhị phân có độ dài hữu hạn thành số số nguyên N um(bk bk−1 b0 ) a tính theo cơng thức: a = b0 + 21 b1 + + 2k bk Định nghĩa 2.3 Hàm str(a): Z≥0 −→ {0, 1}∞ trả số nhị phân tương ứng với số nguyên không âm a Định nghĩa 2.4 Hàm Random(X): Hàm trả phần tử ngẫu nhiên thuộc tập X, giả sử phần tử k ∈ X, ta ký hiệu k ∈R X Định nghĩa 2.5 Cho phần tử g thuộc vành Zn , bậc phần tử g số nguyên dương t nhỏ cho g t = 1modn, ký hiệu t = ordn (g) Định nghĩa 2.6 Cho n số nguyên dương, hàm Len(n) trả số bit để biểu diễn n dạng nhị phân Định lý 2.1 Cho g, n hai số nguyên dương Nếu ước chung lớn g n 1, ký hiệu GCD(g, n) = i ≡ j modul ordn (g) g i ≡ g j mod n 2.2 Lược đồ chữ ký số ElGamal 2.2.1 Miền tham số: p số nguyên tố với độ dài bit, ký hiệu Len(p) L g phần tử sinh nhóm nhân Zp∗ cấp p − trênZp với < g < p x khóa riêng phải giữ bí mật; x chọn cách ngẫu nhiên giả ngẫu nhiên [1, p − 1] y khóa cơng khai với y = g x modp k số bí mật dùng riêng cho thơng báo, cịn gọi khóa phiên; k chọn cách ngẫu nhiên tập X = (1, p − 1] Bộ (p, g, x) gọi khóa bí mật cịn (p, g, y) gọi khóa cơng khai người ký 2.2.2 Sinh chữ ký: Thuật toán 2.1 Input: (p, g, x), T ∈ Zp∗ Output: (r, s) while (k, p − 1) = 1, k = Random(1, p − 1) r = g k mod p 93 Section on Information and Communication Technology (ICT) - No 13 (6-2019) s = k −1 (T − x.r) mod p − if (r = 0)or(s = 0), then goto return (r, s) 2.2.3 Xác nhận chữ ký: Thuật toán 2.2 Input: (p, g, y), (r, s), T ∈ Zp∗ Output: accept or reject if (r = 0)or(s = 0) then return "reject" u1 = y r mod p u2 = rs mod p v = u1 u2 mod p if (v = g T )then return "accept" else return "reject" Phân tích thuật tốn Phân tích tính an tồn: Lược đồ ElGamal khơng an tồn tình lộ khóa phiên trùng khóa phiên, cụ thể là: - Thứ nhất, lộ khóa phiên k lần thực ký thơng báo T từ cơng thức sau đây: s = k −1 (T − r.x) mod p − ta dễ dàng tính khóa bí mật x: x = (T − s.k).r−1 mod p − - Thứ hai, khóa phiên k dùng trùng (hai thơng báo có chung khóa phiên) khóa bí mật bị lộ, cụ thể là: s = k −1 (T − r.x) mod p − ↔ k = s−1 (T − r.x)modp − (1) s = (k −1 (T − r.x))modp − ↔ k = s −1 (T − r.x)modp − Từ (1) (2) ta có đẳng thức sau: s−1 (T − r.x) = s −1 (T − r.x) mod p − 94 (2) Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) Từ phương trình dễ dàng tính khóa bí mật x sau: x = (s −1 T − s−1 T ).(s −1 r − s−1 r)−1 mod p − Phân tích chi phí tính tốn: Thuật tốn 2.1 gồm hai phép lũy thừa hai phép nhân Zp Giả sử ký hiệu ML chi phí tính tốn cho phép nhân trường Zp có Len(p) = L Một phép lũy thừa Zp , = g k mod p, với Len(p) = L có độ phức tạp xấp xỉ L.ML Vậy chi phí tính toán thuật toán 2.1 ước lượng sau: CG ≈ (2.L + 2).ML Thuật tốn 2.2 có ba phép lũy thừa phép nhân Zp Do Len(u1 ) ≈ L Len(u2 ) ≈ L, nên tổng chi phí cho thuật tốn 2.2 ước lượng sau: CV ≈ (3.L + 1).ML Không gian lưu trữ: Đối với lược đồ Elgamal, chữ ký gồm hai thành phần yêu cầu tối đa L bít với Len(p) = L, cần đến 2.L bít để lưu trữ cho chữ ký 2.3 Lược đồ chữ ký DSA 2.3.1 Miền tham số: p số nguyên tố với độ dài bit, ký hiệu Len(p) L q ước nguyên tố p − với Len(q) = N g phần tử sinh nhóm cấp q Zp với < g < p x khóa riêng phải giữ bí mật; x chọn cách ngẫu nhiên tập X = [1, q − 1] y khóa cơng khai với y = g x mod p k số bí mật dùng riêng cho thơng báo, cịn gọi khóa phiên; k chọn cách ngẫu nhiên tập X = (1, q − 1] Bộ (p, q, g, x) gọi khóa riêng cịn (p, q, g, y) gọi khóa cơng khai người ký 2.3.2 Sinh chữ ký: Thuật toán 2.3: Input: (p, q, g, x); T ∈ 0, 1∗ Output: (r, s) 1.z = N um(Hash(M )) 2.k = Random(X) 3.r = (g k mod p) mod q 95 Section on Information and Communication Technology (ICT) - No 13 (6-2019) 4.w = (z + x.r) mod q 5.if(r = 0)or (w = 0)then goto 6.s = k −1 (z + x.r) mod q 7.return (r, s) 2.3.3 Xác nhận chữ ký: Thuật toán 2.4 Input: (p, q, g, y), (r, s), T ∈ 0, 1∗ Output: "accept" or "reject" 1.w = s−1 mod q 2.z = N um(Hash(M )) 3.u1 = (z.w) mod q 4.u2 = (r.w) mod q 5.v = ((g u1 g u2 ) mod p) mod q 6.if(v = r) then return "accept" else return "reject" Phân tích thuật tốn Chi phí tính tốn: Chi phí tính tốn thuật tốn 2.3 chủ yếu tập trung phép lũy thừa trường Zp với số mũ cỡ N bit Ký hiệu chi phí trung bình cho phép nhân trường Zp có Len(p) = L, ký hiệu ML trường Zq có Len(q) = N , ký hiệu MN Vậy tổng chi phí tính tốn thuật tốn 2.3 ước lượng sau: CG = N.ML + (N + 3).MN Trong chi phí tính tốn thuật toán 2.4 tập trung vào câu lệnh bước với hai phép lũy thừa theo số Modul p có kích thước L bit, nên tổng chi phí cho thuật toán 2.4 là: CV = 2N.ML + (N + 3).MN Phân tích độ an tồn: Việc cơng khai cấp phần tử sinh g dẫn đến tình an toàn cho lược đồ DSA sau: + Tình thứ nhất: Nếu khóa phiên k bị lộ lần thực việc ký thông báo T từ cơng thức sau: s = k −1 (z + r.x)modq Ta dễ dàng tính khóa bí mật x theo cơng thức sau: x = (s.k − z).r−1 modq 96 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) + Tình thứ hai hai thơng báo khác ký với khóa phiên k (dùng trùng khóa) Giả sử hai thơng báo ký trùng khóa phiên k T T hai chữ ký tương ứng (r, s) (r, s ) Kẻ cơng tìm khóa bí mật x sau: trước tiên hai giá trị z z tính từ cơng thức z = N um(Hash(T )) z = N um(Hash(T )), s s xác định sau: s = (k −1 (z + r.x)) mod q ↔ k = s−1 (z + r.x)modq (3) s = (k −1 (z + r.x)) mod q ↔ k = s −1 (z + r.x)modq (4) Từ (3) (4) ta có đẳng thức sau: s−1 (z + r.x) = s −1 (z + r.x) mod q ↔ s−1 z − s −1 z = (s −1 − s−1 ).r.x mod q Từ kết dễ dàng tính khóa bí mật x sau: x = r−1 (s−1 z − s −1 z )(s −1 − s−1 )−1 mod q Có thể khái quát lược đồ chữ ký ElGamal biến thể trường hữu hạn có đặc điểm chung cơng khai bậc phần tử sinh Từ đặc điểm dẫn đến lược đồ chữ ký số an tồn khóa phiên bị lộ bị trùng khắc phục điểm tồn nhiệm vụ cần giải phần báo Lược đồ chữ ký số đề xuất Trong phần tiếp theo, nhóm tác giả xây dựng lược đồ chữ ký số sở vành Zn , từ đề xuất lược đồ cụ thể lược đồ sở 3.1 Lược đồ sở 3.1.1 Tham số lược đồ: a Số modul n Số modul n hợp số cấu tạo hai số nguyên tố phân biệt p, q với n = p.q Các số nguyên tố p, q sinh từ hai lớp số nguyên, là: lớp số x.p1 + (p1 số nguyên tố) Pocklington lớp số xq1 − (q1 số nguyên tố) Lucas b Phần tử sinh Tập Zn với hai phép toán cộng nhân theo modul n tạo thành vành, tập Zn∗ nhóm nhân có cấp ϕ(n) Giả sử ký hiệu g phần tử sinh nhóm 97 Section on Information and Communication Technology (ICT) - No 13 (6-2019) nhân Cyclic có cấp t, ký hiệu < g > với ordn (g) = t Để đảm bảo an toàn cho lược đồ chữ ký số có độ an tồn dựa tính khó giải tốn logarit rời rạc vành Zn , bậc phần tử sinh g phải giữ bí mật, muốn việc chọn phần tử sinh g bậc khơng thể tùy tiện, cụ thể là: - Miền giá trị g thuộc tậpZn∗ để đảm bảo g ln có nghịch đảo modul n - Giả sử ký hiệu bậc phần tử sinh g t, t = Ordn (g) Vấn đề đặt chọn t cho có khóa cơng khai tay, kẻ cơng khơng có khả tính bội t Sau xét số trường hợp chọn t: Trường hợp 1: t số nguyên tố với t = (p − 1), t | (q − 1) Trường hợp 2: t số nguyên tố với t|(p − 1), t = (q − 1); Trường hợp 3: t số nguyên tố với t|(p − 1), t|(q − 1); Trường hợp 4: t hợp số có dạng t = p1 q1 , p1 q1 nguyên tố: p1 |(p − 1), q1 |(q − 1), p1 = (q − 1), q1 = (p − 1) Trong bốn trường hợp t, ba trường hợp đầu không an toàn cho lược đồ chữ ký Định lý 3.1 Cho n = p.q tích hai số nguyên tố lẻ khác g ∈ Zn∗ Khi t = ordn (g) số nguyên tố ln tìm bội t Chứng minh: Trường hợp t ước GCD(p − 1, q − 1) Khi n − = p.(q − 1) + (p − 1) nên t ước n − hay n − bội t Để biết điều ta cần kiểm tra đẳng thức sau: g n−1 modn = Ngược lại, từ giả thiết t nguyên tố ta có GCD(p−1, t) = GCD(q−1, t) = Không giảm tổng quát giả sử GCD(p − 1, t) = 1, từ tính chất cấp lũy thừa phần tử ta có ordp (g) = ordp (g t ) = Do Zp∗ có phần tử có cấp đơn vị g mod p = hay p = GCD(g − 1, n) Đến lấy q = (n)/p (p − 1).(q − 1) bội t Dựa định lý 3.1 ba trường hợp t khơng thể chọn làm bậc g, cần áp dụng thuật tốn Owclit phân tích n giá trị n − bội t Từ định lý 3.1 nhận xét trên, điều kiện bảo vệ tham số t sau: Điều kiện 3.1 t = u.v với u, vlà hai số nguyên tố "đủ lớn" u ước (p − 1)/(GCD(p − 1, q − 1)) v ước (q − 1)/(GCD(p − 1, q − 1)) Trong hệ tiêu chuẩn cho tham số n = p.q dùng cho hệ mật RSA ln có điều kiện p − q − có ước nguyên tố tương ứng p1 q1 đủ lớn nên ta đưa 98 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) thêm điều kiện hai giá trị không ước n − rõ ràng p1 ước (p − 1)/(GCD(p − 1, q − 1)) q1 ước (q − 1)/(GCD(p − 1, q − 1)) cần lấy u = p1 v = q1 giá trị t = u.v thỏa mãn Điều kiện 3.1 Vấn đề cịn lại tìm g có cấp t, ký hiệu ordn (g) = t định lý 3.2 sở để tìm g có cấp t Định lý 3.2 Cho n = p.q với p, q hai số nguyên tố khác t = p1 q1 với p1 , q1 thỏa mãn Điều kiện 3.1 (i) Với a ∈ Zn∗ , kiện A là: ordn (a) bội t thì: A ⇔ ((aϕ(n)/p1 modn = 1) (aϕ(n)/q1 mod n = 1)) P rob(A) = ((p1 − 1)(q1 − 1))/(p1 q1 ) (5) (ii) Nếu kiện A xảy phần tử g xác định sau: g = aφ(n)/p1.q1 mod n có cấp t Chứng minh: Nhắc lại với ước số nguyên tố r φ(n) (ordn (a) bội r) ⇔ (aφ(n)/r mod n = 1) nên từ p1 q1 số nguyên tố ta có: (aφ(n)/p1 mod n = 1) (aφ(n)/q1 mod n = 1)) ⇔ ordn (a) bội p1 ordn (a) bội q1 ⇔ Sự kiện ordn (a) bội p1 q1 = A Vậy mệnh đề (5) chứng minh Từ n = p.q tích hai số nguyên tố khác nên theo định lý phần dư Trung hoa, với r ta có: ⇔ ((a ϕ(n)/r (a(ϕ(n))/r mod n = 1) mod p = 1) (aϕ(n)/r mod q = 1)) Do p1 ước (p − 1) với a ∈ Zn∗ ta có: a(ϕ(n))/p1 mod q = (aq−1 )(p−1)/p1 mod q = Như kiện (aϕ(n)/p1 mod q = 1) kiện chắn hay (aϕ(n)/p1 mod q = 1) ⇔ (aϕ(n)/p1 mod p = 1) 99 Section on Information and Communication Technology (ICT) - No 13 (6-2019) (aϕ(n)/p1 modq) = a(q−1)(p−1)/p1 modp = a(q−1)((p−1)/p1 )mod(p−1) mod p Nên từ p1 không ước q − nên vế phải đồng dư thức ordp (a) ước (p − 1)/p1 mà điều xảy với xác suất 1/p1 (tương ứng i bội p1 biểu diễn a ≡ σ i ( mod p) với σ phần tử nguyên thủy Zp∗ ) hay P rob(a(ϕ(n))/p1 mod p = 1) = 1/p1 Lập luận tương tự q1 nguyên tố không ước p − ta thu kết sau: (aϕ(n)/p1 mod n = 1) ⇔ (aϕ(n)/p1 mod q = 1) P rob(a(ϕ(n))/p1 mod p = 1) = 1/q1 Đến ta có: P rob(A) = P rob(a(ϕ(n))/p1 mod n = 1).P rob(a(ϕ(n))/q1 mod n = 1) = (1 − P rob(aϕ(n)/p1 mod n = 1)).(1 − P rob(aϕ(n)/q1 mod n = 1)) = ((p1 − 1)(q1 − 1))/(p1 q1 ) (5) chứng minh Với g = aϕ(n)/(p1.q1) mod n ta có g p1 q1 = g ϕ(n) = mod n nên ordn (g)|t Từ công thức: (aϕ(n)/p1 modn = 1) (aϕ(n)/q1 mod n = 1) ↔ (g q1 mod n = 1) (g p1 mod n = 1) nên ordn (g) bội p1 lẫn q1 p1 , q1 hai số nguyên tố khác nên bội p1 q1 = t Điều chứng tỏ ordn (g) = t (ii) chứng minh Kết định lý 3.2 xác suất tìm g có cấp t ((p1 −1)(q1 −1))/p1 q1 , giá trị xấp xỉ p1 , q1 đủ lớn c Miền tham số Lược đồ chữ ký số sở có miền tham số sau: - Tham số n = p.q với p, qlà số nguyên tố lớn thỏa mãn việc phân tích n thừa số khó Giá trị t = p1 q1 với p1 , q1 nguyên tố thỏa mãn điều kiện sau: p1 |(p − 1), q1 |(q − 1), p1 = (q − 1), q1 = (p − 1) Giá trị t hai giá trị p1 , q1 giữ bí mật; - Giá trị N độ dài bít t, ký hiệu N = Len(t) 100 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) - Giá trị g phần tử sinh nhóm < g > có cấp t modul n Tham số t g chọn cho tốn tìm x từ phương trình g x = y mod n tốn khó - Giá trị x chọn ngẫu nhiên tập X = (1, t − 1] cho tồn x−1 theo modul t giữ bí mật; - Giá trị y khóa cơng khai, với y = g x modn - Giá trị k chọn ngẫu nhiên tập X = (1, t − 1] số bí mật tương ứng cho thơng báo (cịn gọi khóa phiên) - Bộ giá trị (n, g, x, t) làm khóa bí mật (n, g, y, N ) làm khóa cơng khai Trong lược đồ sở có sử dụng đến hai hàm số tổng quát ký hiệu f1 f2 Giả sửt = Ordn (g), X = (1, t − 1], k ∈R X; r ≡ g k modn; z = num(H(T ||str(r))) Dưới số giằng buộc cho cặp hàm tổng quát f1 , f2 sử dụng để xây dựng lược đồ chữ ký số sở sau: Thứ nhất, hàm f1 , f2 ánh xạ từ tập {0, 1}∞ × Zn đến tập [0, 2512 ), ký hiệu f1 , f2 : {0, 1}∞ × Zn → [0, 2512 ) Thứ hai, hàm f1 , f2 hàm số hàm với biến thông báo T thành phần r chữ ký Dưới số cặp hàm f1 , f2 cho lược đồ chữ ký số Cặp hàm f1 = z, f2 = Cặp hàm f1 = 1, f2 = z Trong z = num(H(T ||str(r))) Dưới số lược đồ chữ ký số sở có độ an tồn dựa tính khó giải tốn logarit rời rạc vành hữu hạn Zn 3.1.2 Lược đồ CS01: a Sinh chữ ký Thuật tốn 3.1 Input: Tham số khóa bí mật (n, g, x, t), thơng báo T, X = (1, t − 1] Output: (r, s) chữ ký T k ∈R X r ≡ g k mod n z = num(H(T ||str(r))) f ≡ f1 + x.f2 mod t // r z tham gia biểu thức f1 + xf2 if GCD(f, t) > then goto // tính lại đầu hàm f1 + xf2 s ≡ k.(f1 + x.f2 )−1 mod t return (r, s) 101 Section on Information and Communication Technology (ICT) - No 13 (6-2019) b Xác nhận chữ ký Thuật tốn 3.2 Input: Chữ ký (r, s) thơng báo T khóa cơng khai (n, g, y, tL) Output: trả thông báo "Accept" (r, s) chữ ký hợp lệ T "Reject" u ≡ g s.f1 y s.f2 mod n if (u = r) return "accept" else "return" "reject" c Tính đắn lược đồ sở Chứng minh Để chứng minh đắn lược đồ CS01 áp dụng định lý 1.1: GCD(g, n) = 1vi ≡ j mod ordn (g) ↔ g i ≡ g j mod n Ở đây, phải chứng minh đẳng thức sau: g k mod n ≡ g s.f1 y s.f2 mod n ↔ g k mod n ≡ g s.f1 +x.s.f2 mod n ↔ k ≡ s.f1 + x.s.f2 mod ordn (g) Giả sử t = ordn (g), dễ thấy: ≡ k.(f1 + x.f2 )−1 f1 + x.k.(f1 + x.f2 )−1 f2 mod t ≡ k.(f1 + x.f2 ).(f1 + x.f2 )−1 mod t ≡ k mod t Theo định lý 1.1 ta có g k mod n = g s.f1 y s.f2 modn tính đắn lược đồ chữ ký chứng minh 3.1.3 Lược đồ CS02: a Sinh chữ ký Thuật tốn 3.3: Input: Tham số khóa bí mật (n, g, x, t), thông báo T, X = (1, t − 1] Output: (r, s) chữ ký T k ∈R X r ≡ g k mod n z = num(H(T ||str(r))) f ≡ k.f1 − f2 mod t//r z tham gia biểu thức k.f1 − f2 s ≡ x−1 f mod t return (r, s) b Xác nhận chữ ký Thuật toán 3.4: Input:(r, s) chữ ký thơng báo T , khóa cơng khai (n, g, y, tL) Output: Trả "accept" (r, s) chữ ký hợp lệ T , ngược lại trả "reject" 102 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) u ≡ (g fz y s ) mod n if (u ≡ rf1 mod n) return "accept" else return "reject" c Tính đắn lược đồ: Chứng minh: Ta phải chứng minh: rf1 mod n ≡ (g fz y s ) mod n ↔ g k.f1 mod n ≡ (g f2 +x.s ) mod n ↔ k.f1 ≡ f2 + x.s mod ordn (g) Ta có t ≡ ordn (g), dễ thấy: f2 + x.s mod t ≡ f2 + x.x−1 (k.f1 − f2 ) mod t ≡ k.f1 mod t Áp dụng định lý 1.1 từ đẳng thức f2 + x.s mod t ≡ k.f1 mod t suy đẳng thức sau: g k.f1 mod n ≡ (g f2 +x.s ) mod n tính đắn lược đồ chữ ký chứng minh 3.2 Dựa lược đò sở đề xuất lược đồ chữ ký số Dựa hai lược đồ sở phát triển nhiều lược đồ chữ ký số Chẳng hạn lược đồ CS01 áp dụng [17] Bài báo đề xuất lược đồ chữ ký số lược đồ CS02 Trong lược đồ CS02, hàm f1 f2 lược đồ sở chọn sau: f1 = 1; f2 = z, ta có nội dung thuật tốn ký xác nhận chữ ký lược đồ đề xuất sau: 3.2.1 Sinh chữ ký: Thuật toán 3.5 Input: (n, t, g, x), x−1 , T ∈ 0, 1∗ Output: (r, s) k ∈R (1, t) 2.r = g k mod n z = N um(H(T Str(r))) s = x−1 (k − z) mod t if (s = 0)or(p1 | k)or(q1 | k)or(t | r) then goto return (r, s) 3.2.2 Xác nhận chữ ký: Thuật tốn 3.6 Input:Thơng báo T chữ ký (r, s), khóa cơng khai(n, N, g, y) Output: "accept" "reject" 103 Section on Information and Communication Technology (ICT) - No 13 (6-2019) z = N um(H(T Str(r))) u = g z y s mod n if (r = u) return "accept" else return "reject" 3.2.3 Tính đắn lược đồ: −1 −1 Ta có u = g z y s mod n = g z g x(x k−x z)modt mod n = g z g k−z mod n = g k mod n = r z + x.s ≡ z + x(x−1 k − x−1 z) mod t ≡ k mod t, mà GCD(g, n) = suy g z y s ≡ g k mod n Tính đắn lược đồ chữ ký chứng minh 3.2.4 Mức độ an toàn lược đồ đề xuất: Mức độ an toàn lược đồ đề xuất đánh giá khả chống số kiểu công, cụ thể là: Tấn cơng làm lộ bí mật cơng giả mạo chữ ký, từ thiết lập số điều kiện an toàn cho lược đồ: a Tấn cơng khóa bí mật Tấn cơng khóa mật thuật tốn "vét cạn" Thuật tốn 3.7 Tính khóa bí mật Input: n, g, y, N = len(t), t = ordn (g) Output: x - khóa bí mật đối tượng k f ori = 1to2N 1.1.z = g i mod n; 1.2 if (z = y)thenx = i; break; return (x); Nhận xét: Nếu giá trị x khơng đủ lớn việc cơng làm lộ khóa mật thuật tốn vét cạn hồn tồn thực được, giá trị x phải lớn ngưỡng an tồn Tấn cơng khóa bí dựa vào trùng khóa phiên lộ khóa phiên Theo "nghịch lý ngày sinh" việc trùng khóa phiên hữu, cấp phần tử sinh g tham số t giữ bí mật, tình trùng khóa phiên lộ khóa phiên xảy kẻ cơng khó tính khóa bí mật Dưới xét hai trường hợp trùng khóa phiên lộ khóa phiên chứng minh lược đồ chữ ký số đề xuất an toàn trường hợp + Trường hợp thứ nhất: Khóa phiên bị lộ, khóa bí mật x xác định công thức sau: s = x−1 (k − z) mod t → x−1 = (k − z)−1 mod t Do t giữ bí mật nên kẻ cơng khó xác định x−1 khóa bí mật x 104 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) + Trường hợp thứ hai: Khóa phiên bị dùng trùng lặp, giả sử thông báo T T dùng khóa phiên, khóa bí mật x xác định công thức sau đây: z = N um(H(T str(r))) z = N um(H(T str(r))) s = x−1 (k − z) mod t s = x−1 (k − z ) mod t −1 x = (s − s ).(z − z)( − 1) mod t Do t giữ bí mật nên khơng thể xác định x−1 Zt Nhận xét: Lược đồ chữ ký an tồn tình lộ khóa phiên trùng khóa phiên với điều kiện bậc gđủ lớn để chống cơng thuật tốn [7] Tấn cơng dựa vào thành phần chữ ký (r, s)và khóa phiên k bội bậc phần tử sinh Giả sử t = Ordn (g), giả sử t|r, t|s, t|k, số modul n phân tích qua phép tìm ước chung lớn nhất, cụ thể t|r, t|s, t|k nên:g r = mod n, nên n|g r − 1, nên cần sử dụng thuật tốn Euclid để tính GCD(g r − 1, n)) tìm p q với n = p.q Lý luận tượng tự với trường hợp cịn ta có: Nếu g s = mod n GCD(g s − 1, n)) p q Nếu g k = mod n GCD(g k − 1, n)) p q Phân tích n = p.q tốn tìm x thỏa y = g x mod n tách thành hai toán là: y = g x mod p Khả chống cơng làm lộ khóa mật lược đồ đề xuất phụ thuộc vào mức độ khó Bài toán DLPp Một số giải thuật DLPp biết đến thuật toán Baby-step Giant-step, Pohlig-Hellman, Index-Calculus Sau giải hai toán DLPp DLPq , áp dụng định lý Trung quốc đồng dư tính y = g x mod n Nhận xét: Nếu giá trị r, s, kcó tính chất: t|r, t|s, t|k, lược đồ chữ ký số đề xuất an tồn, nên q trình sinh chữ ký tạo khóa phiên cần kiểm sốt tránh trường hợp Tấn cơng khóa bí mật dựa vào sử dụng số modul n chung Nếu thành viên hệ thống lược đồ chữ ký sử dụng chung số modul n, nghĩa người sử dụng sở hữu bậc phần tử sinh t để tạo chữ ký, nên t khơng cịn giữ bí mật lược đồ chữ ký khơng an toàn Vậy điều kiện đảm bảo an toàn lược đồ giao dịch cần phải sử dụng tham số riêng b Tấn công giả mạo chữ ký Mục đích cơng giả mạo tạo chữ ký (r, s) cho thông báo T mà tay khơng có cơng cụ để ký (khóa bí mật) chữ ký giả mạo T cặp (r, s) phải thỏa mãn phương trình kiểm tra sau: r = g N um(H(T ||Str(g k modn))) y s mod n 105 Section on Information and Communication Technology (ICT) - No 13 (6-2019) Giả sử đối tượng ký O có khóa bí mật x khóa cơng khai tương ứng y Một đối tượng O” mạo danh O để ký lên thông báo T cách tạo chữ ký giả mạo (r , s ) thỏa mãn điều kiện thuật toán kiểm tra (r = (g z y s ) mod n Khi đó, (r , s ) xác nhận nhầm chữ ký hợp lệ O lên T , nghĩa O" mạo danh O thành cơng Thuật tốn 3.8 Thực giả mạo chữ ký cách tạo giá trị ngẫu nhiên thành phần thứ r chữ ký, tạo thành phần thứ hai s theo thành phần thứ r Input: n, g, y, N, H, T Output: (r , s ) chữ ký O” tạo lên thông báo T O k = Random(X) // X = (1, 2N − 1] r = g k mod n z = num(H(T str(r )) Tính s từ phương trình ↔ r = g z y s mod n ↔ y s = r g −z mod n return : (r , s ); Nhận xét: Để thực giả mạo chữ ký lược đồ đề xuất, kẻ giả mạo phải giải tốn DLPn Vậy độ an tồn lược đồ chữ ký phụ thuộc vào tính khó giải toán logarit rời rạc vành Zn Thuật toán 3.9: Thực giả mạo chữ ký cách tạo giá trị ngẫu nhiên thành phần thứ hai s chữ ký, tạo thành phần thứ r theo thành phần thứ hai s Input: n, g, y, N, H, T Output: (r , s ) chữ ký O” tạo lên thông báo T O s = Random(X).//X = (1, 2N − 1] Tìm k tập X = (1, 2N − 1] thỏa mãn phương trình: k ↔ g k = g N um(H(T Str(g modn))) y s mod n k ↔ g k−N um(H(T Str(g modn))) = y s mod n (Tìm k tương đương với tìm r ) r = g k mod n return :(r , s ); Nhận xét: Với Thuật toán 3.9, để chọn được: (r , s ) thỏa mãn bước thuật toán O" cần phải giải toán logarit rời rạc vành Cho đến chưa có thuật tốn hiệu để giải toán 106 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) Hình Kết đánh giá chi phí tính tốn 3.3 Tính hiệu lược đồ đề xuất Tính hiệu lược đồ đề xuất phân tích hai mặt, chi phí tính tốn thuật tốn khơng gian lưu trữ Để thuận tiện cho đánh giá chi phí tính tốn, báo sử dụng ML chi phí tính tốn phép nhân hai số module n có len(n) = L ký hiệu MN chi phí tính toán phép nhân hai số module t, len(t) = N bit 3.3.1 Không gian lưu trữ: Giả sử hệ thống sử dụng lược đồ chữ ký số có K thành viên Đối với lược đồ ElGamal, DSA, GOST k thành viên sử dụng chung tham số Đối với lược đồ chữ ký số đề xuất, thành viên bắt buộc phải sử dụng số module riêng (tránh công sử dụng module chung), nên tham số hệ thống lược đồ chữ ký số yêu cầu không gian lưu trữ gấp K lần so với yêu cầu không gian lưu trữ lược đồ chữ ký ElGamal,DSA,GOST Hơn nữa, lược đồ chữ ký số DSA,GOST, thành phần r chữ ký là N = len(q) bit, thành phần r lược đồ chữ ký đề xuất L = len(n) bit, giá trị r lược đồ chữ ký đề xuất lớn L/N lần thành phần r lược đồ DSA,GOST 3.3.2 Chi phí tính tốn: - Chi phí thuật tốn 3.3 tập trung phép lũy thừa r = g k mod n, n = p.q Phép tính nghịch đảo x−1 mod t tính trước, nên ta có ước lượng sơ thuật toán 3.3 sau: CG ≈ N.ML + 2.MN - Chi phí thuật tốn 3.4 tập trung phép lũy thừa t = g z y s mod n, phí ước lượng sau: CV ≈ N.ML + MN Tóm lại: Lược đồ chữ ký số đề xuất yêu cầu không gian lưu trữ lớn so với lược đồ chữ ký số ElGamal biến thể thành viên hệ thống phải sử dụng số modul n riêng Tuy nhiên, nhờ hỗ trợ định lý phần dư Trung hoa mà chi phí tính tốn thuật toán kỳ xác nhận chữ ký lược đồ đề xuất thấp so với thuật toán ký xác nhận chữ ký lược đồ ElGamal biên thể 3.4 Thử nghiệm đánh giá kết 3.4.1 Thử nghiệm: 107 Section on Information and Communication Technology (ICT) - No 13 (6-2019) Hình Kết thử nghiệm Nội dung phần tiến hành thử nghiệm kết nghiên cứu Đối tượng tiến hành thử nghiệm lược đồ chữ ký số đề xuất; phạm vi thử nghiệm tập trung vào hai khâu: sinh chữ ký xác nhận chữ ký Mục tiêu thử nghiệm xem xét lược đồ chữ ký đề xuất có đảm bảo tính đắn lý thuyết hay không; thời gian chi phí để sinh chữ ký xác nhận chữ ký có hợp lý khơng cơng cụ thử nghiệm phần mềm tin học nhóm nghiên cứu xây dựng Dưới tham số tiến hành thử nghiệm: - Cỡ khóa: độ dài khóa là: 1024, 1280, 1536, 1792, 2048 (bit) - Đối tượng thử nghiệm bốn lược đồ, lược đồ DSA, RSA, ELGamal lược đồ đề xuất - Thông báo sử dụng để thử nghiệm gồm: Văn bản, file video, hình ảnh với dung lượng khác - Số lần thử nghiệm ký xác nhận chữ ký q trình ký có dung lượng 18.87 MB Số lần thử nghiệm cho tham số 1000 lần - Hàm băm SHA-512 sử dụng thuật toán ký xác nhận chữ ký lược đồ - Cơng cụ thử nghiệm chương trình thử nghiệm viết ngơn ngữ lập trình C++, biên dịch trình QT Creater chạy hệ điều hành Windows Bộ vi xử lý Core2 Duo 2.2 GHz nhớ 2GB - Tham số thử nghiệm lược đồ chữ ký số có kích thước tiêu chuẩn gần với tham số thực tế Kết thử nghiệm hình Kết sinh chữ ký minh họa hình 2, mối quan hệ thời gian ký cỡ khóa: Kết xác nhận chữ ký, minh họa hình mối quan hệ thời gian xác nhận chữ ký cỡ khóa (hình 3) 108 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) Hình Đồ thị thời gian sinh chữ ký Hình Đồ thị thời gian xác nhận chữ ký 3.4.2 Đánh giá kết quả: Việc đánh giá kết thử nghiệm dựa tiêu chí sau: Tính đắn, tính đầy đủ, tính hiệu - Tính đắn: Kết thử nghiệm đảm bảo tính xác, tham số sinh thuật tốn tất định, chứng minh tính đắn - Kết thử nghiệm bảo đảm tính đầy đủ khâu sinh chữ ký xác nhận chữ ký thực ký với loại file đầu vào (văn bản, audio, video ) - Đảm bảo tính hiệu quả, cụ thể là: sinh tham số nhanh với tỷ lệ thành công tuyệt đối Qua công đoạn thử nghiệm sinh tham số sử dụng tham số để thử nghiệm việc ký xác nhận chữ ký cho thấy: kết thử nghiệm sinh tham số cho lược đồ theo tiêu chuẩn xây dựng đảm bảo xác tuyệt đối Mỗi tham số sinh áp dụng vào để thử nghiệm cho quy trình ký xác nhận chữ ký, 109 Section on Information and Communication Technology (ICT) - No 13 (6-2019) kết ký xác nhận chữ ký đảm bảo nhanh xác tuyệt đối Kết luận Bài báo đề xuất hai lược đồ chữ ký số sở CS01 CS02 vành Zn Điểm khác biệt hai lược đồ lược đồ CS01 để phát triển lược đồ chữ ký số cho ứng dụng mà độ phức tạp tính tốn phân cho bên ký bên xác nhận chữ ký Lược đồ CS02 để phát triển lược đồ chữ ký số mà yêu cầu bên xác nhận chữ ký có độ phức tạp tính tốn lớn bên ký (giá trị nghịch đảo thành phần bí mật tính trước) Dựa lược đồ CS01, nhóm tác giả [17] phát triển lược đồ chữ ký số vành Zn Trong bào nhóm nghiên cứu phát triển lược đồ chữ ký số dựa lược đồ CS02, khắc phục an toàn tình lộ khóa phiên trùng khóa phiên Một đóng góp quan trọng nhóm nghiên cứu đưa sở toán học tồn phân tử sinh xây dựng thuật toán để sinh sinh thành công phần tử sinh vành Zn Nhóm tác giả chứng minh tính đắn, tính hiệu an toàn lược đồ đề xuất Do tính độc lập chữ ký dựa vào thành phần ngẫu nhiên k hàm băm SHA-512, với bậc phần tử sinh g giữ bí mật nên lược đồ đề xuất an toàn với mơ hình cơng mơ hình "Existential forgery", mơ hình "Selective forgery" Hơn nữa, dựa theo chứng minh [20] lược đồ đề xuất an toàn mơ hình cơng Random Oracle Model Phần tử nghiệm, nhóm tác giả viết chương trình thử nghiệm ngôn ngữ C++ Kết thử nghiệm cho thấy phân tích tốn học chi phí tính toán với kết thử nghiệm tương đồng Tuy nhiên, để sử dụng thực tế, cần phải xác định ngưỡng an toàn hệ tiêu chuẩn tham số an toàn cho lược đồ chữ ký số này, vấn đề nghiên cứu mà nhóm tác giả giới thiệu báo Phụ lục A Phầm mềm, cơng cụ thử nghiệm Nhóm nghiên cứu viết chương trình sinh tham số, sinh chữ ký xác nhận chữ ký ngơn ngữ lập trình C++, biên dịch trình QT Creater chạy hệ điều hành Windows Hình giao diện chương trình Phụ lục B Kết thử nghiệm Sinh tham số + Đối tượng áp dụng: Kinh tế xã hội + Năm áp dụng: 2018 + Độ dài số modul n, N len = 1792 + Security_strength = 110 2.1 Sinh số nguyên tố: 110 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) Hình Giao diện chương trình p=5282945311356652463523397849165166065188473260361215221279607090266739 025567248594744836366500735269193878013655941812914496511318451374801508 460873861267681581952573332496660273965089772299521526413049796842047595 29953895665938963777587220555249311678856789340100756067 (897 bit) q=5282945311356652463523397849173501083306400613792325182555901913881312 469788917147138302804293250146636155790298444481666155936947129272244886 904121923197170448836229758676945426021504796388303187828440145890005848 38607538326427409531894088353785727288347357889043869941 (897 bit) p1=351135998686172145514800629219732389697237945919543610443067426510057 9719359093 (261 bit) q1=239767701468901318717606028225365849694628979078731871393565209023030 8068120360840743559388426743 (321 bit) n=p.q=279095111627852376407822673918505407354749705961588183386608979984 540925670091938384305766898611192576196487981187875342654271276455362578 441059659025112242589918768187462087436905433968688025045665606722493281 521161141737880734118201237469386163120818542305125859521374856983765793 510989417532589326792439128846817391492826615177106876643927259054603258 885399464024778550158780494646111202730280602862474875455792444910199699 684204689391545124447662262343901998741135472389812058690476179475514568 085713166979184410616266536711665714682047 (1793 bit) t=p1.q1=8419107130797064865349090513227773703070006264494997465727900966 301411351030560683988845274427694659374506815090402679368847119214309412 872847601069944737601795634493541424099 2.2 Phần tử sinh g: g=1407166053903100832888279187262758404918908741267136140296782039167623 111 Section on Information and Communication Technology (ICT) - No 13 (6-2019) 712782160726503327343663996298299197281754517115315421875577266560675644 171643476323490152879308509416896514362246473923507912474282520495591593 698289135467272143181948842984084713986580688656193424172666483415788387 998503380984356119929288893109310657108836305548986000647616454579775420 319669475792311350419117305138328311145774137758847288327075620732571072 145129369829981634950867001563849028045482461369867179369611587701845984 95315513995870006888678139445175823538 (1792 bit) 2.3 Khóa bí mật x: x=1278702594052290932204553770336181149779446303726 x−1 =1=78949929196941749388200754408635888805981854924987701699945754248 98008752890152240189023211958895627489159720085461205000357350851961513 269331905176578746275099761068427242332 (581 bit) 2.4 Khóa cơng khai y: y=256226867856780258434349260283936493614630430236186611647577296293269 24219491794951748166497406001862189961055240322038548672546636549535279 00807116558889712398458908232198127807304712967709146928999732877178222 15451706190930402348810137463793444332826817964954602173526289980601241 45492592289422824219945376550035302224187385480882236651006327768565141 45848503651213258463896224896807182125721179306797307912549034468797266 69656106762084606448485486629860796179617591882798037425395139988764081 986465595175730847406663057609428526603484514 (1792 bit) Sinh chữ ký 2.1 Giá trị băm tập tin: M =3688A43481D893A943055F2F43D51BE2E17376433C6B9535F1D7F6FCC9FE332 AE7 94F3FDECC610A43FB2765470E37240372B6AC74AF3148490998B77B9F88598 2.2 Giá trị khóa phiên K: K=45894939739183446465600355321120718409875671873669959165512997999193 87669598575769495202140003526086655401 2.3 Chữ ký sinh: R=266152254149393604237151675338372158144898001142355929180119661795423 002913676043105790731009828464401438623769512167077097534821009846077652 941884804065675625914436078896337553679502183813916848582378133026561228 379798265299476983823776628492432194583517613502755857797214286665530032 140344330433140076257230163963981138065850141904092078908319909473256688 351602099543780373277380915677367864428214051435476662136796697123946952 825623868683095521082433647486853763833239625269740686743474138953706931 774465488038146410329418688585656948363( 1792 bit) S=169602705998183160037246459982528618296576667480398510986243038528629 58012940288565222833886113762436531275280960611164126766912319328188608 72038616318186133847044435894320192( 579 bit) 2.4 Thời gian sinh chữ ký: 1.673(s) Xác nhận chữ ký 3.1 Kết quả: Xác nhận chữ ký thành công! 112 Journal of Science and Technique - Le Quy Don Technical University - No 199 (6-2019) 3.2 Thời gian xác nhận chữ ký: 4.843(s) Tài liệu tham khảo [1] Phạm Văn Hiệp, Nguyễn Hữu Mộng, Lưu Hồng Dũng, "Một thuật tốn chữ ký xây dựng tính khó việc giải đồng thời hai tốn phân tích số logarit rời rạc", Tạp chí khoa học công nghệ, Đại học Đà nẵng, 2018 [2] Lê Văn Tuấn, Bùi Thế Truyền, Lều Đức Tân, "Phát triển lược đồ chữ kí số có độ an tồn dựa toán logarit rời rạc vành Zn ", Tạp chí Khoa học cơng nghệ Thơng tin Truyền thơng, Học viện Cơng nghệ Bưu viễn thơng, số 10, 2018 [3] Vũ Long Vân, Hồ Ngọc Duy, Nguyễn Kim Tuấn, Nguyễn Thị Thu Thủy, "Giải pháp nâng cao độ an toàn cho lược đồ chữ ký số", Hội thảo SOIS, Dec 2017 [4] Hoàng Văn Thức, "Hệ tiêu chuẩn an toàn cho hệ mã RSA ứng dụng", Luận án tiến sỹ, Hà Nội, 2011 [5] Chu Minh Yên, "Nghiên cứu xây dựng hạ tầng sở khóa cơng khai lĩnh vực An inh - Quốc phòng", Luận án tiến sĩ, 2012 [6] Lê Văn Tuấn, Bùi Thế Truyền, "Phát triển thuật toán SHANK giải toán logarit rời rạc vành Zn ", Tạp chí Nghiên cứu Khoa học cơng nghệ qn sự, số 48, Apr 2017 [7] Lê Văn Tuấn, Lều Đức Tân, "Phát triển thuật tốn Rho porllard tính cấp phần tử vành Zn ", Tạp chí Nghiên cứu khoa học công nghệ quân sự, số 49, 6-2017 [8] T ElGamal, "A public key cryptosystem and signature scheme based on discrete logarithms", IEEE Transaction on Information Theory, vol IT-31, no 4, pp 469 - 472, 1985 [9] W C Kuo, "On ElGamal Signature Scheme", Future Generation Communication and Networking (FGCN 2007), pp 151-153, 2007 [10] C P Schnorr, "Efficient signaturegeneration for smartcards", Journal of Cryptology, vol 4, pp 161-174, 1991 [11] B Yang, "A DSA-Based and Efficient Scheme for Preventing IP Prefix Hijacking", International Conference on Management of e-Commerce and e-Government, pp 87-92, 2014 [12] J Liu, X Cheng, and X Wang, "Methods to forge elgamal signatures and determine secret key", Advanced Information Networking and Applications, AINA, pp 859–862, 2006 [13] L Xiao-fei, S Xuan-jing and C Hai-peng, "An improved ElGamal digital signature algorithm based on adding a random number", 2nd International Conference on Networks Security, Wireless Communications and Trusted Computing, pp 236-240, 2010 [14] C Y Lu, W C Yang and C S Laih, "Efficient Modular Exponentiation Resistant to Simple Power Analysis in DSA-Like Systems", International Conference on Broadband, Wireless Computing, communication and Applications, pp 401-406, 2010 [15] H Zhang, R Li, L Li and Y Dong, "Improved speed Digital Signature Algorithm based on modular inverse", Proceedings of 2013 2nd International Conference on Measurement, Information and Control, pp 706-710, 2013 [16] Z Ping, W Tao and C Hao, "Research on L3 Cache Timing Attack against DSA Adopting Square-and-Multiply Algorithm", Fifth International Conference on Instrumentation and Measurement, Computer, Communication and Control (IMCCC), pp 1390-1393, 2015 [17] Le Van Tuan, Bui The Truyen, Leu Duc Tan, "Contructing the digital signature besed on the discrete logarithmic problem", The research journal of military science and technology, No 51a , ISSN 1859 – 1043, pp 44-56, 2017 [18] Le Van Tuan, Ta Minh Thanh, Leu Duc Tan "A solution to improve the digital signature schemes DSA in field Zp be secure from the situations of coinciding or revealing of session key", Journal of science and technology, technical universities, 2018 [19] S K Tripathi and B Gupta, "An efficient digital signature scheme by using integer factorization and discrete logaríthm problem", International Conference on Advances in Computing, Communications and Informatics (ICACCI), pp 1261-1266, 2017 [20] C.H Tan, X Yi and C K Siew, "Signature scheme based on composite discrete logarithm", Fourth International Conference on Information, Communications and Signal Processing, pp 1702-1706, 2003 [21] D.R Stinson, Cryptography Theory and Practice, CRC Press, 2003 Ngày nhận 14-05-2018; Ngày chấp nhận đăng 14-05-2019 113 Section on Information and Communication Technology (ICT) - No 13 (6-2019) Lê Văn Tuấn tốt nghiệp Đại học Đại học Thái Nguyên năm 1992, Thạc sĩ năm 2007 Tuấn nghiên cứu sinh Khoa Công nghệ thông tin, Học viện Kỹ thuật quân Bùi Thế Truyền nhận Kỹ sư Học viện Kỹ thuật quân năm 2000, tiến sĩ năm 2008 Hiện Truyền công tác Viện Công nghệ mô phỏng, Học viện Kỹ thuật quân Tạ Minh Thanh giảng viên Khoa Công nghệ thông tin, Học viện Kỹ thuật quân DEVELOPING THE ELGAMAL DIGITAL SIGNATURE SCHEME ON RING ZN PREVENT THE ATTACKS FROM REVEALING OR COINCIDING OF SESSION KEY Abstract The Elgamal digital signature scheme and its variants are based on the discrete logarithm problem on finite field Zp that are not secure when a session key is revealed or coincided Basing on the Elgamal digital signature scheme, we proposed two basic signature schemes Basing on these basic signature schemes we proposed a new signature scheme in which its security is based on the discrete logarithm problem on finite ring Zn We demonstrate that the proposed scheme is secure when a session key is revealed or coincided In addition, our scheme is correct, secure, and effective and it can be applied into practice 114 ... đắn lược đồ chữ ký chứng minh 3.2 Dựa lược đò sở đề xuất lược đồ chữ ký số Dựa hai lược đồ sở phát triển nhiều lược đồ chữ ký số Chẳng hạn lược đồ CS01 áp dụng [17] Bài báo đề xuất lược đồ chữ ký. .. lược đồ Elgamal, nhóm tác giả đề xuất lược đồ chữ ký số vành Zn với số đóng góp quan trọng báo này, là: Thứ nhất, xây dựng lược đồ chữ ký số sở vành Zn , từ đề xuất lược đồ chữ ký số dựa lược đồ. .. giả [17] phát triển lược đồ chữ ký số vành Zn Trong bào nhóm nghiên cứu phát triển lược đồ chữ ký số dựa lược đồ CS02, khắc phục an toàn tình lộ khóa phiên trùng khóa phiên Một đóng góp quan