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

HÀ NỘI - 2012

TÓM TẮT LUẬN VĂN THẠC SĨ

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.

CHƯƠNG 1

4

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

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ị:

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

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.

1.2.1.2. Phương pháp thay thế:

- Mã hóa theo mẫu hình học.

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

1.2.4. Hàm băm:

khai cho tất cả mọi người.

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

1.3.2.1. Ước số:

được 1.3.2. Cơ sở toán học của lý thuyết 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

1.3.2.2. Số nguyên tố và số nguyên tố cùng nhau:

8

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ể

xi

đượ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.

x1 + b2

x2 + b3

x3 +…+bi 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

a = b1

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

Euler:

1.3.2.4. Số học Modulo (phép tính đồng dư):

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

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

1.3.2.6. Định lí Trung Quốc về phần dư:

có định lí Fermal

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

r

x

M

duy nhất theo modul M = m1, m2,…, mr được theo công thức sau:

 mod

yMa i

i

i

i

1 

-1 mod mi với 1 ≤ i ≤ r Trong đó Mi = M / mi và yi = Mi 1.3.2.7. Không gian rời rạc của phép lấy Logarit:

* = (0, 1, 2,

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 …, 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à

true

Nếu y = sig(x)

verk =

False

Nếu y ≠ sig(x)

  

mỗi chữ kí y  A thỏa mãn phương trình sau đây.

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

* và A = Zp

rạc trên Zp là khó giải và giả sử   Zn là phần tử nguyên thủy * x Zp-1 và định nghĩa: K={(p, α, a, β): β≡ αa P = Zp

(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).

12

CHƯƠNG 2

Với x, r  Zp và s  Zp-1.

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:

Trộn phiếu

Mã hóa đồng cấu

Chứng minh không tiết lộ thông tin

14

Lá phiếu

Hòm phiếu

Lá phiếu

Cử tri

Ban kiểm phiếu

Bảng niêm yết công khai

Ban đăng kí

Chữ ký mù

Sơ đồ chia sẻ bí mật

Hình 2.1. Quy trình bỏ phiếu từ xa.

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:

15

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

2.3.2.2. Ứng dụng của hệ mã hóa đồng cấu Elgamal trong

bỏ phiếu có / không:

– là hệ mã hóa đồng cấu

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

hóa Elgamal.

đó. 2.3.3.2. Chia sẻ bí mật ngưỡng Shamir phối hợp với mã

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:

CHƯƠNG 3

19

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ải “Xuất trình” Mã cử tri.

- Trang bỏ phiếu: Khi thẻ cử tri hợp lệ, cử tri có thể bỏ

phiếu.

- Trang cung cấp khóa bí mật: Ban kiểm phiếu gồm 2 thành viên, để kiểm phiếu mỗi thành viên phải cung cấp một phần khóa bí mật.

- Trang kiểm phiếu: Sau khi có khóa, tiến hành giải mã

và niêm yết kết quả bỏ phiếu.

 Các Module chính:

- Module form bỏ phiếu.

3.3. Đánh giá ứng dụng:

- Module form kiểm phiếu.

Ứng dụng được chia làm 2 phần: Chữ kí số và Bỏ phiếu từ xa.

- Độ an toàn thông tin.

- Độ bảo mật thông tin.

- Trong khi xây dựng bài toán bỏ phiếu từ xa đã đảm bảo

các yêu cầu: bí mật, toàn vẹn, xác thực.

24

KẾT LUẬN

Trên đây em đã trình bày những nghiên cứu của em về

luận văn “Nghiên cứu chữ kí số và bài toán bỏ phiếu từ xa”.

Mặc dù đã cố gắng nghiên cứu nhưng do lĩnh vực khó và còn

mới mẻ nên luận văn còn nhiều thiếu sót. Em sẽ cố gắng tiếp

tục nghiên cứu để hoàn thiện luận văn hơn trong thời gian tới.

Để có thể ứng dụng được trong thực tế.

 Những đóng góp của luận văn:

- Xây dựng một chương trình chữ kí số.

- Xây dựng ứng dụng cho quá trình bỏ phiếu từ xa – mô

hình bỏ phiếu từ xa có/không cho một công ty.

 Kiến nghị về những nghiên cứu tiếp theo:

- Xây dựng mô hình ứng dụng nhỏ minh họa nhiều hơn 1

sơ đồ chữ kí số và mô hình một quá trình bỏ phiếu từ

xa.

- Nghiên cứu phát triển chương trình trên Internet để mở

rộng liên kết.

Em xin gửi lời cảm ơn chân thành tới TS Hồ Khánh Lâm đã tận

tình hướng dẫn em hoàn thành luận văn, đồng cảm ơn các thầy

cô và các bạn trong lớp đã giúp đỡ em.