Giao thức 3

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu, nghiên cứu một số chữ ký đặc biệt dùng trong bỏ phiếu điện tử 04 (Trang 41 - 51)

Giao thức 4:

Do chữ ký đƣợc tạo ra là chữ ký không thể chối bỏ, ta có thể sử dụng giao thức chối bỏ của sơ đồ chữ ký không thể chối bỏ của David Chaum để thƣc hiện việc chứng minh chữ ký S không phải là chữ ký của P trên thông điệp m.

- Trƣởng nhóm Z công khai𝑔 và 𝑔 𝑠𝑖(mod N), 𝑆𝑖−1 (mod (N)) tƣơng ứng từng thành viên.

+ Bƣớc 1: V chọn ngẫu nhiên 2 số nguyên x1, x2 ∈Ф, tính c = 𝑆𝑥1 𝑔 𝑠 𝑥2mod N, sau đó gửi cho P.

+ Bƣớc 2: P tính d =(𝑐)𝑠−1mod N, gửi d cho V

+ Bƣớc 3: V thử điều kiện d ≠ 𝑚𝑥1𝑔 𝑥2mod N. Nếu đúng thì tiếp tục bƣớc 4. Nếu sai thì chữ ký đúng là của P.

+ Bƣớc 4: V chọn ngẫu nhiên 2 số nguyên tố𝑥1′, 𝑥2′∈Ф tínhc' = 𝑆𝑥1′ 𝑔 𝑠 𝑥2′mod N,sau đó gửi c‟ cho P .

+ Bƣớc 5: P tính d‟= 𝑐′ 𝑠−1mod N, sau đó gửi d‟ cho V

+ Bƣớc 6: V thử điều kiện d‟ ≠ 𝑚𝑥1′𝑔 𝑥2′mod N. Nếu đúng thì tiếp tục bƣớc 7. Nếu saithì chữ ký đúng là của P.

+ Bƣớc 7: V kiểm tra dg−x2 x1′≡ d′g−x2′ x1

mod N? Nếu đồng dƣ thức đùng thì kết luậnchữ ký không phải là của P. [6, 12]

Ví dụ:

Một ví dụ về sơ đồ chữ ký nhóm dựa trên hệ mật mã RSA

+ Thành lập một nhóm có 5 thành viên, quá trình cài đặt nhóm do ngƣờiquản lý nhóm thực hiện nhƣ sau :

Z chọn p = 101, q = 113, N = p.q = 11413, (N) = (p-1)(q-1) = 11200;

Zchọn khóa bí mật của Z là Sz = 149, gp = 3, hq = 2 là các phần tử sinh của𝑍𝑝∗ và

𝑍𝑞∗

Chọn a1 = 3, a2 = 7, b1 = 11, b2 = 13.

Tính 𝑔 = 𝑔𝑎1ℎ𝑎2mod N = 3456 và ℎ = 𝑔𝑏1ℎ𝑏2mod N = 2448 Các khóa bí mật của các thành viên nhƣ sau :

s1= 107,s2 = 113, s3 = 123, s4 = 129, s5 = 137

Khóa công khai của các thành viên (là nghịch đảo của khóa bímật của các thành viên trong trƣờng mod (N)) đƣợc gửi lên TPD nhƣsau không theo thƣ tự): 5443, 2577, 3187, 8769, 10873. Các khóa côngkhai này sẽ đƣợc ngƣời nhận thông điệp dùng để xác minh có đúng haykhông.

Khóa công khai của nhóm là:N = 11413v =Sz*ΠSi=3916191121461.

* Ký văn bản:

Ký văn bản m = 1234 thì chữ ký của từng thành viên lần lƣợt là: 278, 6093, 6541, 6528, 8331

* Xác nhận chữ ký (sử dụng giao thức 1)

Thành viên 1 muốn xác nhận chữ ký S = 278 đúng là của anh ta (gọi làP) trên văn bản m = 1234 với ngƣời xác nhận (gọi là V) thì anh tathực hiện giao thức xác nhận (giao thức 1) + Bƣớc 1: P chọn β = 57, chọn r = 23. Tính z1 = 123423 mod 11413 = 4016, z2 = 123423-57 = mod 11413= (1234-1)34 mod 11413 = 951734 mod 11413 = 2429. Tính các blobs: g = 1922, h = 4748, chọn r1 = 5,r2 = 7.

B(z1)= 4016.19225.47487mod 11413 = 8712 B(z2) = 2429.19225.47487mod 11413 = 1518

+ Bƣớc 2: V chọn b = 0 hoặc b = 1 rồi gửi cho P

+ Bƣớc 3: P gửi cho V

- Nếu b = 0 thìr = 23, β = 57,mở các blob g = 1922, h = 4748,r1 = 5,r2= 7, z1 = 4016, z2 = 2429

- Nếu b = 1 thì r = 107 + 23 = 130, z = 4016

+ Bƣớc 4: V xác định

- Nếu b = 0 thì r ∈(0, …, β) và kiểm tra z1= 4016, z2= 3418 sauđó kiểm tra B(4016) = 8712 và B(3418) = 5505 theo thứ tự nào đómà P đã gửi ở bƣớc 1. Nếu kiểm tra thỏa mãn thì chữ ký làđúng.

- Nếu b = 1 thì kiểm tra 1234130≡ 4016.278 (mod 11413) ↔9387 ≡9387. Do đó chữ ký là đúng.

* Chối bỏ chữ ký (sử dụng giao thức 4).

Giả sử thành viên thứ 1 ký thôngđiệp m = 1234, chữ ký S = 278, thành viên thứ ba muốn chứng minh rằngđó không phải là chữ ký của anh ta. Khi đó ngƣời quản lý nhóm công bố: N = 11413, 𝑔 = 1299,𝑔 𝑠= 4528 (mod N),s-1= 3187(mod(N)) (cho thành viên cần phải chứng minh biết P).

+ Bƣớc 1: V chọn x1 = 3, x2 = 5. Tính c = 2783.45285 (mod N) = 6595. Gửi c cho P.

+ Bƣớc 2: P tính d = 65953187(mod N) = 5172. Rồi gửi cho V

+ Bƣớc 3: V thử 5172 ≡ 12343.12995 (mod 11413)? →5172 4285

+ Bƣớc 4: V tính c‟ = 2784.45286 (mod N) = 1236 rồi gửi c‟ cho P

+ Bƣớc 5: P tính d‟ = 12363187 (mod N) = 6038 rồi gửi cho V

+ Bƣớc 6: V thử 6038 ≡ 12344.12996(mod 11413)? →6038694

+ Bƣớc 7: V kiểm tra 6038.1299−6 3 𝑚𝑜𝑑𝑁 =2682

5172.1299−5 4 𝑚𝑜𝑑𝑁 =2682

4/. Vấn đề“ mở ” chữ ký

Trong trƣờng hợp cần thiết, ngƣời quản lý nhóm có thể xác định một chữ ký là dothành viên nào trong nhóm ký bằng cách thực hiện giao thức chối bỏ với từng thànhviên trong nhóm.

Bởi vì chữ ký, mà mỗi thành viên ký là một chữ ký không thể chối bỏ, do đó nếusử dụng giao thức chối bỏ (giao thức 3) thì một thành viên sẽ không thể phủ nhận chữký mà mình đã ký. Và khi đó ngƣời quản lý nhóm sẽ biết đƣợc chữ ký đó là của ai.

5/. Nhận xét

Các sơ đồ chữ ký nhóm của David Chaum đều dựa trên hệ mã RSA và việc tính logaritrời rạc đối với một số nguyên tố lớn là khó. Các thông tin về ngƣời ký là an toàn,không ai trong nhóm có thể biết đƣợc (tất nhiên là trừ ngƣời đã ký).

Chữ ký đƣợc tạo ra là chữ ký không thể chối bỏ.

Độ dài của khóa công khai tuyến tính với số ngƣời trong nhóm, số ngƣời trong nhóm luôn cố định.

2.2.3.3. Sơ đồ chữ ký nhóm thứ ba

Năm 1997 Jan Camenish và Stadler đã đƣa ra sơ đồ chữ ký số nhóm này để khắc phục nhƣợc điểm của hai sơ đồ chữ ký nhóm của David Chaumtừ đó số thành viên trong nhóm có thể thƣờng xuyên thay đổi đƣợc.

Sơ đồ chữ ký số nhóm do Jan Camenish và Stadler gồm 5 thủ tục:

+ Setup: Sinh khóa công khai của nhóm và khóa bí mật của ngƣời quản lý nhóm

+ Join: Thủ tục tƣơng tác giữa ngƣời quản lý nhóm và một thành viên mới của nhóm để cung cấp cho thành viên này khóa bí mật và chứng nhận thành viên.

+ Sign: Thủ tục ký một thông điệp của một thành viên trong nhóm.

+ Verify: Thủ tục kiểm tra chữ ký trên một thông điệp xem có đúng là chữ ký của nhóm đó hay không.

+ Open: Là thủ tục để xác định xem chữ ký $ trên thông điệp m là của thành viên nào trong nhóm.

1/. Một số đinh nghĩa liên quan * Định nghĩa 1:

Một chữ ký dựa trên kiến thức về logarit rời rạc kép của y theo g, và a trên thông điệp m với một tham số an toàn l kí hiệu là :SKLOGLOGl 𝛼|𝑦=𝑔 𝑎𝛼 (m)

Chữ ký là một nhóm c s1 s2 sl ∈ 0,1 ∗ 𝑍𝑛∗phải thoản mãn:

c =Hl (m y g a P1 P2 Pl) Trong đó: c[i] là bit thứ i của c kể từ bên trái Pi = 𝑔 𝑎

𝑠𝑖 ↔ 𝑐 𝑖 = 0

𝑦 𝑎𝑠𝑖 ↔ 𝑐 𝑖 ≠ 0

* Định nghĩa 2

Một chữ ký dựa trên kiến thức về logarit rời rạc thành phần gốc thứ e  Zn của y theo gtrên thông điệp m đƣợc ký hiệu:

SKROOTLOGl 𝛼|𝑦 = 𝑔(𝛼𝑒) (m)

Là một nhóm (c, s1, s2, ..., sl)∈ 0,1 ∗ 𝑍𝑚∗phải thoản mãn: c =Hl (m, y, g, a, P1, P2, ..., Pl)

Trong đó: c[i] là bit thứ i của c kể từ bên trái

2/. Sơ đồ chữ ký

* Setup: Ngƣời quản trị nhóm chọn tham số an toàn l rồi làm các bƣớc sau :

+Dùng hệ mật RSA, chọn ncó độ dài tối thiểu là 21 bit, n = p*q,p = P + 1, q = 2Q + 1, trong đó p, q, P, Q là các số nguyên tố.

+ Chọn khóa công khai e và khóa bí mật d

+ Một nhóm Cyclic G = <g> (G có phần tử sinh là g) + Một phần tử ngẫu nhiên a∈𝑍𝑁∗.

+ Một số mũ λ và một hằng số μ >1, μ càng lớn thì hệ thống càng antoàn * Join: Một ngƣời muốn tham gia vào nhóm thì phải thực hiện các bƣớc sau:

+ Lấy một khóa bí mật ∈{0, 1, ..., 2λ − 1} + Tính y = a (mod n)

+ Tính khóa thành viên z = gy, ngƣời này sẽ sử dụngkhóa bí mật của mình để kýz.

+ Để có đƣợc chứng nhận thành viên của nhóm, anh ta gửi (y, z) cho ngƣờiquản lý nhóm, ngƣời quản lý nhóm sẽ cấp cho anh ta chứng nhận thành viên:

v≡(y+1)d(mod n)

*Sign: Để ký một thông điệp m, anh ta làm theo các bƣớc sau : + 𝑔 = g rvới r ∈Zn

+ 𝑧 = 𝑔 𝑦(= z r)

+ V1 = SKLOGLOGl[𝛼|𝑧 =𝑔 ](m) +V2 = SKROOTLOGl[ 𝛽|𝑧 𝑔 = 𝑔 𝛽](m)

Chữ ký trên thông điệp m gồm $ = (𝑧 ,𝑔 ,V1 , V2)

*Verify:Để xác thực chữ ký $ đúng là chữ ký trên m ta phải làm các bƣớc sau : + Kiểm tra V1 thỏa mãn𝑧 𝑔 = 𝑔 𝛼+1hay không

+ Kiểm tra V2 là chữ ký dựa trên hàm logarit rời rạc của phần tử gốc thứ e. *Open: Với chữ ký $= (𝑧 ,𝑔 ,V1 , V2) trên thông điệp m, ngƣời quản lý nhóm cóthể xác định ngƣời ký bằng cách kiểm tra xem𝑧 = 𝑔 𝑦𝑝, với mọi thành viên Pcủa nhóm với yp = a (mod n) = log ggyp = log gzpkhóa thành viênzp=gyp.

Chương 3. ỨNG DỤNG MỘT SỐ LOẠI CHỮ KÝ ĐẶC BIỆTTRONG HỆ THỐNG BỎ PHIẾU TỪ XA

3.1. VẤN ĐỀ BỎ PHIẾU TỪ XA 3.1.1. Khái niệm bỏ phiếu từ xa 3.1.1. Khái niệm bỏ phiếu từ xa

Bỏ phiếu “từ xa” đƣợc thực hiện từ xa trên mạng máy tính qua các phƣơng tiện “điện tử” nhƣ máy tính cá nhân, điện thoại di động,... Nhƣ vậy mọi ngƣời trong cuộc “không nhìn thấy mặt nhau” và các “lá phiếu” (lá phiếu “số”) đƣợc chuyển từ xa trên mạng máy tính tới “hòm phiếu”.

Cũng nhƣ cuộc bỏ phiếu truyền thống, cuộc bỏ từ xa phải bảo đảm yêu cầu: bí mật, toàn vẹn và xác thực của lá phiếu; mỗi cử tri chỉ đƣợc bỏ phiếu một lần, mọi ngƣời đều có thể kiểm tra tính đúng đắn của cuộc bỏ phiếu, cử tri không thể chỉ ra mình đã bỏ phiếu cho ai (nhằm loại bỏ khả năng mua bán phiếu), …

Yêu cầu bí mật lá phiếu là: ngoài cử tri, chỉ có Ban kiểm phiếu mới đƣợc biết nội dung lá phiếu, nhƣng họ lại không thể biết ai là chủ nhân của nó.

Yêu cầu toàn vẹn lá phiếu là: trên đƣờng truyền tin, nội dung lá phiếu không thể thay đổi, tất cả các lá phiếu đều đƣợc chuyển tới hòm phiếu an toàn, đúng thời gian, đƣợc kiểm phiếu đầy đủ.

Yêu cầu xác thực lá phiếu là: lá phiếu gửi tới hòm phiếu phải hợp lệ, đúng là của ngƣời có quyền bầu cử.

3.1.2. Tổ chức bỏ phiếu từ xa

Để tiến hành bỏ phiếu từ xa, ngƣời ta phải thực hiện hai công việc nhƣ sau: + Chuẩn bị hệ thống bỏ phiếu

+ Thực hiện bỏ phiếu

3.1.2.1. Chuẩn bị hệ thống bỏ phiếu

1/. Các thành phần kỹ thuật của hệ thống bỏ phiếu:

+ Hệ thống máy tính và các phần mềm phục vụ quy trình bỏ phiếu từ xa.

+ Ngƣời trung thực kiểm soát server nhằm đảm bảo yêu cầu bảo mật và toàn vẹn của kết quả bỏ phiếu.

+ Một số kỹ thuật bảo đảm an toàn thông tin: Chữ ký mù, mã hóa đồng cấu, chia sẻ bí mật, “chứng minh không tiết lộ thông tin”,...

2/. Các thành viên trong tổ chức bỏ phiếu:

+ Ban điều hành (ĐH): quản lý các hoạt động bầu cử, trong đó có thiết lập danh

sách cử tri, qui định cơ chế định danh cử tri.

+ Ban đăng ký (ĐK): Nhận dạng cử tri và ký cấp quyền bỏ phiếu cho cử tri.

+ Ban kiểm tra (KT): Để xác minh tính hợp lệ của lá phiếu (vì là phiếu đã mã hóa nên Ban kiểm phiếu không thể biết đƣợc lá phiếu có hợp lệ hay không).

+ Ban kiểm phiếu (KP): Kiểm phiếu và thông báo kết quả bỏ phiếu.

3.1.2.2. Quy trìnhbỏ phiếu từ xa

Để thực hiện bỏ phiếu từ xa có thể chia thành 3 giai đoạn chính:

 Đăng ký bỏ phiếu

 Bỏ phiếu

 Kiểm phiếu

1/. Giai đoạn đăng ký bỏ phiếu:

+ Cử tri gửi hồ sơ xin đăng ký bầu cử tới ban ĐK, hồ sơ gồm các minh chứng hợp lệ nhƣ: Chứng minh thƣ điện tử (CMTĐT), giấy xác nhận của địa phƣơng, chữ ký của cử tri,...

+ Ban ĐK thẩm định hồ sơ của cử tri

+ Nếu hồ sơ của cử tri hợp lệ, ban ĐK cấp cho cử tri một định danh bầu cử + Sau đó thực hiện cấp lá phiếu ẩn danh cho cử tri.

2/. Giai đoạn bỏ phiếu: + Cử tri:

 Lựa chọn ứng cử viên ghi lá phiếu ẩn danh

 Mã hóa lá phiếu, chuyển tới ngƣời xác minh trung thực (XMTT) + Ngƣời XMCT:

 Mã hóa lá phiếu lần thứ 2

 Gửi lá phiếu về hòm phiếu

3/. Giai đoạn kiểm phiếu và thông báo kết quả:

+ Ban KP tính kết quả dựa vào các lá phiếu (đã đƣợc ngƣời XMTT mã hóa gửi về).

3.2. BÀI TOÁN VỀ AN TOÀN THÔNG TIN TRONG BỎ PHIẾU TỪ XA 3.2.1. Giai đoạn Đăng ký bỏ phiếu 3.2.1. Giai đoạn Đăng ký bỏ phiếu

+ Bảo vệ hồ sơ của CT xin bầu cử: Để đảm bảo hồ sơ của cử tri đƣợc đảm bảo về nội dung không bị sửa chữa.

+ Ban bầu cử thẩm định hồ sơ của CT xin bầu cử: Đảm bảo tƣ cách bầu cử của mỗi cử chi.

+ Ẩn danh lá phiếu: Phòng tránh lá phiếu bị theo dõi.

+ Một cử tri đăng ký bỏ phiếu nhiều lần: Đảm bảo mỗi cử tri chỉ đƣợc bỏ phiếu đúng một lần. (ví dụ: Giả danh tên cử tri không bỏ phiếu)

+ Ban bầu cử ký nhiều lá phiếu cho cho 1 CT: Mỗi cử tri chỉ đƣợc cấp không quá một lá phiếu.

3.2.2. Giai đoạn bỏ phiếu

+ Bảo mật nội dung lá phiếu: Đảm báo nội dung lá phiếu không bị lộ (phiếu bị xem trộm)

+ Bảo toàn nội dung lá phiếu: Đảm báo nội dunglá phiếu không bị bị sửa đổi nội dung.

3.2.3. Giại đoạnkiểm phiếu

+ Thành viên ban KP thông gian: Có thể ngƣời kiểm phiếu thông gian với ứng cử viên để sửa nội dung lá phiếu

3.3. PHƢƠNG PHÁP GIẢI QUYẾT CÁC BÀI TOÁN VỀ THÔNG TIN TRONG BỎ PHIẾU TỪ XA BỎ PHIẾU TỪ XA

Quy trình bỏ phiếu từ xa đƣợc chi tiết trong hình 3.1

Hình 3.1.Quy trình bỏ phiếu điê ̣n tử

3.3.1. Bài toán trong Giai đoạn đăng ký bỏ phiếu

Quy trình đăng ký bỏ phiếu đƣợc chi tiết trong hình 3.2.

a/. Bảo vệ hồ sơ của cử tri xin bầu cử:

Giải quyết: Dùng phƣơng pháp mã hóa, chữ ký số, …

b/. Ban Bầu cử thẩm định hồ sơ của cử tri xin bầu cử:

Giải quyết: Dùng phƣơng pháp giải mã, kiểm tra chữ ký số, …

Cử tri

Ban đăng ký

Ban kiểm phiếu

Hòm phiếu Lá phiếu Lá phiếu Bảng niêm yết công khai Chứng minh không

tiết lộ thông tin

Mã hóa đồng cấu

Trộn phiếu

Sơ đồ chia sẻ bí mật Chữ ký mù

c/. Ẩn danh lá phiếu: Đề phòng lá phiếu bị theo dõi.

Giải quyết:Dùng phƣơng pháp chữ ký “mù”

Giả sử ban KP dùng sơ đồ chữ ký RSA (n, p, q, b, a).

Nếu CT chuyển ngay Số định danh x của mình cho ban KP thì sẽ nhận đƣợc chữ ký là Sig(x) = x a (mod n). Cử tri không làm nhƣ vậy vì có thể bị theo dõi lá phiếu.

Cử tri che dấu Số định danh x bằng bí danh y: y = Blind(x) = x * r b(mod n)

với r đƣợc chọn ngẫu nhiên sao cho tồn tại phần tử nghịch đảo r -1 (mod n). Cử tri gửi bí danh y cho ban KP.

Ban KP ký trên bí danh y đƣợc chữ ký z:

z = E(y) = Sig(Blind(x)) = Sig(x * rb) = (x * rb) a = xa * (rb)a= xa * r . Ban KP gửi chữ ký z cho CT.

CT “xoá mù” trên z sẽ nhận đƣợc chữ ký trên Số định danh x:

Unblind(z)=Unblind(Sig(blind(x)))=Unblind(xa * r)= (xa * r) * r -1 = x a (mod n). Cử tri đó có đƣợc chữ kí của ban KP trên x, đó là x a (mod n).

Một phần của tài liệu (LUẬN văn THẠC sĩ) tìm hiểu, nghiên cứu một số chữ ký đặc biệt dùng trong bỏ phiếu điện tử 04 (Trang 41 - 51)