Thông tin tài liệu
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG PHẠM THỊ TUYẾT NGHIÊN CỨU MỘT SỐ THUẬT TOÁN HỆ MẬT MÃ KHOÁ CÔNG KHAI ELGAMAL VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN - 2015 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG PHẠM THỊ TUYẾT NGHIÊN CỨU MỘT SỐ THUẬT TOÁN HỆ MẬT MÃ KHOÁ CÔNG KHAI ELGAMAL VÀ ỨNG DỤNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS NGUYỄN NGỌC CƯƠNG THÁI NGUYÊN - 2015 i LỜI CAM ĐOAN Tôi xin cam đoan luận văn “ Nghiên cứu số thuật toán hệ mật mã khoá công khai ElGamal ứng dụng” là công trình nghiên cứu của cá nhân tôi tìm hiểu, nghiên cứu dưới sự hướng dẫn của TS Nguyễn Ngọc Cương. Các kết quả là hoàn toàn trung thực, toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ các nguồn tài liệu được trích dẫn và chú thích đầy đủ. TÁC GIẢ LUẬN VĂN Phạm Thị Tuyết ii LỜI CẢM ƠN Học viên xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo Viện công nghệ thông tin, các thầy cô giáo Trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên đã mang lại cho học viên kiến thức vô cùng quý giá và bổ ích trong suốt quá trình học tập chương trình cao học tại trường. Đặc biệt học viên xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS Nguyễn Ngọc Cương - Học viện an ninh đã định hướng khoa học và đưa ra những góp ý, gợi ý, chỉnh sửa quý báu, quan tâm, tạo điều kiện thuận lợi trong quá trình nghiên cứu hoàn thành luận văn này. Cuối cùng, học viên xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình và người thân đã quan tâm, giúp đỡ và chia sẻ với học viên trong suốt quá trình học tập. Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định. Học viên rất mong nhận được những sự góp ý quý báu của thầy cô và các bạn. Thái Nguyên, ngày tháng năm 2015 HỌC VIÊN Phạm Thị Tuyết iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC CÁC HÌNH VẼ, ĐỒ THỊ vi MỞ ĐẦU 1 CHƯƠNG 1 3 TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 3 1.1. Lý thuyết toán học 3 1.1.1. Số nguyên tố, UCLN, BCNN 3 1.1.2. Nhóm, vành, trường, trường hữu hạn . 3 1.1.3 Số học Modulo (phép tính đồng dư) 5 1.1.4. Không gian rời rạc của phép lấy Logarit 6 1.1.5. Định lí Fermat và định lí Euler 6 1.1.6. Hàm một phía và hàm một phía có cửa sập 6 1.1.7. Định lí Trung Quốc về phần dư: . 7 1.2. Mật mã 7 1.2.1. Khái niệm 7 1.2.2. Những yêu cầu đối với hệ mật mã 8 1.2.3. Hệ mã hóa RSA . 8 1.2.4. Hệ mã hóa Paillier 9 1.2.5. Hệ mã hóa ElGamal . 10 1.2.6 Hệ mật đường cong Eliptic 10 1.3. Chữ ký điện tử 11 1.3.1. Sơ đồ chữ ký điện tử 11 1.3.2. Chữ ký mù RSA 12 1.3.3. Chữ ký nhóm (Group Signature) 13 1.4. Khái niệm xác thực điện tử 15 iv 1.5. Hàm băm (Hash Function) 16 CHƯƠNG :HỆ MẬT MÃ ELGAMAL CẢI TIẾN VÀ MÃ HÓA ĐỒNG CẤU 17 2.1. Hệ mã hóa ElGamal cải tiến 17 2.1.1. Thuật toán mật mã ElGamal cổ điển 17 2.1.2. Một số thuật toán ElGamal cải tiến [3] 18 2.1.2.1 Thuật toán thứ nhất 18 2.1.2.2 Thuật toán thứ hai 21 2.1.2.3 Thuật toán thứ ba 23 2.2. Hệ mã hóa đồng cấu . 26 2.2.1. Khái niệm mã hóa đồng cấu 26 2.2.2. Hệ mã hoá Elgamal có tính chất đồng cấu 26 2.2.3. Mô hình hệ mã hóa đồng cấu ElGamal cho mô hình bỏ phiếu có/không 27 2.3. Sơ đồ chia sẻ bí mật 29 2.3.1. Khái niệm chia sẻ bí mật 29 2.3.2. Giao thức “Chia sẻ bí mật” Shamir 31 2.3.2.1. Khái niệm sơ đồ ngưỡng A(t, m) 31 2.3.2.2. Chia sẻ khoá bí mật K 32 2.3.2.3. Khôi phục khóa bí mật K từ t thành viên . 33 CHƯƠNG 3: ỨNG DỤNG HỆ MẬT MÃ ELGAMAL TRONG BÀI TOÁN BỎ PHIẾU THĂM DÒ TÍN NHIỆM 37 3.1. Hệ thống bỏ phiếu điện tử [5] . 37 3.1.1. Khái niệm bỏ phiếu điện tử 37 3.1.2. Yêu cầu của hệ thống bỏ phiếu điện tử 38 3.1.3. Những vấn đề cần giải quyết 38 3.1.4.Các thành phần trong hệ thống bỏ phiếu điện tử . 39 3.1.5. Quy trình bài toán bỏ phiếu điện tử 39 3.2. Ứng dụng hệ mật ElGamal trong quá trình bỏ phiếu thăm dò tín nhiệm 41 3.2.1. Thiết lập 41 3.2.3. Mở phiếu bầu 43 3.3. Xây dựng chương trình thử nghiệm mô hình bỏ phiếu thăm dò tín nhiệm . 44 v 3.3.1. Môi trường cài đặt và thử nghiệm 44 3.3.2. Phát biểu bài toán 44 3.3.3 Các đối tượng của hệ thống 45 3.3.4. Phân tích và thiết kế chương trình bỏ phiếu: 45 3.3.5 Các chức năng chính . 45 3.3.6. Thứ tự thực hiện chương trình . 46 3.3.7. Kết quả thực nghiệm 47 3.4. Phân tích vấn đề bảo mật cần đạt được 56 3.5. Các tính chất đạt được 56 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 57 TÀI LIỆU THAM KHẢO 58 vi MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1. Sơ đồ mã hóa và giải mã 7 Hình 2.1. Sơ đồ bỏ phiếu đồng ý/ không đồng ý 28 Hình 2.2. Sơ đồ ngưỡng Shamir 32 Hình 3.1. Sơ đồ Quy trình bỏ phiếu điện tử 40 Hình 3.2. Sơ đồ mô tả bỏ phiếu thăm dò tín nhiệm 41 Hình 3.3. Sơ đồ giai đoạn bỏ phiếu tín nhiệm 42 Hình 3.4. Giao diện chính của chương trình 47 Hình 3.5. Ban tổ chức đăng nhập vào hệ thống 48 Hình 3.6. Thông báo tạo cơ sở dữ liệu cán bộ thành công. 48 Hình 3.7. Bảng danh sách cán bộ sau khi được ban tổ chức tạo cơ sở dữ liệu . 49 Hình 3.8. Thông báo tạo cơ sở dữ liệu ban kiểm phiếu thành công. . 49 Hình 3.9. Cán bộ đăng nhập vào hệ thống 49 Hình 3.10. Quá trình bỏ phiếu . 50 Hình 3.11. Cán bộ cập nhật thông tin 50 Hình 3.12. Thông báo nhắc nhở lựa chọn của cán bộ 51 Hình 3.13. Thông báo xác nhận lựa chọn của cán bộ 51 Hình 3.14. Ban kiểm phiếu đăng nhập vào hệ thống 52 Hình 3.14. Mảnh khóa của ban kiểm phiếu 52 Hình 3.15. Ban kiểm phiếu cập nhật thông tin . 53 Hình 3.16. Thông báo xác nhận quá trình gửi mảnh khóa 53 Hình 3.17. Xác nhận tổng hợp đủ các mảnh khóa 54 Hình 3.18. Thông báo ghép mảnh khóa thành công . 54 Hình 3.19. Kết quả bỏ phiếu 55 Hình 3.20. Cơ sở dữ liệu trong mô hình bỏ phiếu tín nhiệm 56 1 MỞ ĐẦU Tính khoa học cấp thiết đề tài Cùng với sự phát triển của công nghệ thông tin, hiện nay vấn đề an toàn thông tin trở nên hết sức cần thiết trên qui mô toàn cầu. Đảm bảo tính bảo mật, khả năng xác thực nguồn gốc gói tin trong quá trình truyền tải thông tin qua môi trường không an toàn như Internet là một vấn đề nóng trong nghiên cứu và thực tiễn. Để đảm bảo tính bảo mật và xác thực người ta cần phải mã hoá, có một số thuật toán mã hoá công khai rất nổi tiếng: RSA, ElGamal, Tuy nhiên, các hệ mật mã này có nhược điểm là không có cơ chế xác thực thông tin được bảo mật (nguồn gốc, tính toàn vẹn) do đó chúng không có khả năng chống lại một số dạng tấn công giả mạo trong thực tế. Chính vì vậy hiện nay, người ta [3] đã đề xuất một số cải tiến hệ mật mã ElGamal. Ưu điểm của các thuật toán mới đề xuất này là ở chỗ cho phép bảo mật và xác thực thông tin một cách đồng thời mà mức độ an toàn của các thuật toán mới đề xuất không nhỏ hơn mức độ an toàn của thuật toán ElGamal xét theo khả năng chống thám mã khi tấn công trực tiếp vào các thủ tục mã hóa và giải mã. Để góp phần nâng cao hiệu năng của phương pháp mã hóa ElGamal. Trong luận văn này, học viên đặt mục tiêu nghiên cứu, thử nghiệm thuật toán mã hóa Elgamal và các cải tiến mới của các tác giả đã đưa ra, so sánh hiệu quả của chúng và kiểm định thuật toán này bằng một ứng dụng trong thực tiễn. Đây là bài toán lựa chọn các khả năng trong các giải pháp đã có bằng việc mã hóa và xác thực như bài toán bỏ phiếu điện tử do các cán bộ tiến hành hoặc bài toán thăm dò tín nhiệm lãnh đạo tại một đơn vị. Những bài toán này luôn đòi hỏi tính bí mật, ví dụ trong bỏ phiếu điện tử (e-voting), việc đảm bảo tính đúng đắn bảo mật ở đây có thể bao gồm cả việc không để lộ danh tính cử tri (ai bỏ phiếu cho ứng viên nào?), tính duy nhất (mỗi cử tri đảm bảo chỉ tối đa 1 lần bỏ phiếu) Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu: Hệ mật khóa công khai ElGamal và các cải tiến của hệ mật mã. 2 - Phạm vi nghiên cứu: Nghiên cứu cải tiến dựa trên thuật toán đã có và xây dựng chương trình ứng dụng trong bài toán thăm dò dư luận về mức độ tín nhiệm đối với một đơn vị (ở đây là tổng công ty xăng dầu Việt Nam). Hướng nghiên cứu đề tài - Nghiên cứu các đề xuất một số thuật toán mật mã khóa công khai được phát triển từ hệ mật ElGamal của các tác giả đã công bố để xây dựng chương trình ứng dụng trong bài toán bỏ phiếu thăm dò dư luận về mức độ tín nhiệm. - Đánh giá ưu điểm của các thuật toán mới do các tác giả đã đề xuất về mức độ bảo mật và xác thực thông tin một cách đồng thời. Những nội dung nghiên cứu Luận văn được trình bày trong 3 chương, có phần mở đầu, phần kết luận, phần mục lục, phần tài liệu tham khảo. Các nội dung cơ bản của luận văn được trình bày theo cấu trúc sau: Chương 1: TỔNG QUAN VỀ CÁC HỆ MẬT MÃ Trong chương này tổng trình bày một số khái niệm cơ bản trong toán học mà các hệ mã hoá thường sử dụng như: mod, số nguyên tố, vành Zn, các phép toán cộng, nhân, bài toán logarrit rời rạc trên không gian Zn Sau đó đưa ra các khái niệm mật mã, các thuật toán mã hoá, chữ ký số phục vụ cho việc mã hoá thông tin. Chương 2: HỆ MẬT MÃ ELGAMAL CẢI TIẾN VÀ MÃ HÓA ĐỒNG CẤU Tập trung nghiên cứu một số thuật toán mật mã ElGamal cải tiến, tính chất đồng cấu của hệ mật ElGamal và sơ đồ chia sẻ bí mật theo ngưỡng Shamir. Chương 3: ỨNG DỤNG HỆ MẬT MÃ ELGAMAL TRONG BÀI TOÁN BỎ PHIẾU THĂM DÒ TÍN NHIỆM Cài đặt thử nghiệm thuật toán hệ mật ElGamal cải tiến và kỹ thuật chia sẻ khóa bí mật Shamir. 45 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ỏ phiếu tín nhiệm: 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 Các đối tượng hệ thống (1) Ban tổ chức: 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. Tất cả các bên phải tin tưởng vào hệ thống này. (2) Cán bộ: Họ là những người có quyền tham gia bỏ phiếu. (3) Ban kiểm phiếu: Có trách nhiệm tổng hợp và công bố kết quả khi kết thúc cuộc bỏ phiếu. 3.3.4 Phân tích thiết kế chương trình bỏ phiếu: Phân tích chương trình: - Nhập danh sách các cán bộ tham gia bỏ phiếu và thông tin cá nhân của cán bộ. - Cung cấp thẻ cán bộ cho các nhân viên được tham gia bỏ phiếu. - Kiểm tra thẻ trước khi cán bộ bỏ phiếu - Kiểm phiếu và niêm yết kết quả. Thiết kế chương trình: - Bảng lưu giữ các thông tin của cán bộ: Xác định danh sách các cán bộ tham gia bỏ phiếu. - Bảng xác định cán bộ đã tham gia bỏ phiếu hay chưa, mỗi cán bộ chỉ được bỏ phiếu 1 lần, bảng này nhằm xác định những cán bộ nào chưa bỏ phiếu và cán bộ nào đã bỏ phiếu. - Bảng lưu nội dung lá phiếu của các cán bộ: Nội dung của lá phiếu đã được cán bộ mã hóa và được lưu trong bảng này 3.3.5 Các chức - Nhập vào các thông tin của cán bộ bao gồm cả thông tin định danh, hệ thống sẽ mã hoá định danh và xác nhận tính hợp lệ của cán bộ. - Sử dụng hệ mã hóa ElGamal cải tiến để tạo khóa: Là quá trình sinh ngẫu nhiên bộ khóa công khai và khóa riêng cho toàn bộ cán bộ. Mỗi cán bộ là một bộ khóa khác nhau. 46 - Sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu. - Cán bộ đăng nhập và bỏ phiếu. - Mã hóa nội dung lá phiếu trên bộ khóa của cán bộ. - Giải mã lá phiếu: Hệ thống nhận được văn bản mã, sẽ sử dụng khóa riêng để giải mã, sau đó thu được văn bản gốc. - Thống kê và đưa ra kết quả của cuộc bỏ phiếu. 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 còn rất nhiều modul hỗ trợ khác như: xác thực quyền bỏ phiếu của cán bộ, phân bổ khóa, xác định tính hợp lệ của lá phiếu, 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 việc sử dụng thuật toán ElGamal cải tiến và sơ đồ chia sẻ bí mật Shamir trong bỏ phiếu thăm dò về mức độ tín nhiệm đối với một đơn vị. 3.3.6 Thứ tự thực chương trình Xét một cuộc bỏ phiếu thăm dò tín nhiệm, có ba phương án được đưa ra: Tín nhiệm cao, Tín nhiệm, Tín nhiệm thấp. Hệ thống thiết kế thứ tự thực hiện chương trình như sau: (1) Ban tổ chức (Admin). Sau khi ban tổ chức đăng nhập, hệ thống tự sinh số nguyên tố trên trường hữu hạn Fp, với p được lấy ngẫu nhiên gồm 10.000 số nguyên tố lớn hơn 1.000.000 trong cơ sở dữ liệu và điểm sinh g trong Z *p . Khóa bí mật x của ban tổ chức được lấy ngẫu nhiên trong đoạn [1, p-1], hệ thống đưa ra khóa công khai y. Sau khi tạo cơ sở dữ liệu cho cử tri các khóa bí mật được lưu ở một nơi an toàn. Tiếp đó, ban tổ chức đưa ra 3 phương án lựa chọn khác nhau. Cuối cùng, hệ thống sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu: Danh sách trong cơ sở dữ liệu có bao nhiêu người trong ban kiểm phiếu thì hệ thống sẽ tự động chia thành từng đó mảnh khóa. Ví dụ, trong danh sách ban kiểm phiếu có 3 người thì hệ thống tự động sinh ra 3 mảnh khóa, và phát cho các thành viên. (2) Cán bộ: Cán bộ tiến hành đăng nhập vào hệ thống. Khi cán bộ login, hệ thống sẽ kiểm tra trong cơ sở dữ liệu xem có tồn tại tài khoản đó không. Nếu 47 có, hệ thống chuyển sang giao diện tiếp theo. Nếu không, hệ thống báo lỗi đăng nhập. Tiếp theo cán bộ lựa chọn phương án mà mình muốn bỏ phiếu, submit vào hệ thống và gửi nó đến trạm bỏ phiếu. (3) Sau khi kết thúc cuộc bỏ phiếu, ban kiểm phiếu sẽ đăng nhập và họ gửi mảnh khoá mà họ giữ lên hệ thống. Khi các mảnh khoá được tổng hợp đủ, hệ thống sẽ ghép các mảnh khóa lại để khôi phục khóa bí mật, hệ thống sử dụng khoá mật này để giải mã các lá phiếu của cán bộ và thống kê kết quả cuối cùng. Tuy nhiên giới hạn của luận văn là mô hình bỏ phiếu tín nhiệm thì mức độ đơn giản hơn nhưng vẫn theo ý trên đây. 3.3.7 Kết thực nghiệm Chương trình bỏ phiếu lấy ý kiến về mức độ tín nhiệm đối với tổng công ty xăng dầu Việt Nam với 3 chức năng chính là: Ban tổ chức tạo cơ sở dữ liệu cho cán bộ và ban kiểm phiếu, cán bộ bỏ phiếu và ban kiểm phiếu thực hiện kiểm phiếu tính kết quả cuộc bỏ phiếu. Giao diện chương trình: Hình 3.4. Giao diện chính của chương trình a, Đối với ban tổ chức Ban tổ đăng nhập vào hệ thống: 48 Hình 3.5. Ban tổ chức đăng nhập vào hệ thống Nếu sai tên đăng nhập hoặc mật khẩu, hệ thống báo lỗi. Nếu đúng hệ thống thông báo đăng nhập thành công. Ở đây, Ban tổ chức sẽ có 3 quyền được phân chia: đầu tiên là sinh khoá cho toàn bộ cán bộ có trong cơ sở dữ liệu, chia sẻ khoá cho ban kiểm phiếu và sửa đổi khoá cho bất kì cán bộ nào. Khi ban tổ chức chọn nút “Tạo dữ liệu cho cán bộ”, hệ thống sẽ tự động sinh khóa cho toàn bộ cán bộ có trong cơ sở dữ liệu, mỗi cán bộ sẽ là một bộ tham số khác nhau để tăng tính bảo mật. Hình 3.6. Thông báo tạo cơ sở dữ liệu cán bộ thành công. 49 Hình 3.7. Bảng danh sách cán bộ sau khi được ban tổ chức tạo cơ sở dữ liệu Khi ban tổ chức chọn nút “Tạo dữ liệu cho ban kiểm phiếu”, hệ thống sử dụng sơ đồ chia sẻ bí mật Shamir tạo bộ khóa cho ban kiểm phiếu, danh sách trong cơ sở dữ liệu có bao nhiêu người thì hệ thống sẽ tự động chia thành từng đó mảnh khóa. Ở đây ban kiểm phiếu có 3 thành viên, hệ thống sẽ chia làm 3 mảnh khóa và cấp cho mỗi người một mảnh: Hình 3.8. Thông báo tạo cơ sở dữ liệu ban kiểm phiếu thành công. b) Đối với cán Cán bộ đăng nhập vào hệ thống để bỏ phiếu. Yêu cầu cán bộ có tài khoản trong danh sách cán bộ ở hệ thống cơ sở dữ liệu trung tâm thì mới được tham gia bỏ phiếu: Hình 3.9. Cán bộ đăng nhập vào hệ thống Nếu tên đăng nhập hoặc mật khẩu là sai hệ thống báo “Bạn chưa đăng nhập đúng”. Nếu đúng “Bạn đã đăng nhập thành công” Tiếp theo, hệ thống hiển thị giao diện thông tin cán bộ. Cửa sổ này được chia làm hai phần: Phần bên trái chứa thông tin cán bộ, phần bên phải là các phương án bỏ phiếu. 50 Hình 3.10. Quá trình bỏ phiếu Khi cán bộ vào chức năng sửa các thông tin cá nhân của mình: Hình 3.11. Cán bộ cập nhật thông tin Cán bộ có thể chỉnh sửa các thông tin cá nhân của mình nếu có sai sót. Sau đó 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án bộ vừa thay đổi vào cơ sở dữ liệu của hệ thống. Cuối cùng, cán bộ lựa chọn phương án mà mình muốn bỏ phiếu sau đó ghi nhận bằng việc nhấn vào nút “BỎ PHIẾU”, hệ thống sẽ đưa ra thông báo xác nhận “Bạn chắn với phương án lựa chọn chưa?” 51 Hình 3.12. Thông báo nhắc nhở lựa chọn của cán bộ Nếu chưa nhấn vào nút “No” hệ thống đưa cán bộ về giao diện bỏ phiếu. Nếu đã chắc chắn với phương án lựa chọn nhấn vào nút “Yes” khi đó hệ thống đưa ra thông báo xác nhận lại phương án mà cán bộ đã lựa chọn. Hình 3.13. Thông báo xác nhận lựa chọn của cán bộ Hệ thống đưa ra thông báo bỏ phiếu thành công và tự đăng xuất tài khoản của cán bộ 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. c) Ban kiểm phiếu thực kiểm phiếu tính kết Sau khi các cán bộ 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ỏ phiếu 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ỏ phiếu: 52 Hình 3.14. Ban kiểm phiếu đăng nhập vào hệ thống 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”. Khi ban kiểm phiếu đăng nhập thành công, màn hình sẽ hiển thị bộ khóa mà người thuộc ban kiểm phiếu này đang giữ. Hình 3.14. Mảnh khóa của ban kiểm phiếu Cũng như cán bộ, ban kiểm phiếu có thể xem và sửa đổi thông tin cá nhân của mình. 53 Hình 3.15. Ban kiểm phiếu cập nhật thông tin Ban kiểm phiếu có thể thay đổi mật khẩu của mình sau đó nhấn nút “Cập nhật” để ghi nhận quá trình sửa đổi. Hệ thống đưa ra thông báo cập nhật thành công: Hoặc nếu không muốn thay đổi cán bộ chọn nút “Thoát” để đăng xuất khỏi hệ thống. 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 cán bộ đã chắc chắn muốn gửi khóa chưa: Hình 3.16. Thông báo xác nhận quá trình gửi mảnh khóa Nếu không đồng ý gửi mảnh khóa của mình thì nhấn nút “No”, ngược lại nếu đã chắc chắn với phương án lựa chọn nhấn nút “Yes”, khi đó hệ thống sẽ hiển thị thông báo “Đã submit khóa thành công”. 54 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 đủ mảnh khóa nhấn OK để ghép mảnh khóa”, Hình 3.17. Xác nhận tổng hợ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á. Như vậy, nhờ áp dụng giao thức chia sẻ bí mật Shamir hệ thống bỏ phiếu 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”. Hình 3.18. Thông báo ghép mảnh khóa thành công Sau khi nhấn “OK” hệ thống đưa ra kết quả cuộc bỏ phiếu như sau: 55 Hình 3.19. Kết quả bỏ phiếu Ban kiểm phiếu công bố tất cả những phiếu kín được chấp nhận. Mỗi cán bộ phải kiểm tra xem phiếu của mình đã được công bố chưa. Bất kì ai đều có thể kiểm tra tính hợp lý của các phiếu kín và xem tổng số phiếu kín có bằng tổng số đăng kí hay không để ngăn chặn ban kiểm phiếu bỏ thêm phiếu kín vào. Trên cơ sở dữ liệu: bảng CanBo sẽ được công khai, trên đó có hiển thị sự lựa chọn của cán bộ ở cột “Chon” tuy nhiên nhìn vào đó cán bộ 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 thuật toán ElGamal cải tiến Như vậy sẽ giải quyết được bài toán chống mua bán phiếu. 56 Hình 3.20. Cơ sở dữ liệu trong mô hình bỏ phiếu tín nhiệm 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ỏ phiếu đả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.4 Phân tích vấn đề bảo mật cần đạt An ninh: An ninh luôn là yêu cầu hàng đầu trong thiết kế hệ thống, và phải được chú trọng toàn diện từ an ninh của một hệ thống hoàn chỉnh cho đến an ninh của từng lá phiếu và việc lưu trữ các lá phiếu trong cơ sở dữ liệu. Độ tin cậy: Ứng dụng phải có những cơ chế xác minh các lá phiếu khi chúng được “bỏ” và phải đảm bảo không có sự can thiệp hay thay đổi nào có thể xảy ra một khi phiếu đã bỏ. Tính linh hoạt và thực tiễn cao: Hệ thống phải có khả năng làm việc nhiều ngày trong suốt kỳ bỏ phiếu. 3.5 Các tính chất đạt 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án bộ 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. Tính xác minh phổ thông: bất kỳ một 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 việc sử dụng khóa bí mật của ban tổ chức. 57 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI Các kết đạt được a. Nghiên cứu tài liệu để trình bày các vấn đề sau: - Trình bày tổng quan về các hệ mật mã - Giới thiệu một số thuật toán mã hóa ElGamal cải tiến, mã hóa đồng cấu, chia sẻ bí mật, … b. Thử nghiệm mô hình bỏ phiếu tín nhiệm tại một tổng công ty xăng dầu Việt Nam sử dụng thuật toán ElGamal cải tiến và sơ đồ chia sẻ bí mật Shamir: Cài đặt chương trình thuật toán mã hóa lá phiếu sử dụng hệ mật mã ElGamal cải tiến thứ 3 trên bộ khóa của cán bộ. Mỗi cán bộ là một bộ khóa khác nhau. Những hướng nghiên cứu tiếp theo: Nghiên cứu mô hình bỏ phiếu, kiểm thử ứng dụng trong phạm vi một địa phương và cải thiện chất lượng công cụ. Tối ưu hóa hệ thống, cải thiện tốc độ xử lý dữ liệu của mô hình. 58 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phan Đình Diệu (2011), “Lý thuyết mật mã An toàn thông tin”, NXB Đại học quốc gia Hà Nội. [2] PGS.TS Trịnh Nhật Tiến (2008), Giáo trình An toàn liệu, NXB Đại học Quốc Gia [3] Lưu Hồng Dũng, Ngô Đăng Tiến, Trần Trung Dũng, Vũ Tất Thắng (2012), Phát triển số thuật toán mật mã khóa công khai, Hội thảo @ lần thứ XV, trang 367-373 [4] Trịnh Nhật Tiến, Trương Thị Thu Hiền (2010), Mã hóa đồng cấu ứng dụng, Tạp chí khoa học ĐHQGHN, Khoa học tự nhiên và Công nghệ 26, trang 44- 48. [5] PGS.TS Trịnh Nhật Tiến, ThS. Trương Thị Thu Hiền, Về quy trình bỏ phiếu từ xa, Trường Đại học công nghệ - ĐHQGHN. Tiếng Anh [6] Andrea Huszti, “A homomorphic encryption-based secure electronic voting scheme”, 2011 [7] Basso, A., F. Bergadano, I. Coradazzi and P. D. Checco (2004), “Lightweight security for internet polls”, in: EGCDMAS. [8 Cyber Vote, Report on Review of Cryptographic Protocols and Security Techniques for Electronic Voting, 2002. [9] Craig Gentry and Shai Halevi (2011), “Implementing Gentry’s fullyhomomorphic encryption scheme”, In EUROCRYPT. [10] D.Stinson (2002), Cryptography Theory and Practice 2nd ed Chapman & Hall/CRC. [11] Kristin Lauter, Michael Naehrig, and Vinod Vaikuntanathan, “Can Homomorphic Encryption be Practical?”, ACM, 2011 [12] R.L Rivest, A. Shamir, and L.M. Adleman (1978), “A Method for Obtaining Digital Signatures and Public key Cryptosystems”/ Communication of the ACM, Vol. 21, No.2, pp 120-126. 59 [13] T. ElGamal (1985), A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transactions on Information Theory, Vol. IT-31, No. 4. pp. 469–472. [ ] Zuzana Rjaskova ( 0 ) , E l e c t r o n i c V o t i n g S c h e m e s Department of Computer ScienceFaculty of Mathematics, Physics and Informatics Comenius University, Bratislava ... TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG PHẠM THỊ TUYẾT NGHIÊN CỨU MỘT SỐ THUẬT TOÁN HỆ MẬT MÃ KHOÁ CÔNG KHAI ELGAMAL VÀ ỨNG DỤNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01... Tôi xin cam đoan luận văn “ Nghiên cứu số thuật toán hệ mật mã khoá công khai ElGamal ứng dụng là công trình nghiên cứu của cá nhân tôi tìm hiểu, nghiên cứu dưới sự hướng dẫn của TS Nguyễn Ngọc Cương. Các kết ... CHƯƠNG :HỆ MẬT MÃ ELGAMAL CẢI TIẾN VÀ MÃ HÓA ĐỒNG CẤU 17 2.1. Hệ mã hóa ElGamal cải tiến 17 2.1.1. Thuật toán mật mã ElGamal cổ điển 17 2.1.2. Một số thuật toán ElGamal cải tiến [3]
Ngày đăng: 15/04/2017, 21:10
Xem thêm: Nghiên cứu một số thuật toán hệ mật mã khoá công khai elgamal và ứng dụng , Nghiên cứu một số thuật toán hệ mật mã khoá công khai elgamal và ứng dụng