3.3.5.1. Khái niệm:
Khi bỏ phiếu từ xa, để đám bảo tính bí mật, cử tri phải mã hóa nội dung lá phiếu. Ban kiểm phiếu phải giải mã mới biết lá phiếu ghi gì. Có thể có một ngƣời hay một nhóm ngƣời trong ban kiểm phiếu muốn biết nội dung cũng nhƣ tác giả của lá phiếu, điều đó có thể dẫn đến rắc rối đối với cử tri sau này.
Để tránh những rắc rối trên, ngƣời ta sử dụng kĩ thuật “Trộn các lá phiếu”.
Theo kĩ thuật này thì danh tính của cử tri (ví dụ: nhƣ số định danh) không cần phải ẩn đi, vì số định danh cử tri và lá phiếu đã bị xáo trộn.
Với kỹ thuật này, cuộc bỏ phiếu đảm bảo đƣợc bí mật và kiểm soát đƣợc kết quả bỏ phiếu.
3.3.5.2. Kỹ thuật trộn các lá phiếu
1/. Giai đoạn bỏ phiếu:
Giả sử có n cử tri ghi ý kiến của mình vào lá phiếu, ban kiểm phiếu gồm m
ngƣời.
CT sử dụng khóa công khai của m ngƣời để mã hóa lá phiếu của mình. Nhƣ vậy mỗi cử tri phải mã hóa lá phiếu m lần (m bậc)
2/. Giai đoạn kiểm phiếu:
Ngƣời kiểm phiếu 1: Có n lá phiếu đã mã hóa.
- Anh ta chỉ giữ 1 khóa giải mã của mình nên chỉ giải mã bậc 1, không thể biết đƣợc nội dung lá phiếu nhƣng có thể biết ai đã gửi lá phiếu đó
- Sau khi giải mã bậc 1, anh ta hoán vị các lá phiếu đó một cách ngẫu nhiên. - Anh ta gửi hoán vị này cho các cử tri, họ sẽ biết hành trình của các lá phiếu để kiểm tra kết quả có đúng nhƣ lựa chọn của họ hay không.
- Mặt khác anh ta chuyển hoán vị các lá phiếu trên cho ngƣời kiểm phiếu thứ 2
Ngƣời kiểm phiếu 2: Thực hiện tƣơng tự các công việc nhƣ ngƣời kiểm phiếu 1. - Tức là giải mã bậc 2 cho các lá phiếu. Hoán vị các lá phiếu này một cách ngẫu nhiên gửi chúng cho ngƣời kiểm phiếu số 3
- Ngƣời kiểm phiếu tiếp theo sẽ thực hiện các việc tƣơng tự nhƣ ngƣời kiểm phiếu trƣớc đó.
Ngƣời kiểm phiếu thứ m: Nhận đƣợc toàn bộ các phiếu với đầy đủ nội dung. - Do thứ tự của các lá phiếu đã đƣợc thay đổi nên ngƣời kiểm phiếu 1 không nhận ra lá phiếu của ai mặc dù trƣớc đây anh đã biết [4].
3.3.5.3. Ví dụ “Trộn các lá phiếu” : + Có ba ứng cử viên: 1. Nguyễn Văn A 2. Đỗ Văn B 3. Lê Thị C + Có ba cử tri là : CT1, CT2, CT3
+ Ban kiểm phiếu gồm ba ngƣời là: KP1, KP2, KP3 Cuộc bỏ phiếu chọn một trong ba ngƣời
Ban kiểm phiếu dùng hệ mã hóa RSA cho việc mã hóa và giải mã nội dung lá phiếu.Mỗi thành viên trong ban kiểm phiếu đều có một khóa công khai b và một khóa bí mật a.
Cử tri sẽ dùng ba khóa công khai b để mã hóa ba lần lá phiếu của mình.
* Công việc chuẩn bị của ban kiểm phiếu :
+ Kiểm phiếu 1 chọn p1 = 3, q1 = 17 n1 = 51, (n1) = 32 Chọn b1 = 13 ngẫu nhiên nguyên tố cùng nhau với (n1)
Tìm a1=5 là nghịch đảo của b1 theo công thức a*b=1mod((n1)). Công khai (n1,b1) bí mật a1.
+ Kiểm phiếu 2 chọn p2 = 17, q2 = 31 n2 = 527, (n2) = 480 Chọn b2 = 91 ngẫu nhiên nguyên tố cùng nhau với (n2)
Tìm a2=211 là nghịch đảo của b1 theo công thức a*b=1mod(n). Công khai (n2,b2) bí mật a2.
+ Kiểm phiếu 3 chọn p3 = 577, q3 = 673 n3 = 388321, (n3) = 387072 Chọn b3 = 107 ngẫu nhiên nguyên tố cùng nhau với (n3)
Tìm a3=7235 là nghịch đảo của b1 theo công thức a*b=1mod(n).Công khai (n3,b3) bí mật a3
* Công việc của cử tri:
Bƣớc 1: Ghi nội dung lá phiếu. CT dùng hệ cơ số 5 để biểu diễn: + CT1 chọn ông A ông B tƣơng ứng với lựa chọn 1 và 2 Lá phiếu của cử tri 1 có dạng là v1 = 1*50 + 2*51 = 11 + CT 2 chọn ông A bà C tƣơng ứng với lựa chọn 1 và 3 Lá phiếu của cử tri 1 có dạng là v1 = 1*50 + 3*51 = 17 + CT 3 chọn ông B bà C tƣơng ứng với lựa chọn 2 và 3 Lá phiếu của cử tri 1 có dạng là v1 = 2*50 + 3*51 = 26 Bƣớc 2: Mã hóa nội dung lá phiếu
+ CT mã hóa lá phiếu của mình bằng khóa công khai của ba ngƣời kiểm phiếu. Do không gian thực hiện các phép tính của các thành viên trong ban kiểm phiếu là khác nhau (Tùy thuộc vào số n họ chọn) nên việc mã hóa lá phiếu theo thứ tự từ thấp đến cao của n (Bởi vì kết quả mã hóa thực hiện trong không gian lớn thì không thể giải mã trong không gian nhỏ hơn nó).
Trong ví dụ trên ta có n1<n2<n3 nên việc mã hóa lá phiếu theo thứ tự bằng khóa công khai của KP1, KP2 và KP3
+ CT1 mã hóa lá phiếu 11 thành 1113 mod 51 = 41 mã hóa tiếp thành 4191 mod 527 = 320 mã hóa tiếp thành 320107 mod 388321= 237827
Đây là giá trị lá phiếu sẽ đƣợc gửi tới ban kiểm phiếu
+ CT2 mã hóa lá phiếu 17 thành 1713 mod 51 = 17 mã hóa tiếp thành 1791 mod 527 = 17 mã hóa tiếp thành 17107 mod 388321= 328336
Đây là giá trị lá phiếu sẽ đƣợc gửi tới ban kiểm phiếu
+ CT3 mã hóa lá phiếu 26 thành 2613 mod 51 = 8 mã hóa tiếp thành 891 mod 527 = 70 mã hóa tiếp thành 70107 mod 388321= 370057
Đây là giá trị lá phiếu sẽ đƣợc gửi tới ban kiểm phiếu
Danh sách các lá phiếu đã đƣợc mã hóa nhƣ sau: {237827, 328336, 370057} * Công việc giải mã phiếu của ban kiểm phiếu:
Việc giải mã sẽ đƣợc thực hiện theo thứ tự ngƣợc lại với việc mã hóa.
Trong ví dụ trên do n1<n2<n3 nên việc giải mã lã phiếu theo thứ tự bằng khóa bí mật của KP3, KP2 và cuối cùng bằng khóa bí mật của KP1.
KP3 giải mã bậc 1:
Anh ta biết ai đã gửi những lá phiếu đã mã hóa đó.
Đó là những lá phiếu đã đƣợc mã hóa bằng khóa công khai của ba ngƣời kiểm phiếu nên anh ta không thể tự mình giải mã cả ba lần để biết nội dung lá phiếu
+ KP3 giải mã bậc 1: bằng khóa a3 = 7235 nhƣ sau Giải mã phiếu CT1: 2378277235mod388321 = 320 Giải mã phiếu CT2:3283367235mod388321 = 17 Giải mã phiếu CT3:3700577235mod388321 = 70
KP3 thu đƣợc danh sách các lá phiếu sau lần giải mã bậc 1 là {320,17,70} KP3 hoán vị danh sách này một cách ngẫu nhiên ví dụ thành {17,320,70} Danh sách này đƣợc chuyển đến ngƣời kiểm phiếu KP2
+ KP2 giải mã bậc 2: bằng khóa a2 =211 nhƣ sau 17211 mod 527 = 17
320211 mod 527 = 41 70211 mod 527 = 8
KP2 thu đƣợc danh sách các lá phiếu sau lần giải mã bậc 2 là {17,41,8} KP2 hoán vị danh sách này một cách ngẫu nhiên ví dụ thành {8,41,17} Danh sách này đƣợc chuyển đến ngƣời kiểm phiếu KP1
+ KP1 giải mã bậc 3 bằng khóa a1 = 5 nhƣ sau: 85 mod 51 = 26
415 mod 51 = 11 175 mod 51 = 17
KP1 thu đƣợc danh sách các lá phiếu sau lần giải mã bậc 3 là {26, 11, 17} Đó là sự lựa chọn của các cử tri.
Chương 4. THỬ NGHIỆMCHƢƠNG TRÌNH KÝ MÙ RSA