6. Nội dung luận văn
3.2. Ứng dụng sơ đồ chia sẻ bí mật Shamir trong kiểm phiếu điện tử
Trong bỏ phiếu từ xa, để đảm bảo bí mật, cử tri 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ì. Thực tế có thể có một ngƣời hay một nhóm ngƣời của ban kiểm phiếu muốn biết trƣớc nội dung lá phiếu để thực hiện gian lận bầu cử (ví dụ sửa lại nội dung lá phiếu). Để bảo đảm một ngƣời hay một nhóm ngƣời của ban kiểm phiếu không thể biết trƣớc nội dung lá phiếu, ngƣời ta dùng kỹ thuật “chia sẻ bí mật”. Ví dụ:- Chìa khóa để giải mã nội dung lá phiếu đƣợc chia thành m mảnh, mỗi ngƣời trong ban kiểm phiếu giữ một mảnh và phải đảm bảo rằng một nhóm ngƣời ít hơn m không thể khôi phục đƣợc khóa giải mã.- Bản thân nội dung lá phiếu có thể đƣợc chia thành m mảnh. Cử tri gửi cho m thành viên của ban kiểm phiếu, mỗi ngƣời giữ một mảnh, và phải đảm bảo rằng một nhóm ngƣời ít hơn m không thể xác định đƣợc nội dung lá phiếu.
Với kỹ thuật này, cuộc bỏ phiếu bảo đảm đƣợc bí mật và kiểm soát đƣợc kết quả bỏ phiếu: cụ thể là tránh gian lận phiếu.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Theo sơ đồ chia sẻ bí mật Shamir ngƣỡng (t,n), khóa bí mật s có thể đƣợc chia sẻ cho n thành viên Aj (1 j n), mỗi ngƣời sở hữu một mảnh sj. Việc khôi phục khóa bí mật s chỉ có thể đƣợc thực hiện khi có ít nhất t thành viên nhất trí.
Khóa bí mật s đƣợc khôi phục lại theo công thức jA
A j j s s , , trong đó j A l A j j l l \ , là hệ số Lagrange.
Mỗi thành viên Ajgiữ bí mật mảnh khóa sj, nhƣng công khai giá trị
j
h sj
g .
Không cần khóa gốc s, bản rõ m có thể tính đƣợc từ các mảnh khóa sj theo giao thức:
1). Mỗi thành viên Aj công khai sj
j x
w và chứng minh không tiết lộ thông tin về sj, bằng cách cho biết: logg hj logxwj .
(Chú ý : sj j x w suy ra xwj xxsj sj log log sj j g h suy ra j s g j gh g j s log log ) 2). Tính Bản rõ m theo công thức : A j j A j s s s j jA jA A j A j j w y x y x y x y m , , , . .
Trong đó A là tập con các thành viên truyền các chứng minh không tiết lộ thông tin.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.1: Sơ đồ chia sẻ ngƣỡng A (t,m) trong giai đoạn kiểm phiếu 3.3. Chƣơng trình thử nghiệm
3.3.1. Môi trường cài đặt và thử nghiệm
Chƣơng trình thử nghiệm đƣợc viết bằng ngôn ngữ C#.Net trên bộ Visual Studio 2012 sử dụng phiên bản Net Framework 4.0. Dữ liệu của chƣơng trình đƣợc lƣu trữ trong hệ quản trị cơ sở dữ liệu Microsoft Access.
3.3.2. Phát biểu bài toán
Với sự phát triển của khoa học kỹ thuật, nhu cầu trao đổi thông tin nhanh chóng và tiết kiệm thì hình thức họp trực tuyến, lấy ý kiến thăm dò dƣ luận về các vấn đề quan trọng trong xã hội đƣợc sử dụng phổ biến. Trong hình thức họp trực tuyến, khi cần lấy biểu quyết về một vấn đề nào đó thì biểu quyết giơ tay không hiệu quả và thiếu tính khách quan, bên cạnh đó do yêu cầu muốn ẩn danh ý kiến biểu quyết của các đại biểu. Trong hình thức lấy ý kiến thăm dò dƣ luận, số lƣợng ngƣời tham gia lấy ý kiến đông, thuộc các thành phần, vùng miền khác nhau để đảm bảo tính chính xác và khách quan thì cần có hệ thống bầu cử từ xa để dễ dàng thực hiện việc lấy ý kiến nhƣ lấy ý kiến dƣ luận trên mạng Internet, mạng điện thoại di động. Ƣu điểm của các cuộc họp, khảo sát thăm dò ý kiến trực tuyến đó là: cử tri (ngƣời cho ý kiến) đƣợc ẩn danh, ban kiểm phiếu sẽ không biết cử tri biểu quyết là đồng ý hay không đồng ý, ban kiểm phiếu chỉ có thể biết đƣợc tổng số phiếu bầu nhƣng không biết đƣợc nội dung từng lá phiếu.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Từ yêu cầu đó, luận văn đƣa ra phƣơng án giải quyết dựa trên tính chất đồng cấu của hệ mã hóa trên đƣờng cong Elliptic kết hợp với sơ đồ chia sẻ bí mật ngƣỡng Shamir.
Luận văn sử dụng chƣơng trình mô phỏng nhằm kiểm chứng tính đúng đắn của bài toán kết hợp sơ đồ chia sẻ bí mật Shamir và hệ mã hóa trên đƣờng cong Elliptic ứng dụng trong bỏ phiếu lấy ý kiến về việc áp dụng chuẩn tin học và ngoại ngữ đối với sinh viên.
Dữ liệu đầu vào của chƣơng trình là các lá phiếu hợp lệ của cử tri. Với chƣơng trình mô phỏng bỏ phiếu lấy ý kiến về việc áp dụng chuẩn tin học và ngoại ngữ đối với sinh viên, trên lá phiếu có ba sự lựa chọn: “A. Có, nên áp dụng đối với sinh viên”, “B. Không, như thế sẽ gây khó khăn cho sinh viên”, “C. Tôi không quan tâm tới vấn đề này” . Lá phiếu hợp lệ là lá phiếu có chọn một trong ba phƣơng án trên.
Dữ liệu ra của chƣơng trình là bảng kết quả thống kê số phiếu bầu của từng phƣơng án, phƣơng án đƣợc lựa chọn nhiều nhất. Và quan trọng nhất là kết quả của chƣơng trình phải đảm bảo an toàn, trung thực đáp ứng đƣợc các tính chất của một cuộc bầu cử điện tử: tính bí mật, tính toàn vẹn, yêu cầu xác thực lá phiếu.
3.3.3. Thiết kế phần mềm
Để đảm bảo đƣợc cuộc bỏ phiếu lấy ý kiến dƣ luận về việc áp dụng chuẩn tin học và ngoại ngữ đối với sinh viên cho kết quả trung thực đáp ứng đƣợc các tính chất của cuộc bầu cử điện tử nhƣ: tính bí mật, tính toàn vẹn, yêu cầu xác thực lá phiếu thì cần áp dụng một số kỹ thuật bảo đảm an toàn thông tin nhƣ: mã hóa, chia sẻ bí mật, chữ ký số, chứng minh không tiết lộ thông tin, … Mỗi kỹ thuật trên là một bài toán nhỏ trong chuỗi các bài toán đảm bảo an ninh thông tin của cuộc bầu cử điện tử.
Cụ thể trong luận văn này tác giả đi sâu vào nghiên cứu kỹ thuật mã hóa trên đƣờng cong Elliptic, sơ đồ chia sẻ bí mật Shamir. Với các yêu cầu đó ta phải giải quyết các bài toán con sau:
Bài toán 1: Mã hóa lá phiếu
Input: Bản rõ lá phiếu hợp lệ của cử tri, tham số a,b, số nguyên tố p. Output: Bản mã lá phiếu là tọa độ 2 điểm trên đồ thị C1(x1, y1), C2(x2, y2).
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bài toán 2: Chia sẻ khóa bí mật giải mã lá phiếu
Input: Khóa bí mật giải mã lá phiếu s, số nguyên tố p, số lƣợng mảnh khóa n. Output: Các mảnh khóa sj
Bài toán 3: Ghép mảnh khóa
Input: Các mảnh khóa sj, số nguyên tố p. Output: Khóa bí mật giải mã lá phiếu s.
Bài toán 4: Giải mã lá phiếu
Input: Bản mã lá phiếu, khóa bí mật giải mã lá phiếu s.
Output: Bản rõ lá phiếu hợp lệ của cử tri.
3.3.4. Giao diện chương trình và kết quả thử nghiệm
Chƣơng trình bỏ phiếu lấy ý kiến dƣ luận về việc áp dụng chuẩn tin học và ngoại ngữ đối với sinh viên đƣợc xây dựng với ba chức năng chính: Ban bầu cử tạo dữ liệu cho ban kiểm phiếu và cử tri, cử tri bỏ phiếu, ban kiểm phiếu thực hiện kiểm phiếu tính kết quả cuộc bầu cử. Để thực hiện ba chức năng chính đó thì giao diện chính của chƣơng trình nhƣ sau:
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
1./ Ban bầu cử tạo cơ sở dữ liệu cho ban kiểm phiếu và cử tri
Ban bầu cử đăng nhập vào hệ thống với tƣ cách là quản trị viên và thực hiện chức năng tạo cơ sở dữ liệu cho ban kiểm phiếu và cử tri.
Để đăng nhập vào hệ thống ban bầu cử nhấn nút “HT lƣu trữ khóa”, sau đó nhập TÊN ĐĂNG NHẬP và MẬT KHẨU nhƣ hình:
Hình 3.3: Ban bầu cử đăng nhập vào hệ thống lƣu trữ khóa
Ban bầu cử đăng nhập vào hệ thống thành công: chƣơng trình thông báo “Đã đăng nhập thành công với vai trò ban quản trị”, ngƣợc lại chƣơng trình hiện thông báo “Tên đăng nhập không đúng hoặc mật khẩu sai”. Khi đó ban bầu cử phải đăng nhập lại vào hệ thống.
Sau khi ban bầu cử đăng nhập vào hệ thống thành công chƣơng trình hiển thị màn hình chính của Hệ thống lƣu trữ khóa.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.4: Giao diện chính của hệ thống lƣu trữ khóa
Ban bầu cử thực hiện:
Tạo dữ liệu cho ban kiểm phiếu bằng cách nhấn vào nút “Tạo dữ liệu cho ban kiểm phiếu”. Ví dụ: Ban kiểm phiếu có 3 thành viên nhiệm vụ của ban bầu cử sẽ sinh ngẫu nhiên ba mảnh khóa và cấp cho mỗi ngƣời một mảnh.
Hình 3.5: Thông báo tạo cơ sở dữ liệu cho ban kiểm phiếu thành công
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.6: Thông báo tạo dữ liệu cho cử tri thành công
Hình 3.7: Bảng danh sách cử tri
Sau khi ban bầu cử tạo cơ sở dữ liệu cho cử tri thành công thì bảng danh sách cử tri đã có các thành phần: a, b, p, điểm sinh, khóa công khai.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
2./ Cử tri bỏ phiếu
- Cử tri tham gia đăng nhập vào hệ thống bầu cử với tên truy cập và mật khẩu mà ban bầu cử cấp bằng cách nháy chuột vào nút “Đăngnhập bỏ phiếu”.
Hình 3.9: Cử tri đăng nhập hệ thống
Hệ thống sẽ thông báo “Bạn chưa đăng nhập đúng” nếu cử tri nhập chƣa chính xác TÊN ĐĂNG NHẬP hoặc MẬT KHẨU của mình, khi đó cử tri phải đăng nhập hệ thống lại. Ngƣợc lại hệ thống thông báo “Bạn đã đăng nhập thành công”, nếu là lần đăng nhập đầu tiên hệ thống sẽ đƣa ra thông báo tiếp theo “Bạn hãy thay đổi mật khẩu mặc định của hệ thống”. Sau khi đăng nhập hệ thống bầu cử thành công cử tri đã có thể chọn phƣơng án để bỏ phiếu nhƣ hình sau:
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.10: Giao diện cử tri bỏ phiếu
Trên giao diện cử tri bỏ phiếu, cử tri có thể thay đổi thông tin của mình nhƣ: MẬT KHẨU, SỐ CMT ĐIỆN TỬ, HỌ ĐỆM, TÊN, NGÀY SINH, GIỚI TÍNH, ĐỊA CHỈ THƢỜNG TRÚ. Sau khi thay đổi xong thông tin thì cử tri nhấp chuột vào nút “CẬP NHẬT”, hệ thống sẽ tự động cập nhật thông tin mà cử tri vừa thay đổi vào cơ sở dữ liệu của hệ thống.
Cử tri bỏ phiếu bằng cách: tích chuột vào phƣơng án mà mình lựa chọn sau đó nhấp chuột vào nút “BỎ PHIẾU”, hệ thống sẽ đƣa ra thông báo xác nhận “Bạn đã chắc chắn với phương án lựa chọn chưa?”, lúc này cử tri vẫn có thể thay đổi lựa chọn của mình bằng cách nhấn chuột vào nút “Không” rồi thay đổi lại phƣơng án lựa chọn, ngƣợc lại nhấn nút “Có” khi đó hệ thống đƣa ra thông báo xác nhận lại phƣơng án mà cử tri đã lựa chọn. Hệ thống sẽ tự động đăng xuất tài khoản của cử tri sau khi cập nhật phƣơng án lựa chọn vào cơ sở dữ liệu của hệ thống.
3./ Ban kiểm phiếu thực hiện kiểm phiếu và tính kết quả.
Sau khi các cử tri hoàn thành việc bỏ phiếu, nhiệm vụ của ban kiểm phiếu là tiến hành giải mã các lá phiếu để kiểm phiếu. Việc giải mã các lá phiếu đƣợc thực hiện bằng cách ghép các mảnh khóa của các thành viên ban kiểm phiếu lại sau đó thực hiện giải mã các lá phiếu. Nếu thiếu bất kỳ một mảnh khóa nào của thành viên ban kiểm phiếu thì việc kiểm phiếu sẽ không thực hiện đƣợc. Vì vậy việc kiểm phiếu sẽ đƣợc thực hiện khi tất cả thành viên trong ban kiểm phiếu đăng nhập vào hệ thống bầu cử và gửi mảnh khóa mà mình giữ.
Ban kiểm phiếu đăng nhập vào hệ thống bầu cử bằng TÊN ĐĂNG NHẬP và MẬT KHẨU do ban bầu cử cấp bằng cách nháy chuột vào nút “Đăng nhập kiểm phiếu”.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.11: Giao diện ban kiểm phiếu đăng nhập hệ thống
Sau khi nhập TÊN ĐĂNG NHẬP và MẬT KHẨU, các thành viên ban kiểm phiếu nháy chuột vào nút “Đăng nhập”. Hệ thống thông báo “Bạn chưa đăng nhập đúng” nếu thành viên ban kiểm phiếu đăng nhập với TÊN ĐĂNG NHẬP hoặc MẬT KHẨU sai, khi đó ban kiểm phiếu phải đăng nhập lại. Ngƣợc lại, hệ thống thông báo “Bạn đã đăng nhập thành công với vai trò ban kiểm phiếu”.
Hình 3.12: Giao diện mảnh khóa
Sau khi đăng nhập hệ thống bầu cử thành công, ban kiểm phiếu có thể đổi mật khẩu đăng nhập bằng cách nhấn nút “Đổi mật khẩu”. Từng thành viên ban kiểm phiếu phải thực hiện một công việc quan trọng đó là gửi mảnh khóa mà mình đang giữ tới cơ sở dữ liệu của hệ thống bằng cách nhấn nút “Gửi khóa”, hệ thống đƣa ra thông báo xác nhận việc gửi khóa của các thành viên, nếu không đồng ý gửi
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
mảnh khóa của mình thì nhấn nút “Không”, ngƣợc lại nhấn nút “Có”, khi đó hệ thống sẽ hiển thị thông báo “Đã submit khóa thành công”.
Tất cả các thành viên của ban kiểm phiếu đồng ý gửi mảnh khóa mà mình giữ khi đó đã có thể tiến hành kiểm phiếu bằng cách nháy chuột vào nút “Kiểm phiếu”, hệ thống sẽ đƣa ra thông báo “Đã tổng hợp đủ các mảnh khóa nhấn OK để ghép các mảnh khóa”, tiếp tục nhấn “OK” hệ thống đƣa ra thông báo xác nhận “Các mảnh khóa đã khớp nhấn OK để kiểm phiếu” lúc này hệ thống sẽ tự động ghép các mảnh khóa lại thành khóa bí mật để giải mã các lá phiếu bằng cách áp dụng công thức nội suy Lagrangre khôi phục khóa bí mật. Nhƣ vậy, nhờ áp dụng giao thức chia sẻ bí mật Shamir hệ thống bầu cử sẽ phòng tránh đƣợc bài toán “Thành viên ban kiểm phiếu thông gian sửa đổi nội dung lá phiếu”.
Sau khi nhấn “OK” hệ thống đƣa ra kết quả cuộc bỏ phiếu nhƣ sau:
Hình 3.13: Kết quả cuộc bầu cử
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Hình 3.14: Kết quả cuộc bầu cử trên cơ sở dữ liệu của hệ thống
Trên cơ sở dữ liệu: bảng CuTri sẽ đƣợc công khai, trên đó có hiển thị sự lựa chọn của cử tri ở cột “Chon” tuy nhiên nhìn vào đó cử tri không thể chứng minh cho ngƣời khác biết đƣợc mình đã lựa chọn phƣơng án nào vì lựa chọn đó đã bị mã hóa bởi hệ mã hóa trên đƣờng cong Elliptic thành tọa độ hai điểm trên đồ thị, nhƣ vậy sẽ giải quyết đƣợc bài toán chống mua bán phiếu bầu.
Kết quả thực nghiệm chƣơng trình thu đƣợc: bảng thống kê đƣa ra đƣợc số phiếu bầu cho các phƣơng án và phƣơng án đƣợc lựa chọn nhiều nhất. Và trên hết đó là kết quả của cuộc bầu cử đảm bảo đƣợc các tính chất: tính bí mật của lá phiếu, tính toàn vẹn lá phiếu và yêu cầu xác thực của lá phiếu.
3.3.5. Đánh giá
3.3.5.1. Các tính chất đạt được
Tính toàn vẹn: Khi bảng thông báo đƣợc đƣa ra công khai, không thể có lá phiếu nào đƣợc mã hóa mà có thể bị xóa khỏi bảng, vì bất kì ngƣời nào cũng có thể chứng minh đƣợc tính hợp lệ của lá phiếu. Vì vậy không có lá phiếu nào đƣợc mã