Đăng ký Đăng nhập
Trang chủ Nghiên cứu chữ ký số và bài toán bỏ phiếu từ xa...

Tài liệu Nghiên cứu chữ ký số và bài toán bỏ phiếu từ xa

.PDF
24
266
113

Mô tả:

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 x   ai M i yi mod M  i 1 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.  true verk =   False Nếu y = sig(x) Nếu y ≠ sig(x) 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). 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 Trộn phiếu Chứng minh không tiết lộ thông tin Mã hóa đồng cấu Lá phiếu Hòm phiếu Cử tri Bảng niêm yết công khai Ban đăng kí Chữ ký mù Hình 2.1. Quy trình bỏ phiếu từ xa. Lá phiếu Ban kiểm phiếu Sơ đồ chia sẻ bí mật 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í.
- Xem thêm -

Tài liệu liên quan