Để đáp ứng các nhu cầu trao đổi thông tin qua các thiết
bị điện tử nói chung và qua mạng Internet nói riêng. Mật mã
học ra đời và chỉ nghiên cứu các phương pháp để bảo đảm sự
an toàn thông tin trong truyền thông.
Mật mã học 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. Giải pháp được đưa ra cho vấn đề đó là “chữ kí điện tử”
và “chữ kí số”. Chữ kí số tương đương với chữ kí tay trên các
dữ liệu điện tử, nó không những xác thực được thông tin gửi từ
địa chỉ nào mà còn có thể làm người gửi thông tin không thể từ
chối thông tin do mình đã “kí” và gửi đi trong giao dịch điện
tử.
Khi công nghệ thông tin và các ngành điện tử phát triển
như vũ bão thì mọi hoạt động của xã hội có thể số hóa. Số hóa
các công việc không chỉ đảm bảo hiệu quả công việc mà còn an
toàn hơn rất nhiều so với những hoạt động do con người thực
hiện. Một hoạt động to lớn và quan trọng hàng đầu trong xã hội
là bỏ phiếu cũng được điện tử hóa – chúng ta đang nói tới bỏ
phiếu từ xa hay bỏ phiếu điện tử.
24 trang |
Chia sẻ: tuandn | Lượt xem: 2018 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Tóm tắt Nghiên cứu chữ kí số và bài toán bỏ phiếu từ xa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
Trịnh Thị Nhẫn
NGHIÊN CỨU CHỮ KÍ SỐ VÀ BÀI TOÁN
BỎ PHIẾU TỪ XA
Chuyên ngành: Khoa Học Máy Tính
Mã số: 60.48.01
Người hướng dẫn khoa học: TS Hồ Khánh Lâm
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2012
2
MỞ ĐẦU
Để đáp ứng các nhu cầu trao đổi thông tin qua các thiết
bị điện tử nói chung và qua mạng Internet nói riêng. Mật mã
học ra đời và chỉ nghiên cứu các phương pháp để bảo đảm sự
an toàn thông tin trong truyền thông.
Mật mã học 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. Giải pháp được đưa ra cho vấn đề đó là “chữ kí điện tử”
và “chữ kí số”. Chữ kí số tương đương với chữ kí tay trên các
dữ liệu điện tử, nó không những xác thực được thông tin gửi từ
địa chỉ nào mà còn có thể làm người gửi thông tin không thể từ
chối thông tin do mình đã “kí” và gửi đi trong giao dịch điện
tử.
Khi công nghệ thông tin và các ngành điện tử phát triển
như vũ bão thì mọi hoạt động của xã hội có thể số hóa. Số hóa
các công việc không chỉ đảm bảo hiệu quả công việc mà còn an
toàn hơn rất nhiều so với những hoạt động do con người thực
hiện. Một hoạt động to lớn và quan trọng hàng đầu trong xã hội
là bỏ phiếu cũng được điện tử hóa – chúng ta đang nói tới bỏ
phiếu từ xa hay bỏ phiếu điện tử.
Các vấn đề nói trên phần nào còn mới mẻ với nước ta,
xuất phát từ đó em đã lựa chọn việc “Nghiên cứu chữ kí số và
3
bài toán bỏ phiếu từ xa” là chủ đề chính của luận văn tốt
nghiệp.
Luận văn của em bao gồm 3 chương:
Chương 1: Tổng quan về mật mã và chữ kí số
Chương 2: Bỏ phiếu từ xa
Chương 3: Phân tích thiết kế và xây dựng ứng dụng mô hình
hóa cho bài toán bỏ phiếu từ xa
Trong luận văn em sử dụng các phương pháp mã hóa cổ
điển, mã hóa đối xứng, mã hóa công khai… được thể hiện bằng
ngôn ngữ lập trình C# trên nền của asp.net để xây dựng mô
hình hóa và cơ sở dữ liệu em sử dụng SQL server 2005.
4
CHƯƠNG 1
TỔNG QUAN VỀ MẬT MÃ
VÀ CÁC PHƯƠNG PHÁP MÃ HÓA
Nội dung của chương bao gồm các phần sau:
Mật mã học và các yêu cầu bảo mật thông tin
Các phương pháp mã hóa
Khái niệm chữ kí số
Cơ sở toán học của lý thuyết số
Mã hóa công khai Elgamal
Sơ đồ chữ kí số
Lược đồ chữ kí số Elgamal
1.1. Mật mã học và các yêu cầu bảo mật thông tin:
Mật mã học là một lĩnh vực liên quan với các kỹ thuật
ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể là
trong thông tin liên lạc. Về phương diện lịch sử, mật mã học
gắn liền với quá trình mã hóa. Điều này có nghĩa là nó gắn với
các cách thức để chuyển đổi thông tin từ dạng này sang dạng
khác nhưng ở đây là từ dạng thông thường có thể nhận thức
được thành dạng không thể nhận thức được, làm cho thông tin
trở thành dạng không thể đọc được nếu như không có các kiến
thức bí mật. Quá trình mã hóa được sử dụng chủ yếu để đảm
bảo tính bí mật của các thông tin quan trọng, chẳng hạn trong
công tác tình báo, quân sự hay ngoại giao cũng như các bí mật
về kinh tế, thương mại.
* Quá trình được mô tả như sau:
5
Hình 1.1. Quá trình mã hóa và giải mật mã
Như vậy mật mã là một lĩnh vực nghiên cứu về các kĩ
thuật toán học có liên quan tới lĩnh vực bảo mật thông tin như
bí mật, tính xác thực và toàn vẹn dữ liệu.
Để dảm bảo an toàn cho các thông tin mật mã học yêu cầu các
thuộc tính sau:
- Bí mật
- Toàn vẹn dữ liệu
- Xác thực
- Không chối bỏ được
- Chống lặp lại
1.2. Các phương pháp mã hóa:
1.2.1. Các phương pháp mã hóa cổ điển:
1.2.1.1. Phương pháp chuyển vị:
Phương pháp này là đổi chỗ lại các kí tự trong văn bản
rõ làm cho đối phương không thể hiểu được nội dung thông
báo
Trong phương pháp này ta sử dụng một số kĩ thuật sau:
6
- Đảo ngược toàn bộ văn bản gốc.
- Mã hóa theo mẫu hình học.
1.2.1.2. Phương pháp thay thế:
Phương pháp này mã hóa bằng cách thay đổi một hay
một nhóm kí tự của văn bản gốc bằng một hay một nhóm các
kí tự khác để tạo thành văn bản mã. Bên nhận chỉ việc đảo
ngược trình tự thay thế trên văn bản mã là có được văn bản
gốc.
Một số kĩ thuật thay thế:
- Thay thế đơn giản.
- Thay thế nhiều hàng.
1.2.2. Mã khóa đối xứng:
Phương pháp mã khóa đối xứng là phương pháp sử
dụng cùng một khóa cho cả quá trình mã hóa và mật mã.
Một số thuật toán trong mã khóa đối xứng: DES, RC4.
1.2.3. Mã khóa bất đối xứng:
Mật mã hóa công khai là một dạng mật mã hóa cho
phép người sử dụng trao đổi các thông tin mật mà không cần
phải trao đổi các khóa chung bí mật trước đó. Mật mã hóa khóa
công khai được thiết kế sao cho khóa sử dụng trong quá trình
mã hóa khác biệt với khóa được sử dụng trong quá trình giải
mã. Hơn thế nữa, khóa sử dụng dùng để mã hóa và ngược lại,
tức là hai khóa này có quan hệ với nhau về mặt toán học nhưng
7
không thể suy diễn được ra nhau. Thuật toán này được gọi là
mã khóa công khai vì khóa dùng cho việc mã hóa được công
khai cho tất cả mọi người.
1.2.4. Hàm băm:
Hàm băm ( Hash function ) là hàm một chiều mà nếu
đưa một lượng dữ liệu bất kì qua hàm này dù cho ra một chuỗi
có độ dài cố định ở đầu ra.
Hai tính chất quan trọng của hàm là:
Tính một chiều.
Tính duy nhất.
1.3. Chữ kí số:
1.3.1. Khái niệm chữ kí số:
Chữ ký số là thông tin đi kèm với dữ liệu nhằm xác
định người chủ của dữ liệu đó. Một chữ ký số hay một sơ đồ
chữ ký số là phương pháp ký một bức điện lưu dưới dạng một
điện từ.
Chữ ký số không thể copy hay giả mạo hay thay đổi
được
1.3.2. Cơ sở toán học của lý thuyết số:
1.3.2.1. Ước số:
Số a được gọi là chia hết cho số b ≠ 0 hay b là ước số của a
nếu a = b * m trong đó a, b, m là các số nguyên. Ta kí hiệu b|a
8
1.3.2.2. Số nguyên tố và số nguyên tố cùng nhau:
Một số nguyên p > 1 gọi là số nguyên tố nếu nó chỉ có các ước
± 1 và ± p.
Định lí cơ bản của số học: Mọi số nguyên a > 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.
a = b1x1 + b2x2 + b3x3 +…+bixi
Trong đó b1, b2, b3,…,bi là các số nguyên tố và các xi > 0
Hệ quả: Nếu a là một số nguyên tố và a|(b*c) thì ít nhất một
trong 2 số b, c phải chia hết cho a.
Ước chung lớn nhất của 2 số tự nhiên a và b được kí hiệu là
gcd(a,b). Nếu c là ước chung lớn nhất của a và b thì c= gcd(a,b)
nếu:
- 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.
Tất cả các số nguyên khác 0 đều là ước của số 0. Suy ra:
gcd(a,0) = a.
Khi 2 số nguyên tố a và b có ước chung lớn nhất là 1 hay
gcd(a,b) = 1 thì chúng được gọi là số nguyên tố cùng nhau.
1.3.2.3. Thuật toán Euclid, Euclid mở rộng và phi hàm
Euler:
1.3.2.4. Số học Modulo (phép tính đồng dư):
Cho mỗi số nguyên dương n và một số nguyên a bất kì nếu
chúng ta chia a cho n được thương là q và phần dư là r: a = q*n
+r với 0 =< r < n và q = [a/n]
9
Kí hiệu [x] là số nguyên lớn nhất nhỏ hơn hoặc bằng x.
Như vậy, nếu a Z và n Z+ thì chúng ta định nghĩa a
mod n phần dư của phép chia a cho n. Với ví dụ trên ta có: r =
a mod n.
Hai số nguyên a và b được gọi là đồng dư với nhau theo modul
n nếu và chỉ nếu:
a mod n = b mod n và kí hiệu là a b mod (n)
chú ý: nếu a 0 mod (n) thì n|a
Từ việc tính đồng dư theo mod n ta tách được số nguyên
thành n lớp mỗi lớp chứa các số nguyên đồng dư với nhau theo
(mod n) và tập các lớp này được kí hiệu là: Z/nZ và chứa đúng
n phần tử thuộc đoạn [0, n-1].
1.3.2.5. Định lí Fermat và định lí Euler:
Định lí Fermat:
Nếu p là một số nguyên tố và a là một số nguyên thì ap
a (mod p).
Nếu a không chia hết cho p tức là (a(mod p) ≠ 0) thì ap-1
1 (mod p).
Định lí Euler: Nếu gcd(a,m) = 1 thì aФ(m) = 1 mod m.
Trong trường hợp m là số nguyên tố thì Ф(m) = m-1 và ta
có định lí Fermal
1.3.2.6. Định lí Trung Quốc về phần dư:
Giả sử m1, m2,…,mr là các số nguyên dương nguyên tố cùng
nhau từng đôi một và cho a1, a2,…,ar là các số nguyên. Khi đó
hệ r đồng dư thức: x ai mod mi (1 ≤ i ≤ r) sẽ có một nghiệm
10
duy nhất theo modul M = m1, m2,…, mr được theo công thức
sau:
r
i
iii MyMax
1
mod
Trong đó Mi = M / mi và yi = Mi-1 mod mi với 1 ≤ i ≤ r
1.3.2.7. Không gian rời rạc của phép lấy Logarit:
Ta kí hiệu Fp là tập các lớp đồng dư theo Modul p hay Fp =
Z/pZ = (0, 1, 2,…, p-1)
Z/pZ* là những tập gồm các số nguyên tố cùng nhau với p hay
tập các phần tử có nghịch đảo trong Z/pZ. Ta kí hiệu Fp* =
Z/pZ*
Với p là số nguyên tố thì Z/pZ = Z/pZ * = Fp = Fp * = (0, 1, 2,
…, p-1)
1.4. Mã hóa công khai Elgamal:
Mã hóa Elgamal có ứng dụng nhiều trong thực tế nhất là
trong vấn đế bảo mật và chữ kí điện tử, đây là một loại mã hóa
công khai điển hình. Thuật toán mã hóa Elgamal bao gồm các
bước sau:
Bước 1: Phát sinh khóa
Bước 2: Lập mã
Bước 3: Giải mã
1.5. Sơ đồ chữ kí số:
Một sơ đồ chữ kí số gồm 2 thành phần: Thuật toán kí và
thuật toán xác minh.
11
Ta định nghĩa: Một sơ đồ chữ kí số là một bộ 5 (P, A,K,S,
V) thỏa mãn các điều kiện sau:
- P là tập hữu hạn các bức điện.
- A là tập hữu hạn các chữ kí.
- K là không gian khóa hay tập hữu hạn các khóa.
Với mỗi k K tồn tại một thuật toán kí sigk S và là một
thuật toán xác minh verk V. Mỗi sigk : P A và verk : P x A
{true, false} là những hàm sao cho mỗi bức điện x P và
mỗi chữ kí y A thỏa mãn phương trình sau đây.
verk =
False
true
Với mỗi k K hàm sigk và verk là các hàm thời gian đa
thức. Verk sẽ là hàm công khai sigk là một.
1.6. Lược đồ chữ kí số Elgamal:
Cho p là một số nguyên tố lớn sao cho bài toán logic rời
rạc trên Zp là khó giải và giả sử Zn là phần tử nguyên thủy
P = Zp* và A = Zp* x Zp-1 và định nghĩa: K={(p, α, a, β): β≡ αa
(mod p)}
Trong đó p, , là công khai và a là bí mật.
Với K = (p, , a, ) và
một bộ số ngẫu nhiên (mật) k Zp-1 định nghĩa:
sigk(x,y)=( r,s) ; trong đó : r = k mod p và
s = (x - a*r) k-1 mod (p-1).
Nếu y = sig(x)
Nếu y ≠ sig(x)
12
Với x, r Zp và s Zp-1.
CHƯƠNG 2
BỎ PHIẾU TỪ XA
Nội dung của chương bao gồm các phần sau:
Vấn đề bỏ phiếu từ xa
Quy trình bỏ phiếu từ xa
Các kĩ thuật bỏ phiếu từ xa
2.1. Vấn đề bỏ phiếu từ xa:
2.1.1. Khái niệm bỏ phiếu từ xa:
Bỏ phiếu từ xa là một cuộc “bỏ phiếu” được thực hiện
từ xa trên mạng máy tính 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ới phương pháp bỏ
phiếu mới này các cử tri không thể nhìn thấy mặt nhau và các
“lá phiếu số” được chuyển từ xa trên mạng tới các hòm phiếu.
“Bỏ phiếu từ xa” 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.
2.1.2. Tổ chức hệ thống bỏ phiếu từ xa:
Các thành phần trong ban tổ chức bỏ phiếu:
13
- Ban điều hành (ĐH)
- Ban Đăng kí (ĐK)
- Ban Kiểm tra (KT)
- Ban Kiểm phiếu (KP)
Các thành phần kỹ thuật trong hệ thống bỏ phiếu:
- Hệ thống máy tính và các phần mềm phục vụ quy trình
bỏ phiếu từ xa.
- 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.
- Một số kĩ thuật bảo đảm an toàn thông tin: chữ kí mù,
mã hóa đồng cấu, chia sẽ bí mật.
- Hệ thống phân phối khóa tin cậy sẵn sàng cung cấp
khóa cho công việc mã hóa hay kí “số”.
2.2. Quy trình bỏ phiếu từ xa:
Hiện nay, người ta đã nghiên cứu và thử nghiệm một số quy
trình bỏ phiếu từ xa, mỗi qui trình có ưu nhược điểm riêng,
trong chương này chúng ta chỉ nghiên cứu sơ đồ bỏ phiếu như
sau:
14
Hình 2.1. Quy trình bỏ phiếu từ xa.
Trộn phiếu
Sơ đồ chia sẻ
bí mật
Cử tri
Ban đăng kí
Ban kiểm phiếu
Hòm phiếu Lá phiếu
Bảng niêm yết
công khai
Chứng minh không tiết lộ
thông tin
Mã hóa đồng cấu
Chữ ký mù
Lá phiếu
15
2.2.1.Giai đoạn đăng ký:
2.2.2.Giai đoạn bỏ phiếu:
2.2.3.Giai đoạn kiểm tra:
2.2.4. Giai đoạn kiểm phiếu:
2.3. Các kĩ thuật bỏ phiếu từ xa:
2.3.1. Kĩ thuật chữ kí mù:
Theo phương thức bỏ phiếu truyền thống, cử tri mang
chứng minh thư và lá phiếu chưa có nội dung gì đến bàn đóng
dấu, ở đó người ta kiểm tra giấy tờ để xác minh quyền bỏ
phiếu, sau đó đóng dấu xác thực lên lá phiếu. Cử tri cất chứng
minh thư, vào phòng bỏ phiếu, như vậy lá phiếu hoàn toàn
không có thông tin định danh.
Quá trình bỏ phiếu kiểu này được coi là “nặc danh”!
Theo phương thức bỏ phiếu “điện tử”, mỗi lá phiếu phải có
thông tin định danh.
Nó có thể là một con số x nào đó và phải khác nhau. 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ử.
Cử tri biến đổi x thành y trước khi đưa cho Ban KP kí xác
nhận. Ban KP ký vào y, mà không biết đó là số định danh x đã
bị che dấu.Họ trao chữ ký trên y là z cho CT.
Cử tri “xóa mù” trên z sẽ được chữ ký của Ban KP trên số định
danh x, như vậy CT có quyền bầu cử.
16
2.3.2. Chia sẻ bí mật ngưỡng Shamir và Mã hóa
Elgamal:
2.3.2.1. Mã hóa đồng cấu Elgamal:
Hệ mã hóa Elgamal:
Khái niệm mã hóa đồng cấu.
Cho P là tập bản rõ, tạo thành nhóm với phép tính .
Cho C là tập bản mã, tạo thành nhóm với phép tính .
Ek(m) là hàm mã hóa bản rõ m theo tham số ngẫu nhiên k.
Cho 2 văn bản rõ cần mã hóa: m1, m2
Cho k1,k2 là 2 tham số ngẫu nhiên
Hệ mã hóa được gòi là có tính chất đồng cấu nếu có tham
số k mà: Ek1(m1)*Ek2(m2) = Ek(m1*m2)
Hệ mã hóa Elgamal là hệ mã hóa có tính chất đồng cấu
– là hệ mã hóa đồng cấu
2.3.2.2. Ứng dụng của hệ mã hóa đồng cấu Elgamal trong
bỏ phiếu có / không:
Trong một cuộc bỏ phiếu cần thăm dò ý kiến quần
chúng về một kế hoạch phát triển người ta cần cử tri:
Đồng ý – có: ghi 1
Không đồng ý – không: ghi 0
Vấn đề đặt ra là Ban kiểm phiếu phải tính được kết quả bỏ
phiếu. Khi bỏ phiếu từ xa, để đảm bảo bí mật, cử tri mã hóa nội
dung lá phiếu. Ban kiểm phiếu khi không biết rõ nội dung của
từng lá phiếu.
17
2.3.3. Chia sẻ bí mật ngưỡng Shamir phối hợp với mã
hóa Elgamal:
2.3.3.1. Kĩ thuật chia sẻ bí mật:
Là kĩ thuật phân chia khóa k cho 1 tập m thành viên,
sao cho t thành viên bất kì có thể tính được khóa k nhưng
không một nhóm gồm (t-1) thành viên nào có thể làm được
điều đó, người phân chia khóa không nằm trong t thành viên
đó.
2.3.3.2. Chia sẻ bí mật ngưỡng Shamir phối hợp với mã
hóa Elgamal.
Ban kiểm phiếu (KP) phải giải mã mới biết lá phiếu ghi
gì.Thực tế có thể có 1 người hay 1 nhóm người của Ban KP
muốn biết trước nội dung lá phiếu để thực hiện gian lận bầu cử
(sửa lại nội dung lá phiếu)
Để đảm bảo 1 người hay 1 nhóm người của Ban KP không
thể biết trước nội dung lá phiếu, người ta dùng kỹ thuật “Chia
sẻ bí mật”
2.3.3.3. Ứng dụng sơ đồ chia sẻ bí mật ngưỡng Shamir
phối hợp với mã hóa Elgamal.
Giả sử Cử tri mã hóa lá phiếu của mình sau đó phân
chia lá phiếu thành t mảnh với t là số thành viên Ban kiểm
phiếu KP, việc phân chia được thực hiện sao cho chỉ khi tất cả
các thành viên của Ban KP đồng ý thì Ban KP mới có thể biết
rõ được nội dung lá phiếu của cử tri.
18
Sau khi Ban kiểm phiếu KP nhận được phiếu bầu cử
của cử tri, mỗi thành viên chỉ được giữ một phần của lá phiếu.
Do đó họ không thể tự mình biết được nội dung lá phiếu. Khi
tất cả các thành viên đồng ý xem nội dung phiếu bầu, họ sẽ
ghép các mảnh phiếu để có kết quả là nội dung phiếu bầu
3.3.4. Kĩ thuật “trộn các lá phiếu” (Mixing the Votes):
Khái niệm:
Như đã nói ở trên khi bỏ phiếu từ xa, để đảm bảo bí
mật, cử tri mã hóa nội dung lá phiếu.
Ban KP phải giải mã mới biết được lá phiếu ghi gì. Có thể có 1
người hay 1 nhóm người của Ban KP muốn biết nội dung cũng
như tác giả của lá phiếu, điều đó có thể dẫn đến rắc rối cho cử
tri sau này.
Để tránh tình huống trên người ta dùng kỹ thuật “Trộn
các lá phiếu” .
Kĩ thuật “Trộn lá phiếu”: áp dụng 2 giai đoạn để trộn
các lá phiếu lại với nhau:
- Giai đoạn bỏ phiếu:
- Giai đoạn kiểm phiếu:
19
CHƯƠNG 3
PHÂN TÍCH THIẾT KẾ VÀ XÂY DỰNG
ỨNG DỤNG MÔ HÌNH HÓA CHO BÀI TOÁN
BỎ PHIẾU TỪ XA
Nội dung của chương bao gồm các nội dung sau:
Mô hình cài đặt.
Phân tích và thiết kế chương trình.
3.1. Mô hình cài đặt:
3.1.1. Mô hình cài đặt chữ kí số:
Xây dựng chương trình chữ kí điện tử với thứ tự các bước thực
hiện như sau:
- Nhập vào một bản tin cần kí.
- Sử dụng lược đồ chữ kí số Elgamal để tạo khóa công
khai và khóa riêng.
- Kết hợp bản tin cần kí và khóa riêng để tạo chữ kí điện
tử.
- Gán chữ kí điện tử và bản tin rồi mã hóa, mã hóa bằng
hệ mã hóa DES.
- Truyền bản tin đền bên nhận (bản tin mã hóa + khóa bí
mật).
- Bên nhận sử dụng khóa bí mật để giải mã bản tin và
kiểm tra chữ kí số.
20
3.1.2. Mô hình cài đặt bỏ phiếu từ xa:
Xây dựng ứng dụng cho quá trình bỏ phiếu điện tử - mô hình
bỏ phiếu có/không cho một công ty. Quy trình thực hiện như
sau:
- Xây dựng cơ sở dữ liệu cho quá trình bỏ phiếu.
- Cung cấp thẻ cử tri cho các nhân viên.
- Các cử tri sử dụng thẻ cử tri được xác minh và tham gia
bỏ phiếu.
- Ban kiểm phiếu KP thực hiện kiểm phiếu mà không
biết nội dung lá phiếu là gì.
3.2. Phân tích và thiết kế chương trình:
3.2.1. Phân tích và thiết kế chương trình chữ kí số:
Phân tích chương trình:
Chương trình có các chức năng sau:
- 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 lược đồ chữ kí Elgamal. Khóa riêng có
thể được sinh hay do người dùng nhập vào. Thuật toán được sử
dụng là thuật toán sinh khóa Elgamal.
- Ký: Sử dụng thuật toán kí Elgamal để tạo ra chữ kí cho
thông báo m rồi gán chữ kí vào thông báo.
- Mã hóa thông báo đã có chữ kí rồi gửi đi.
- Giải mã: Người nhận được văn bản mã, sẽ sử dụng
khóa riêng để giải mã thu được văn bản gốc và chữ kí.
21
- Kiểm tra chữ kí: xác định xem có đúng của người gửi
hay không hay xác định xem văn bản có bị thay đổi không.
Dùng khóa công khai của thuật toán tạo chữ kí số để xác minh
chữ kí trên văn bản m.
Thiết kế chương trình.
Giao diện chương trình:
- Form tạo Message cần kí.
- Form tạo khóa công khai và khóa riêng.
- Form cung cấp khóa để tạo chữ kí cho văn bản.
- Mã hóa văn bản có đính kèm chữ kí bằng mã hóa DES.
- Văn bản được mã hóa gửi tới người nhận, người nhận
giải mã nhận được văn bản mã có chứa cả chữ kí số.
- Người nhận tách chữ kí, thu về văn bản gốc và kiểm tra
chữ kí.
Các Module chính.
- Tính nghịch đảo Module.
- Tính a^k mod n.
- Module kiểm tra tính nguyên tố của một số dựa vào
hàm kiểm tra xác suất Miller-Rabin.
- Sinh số nguyên tố p lớn.
- Chọn ngẫu nhiên số nguyên x nhỏ hơn số nguyên y.
22
3.2.2. Phân tích và thiết kế chương trình bỏ phiếu từ xa:
Phân tích chương trình:
- Nhập danh sách các cử tri tham gia bỏ phiếu và thông
tin cá nhân của cử tri.
- Cung cấp thẻ cử tri cho các nhân viên được tham gia bỏ
phiếu.
- Kiểm tra thẻ trước khi cử tri bỏ phiếu
- Kiểm phiếu và niêm yết kết quả.
Thiết kế chương trình:
Thiết kế cơ sở dữ liệu:
- Bảng lưu giữ các thông tin của cử tri: Xác định danh
sách các cử tri tham gia bầu cử. Bảng tbl_ThongTinCuTri.
- Bảng mô tả mối quan hệ giữa Nhân viên và số thẻ cử
tri: Mỗi nhân viên chỉ có một số thẻ cử tri. Bảng tbl_NV_CT
- Bảng xác định cử tri đã tham gia bỏ phiếu hay chưa,
mỗi cử tri chỉ được bỏ phiếu 1 lần, bảng này nhằm xác định
những cử tri nào chưa bỏ phiếu và cử tri nào đã bỏ phiếu. Bảng
tbl_CT_BP
- Bảng lưu nội dung lá phiếu của các cử tri: Nội dung của
lá phiếu đã được cử tri mã hóa và được lưu trong bảng này.
Bảng tbl_HomPhieu
Giao diện chương trình:
23
- Trang nhập các thông tin của Cử tri được tham gia bỏ
phiếu.
- Trang Cử tri cung cấp mã số hợp lệ để được cung cấp
Mã cử tri.
- Trang kiểm tra Mã cử tri: Sau khi có Mã cử tri, cử tri có
thể tham gia bỏ phiếu, nhưng trước khi bỏ phiếu cử tri
phả