Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn LỜI CAM ĐOAN Tôi xin cam đoan luận văn “ Nghiên cứu một số thuật toán hệ mật mã khoá công khai ElGamal và ứng dụng” là côn
Trang 1Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS NGUYỄN NGỌC CƯƠNG
THÁI NGUYÊN - 2015
Trang 3Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “ Nghiên cứu một số thuật toán hệ mật mã khoá công khai ElGamal và ứng dụng” là công trình nghiên cứu của cá nhân tôi
tìm hiểu, nghiên cứu dưới sự hướng dẫn của TS Nguyễn Ngọc Cương Các kết quả
là hoàn toàn trung thực, toàn bộ nội dung nghiên cứu của luận văn, các vấn đề được trình bày đều là những tìm hiểu và nghiên cứu của chính cá nhân tôi hoặc là được trích dẫn từ các nguồn tài liệu được trích dẫn và chú thích đầy đủ
TÁC GIẢ LUẬN VĂN
Phạm Thị Tuyết
Trang 4Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
LỜI CẢM ƠN
Học viên xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo Viện công nghệ thông tin, các thầy cô giáo Trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái Nguyên đã mang lại cho học viên kiến thức vô cùng quý giá và bổ ích trong suốt quá trình học tập chương trình cao học tại trường Đặc biệt học viên xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS Nguyễn Ngọc Cương - Học viện an ninh đã định hướng khoa học và đưa ra những góp ý, gợi ý, chỉnh sửa quý báu, quan tâm, tạo điều kiện thuận lợi trong quá trình nghiên cứu hoàn thành luận văn này
Cuối cùng, học viên xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình và người thân đã quan tâm, giúp đỡ và chia sẻ với học viên trong suốt quá trình học tập
Do thời gian và kiến thức có hạn nên luận văn chắc không tránh khỏi những thiếu sót nhất định Học viên rất mong nhận được những sự góp ý quý báu của thầy cô và các bạn
Thái Nguyên, ngày tháng năm 2015
HỌC VIÊN
Phạm Thị Tuyết
Trang 5Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC CÁC HÌNH VẼ, ĐỒ THỊ vi
MỞ ĐẦU 1
CHƯƠNG 1 3
TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 3
1.1 Lý thuyết toán học 3
1.1.1 Số nguyên tố, UCLN, BCNN 3
1.1.2 Nhóm, vành, trường, trường hữu hạn 3
1.1.3 Số học Modulo (phép tính đồng dư) 5
1.1.4 Không gian rời rạc của phép lấy Logarit 6
1.1.5 Định lí Fermat và định lí Euler 6
1.1.6 Hàm một phía và hàm một phía có cửa sập 6
1.1.7 Định lí Trung Quốc về phần dư: 7
1.2 Mật mã 7
1.2.1 Khái niệm 7
1.2.2 Những yêu cầu đối với hệ mật mã 8
1.2.3 Hệ mã hóa RSA 8
1.2.4 Hệ mã hóa Paillier 9
1.2.5 Hệ mã hóa ElGamal 10
1.2.6 Hệ mật đường cong Eliptic 10
1.3 Chữ ký điện tử 11
1.3.1 Sơ đồ chữ ký điện tử 11
1.3.2 Chữ ký mù RSA 12
1.3.3 Chữ ký nhóm (Group Signature) 13
1.4 Khái niệm xác thực điện tử 15
Trang 6Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.5 Hàm băm (Hash Function) 16
CHƯƠNG :HỆ MẬT MÃ ELGAMAL CẢI TIẾN VÀ MÃ HÓA ĐỒNG CẤU 17
2.1 Hệ mã hóa ElGamal cải tiến 17
2.1.1 Thuật toán mật mã ElGamal cổ điển 17
2.1.2 Một số thuật toán ElGamal cải tiến [3] 18
2.1.2.1 Thuật toán thứ nhất 18
2.1.2.2 Thuật toán thứ hai 21
2.1.2.3 Thuật toán thứ ba 23
2.2 Hệ mã hóa đồng cấu 26
2.2.1 Khái niệm mã hóa đồng cấu 26
2.2.2 Hệ mã hoá Elgamal có tính chất đồng cấu 26
2.2.3 Mô hình hệ mã hóa đồng cấu ElGamal cho mô hình bỏ phiếu có/không 27
2.3 Sơ đồ chia sẻ bí mật 29
2.3.1 Khái niệm chia sẻ bí mật 29
2.3.2 Giao thức “Chia sẻ bí mật” Shamir 31
2.3.2.1 Khái niệm sơ đồ ngưỡng A(t, m) 31
2.3.2.2 Chia sẻ khoá bí mật K 32
2.3.2.3 Khôi phục khóa bí mật K từ t thành viên 33
CHƯƠNG 3: ỨNG DỤNG HỆ MẬT MÃ ELGAMAL TRONG BÀI TOÁN BỎ PHIẾU THĂM DÒ TÍN NHIỆM 37
3.1 Hệ thống bỏ phiếu điện tử [5] 37
3.1.1 Khái niệm bỏ phiếu điện tử 37
3.1.2 Yêu cầu của hệ thống bỏ phiếu điện tử 38
3.1.3 Những vấn đề cần giải quyết 38
3.1.4.Các thành phần trong hệ thống bỏ phiếu điện tử 39
3.1.5 Quy trình bài toán bỏ phiếu điện tử 39
3.2 Ứng dụng hệ mật ElGamal trong quá trình bỏ phiếu thăm dò tín nhiệm 41
3.2.1 Thiết lập 41
3.2.3 Mở phiếu bầu 43
3.3 Xây dựng chương trình thử nghiệm mô hình bỏ phiếu thăm dò tín nhiệm 44
Trang 7Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
3.3.1 Môi trường cài đặt và thử nghiệm 44
3.3.2 Phát biểu bài toán 44
3.3.3 Các đối tượng của hệ thống 45
3.3.4 Phân tích và thiết kế chương trình bỏ phiếu: 45
3.3.5 Các chức năng chính 45
3.3.6 Thứ tự thực hiện chương trình 46
3.3.7 Kết quả thực nghiệm 47
3.4 Phân tích vấn đề bảo mật cần đạt được 56
3.5 Các tính chất đạt được 56
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 57
TÀI LIỆU THAM KHẢO 58
Trang 8Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1 Sơ đồ mã hóa và giải mã 7
Hình 2.1 Sơ đồ bỏ phiếu đồng ý/ không đồng ý 28
Hình 2.2 Sơ đồ ngưỡng Shamir 32
Hình 3.1 Sơ đồ Quy trình bỏ phiếu điện tử 40
Hình 3.2 Sơ đồ mô tả bỏ phiếu thăm dò tín nhiệm 41
Hình 3.3 Sơ đồ giai đoạn bỏ phiếu tín nhiệm 42
Hình 3.4 Giao diện chính của chương trình 47
Hình 3.5 Ban tổ chức đăng nhập vào hệ thống 48
Hình 3.6 Thông báo tạo cơ sở dữ liệu cán bộ thành công 48
Hình 3.7 Bảng danh sách cán bộ sau khi được ban tổ chức tạo cơ sở dữ liệu 49
Hình 3.8 Thông báo tạo cơ sở dữ liệu ban kiểm phiếu thành công 49
Hình 3.9 Cán bộ đăng nhập vào hệ thống 49
Hình 3.10 Quá trình bỏ phiếu 50
Hình 3.11 Cán bộ cập nhật thông tin 50
Hình 3.12 Thông báo nhắc nhở lựa chọn của cán bộ 51
Hình 3.13 Thông báo xác nhận lựa chọn của cán bộ 51
Hình 3.14 Ban kiểm phiếu đăng nhập vào hệ thống 52
Hình 3.14 Mảnh khóa của ban kiểm phiếu 52
Hình 3.15 Ban kiểm phiếu cập nhật thông tin 53
Hình 3.16 Thông báo xác nhận quá trình gửi mảnh khóa 53
Hình 3.17 Xác nhận tổng hợp đủ các mảnh khóa 54
Hình 3.18 Thông báo ghép mảnh khóa thành công 54
Hình 3.19 Kết quả bỏ phiếu 55
Hình 3.20 Cơ sở dữ liệu trong mô hình bỏ phiếu tín nhiệm 56
Trang 9Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
MỞ ĐẦU
1 Tính khoa học và cấp thiết của đề tài
Cùng với sự phát triển của công nghệ thông tin, hiện nay vấn đề an toàn thông tin trở nên hết sức cần thiết trên qui mô toàn cầu Đảm bảo tính bảo mật, khả năng xác thực nguồn gốc gói tin trong quá trình truyền tải thông tin qua môi trường không an toàn như Internet là một vấn đề nóng trong nghiên cứu và thực tiễn Để đảm bảo tính bảo mật và xác thực người ta cần phải mã hoá, có một số thuật toán
mã hoá công khai rất nổi tiếng: RSA, ElGamal, Tuy nhiên, các hệ mật mã này có nhược điểm là không có cơ chế xác thực thông tin được bảo mật (nguồn gốc, tính toàn vẹn) do đó chúng không có khả năng chống lại một số dạng tấn công giả mạo trong thực tế Chính vì vậy hiện nay, người ta [3] đã đề xuất một số cải tiến hệ mật
mã ElGamal Ưu điểm của các thuật toán mới đề xuất này là ở chỗ cho phép bảo mật và xác thực thông tin một cách đồng thời mà mức độ an toàn của các thuật toán mới đề xuất không nhỏ hơn mức độ an toàn của thuật toán ElGamal xét theo khả năng chống thám mã khi tấn công trực tiếp vào các thủ tục mã hóa và giải mã
Để góp phần nâng cao hiệu năng của phương pháp mã hóa ElGamal Trong luận văn này, học viên đặt mục tiêu nghiên cứu, thử nghiệm thuật toán mã hóa Elgamal và các cải tiến mới của các tác giả đã đưa ra, so sánh hiệu quả của chúng
và kiểm định thuật toán này bằng một ứng dụng trong thực tiễn Đây là bài toán lựa chọn các khả năng trong các giải pháp đã có bằng việc mã hóa và xác thực như bài toán bỏ phiếu điện tử do các cán bộ tiến hành hoặc bài toán thăm dò tín nhiệm lãnh đạo tại một đơn vị Những bài toán này luôn đòi hỏi tính bí mật, ví dụ trong bỏ phiếu điện tử (e-voting), việc đảm bảo tính đúng đắn bảo mật ở đây có thể bao gồm
cả việc không để lộ danh tính cử tri (ai bỏ phiếu cho ứng viên nào?), tính duy nhất (mỗi cử tri đảm bảo chỉ tối đa 1 lần bỏ phiếu)
2 Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Hệ mật khóa công khai ElGamal và các cải tiến của
hệ mật mã
Trang 10Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- Phạm vi nghiên cứu: Nghiên cứu cải tiến dựa trên thuật toán đã có và xây dựng chương trình ứng dụng trong bài toán thăm dò dư luận về mức độ tín nhiệm đối với một đơn vị (ở đây là tổng công ty xăng dầu Việt Nam)
3 Hướng nghiên cứu của đề tài
- Nghiên cứu các đề xuất một số thuật toán mật mã khóa công khai được phát triển từ hệ mật ElGamal của các tác giả đã công bố để xây dựng chương trình ứng dụng trong bài toán bỏ phiếu thăm dò dư luận về mức độ tín nhiệm
- Đánh giá ưu điểm của các thuật toán mới do các tác giả đã đề xuất về mức độ bảo mật và xác thực thông tin một cách đồng thời
4 Những nội dung nghiên cứu chính
Luận văn được trình bày trong 3 chương, có phần mở đầu, phần kết luận, phần mục lục, phần tài liệu tham khảo Các nội dung cơ bản của luận văn được trình
bày theo cấu trúc sau:
Chương 1: TỔNG QUAN VỀ CÁC HỆ MẬT MÃ
Trong chương này tổng trình bày một số khái niệm cơ bản trong toán học mà
các hệ mã hoá thường sử dụng như: mod, số nguyên tố, vành Z n, các phép toán
cộng, nhân, bài toán logarrit rời rạc trên không gian Z n Sau đó đưa ra các khái niệm mật mã, các thuật toán mã hoá, chữ ký số phục vụ cho việc mã hoá thông tin
Chương 2: HỆ MẬT MÃ ELGAMAL CẢI TIẾN VÀ MÃ HÓA ĐỒNG CẤU
Tập trung nghiên cứu một số thuật toán mật mã ElGamal cải tiến, tính chất đồng cấu của hệ mật ElGamal và sơ đồ chia sẻ bí mật theo ngưỡng Shamir
Chương 3: ỨNG DỤNG HỆ MẬT MÃ ELGAMAL TRONG BÀI TOÁN BỎ PHIẾU
THĂM DÒ TÍN NHIỆM
Cài đặt thử nghiệm thuật toán hệ mật ElGamal cải tiến và kỹ thuật chia sẻ khóa bí mật Shamir
Trang 11Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
CHƯƠNG 1 TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 1.1 Lý thuyết toán học
a) Phép toán hai ngôi
Cho G là một tập hơp Phép toán hai ngôi (*) là một ánh xạ:
Trang 12Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- Tính chất kết hợp: ( x * y ) * z = x * ( y * z ), x, y, z G
- Tồn tại phần tử trung lập e G: e * x = x * e = x, x G
- Tồn tại phần tử nghịch đảo x’ G: x’ * x = x * x’ = e
Nhóm Cyclic: Nhóm (G, *) được gọi là nhóm Cyclic nếu nó được sinh ra bởi
một trong các phần tử của nó Tức là có phần tử g G mà với mỗi a G, đều tồn tại số nN để gn = a Khi đó g là phần tử sinh hay phần tử nguyên thủy của nhóm G
Ví dụ: (Z+,*) gồm các số nguyên dương là nhóm Cyclic có phần tử sinh là 1
Cấp của nhóm Cyclic: Cho (G,*) là nhóm Cyclic với phần tử sinh là g, và
phần tử trung lập e Nếu tồn tại số tự nhiên nhỏ nhất n mà gn = e thì G sẽ chỉ gồm
có n phần tử khác nhau: e, g, g1, g2,…, gn-1 Khi đó G được gọi là nhóm Cyclic hữu hạn cấp n Nếu không tồn tại số tự nhiên n để gn= e thì G có cấp vô hạn
Giả sử F là tập hợp khác rỗng, trên đó có hai phép toán đóng hai ngôi bất
kỳ, chẳng hạn ký hiệu là + (cộng) và * (nhân) F là một trường nếu và chỉ nếu:
(F,+) là nhóm giao hoán với phần tử đơn vị là "0"
(F\{0},*) là nhóm giao hoán với phần tử đơn vị là "1"
Các phép toán cộng và nhân có tính chất phân phối: a(b+c) = ab + ac
Số phần tử của một trường được gọi là bậc của một trường Một trường có số phần tử hữu hạn được gọi là trường hữu hạn, một trường có số phần tử vô hạn được gọi là trường vô hạn
Trang 13Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trường hữu hạn là trường chứa hữu hạn các phần tử Mọi trường hữu hạn có một
số nguyên tố là đặc số của trường Một trường F có đặc số thì với mọi a F,
Phép cộng: Nếu a, b Fp , ta có a + b = r, với r là phần dư khi chia a + b cho p
Phép nhân: Nếu a, b Fp , ta có a.b = s, với s là phần dư khi chia a.b cho p
Phép nghịch đảo: Nếu a Fp (a 0), phép nghịch đảo của a modulo p, ký hiệu là a-1, nếu tồn tại duy nhất số nguyên c Fp sao cho a.c = 1
Trường hữu hạn F 2 m:
Trường F 2 m, kí hiệu F 2 m = {0,1, a 1 , a 2 , ., a 2 m -2 }, được gọi là trường hữu
hạn nhị phân Khi đó tồn tại m phần từ 0 , 1 , , m-1 trong F 2 m sao cho mỗi
phẩn tử F 2 m có thể viết duy nhất dưới dạng:
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)
Trang 14Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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.1.4 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)
Zp/Z* 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.1.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í Fermat
1.1.6 Hàm một phía và hàm một phía có cửa sập
Trang 15Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
phá hoặc những công cụ khác Tuy nhiên, nếu bạn có “ cửa sập” ( trong trường hợp này là chìa khóa của hòm thư) thì công việc mở hòm thư thật dễ dàng
1.1.7 Đị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 duy nhất theo modul M= m1, m2,…, mr được tính theo công thức sau:
1
(mod )
r
i i i i
- Bản rõ (plaintext or cleartext): Chứa các xâu ký tự gốc, thông tin trong bản
rõ là thông tin cần mã hoá để giữ bí mật
- Bản mã (ciphertext): Chứa các ký tự sau khi đã được mã hoá, mà nội dung được giữ bí mật
- Mật mã học (Crytography): Là khoa học để giữ thông tin được an toàn
- Sự mã hoá (Encryption): Quá trình che dấu thông tin bằng phương pháp nào
đó để làm ẩn nội dung bên trong gọi là sự mã hoá
- Sự giải mã (Decryption): Quá trình biến đổi trả lại bản mã thành bản rõ
Quá trình mã hoá và giải mã được thể hiện trong sơ đồ sau:
Hình 1.1 Sơ đồ mã hóa và giải mã
- Hệ mật mã: Là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn các tính chất sau:
P (Plaintext): Là tập hợp hữu hạn các bản rõ có thể
mãmaxmax
Bản rõ gốc
Trang 16Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
C (Ciphertext): Là tập hợp hữu hạn các bản mã có thể
K (Key): Là tập hợp các bản khoá có thể
E (Encrytion): Là tập hợp các qui tắc mã hoá có thể
D (Decrytion): Là tập hợp các qui tắc giải mã có thể
Với mỗi k có một hàm lập mã ek, ek:P, và một hàm giải mã dk, dk:C sao cho: dk (ek(x)) =x, với x € P
- Một thông báo thường được tổ chức dưới dạng bản rõ Người gửi sẽ làm nhiệm vụ mã hoá bản rõ, kết quả thu được gọi là bản mã Bản mã này được gửi đi trên một đường truyền tới người nhận sau khi nhận được bản mã người nhận giải
mã nó để tìm hiểu nội dung
Ek(P) = C và Dk (C) = P
1.2.2 Những yêu cầu đối với hệ mật mã
Cung cấp một mức cao về tính bảo mật, tính toàn vẹn, tính chống chối bỏ và tính xác thực:
Tính bảo mật: Bảo đảm bí mật cho các thông báo và dữ liệu bằng việc che dấu thông tin nhờ các kỹ thuật mã hóa
Tính toàn vẹn (integrity): Bảo đảm với các bên rằng bản tin không bị thay đổi trên đường truyền tin
Tính không thể chối bỏ (Non-repudiation): Có thể xác nhận rằng tài liệu đã đến từ ai đó, ngay cả khi họ cố gắng từ chối nó
Tính xác thực (Authentication): Cung cấp hai dịch vụ:
o Nhận dạng nguồn gốc của một thông báo và cung cấp một vài bảo đảm rằng nó là đúng sự thực
o Kiểm tra định danh của người đang đăng nhập một hệ thống, tiếp tục kiểm tra đặc điểm của họ trong trường hợp ai đó cố gắng kết nối và giả danh là người sử dụng hợp pháp
1.2.3 Hệ mã hóa RSA
Sinh khóa:
Giả sử A và B cần trao đổi thông tin bí mật thông qua một kênh không an toàn (ví dụ như Internet) Với thuật toán RSA, A đầu tiên cần tạo ra cho mình
Trang 17Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
cặp khóa gồm khóa công khai và khóa bí mật theo các bước sau:
- Tính d sao cho e d 1 (mod( (n))
Khóa công khai (n,e)
Khóa bí mật (n, d)
Mã hóa:
Giả sử B muốn gửi đoạn thông tin M cho A Đầu tiên B chuyển M thành một số m < n theo một hàm có thể đảo ngược (từ m có thể xác định lại M) được thỏa thuận trước Lúc này B có m và biết n cũng như e do A gửi B sẽ tính c là bản
mã hóa của m theo công thức:
Hệ mã hóa Paillier được đặt theo tên và phát minh của Pascal Paillier năm
1999 Đây là thuật toán bất đối xứng cho hệ mật mã khóa công khai
L u
n
và = lcm(p-1, q-1)Khóa công khai là (n, g);
Khóa bí mật là: (p, q,)
Trang 18Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
* Tạo cặp khóa (bí mật, công khai( (a, b):
Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Zp là “khó” giải Chọn phần tử nguyên thủy *
p
gZ Tính khóa công khai h ≡ ga mod p
Định nghĩa tập khóa: K = {(p, g, a, h): h ≡ ga
mod p} Các giá trị p, g, h được công khai, phải giữ bí mật a Với bản rõ x P và bản mã y C , với khóa k K
- Định nghĩa: Cho p > 3 là số nguyên tố Đường cong Eliptic y2 = x3 + ax + b trên Zp
là tập các nghiệm (x,y) Zp x Zp của đồng dư thức y2 = x3 + ax + b(mod p)
Trong đó a, bZp là các hằng số thỏa mãn 4a3 + 27b2 0(mod p) (để đa thức
x3 + ax + b không có nghiệm bội) cùng với điểm đặc biệt 0 được gọi là điểm vô hạn
- Định lý Hasse: Việc xây dựng các hệ mật mã trên dường cong Eliptic bao gồm việc
lựa chọn đường cong E thích hợp và một điểm G trên E gọi là điểm cơ sở Xét trường
K là Fq
N là số điểm của E trên Fq (trường hữu hạn q phần tử) Khi đó:
Trang 19Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
( 1) 2
N q q Từ định lý Hasse suy ra E(Fq) = q +1 – t trong dó t 2 q
- Hệ mật trên đường cong Eliptic
Hệ ElGamal làm việc với nhóm Cyclic hữu hạn Năm 1978, Kobliz đã đưa một hệ trên ECC dựa trên hệ ElGamal
Để xây dựng hệ mã hóa dựa trên đường cong Eliptic ta chọn đường cong E(a,b) và một điểm G trên đường cong làm điểm cơ sở Mỗi người dùng A một khóa bí mật nA là một số nguyên và sinh khóa công khai PA = nA *G
Khi đó hệ mã hóa đường cong Eliptic được xây dựng tương tự hệ mã hóa ElGamal, trong đó thuật toán mã hóa và giải mã được xác định như sau:
Thuật toán mã hóa: Giả sử người dùng A muốn gửi thông điệp cần mã hóa Pmtới người dùng B, chọn một số ngẫu nhiên k và gửi thông điệp mã hóa Cm được tính như sau: Cm k G * , P + k * Pm B (PB là khóa công khai của B)
Thuật toán giả mã: Để giải thông điệp Cm k G * , P + k * Pm B, người dùng
V: tập các thuật toán kiểm thử
Mỗi khóa K’ K có hai thành phần K’ = (K1, K2), K1 là khóa bí mật dùng
để ký, còn K2 là khóa công khai để xác thực chữ ký
Với mỗi K’ = (K1, K2), trong S có thuật toán kí:
Trang 20Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
mù thường được dùng trong các vấn đề đòi hỏi sự ẩn danh, nó dược ứng dụng phổ biến trong tiền điện tử, bỏ phiếu điện tử…
Nội dung M trước khi người A đưa cho người kí B sẽ bị làm mù thành M’ Người kí lúc này sẽ kí trên M’ chứ không phải trên M Sau khi có được chữ kí trên M’, A xóa mù để có được chữ kí trên M Như vậy người A vẫn có chữ kí hợp lệ của người B trên M mà B không biết thông tin gì về M
Ví dụ: A chuẩn bị một văn bản M, cho vào một phòng bì A4, có kèm một tờ giấy than, rồi dán lại và đưa cho B B chỉ có thể ký lên phía ngoài phong bì, nhưng chữ ký sẽ được tạo ra trong văn bản bên trong thông qua tờ giấy than Mặc dù B không thể biết được nội dung thật của văn bản này, nhưng có thể đánh giá được tính trung thực của A (không tạo ra gì xấu cho B) mà một phép kiểm tra theo phương pháp thách thức - đáp ứng
b) Sơ đồ chữ ký RSA
- Chọn p, q nguyên tố lớn
Verk(x, y) = Đúng Nếu y = Sigk(x) Sai Nếu y Sigk(x)
Trang 21Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Tính n = p.q; (n) = (p-1)(q-1)
Chọn b nguyên tố cùng (n)
Chọn a nghịch đảo với b; a = b-1mod (n)
- Ký trên x: Sig (x) = xa mod n
- Kiểm tra chữ ký: Ver (x,y)= True x yb mod n
Ví dụ: Giả sử B dùng sơ đồ chữ ký RSA (n, p, q, b, a)
- A che dấu M bởi y = M*rb (mod n), (r đƣợc chọn sao cho tồn tại phần tử nghịch đảo r-1 (mod n))
- A gửi bí danh y cho B
- B ký trên bí danh y đƣợc chữ ký z: z = ya (mod n)
Trang 22Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
là người đại diện cho nhóm
Chữ ký nhóm được David Chaum và Van Heyst giới thiệu lần đầu tiên vào năm 1991 Kể từ đó đến nay đã có nhiều nhà khoa học nghiên cứu và đưa ra một số
sơ đồ chữ ký nhóm khác nhau như sơ đồ chữ ký nhóm của Chen và Pedersen năm
1994, sơ đồ chữ ký nhóm của Camenisch và Stadler năm 1997
Đặc điểm của chữ ký nhóm:
- Chỉ có thành viên trong nhóm mới có thể ký tên vào bản thông báo đó
- Người nhận thông điệp có thể kiểm tra xem chữ ký đó có đúng là của nhóm
đó hay không, nhưng người nhận không thể biết được người nào đã ký vào thông điệp đó
- Trong trường hợp cần thiết chữ ký có thể được “mở” (có hoặc là không có sự giúp đỡ của thành viên trong nhóm) để xác định người nào đã ký vào thông điệp đó
KeyGen() (pk, gmsk,ski)
Trong đó ski là khóa bí mật của thành viên thứ i trong nhóm
- Join: Cho phép một người không phải là thành viên trong nhóm muốn tham
gia nhóm Khi gia nhập nhóm, thành viên i sẽ nhận được khóa bí mật của mình là
Trang 23Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
ski, người quản lý nhóm có trách nhiệm lưu thông tin của thành viên mới này
- Sig: Khi thành viên i muốn ký thông điệp m đại diện cho nhóm, anh ta sẽ
sử dụng thủ tục:
Sig: Sig(m,ski) Chữ ký trên thông điệp m sẽ là
- Verify: Khi muốn kiểm tra chữ ký có phải là chữ kí đại diện cho nhóm
Verify m ( , , pk ) = True
False
- Open: Với mỗi chữ ký trên thông điệp m, người quản lý nhóm có thể xác
định được thành viên nào đã ký vào thông điệp bằng việc sử dụng thủ tục:
Open(gmsk,m, ) đầu ra của thủ tục là thông tin về thành viên đã ký
1.4 Khái niệm xác thực điện tử
Xác thực điện tử là việc chứng minh từ xa bằng phương tiện điện tử, sự tồn tại chính xác và hợp lệ danh tính của một chủ thể khi tham gia trao đổi thông tin điện
tử như: cá nhân, tổ chức, dịch vụ, hoặc một lớp thông tin nào đó mà không cần biết các thông tin đó cụ thể như thế nào, thông qua thông tin đặc trưng đại diện cho chủ thể đó mà vẫn đảm bảo được bí mật của chủ thể, hoặc lớp thông tin cần chứng minh
Xác thực điện tử là việc cần thực hiện trước khi thực sự diễn ra các cuộc trao đổi thông tin điện tử chính thức
Việc xác thực điện tử trong hệ thống trao đổi thông tin điện tử được uỷ quyền cho một bên thứ ba tin cậy Bên thứ ba ấy chính là CA (Certification Authority), một cơ quan có tư cách pháp nhân thường xuyên tiếp nhận đăng ký các thông tin đặc trưng đại diện cho chủ thể: khoá công khai và lưu trữ khoá công khai cùng lý lịch của chủ thể trong một cơ sở dữ liệu được bảo vệ chặt chẽ CA chuyên nghiệp không nhất thiết là cơ quan nhà nước Điều quan trọng nhất của một CA là uy tín để khẳng định sự thật, bảo đảm không thể có chuyện "đổi trắng thay đen"
Trang 24Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Mục đích của việc xác thực điện tử: Chống giả mạo, chống chối bỏ, đảm bảo tính toàn vẹn, tính bí mật, tính xác thực của thông tin và mục đích cuối cùng là hoàn thiện các giải pháp an toàn thông tin
Cơ sở ứng dụng đề xây dựng các giải pháp an toàn cho xác thực điện tử là các
hệ mật mã
Ứng dụng trong: Thương mại điện tử, trong các hệ thống thanh toán trực tuyến, là nền tảng của chính phủ điện tử
1.5 Hàm băm (Hash Function)
Hàm băm là một hàm tính toán có hiệu quả khi ánh xạ các dòng nhị phân có
độ dài tùy ý thành các dòng nhị phân có độ dài cố định nào đó
Hàm băm yếu: hàm băm được gọi là yếu nếu cho một thông điệp x thì về mặt tính toán không tìm ra được thông điệp x’ khác x sao cho: h(x’) = h(x)
Hàm băm mạnh: hàm băm được gọi là mạnh nếu về mặt tính toán không tìm
ra được hai thông điệp x và x’ sao cho: x’ ≠ x và h(x’
) = h (x) Chọn giá trị x ngẫu nhiên, x ϵ x
Hàm băm yếu làm cho chữ ký số trở nên tin cậy giống như việc ký trên toàn thông điệp
Hàm băm mạnh có tác dụng chống lại kẻ giả mạo tạo ra hai bản thông điệp có nội dung khác nhau, sau đó thu nhận chữ ký hợp pháp cho một bản thông điệp dễ được xác nhận rồi lấy nó giả mạo làm chữ ký của thông điệp thứ 2
Trang 25Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
CHƯƠNG 2
HỆ MẬT MÃ ELGAMAL CẢI TIẾN
VÀ MÃ HÓA ĐỒNG CẤU
2.1 Hệ mã hóa ElGamal cải tiến
2.1.1 Thuật toán mật mã ElGamal cổ điển
Sơ đồ (ElGamal đề xuất năm 1985)
a/ Sinh khóa (bí mật, công khai) (a, h) :
Chọn số nguyên tố p sao cho bài toán logarit rời rạc trong Z p là “khó” giải
Chọn phần tử nguyên thuỷ g Z p*
Đặt P = Z p *, C = Z p* Z p*
Chọn khóa bí mật là a Z p * Tính khóa công khai h g a mod p
Định nghĩa tập khóa: = {(p, g, a, h): h g a mod p}
Các giá trị p, g, h được công khai, phải giữ bí mật a
Với Bản rõ x P và Bản mã y C, với khóa k định nghĩa:
Trang 26Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Độ an toàn
a/ Hệ mã hóa ElGamal là không tất định, tức là với một bản rõ x và 1 khóa bí mật a, thì có thể có nhiều hơn một bản mã y, vì trong công thức lập mã còn có thành phần ngẫu nhiên r
b/ Độ an toàn của hệ mật ElGamal dựa vào khả năng giải bài toán logarit rời
rạc trong Z p Theo giả thiết trong sơ đồ thì bài toán này phải là “khó” giải
2.1.2 Một số thuật toán ElGamal cải tiến [3]
2.1.2.1 Thuật toán thứ nhất
Thuật toán thứ nhất ở đây có điểm khác biệt cơ bản với thuật toán ElGamal là
ở chỗ thuật toán có cơ chế xác thực nguồn gốc thông tin 2 chiều được thiết lập dựa trên việc sử dụng khóa công khai của người nhận (yB) trong thủ tục mã hóa và khóa công khai của người gửi (yA) trong thủ tục giải mã
Chọn khóa mật x là số nguyên thỏa mãn: 1 < x < p-1
Tính khóa công khai y theo công thức: y = g x mod p
Giữ bí mật: x; công khai: p, g, y Khóa công khai y cần phải được chứng thực bởi một CA (Certificate Authority) đáng tin cậy
b) Thủ tục mã hóa
Giả sử người gửi là A, người nhận là B Người gửi A có khóa bí mật là x A và
khóa công khai là y A Người nhận B có khóa bí mật là x B và khóa công khai là y B
Khi đó, để gửi bản tin M cho B, với: 0 M p, A sẽ thực hiện các bước như sau:
Trang 27Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Chọn số ngẫu nhiên k A thỏa mãn: 1 kA ( p 1).
Tính giá trị R theo công thức: k A ;
Tính giá trị Z theo công thức: Z = (R x y A ) -1 mod p
Khôi phục bản tin ban đầu (M): x x B
d, Tính đúng đắn của thuật toán mới đề xuất
Điều cần chứng minh ở đây là:
Cho p là số nguyên tố, g là phần tử sinh của Z*p, 1 x A , x B p 1 ,
,
A
x A
Trang 28Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Ở thuật toán này việc tấn công trực tiếp vào thủ tục mã hóa là khó khăn hơn thuật toán ElGamal, vì ở thuật toán này cả 2 khóa bí mật ngắn hạn (kA) và dài hạn (xA) của người gửi cùng được sử dụng để mã hóa bản tin Do đó, việc thám mã và giả mạo, xét trong trường hợp này, chỉ có thể thực hiện thành công khi cả 2 khóa bí mật đồng thời bị lộ Từ đây có thể thấy rằng, mức độ an toàn của thuật toán này xét theo khả năng chống thám mã và chống tấn công làm lộ khóa mật là không nhỏ hơn mức độ an toàn của thuật toán ElGamal trong khi mức độ chống giả mạo nguồn gốc bản tin được bảo mật lại cao hơn thuật toán ElGamal
Trang 29Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
2.1.2.2 Thuật toán thứ hai
Thuật toán có cách thức thực hiện dưới dạng một giao thức (protocol) Ngoài
ra, bản mã được tạo ra bởi thuật toán này chỉ có một thành phần duy nhất
Chọn khóa mật x là số nguyên thỏa mãn: 1 < x < (p-1)
Tính khóa công khai y theo công thức: y = g x mod p
Giữ bí mật: x; công khai: p, g, y Khóa công khai y cần phải được chứng thực bởi một CA (Certificate Authority) đáng tin cậy
b) Thủ tục mã hóa
Giả sử người gửi là A, người nhận là B Người gửi A có khóa bí mật là x A và
khóa công khai là y A Người nhận B có khóa bí mật là x B và khóa công khai là y B
Khi đó, để gửi bản tin M cho B, với: 0 M p, A sẽ thực hiện các bước như sau:
Bước 1: Đối tượng B thực hiện:
Chọn giá trị k Bthỏa mãn: 1 kB ( p 1).
Tính giá trị R B theo công thức: k B
B
Gửi giá trị R B cho đối tượng A
Bước 2: Đối tượng A thực hiện:
Mã hóa bản tin M theo công thức: x (R x ) A
B x B
Tính giá trị Z theo công thức: Z = ( y A ) -1 mod p
Khôi phục bản tin ban đầu (M): +
x k B x B
d, Tính đúng đắn của thuật toán
Trang 30Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Điều cần chứng minh ở đây là:
Cho p là số nguyên tố, g là phần tử sinh của Z*p, 1 x A , x B p 1 ,
,
A
x A
A
B A
x
k x
p
e) Mức độ an toàn của thuật toán mới đề xuất
Ở thuật toán này có khả năng chống thám mã xét trong trường hợp tấn công trực tiếp vào thủ tục mã hóa là tương đương với thuật toán ElGamal, nhưng thủ tục giải mã của thuật toán có khả năng chống thám mã cao hơn so với thuật toán ElGamal do việc sử dụng kết hợp đồng thời cả 2 khóa bí mật ngắn hạn (kB) và dài hạn (xB) của người nhận (B)
Trang 31Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Gửi giá trị R B = 3639 cho đối tƣợng A
Bước 2: Đối tƣợng A thực hiện:
Mã hóa bản tin M theo công thức: x (R x ) A
B x B
Tính giá trị Z = ( y A ) -1 mod 16127 = (4487)-1 mod 16127 = 13665
Khôi phục bản tin ban đầu (M): +
Chọn khóa mật x là số nguyên thỏa mãn: 1 < x < (p-1)
Tính khóa công khai y theo công thức: y = g x
mod p
Giữ bí mật: x; công khai: p, g, y Khóa công khai y cần phải đƣợc chứng thực bởi một CA (Certificate Authority) đáng tin cậy
Trang 32Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
b) Thủ tục mã hóa
Giả sử người gửi là A, người nhận là B Người gửi A có khóa bí mật là x A và
khóa công khai là y A Người nhận B có khóa bí mật là x B và khóa công khai là y B
Khi đó, để gửi bản tin M cho B, với: 0 M p, A sẽ thực hiện các bước như sau:
Bước 1: Đối tượng B thực hiện:
Chọn giá trị k Bthỏa mãn: 1 kB ( p 1).
Tính giá trị R B theo công thức: k B
B
Gửi giá trị R B cho đối tượng A
Bước 2: Đối tượng A thực hiện:
Chọn giá trị k A thỏa mãn: 1 kA ( p 1).
Hình thành phần thứ nhất của bản mã theo công thức:
x (R x )
Tính giá trị Z theo công thức: Z = ( R x y A ) -1 mod p
Khôi phục bản tin ban đầu (M): +
x k B x B
d, Tính đúng đắn của thuật toán mới đề xuất
Điều cần chứng minh ở đây là:
Cho p là số nguyên tố, g là phần tử sinh của Z*p, 1 x A , x B p 1 ,
,
A
x A
Trang 33Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
+ +
A
B
B
B A
e) Mức độ an toàn của thuật toán
Cả 2 khóa bí mật ngắn hạn (kA) và dài hạn (xA) của người gửi (A) cũng như khóa bí mật ngắn hạn (kB) và dài hạn (xB) của người nhận (B) đều được sử dụng kết hợp trong các thủ tục mã hóa và giải mã Vì vậy, mức độ an toàn của thuật toán xét theo khả năng chống thám mã trong cả 2 trường hợp tấn công trực tiếp vào thủ tục
mã hóa và giải mã đều cao hơn thuật toán ElGamal
Gửi giá trị 4814 cho đối tượng A
Bước 2: Đối tượng A thực hiện: