Cấu trúc chương trình

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu kỹ thuật an toàn thông tin trong kiểm phiếu điện tử ứng dụng cho trường trung học phổ thông chuyên hạ long​ (Trang 58 - 71)

4. Nội dung và bố cục của luận văn

3.3.2 Cấu trúc chương trình

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 bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trường THPT chuyên Hạ Long. Trên thực tế, để thiết kế được một chương trình hoàn chỉnh, ngoài modul mã hóa và giải mã còn cần rất nhiều modul hỗ

trợ khác như: phân tách các câu hỏi và xác định dạng lựa chọn cho từng câu hỏi, xác thực quyền bầu cử của cử tri, phân bổ khóa,… Tuy nhiên, do giới hạn về mặt thời gian nghiên cứu nên luận văn chỉ tập trung vào ba nội dung như đã trình bày trong phần 3.2.2.

Chương trình Demo được xây dựng trên nền phần mềm Matlab 2019b. Cấu trúc chương trình cụ thể như sau: Chương trình chính; Nhóm các thủ tục cho câu hỏi dạng “có/không”; Nhóm các thủ tục cho câu hỏi dạng “chọn 1 trong K”; Nhóm các thủ tục cho bài toán chữ ký số Elgamal.

3.3.2.1 Chương trình chính

Gồm file main.fig để tạo ra giao diện sử dụng và file main.m cho việc thực thi các thủ tục: câu hỏi dạng “có/không”, câu hỏi dạng “chọn 1 trong K”, xác thực theo chữ ký số Elgamal.

3.3.2.2 Nhóm các thủ tục cho câu hỏi dạng “có/không”

Gồm một số các file với các mục đích cụ thể được mô tả trong Bảng 3.1 Bảng 3.1. Các file chính để minh họa bỏ phiếu dạng có/không đồng ý

Tên File Mục đích

Elgamal.fig Tạo giao diện GUI trên nền Matlab thuận tiện cho việc sử dụng Elgamal.m Tiến hành các thủ tục khi người dùng thao tác trên giao diện

GUI của chương trình bỏ phiếu có/không đồng ý

phieubauck.m Tạo ngẫu nhiên n phiếu hợp lệbầu đại diện cho sự lựa chọn của

n cử tri

guiphieuck.m Mã hóa phiếu bầu theo thuật toán mã hóa Elgamal

kiemphieuck.m Giải mã phiếu bầu và đưa ra kết quả theo dựa trên tính chất đồng cấu của thuật toán mã hóa Elgamal

3.3.2.3 Nhóm các thủ tục cho câu hỏi chọn 1 trong K

Gồm một số các file với các mục đích cụ thể được mô tả trong Bảng 3.2

Bảng 3.2. Các file chính để minh họa bỏ phiếu với câu hỏi dạng “chọn 1 trong K”

Shamir_Elgamal.fig Tạo giao diện GUI trên nền Matlab thuận tiện cho việc sử dụng

Shamir_Elgamal.m Tiến hành các thủ tục khi người dùng thao tác trên giao diện GUI của chương trình bỏ phiếu “chọn L trong K

khoitaolk.m Tạo khóa bí mật và công khai theo thuật toán mã hóa Elgamal

manglk.m

Tạo ngẫu nhiên một phiếu bầu hợp lệ (gồm L bít 1 đại diện cho lựa chọn đồng ý L ứng viên tương ứng với L trong K vị trí)

taophieulk.m Tạo ngẫu nhiên n phiếu bầu hợp lệ đại diện cho sự lựa chọn của n cử tri

guiphieulk.m

Mã hóa phiếu bầu theo thuật toán mã hóa Elgamal. Ứng với mỗi lá phiếu, tính toán N mảnh phiếu chia sẻ bí mật Shamir để gửi cho N thành viên ban kiểm phiếu

ketqualk.m

Các thành viên ban kiểm phiếu ghép các mảnh phiếu theo thuật toán chia sẻ bí mật Shamir, giải mã phiếu bầu và đưa ra kết quả theo dựa trên tính chất đồng cấu của thuật toán mã hóa Elgamal. Sắp xếp và hiển thị thứ tự trúng cử của L trong

K ứng viên.

3.3.2.4 Nhóm các thủ tục cho chữ ký số Elgamal

Gồm một số các file với các mục đích cụ thể được mô tả trong Bảng 3.3 Bảng 3.3. Các file chính để minh họa Bài toán bỏ phiếu có/không đồng ý

Tên File Mục đích

chukiso.fig Tạo giao diện GUI trên nền Matlab thuận tiện cho việc sử dụng chukiso.m Tiến hành các thủ tục khi người dùng thao tác trên giao diện

signature.m Tính giá trị R và S từ bản tin x và trả về chữ kí số gồm bộ ba (m, R, S)

signatureCheck Kiểm tra tính hợp lệ của chữ kí số từ bộ ba (m, R, S), trả về kết quả “hợp lệ” hay “không hợp lệ”

Kết quả thử nghiệm và đánh giá

3.4.1.1 Chương trình chính

Chạy file main.m ta được giao diện như Hình 3.5. Trên giao diện này, để tiến hành phân tích hoạt động của kỹ thuật mã hóa khóa công khai Elgamal cho bài toán bỏ phiếu điện tử dạng có/không đồng ý ta click chuột vào nút Mã hóa công khai Elgamal. Để phân tích sự kết hợp của mã hóa Elgamal với sơ đồ chia sẻ khóa bí mật Shamir cho dạng câu hỏi “chọn 1 trong K” ta click chuột vào nút Chia sẻ khóa Shamir. Để phân tích hoạt động của chữ ký số trong xác thực cử tri ta click chuột vào nút Chữ ký số Elgamal.

3.4.1.2 Chương trình Mã hóa công khai Elgamal

Hình 3.6.Minh họa sử dụng mã hóa Elgamal với các câu hỏi dạng có/không Trên giao diện của chương trình chính, click chuột vào nút Mã hóa công khai Elgamal hoặc chạy chương trình Elgamal.m ta được giao diện như Hình 3.6.

 Bước 1. Khởi tạo khóa bí mật và công khai

Từ giao diện của chương trình, ta nhập giá trị của phần tử sinh g cũng như khóa bí mật a. Sau khi click vào nút khởi tạo, khóa công khai h được tính theo công thức

a

hg . (Ví dụ trong Hình 3.6 là chọn g2, a3ta được h8).

 Bước 2. Bỏ phiếu

Do không có điều kiện thực hiện thực tế chương trình mô phỏng sẽ giả lập ngẫu nhiên số cử tri và nội dung phiếu bầu tương ứng.

Trên giao diện của chương trình, ta nhập giá trị của số cử tri n và khi click vào nút bỏ phiếu, chương trình phieubauck.m được gọi và cho ta kết quả bầu cử của n

phiếu với bít 1 đại diện cho đồng ý và 0 đại diện cho sự lựa chọn không đồng ý. Cụ thể trong ví dụ trên, khi chọn n=15, kết quả ngẫu nhiên được tạo ra như sau:

Kết quả này tương đương với kết quả thu được khi khảo sát nhóm học sinh 15 em về việc thực hiện nề nếp của cô giáo dạy toán Trần Thị Hiền với lựa chọn 1 là

thực hiện nề nếp và 0 là đôi khi còn chưa đúng giờ (xem Hình 3.3). Sở dĩ học viên lựa chọn n=15 vì đây là số lớn nhất cho phép mọi hoạt động của thuật toán trên cửa sổ chương trình, tiện cho việc đanh giá.

 Bước 3. Gửi phiếu

Khi click vào nút gửi phiếu, chương trình guiphieuck.m sẽ tạo ra n giá trị k ngẫu nhiên ứng với n cử tri. Từ các giá trị ngẫu nhiên này sẽ tiến hành mã hóa sự lựa chọn của các học sinh theo thuật toán mã hóa Elgamal. Tương ứng với mỗi sự lựa chọn T của cử tri (0 hoặc 1), một cặp mã ( , )x y (gk,h gk T) được gửi đến ban kiểm phiếu. Trên Hình 3.6 mô tả chi tiết các giá trị ngẫu nhiên và nội dung phiếu bầu sau khi sử dụng mã hóa Elgamal.

 Bước 4. Kiểm phiếu

Khi click vào nút kiểm tra, thay vì giải mã từng cặp phiếu chương trình

kiemphieuck.m sẽ dựa trên tính chất đồng cấu của thuật toán mã hóa Elgamal để tính giá trị (X,Y) từ n cặp (x,y)nhận được, sau đó giải mã ra giá trị kq

mg (với kq là tổng số phiếu đồng ý). Kết quả giải mã là 6 học sinh có ý kiến cô giáo thực hiện nề nếp và 9 học sinh có ý kiến cô giáo đôi khi còn chưa đúng giờ. Tính trực tiếp bằng tay cho thấy kết quả này hoàn toàn đúng. Tính ưu việt của mã hóa Elgamal được thể hiện qua một số vấn đề sau:

- Khi học sinh bày tỏ ý kiến, thay vì gửi đi lựa chọn 0 hoặc 1, một cặp số (x,y) sẽ được gửi đi. Với cặp số này không ai biết học sinh lựa chọn là 0 hay 1. Ngay cả học sinh cũng không thể chứng minh cho người khác là mình đã chọn 0 hay 1 vì giá trị k sinh ra ngẫu nhiên.

- Ở bên kiểm phiếu không cần giải mã riêng từng lựa chọn (x,y) của mỗi học sinh mà đợi khi có đầy đủ 15 cặp mới tiến hành tính (X,Y) và đưa ra kết luận cuối cùng. Điều này cho thấy lựa chọn của học sinh được ẩn danh hoàn toàn, cho phép học sinh phát biểu đúng chính kiến mà không sợ bị trù dập.

Trên cơ sở các kết quả đạt được học viên đã kiểm thử hoạt động của chương trình mô phỏng với số lượng cử tri lớn hơn. Kết quả cho thấy chương trình vẫn hoạt động nhanh và chính xác khi số cử tri là 2000.

3.4.1.3 Chương trình Chia sẻ khóa Shamir

Hình 3.7.Minh họa sử dụng kết hợp mã hóa khóa công khai Elgamal và sơ đồ chia sẻ bí mật Shamir với các câu hỏi dạng “chọn 1 trong K”

Trên giao diện của chương trình chính, click chuột vào nút Chia sẻ khóa Shamir hoặc chạy chương trình Shamir_Elgamal.m ta được giao diện như Hình 3.7

 Bước 1. Khởi tạo khóa bí mật và công khai

Từ giao diện của chương trình, ta nhập giá trị của modul p, phần tử sinh g, số ứng viên K, số ứng viên được lựa chọn L và số thành viên ban kiểm phiếu N. Sau khi click vào nút khởi tạo, khóa bí mật của các thành viên Ziđược tạo ra. Tương ứng là khóa công khai hi được tính theo công thức Zi

i

hg .

Trên thực tế, khi áp dụng vào bài toán nhận xét giáo viên tại trường THPT chuyên Hạ Long, để lấy ý kiến của học sinh về phương pháp giảng dạy của thầy giáo Phạm Văn Ninh dạy môn Toán (xem Hình 3.2), học sinh phải chọn 1 trong 4 lựa chọn. Trong trường hợp này L=1 và K=4. Giả sử để tránh vấn đề kết quả kiểm phiếu có thể bị làm sai lệch bởi một người, khi kiểm phiếu phải có mặt đồng thời các thành viên trong ban kiểm phiếu bao gồm Hiệu trưởng, Tổ trưởng chuyên môn và chính

giáo viên được đánh giá. Điều này được minh họa trên Hình 3.7 với N=3. Chọn p23 2

g  , và giải định các khóa bí mật của 3 thành viên trong ban kiểm phiếu lầ lượt là

Zi=[ 2 3 0] ta được khóa công khai cho mỗi thành viên ban kiểm phiếu lầ hi=[ 4 8 1]

 Bước 2. Bỏ phiếu

Trên giao diện của chương trình, ta nhập giá trị của số cử tri n và khi click vào nút bỏ phiếu, chương trình taophieulk.m được gọi và cho ta kết quả bầu cử của n

phiếu hợp lệ với bít 1 đại diện cho đồng ý và 0 đại diện cho sự lựa chọn không đồng ý với mỗi phương án (trong K phương án tối đa). Cụ thể trong Hình 3.7, khi chọn

n=6 (để trước mắt tiện cho việc đánh giá trực quan), kết quả của lựa chọn và phiếu bầu tương ứng được gửi đi. Ví dụ học sinh thứ nhất lựa chọn là (0 0 0 1) tương ứng với lựa chọn phương pháp dạy học của Thầy có sử dụng đồ dùng học và công nghệ thông tin.

Khi click vào nút gửi phiếu, chương trình guiphieulk.m sẽ tiến hành mã hóa sự lựa chọn của các cử tri theo thuật toán mã hóa Elgamal, dùng thuật toán chia sẻ bí mật Shamir tạo ra N mảnh ứng với mỗi phiếu để gửi cho N thành viên ban kiểm phiếu. Trong ví dụ trên, mảnh phiếu được tạo ra của em học sinh thứ nhất là: S=(56, 187, 438)

 Bước 4. Kiểm phiếu

Khi click vào nút kiểm phiếu, thay vì giải mã từng cặp phiếu chương trình

ketqualk.m sẽ dựa trên tính chất đồng cấu của thuật toán mã hóa Elgamal và thuật toán chia sẻ bí mật Shamir để ghép các mảnh phiếu và giải mã ra số lượng cử tri lựa chọn đối với mỗi ứng viên. Tiếp đó, sắp xếp thứ tự các lựa chọn theo thứ tự số phiếu giảm dần để có cơ sở đánh giá. Với ví dụ trên ta có các mảnh phiếu được ghép lại là Sghép= [15 6 9 9 15 6]. Sau khi giải mã thu được kết quả các lựa chọn là LC= [1 3 0 2]. Kết quả này có thể thấy bằng trực quan trên cửa sổ phần mềm. Diều này cho thấy thuật toán hoạt động đúng. Học viên cũng đã kiểm chứng khi số lượng học sinh là 2000, kết quả chương trình vẫn hoạt động tốt.

3.4.1.4 Chương trình Chữ ký số Elgamal

Hình 3.8.Minh họa việc xác thực chữ kí số Elgamal

Trên giao diện của chương trình chính, click chuột vào nút Chia sẻ khóa Shamir hoặc chạy chương trình chukiso.m ta được giao diện như Hình 3.8.

 Bước 1. Khởi tạo khóa bí mật và công khai

Từ giao diện của chương trình, ta nhập giá trị của phần tử sinh g cũng như khóa bí mật a. Sau khi click vào nút khởi tạo, khóa công khai h được tính theo công thức

mod p

a

hg (ở đây ta chọn p= 467).

 Bước 2. Gửi chữ kí

Nội dung kí chính là mã học sinh (Giả sử nhập mã cử tri =100). Từ số này, khi click vào nút gửi chữ kí, chương trình signature.m được gọi, tính toán và gửi đi bộ ba số (m, R, S) là (100, 29, 51) đến ban kiểm phiếu.

Khi click vào nút kiểm tra chữ kí, chương trình signatureCheck.m sẽ dựa trên bộ ba số (m, R, S) nhận được để xác định xem cử tri là hợp lê hay không hợp lệ.

Kết luận chương 3

Như đã giới thiệu trong các phần trước, mục tiêu của luận văn là chứng minh khả năng áp dụng bỏ phiếu điện tử cho bài toán bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trường THPT chuyên Hạ Long. Về mặt tổng quát, bài toán này được đưa về hai dạng “có không” hoặc “chọn 1 trong K”. Để đảm bảo đảm bảo yêu cầu bí mật, toàn vẹn, xác thực của lá phiếu, luận văn sử dụng hệ mật Elgamal kết hợp với kỹ thuật chia sẻ khóa bí mật Shamir, chữ kí số Elgamal.

Sử dụng hệ mật Elgamal với tính chất đồng cấu sẽ cho phép kiểm tra kết quả tổng phiếu thay cho việc kiểm tra đơn lẻ trong bài toán bầu cử có không. Kỹ thuật chia sẻ khóa bí mật Shamir sẽ tạo phân quyền trong ban kiểm phiếu để chống gian lận trong bài toán bỏ phiếu “chọn 1 trong K”. Chữ ký số cho phép xác thực người gửi. Chương trình mô phỏng cho thấy kết quả đúng với lý thuyết và mang lại ưu thế vượt trội về mặt thời gian cũng như khắc phục được những “lỗi do con người” so với bỏ phiếu thông thường, đặc biệt khi số lượng cử tri là lớn.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Bỏ phiếu điện tử là một chủ đề nghiên cứu hấp dẫn vì có thể áp dụng trong rất nhiều bài toán thực tế. Đây cũng là một bài toán phức tạp nhưng sẽ được giải quyết nếu ta biết ứng dụng các kỹ thuật an toàn thông tin. Trong đó, việc ứng dụng hệ mật mã Elgamla, chữ ký số Elgamal, sơ đồ chia sẻ ngưỡng Shamir là một giải pháp tốt.

Sau một thời gian tìm hiểu nghiên cứu, luận văn đã trình bày được các vấn đề sau:

- Tìm hiểu lý thuyết chung về an toàn thông tin điện tử, tập trung sâu vào vấn đề an toàn thông tin trong bỏ phiếu điện tử dùng mật mã và chữ ký số.

- Tìm hiểu lý thuyết về hệ mã hóa khóa công khai Elgamal, chữ ký số Elgamal, sơ đồ chia sẻ ngưỡng Shamir và ứng dụng của các kỹ thuật này trong việc đảm bảo an toàn thông tin của bỏ phiếu điện tử

- Xây dựng chương trình mô phỏng đánh giá khả năng triển khai các kỹ thuật trên trong bài toán bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trường THPT chuyên Hạ Long

Trong quá trình thử nghiệm chương trình, các kết quả mô phỏng cho thấy hoàn toàn có thể triển khai các kỹ thuật này trong thực tế. Tuy nhiên, bài toán mô phỏng vẫn chỉ dừng lại trong phạm vi nghiên cứu của đề tài là chứng minh tính đúng đắn về cơ sở lý thuyết. Vì vậy, theo quan điểm của học viên, đề tài còn có một số hướng phát triển sau:

- Thử nghiệm hệ thống với số lượng cử tri lớn hơn để đánh giá khả năng tính toán của hệ thống khi áp dụng tính đồng cấu.

- Xây dựng chi tiết, đầu đủ phần cứng và phần mềm nhằm triển khai thực tế bài toán bỏ phiếu, kiểm phiếu nhận xét giáo viên tại trường THPT chuyên Hạ Long mà cốt lỗi là ba kỹ thuật đảm bảo an toàn thông tin đề xuất trong luận văn.

- Nghiên cứu các phương pháp tấn công, các giải pháp khắc phục, các hệ mã hóa và chữ ký số tiên tiến hơn nhằm nâng cao tính an toàn thông tin cho hệ thống.

Do giới hạn về thời gian nghiên cứu và kiến thức của bản thân, luận văn khó có thể tránh khỏi một số sai sót nhất định. Học viên rất mong nhận được sự đóng góp

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu kỹ thuật an toàn thông tin trong kiểm phiếu điện tử ứng dụng cho trường trung học phổ thông chuyên hạ long​ (Trang 58 - 71)

Tải bản đầy đủ (PDF)

(71 trang)