6. Nội dung luận văn
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ã hóa hợp lệ mà bị mất đi hoặc xử lý sai.
Tính bí mật: Bảo đảm tính bí mật của lá phiếu riêng lẻ đƣợc đảm bảo bởi sự an toàn của hệ thống chia sẻ bí mật. Bất kì nhóm ít hơn t ngƣời kiểm phiếu đều không giải mã đƣợc lá phiếu.
Tính hợp pháp: Mỗi cử tri chỉ có thể có đƣợc 1 định danh. Định danh không hợp lý hoặc trùng sẽ bị loại. Lá phiếu không hợp lệ cũng sẽ không đƣợc tính.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Tính xác minh phổ thông: Bất kì ngƣời nào cũng có thể kiểm tra phần chứng minh tính hợp lệ của lá phiếu, tính tích các lá phiếu hợp lệ và xác minh tính đúng đắn của việc giải mã bằng cách kiểm tra việc sử dụng khóa bí mật của ban tổ chức.
3.3.5.2. Độ an toàn thuật toán
Mục tiêu chính của luận văn là nghiên cứu một số kỹ thuật đảm bảo an toàn thông tin trong bầu cử điện tử, cụ thể là trong giai đoạn kiểm phiếu điện tử. Vì vậy độ an toàn của hệ thống sẽ phụ thuộc vào độ an toàn của các thuật toán sử dụng trong chƣơng trình. Trong chƣơng trình có sử dụng một số thuật toán để đảm bảo an toàn thông tin nhƣ: mã hóa, chia sẻ bí mật, chứng minh không tiết lộ thông tin, chữ ký số, … Tuy nhiên tác giả chọn một thuật toán tiêu biểu là mã hóa trên đƣờng cong Elliptic để đánh giá độ an toàn.
Hệ mật đƣờng cong Elliptic thực hiện việc mã hóa và giải mã dựa trên tọa độ của các điểm dựa trên đƣờng cong Elliptic. Sự an toàn của hệ mật đƣờng cong Elliptic phụ thuộc vào độ khó của bài toán logarit rời rạc trên nó.
Bài toán logarit rời rạc đƣợc định nghĩa nhƣ sau: Cho một nhóm cyclic (G, *),
n là cấp của G và g là phần tử sinh của G. Với phần tử x G, tìm một số nguyên a
sao cho: g a = g….g = x.
Bài toán logarit rời rạc trên đƣờng cong Elliptic đƣợc đƣa ra nhƣ sau: cho đƣờng cong Elliptic E trên trƣờng hữu hạn Fp, một phần tử sinh P của nhóm G, điểm Q G và n là cấp của E(Fp). Tìm một số nguyên k sao cho: Q = k * P, cũng đƣợc biểu thị nhƣ k = logP Q .
Xét đẳng thức Q = k * P, với Q, P là các điểm nằm trên đƣờng cong Elliptic. Có thể khá dễ dàng tính Q khi biết k và P, nhƣng rất khó xác định k nếu biết Q và P. Phép nhân đƣợc xác định bằng cách cộng liên tiếp cùng điểm P.
Ví dụ: 4P = P + P + P + P; 9P = 2(2(2P)) + P.
Hệ mật dựa trên đƣờng cong Elliptic dựa trên độ khó khi biết đƣợc điểm P
và Q và phải tìm ra giá trị k. Hiện nay chƣa có thuật toán nào đƣợc xem là hiệu quả để giải quyết bài toán này.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
Bên cạnh công thức của đƣờng cong Elliptic thì một thông số quan trọng khác của đƣờng cong là điểm R (điểm cơ sở), điểm R đối với mỗi đƣờng cong Elliptic là cố định.
Trong hệ mật đƣờng cong Elliptic thì một số nguyên lớn k đóng vai trò nhƣ một khóa riêng, trong khi đó kết quả của phép nhân giữa k với điểm R đƣợc coi nhƣ khóa công khai tƣơng ứng.
Dƣới đây là bảng so sánh về độ dài khóa với cùng một cấp độ an toàn của hệ mã hóa EC-Elgamal và Elgamal. Chúng ta có thể thấy EC-Elgamal đạt đƣợc độ an toàn tƣơng đƣơng với Elgamal trong khi độ dài khóa nhỏ hơn.
Bảng 3.1: Bảng so sánh độ dài khóa giữa EC- Elgamal và Elgamal Security bits (Based on symmetric encryption) Elgamal EC - Elgamal
80 1024 160
112 2048 224
128 3072 256
192 7680 384
256 15360 512
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI
Kết luận
Sau một thời gian nghiên cứu và tìm hiểu luận văn “Nghiên cứu một số kỹ thuật an toàn thông tin dùng trong kiểm phiếu điện tử” đã đạt đƣợc một số kết quả nhƣ sau:
- Trình bày khái quát về bỏ phiếu điện tử, một số nguy cơ mất an toàn thông tin phát sinh trong giai đoạn kiểm phiếu điện tử.
- Giới thiệu một số kỹ thuật an toàn thông tin nhƣ: mã hóa, chữ ký số, chia sẻ bí mật, chứng minh không tiết lộ thông tin, …
- Cài đặt thử nghiệm thuật toán mã hóa trên đƣờng cong Elliptic kết hợp với sơ đồ chia sẻ bí mật Shamir.
Hạn chế
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
nhiều thiếu sót, chƣa hoàn chỉnh hết đƣợc các chức năng trong hệ thống bầu cử.
Hƣớng phát triển
Với việc nghiên cứu về một số kỹ thuật đảm bảo an toàn thông tin trong giai đoạn kiểm phiếu điện tử, tác giả sẽ nghiên cứu sâu hơn về hƣớng này và sẽ tìm hiểu thêm những phƣơng pháp, thuật toán khác nhằm xây dựng một hệ thống bầu cử an toàn và dân chủ trong thực tiễn.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Trịnh Nhật Tiến, Nguyễn Đình Nam, Trƣơng Thị Thu Hiền, Một số kỹ thuật Bỏ phiếu từ xa, Hội thảo Một số vấn đề chọn lọc của Công nghệ thông tin, Thái Nguyên, tháng 8 năm 2003.
[2] Trịnh Nhật Tiến, Trƣơng Thị Thu Hiền, Mã hóa đồng cấu và ứng dụng, Hội nghị khoa học cơ bản và ứng dụng CNTT toàn quốc lần thứ 1, Đại học Quốc