TIỂU LUẬN MẬT MÃ VÀ AN TOÀN DỮ LIỆU CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TINChương 1: Phương pháp chứng minh không tiết lộ thông tinChương 2: Ứng dụng trong Bỏ phiếu điện tử, trong dùng Tiền điện tử.Chương 3: Thử nghiệm chương trình “chứng minh không tiết lộ thông tin trong Bỏ phiếu điện tử ”
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-****** -TIỂU LUẬN
MẬT MÃ VÀ AN TOÀN DỮ LIỆU
Giảng viên: PGS.TS Trịnh Nhật Tiến
Học viên thực hiện: Tạ Trung Dũng, K20TDL&MMT Lớp MH: INT 6010 2
Mã HV: 13025197
Hà Nội, 04/2014
Trang 2LỜI NÓI ĐẦU
Ngày nay, công nghệ thông tin đang phát triển một cách mạnh mẽ, internet trởthành một phần không thể thiếu trong cuộc sống hàng ngày Các hoạt động trao đổithôn g tin, mua bán, trên mạng internet diễn ra thường xuyên và ngày phổ biến hơn.Chính vì thế mà việc bảo mật, đảm bảo an toàn thông tin đang là nhu cầu cấp thiết.Trước các nhu cầu cấp thiết đó, lý thuyết về mật mã thông tin ra đời nhằm đảm bảotính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu đang được truyền trên mạng.Tiểu luận này gồm 3 chương với các nội dụng:
Chương 1: Phương pháp chứng minh không tiết lộ thông tin
Chương 2: Ứng dụng trong Bỏ phiếu điện tử, trong dùng Tiền điện tử.
Chương 3: Thử nghiệm chương trình “chứng minh không tiết lộ thông tin
trong Bỏ phiếu điện tử ”
“Chứng minh không tiết lộ thông tin” là phương pháp chứng minh không cónghĩa là “không để lộ thông tin” mà là “để lộ thông tin ở mức thấp nhất” về sự vật, sựviệc cần chứng minh Với việc “không để lộ” người xác minh sẽ không có nhiều hiểubiết về sự vật, sự việc, họ chỉ thu được chút ít thông tin ( coi như là không )về đặcđiểm, tính chất cảu nó
Ngành mật mã học luôn phát triển không ngừng và kiến thức của ngành là rấtrộng Trong tiểu luận này, tôi tìm hiểu các khái niệm cơ bản, một số sơ đồ chứngminh và ứng dụng của “phương pháp chứng minh không tiết lộ thông tin” trong Bỏphiếu điện tử và trong dùng Tiền điện tử
Trong quá trình tìm hiểu và trình bày nội dung, Tiểu luận không thể tránh khỏinhững thiếu xót, tôi rất mong nhận được sự đóng góp ý kiến từ các bạn đọc và đặcbiệt từ Thầy PGS TS Trịnh Nhật Tiến để Tiểu luận của tôi được tốt hơn
Trang 3MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT……….
3 CHƯƠNG 1 PHƯƠNG PHÁP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 4
1.1 KHÁI NIỆM CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN 4
1.1.1.Khái niệm chứng minh không tiết lộ thông tin (CM KTLTT) 4
1.1.2.Khái niệm về chứng minh tương hỗ 5
1.2 HỆ THỐNG CM KTLTT CHO TÍNH ĐẲNG CẤU CỦA ĐỒ THỊ 6
1.3 HỆ THỐNG CM KTLTT CHO BÀI TOÁN THẶNG DƯ BẬC HAI 8
1.3.1.Sơ đồ chứng minh 9
1.3.2.Tính chất của sơ đồ 9
1.3.3 Chứng minh sơ đồ có tính đầy đủ 9
CHƯƠNG 2 ỨNG DỤNG CHỨNG MINH KHÔNG TIẾT LỘTHÔNG TIN 10
2.1 ỨNG DỤNG CM KTLTT TRONG BỎ PHIẾU ĐIỆN TỬ 10
2.1.1 Sơ đồ bỏ phiếu truyền thống 10
2.1.2 Một số khái niệm 11
2.1.3.Chứng minh tính hợp lệ của lá phiếu (x, y) (Giao thức 1) 13
2.1.4 Chứng minh quyền sở hữu giá trị bí mật β (Giao thức 2)) 16
2.1.5 Giai đoạn cử tri chuyển lá phiếu đến ban kiểm phiếu (phương án 2)) 17
2.2 ỨNG DỤNG CM KTLTT TRONG SỬ DỤNG TIỀN ĐIỆN TỬ 18
2.2.1 Khái niệm thanh toán điện tử 18
2.2.2.Khái niệm tiền điện tử 18
2.2.3 Mô hình giao dịch mua bán bằng tiền điện tử 19
2.2.4 Vấn đề "tiền điện tử" 21
CHƯƠNG 3 THỬ NGHIỆM CHƯƠNG TRÌNH 24
CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN TRONG BỎ PHIẾU ĐIỆN TỬ 24
3.1 Mô tả chương trình 24
3.2 Mã nguồn của chương trình 29
3.2.1 Cử tri chứng minh tính hợp lệ của lá phiếu 29
3.2.2 Người xác minh TT chứng minh có giữ tham số bí mật β 33
TÀI LIỆU THAM KHẢO 35
Trang 4DANH MỤC CÁC TỪ VIẾT TẮT
Trang 5CHƯƠNG 1 PHƯƠNG PHÁP CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN
1.1 KHÁI NIỆM CHỨNG MINH KHÔNG TIẾT LỘ THÔNG TIN
1.1.1.Khái niệm chứng minh không tiết lộ thông tin (CM KTLTT)
Giả sử P và V cùng tham gia trò chơi với các quân bài P đưa ra 2 quân bài úp
và nói đó là "át rô" và "2 rô" P yêu cầu V chọn quân "át rô".
Trước khi chọn quân "át rô", V muốn kiểm tra chắc chắn rằng 2 quân bài đó đích
thực là "át rô" và "2 rô" V yêu cầu P chứng minh điều này Nêu P lật 2 quần bài đó
lên coi như là một cách chứng minh, thì trò chơi kết thúc, vì V đã nhìn thấy chúng và
dĩ nhiên là anh ta có thể chọn ngay ra được quân bài "át rô".
Có một cách khác để P chứng minh rằng 2 quân bài đó là "át rô" và "2 rô", mà
không phải lật 2 quân bài đó lên, tức là không làm lộ thông tin về 2 quân bài trên tay
P Rất đơn giản, anh ta đưa 50 quân bài còn lại cho V Nêu V kiểm tra thấy thiếu một
quân bài "át rô" và một quân bài "2 rô", thì có thể xem 2 quân bài trên tay P có
đúng như anh ta nói
Qua ví dụ trên có thể tạm hiểu "Chứng minh không tiết lộ thông tin" không cónghĩa là "không để lộ thông tin", mà có nghĩa là "để lộ thông tin ở mức ít nhất" về sựvật, sự việc cần chứng minh Với những "thông tin để lộ", người xác minh không cóđầy đủ hiểu biết (knowledge) về sự vật sự việc, họ chỉ thu được chút ít thông tin (coinhư "zero knowledge") về đặc điểm tính chất của nó
Giao thức ∑ là giao thức "Hỏi - Đáp" 3 bước, để P chứng minh cho V một vấn
đề nào đó
- P gửi cho V: một giá trị ngẫu nhiên
- V gửi lại P: một giá trị ngẫu nhiên như là giá trị dùng để kiểm thử
- P gửi đáp lại V: một giá trị.
Kết quả V thừa nhận hoặc bác bỏ vấn đề P chứng minh
"Chứng minh không tiết lộ thông tin" được phát minh bởi Goldvvasser, Micali
và Rackoff năm 1981 (được viết tắt là GMR) Chứng minh không tiết lộ thông tin (và
Trang 6chứng minh tương tác) là một trong những lý thuyết hay và có ảnh hưởng lớn trongkhoa học máy tính.
3) Các thành phần trong phép chứng minh không tiết lộ thông tin
Có hai nhân vật mà chúng ta thường xuyên nhắc đến trong vấn đề nàv :
- Peggy Prover (người chứng minh): Peggy có thông tin muốn chứng minh
cho Victor thấy, nhưng cô ấy lại không muốn nói thẳng bí mật đó cho Victor
- Victor Verifier (người xác minh): Victor hỏi Peggy một loạt các câu hỏi, cố gắng
tìm ra được là Peggy có thực sự biết được bí mật đó hay không Victor không thuđược điều gì từ bí mật đó, ngay cả khi anh ta gian lận hay không tuân theo chỉ dẫncủa giao thức
1.1.2 Khái niệm về chứng minh tương hỗ
1) Khái niệm
Trước tiên ta thảo luận ý tưởng về hệ thống chứng minh tương hỗ Trong hệthống chứng minh tương hồ có hai thành viên: Lan và Nam Lan là người chứngminh và Nam là người kiểm tra phép chứng minh Lan biết một điều bí mật gì đó và
cô ta muốn chứng minh cho Nam rằng cô ta biết điều đó Phép chứng minh tương hỗ
là một giao thức hỏi đáp, gồm một số vòng xác định
Trong mỗi vòng, Lan và Nam luân phiên thực hiện các công việc sau:
- Nhận một thông báo từ nhóm khác
- Thực hiện một tính toán riêng
- Gửi một thông báo tới nhóm khác
Một vòng của giao thức gồm một yêu cầu của Nam và một đáp ứng của Lan Tớicuối phép chứng minh, Nam sẽ chấp nhận hoặc từ chối phép chứng minh của Lan tùythuộc vào việc liệu Lan có đáp ứng thành công các yêu cầu của Nam hay không
Phép chứng minh tương hỗ có:
- Tính đầy đủ khi và chỉ khi trong trường hợp Lan biết phép chứng minh x cho
bài toán π , thì Nam luôn chấp nhận Lan
- Tính đúng đắn nghĩa là nếu Lan không biết cách chứng minh x cho bài toán
cthì xác suất để Nam chấp nhận Lan là rất nhỏ
Phép chứng minh tương hỗ có thể thực hiện được trong thời gian đa thức gọi làphép chứng minh tương hỗ trong thời gian đa thức
Minh họa hoạt động của giao thức tương hỗ để chứng minh sự đẳng cấu của hai
đồ thị
Trang 7Giả sử G1= {V, E1} và G2 = {V, E2} là hai đồ thị với tập đỉnh V = {1,2,3,4} vàcác tập cạnh E1 ={12,13, 14, 34} và E2={12, 13, 23, 24} Giả sử Lan biết G2 đẳngcấu với G1 qua hoán vị σ = {4 1 3 2}.
Một vòng của giao thức có thể xảy ra như sau:
- Lan chọn ngẫu nhiên một hoán vị π = {2 4 1 3} đồ thị H sẽ có tập cạnh{12,13,23,24} là ảnh của G1 qua π , Lan gửi H cho Nam
- Nam gửi i=2 cho Lan như một câu hỏi
- Lan thử thấy hoán vị ρ = π σ = {3 2 1 4} ánh xạ G2 thành H và gửi ρ cho Nam.
- Nam thử đúng H là ảnh của G2 qua hoán vị ρ.Ta kết luận vòng hỏi đáp này đã thành
công
Toàn bộ giao thức gồm có m = log2n vòng
1.2 HỆ THỐNG CM KTLTT CHO TÍNH ĐẲNG CẤU CỦA ĐỒ THỊ
Cho 2 đồ thị n đỉnh G1 = (V1, E1) và G2 = (V2, E2), G1 và G2 được đắng cấu nếu
có một song ánh p: V1 →V2 sao cho {u,v}ϵ E1 khi và chỉ khi {p(u), p(v)} ϵ E2
2) Một sơ đồ chứng minh tương hỗ cho tính đẳng cấu của đồ thị
Sơ đồ nêu ra dưới đây nhằm thực hiện mục đích: Lan muốn thuyết phục Namrằng hai đồ thị đã cho là đẳng cấu bằng một giao thức chứng minh tương hỗ, nhưngvào lúc kết thúc giao thức Nam vẫn không có chút thông tin nào về cách chứng minh(cho chính anh ta hoặc chứng minh cho người thứ 3) rằng hai đồ thị đó là đẳng cấu.Đây là một khái niệm rất khó định nghĩa hình thức, vì vậy ta sẽ xét một ví dụ trướckhi định nghĩa
Hệ thống CMKTLTT hoàn thiện cho tính đắng cẩu của đồ thị:
Đầu vào:
Thông tin công khai: Hai đồ thị G1 và G2, mỗi đồ thị có tập đỉnh {1 n}
Thông tin bí mật của Lan: Phép hoán vị σ đưa G2 trở thành G1
Trang 8- Lan chọn một phép hoán vị ngẫu nhiên π của {l n} cô ta tính H là ảnh của G1 theo
π và gửi H cho Nam.
- Nam chọn một số nguyên ngẫu nhiên i = 1 hoặc 2 và gửi nó cho Lan
- Lan tính một phép hoán vị ρ đưa H trở thành G1 Lan sẽ gửi ρ cho Nam (nếu i=l thì Lan sẽ xác định ρ = π nếu i=2 thì Lan sẽ xác định ρ là σ.π hợp của σ và π ).
- Nam sẽ kiểm tra xem H có phải là ảnh của Gi theo ρ hay không.
Kết thúc: Nam sẽ chỉ chấp nhận chứng minh của Lan, nếu H là ảnh của Gi ở mỗi một trong n vòng
Ví dụ:
Giả sử G1 = (V, E1) và G2 = (V, E2) trong đó V = {1, 2, 3,4}, E1 = {12, 13, 14, 34} và
E2={12, 13, 23, 24} Một phép đẳng cấu tò G2 sang G1 là hoán vị σ = (4, 1, 3, 2)
Bây giờ giả sử ở trong vòng nào đó của giao thức, Lan chọn hoán vị π = (2,4,1,3).
Khi đó H có tập cạnh {12, 13,23,24}
Nếu yêu cầu của Nam là i=l thì Lan sẽ cho Nam phép hoán vị π và Nam sẽ kiểm
tra xem ảnh của G1 theo n có phải là H không.
Nếu yêu cầu của Nam là i=2 thì Lan sẽ cho Nam phép hợp ρ = π σ = (3, 2, 1,4) và
Nam sẽ kiếm tra xem ảnh của G2 theo ρ có phải là H không
Tất cả các tính toán của Nam có thể thực hiện được trong thời gian đa thức vì tất
cả các tính toán phải thực hiện là các phép sinh số ngẫu nhiên và các phép hoán vị
Ta cũng thấy rằng, các tính toán của Lan cũng tương tự như Nam (do đó có thể đượcthực hiện trong thời gian đa thức) nếu cô ta biết được sự tồn tại của phép hoán vị ơsao cho ảnh của G2 theo σ là Gi
Tại sao ta lại coi hệ thống chứng minh là hệ thống chứng minh không tiết lộthông tin? Lý do là ở chồ mặc dù Nam đã thuyết phục rằng G1 là đẳng cấu với G2nhưng anh ta vẫn không thu thêm được tý kiến thức nào để giúp tìm được phép hoán
vị σ đưa G2 về G1 Tất cả những điều mà Nam thấy trong mỗi vòng của phép chứngminh là một đồ thị ngẫu nhiên H đẳng cấu với các đồ thị G1 và G2 cùng với một phéphoán vị đưa G1 thành H hoặc đưa G2 thành H (nhưng không phải là cả hai) Tuy nhiênNam có thể tự mình tính các bản sao ngẫu nhiên của các đồ thị này mà không cần tới
sự giúp đờ của Lan Vì các đồ thị H được chọn một cách độc lập và ngẫu nhiên ở mỗi
Trang 9phần của phép chứng minh nên điều này không giúp đỡ được gì cho Nam trong việctìm một phép đẳng cấu từ G1 sang G2.
Ta xem xét kĩ lưỡng thông tin mà Nam thu được nhờ tham gia vào hệ thốngchứng minh tương hỗ:
- Các đồ thị G1 và G2
- Tất cả các thông báo được Lan và Nam gửi đi
- Các số ngẫu nhiên mà Nam dùng để tạo các yêu cầu của mình
Bởi vậy, các thông tin T thu được qua sơ đồ chứng minh tương hỗ về phép đắngcấu đồ thị sẽ có dạng sau:
T = ((G1, G2); (Hj,ij, ρj ) (Hn, in, ρn))
4) Giả mạo biên bản ghi nhận được sau giao thức chứng minh
Điểm mấu chốt (tạo cơ sở cho định nghĩa hình thức về phép chứng minh khôngtiết lộ thông tin) là Nam (hay bất kì người nào khác) có thể giả mạo các thông tin T(mà không cần phải tham gia vào hệ thống chứng minh tương hỗ) giống như cácthông tin thực tế Việc giả mạo được thực hiện theo thuật toán được mô tả như sau:
Thuật toán giả mạo chứng minh tương hỗ cho tính đắng cấu:
Đầu vào:
Hai đồ thị G1 và G2, mỗi đồ thị có tập đỉnh {1 n}
Thuật toán:
T = (G1,G2) For j=l to n do
Chọn ngẫu nhiên ij =1 hoặc 2
Chọn ρj là một hoán vị ngẫu nhiên của {1, ,n}
Tính Hj là ảnh của G1 theo ρj
Ghép (Hj,ij, ρj ) vào cuối của T
Theo ngôn ngữ của phép chứng minh không tiết lộ thông tin, một thuật toán giảmạo thường được gọi là một bộ mô phỏng Việc một bộ mô phỏng có thể tạo T cómột hệ quả rất quan trọng Bất kì kết quả nào mà Nam (hay bất kì ai khác) có thể tính
từ T cũng có thể tính được từ một bản T giả mạo Bởi vậy, việc tham gia vào hệthống chứng minh sẽ không làm tăng khả năng tính toán của Nam Đặc biệt là điềunày không cho phép Nam tự chứng minh được rằng G1 và G2 là đắng cấu Hơn nữa,Nam cũng không thể thuyết phục được ai khác rằng G1 và G2 là đẳng cấu bằng cáchchỉ cho họ một bản T, bởi vì không có cách nào để phân biệt một bản T hợp lệ vớimột bản T giả mạo
1.3 HỆ THỐNG CM KTLTT CHO BÀI TOÁN THẶNG DƯ BẬC HAI
1.3.1.Sơ đồ chứng minh
Trang 10Bây giờ ta sẽ trình bày một số ví dụ khác về các hệ thống chứng minh không tiết
lộ thông tin hoàn thiện Một phép chứng minh không tiết lộ thông tin hoàn thiện cho
các thặng dư bậc hai (modulo n = p.q, trong đó p và q là các yếu tố): Chứng minh
tương hỗ không tiết lộ thông tin hoàn thiện cho thặng dư bậc hai: Đầu vào: Một số
nguyên n có phân tích n = p.q không được biết, trong đó p và q là các số nguyên tố và
x ϵ QR(n) Thuật toán:
Lặp lại các bước sau log2n lần:
- Lan chọn một số ngẫu nhiên vϵ Zn* và tính y = v2 mod n Lan gửi y cho Nam
- Nam chọn một số nguyên ngẫu nhiên i=0 hoặc 1 và gửi nó cho Lan
- Lan tính z = uiv mod n Trong đó u là căn bậc 2 của x và gửi x cho Nam
- Nam sẽ kiểm tra xem liệu có thỏa mãn z2 xiy (mod n).
- Nam sẽ chấp nhận chứng minh của Lan nếu tính toán ở bước 5 được kiếm tra chomỗi vòng (trong log2 n vòng)
Lan đang phải chứng tỏ rằng X là một thặng dư bậc hai Ở mỗi vòng có ta sẽ tạomột thặng dư bậc hai ngẫu nhiên y và gửi nó cho Nam Sau đó, tùy thuộc vào yêu cầucủa Nam, Lan sẽ đưa cho Nam căn bậc hai của y hoặc căn bậc hai của xy
1.3.2.Tính chất của sơ đồ
Rõ ràng là giao thức này là đầy đủ Đế chứng minh tính đúng đắn ta thấy rằng,nếu x không phải là một thặng dư bậc 2 thì Lan chỉ có thể trả lời một trong hai yêucầu có thể vì trong trường hợp này y là một thặng dư bậc hai khi và chỉ khi xy khôngphải là một thặng dư bậc hai Bởi vậy Lan sẽ bị tóm ở một vòng cho trước bất kỳ củagiao thức với xác suất 1/2 và xác suất để Lan đánh lừa được Nam trong toàn bộ nvòng chỉ bằng 2-log2n -1/n (lý do có log2 n vòng là do cỡ đặc trưng của bài toán tỉ lệ với
số bít trong biểu diễn nhị phân của người là log2 n) Bởi vậy xác suất đánh lừa của
Lan sẽ là một hàm mũ âm của cỡ đặc trưng của bài toán giống như trong phép chứngminh không tiết lộ thông tin cho tính đắng cấu đồ thị
1.3.3 Chứng minh sơ đồ có tính đầy đủ
Có thể chỉ ra tính không tiết lộ thông tin hoàn thiện đối với Nam theo cách tương
tự như bài toán đẳng cấu đồ thị Nam có thể tạo ra bộ ba (y, i, z) bằng cách trước tiênchọn i và z và xác định: y = z2(xi)-imod n
Các bộ ba được tạo theo cách này có cùng phân bố xác suất như các bộ ba đượctạo trong giao thức với giả thiết Nam chọn các yêu cầu của mình một cách ngẫunhiên Tính không tiết lộ thông tin hoàn thiện (với V* tùy ý) có thế được chứng minhtheo phương pháp tương tự như đối với bài toán đắng cấu đồ thị Nó đòi hỏi phải xâydựng một bộ mô phỏng S* để giả định các yêu cầu của V* và chỉ giữ lại các bộ baứng với các giải định đúng
Trang 11CHƯƠNG 2 ỨNG DỤNG CHỨNG MINH KHÔNG TIẾT LỘTHÔNG TIN
2.1 ỨNG DỤNG CM KTLTT TRONG BỎ PHIẾU ĐIỆN TỬ
Chúng ta đã biết một số kỹ thuật thăm dò ý kiến từ xa (các kỳ thuật này cótrong bỏ phiếu điện tử - Electronic Voting) Cử tri giữ bí mật lá phiếu khi truyền từ xatới ban kiểm phiếu bằng cách mã hoa nội dung lá phiếu Theo kỹ thuật "mã hoa đồngcấu", ban kiểm phiếu có thể tính được kết quả thăm dò từ xa mà không cần phải giải
mã nội dung lá phiếu, vấn đề nảy sinh là cử tri phải chứng minh được với ban kiểm
phiếu rằng lá phiếu của mình là hợp lệ nhưng nội dung lá phiếu thì không được
tiết lộ với họ Để thực hiện điều này, hiện nay người ta dùng kỳ thuật "Chứng minh
không tiết lộ thông tin" (Zero-knowledge proof) Chúng tôi trình bày ý tưởng trên để
thực hiện bỏ phiếu loại "Chọn 1 trong k".
2.1.1 Sơ đồ bỏ phiếu truyền thống
Trong lịch sử thế giới đã có rất nhiều cuộc bầu cử, những cuộc bầu cử giữ mộtvai trò quan trọng trong việc xác lập các thể chế chính trị của các quốc gia từ lớn đếnnhỏ Trong thế giới hiện đại, việc bỏ phiếu bầu quốc hội là một trong số những sựkiện quan trọng nhất của đất nước Chính vì vậy, người ta đã bỏ rất nhiều công sứcvào việc cải tiến các phương thức bầu cử, làm cho các cuộc bầu cử ngày càng trở nên
"tốt" hơn Phương thức bầu cử được thay đổi theo từng thời kì, theo sự tiến bộ của xãhội, nhưng tính chất của một cuộc bầu cử "tốt" thì không thay đối đáng kể:
+ Tính chất 1(Quyền được bỏ phiếu): Chỉ có những người có quyền bỏ phiếu mới
được tham gia Và mỗi người chỉ được bỏ phiếu không quá một lần Cuộc bỏ phiếucũng phải được thực hiện làm sao để những người có quyền bầu cử có điều kiệnthuận lợi để thực hiện quyền của mình
+ Tính chất 2) (Tính bí mật): Trong một cuộc bỏ phiếu, người bỏ phiếu có thể yên
tâm là không ai có thể tìm ra được mình đã bỏ phiếu cho ai Điều này để tránh việctrả thù những người bất đồng quan điểm
+ Tính chất 3 ( Kết quả chính xác): Mỗi cá nhân có quyền kiểm tra cuộc bầu cử và
có khả năng phát hiện những sai phạm trong quá trình bầu cử so với thể lệ bầu cử đặt
ra ban đầu Thường những đối tượng được quyền kiểm tra bao gồm tất cả các cử tri
và ban kiểm phiếu Nêu có thể thì phải cung cấp phương pháp để giải quyết các saiphạm một cách hiệu quả
Hiện tại thì đa số các cuộc bầu cử vẫn được thực hiện theo cách truyền thống.Tuy nhiên với tốc độ phát triển nhanh chóng của công nghệ thông tin, đặc biệt là xuthế thực hiện "chính phủ điện tử" thì việc số hóa cuộc bầu cử để thay thế cho phương
Trang 12thức truyền thống là điều tất yếu sẽ phải diễn ra trong tương lai gần Trong nhữngnăm gần đây, trên thế giới đã có một số nước thử nghiệm việc bỏ phiếu điện tử.
Sơ đồ bỏ phiếu truyền thống:
Khi bỏ phiếu theo phương thức truyền thống, ta mang giấy tờ cá nhân và láphiếu chưa có nội dung gì đến bàn đóng dấu Ở đó người ta sẽ kiếm tra giấy tờ để xácminh quyền bỏ phiếu, và đóng dấu xác thực lên lá phiếu Sau đó ta vào phòng bỏphiếu, cất giấy tờ đi, như vậy lá phiếu hoàn toàn không còn thông tin định danh.Công việc cuối cùng là điền vào một lá phiếu thông thường và bỏ vào hòm Quá trình
bỏ phiếu truyền thống này được coi là nặc danh nếu những người tham gia quá trìnhđều tuân thủ quy trình
Từ sơ đồ bỏ phiếu truyền thống, việc bỏ phiếu có thể chia làm ba giai đoạn:Đăng kí, bỏ phiếu, kiểm phiếu
2.1.2 Một số khái niệm
1) Vấn để " bỏ phiếu điện tử" (Electronic Voting)
Nghiên cứu về "Bỏ phiếu thăm dò tò xa" là một chủ đề quan trọng đóng góp cho
sự tiến bộ của xã hội dân chủ Nêu một hệ thống bỏ phiếu thăm dò an toàn và tin cậy,
nó sẽ được sử dụng thường xuyên để thu thập ý kiến của mọi người cho nhiều quyếtđịnh về chính trị và xã hội thông qua hệ thống tự động hóa "Bỏ phiếu thăm dò từ xa"cũng phải đạt được các tính chất như "bỏ phiếu truyền thống" [7] Một qui trình bỏphiếu gồm một số giai đoạn (công đoạn) Hiện nay có nhiều kỳ thuật mật mã để thựchiện họp lý trong từng giai đoạn
Trong Tiểu luận đề cập đến vấn đề giai đoạn Cử tri (CT) chuyến lá phiếu thăm
dò tới Ban kiểm phiếu (Ban KP) cho sơ đồ bỏ phiếu loại "Chọn 1 trong k" Trong
giai đoạn này người ta sử dụng kỳ thuật "Mã hóa đồng cấu - Chia sẻ bí mật"(Homomorphic Encryption - Secret Sharing) [8], kỹ thuật "Chứng minh không tiết lộthông tin" (Zero-knowledge proof)
Theo suy nghĩ thông thường, khi Cử tri (CT) chuyển lá phiếu tới Ban kiếm phiếu(Ban KP) thì họ chỉ cần mã hóa nội dung lá phiếu là đủ Vì tiếp theo Ban KP chỉ cầngiải mã nội dung lá phiếu là tính được kết quả (kiểm phiếu)
Nhưng trên thực tế có thể xảy ra các tình huống sau:
- Ban KP hay một nhóm thành viên Ban KP không trung thực đã gian lận phiếuthăm dò, ví dụ sửa lại nội dung lá phiếu sau khi giải mã (trước khi kiểm phiếu) Đểkhắc phục tình hình này, người ta sử dụng kỹ thuật "Mã hóa đồng cấu -Chia sẻ bímật" Với giải pháp này Ban KP không phải giải mã từng lá phiếu nhưng vẫn tínhđược kết quả Để bảo đảm công khai kiểm phiếu, lá phiếu đã mã hóa khi tới Ban KP
Trang 13phải được niêm yết công khai Như vậy nhìn trên bảng niêm yết này, Cử tri sẽ nhận
ra lá phiếu của mình và họ có thể "bán" phiếu thăm dò Để khắc phục tình trạng này,người ta dùng một "Người xác minh trung thực" (TT - honest verifier) làm ữung giangiữa Cử tri và Ban KP Cử tri gửi lá phiếu từ xa tới Ban KP thông qua người xácminh TT Sau khi xác minh lá phiếu hợp lệ, anh ta làm "mù" lá phiếu (mã hóa láphiếu lần thứ 2), tiếp đó gửi nó về Ban KP Trên bảng niêm yết công khai, Cử trikhông thể nhận ra lá phiếu của mình để có thể "bán" phiếu thăm dò
Khi giải quyết 2 tình huống trên lại xuất hiện hai vấn đề khác:
- Một là Cử tri phải chứng minh cho người xác minh TT biết lá phiếu của họ là
hợp lệ, tức là nội dung lá phiếu chỉ ghi một trong số k lựa chọn (loại lựa chọn "chọn
1 trong k"), không cần phải chỉ rõ lá phiếu ghi rõ lựa chọn nào Cách chứng minh
như vậy gọi là "Chứng minh không tiết lộ thông tin" Với cách chứng minh này, nộidung lá phiếu không bị tiết lộ, ương khi mọi người đủ bằng chứng tin được rằng láphiếu này là họp lệ
- Hai là người xác minh TT phải chứng minh cho Cử tri, Ban KP, biết rằng láphiếu bị làm "mù" vẫn hợp lệ (theo nghĩa trên) bằng cách chỉ ra rằng anh ta sở hữu
giá trị để là "mù" lá phiếu Người xác minh TT chứng minh điều này cũng bằng
phương pháp "Chứng minh không tiết lộ thông tin", tức là không cần phải tiết lộ
chính giá trị
Sau đây là sơ đồ giai đoạn Cử tri chuyển lá phiếu tới Ban kiểm phiếu:
Giao thức 1: Cử tri mã hóa lá phiếu bằng hệ mã hóa Elgamal, Cử tri gửi nó tới
người xác minh TT kèm theo "Chứng minh không tiết lộ thông tin" cho tính hợp lệcủa lá phiếu đó
Giao thức 2: Sau khi xác minh lá phiếu hợp lệ, người xác minh TT làm "mù" lá
phiếu và gửi nó về Ban KP kèm theo "Chứng minh không tiết lộ thông tin" cho tính
hợp lệ của lá phiếu đã bị làm "mù" Cụ thể chứng minh quyền sở hữu giá trị bí mật
dùng để làm "mù" lá phiếu
Trang 14Sơ đồ Cử chi chuyến lá phiếu đến Ban kiếm phiếu
Lá phiếu đã Lá phiếu mã
mã hóa (x,y) hóa đã bị làm
2.1.3.Chứng minh tính hợp lệ của lá phiếu (x, y) (Giao thức 1)
Theo sơ đồ giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban kiếm phiếu (Ban KP),
phải thực hiện giao thức 1 Tức là Cử tri sẽ mã hóa lá phiếu bằng hệ mã hóa Elgamal,
lá phiếu đã mã hóa được gửi tới người xác minh trung thực (TT) kèm theo "Chứngminh không tiết lộ thông tin" cho tính hợp lệ của lá phiếu đó
Giả sử trong cuộc bầu cử "chọn 1 trong k", nếu cử tri nào đó chọn Gi là ứng cử
viên thứ i trong danh sách thì lá phiếu hợp lệ phải ghi Gi với i = 1, 2, , k Bằng mãhóa Elgamal, lựa chọn Gi được mã hóa thành (x, y) = (ga, haGi)
Như vậy Cử tri muốn chứng minh với người xác minh trung thực TT rằng lá phiếu (x, y) là hợp lệ, thì anh ta phải chỉ ra một trong k đắng thức sau là đúng:
(loggX = logh (y/G1)) v v (loggX = logh (y/Gk)) (1)
Để chứng minh (1) mà không bị lộ Gi, Cử tri và người xác minh TT thống nhấtdùng giao thức "Chứng minh không tiết lộ thông tin" như sau:
Giai đoạn 1 cử tri chứng minh lá phiếu hợp lệ
Làm mù lá phiếu
Xác minh tính hợp
-Niêm yết -Công khai các
lá phiếu đã mã hóa 2 lần
Trang 15Ta có: lá phiếu (x, y) log g x = logh(y/G1)v v loggx = logh(y/Gi)v vloggx=logh(y/Gk)
Vì lá phiếu hợp lệ là lá phiếu đúng quy định (là chỉ chọn Ì ứng cử viên) Giả sửứng cử viên được chọn là ứng cử viên thứ i => đế chứng minh lá phiếu họp lệ ta chỉcần chứng minh đẳng thức thứ i trong k đẳng thức trên là đúng:
loggx = logh(y/Gi)
Trang 16Ví dụ: Chứng minh tính hợp lệ của lá phiếu đã mã hóa (x, y) = (ga, haGi).
Giả sử cuộc bầu cử "chọn 1 trong 3" Các lựa chọn là 1 hoặc 2 hoặc 3 Kí hiệulựa chọn ứng cử viên thứ i là Gi Đế chứng minh tính hợp lệ của lá phiếu, cử tri phảichứng minh:
Để chứng minh (1), Cử tri và người xác thực TT thống nhất dùng giao thức
"Chứng minh không tiết lộ thông tin" như sau: Chọn phần tử sinh g = 3, a = 5, khóa
bí mật s = 7, khóa công khai h = gs =37 Ký hiệu 3 ứng cử viên Gi = 1, G2 = 2, G3 = 3 Giả sử cử tri chọn Gi = 2
-Cử tri mã hóa lá phiếu [(x, y) = (3 5 , (3 7 ) 5 2)]
a j =g r j x d j ; b j =h r j (y/G j ) d i
Kết luận : lá phiếp hợp lệ
Trang 172.1.4 Chứng minh quyền sở hữu giá trị bí mật β (Giao thức 2)
Theo sơ đồ giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban kiểm phiếu (Ban KP)
phải thực hiện Giao thức 2) Tức là sau khi xác minh lá phiếu của Cử tri là hợp lệ
người xác minh TT làm "mù" lá phiếu và gửi nó về Ban KP kèm theo "Chứng minhkhông tiết lộ thông tin" cho tính hợp lệ của lá phiếu đã bị làm "mù" Người xác minh
TT làm "mù" lá phiếu thông qua cặp (u, v) và dựa ưên giá trị bí mật β Để chứng
minh lá phiếu bị làm "mù" vẫn hợp lệ, người xác minh TT phải chứng minh được là
anh ta sở hữu giá trị bí mật β thỏa mãn u = g p , V = t i * Nhưng mặt khác người
xác minh TT không muốn để lộ β Có một giao thức hiệu quả để người xác minh TT
làm việc này: giao thức X- Trong sơ đồ sau đây, người xác minh TT là người chứngminh (P), người kiểm tra (V) là CT, ban KP,
=> Nêu P không biết giá trị β thì P không thể tạo ra r chính xác để cho V kiểm tra.
2.1.5 Giai đoạn cử tri chuyển lá phiếu đến ban kiểm phiếu (phương án 2)
Giai đoạn Cử tri (CT) chuyển lá phiếu tới Ban kiểm phiếu (Ban KP), nó được
thực hiện bằng Giao thức 1 và Giao thức 2, ta gọi là phương án 1 Có phương án
khác (tạm gọi là 2) cũng để thực hiện giai đoạn này bằng 2 giao thức Giao thức 1
Trang 18Sau khi người xác minh TT xác minh lá phiếu của Cử tri là hợp lệ, sau khi Cử tri xác
minh người xác minh TT sở hữu giá trị β thì chính Cử tri làm "mù" lá phiếu và gửi nó
về Ban KP (thay vì người xác minh TT làm "mù" lá phiếu và gửi nó về Ban KP nhưtheo giao thức 2 của phương án 1) Trong phương án đề nghị: mỗi lần xử lý một láphiếu, tại mỗi bước thử điều kiện nếu không thỏa mãn, công việc xử lý dừng lại với
lá phiếu này để chuyển sang lá phiếu tiếp theo
Phương án 1 gồm 2) giai đoạn một và hai
TT gửi CT giá trị w 2 thông
qua ( a , b )
- TT Chọn w 2) Z p , tính: ( a , b ) : = ( g w 2) , h w 2) )