Ứng dụng hệ mã hóa đồng cấu Elgamal và sơ đồ chia sẻ bí mật Shamir trong

Một phần của tài liệu nghiên cứu kết hợp sơ đồ chia sẻ bí mật shamir và hệ mã hóa elgamal, ứng dụng trong bỏ phiếu điện tử (Trang 46 - 70)

một số bài toán bỏ phiếu điện tử

3.3.1. Ứng dụng hệ mã hóa đồng cấu Elgamal cho bỏ phiếu đồng ý /không đồng ý

Bài toán:

Công ty X cần lấy ý kiến về việc tiếp tục sản xuất sản phẩm Y hay không? Các thành viên của công ty (gọi là cử tri) bỏ phiếu để quyết định bằng cách: đồ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 ?

Giải quyết:

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 và chọn các giá trị mi = {0,1}

tƣơng ứng với đồng ý hay không đồng ý.

Chọn phần tử sinh g, hệ mã hóa Elgamal đƣợc sử dụng ở đây có các khóa nhƣ sau: Ban kiểm phiếu chọn khóa bí mật a, tính khóa công khai h = ga

Ví dụ: Chọn phần tử sinh g=3, hệ mã hóa Elgamal đƣợc sử dụng ở đây có các khóa 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êu bí mật k để mã hóa lá phiếu m của mình thành

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

Hình 3.2 Sơ đồ bỏ phiếu đồng ý/ không đồng ý

Cử tri mã hóa lá phiếu

Các cử tri Vi 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êu k1, mã hóa V1 thành (x1,y1) = (g k1, h k1*gm1)

- V2 chọn ngẫu nhiêu k2, mã hóa V2 thành (x2,y2) = (gk2, hk2*gm2) - V3 chọn ngẫu nhiêu k3, mã hóa V3 thành (x3,y3) = ((gk3, gk3*gm3)

- V4 chọn ngẫu nhiêu k4 , mã hóa V4 thành (x4,y4) = (gk4, gk4*gm4) Ví dụ:

- V1 chọn ngẫu nhiêu k1 = 5, mã hóa V1 = 0 thành (x1,y1) = (35, 95*30) = (35,95) = (243, 59049).

- V2 chọn ngẫu nhiêu k2 = 3, mã hóa V2 = 1 thành (x2,y2) = (33, 93*31) = (33,93) = (27,2187)

- V3 chọn ngẫu nhiêu k3 = 3, mã hóa V3 = 1 thành (x3,y3) = ((33, 93*31) = (33,93)

=(81,19683)

- V4 chọn ngẫu nhiêu k4 = 7, mã hóa V4 = 0 thành (x4,y4) = (37, 97*30) = (37,97) = (2187,4182969)

Ban kiểm phiếu tính kết quả:

Ban kiểm phiếu 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.

1 2 1 2 1 2

1 1 2 2 1 2 1 2

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

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 ở ví dụ trên là:

1 2 3 4 1 2 3 4 1 2 3 4 4 4 18 18 2 1 1 ( , ) ( i, j) ( k k k k , k k k k v v v v ) (3 , 9 3 ). i j X Y x y g h g Giải mã (X,Y) bằng cách tính: m gv Y / Xa.

3.3.2. Sơ đồ chia sẻ bí mật Shamir kết hợp với hệ mã hóa Elgamal cho bài toán loại bỏ phiếu chọn L trong K. bỏ phiếu chọn L trong K.

3.3.2.1. Sơ đồ chia sẻ bí mật Shamir kết hợp với hệ mã hóa Elgamal (adsbygoogle = window.adsbygoogle || []).push({});

Bài toán:

Ban kiểm phiếu bầu cử của công ty X, có n thành viên (Aj). Mỗi một cử tri V cần gửi lá phiếu đã đƣợc mã hóa tới ban kiểm phiếu (lá phiếu đƣợc xem là bản tin mật gs). Vấn đề đặt ra là hãy đề xuất giải pháp bảo đảm để tất cả n thành viên nhất trí thì mới xem đƣợc thông tin mật (nội dung lá phiếu). Ít hơn n thành viên thì không thể xem đƣợc thông tin này.

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

Giải quyết:

Chọ số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải, g là phần tử sinh của Zp*. Trong ban kiểm phiếu mỗi thành viên Aj chọn khóa bí mật zj và khóa công khai zj

j

h g .

Ngƣời V chia tin mật gsthành n mảnh tin khác nhau, mã hóa chúng sau đó chuyển cho mỗi thành viên Aj một mảnh của bản mã. Khi tất cả các thành viên nhất trí xem tin mật thì họ sẽ khớp các mảnh tin lại và giải mã. Cụ thể là tích của các mảnh tin đã giải mã.

Sau đây là các bƣớc làm cụ thể:

Chia sẻ thông tin mật thành các mảnh tin – mẩu tin

- Ngƣời V chọn đa thức ngẫu nhiên bậc n thuộc Zp:

0 ( ) n k k k P x x - V chọn bí mật các hệ số s 0, i Zp - Ngƣời V tính các mảnh tin mật yj P j( ),j 1, 2...n - Các mảnh tin mật yj đƣợc mã hóa thành: p j( ) j j H h và V gửi Hjcho các thành viên Aj.

Khôi phục thông tin mật từ các mảnh tin

Ban kiểm phiếu khớp nối các mảnh tin mật Hj khi tất cả các thnfh viên Aj đều nhất trí. Đầu tiên từng ngƣời trong ban kiểm phiếu giải mã Hj bằng cách tính:

1/Zj

j j

S H

Theo quá trình trên, ta nhận đƣợc 1/Z ( ) 1/Z ( ) 1/Z ( )

( ) ((( )) )

j p j j Zj P j j p j

j j j

S H h g g

Sau đó tin mật gs đƣợc xác định nhờ tính chất đặc biệt sinh ra do sự phối hợp giữa sơ đồ Shamir và hệ mã hóa Elgamal:

, , , ( ) ( ) j A (0) j A j A j A p j p j p s j j A j A S g g g g Trong đó: , { } 1 j A l A j l j là hệ số Lagrange, A = {1,2…n}.

3.3.2.2. Ứng dụng sơ đồ kết hợp giải quyết bài toán loại bỏ phiếu chọn L trong K

Bài toán:

Giả sử có 3 ứng cử viên: A, B, C. Có 3 ngƣời kiểm phiếu là A1, A2, A3.

Đây là cuộc bỏ phiếu chọn 2 trong 3 ngƣời, cử tri không tin và một số thành viên trong ban kiểm phiếu, họ dùng sơ đồ chia sẻ bí mật Shamir để chia lá phiếu của

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

mình thành các mảnh tin và gửi cho mỗi ngƣời kiểm phiếu một mảnh. Vấn đề là ban kiểm phiếu phải khớp nối các mảnh tin để biết nội dung từng lá phiếu. Nội dung lá phiếu đƣợc chia thành nhiều mảnh tin, từng mảnh lại đƣợc mã hóa – mảnh mã trƣớc khi gửi về ban kiểm phiếu. (adsbygoogle = window.adsbygoogle || []).push({});

Giải quyết:

Hình 3.3 Sơ đồ bỏ phiếu chọn L trong K

Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là khó giải, g là phần tử sinh của Zp*.

Sử dụng sơ đồ chia sẻ bí mật Shamir và hệ mật Elgamal.

Biểu diễn sự lựa chọn ứng cử viên (nội dung phiếu bầu).

Cử tri V bầu cử cho ứng viên A và C tƣơng ứng với lựa chọn 0 và 2. Để diễn đạt sự lựa chọn của mình, cử tri dùng cơ số 3 để biểu diễn.

Nội dung lá phiếu của V đƣợc biểu diễn là: s = 0*30+2*31 = 6

Ban kiểm phiếu chuẩn bị

Trong ban kiểm phiếu, phần tử sinh g của Zp*, mỗi thành viên Aj chọn khóa bí mật

zjvà khóa công khai là h = gzj.

A1 chọn khóa bí mật z1 và khóa công khai h1 = g z1

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

A3 chọn khóa bí mật z3 và khóa công khai h3 = gz3

Ví dụ:

A1 chọn khóa bí mật z1 = 2 và khóa công khai h1 = 32

A2 chọn khóa bí mật z2 = 3 và khóa công khai h2 = 33

A3 chọn khóa bí mật z3 = 5 và khóa công khai h3 = 35

Cử tri V chia sẻ nội dung lá phiếu (tin mật) thành các mảnh tin

Với nội dung lá phiếu là s = 6, cử tri V chọn đa thức ngẫu nhiên bí mật:

P(x) = 6 +2x + 5x2, trong đó: 0 s 6, 1 2, 2 5.

V tính các mảnh tin mật: yj = P(xj) theo đa thức trên, ta thu đƣợc: P(1; P(2); P(3). Theo ví dụ trên ta thu đƣợc: P(1) = 13; P(2) = 30; P(3) = 57.

V mã hóa các mảnh tin mật trên thành: P j( )

j j H h , cụ thể là: (1) 1 1 P H h (2) 2 2 P H h (3) 3 3 P H h Ứng với ví dụ trên ta có: (1) 2 13 1 1P (3 ) H h (2) 2 30 2 2P (3 ) H h (3) 2 57 3 3P (3 ) H h

Cử tri V chuyển H1, H2, H3 tƣơng ứng cho các thành viên ban kiểm phiếu: A1, A2, A3

Ban kiểm phiếu khối phục nội dung lá phiếu (tin mật) từ các mảnh tin

Ban kiểm phiếu khớp nối các mảnh tin Hj khi tất cả n thành viên Aj đều nhất trí khôi phục lại nội dung lá phiếu.

Đầu tiên từng ngƣời kiểm phiếu Aj giải mã Hj bằng cách tính: 1/Zj

j j

S H

Theo các quá trình trên ta nhận đƣợc: 1/ ( ) 1/ ( ) 1/ (adsbygoogle = window.adsbygoogle || []).push({});

( ) ((( )) ) j j j j j Z P j Z Z P j Z P j j j S H h g g Cụ thể là: A1 giải mã H1 thành 2 13 1/2 13 1 ((3 ) ) 3 S A2 giải mã H2 thành 3 30 1/3 30 2 ((3 ) ) 3 S A3 giải mã H3 thành 5 57 1/5 57 3 ((3 ) ) 3 S

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

Bí mật gs đƣợc xác định nhờ tính chất đặc biệt sinh ra do sự phối hợp giữa sơ đồ chia sẻ bí mật Shamir và hệ mã hóa Elgamal.

, , , ( ) ( ) j A (0) j A j A j A p j p j p s j j A j A S g g g g Trong đó: , { } 1 j A l A j l j là hệ số Lagrange, A = {1,2…n}. Trong ví dụ trên hệ số Lagrange đƣợc tính nhƣ sau:

1 2 / (2 1) 3 / (3 1) 3 2 1 / (1 2) 3 / (3 2) 3 3 1 / (1 3) 2 / (2 3) 1 3 1 2 13 3 30 3 57 1 6 1 2 3 (3 ) (3 ) (3 ) 3 s g S S S

Đây chính là nội dung lá phiếu đã đƣợc khôi phục sau khi khớp nối các mảnh tin lại với nhau.

3.4. Khảo sát thực trạng tại Văn phòng UBND Tỉnh Tuyên Quang

3.4.1. Giới thiệu chung về Văn phòng UNND Tỉnh Tuyên Quang

Thông tin chung

Tên cơ quan: Văn phòng Ủy ban nhân dân tỉnh

Địa chỉ: Số 160 Trần Hƣng Đạo, Minh Xuân, TP Tuyên Quang, Tuyên Quang Điện thoại Văn thƣ: (027) 822484

Fax: (027) 822897

Email: ubndtq@gmail.com

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

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

3.4.2. Thực trạng các cuộc bỏ phiếu/bầu cử tại VP UBND Tỉnh

Qua khảo sát thực tế tại Văn phòng UBND tỉnh, có các hoạt động sử dụng hình thức bỏ phiếu/ bầu cử:

- Hội nghị lấy phiếu tín nhiệm bổ nhiệm chức danh . - Bầu cử hội đồng nhân dân cấp tỉnh, đại biểu quốc hội - Bầu cử ban chấp hành công đoàn, chi đoàn, …

3.4.3. Một số mẫu biểu liên quan

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

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

Mẫu danh sách cử tri

Hình 3.6 Mẫu danh sách cử tri

3.5. Xây dựng chƣơng trình bỏ phiếu điện tử

3.5.1. Khảo sát thực trạng và phát biểu bài toán

3.5.1.1. Bỏ phiếu dạng có/không

Qua khảo sát thực tế tại UBND Tỉnh Tuyên Quang, có thể thấy rằng hầu hết các hội nghị, cuộc họp, buổi báo cáo tổng kết… khi cần lấy ý kiến đánh giá của các đại biểu về một vấn đề nào đó đều thông qua hình thức biểu quyết giơ tay (đồng ý / không đồng ý).

Tuy nhiên cùng 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 đã đƣợc áp dụng vào các cuộc họp giao ban hành tuần/tháng/quý giữa lãnh đạo Tỉnh với các Huyện, Thành Phố, ngoài ra còn có các cuộc họp trực tuyến giữa lãnh đạo Tỉnh với các Bộ ban ngành khác. 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 bằng giơ tay không hiệu quả và thiếu tính khách quan (do camera đặt cố định, không bao quát hết các thành viên tham gia họp), bên cạnh đó do yêu cầu muốn

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

ẩn danh ý kiến biểu quyết của các đại biểu (đại biểu không muốn ban kiểm phiếu biết đƣợc mình 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 nhƣng không biết đƣợc từng nội dung của lá phiếu). (adsbygoogle = window.adsbygoogle || []).push({});

Từ yêu cầu thực tế đó, 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ã Elgamal (nội dung chi tiết thuật toán trình bày trong mục 3.1.2). Theo phƣơng pháp này thì nội dung lá phiếu sẽ đƣợc mã hóa và gửi về ban kiểm phiếu, ban kiểm phiếu không biết đƣợc nội dung lá phiếu nhƣng xác minh đƣợc nguồn gốc của lá phiếu, ban kiểm phiếu sẽ tính đƣợc kết quả của cuộc bỏ phiếu từ các lá phiếu đƣợc mã hóa.

3.5.1.2. Bỏ phiếu dạng chọn L trong K

Trong cuộc bỏ phiếu bầu cử hội đồng nhân dân cấp tỉnh khóa XII, có 168 ứng cử viên đƣợc chọn tại 24 tổ bầu cử, tại mỗi tổ bầu cử có 7 ứng cử viên và chọn ra 3 đại biểu hội đồng nhân dân: N1, N2,… N3. Ban kiểm phiếu gồm có 3 ngƣời bên gồm đại điện tổ bầu cử và 2 cử tri đƣợc chọn ngẫu nhiên bất kỳ: A1, A2, A3. Theo luật bầu cử và thể lệ bầu cử thì kết quả của cuộc bầu cử chỉ đƣợc công nhận khi có ít nhất là 2/3 số cử tri đi bầu cử, tuy nhiên không phải lúc nào các cử tri cũng có điều kiện đến trực tiếp để bầu cử và có không ít các cử tri không thể đến tận nơi để bầu cử. Do vậy, để giải quyết vấn đề này, có thể sử dụng phƣơng án bầu cử điện tử. Các cử tri gửi lá phiếu của mình tới ban kiểm phiếu thông qua mạng Internet.

Đây là cuộc bỏ phiếu chọn 3 trong 7 ngƣời, giả sử cử tri không tin vào độ trung thực của các thành viên trong ban kiểm phiếu, để giải quyết vấn đề họ đã chia lá phiếu của mình thành các mảnh tin và gửi cho mỗi ngƣời kiểm phiếu một mảnh. Ban kiểm phiếu chỉ có thể biết nội dung của lá phiếu khi và chỉ khi có đủ các thành viên của ban kiểm phiếu ghép các mảnh của lá phiếu lại với nhau. Nội dung lá phiếu đƣợc chia thành nhiều mảnh tin, từng mảnh lại đƣợc mã hóa – mảnh mã trƣớc khi gửi về ban kiểm phiếu.

Từ yêu cầu của bài toán và qua nghiên cứu tìm hiểu, luận văn sử dụng sơ đồ chia sẻ bí mật Shamir để chia nhỏ lá phiếu, phối hợp với tính chất đồng cấu của hệ mật Elgamal để khôi phục lại lá phiếu ban đầu khi có đủ các mảnh mã (nội dung chi tiết thuật toán trình bày trong mục 3.3).

3.5.2. Chương trình demo

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

Trong phần này, luận văn trình bày về cách thức xây dựng và sử dụng chƣơng trình Demo 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

Một phần của tài liệu nghiên cứu kết hợp sơ đồ chia sẻ bí mật shamir và hệ mã hóa elgamal, ứng dụng trong bỏ phiếu điện tử (Trang 46 - 70)