Link download báo cáo và chương trình Demo:
http://www.mediafire.com/?27ed16vdgbrtht3
Tài khoản admin:
TK: admin
MK: buithedo
Ứng dụng hệ mã hóa đồng cấu Elgamal cho loại bỏ phiếu có/ không
a) Bài toán
Cần lấy ý kiến về một việc nào đó, cử tri phải ghi vào lá phiếu: đồng ý (1) hay không đồng ý (0). Nội dung lá phiếu được mã hoá và gửi về Ban kiểm phiếu. Vấn đề là Ban kiểm phiếu tính kết quả bỏ phiếu như thế nào, trong khi không biết nội dung từng lá phiếu ? (Vì chúng đã đượcmã hoá).
b) Giải quyết
b.1 Cử tri ghi ý kiến vào lá phiếu
Giả sử có 4 cử tri tham gia bỏ phiếu là V1,V2, V3, V4. Lá phiếu tương ứng của họ ghi: v1 = 0 (không đồng ý), v2 = 1 (đồng ý), v3 = 1, v4 = 0.
Chọn phần tử sinh g =3, hệ mã hoá Elgamal được sử dụng ở đây với các khoá như sau:
Khóa bí mật a = 2, khóa công khai h = ga =32 = 9.
Mỗi cử tri Vi, chọn khóa ngẫu nhiên bí mật k đề mã hóa lá phiếu m của mình thành (x, y) = (gk, hk gv).
b.2 Cử tri mã hóa lá phiếu
V1 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V1 chọn ngẫu nhiên k1 = 5, mã hóa v1 = 0 thành (x1, y1) = (35, 95 * 30 ) = (35, 95).
V2 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V2 chọn ngẫu nhiên k2 = 3, mã hóa v2 = 1 thành (x2, y2) = (33, 93 * 31 ) = ( 33, 93 * 3).
V3 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V3 chọn ngẫu nhiên k3 = 3, mã hóa v3 = 1 thành (x3, y3) = (33, 93 * 31 ) = (33, 93 * 3).
V4 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V4 chọn ngẫu nhiên k4 = 7, mã hóa v4 = 0 thành (x4, y4) = (37, 97 * 30 ) = (37, 97 ).
b.3 Ban kiểm phiếu tính kết quả
Ban KP không cần giải mã từng lá phiếu, vẫn có thể tính được kết quả bỏ phiếu bằng cách tính nhân các lá phiếu đã được mã hóa:
(x1,y1)*(x2,y2) = (x1x2, y1y2) = (g k1+k2, hk1+k2 gv1+v2).
Theo tính chất đồng cấu thì tích của phép nhân trên chính là kết quả bỏ phiếu. Cụ thể tích của 4 giá trị lá phiếu đã được mã hóa là:
(X, Y) = (Πi xi , Πi yi) = (gk1+k2+k3+k4 , hk1+k2+k3+k4 g v1+v2+v3+v4) = (318, 918 * 32).
Giải mã (X, Y) bằng cách tính:
m = gv =Y/X a = 918 *32 /(318)2 = 32
Như vậy số phiếu đồng ý (ghi 1) là 2.
0 nhận xét:
Đăng nhận xét