Ứng dụng hệ mã hóa trên đƣờng cong Elliptic trong bầu cử điện tử

Một phần của tài liệu 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ử (Trang 55)

6. Nội dung luận văn

3.1.Ứng dụng hệ mã hóa trên đƣờng cong Elliptic trong bầu cử điện tử

3.1.1. Các đối tượng của hệ thống bầu cử

Hệ thống bỏ phiếu điện tử gồm các đối tƣợng sau:

- Trạm bỏ phiếu: là nơi thu thập các lá phiếu, có trách nhiệm tổng hợp và công bố kết quả cuối cùng của cuộc bầu cử. Ngoài ra, khi tất cả các lá phiếu đƣợc thu thập và tổng hợp, nó phải đƣợc giải mã và lƣu trữ trên một hệ thống tin cậy, đảm bảo an toàn và các lá phiếu phải kiểm chứng đƣợc.

- Cử tri: họ là những ngƣời có quyền tham gia bỏ phiếu.

- Hệ thống lƣu trữ khóa tin cậy: hệ thống này có trách nhiệm tạo, lƣu trữ các khóa riêng và công bố các khóa công khai. Khóa công khai của cuộc bầu cử phải đƣợc chứng nhận để đảm bảo tính xác thực của nó.

3.1.2. Thiết lập

Xét một cuộc bầu cử điện tử với m ứng viên.

- Hệ thống lƣu trữ khóa sinh ra một đƣờng cong Ellipitc E trên trƣờng hữu hạn Fp.

- Xác định một nhóm con cyclic G của E(Fp) và G có phần tử sinh P - n là bậc của P và h là phần phụ đại số của G trong E(Fp): h = #E(Fq)/n

Sau đó, hệ thống lƣu trữ khóa tạo khóa bí mật d bằng cách chọn ngẫu nhiên d

trong đoạn [1, n-1], tính khóa công khai Q = d * P và công bố tất cả các tham số công khai, khóa bí mật d đƣợc lƣu trữ tại một nơi an toàn.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Tiếp theo, hệ thống lƣu trữ tạo ra m điểm {M1,…, Mm} thuộc đƣờng cong, mỗi điểm đại diện cho một ứng cử viên khác nhau (tức là ta nhúng thông tin đại diện cho m ứng cử viên thành m điểm trên đƣờng cong Elliptic).

3.1.3. Bỏ phiếu

Giả sử một cử tri T muốn bỏ phiếu bầu cho một ứng cử viên, quá trình bầu cử của cử tri này gồm 3 bƣớc: Lựa chọn ứng cử viên; Kiểm tra hồ sơ cử tri; Xác minh lá phiếu.

Bƣớc 1: Lựa chọn ứng cử viên

Giả sử điểm MCT là điểm trên đƣờng cong đại diện cho sự lựa chọn của cử tri T, ta thực hiện các bƣớc sau:

Mã hóa MCT bằng khóa công khai Q. Lá phiếu đã đƣợc mã hóa CT = EQ(MCT) - Tính chữ ký số của lá phiếu đã đƣợc mã hóa.

- Gửi CT cùng với chữ ký của nó đến trạm bỏ phiếu.

Bƣớc 2: Kiểm tra hồ sơ cử tri

Khi các trạm bỏ phiếu nhận đƣợc một lá phiếu, việc đầu tiên hệ thống sẽ kiểm tra tính hợp lệ của chữ ký số. Tiếp đó, hệ thống kiểm tra xem cử tri có trong danh sách đƣợc phép bầu cử không và đảm bảo rằng cử tri chƣa bỏ phiếu trƣớc đó. Trong trƣờng hợp này, cử tri phải chứng minh đƣợc lá phiếu của mình đƣợc là hợp lệ.

Bƣớc 3: Xác minh lá phiếu

Cử tri phải chứng minh rằng, bản rõ lá phiếu của mình tƣơng ứng với một điểm đại diện cho một trong những ứng cử viên. Điều này đƣợc thực hiện bằng phƣơng tiện chứng minh không tiết lộ thông tin. Nếu tất cả các kiểm tra là chính xác, lá phiếu đƣợc ký và các dữ liệu cần thiết sẽ đƣợc thông báo công khai (để bất kỳ ai cũng có thể kiểm tra đƣợc tính đúng đắn của nó).

3.1.4. Mở phiếu bầu

Khi cuộc bầu cử kết thúc, ban kiểm phiếu bắt đầu giải mã phiếu và thống kê phiếu bầu. Quá trình này đƣợc chia thành ba bƣớc: giải mã, kiểm soát phiếu và công bố kết quả.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

Bƣớc 1: Giải mã: Khi cuộc bầu cử kết thúc, các trạm bỏ phiếu có một tập các gói đƣợc tổng hợp lại và phải giải mã chúng. Hệ thống lƣu trữ khóa sẽ đƣa ra các khóa để giải mã chúng.

Bƣớc 2: Kiểm soát phiếu: Khi mỗi lá phiếu đã đƣợc giải mã, trạm bỏ phiếu cộng tất cả các lá phiếu để cuối cùng kiểm soát kết quả bầu cử.

Bƣớc 3: Công bố kết quả

Cuối cùng, kết quả bầu cử đƣợc thông báo trên các bảng thông báo. Và tại cuối cuộc bầu cử, các bảng thông báo chứa tất cả thông tin cần thiết để xác minh tính đúng đắn của toàn bộ quá trình. Đó là:

1) Kết quả bầu cử (số lƣợng phiếu bầu của mỗi ứng cử viên). 2) Danh sách cử tri (tên và khóa công khai của mỗi cử tri). (adsbygoogle = window.adsbygoogle || []).push({});

3) Phiếu đã nhận cùng với chữ ký số của chúng và bằng chứng về tính đúng đắ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 (adsbygoogle = window.adsbygoogle || []).push({});

Để đả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. (adsbygoogle = window.adsbygoogle || []).push({});

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 “” khi đó hệ thống đƣa ra thông báo xác nhận lại

Một phần của tài liệu 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ử (Trang 55)