Professional Documents
Culture Documents
Chuyên ngành: Bảo đảm toán cho máy tính và hệ thống tính toán
Mã số: 60 46 35
Trang: 2
LỜI CẢM ƠN
Để hoàn thành Luận văn “Chữ ký mù và ứng dụng trong bỏ phiếu kín trực
tuyến”, tác giả đã nhận được sự hướng dẫn và giúp đỡ nhiệt tình của nhiều tập thể
và cá nhân.
Trước hết, tác giả xin trân trọng cảm ơn Ban lãnh đạo cùng Quý thầy cô trong
Khoa Toán – Cơ – Tin học, Trường Đại học Khoa học Tự nhiên Hà Nội đã tận tình
dạy dỗ; truyền đạt những kiến thức, kinh nghiệm quý báu và tạo điều kiện thuận lợi
cho tác giả trong suốt thời gian học tập và thực hiện đề tài.
Đặc biệt, tác giả xin gửi lời cảm ơn sâu sắc tới TS. Tôn Quốc Bình đã nhiệt
tình hướng dẫn, cung cấp những kinh nghiệm quý báu của Thầy để giúp đỡ tác giả
trong quá trình học tập và hoàn thành luận văn.
Tác giả cũng xin trân trọng cám ơn Lãnh đạo Trường Chính trị tỉnh Thái
Bình, các đồng nghiệp đã tạo mọi điều kiện thuận lợi, động viên tác giả trong suốt
quá trình học tập và thực hiện đề tài.
Trong phạm vi luận văn tốt nghiệp cao học khó có thể diễn đạt hết ý về mặt lý
thuyết cũng như kỹ thuật, mặc dù đã cố gắng hoàn thành luận văn với tất cả sự nỗ
lực của bản thân, xong luận văn khó có thể tránh khỏi những thiếu sót. Kính mong
nhận được những ý kiến đóng góp để tác giả tiếp tục hoàn thiện kiến thức cũng như
giải pháp của mình.
Tác giả
Trang: 3
MỤC LỤC
Trang: 4
DANH MỤC CÁC THUẬT NGỮ, TỪ VIẾT TẮT
CT Cử tri
ĐK Đăng ký
KP Kiểm phiếu
KT Kiểm tra
RSA Rivest, Shamir and Adleman - Giải thuật mã hóa công khai
Server Máy chủ, cung cấp các dịch vụ, ứng dụng
TT Trung thực
Website Một loại siêu văn bản (tập tin dạng HTML hoặc XHTML) trình
bày thông tin trên mạng Internet, tại một địa chỉ nhất định
Trang: 5
MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay với sự phát triển mạnh mẽ của Công nghệ thông tin và Truyền
thông, Internet đã thâm nhập vào tất cả mọi lĩnh vực hoạt động của con người.
Trong thực tế các hacker, các dạng virus luôn tấn công và là mối đe dọa của các
nguồn tài nguyên thông tin. Như vậy những vấn đề đảm bảo an toàn thông tin trong
các hệ thống máy tính là rất quan trọng.
Mật mã học [1] là một trong kỹ thuật bảo mật thông tin và đảm bảo an toàn
thông tin trong truyền thông. Nó không chỉ dừng lại trong lĩnh vực bảo mật thông
tin mà còn phục vụ nhu cầu xác thực thông tin trên mạng. Một trong những giải
pháp được đưa ra đó là “Chữ ký điện tử”, chữ ký số và đang được sử dụng để đảm
bảo an toàn cho các giao dịch trên mạng như: Thương mại điện tử, Chính phủ điện
tử, Hành chính công điện tử, bỏ phiếu điện tử..
Trong thực tiễn của đời sống xã hội thì việc bỏ phiếu để bầu cử các chức vụ,
chức danh hay thăm dò sự tín nhiệm của lãnh đạo các cấp, các ngành thông qua việc
bỏ phiếu kín là hoạt động thường xuyên, liên tục. Nhằm tăng hiệu quả, khách quan
và tính chính xác, giảm chi phí trong việc bỏ phiếu, tác giả muốn nghiên cứu các kỹ
thuật đảm bảo an toàn cho việc thực hiện bỏ phiếu kín trực tuyến. Xuất phát từ
những vấn đề thực tiễn trên, em chọn đề tài: “Chữ ký mù và ứng dụng trong bỏ
phiếu kín trực tuyến” là chủ đề chính của luận văn tốt nghiệp.
[17] Nghiên cứu chữ ký điện tử và bỏ phiếu kín trực tuyến ở nước ngoài
đã được nghiên cứu và thực hiện cho người dân bỏ phiếu trực tuyến, như ở:
St.Alban của Anh do Oracle và British đồng phát triển, cử tri và mã nhận
dạng cá nhân được gửi tới qua đường bưu điện và một mã nhận dạng bầu cử,
do nhân viên phụ trách bầu cử trao tận tay. Cử tri sau đó có thể bỏ phiếu trực
uyến qua internet hoặc qua các ki-ốt điện tử được đặt ở các điểm cố định. Đây
Trang: 6
là các hệ thống mang tính bảo mật rất cao, chính vì vậy tác giả không tiếp cận
để tìm hiểu các hệ thống đó một cách đầy đủ, mà chỉ tiếp cận để hiểu về một
số vấn đề thuyết của các hệ thống bỏ phiếu trực tuyến đó.
Ở Việt Nam chưa có hệ thống bỏ phiếu kín trực tuyến. Tuy nhiên cũng
có rất nhiều các công trình nghiên cứu khoa học của PGS.TS Trịnh Nhật Tiến
về Chữ ký “mù”, Chữ ký “mù nhóm” và ứng dụng của nó trong bỏ phiếu điện
tử. Bên cạnh đó cũng có nhiều Luận văn thạc sĩ của tác giả Vương Thị Huyền
Trang (CT-1002), Phạm Thị Vân Anh (Đồ án tốt nghiệp, Trường Đại học
Công nghệ), Nguyễn Việt Thịnh (Đồ án tốt nghiệp, trường ĐH Dân Lập HP),
Vũ Mạnh Khánh (luận văn nghiên cứu các kỹ thuật đảm bảo an toàn thông tin
trong việc sử dụng tiền điện tử, trường Đại học công nghệ),.. Ở các công trình
nghiên cứu chủ yếu đưa ra các vấn đề về lý thuyết, và minh họa cho lý thuyết,
chưa đưa ra một ứng dụng cụ thể để có thể sử dụng trong hoạt động thực tiễn.
Do đó luận văn tập trung nghiên cứu về quá trình bỏ phiếu kín trực
tuyến, và xây dựng ứng dụng bỏ phiếu kín trực tuyến lấy phiếu tín nhiệm cho
lãnh đạo cấp sở, ngành.
Luận văn nghiên cứu các kỹ thuật bảo mật thông tin phục vụ cho việc phân
tích thiết kế và xây dựng ứng dụng bỏ phiếu kín trực tuyến.
Tập trung nghiên cứu, tìm hiểu về quá trình thực hiện bỏ phiếu kín trực tuyến;
các tiêu chuẩn, cơ sở mật mã, giải pháp công nghệ; trên cơ sở đó xây dựng ứng
dụng bỏ phiếu kín tín nhiệm lãnh đạo cấp sở, ngành trực tuyến.
Trang: 7
5. Phƣơng pháp nghiên cứu
- Tiếp cận phân tích và tổng hợp: Đọc tài liệu, tổng hợp lý thuyết, phân tích lý
thuyết về Hệ mật mã đối xứng, hệ mật mã bất đối xứng (hệ mật mã khóa công khai),
chữ ký số, chữ ký mù
- Tiếp cận theo định tính và định lượng: Nghiên cứu cơ sở khoa học của mã
hóa, chữ ký số, chữ ký mù của các tác giả trong và ngoài nước, các bài báo, thu thập
thông tin trên mạng, tìm hiểu các mô hình bảo mật, chứng chỉ số. Từ đó trình bày
theo ý tưởng của mình về phân tích thiết kế và xây dựng ứng dụng bỏ phiếu kín trực
tuyến.
- Chương 2: Bỏ phiếu kín trực tuyến và một số cơ sở mật mã cần thiết áp dụng
cho bỏ phiếu kín trực tuyến.
- Chương 3: Phân tích, thiết kế và xây dựng ứng dụng bỏ phiếu kín tín nhiệm
lãnh đạo cấp sở, ngành trực tuyến.
+ Phân tích thiết kế và áp dụng các thuật toán để giải quyết yêu cầu.
+ Xây dựng ứng dụng bỏ phiếu kín tín nhiệm lãnh đạo cấp sở, ngành trực
tuyến
Trang: 8
Chƣơng -1. CHỮ KÝ SỐ, CHỮ KÝ MÙ SỐ
An toàn thông tin nghĩa là thông tin được bảo vệ từ các hệ thống và dịch vụ
hoạt động trên môi trường mạng có khả năng chống lại những can thiệp bất hợp
pháp hay những tai họa không mong đợi; các thay đổi tác động đến độ an toàn của
hệ thống là nhỏ nhất. Hệ thống không an toàn là hệ thống tồn tại những điểm như:
thông tin bị rò rỉ ra ngoài - dữ liệu trong hệ thống bị người không được quyền truy
nhập và lấy sử dụng, các thông tin trong hệ thống bị thay thế hoặc sửa đổi làm sai
lệch một phần hoặc hoàn toàn nội dung…
Giá trị thực sự của thông tin chỉ đạt được khi thông tin được cung cấp chính
xác, kịp thời, đầy đủ, do đó hệ thống phải hoạt động chuẩn xác thì mới có thể đưa ra
những thông tin có giá trị cao. Mục tiêu của an toàn bảo mật trong công nghệ thông
tin là đưa ra một số tiêu chuẩn an toàn và áp dụng các tiêu chuẩn an toàn này vào
chỗ thích hợp để giảm bớt và loại trừ những nguy hiểm có thể xảy ra. [1],[3]
Ngày nay, với sự phát triển rất nhanh của khoa học công nghệ, các biện pháp
tấn công của các tin tặc ngày càng tinh xảo hơn, độ an toàn của thông tin có thể bị
đe dọa từ nhiều nơi, nhiều cách khác nhau, do đó chúng ta cần phải đưa ra các chính
sách đề phòng thích hợp.
Các yêu cầu cần thiết của việc bảo vệ thông tin và tài nguyên:
- Đảm bảo tính bí mật (Security) thông tin không bị lộ đối với người không
được phép.
- Đảm bảo tính tin cậy (Confidentiality): Thông tin và tài nguyên mà người
nhận xác nhận chỉ có duy nhất của người gửi nó.
- Đảm bảo tính toàn vẹn (Integrity): Thông tin và tài nguyên không thể bị sửa
đổi, thay thế bởi những người không có quyền hạn.
- Đảm bảo tính sẵn sàng (Availability): Thông tin và tài nguyên luôn sẵn sàng
để đáp ứng sử dụng cho người có quyền hạn.
Trang: 9
- Đảm bảo tính không thể chối bỏ (Non-Repudiation): Thông tin và tài nguyên
được xác nhận về mặt pháp luật của người cung cấp.
1.1. Chữ ký số
* Khái niệm
* Ví dụ:
Các số 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 là số nguyên tố.
Số nguyên tố có vai trò và ý nghĩa to lớn trong số học và lý thuyết mật mã. Bài
toán kiểm tra tính nguyên tố của một số nguyên dương n và phân tích một số n ra
thừa số nguyên tố là các bài toán rất được quan tâm.
Nếu Ước số chung lớn nhất của a1 , a2 ,..., an , ký hiệu gcd( a1 , a2 ,..., an ) = 1, thì
các số a1 , a2 ,..., an gọi là nguyên tố cùng nhau.
* Khái niệm: Cho a Z n , nếu tồn tại b Z n sao cho ab 1 (mod n), ta nói b
Trang: 10
+ * là phép toán hai ngôi
- Cấp của nhóm, ký hiệu |G| là số phần tử của nhóm (có thể G có vô hạn các
phần tử, cấp của G là vô cùng).
* Định lí cơ bản của số học: Mọi số nguyên n > 1 đều có thể được phân
tích một cách duy nhất dưới dạng các lũy thừa của các số nguyên tố khác nhau.
k
n= p
i 1
i
i p11 p22 ... pkk , i 0
Trong đó pi (i=1, 2, .., k) là các số nguyên tố, từng đôi một khác nhau.
* Hệ quả:
+ c là ước số của a và b
+ Bất kì một ước số chung nào của a và b đều nhỏ hơn hoặc bằng c.
- Định lý Mersenne:
Trang: 11
- Định lý Lagrang: Nếu G là nhóm cấp n và a G, thì cấp của a là ước của n.
- Định lý Fermat:
+ Nếu a không chia hết cho p tức là a (mod p) 0 thì ap-1 1 (mod p)
Cho tập số nguyên tố cùng nhau từng đôi một m1, m2,…mk. Với mỗi bộ số
nguyên bất kỳ a1, a2,…ak , hệ phương trình dạng:
x ≡ ai (mod mi), (i =1, 2, …, k), luôn có nghiệm duy nhất theo modulo m,
M = m1.m2.…mk .
Với Mi = M / mi
Nhận xét:
Định lý số dư Trung Quốc cho phép tính đồng dư theo modulo của một số
lớn (tích của nhiều số nguyên tố cùng nhau), thông qua tính toán đồng dư theo
modulo các số nhỏ (từng thừa số).
Vì các số 3, 5, 7 nguyên tố cùng nhau, nên theo định lý Trung Quốc về số dư,
hệ có nghiệm duy nhất theo modulo M = 3.5.7 = 105,
Trang: 12
M2 = M/5 = 21 → y2 = 21-1 mod 5= 1
Ví dụ:
Do 7 là số nguyên tố, nên tập các số nguyên dương nhỏ hơn 7 và nguyên tố
cùng nhau với 7 là Z7* = {1, 2, 3, 4, 5, 6}.
* Khái niệm
Cho hai số nguyên a, b, m (m > 0). Ta nói rằng a và b “đồng dư” với nhau
theo modulo m, nếu chia a và b cho m, ta nhận được cùng một số dư.
* Ví dụ:
Trang: 13
- Với mọi số nguyên dương m ta có:
a ≡ a (mod m) với mọi a Z; (tính chất phản xạ)
a ≡ b (mod m) thì b ≡ a ( mod m); (tính chất đối xứng)
a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m); (tính chất bắc cầu)
- Tổng hay hiệu các đồng dư:
(a+b) (mod n) ≡ [(a mod n) + (b mod n)] (mod n)
(a-b) (mod n) ≡ [(a mod n) - (b mod n)] (mod n)
- Tích các đồng dư:
(a*b) (mod n) ≡ [(a mod n) * (b mod n)] (mod n)
* Khái niệm
Z n và phép cộng (+) lập thành nhóm Cyclic có phần tử sinh là 1, phần tử trung
lập e = 0, (Z n , +) gọi là nhóm cộng, đó là nhóm hữu hạn có cấp n.
Với phép (+) là phép cộng thông thường của các số nguyên.
Z *n được gọi là Tập thặng dư thu gọn theo mod n, có số phần tử là (n).
Z *n với phép nhân mod n lập thành một nhóm (nhóm nhân),
Nhóm nhân Z *n là Cyclic chỉ khi n có dạng: 2 , 4, p k hay 2p k với p là nguyên tố lẻ.
* Ví dụ: Cho n = 21, Z *n = {1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20}.
Trang: 14
1.1.1.6. Độ phức tạp của thuật toán
“Thuật toán” được hiểu đơn giản là cách thức để giải một bài toán. Cũng có
thể được hiểu bằng hai quan niệm: trực giác hay hình thức như sau:
- Một cách trực giác, Thuật toán được hiểu là một dãy hữu hạn các qui tắc (chỉ
thị, mệnh lệnh) mô tả một quá trình tính toán, để từ dữ liệu đã cho đầu vào ta nhận
được kết quả đầu ra của bài toán.
- Một cách hình thức, người ta quan niệm thuật toán là một máy Turing.
Thuật toán được chia thành hai loại: Đơn định và không đơn định.
Chi phí thời gian của một quá trình tính toán là thời gian cần thiết để thực
hiện một quá trình tính toán. Với thuật toán tựa Algol: Chi phí thời gian là số các
phép tính cơ bản thực hiện trong quá trình tính toán.
Chi phí bộ nhớ của một quá trình tính toán là số ô nhớ cần thiết để thực hiện
một quá trình tính toán. Gọi A là thuật toán, e là dữ liệu vào của bài toán đã được
mã hóa bằng cách nào đó. Thuật toán A tính trên dữ liệu vào e phải trả một giá nhất
định. Ta ký hiệu: tA(e) là giá thời gian và IA(e) là giá bộ nhớ.
Để chứng thực nguồn gốc hay hiệu lực của một tài liệu văn bản (ví dụ như:
Quyết định, công văn, ...), người ta dùng chữ ký “bằng tay” vào phía dưới của mỗi
tài liệu. Như vậy người ký phải trực tiếp “ký bằng tay” vào tài liệu.
Với các tài liệu được số hóa, người ta cũng có nhu cầu chứng thực nguồn gốc
hay hiệu lực của các tài liệu này. Rõ ràng không thể “ký bằng tay” vào tài liệu, vì
Trang: 15
chúng không được in ấn trên giấy. Tài liệu “số” (hay tài liệu “điện tử”) là một xâu
các bít (0 hay 1), xâu bít có thể rất dài (nếu in trên giấy có thể hàng nghìn trang).
“Chữ ký” để chứng thực một xâu bít tài liệu cũng không thể là một xâu bít nhỏ đặt
phía dưới xâu bít tài liệu. Một “chữ ký” như vậy chắc chắn sẽ bị kẻ gian sao chép để
đặt dưới một tài liệu khác bất hợp pháp.
Các nhà khoa học đã phát minh ra “chữ ký số” để chứng thực một “tài liệu số”
vào những năm 80 của thế kỷ 20. Đó chính là “bản mã” của xâu bít tài liệu.
Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra
“bản mã” của tài liệu với “khóa lập mã”.
Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bít tài liệu. Kẻ gian khó
thể giả mạo “chữ ký số” nếu nó không biết “khóa lập mã”.
Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã “chữ
ký số” bằng “khóa giải mã” và so sánh với tài liệu gốc.
Ngoài ý nghĩa để chứng thực nguồn gốc hay hiệu lực của các tài liệu số hóa.
Mặt mạnh của “chữ ký số” hơn “chữ ký tay” là ở chỗ người ta có thể “ký” vào tài
liệu từ xa trên mạng công khai. Hơn thế nữa, có thể “ký” bằng các thiết bị cầm tay
(ví dụ điện thoại di động) tại khắp mọi nơi (Ubiquitous) và di động (Mobile), miễn
là kết nối được vào mạng.
“Ký số” thực hiện trên từng bít tài liệu, nên độ dài của “chữ ký số ” ít nhất
cũng bằng độ dài tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường dùng
“hàm băm” để tạo “đại diện” cho tài liệu, sau đó mới “Ký số” lên “đại diện” này.
Chúng ta có thể hiểu nôm na về chữ ký số như sau: là những thông tin đi kèm
với dữ liệu nhằm xác định chủ của người gửi nó.
Thuật toán tạo ra khóa, hàm tạo chữ ký và hàm kiểm tra chữ ký.
Hàm tạo ra chữ ký là hàm tính toán chữ ký trên cơ sở khóa mật và dữ liệu cần ký.
Trang: 16
Hàm kiểm tra chữ ký là hàm kiểm tra xem chữ ký đã cho có đúng với khóa
công cộng không. Khóa này mọi người có quyền truy cập cho nên mọi người đều có
thể kiểm tra được chữ ký.
Người ta thường dùng hệ mã hóa khóa công khai để lập “Sơ đồ chữ ký số”. Ở
đây khóa bí mật a dùng làm khóa “ký”, khóa công khai b dùng làm khóa kiểm tra
“chữ ký”.
Ngược lại với việc mã hóa, dùng khóa công khai b để lập mã, dùng khóa bí
mật a để giải mã. Do “ký” cần giữ bí mật nên phải dùng khóa bí mật a để “ký”, còn
“chữ ký” là công khai cho mọi người biết, nên dùng khóa công khai b để kiểm tra.
1.1.4. Phân loại chữ ký theo đặc trƣng kiểm tra chữ ký
Là loại chữ ký, trong đó người gửi chỉ cần gửi “chữ ký”, người nhận có thể
khôi phục lại được thông điệp, đã được “ký” bởi “chữ ký” này.
Trang: 17
Ví dụ: Chữ ký RSA là chữ ký khôi phục thông điệp.
Là loại chữ ký, trong đó người gửi không chỉ cần gửi “chữ ký” mà phải gửi
kèm cả thông điệp đã được “ký” bởi “chữ ký” này. Ngược lại, người nhận sẽ không
có được thông điệp gốc.
Nhằm tránh việc nhân bản chữ ký để sử dụng nhiều lần, tốt nhất là người gửi
tham gia trực tiếp vào việc kiểm thử chữ ký. Điều đó được thực hiện bằng một giao
thức kiểm thử, dưới dạng một giao thức mời hỏi và trả lời.
Để bảo đảm an toàn, “khóa ký” chỉ dùng 1 lần (one-time) trên 1 tài liệu.
Ví dụ: Chữ ký một lần Lamport. Chữ ký Fail - Stop (Van Heyst & Pedersen).
Trang: 18
- Chữ ký không thể giả mạo: Chữ ký chứng minh chỉ có người ký đã ký vào
tài liệu một cách chủ định mà không phải ai khác.
- Chữ ký không thể được dùng lại: Chữ ký phải là một phần của tài liệu và
không thể chuyển chữ ký sang tài liệu khác.
Các khả năng tấn công đối với chữ ký điện tử:
1. Tin tặc có thể giả mạo chữ ký tương ứng với văn bản đã chọn.
2. Tin tặc thử chọn thông điệp mà tương ứng với chữ ký đã cho.
3. Tin tặc có thể ăn trộm khóa mật và có thể ký trên bất kỳ một bức điện nào
nó muốn giống như chủ của khóa mật.
4. Tin tặc có thể giả mạo người ký và ký một bức điện nào đó.
5. Tin tặc có thể đổi khóa công cộng bởi khóa của mình.
- Ký số thực hiện trên từng bít của tài liệu. Trong thực tế, ta cần ký vào các tài
liệu số có kích thước lớn. Như vậy tốn nhiều bộ nhớ để lưu trữ chữ ký, mặt khác tốn
nhiều vấn đề khác…
- Một sơ đồ chữ ký "an toàn" thì tốc độ ký chậm vì phải dùng nhiều phép toán
số học phức tạp như số mũ modulo.
- Sử dụng hệ mã hóa sơ đồ ký giống nhau (hoặc có thể khác nhau) nhưng thực
tế lại cho ra bản mã hay chữ ký giống nhau. Điều này sẽ dẫn đến phức tạp cho việc
xác thực.
Để giải quyết các tình trạng trên người ta thường sử dụng "hàm băm" để tạo
"đại diện" (hay bản tóm lược, thu gọn) cho tài liệu. Sau đó ký số lên "đại diện" này.
Trang: 19
1.1.8.1. Hàm băm: (Hash function)
* Hàm băm (h) Là hàm một chiều (One-way Hash) với các đặc tính sau:
- Với tài liệu đầu vào (thông điệp gốc) x, chỉ thu được giá trị băm duy nhất z =
h(x).
- Nếu dữ liệu trong thông điệp x bị thay đổi hay bị xóa để thành thông điệp
x‟, thì giá trị băm h(x‟) h(x).
- Dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của thông
điệp gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi. Điều này có nghĩa là: hai
thông điệp khác nhau, thì giá trị băm của chúng cũng khác nhau.
- Nội dung của thông điệp gốc “khó” thể suy ra từ giá trị hàm băm của nó.
Nghĩa là: với thông điệp x thì “dễ ” tính được z = h(x), nhưng lại “khó” tính
ngược lại được x nếu chỉ biết giá trị băm h(x) (kể cả khi biết hàm băm h).
* Tính chất của hàm băm.
Trang: 20
1.1.8.2. Lược đồ ký số và thẩm định ký số:
Chữ ký số được tạo ra bằng cách mã hóa chuỗi băm (được tạo ra từ thông báo
ban đầu bằng cách sử dụng hàm băm) với khóa riêng của người gửi. Quá trình kiểm
tra chữ ký số gồm các bước: sử dụng hàm băm để tạo ra một chuỗi băm tính được từ
thông báo nhận được, giải mã chữ ký số với khóa công khai của người gửi để thu
được chuỗi băm, so sánh chuỗi băm mong muốn và chuỗi băm tính được, nếu trùng
nhau thì chữ ký số là hợp lệ, người nhận có thể tin cậy vào thông báo nhận được,
xác định thông báo không bị làm giả trong quá trình trao đổi và có nguồn gốc từ
người gửi.
Trang: 21
* Sơ đồ chữ ký RSA
Tạo khóa:
Quá trình tạo khóa cho sơ đồ chữ ký RSA giống như quá trình hình thành khóa
của hệ mật RSA, tức là: Người ký chọn cặp số nguyên tố đủ lớn p và q, với q p ,
Để thẩm tra chữ ký s có phải của Người ký ký không thì Người nhận kiểm
chứng bằng thủ tục sau:
Rõ ràng chúng ta thấy rằng quá trình tạo chữ ký và thẩm tra chữ ký giống với
quá trình mã và giải mã của hệ mật RSA chỉ khác là quá trình tạo chữ ký Người ký
dùng khóa mật còn quá trình thẩm tra thì Người nhận dùng khóa công cộng.
Ví dụ:
Chữ ký trên x = 2
Trang: 22
Khóa bí mật a = 3, là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod
(n)).
Chữ ký mù (Bind Signature) được David Chaum giới thiệu vào năm 1983, nó
là một loại chữ ký số, trong đó nội dung của thông điệp bị "che" đi trước khi nó
được ký [5], [7]. Chữ ký thu được có thể được xác thực như là đối với chữ ký số
thông thường. Chữ ký mù thường được dùng trong các vấn đề đòi hỏi sự nặc danh
như trong các ứng dụng tiền điện tử, bỏ phiếu điện tử … Một trong các sơ đồ nổi
tiếng là sơ đồ chữ ký mù Chaum. Sơ đồ này hình thành trên cơ sở sơ đồ chữ ký
RSA (như đã trình bày ở trên).
- Người yêu cầu ký sẽ làm "mù" thông điệp m được m' m r e (mod n) , với r
RZ n ngẫu nhiên và gửi m' cho người ký.
- Người ký, ký vào thông điệp đã được làm mù m' và cho chữ ký s'=m'd mod n
đến người yêu cầu ký.
- Người yêu cầu lấy lại được chữ ký S của thông điệp m bằng cách tính toán: S
= s'/r = m'd/r = mdred/r = mdr/r = md
Trang: 23
Chữ ký mù phối hợp với không gian thông điệp M là bộ 5 gồm (ŋ,X,б,δ,Γ)
trong đó [11]:
- ŋ là một thuật toán xác xuất, với việc đặt khóa công khai của người ký là pk
và khóa bí mật tương ứng là sk.
- X là thuật toán mù, trong đó đặt một thông điệp m M và một khóa công
khai pk và một xâu ngẫu nhiên r, đặt một thông điệp mù m‟.
- б là một thuật toán ký trong đó đặt một thông điệp mù m‟ và khóa bí mật sk
đặt chữ ký mù s‟ trong m‟.
- δ là một thuật toán đạt được trong đó đặt một chữ ký mù s‟ và một xâu ngẫu
nhiên r rút ra một chữ ký s trên m.
- Γ là một thuật toán xác minh chữ ký mà trên đó đặt một cặp thông điệp - chữ
ký (m,s) khóa công khai pk.
Đặt khóa
GEN(n): là thuật toán sinh khóa.
n=p*q; và Φn=(p-1)*(q-1);
m bản rõ
m‟ bản mù.
m‟=mrpk mod n;
* Quá trình ký.
б(sk,s,m‟) là thuật toán ký.
Trang: 24
s‟=m‟sk mod n;
* Lấy lại chữ ký.
δ(s,m‟,m) thuật toán lấy lại chữ ký.
s=s‟/r=m‟sk/r=mskrpk sk/r=mskr/r=msk;
kiểm địmh chữ ký dựa theo quá trình lập mã và giải mã của hệ thống mã RSA.
- Tính đúng đắn: Bất kỳ ai cũng có thể kiểm tra tính đúng đắn của chữ ký
thông qua khóa công khai của người ký.
- Tính chính xác: Chữ ký hợp lệ chỉ ra người ký mới ký lên được tài liệu.
- Tính xác thực: Một người ký hợp lệ có thể tạo ra một chữ ký hợp lệ.
- Không tái sử dụng: Người yêu cầu chữ ký không thể sử dụng chữ ký nhiều
hơn một lần.
- Chống chối bỏ: Những người ký lên văn bản không thể chối bỏ đã ký một
văn bản có chữ ký hợp lệ.
- Làm mù: sử dụng khóa công khai của người ký để làm mù nội dung trước
khi nó được ký bởi người đó.
- Tính bảo mật: Không ai có thể sửa được nội dung trừ người đã làm mù nội
dung đó.
* Ứng dụng của chữ ký mù: Thường được sử dụng trong hệ thống bỏ phiếu
điện tử và trong hệ thống tiền điện tử…
Trang: 25
1.3.2. Chữ ký mù RSA.
* Sơ đồ:
1. Người nhận chọn số ngẫu nhiên r, sao cho UCLN(r,n)=1 và dùng khóa
công khai b của người ký để làm mù thông điệp m thành m'
2. Người được ký gửi cho Người ký thông điệp m' m r b (mod n) , đây là
thông điệp để Người ký ký, Người ký không thể biết được thông điệp m.
4. s' m'a ma r ab (mod n) r ma (mod n) . Đến đây Người ký cũng không thể
biết được giá trị m a bởi bản mã s’ được mã bởi khóa r. Nếu như Người ký biết
được m a thì dễ dàng biết được M bằng cách:
5. (ma )b m(mod n) .
6. Người nhận dùng thuật toán mở rộng Euclide để tính r 1 và khôi phục
chữ ký cho thông điệp m, bằng cách: s k 1s' k 1 k ma ma (mod n) .
Như vậy Người được ký nhận được chữ ký với thông điệp m mà Người ký
không biết được nội dung của thông điệp m.
* Nghiên cứu của Fan_chen_Yeh's vẫn dựa trên tưởng của mã RSA. Nhưng họ
gợi ý tới việc sử dụng nối chuỗi m‟=a1||…||at với a1= m ai=H(a1||…||ai-1), 1<i<t và
|m‟|=|n|.
Thay vào đó một hàm băm như là MD5 hay SHA. [16]
Trang: 26
Để giảm bớt khả năng bị tấn công trong sơ đồ chữ ký mù.
* Mô tả về sơ đồ chữ ký mù
n=p*q; và Φn=(p-1)*(q-1);
Lúc đó sk(khóa bí mật) sk=pk-1 và một hàm băm H() với cách băm như là MD5.
Khi nhận được yêu cầu ký của một báo cáo m. Người sử dụng chọn ngẫu
nhiên một số nguyên r Zn* và một số nguyên dương u Zn. Tiếp theo tính toán
và đưa ra số nguyên a ( rpk H(m) (u2+1) mod n ) cho người ký. Sau khi nhận a,
người ký chọn ngẫu nhiên một số nguyên dương x Zn và gửi tới cho người sử
dụng. Sau khi nhận x, người sử dụng chọn ngẫu nhiên một số nguyên b Zn* và
tính toán.
(bpk(u-x) mod n ).
t (a(x2+1) -2 )sk mod n . tiếp theo người ký gửi tới cho người sử dụng.
4. Quá trình làm rõ sau khi nhận được t, người sử dụng tính c ((ux+1)(u-x)-
1
mod n và s (r-1b2t ) mod n .
s là chữ ký của người ký trên (c,m), verify (c, m, s), nếu spk H(m)(c2+1) mod
n
Trang: 27
1.3.4. Chữ ký mù Schnorr.
3. Người ký lấy ngẫu nhiên r Zq và tính t = gr và gửi t cho người yêu cầu.
Người tin cậy Z là trưởng nhóm chọn hệ thống khóa bí mật, Z chuyển cho mỗi
thành viên trong nhóm một danh sách các khóa bí mật (các danh sách này là khác
nhau) và công bố một danh sách các khóa công khai tương ứng (theo thứ tự ngẫu
nhiên) trong thư mục công khai tin tưởng (TPD - Trusted Public Directory).
- Mỗi thành viên trong nhóm có thể ký bằng khóa bí mật si trong danh sách
của anh ta.
- Người nhận kiểm tra chữ ký bằng khóa công khai tương ứng h = g s i mod p.
Trang: 28
Mỗi khóa bí mật si chỉ được sử dụng một lần.
- Z biết danh sách khóa bí mật của mỗi thành viên, vì thế trong trường hợp cần
thiết, Z biết được ai đã tạo ra chữ ký đó.
- Theo sơ đồ này, Z biết danh sách khóa bí mật của mọi thành viên và có thể
giả mạo chữ ký. Điều này có thể giải quyết bằng việc sử dụng các khóa công khai
„mù‟. Bằng cách:
Thành viên thứ i lấy khóa bí mật “thực sự” của mình là si , khóa công khai
“thực sự” là h = gsi mod p. Trưởng nhóm Z có danh sách các khóa công khai khác
nhau h và tên của các thành viên tương ứng trong nhóm.
- Mỗi tuần Z đưa cho thành viên i một số ngẫu nhiên ri {1, 2,…, p-1}, trong
tuần này thành viên i sẽ sử dụng si ri mod (p-1) làm khóa bí mật “mù”. (Khóa mật
si đã bị che bởi ri).
- Với cải biên này, Z “khó” giả mạo chữ ký, vì mỗi thành viên có “khóa mật
thực sự” si , không trao cho Z. Nếu chẳng may ri bị lộ, nhưng si vẫn không bị lộ.
Trong chương này, luận văn đã tìm hiểu một số cơ sở về chữ ký số và chữ ký
mù số, cụ thể:
Tìm hiểu một số khái niệm trong số học; chữ ký số; sơ đồ ký số RSA; sơ đồ
chữ ký mù RSA và một số chữ ký số mù khác.
Trang: 29
Chƣơng- 2. TỔNG QUAN VỀ BỎ PHIẾU KÍN TRỰC TUYẾN
Để có hướng nghiên cứu và giải pháp phù hợp, chương này tập trung tìm hiểu
một số khái niệm về bỏ phiếu trực tuyến, đánh giá thực trạng và nhu cầu về bỏ
phiếu kín trực tuyến thăm dò tín nhiệm của lãnh đạo các sở, ngành.
Việc bỏ phiếu kín là việc làm theo nguyên tắc bầu cử trực tiếp và theo nguyên
tắc biểu quyết kín. Nó được áp dụng khi bỏ phiếu bầu cử Quốc Hội; Hội đồng nhân
dân các cấp; bầu các chức vụ, chức danh hay lấy tín nhiệm. Người được quyền bỏ
phiếu kín sẽ trực tiếp thể hiện ý chí của mình trên lá phiếu do Ban tổ chức bầu cử
phát hành (có dấu treo của BTC), sau đó gấp lá phiếu lại và bỏ vào hòm phiếu theo
quy định. [14]
Bầu cử trực tiếp có nghĩa là công dân trực tiếp thể hiện ý chí của mình qua lá
phiếu, chứ không thông qua một cấp đại diện cử tri nào.
Nguyên tắc bỏ phiếu kín thể hiện ở việc loại trừ sự theo dõi và kiểm soát từ
bên ngoài sự thể hiện ý chí (sự bỏ phiếu) của cử tri, nhằm đảm bảo tự do đầy đủ sự
thể hiện ý chí của cử tri. Cử tri viết phiếu bầu trong buồng kín và bỏ phiếu vào hòm
phiếu, việc lựa chọn của cử tri được đảm bảo bí mật, khi cử tri viết phiếu bầu không
ai được đến gần, không ai được biết và can thiệp vào việc viết phiếu bầu của cử tri
kể cả cán bộ, nhân viên các tổ chức phụ trách bầu cử.
Một cuộc bỏ phiếu thành công phải đảm bảo các tính chất:
Tính hợp lệ: Lá phiếu phải do Ban bầu cử phát hành (kiểm tra dấu của BTC
trên lá phiếu), cử tri phải thể hiện ý chí của mình trên lá phiếu và bỏ lá phiếu vào
hòm phiếu trong khoảng thời gian theo quy định của bầu cử.
Quyền bỏ phiếu: Chỉ người có quyền bầu cử mới được bỏ phiếu. Mỗi cử tri chỉ
được bỏ phiếu một lần.
Trang: 30
Bí mật: Không biết được lá phiếu nào đó là của ai, trừ cử tri của nó.
Kiểm soát kết quả: Phát hiện được sai sót trong quá trình bỏ phiếu (Tổng số
phiếu phát ra; tổng số phiếu thu về; tổng số phiếu hợp lệ; tổng số phiếu không hợp
lệ) và tính chính xác kết quả kiểm phiếu.
Công khai kết quả kiểm phiếu: Thể hiện đúng kết quả kiểm phiếu.
Ở Việt Nam cho đến nay các cuộc bỏ phiếu kín vẫn được thực hiện theo cách
truyền thống đã tốn không ít tiền của và công sức, tuy nhiên với việc ứng dụng công
nghệ thông tin và truyền thông đặc biệt là việc thực hiện Chính phủ điện tử và số
hóa chứng minh nhân dân thì việc bỏ phiếu kín trực tuyến thay thế phương thức
truyền thống là xu hướng trong tương lai gần.
Bỏ phiếu kín trực tuyến là cuộc bỏ phiếu kín ứng dụng công nghệ thông tin -
truyền thông để đổi mới tổ chức, đổi mới các quy trình hoạt động bỏ phiếu, làm cho
việc bỏ phiếu được dễ dàng, hiệu quả, minh bạch hơn, cung cấp đầy đủ thông tin
hơn cho cử tri và tạo điều kiện tốt hơn cho cử tri thực hiện quyền dân chủ trong bỏ
phiếu. Tức là cử tri bỏ lá phiếu điện tử được thực hiện trên Internet thông qua các
phương tiện “điện tử” như máy tính cá nhân, điện thoại di động và “Phần mềm” bỏ
phiếu trực tuyến… “Phần mềm” bỏ phiếu kín trực tuyến cho phép cử tri sử dụng các
kỹ thuật mã hóa để giữ “bí mật” của lá phiếu điện tử trước khi chuyển đến hòm
phiếu điện tử qua các kênh công khai. Bỏ phiếu kín trực tuyến cũng như tất cả các
cuộc bỏ phiếu khác phải đảm bảo các yêu cầu: “Bí mật”, “toàn vẹn” và “xác thực”
của lá phiếu; mỗi cử tri chỉ được bỏ phiếu một lần; mọi người đều có thể kiểm tra
tính đúng đắn của cuộc bỏ phiếu. Cử tri không thể chỉ ra mình bỏ phiếu cho ai để
tránh cơ hội bán phiếu bầu.
Hoạt động bỏ phiếu tín nhiệm cán bộ là hoạt động thường xuyên được thực
hiện hàng năm của mỗi cơ quan đơn vị, tổ chức chính trị xã hội ở Việt Nam. Qua đó
Trang: 31
trong công tác quy hoạch, bổ nhiệm, luân chuyên cán bộ giữ cương vị và trọng trách
được tốt hơn. Hơn nữa, năm 2012, Quốc Hội nước Cộng hòa xã hội chủ nghĩa Việt
Nam đã có Nghị quyết số 35/2012/QH13 về việc lấy phiếu tín nhiệm, bỏ phiếu tín
nhiệm đối với người giữ chức vụ do Quốc hội, Hội đồng nhân dân bầu hoặc phê
chuẩn. Hơn nữa, Việt Nam đang muốn tiến tới một nhà nước của dân, do dân và vì
dân, do đó Nhà nước ta đã, đang xây dựng và phát triển Chính phủ điện tử, ở đó
Chính phủ điện tử mong muốn cải thiện các giao dịch và mang những dịch vụ công
trực tuyến của mình tốt nhất đến với người dân và doanh nghiệp ngày càng phổ biến
và sử dụng rộng rãi hơn. Một số các dịch vụ công trực tuyến hiện nay cũng đã làm
hài lòng người dân trong quá trình sử dụng các dịch vụ trực tuyến để giao dịch với
Nhà nước. Bỏ phiếu trực tuyến là một trong các dịch vụ công trực tuyến mà Nhà
nước và nhân dân luôn mong muốn được cung cấp, để thuận lợi cho Nhà nước nâng
cao hiệu quả quản lý, giảm chi phí, tăng cường sự công khai minh bạch trong quá
trình bầu cử và người dân có thể bày tỏ thái độ của mình trên lá phiếu một cách
khách quan, chính xác hơn và thuận lợi hơn. Do đó bỏ phiếu trực tuyến là nhu cầu
cấp thiết trong giai đoạn hiện nay. Tuy nhiên trong bối cảnh Internet hiện nay, hệ
thống bỏ phiếu trực tuyến cần phải đảm bảo an toàn thông tin của cử tri, của ứng cử
viên và cả thông tin của lá phiếu, đây là vấn đề cần bàn để hệ thống bỏ phiếu trực
tuyến vừa đảm bảo được an ninh thông tin của hệ thống, vừa đảm bảo tính thân
thiện đối với người sử dụng.
Khái niệm bỏ phiếu điện tử (e-voting) không còn xa lạ với các nước phát triển,
nhất là ở Bắc Mỹ và Châu Âu. Tại Châu Á, có một số nước đã thử nghiệm hệ thống
bầu cử điện tử, đó là Hàn Quốc, Nhật Bản và Ấn độ, những nước có trình độ ứng
dụng công nghệ thông tin và viễn thông cao. Tuy nhiên bầu cử điện tử tại những
nước này vẫn chưa được xem là thực sự thành công khi kết quả thu được từ những
lá phiếu điện tử vẫn còn nhiều nghi vấn. Vấn đề lớn nhất chính là tính bảo mật của
toàn hệ thống. Câu hỏi đặt ra là liệu có khả năng ai đó can thiệp vào những chiếu
Trang: 32
máy bầu cử hay chương trình bầu cử trên Internet để làm thay đổi kết quả hay
không.
Bỏ phiếu trực tuyến ở nước ta mới chỉ dừng lại ở mục đích bầu chọn, bình
chọn (ví dụ như bầu chọn Vịnh Hạ Long là di sản Thiên nhiên thế giới, bình chọn
bài hát hay trên sóng truyền hình..) song chưa thể triển khai vào bầu cử Quốc hội
như một dịch vụ công trực tuyến cấp cao nhất do còn nhiều hạn chế (Cơ sở hạ tầng
CNTT và viễn thông còn nhiều bất cập, nhất là các thiết bị bảo mật, khoảng cách
vùng miền; trình độ ứng dụng công nghệ thông tin của cán bộ, công chức; người
dân; dịch vụ trực tuyến bỏ phiếu online vẫn chưa được thử nghiệm… Với nhu cầu
bỏ phiếu trực tuyến hiện nay đối với Việt Nam là vấn đề cấp thiết trong giai đoạn
hiện nay khi đẩy mạnh Chính phủ điện tử, hơn nữa việc thực hiện bỏ phiếu kín trực
tuyến lấy tín nhiệm lãnh đạo ở các cơ quan đơn vị, bộ, ngành…sẽ góp phần cho
việc xây dựng và phát triển hệ thống bỏ phiếu trực tuyến ở Việt Nam.
* Cử tri
Là người tham gia bỏ phiếu trực tuyến; Cử tri có quyền hợp lệ để bỏ phiếu
trực tuyến, có quyền che dấu nội dung bỏ phiếu của mình, đồng thời là người giám
sát cuộc bầu cử, tức là kiểm tra lá phiếu của mình có được đếm và bị sửa nội dung
hay không. [4]
Quản lý các hoạt động bỏ phiếu, trong đó có thiết lập danh sách cử tri cũng
như hồ sơ của mỗi cử tri, quy định cơ chế định danh cử tri.
- Ban đăng ký
Trang: 33
Nhận dạng cử tri và cấp quyền bỏ phiếu cho cử tri, theo dõi cuộc bầu cử chống
lại việc cử tri bỏ phiếu quá 1 lần. Có hệ thống ký hỗ trợ.
Kiểm tra cử tri có hợp lệ không ? kiểm tra tính hợp lệ của lá phiếu, vì lá phiếu
đã được mã hóa nên Ban kiểm phiếu không biết được nội dung lá phiếu có hợp lệ
hay không mà chỉ cần xác minh tính hợp lệ của lá phiếu trước khi nó chuyển đến
hòm phiếu.
Kiểm phiếu và thông báo kết quả bầu cử. Có hệ thống kiểm phiếu hỗ trợ.
- Hệ thống phân phối khóa tin cậy: Cung cấp khóa ký của Ban ĐK, quá trình
mã hóa và giải mã lá phiếu
- Hệ thống kiểm phiếu: Giúp ban KP tính kết quả cuộc bầu cử
Giúp theo dõi quá trình bầu cử. Đây là kênh liên lạc công khai của tất cả các
thành phần tham gia hệ thống bỏ phiếu trực tuyến.
- Hệ thống các máy tính, hệ thống mạng máy tính và các phần mềm phục vụ
quy trình bỏ phiếu trực tuyến.
- Người dùng thực kiểm soát Server đảm bảo yêu cầu bảo mật và toàn vẹn của
kết quả bỏ phiếu.
2.3.2. Quy trình bỏ phiếu kín trực tuyến và các vấn đề.
Hiện nay, ở các nước phát triển về CNTT-TT trên thế giới đã nghiên cứu và
thử nghiệm các hệ thống bỏ phiếu trực tuyến. Mỗi hệ thống bỏ phiếu có các quy
trình bỏ phiếu khác nhau và chúng có những ưu và nhược điểm riêng.
Trang: 34
Thông thường thì một quy trình bỏ phiếu kín trực tuyến bao gồm 4 giai đoạn:
Gồm giai đoạn đăng ký, giai đoạn bỏ phiếu, giai đoạn kiểm tra, giai đoạn kiểm
phiếu.
* Thực hiện.
Theo phương thức bỏ phiếu kín trực tuyến, mỗi lá phiếu phải có thông tin định
danh. Có thể là con số x nào đó và phải khác nhau (Ví dụ CMTND). Trên mỗi lá
phiếu phải có chữ ký trên số định danh x, thì lá phiếu mới có giá trị để bầu cử.
Vấn đề 1: Nếu cử tri chuyển ngay số định danh x (CMTND) cho Ban kiểm
phiếu ký, Ban kiểm phiếu xác lập được mối liên hệ giữa x và người bỏ phiếu (cử
tri). Đó là điều mà cử tri không muốn vì những vấn đề rắc rối với nội dung lá phiếu
mà cử tri đã thực hiện.
Để tránh điều đó, cử tri biến đổi x thành y trước khi đưa cho Ban kiểm phiếu
vào y mà không biết đó là số định danh x đã bị che dấu (làm mù). Ban kiểm phiếu
ký vào y thành z và trao z cho cử tri. Cử tri xóa mù trên z sẽ được chữ ký của Ban
kiểm phiếu (vì lá phiếu đã có chữ ký của Ban kiểm phiếu)
Vấn đề 2: Do ký mù trên lá phiếu nên ban bầu cử không ghi lại được định
danh của cử tri. Do đó cử tri có thể xin nhiều lá phiếu để bỏ phiếu nhiều lần.
Vấn đề 3: Một trong thành phần Ban đăng ký tùy tiện cấp chữ ký.
* Thực hiện:
Sau khi lá phiếu có chữ ký của Ban đăng ký, cử tri thể hiện ý chí của mình vào
lá phiếu.
Trang: 35
Khi CT chuyển lá phiếu tới Ban kiểm phiếu, thì họ chỉ cần mã hóa nội dung lá
phiếu là đủ. Vì tiếp theo Ban KP chỉ cần giải mã nội dung lá phiếu là tính được kết
quả bỏ phiếu (kiểm phiếu).
Vấn đề 4: Ban KP hay một nhóm thành viên trong Ban KP đã không trung
thực, và gian lận phiếu bầu, ví dụ “Sửa lại nội dung lá phiếu“ sau khi giải mã,
nhưng trước khi kiểm phiếu.
Để khắc phục tình trạng 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 kiểm phiếu không phải giải mã từng lá
phiếu, nhưng vẫn tính được kết quả.
Vấn đề 5: Để bảo đảm công khai việc kiểm phiếu, lá phiếu đã mã hóa khi tới
Ban kiểm phiếu phải được niêm yết công khai. Nhưng nhìn trên bảng niêm yết công
khai, cử tri sẽ nhận ra lá phiếu của mình và họ có thể "bán phiếu bầu".
Để khắc phục tình trạng này, người ta dùng "người xác minh trung thực" làm
trung gian giữa cử tri và Ban kiểm phiếu. Nghĩa là cử tri gửi lá phiếu cho người
trung gian sau đó người trung gian mới chuyển cho Ban kiểm phiếu.
Sau khi xác minh lá phiếu hợp lệ, người trung gian làm mù lá phiếu (mã hóa lá
phiếu lần thứ 2), tiếp đó Người trung gian gửi lá phiếu đã mã hóa lần 2 về cho Ban
kiểm phiếu. Trên bảng niêm yết công khai, cử tri không thể nhận ra lá phiếu của
mình để "bán phiếu bầu".
Vấn đề 6: Cử tri phải chứng minh cho Người trung gian biết rằng lá phiếu của
cử tri là hợp lệ mà nội dung lá phiếu không bị tiết lộ, trong khi mọi người có đủ
bằng chứng để tin rằng lá phiếu là hợp lệ.
Vấn đề 7: Người trung thực phải chứng minh cho cử tri, Ban kiểm phiếu, ban
đăng ký.. biết rằng lá phiếu bị làm mù (ký lần 2) vẫn hợp lệ mà không tiết lộ thông
tin, bằng cách Người trung thực sở hữu giá trị mà không tiết lộ .
Trang: 36
2.3.2.3. Giai đoạn kiểm tra.
* Thực hiện:
- Kiểm tra tính hợp lệ của lá phiếu; nếu lá phiếu giả mạo (không khớp với chữ
ký của Ban đăng ký) thì lá phiếu này không được gửi tới hòm phiếu.
Vấn đề 8:
- Ban kiểm phiếu có thể sửa nội dung lá phiếu trước khi mã hóa lần 2 để gửi
vào hòm phiếu.
- Để khắc phục tình trạng này: Ban kiểm tra đứng trung gian giữa cử tri và
Ban kiểm phiếu để ngăn chặn một số tình huống thiếu an toàn hay vi phạm trong bỏ
phiếu.
* Thực hiện:
- Các lá phiếu sẽ được "trộn" nhờ kỹ thuật "trộn" lá phiếu (Mixing the votes)
trước khi lá phiếu được chuyển về Ban kiểm phiếu nhằm giữ bí mật cho cử tri.
- Ban kiểm phiếu tính kết quả dựa vào lá phiếu đã mã hóa gửi về theo phương
pháp mã hóa đồng cấu. Khi kiểm phiếu các thành viên ban kiểm phiếu dùng các
mảnh khóa riêng của mình để khôi phục khóa bí mật. Ban kiểm phiếu dùng khóa
này để tính kết quả cuộc bầu cử.
Để biến định danh x thành y có rất nhiều cách thực hiện như là mã hóa định
danh x bằng các kỹ thuật mã hóa, ở đây sử dụng kỹ thuật "Chữ ký mù"
Trang: 37
Ban đăng ký sử dụng kỹ thuật ký "mù" để ký lên định danh mù y của cử tri.
Như vậy Ban đăng ký không thể biết được ai đã ghi ý kiến vào lá phiếu, tức là đảm
bảo không tiết lộ định danh của cử tri.
Cụ thể:
* Cử tri A muốn xin chữ ký của Ban kiểm phiếu B trên định danh x của mình,
A áp dụng chữ ký mù RSA và biến đổi x thành y = xa mod n
Nghĩa là: y = Blind(x) = x.rb(mod n), với n và b được lấy từ khóa công khai
của ban kiểm phiếu B, r là ngẫu nhiên Zn và r nguyên tố cùng nhau với n. (để tồn
tại phần tử nghịch đảo r-1 mod n).
Như vậy A nhận được chữ ký của B: xa mod n mà ban kiểm phiếu không biết
nội dung x, bởi vì nội dung của x đã được làm mù thành z thông qua việc nhân với
rb, mặc dù b là công khai lấy từ ban kiểm phiếu B, nhưng r là số ngẫu nhiên mà B
khó có thể biết được. Sau khi B ký xong, A xóa mù (nhân với r-1) chữ ký trên z để
nhận được chữ ký của B trên x.
Ví dụ:
Chọn khóa công khai b = 3 < (n), nguyên tố cùng với (n)
Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a=3
Trang: 38
A chọn ngẫu nhiên số r = 4 nguyên tố cùng nhau với n. A thực hiện làm mù x
bằng bí danh z:
Ban kiểm phiếu B gửi z cho A, A thực hiện xóa mù trên z sẽ nhận được chữ ký
trên định danh x:
Tuy nhiên sử dụng phương pháp này sẽ phát sinh ra vấn đề:
Do ký mù trên lá phiếu nên ban bầu cử không ghi lại được định danh của cử
tri. Do đó cử tri có thể xin nhiều lá phiếu để bỏ phiếu nhiều lần.
- Cử tri:
+ Cử tri gửi tới ban bầu cử thông tin nhận dạng của mình, chứng minh thư
điện tử, số y (định danh x đã được làm mù thành y).
+ Cử tri có thể kiểm tra chữ ký của ban bầu cử lên lá phiếu của mình có hợp lệ
hay không bằng cách dùng hàm kiểm tra chữ ký và khóa công khai của ban bầu cử.
+ Ban bầu cử nhận dạng cử tri, kiểm tra chứng minh thư của cử tri.
+ Nếu hồ sơ của cử tri hợp lệ, khớp với danh sách cử tri của Ban điều hành, cử
tri chưa xin cấp chữ ký lần nào, thì ra lệnh cho hệ thống ký lên y. Đó là chữ ký z=
sign(y)
+ Ban bầu cử ghi số chứng minh thư của cử tri vào danh sách cử tri đã được
cấp chữ ký (để tránh việc cử tri đăng ký bỏ phiếu nhiều lần)
Trang: 39
2.4.2. Áp dụng chia sẻ bí mật phối hợp với hệ mã hóa Elgamal.
Giải quyết vấn đề 3 nêu ở trên:
Tuy nhiên không để 1 trong các thành viên của Ban đăng ký có thể tùy tiện
cấp chữ ký của cử tri khi cử tri yêu cầu thì ta phải sử dụng kỹ thuật "Chia sẻ khóa bí
mật Shamir phối hợp với Hệ mã hóa Elgamal" Tức là sau khi mọi thành viên của
Ban đăng ký nhất trí cho ký thì các thành viên này sẽ khớp các mảnh khóa riêng để
nhận được khóa ký.
Ví dụ: Áp dụng thủ tục chia sẻ bí mật dựa trên ý tưởng của Languange:
Giả sử ta có n thực thể A1, A2, …, An-1 và có 1 người được ủy quyền B biết
được toàn bộ khóa bí mật S N.
Người được ủy quyền B thực hiện các bước sau đây:
- B chọn một số nguyên tố P đủ lớn sao cho: n << p Với S Zp
Trang: 40
a1=334; a2 =223
Tính F(v1) = a2 v21 +a1v1 + S mod p
Áp dụng công thức trên với S = 472 ta có
f(v0) =1724
f(v1) = 1925
f(v2) = 1241
A1 có cặp (v0,f(v0))= (626,1724)
A2 có cặp (v1,f(v1))= (674,1925)
A3 có cặp (v2,f(v2))= (93,1241)
Cả 3 người hợp lại sẽ xác định được S:
S= g(0) = f (v
0 j 3
j )b j mod p , với bj = v (v
0 i n ,i j
i i v j ) 1 mod p
l
trong đó j , A l j
lA \ j
là hệ số Lagrange.
Mỗi thành viên Aj giữ bí mật mảnh khóa sj, nhưng công khai giá trị h j g s j
Trang: 41
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 A j công khai w j x và chứng minh không tiết lộ thông
sj
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.
Ví dụ1: Giả sử cần lấy ý kiến về một việc nào đó, mỗi người chỉ cần trả lời có
(ghi 1) hoặc không (ghi 0) vào lá phiếu. Nội dung lá phiếu được mã hoá và gửi về
Ban kiểm phiếu.
Vấn đề đặt ra 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 ? (Vì chúng đã được mã hoá).
Giải quyết
Giả sử có 4 cử tri tham gia bỏ phiếu là V1, V2, V3, V4.
Lá phiếu tương ứng của họ là: v1 = 0, v2 = 1, v3 = 1, v4 = 0.
Hệ mã hoá Elgamal được sử dụng ở đây với các khoá như sau:
Khóa bí mật a =2. Khóa công khai h = g a với g=3. Như vậy h = 32 = 9.
Mỗi cử tri Vi, chọn một số ngẫu nhiên bí mật k đề mã hóa lá phiếu m của mình
thành
(x, y) = (g k, h k m). Chú ý văn bản m = gvi
Cử tri mã hoá lá phiếu
V1 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 k1 ngẫu nhiên là 5, mã hóa
v1 = 0 thành (x1, y1)=(35, 95 * 30 ) = (35, 95 )
Trang: 42
V2 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V2 chọn k2 ngẫu nhiên là 3, mã hóa
v2 = 1 thành (x2, y2)=(33, 93 * 31 ) = (33, 93 * 3)
V3 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V3 chọn k3 ngẫu nhiên là 3, mã hóa
v3 = 1 thành (x3, y3)=(33, 93 * 31 ) = (33, 93 * 3)
V4 mã hóa lá phiếu của mình như sau và gửi tới Ban kiểm phiếu:
V4 chọn k4 ngẫu nhiên là 7, mã hóa
v4 = 0 thành (x4, y4)=(37, 97 * 30 ) = (37, 97 )
Ban KP không cần biết nội dung từng lá phiếu, vẫn có thể tính kết quả bỏ
phiếu bằng cách nhân các lá phiếu đã được mã hóa lại.
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.
Đây là cuộc bỏ phiếu chọn 2 trong 3 người vào chức vụ Giám đốc và phó
Giám đốc.
Cử tri không tin vào một số người trong Ban kiểm phiếu (Ban KP), nên họ
dùng sơ đồ chia sẻ bí mật Shamir để 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.
Trang: 43
Vấn đề đặt ra là Ban KP phải khớp các mảnh tin để biết nội dung từng lá
phiếu ? (Vì nội dung mỗi lá phiếu đã được chia thành nhiều mảnh tin, từng mảnh lại
được mã hoá trước khi gửi về Ban KP).
Giải quyết
Cử tri V chọn bầu cho ông NAM vµ SAU tương ứng với lựa chọn 0 và 2.
Trong Ban KP, mỗi người Aj chọn khóa bí mật zj và khóa công khai h j g .
Zj
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
V tính các mảnh tin yj = P(j), theo ®a thøc trªn, P(1) =13, P(2) =30, P(3) =57.
Cử tri V chuyển H1, H2, H3 tương ứng cho A1, A2, A3.
Ban KP khớp các mảnh tin Hj khi tất cả t thành viên Aj đều nhất trí.
Trang: 44
Đầu tiên từng người kiểm phiếu Aj giải mã Hj bằng cách tính S j H j
1/ Z j
.
Bí mật g s = 3 6 đượ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ã hoá Elgamal:
P( j ) j , A
S j j,A g
P( j ) j , A
g j A g P (0) = g s
jA jA
l
trong đó j , A
l A { j } l j
là hệ số Lagrange, A={1, 2, 3}.
Đây là nội dung lá phiếu đã được khôi phục sau khi “khớp mảnh”.
Nhìn trên bảng niêm yết công khai, CT sẽ nhận ra lá phiếu của mình và họ có
thể “bán phiếu bầu”.
Để khắc phục tình trạng này, người ta dùng “Người xác minh trung thực” TT
làm trung gian giữa CT và Ban KP.
CT gửi lá phiếu từ xa tới Ban KP thông qua người trung gian TT. Sau khi xác
minh lá phiếu hợp lệ, TT làm “mù “ lá phiếu (mã hóa lá phiếu lần thứ 2), tiếp đó TT
Trang: 45
gửi nó về Ban KP. Trên bảng niêm yết công khai, CT không thể nhận ra lá phiếu
của mình để có thể “bán phiếu bầu”.
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à nghĩa là “để lộ thông tin ở mức ít nhất” về sự vật sự
việc cần chứng minh. [6]
Với những “thông tin để lộ”, người xác minh không có nhiều hiểu biết về sự
vật sự việc, họ chỉ thu được chút ít thông tin 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 đó.
- V gửi lại P một giá trị ngẫu nhiên như là giá trị dùng để kiểm thử.
Cử tri và TT thống nhất sử dụng giao thức “chứng minh không tiết lộ thông
tin” với giao thức 1 và giao thức 2 sau:
Chọn khóa bí mật là s, khóa công khai là h = gs , g là phần tử sinh của Zp.
Trang: 46
+ Với bản rõ m Zp , bản mã hóa là cặp (x, y) = ( g, h m ), trong đó tham số
ngẫu nhiên bí mật do người mã hóa chọn.
Ví dụ: Trong cuộc bầu cử “chọn 1 trong k”, ký hiệu người thứ i được lựa chọn
là Gi
Lá phiếu mã hóa Elgamal (x, y) được làm “mù” nhờ cặp (u, v) = ( gβ, hβ), β là
phần tử ngẫu nhiên bí mật do TT chọn.
* CT gửi nó tới 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 đó.
Như vậy cử tri muốn chứng minh với người xác minh trung thực TT: lá phiếu
(x, y) là hợp lệ, thì anh ta phải chỉ ra một trong số k đẳng thức sau là đúng.
Do đó log g x = log h ( y / G i )
+ Mã hóa lá phiếu [( x, y) ( g , h Gi )]
Trang: 47
+ Tính a j g x , bj h ( y / G j )
rj dj rj dj
ri w di
( D, R) (d1 , r1 ),..., (d k , rk )
aj = g rj x d j
bj = hrj (y/Gj) d j
CT và TT thống nhất dùng giao thức “Chứng minh không tiết lộ thông tin”:
Chọn khóa mật s = 7, phần tử sinh g = 3, khóa công khai h = gs = 37.
Tham số α = 5.
Ký hiệu 3 ứng cử viên G1 = 1, G2 = 2, G3 = 3.
Giả sử cử tri CT chọn Gi = G2 = 2
- Cử tri CT thực hiện :
+ CT mã hóa lá phiếu [( x, y) (35 , (37 ) 5 . 2]=(243, …)
+ CT chọn ngẫu nhiên w = 2 và tính a2 32 , b2 (37 ) 2
Trang: 48
Với j = 1, 3 Chọn d1 = 8, r1 = 9 và tính:
(37 ) 5 .2 8
9 5 8
a1 = 3 . (3 ) , b1 (3 ) (7 9
)
1
(37 ) 5 .2 10
Chọn d3 = 10, r3 = 11 và tính: a3 = 3 . (3 ) , b3 (3 ) (
11 5 10
) 7 11
3
(37 ) 5 .2 8 (37 ) 5 .2 10
(A, B) = (39. (35)8, (37 ) 5 ( 2 7 2 11 5 10
) ), (3 , (3 ) ), (3 . (3 ) , (37 )11 ( ) )
1 3
+ CT gửi (x,y), (A,B) cho TT
+ TT chọn ngẫu nhiên c = 13 và gửi cho CT
+ CT tính d2 = c - d
j i
j = c - (d1+d3) = 13-(8+10) = -5
+ CT tính r2 = w – α d2 = 2 – 5 d2 = 2 -5.(-5) = 2 + 25 = 27
+ CT đặt (D,R) = (8, 9),(-5, 27),(10, 11) và gửi cho TT
+ Người xác minh TT TT kiểm tra: thấy đều đúng
c=d1+d2+d3=8+(-5)+10=13
aj g j x
r dj
j=1,2,3.
bj h j (y / G j )
r dj
Sau khi xác minh lá phiếu của CT là hợp lệ, người xác minh trung thực (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 vừa bị làm “mù“. TT làm “mù” lá phiếu
thông qua cặp (u, v) = ( g β, h β ), dựa trên giá trị bí mật .
Để chứng minh lá phiếu sau khi bị làm “mù“ vẫn hợp lệ, TT phải chứng tỏ
rằng anh ta sở hữu bí mật thỏa mãn u = ( g β ), v = h β , nhưng TT không để lộ .
Có một giao thức để TT làm việc này: Giao thức , trong đó TT là người
chứng minh (P), người kiểm tra (V) là CT, Ban KP,…
Trang: 49
Ngƣời chứng minh TT (P) Ngƣời kiểm tra (V)
+ P có [ (u, v) ( g , h ) ]
+ P chọn w Zp
Rõ ràng nếu không biết , người chứng minh P không thể tạo ra r = w + c
để kiểm tra.
g r g w c g w .g c au c
h r h w c h w h c bv c
P chọn s = 7, g = 3, tính h = g s = 3 7 .
P muốn chứng minh với V rằng anh ta sở hữu , mà không để lộ giá trị này.
P thực hiện giao thức với người xác minh V như sau:
Trang: 50
Ngƣời chứng minh TT (P) Ngƣời kiểm tra (V)
(
a ,b )
5 7 5
- P có [(u,v)=(3 ,( 3 ) )]
- P chọn w = 2 Zp . Tính
- P tính r = w + c
r
- V kiểm tra các đẳng thức đều
= 2 + 5 * 11 = 57 đúng:
gr =357 = 32 (35)11 = auc
Nếu người nào đó giả mạo rằng đã biết để tạo (u,v)=(gβ, hβ), thì “khó” có
thể tính được r = w+ c, tức là bước kiểm thử gr = a u c, h r= b v c
“khó” có thể
thực hiện được.
Nhờ giao thức trên, mọi người tin rằng TT đã dùng để làm “mù” lá phiếu.
Giao thức “Chứng minh không tiết lộ thông tin” để giải quyết hai vấn đề trong
giai đoạn Cử tri chuyển lá phiếu tới Ban kiểm phiếu. Như vậy trong giai đoạn này lá
phiếu đã bị mã hoá 2 lần, nhưng kết quả giải mã lá phiếu đúng như nội dung ban
đầu của nó, bởi vì:
- Lá phiếu sau khi làm “mù” (mã hoá lần 2): ( xu, yv) ( g , h Gi )
Trang: 51
yv h Gi h h h
G = G = G i = Gi .
( xu ) s ( g ) s ( g ) s
i i
(g s ) (h)
Với mã hoá Elgamal, khoá bí mật là s, thì khoá công khai h = gs .
2.5. Kết luận chương.
- Trong Chương này đã nghiên cứu được bỏ phiếu truyền thống và các ràng
buộc của các thành phần trong hệ thống bỏ phiếu kín.
- Nghiên cứu được quy trình bỏ phiếu kín trực tuyến và các vấn đề phát sinh
trong quá trình thực hiện bỏ phiếu trực tuyến
- Tìm hiểu được một số kỹ thuật, thuật toán để khắc phục được các vấn đề trên
trong quy trình bỏ phiếu trực tuyến.
Trang: 52
Chƣơng - 3. PHÂN TÍCH THIẾT KẾ
ỨNG DỤNG BỎ PHIẾU KÍN TRỰC TUYẾN
3.1. Phân tích: Ứng dụng bỏ phiếu kín tín nhiệm lãnh đạo sở, ngành trực
tuyến.
3.1.1. Mục đích: Nhằm phân tích các yêu cầu cơ bản đối với ứng dụng bỏ
phiếu kín tín nhiệm lãnh đạo sở, ngành trực tuyến
- Hàng năm các cơ quan đơn vị trên địa bàn tỉnh Thái Bình đều phải thực hiện
lấy phiếu tín nhiệm các lãnh đạo cấp sở ngành để thực hiện các khâu của tổ chức
cán bộ.
- Ngay ở Trường Chính trị Thái Bình cũng thực hiện các nội dung trên vào các
thời điểm cuối năm.
- Việc lấy phiếu tín nhiệm lãnh đạo trong Nhà trường, các khoa phòng đều
thực hiện trên phương pháp truyền thống, dẫn đến nhiều bất cập về thời gian, tiền
bạc..
- Việc ứng dụng CNTT và sử dụng các thiết bị tin học của cán bộ, giảng viên
và nhân viên trong trường đều có thể thực hiện bỏ phiếu trực tuyến thông qua máy
tính.
Mục tiêu: Xây dựng ứng dụng Web bỏ phiếu kín trực tuyến bằng ngôn ngữ
ASP.net trên môi trường mạng và cơ sở dữ liệu SQL để đáp ứng yêu cầu bỏ phiếu
kín lấy tín nhiệm lãnh đạo của sở, ngành trực tuyến.
Trang: 53
TỔNG QUẢN TRỊ
- Quản lý tất cả những thông tin của Quản lý
nhân viên trong Trường
Dữ Liệu Thông Tin nhân viên
- Cấp quyền cho các ban quản lý bỏ Nhà trường
phiếu
- Ký cấp quyền để cử tri xin phiếu
Hình 2: Mô hình bỏ phiếu kín trực tuyến tín nhiệm lãnh đạo cấp sở, ngành.
Mô tả mô hình:
1. Tổng quản trị sẽ thực hiện ký bằng khóa bí mật của mình cho cử tri để xác
định cử tri có quyền xin phiếu -> Cử tri có chữ ký của Tổng quản trị.
Trang: 54
2. Cử tri khi có chữ ký của Tổng quản trị, xin ban đăng ký cấp quyền bỏ phiếu
3. Ban đăng ký xác thực cử tri bằng khóa công khai của Tổng quản trị, kiểm
tra tư cách bỏ phiếu (chỉ bỏ phiếu 1 lần), sau đó ký trên lá phiếu của cử tri yêu cầu.
4. Cử tri xác thực lá phiếu của Ban đăng ký sau đó Cử tri thể hiện ý chí của
mình trên lá phiếu, tiếp theo Cử tri làm mù lá phiếu bằng hệ Elgamal (cử tri làm mù
lần 1). Tiếp theo cử tri mã hóa lá phiếu (đã mã hóa lần 1) bằng khóa công khai của
Ban kiểm tra và gửi cho Ban kiểm tra.
5. Ban kiểm tra xác thực lá phiếu của cử tri gửi bằng khóa công khai của Ban
kiểm tra (Ban kiểm tra không biết được nội dung lá phiếu), sau đó gửi lá phiếu đến
hòm phiếu để tính kết quả.
6. Tính kết quả của lá phiếu đã được làm mù bằng Elgamal (không cần phải
giải mã lá phiếu).
- Là Website ứng dụng bỏ phiếu kín trên môi trường mạng LAN hoặc Internet
và hoạt động ổn định.
- Cung cấp các chức năng để Quản trị, Ban đăng ký, Ban kiểm phiếu, người bỏ
phiếu.. thực hiện quy trình bỏ phiếu trực tuyến thuận lợi.
- Phải đáp ứng được tính pháp lý như trong Luật Bầu cử quy định.
- Đảm bảo bí mật và an toàn thông tin (thông qua hệ thống mã hóa và ký).
- Thực hiện đúng theo các yêu cầu đặt ra của ứng dụng.
Trang: 55
- Nhập danh sách thành viên ban đăng ký, ban kiểm tra, ứng cử viên.. và cử tri
vào hệ thống.
- Phân quyền cho thành viên vào các vị trí tương ứng.
- Xin hệ thống cấp chữ ký để thực hiện các chức năng của mình.
- Kiểm tra tính hợp lệ của các lá phiếu để hệ thống tính kết quả.
3.2.2. Hệ thống ký
- Cho phép tạo khóa: Tạo cặp khóa công khai và bí mật cho lược đồ ký
Elgamal và lược đồ ký RSA.
- Cho phép Ký: Sử dụng thuật toán ký Elgamal và thuật toán ký số RSA.
- Cho phép giải mã: Sử dụng khóa riêng để thu được văn bản đã ký và chữ ký
- Cho phép Kiểm tra chữ ký: Sử dụng khóa công khai của thuật toán tạo chữ
ký để xác định xem có đúng của người gửi hay không, xác định xem nội dung đã
được ký có bị thay đổi không,
o Xác nhận đăng ký và cấp quyền quản trị cho các ban quản lý bỏ phiếu
(Ban kiểm tra, Ban đăng ký, …).
Trang: 56
o Quản lý ứng cử viên: tạo xóa sửa thông tin người được bầu.
o Xác thực cử tri (để xác nhận được cử tri hợp lệ, sử dụng khóa công
khai của Tổng quản trị để kiểm tra ).
o Đảm bảo mỗi người bỏ phiếu chỉ được bỏ phiếu 1 lần cho 1 đợt bỏ
phiếu.
o Kiểm tra lá phiếu hợp lệ: sử dụng khóa công khai của Ban đăng ký để
xác thực lá phiếu (không xem được nội dung lá phiếu và thông tin
người bỏ phiếu)
Sau khi xác nhận lá phiếu hợp lệ, Ban kiểm tra chuyển lá phiếu đến hòm phiếu
- Người dùng đăng ký tài khoản truy cập vào hệ thống bầu cử bằng cách nhập
thông tin số chứng minh thư và mật khẩu. Ban kiểm tra thực hiện kiểm tra cử tri
trong hệ thống và cấp quyền cho cử tri.
- Người dùng chưa có tài khoản phải vào phần đăng ký tài khoản.
Trang: 57
- Khi có tài khoản người dùng sẽ gửi đăng ký phiếu bầu. - (trạng thái chưa có
phiếu bầu - có chữ ký của tổng quản trị)
- Sau khi gửi đăng ký phiếu bầu, ban đăng ký xác thực cử tri và xác nhận
quyền được bỏ phiếu.
- Ban đăng ký xác nhận, người bỏ phiếu có quyền bỏ phiếu và nhận được chữ
ký xác nhận lá phiếu.
- Sau khi được ban đăng ký xác nhận quyền bỏ phiếu Cử tri truy cập vào trang
bỏ phiếu để tiến hành bỏ phiếu.
- Sau khi người bỏ phiếu chọn các tùy chọn (Tín nhiệm cao hoặc tín nhiệm
hoặc tín nhiệm thấp) cho người được bầu, hệ thống sẽ yêu cầu cử tri làm mù lá
phiếu lần 1 bằng cách nhập khóa phiếu bầu (chữ ký) để hoàn tất bỏ phiếu.
- Sau khi cử tri nhấn vào nút "hoàn tất", hệ thống yêu cầu cử tri ký tiếp lá
phiếu lần 2 bằng khóa công khai của ban kiểm tra và lá phiếu ở trạng thái chờ ban
kiểm tra xác nhận hợp lệ.
- Ban kiểm tra xác thực lá phiếu mà cử tri gửi (tại đây ban kiểm tra không
nhìn thấy được thông tin người bỏ phiếu và thông tin lá phiếu).
- Hệ thống sẽ yêu cầu ban kiểm tra nhập chữ ký để xác nhận lá phiếu hợp lệ,
sau đó hệ thống sẽ lưu lại các thông tin của lá phiếu vào dữ liệu.
Hiển thị kết quả bỏ phiếu trước đó (khi đăng nhập vào tài khoản của mình-
nguy cơ lộ thông tin lá phiếu khi cử tri để lộ thông tin đăng nhập)
Trang: 58
3.4. Thiết kế chương trình.
Bảng thông Tin nhân viên: (mã NV, Họ tên, số CMND, Ban, Vị trí, Chữ ký,
trạng thái, ngày bỏ phiếu, mật khẩu, phân cấp)
Bảng thông tin ban đăng ký: (Mã Ban đăng ký, Mã nhân viên Ban đăng ký,
Bên nhân viên ban đăng ký, Chữ ký của nhân viên, Chứng minh thư nhân dân).
Bảng thông tin ban kiểm tra: (Mã ban kiểm tra, Mã nhân viên KT, Tên nhân
viên KT, Chữ ký, Chứng minh thư nhân dân).
Trang: 59
Bảng thông tin người được bầu: (Mã ứng cử viên, Tên ứng cử viên, Chức vụ,
thuộc Ban, Vị trí, thông tin, ảnh, CMTND).
Thông tin phiếu bầu: (Mã phiếu bầu, CMND, Khóa ký phiếu, Khóa ban đăng
ký, Khóa Ban kiểm tra, thời gian hết hạn, trạng thái, mật khẩu, địa chỉ Email của cử
tri)
Trang: 60
Trạng thái phiếu bầu và trạng thái nhân viên
Thông tin phòng ban, vị trí và các tùy chọn của phiếu bầu
Trang: 61
3.4.2. Biểu đồ usecase
Trang: 62
3.4.3. Danh sách các Use Case
Cập Nhật thông tin nhân Cho phép Admin chỉnh sửa thông nhân viên
3
viên có sẵn trong hệ thống
8 Chức năng bỏ phiếu Cho phép nhân viên tiến hành bỏ phiếu
Trang: 63
3.4.4. Biểu đồ lớp
1 Biểu đồ lớp
Trang: 64
phiếu
Lớp thông tin các tùy chọn của các lá
10 Class bptt_vote_details
phiếu, đang ở trạng thái chờ xác nhận.
Lớp thông tin các tùy chọn của các lá
11 Class bptt_vote_offical
phiếu, đang đã xác nhận.
12 Class bptt_candidate Lớp danh sách các ứng cử viên
* Giao diện Tổng quản trị nhập danh sách cử tri, người ứng cử
* Giao diện màn hình đăng nhập và xác thực người dùng.
Trang: 65
* Giao diện Ban đăng ký xác nhận đăng ký bỏ phiếu cho cử tri:
* Giao diện bỏ phiếu và nhập chữ ký để chuyến tới ban kiểm tra
Trang: 66
* Giao diện Ban kiểm tra xác minh lá phiếu hợp lệ.
Trang: 67
KẾT LUẬN
Để nghiên cứu "Chữ ký mù và ứng dụng bỏ phiếu kín trực tuyến", luận văn tập
trung nghiên cứu các vấn đề sau:
- Trú trọng và tìm hiểu cơ sở lý thuyết toán học cơ bản mà bất kỳ bàn toán an
toàn thông tin cũng cần tới; Các khái niệm về mã hóa thông tin, hệ mã hóa thông
tin, sơ đồ của các chữ ký số, xác định ưu nhược điểm và ứng dụng của một số loại
chữ ký số. Đặc biệt là chữ ký mù và các giao thức ký số để áp dụng cho ứng dụng
bỏ phiếu kín trực tuyến.
- Nghiên cứu, tìm hiểu một số khái niệm, thành phần và các quy trình trong bỏ
phiếu kín trực tuyến; đánh giá thực trạng và nhu cầu trong việc xây dựng và sử dụng
hệ thống bỏ phiếu kín trong giai đoạn hiện nay. Tìm hiểu các vấn đề bất thường
trong mối quan hệ giữa các thành phần trong quy trình bỏ phiếu kín trực tuyến, để
từ đó tìm các kỹ thuật và ký số để giải quyết các vấn đề đó trên cơ sở lý thuyết.
Trong thời gian tới, tác giả sẽ tiếp tục nghiên cứu mở rộng các tính năng của
ứng dụng với các kỹ thuật như trong phần lý thuyết đã nghiên cứu để hoàn thiện
ứng dụng. Với thời gian và trình độ còn hạn chế, trong luận văn này không tránh
khỏi sơ suất. Rất mong nhận được sự đóng góp ý kiến của các Thầy Cô để luận văn
được hoàn thiện hơn.
Trang: 68
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Phan Đình Diệu, Lý thuyết mật mã và an toàn thông tin, Đại học Quốc
gia Hà Nội, 1999.
[2]. Phạm Huy Điển, Hà Duy Khoái, Mã hoá thông tin: Cơ sở toán học và
ứng dụng, nhà xuất bản Đại Học Quốc Gia Hà Nội, 2003.
[3]. Nguyễn Xuân Dũng, Bảo mật thông tin - mô hình và ứng dụng, NXB
Thống kế, 2007.
[4]. Trịnh Nhật Tiến, Trương Thị Thu Hiền, về một quy trình bỏ phiếu từ xa -
Tạp chí Khoa học ĐHQGHN, KHTN &CN, T.XXI, Số 2PT.2005.
[5]. Trịnh Nhật Tiến, Chữ ký: mù, nhóm, mù nhóm và ứng dụng. Kỷ yếu HN
KH FAIR lần 2 tại TP Hồ Chí Minh 9/2005.
[6]. Trịnh Nhật Tiến, Trương Thị Thu Hiền. “Chứng minh không tiết lộ
thông tin và ứng dụng chứng minh tính hợp lệ của lá phiếu điện tử”. Kỷ
yếu HT QG về CNTT tại Đà nẵng 8 2004. (Nhà xuất bản Khoa học kỹ
thuật năm 2005).
Tiếng Anh
[7]. David Chaum. Blind signatures for untraceable payments. New York
1983. Plenum Press. In R.L. Rivest, A. Sherman, and D.Chaum, proc. 82
[8]. David Pointcheval and Jacques Stern. Provably Secure Blind Signature
Schemes.
[9]. Foteini Baldimtsi and Anna Lysyanskaya, On the Security of One-
Witness Blind Signature Schemes.
[10]. Ming-Hsin Chang, T-Te Chen, I-Chen Wo and Yi-Shiung Yeh. Schonorr
Blind Signature Base on Elliptic Curver, 2003.
[11]. Zuzana Rjaskova, Electronic Voting Schemes, pages (5-18), 2002.
Tài liệu trên Internet:
[12]. http://vi.wikipedia.org/wiki/Chữ_ký_số, tr. 9.
[13]. http://vi.wikipedia.org/wiki/Bỏ phiếu kín.
[14]. http://www.cryptopp.com/wiki/RSA_Signature_Schemes
[15]. http://en.wikipedia.org/wiki/RSA
[16]. www.ijicic.org/ijicic-09-0565.pdf
[17]. http://vi.wikipedia.org/wiki/số dư trung quốc, october, 2014.
[18]. http://www.pcworld.com.vn/articles/kinh-doanh/giai-
phap/2004/05/1186263/bau-cu-dien-tu-e-voting/, 2014.
Trang: 69