LỜI CAM ĐOAN Em xin cam đoan các kế t quả được trình bày trong đồ án tốt nghiệ p “Nghiên cứu lược đồ chữ ký số tậ p thể trên hệ mật ID-Based” là công trình nghiên cứu của em dướ i sự hướ ng ng dẫn của TS Lê Xuân Đức. Các số liệu, k ết quả trung thực và chưa đượ c công bố trong bất k ỳ trong đồ án tốt nghiệ p là hoàn toàn trung công trình nào trước đây. Các kế t quả đượ c s ử dụng để tham khảo đều đã đượ c trích dẫn đầy đủ và theo đúng quy đị nh. Bắ c Ninh, ngà y ... tháng ... năm năm 2017
Học viên
Nguyễn Thị Thu Hiền
LỜ I CẢM CẢM ƠN Trong quá trình nghiên c ứu và hoàn thiện đồ án tốt nghiệp này, em đã nhận đượ c nhiều sự giúp đỡ và đỡ và đóng góp quý báu. ng dẫn là Đầu tiên, em xin bày tỏ lòng cảm ơn sâu sắc tớ i Thầy giáo hướ ng TS Lê Xuân Đức - Viện Khoa học Công nghệ Quân sự đã luôn ủng hộ, động viên, tận tình giúp đỡ và hỗ tr ợ ợ những điều kiện tốt nh ất cho em trong suốt quá trình nghiên cứu và hoàn thiện đồ án tốt nghiệ p. Em xin chân thành cảm ơn Khoa Công nghệ thông tin - Trường Đại học K ỹ thuật - Hậu cần Công an nhân dân đã tạo điề u kiện thuận lợi để em hoàn thành nhiệm vụ. Em cũng xin cảm ơn Độ i Tin Học - Phòng Viễn Thông Tin Học - Công an thành phố Hà Nội đã tạo điều ki ện cho phép em nghiên cứu đồ án tốt nghiệ p trong thờ i gian thực tậ p tốt nghiệ p tại đơn vị. Cuối cùng, em xin bày tỏ lòng cảm ơn đến gia đình, anh em, bạ n bè, các đồng chí, đồng đội đã độ ng viên và cổ vũ em trong suốt thờ i gian nghiên cứu. Xin trân tr ọng cảm ơn tất cả!
LỜ I CẢM CẢM ƠN Trong quá trình nghiên c ứu và hoàn thiện đồ án tốt nghiệp này, em đã nhận đượ c nhiều sự giúp đỡ và đỡ và đóng góp quý báu. ng dẫn là Đầu tiên, em xin bày tỏ lòng cảm ơn sâu sắc tớ i Thầy giáo hướ ng TS Lê Xuân Đức - Viện Khoa học Công nghệ Quân sự đã luôn ủng hộ, động viên, tận tình giúp đỡ và hỗ tr ợ ợ những điều kiện tốt nh ất cho em trong suốt quá trình nghiên cứu và hoàn thiện đồ án tốt nghiệ p. Em xin chân thành cảm ơn Khoa Công nghệ thông tin - Trường Đại học K ỹ thuật - Hậu cần Công an nhân dân đã tạo điề u kiện thuận lợi để em hoàn thành nhiệm vụ. Em cũng xin cảm ơn Độ i Tin Học - Phòng Viễn Thông Tin Học - Công an thành phố Hà Nội đã tạo điều ki ện cho phép em nghiên cứu đồ án tốt nghiệ p trong thờ i gian thực tậ p tốt nghiệ p tại đơn vị. Cuối cùng, em xin bày tỏ lòng cảm ơn đến gia đình, anh em, bạ n bè, các đồng chí, đồng đội đã độ ng viên và cổ vũ em trong suốt thờ i gian nghiên cứu. Xin trân tr ọng cảm ơn tất cả!
MỤC LỤ LỤC MỤC LỤC............................................... .................................................................................................... ........................................................................... ...................... i DANH MỤC CÁC TỪ VI VIẾT TẮT .............................................................................. iii DANH MỤC HÌNH ................................................. ...................................................................................................... ......................................................... iv DANH MỤC BẢ NG .... .......................................................................................................................................................................................................... v DANH MỤC CÁC KÝ HIỆU TOÁN HỌC ............................................................... ............................................................. .. vi MỞ ĐẦU ................................................. ...................................................................................................... .......................................................................... ..................... 1
Chương 1. TỔ NG QU QUAN AN VỀ CH CHỮ KÝ KÝ SỐ TẬP THỂ ............................................. 5 1.1. Chữ ký số .................................. .................................................. .................................. ................................... ...................... ..... 5 1.1.1. Định nghĩa về ch .................................................. ............................ ........... 5 chữ ký ký số ................................. 1.1.2. Thuật toán t ạo và xác nhận chữ ký ....................................... ..... 6 ký số .................................. 1.1.3. Phân loại chữ ký ................................................... .................................. ................. 8 ký số .................................. ấn công chữ ký 1.1.4. Phân loại t ấ ................................................... ..................... 9 ký số .................................. 1.1.5. Các d ạng bẻ gãy lược đồ chữ ký ......................................... .........10 ký số ................................ 1.2. Chữ ký số tậ p thể ................................. .................................................. .................................. .......................... ......... 11 1.2.1. Khái niệm ................................ ................................................. ................................... ................................ .............. 11 1.2.2. Các thành phần của lược đồ chữ ký ........................ 13 ký số t t ậ p thể ........................ ựa trên cấ u trúc xây d ự ựng g ......... 13 1.2.3. Phân loại chữ ký ký số t t ậ p thể d d ự n 1.3. K ết luận chương 1 ................................... .................................................... .................................. ....................... ...... 17 KÝ SỐ TẬP THỂ VỚI CÁC HỆ MẬT KHÁC NHAU ............. 18 Chương 2. CHỮ KÝ 2.1. Tình hình nghiên c ứu về chữ ký số tậ p thể. .................................... .................................... 18
ời r ạc...................20 2.2. Chữ ký số tậ p thể dựa trên bài toán Logarithm r ờ 2.3. Chữ ký số tậ p thể dựa trên hệ mật RSA ................................ ......................................... ......... 22 2.3.1. Chữ ký ................................................... .................................. ....................... ...... 22 ký số RSA RSA .................................. 2.3.2. Chữ ký .................................................. .......................... ......... 24 ký số t t ậ p thể RDSA RDSA ................................. i
2.3.3. Chữ ký t ậ p thể Itakura và Nakamura ...................................... 24 2.3.4. Lược đồ chữ ký t ậ p thể Harn và Kiesler . ................................. 26 2.4. Chữ ký số tậ p thể dựa trên hệ mật Elliptic ..................................... 27 2.4.1. T ổ ng quan về hệ mật trên đườ ng cong elliptic ........................ 27 2.4.2. Lược đồ chữ ký số t ậ p thể Popescu ......................................... 33 2.4.3. Lược đồ chữ ký số t ậ p thể Khali và Farah .............................. 36 2.5. K ết luận chương 2 ........................................................................... 37
Chương 3. NGHIÊN CỨ U THỰ C NGHIỆM LƯỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ TRÊN HỆ MẬT ID-BASED................................................................................................ 38 3.1. Chữ ký số tậ p thể dựa trên cặ p Song tuyến tính ............................. 38 3.2. Nghiên cứu thực nghiệm lược đồ chữ ký số t ậ p thể trên hệ mật IDBased ................................................................................................................ 39 3.2.1. H ệ mật ID-Based ..................................................................... 39 3.2.2. Chữ ký số t ậ p thể trên hệ mật ID-Based .................................. 44 3.2.3. Nghiên cứ u thự c nghiệm lược đồ ch ữ ký số t ậ p thể trên hệ mật ID-Based ....................................................................................................... 48 3.3. K ết luận chương 3 ........................................................................... 55 K ẾT LUẬ N ..................................................................................................................... 56 TÀI LIỆU THAM KHẢO............................................................................................. 57
ii
DANH MỤC CÁC TỪ VIẾT TẮT KÍ HIỆU NGHĨA TIẾNG ANH
NGHĨA TIẾNG VIỆT
DLP
Discrete Logarithm Problem
Bài toán logarit r ời r ạc
DSA
Digital Signature Algorithm
Thuật toán chữ ký số
DSS
Digital Signature Scheme
Lược đồ chữ ký số
EC
Elliptic Curve
Đườ ng cong Elliptic
ECC
Elliptic Curve Cryptography
Mật mã trên đườ ng cong Elliptic
ECDLP
Elliptic Curve Discrete Logarithm Problem
Bài toán logarit r ời r ạc trên đườ ng cong Elliptic
ECDSA
Elliptic Curve Digital Signature Algorithm
Thuật toán chữ ký số trên đườ ng cong Elliptic
H
Hash
Hàm băm
IFP
Integer Factorization Problem
Bài toán phân tích thừa số nguyên tố
IoT
Internet of Things Bản tin dữ liệu
M
Hạ tầng khóa công khai
PKI
Public Key Infrastructure
RSA
Rivest Shamir Adleman
SHA
Secure Hash Algorithm
Thuật toán băm bảo mật
IBE
Indetity based encryption
Mã hóa trên hệ mật định danh
PKG
Private key generator
Khóa bí mật iii
DANH MỤC HÌNH 1.1. Quy trình tạo chữ ký số ............................................................................................. 7 1.2. Quy trình xác thực chữ ký số.................................................................................... 8 1.3. Ký số tậ p thể không phân biệt trách nhiệm ........................................................... 16 1.4. Ký số tậ p thể có phân biệt trách nhiệm.................................................................. 17 2.1. Phép cộng trên đườ ng cong Elliptic ....................................................................... 30 2.2. Ví dụ về tính chất k ết hợp trên đườ ng cong Elliptic............................................. 33 3.1. Mã hóa vớ i một hệ thống IBE. ............................................................................... 40 3.2. Giải mã vớ i một hệ thống IBE ............................................................................... 41 3.3. Giao diện chính của phần mềm Netbeans IDE 8.1 .............................................. 48 3.4. Giao diện chương trình............................................................................................ 55
iv
DANH MỤC BẢNG 3.1. So sánh tính chất của IBE và các hệ thống khóa công khai truyền thống ..... 42 3.2. Bốn thuật toán trong lược đồ IBE .......................................................................... 42 3.3. Khả năng áp dụng các công nghệ mã hoá khác nhau trong việc đạt đượ c các mục tiêu an ninh thông tin...................................................................................................... 43
v
DANH MỤC CÁC KÝ HIỆU TOÁN HỌC KÍ HIỆU
Ý NGHĨA
( )
Các điểm của đường cong Elliptic trên trườ ng hữu hạn (gồm cả điểm ∞)
gcd(,) {0,1}∗
Trườ ng số hữu hạn gồm q phần tử vớ i q là số nguyên tố
Trườ ng số hữu hạn gồm
2 phần tử
Ướ c số chung lớ n nhất của a và b Khóa bí mật của đối tượ ng ký
Khóa công khai của đối tượ ng ký
Tậ p hợ p các số nguyên {0,1, …, q-1} Ký hiệu chuỗi bit có độ dài bất k ỳ
vi
MỞ ĐẦU 1. Lý do chọn đề tài Hiện nay hầu h ết các quốc gia, tổ ch ức trên thế gi ới đã và đang ứng d ụng mô hình Chính phủ điện t ử và Thương mại điện t ử để t ận dụng các ưu điểm của dịch vụ này và nâng cao năng lự c cạnh tranh, năng lực phục vụ công dân đồng thờ i bảo đảm tính an toàn, xác th ực của dịch vụ. Chính phủ Việt Nam đã triển khai chữ ký số ở một số lĩnh vực và đang ngày càng phát triể n. Tuy nhiên việc ứng d ụng chữ ký điện t ử còn giớ i h ạn ở các dịch v ụ công cộng như chứng thực số cho khai báo thuế, chứng thực số cho cổng thông tin...Trướ c sự phát triển, yêu cầu thực tiễn của xã hội và tình hình thế giớ i, chiến lượ c của Bộ Thông tin và truyền thông định hướng đến năm 2020 đã chỉ ra cần đẩy mạnh phát triển dịch vụ Internet, thương mại điệ n t ử, và dịch v ụ ph ục v ụ Chính phủ điện t ử. M ật mã khóa công khai là công nghệ cho phép người dùng trao đổ i thông tin bảo mật qua một mạng công cộng không bảo mật, và xác nhận danh tính của ngườ i dùng qua các chữ ký số. Ngày nay, các giao dịch điện tử ngày càng tr ở nên phổ biến ở nhiều lĩnh vực như: giao dịch ngân hàng, mua bán tr ực tuyến,… Tuy nhiên nguy cơ mấ t an toàn và gây hậu quả nghiêm tr ọng của các dịch vụ này là r ất lớ n. Chữ ký số nhanh chóng có mặt khắ p mọi nơi trong nhiề u khía cạnh của đờ i sống “điện tử”. Chúng đượ c sử dụng để đảm bảo an toàn cho các dịch vụ cần: tính bảo mật, tính xác thực, tính toàn vẹn dữ liệu và tính không chối bỏ trách nhiệm c ủa một thực thể nào đó với thông tin đượ c truyền đi. Chữ ký số không chỉ đượ c s ử d ụng b ở i con ngườ i, hay tổ chức mà còn đượ c tích hợ p vào hàng tỉ các thiết bị dạng Internet of Things (IoT) khi chúng c ần liên lạc và xác thực thông tin trao đổ i giữa các thực thể. Không có chữ ký số, việc giả mạo các thông tin định tuyến, thông tin về quyền truy cập… cho các hệ thống điện tử tr ở nên dễ dàng hơn bao giờ hết đối vớ i các hacker trong thời đại bùng nổ IoT. Do nhu cầu của con ngườ i và các dịch vụ ngày càng phát triển, việc trao đổi thông tin không chỉ là giữa những cá nhân vớ i nhau, mà còn là gi ữa những nhóm ngườ i hay tổ chức khác nhau. Các ứng dụng thực ti ễn v ề ch ữ ký số cũng như các phương pháp bả o mật, nâng cao hiệu năng chưa bao giờ mất tính thờ i s ự. Xu ất phát từ th ực t ế đó, Học viên đã chọn đề tài “Nghiên cứu lược đồ chữ ký số tậ p thể trên hệ mật ID-Based”
1
vớ i mong muốn tìm hiểu sâu và nắm vững v ề chữ ký số nói chung và chữ ký số tậ p thể nói riêng trong bảo mật an toàn thông tin.
2. Các công trình nghiên cứ u có liên quan: Difie và Hellman, năm 1976 trong bài báo “New Directions in Cryptography” [3] đã đề cập đến khái niệm chữ ký số tuy nhiên hai tác giả này chưa đưa ra được lược đồ ký s ố th ực t ế nào. Phải đến năm 1978, trong công bố “A Method for Obtainning Digital Signatures and Public -Key Cryptosystems” [4] R.Rivest, A Shamir, và L.Adleman m ới đưa ra lược đồ ký số dựa trên bài toán khó phân tích ra thừa số đượ c gọi là RSA và lược đồ này vẫn đang đượ c sử dụng cho đến ngày nay. Sau đó đã có nhiề u công trình nghiên cứu về chữ ký số, tuy nhiên phải đến năm 1988, S.Goldwasser, S.Micali và R.Rivest trong [5] mới định nghĩa chính xác chữ ký số và các yêu cầu cần phải có của chữ ký số. Định nghĩa về chữ ký số có thể đượ c tìm thấy trong [7] và [6]. Chữ ký số đơn đã phần nào giải quyết đượ c yêu cầu của thực tiễn. Tuy nhiên trong thực t ế có nhiều tài liệu c ần phải có nhiều ngườ i ký. Thí dụ như các bản hợp đồng mua bán, cho thuê, đơn thư tậ p thể… thì chữ ký số đơn không thể giải quyết đượ c. Từ đó giao thức chữ ký số cho phép nhiều ngườ i cùng ký vào một tài liệu gọi là chữ ký số tậ p thể (the digital multisignature) đã đượ c nghiên cứu, phát triển và ứng dụng từ nhiều năm nay đã giải quyết đượ c r ất nhiều yêu cầu của hoạt động giao dịch trên mạng mà chữ ký số đơn không đáp ứng. Chữ ký số tại Việt Nam:
Ở Việt Nam, chữ ký s ố đượ c công nhận có tính pháp lý như chữ ký s ố tay truyền thống hoặc con dấu từ năm 2005. Các chữ ký số và chứng thư số đã đượ c đưa vào các văn bản pháp lý như các luậ t, nghị định, thông tư. Hiện nay, chữ ký số đã đượ c ứng dụng ở nhiều công ty như Viettel, FPT, BKAV… Tuy nhiên, hầ u hết các mô hình chữ ký số đơn đượ c sử dụng, và các mô hình chữ ký số khác vẫn còn hạn chế ngoại tr ừ BKAV có khả năng cung cấ p mô hình ký nháy. Về các công trình nghiên cứu đa ̃ co ́ r ất nhiều c a ́c b a ̀i ba ́o, đồ a ́n, đề t a ̀i, đươ c̣ xây dư ng, ̣ pha ́t triê ̉n va ̀ viết v ề ch ư ̃ k y ́ s ố đơn, chư ̃ k y ́ s ố mu ̀, ch ư ̃ k y ́ s ố tâ p̣ thê ̉,… Trên thế giơ c̣ đồ ch ư ̃ k y ́ s ố t â p̣ thê ̉ đa ̃ đươ c̣ xây dư ng ̣ v a ̀ ph a ́t triê ̉n v ơ ́ i, lươ ́ i r ất nhiều c a ́c công tr ̀nh, ba ̀i ba ́o nô ̉i tiếng. Tại Việt Nam, chữ ký số đượ c tậ p trung nghiên cứu 2
ở trong nướ c bở i một số chuyên gia đầu ngành như GS. TS Nguyễ n Bình (Học viện Công nghệ bưu chính viễn thông), PGS. TS Nguyễn Hiếu Minh (Học viện K ỹ thuật Mật mã), TS Lưu Hồng Dũng (Họ c viện K ỹ thuật quân sự). Ngoài ra, chữ ký s ố còn thu hút một số nghiên cứu thông qua các luận văn thạc sĩ về chữ ký số và chữ ký số tậ p thể. 3. Mục đích nghiên cứ u Mục tiêu nghiên cứu của Đồ án bao gồm nghiên cứu các khái niệm và lược đồ chữ ký số, chữ ký số tậ p thể, các ứng dụng của ch ữ ký s ố trong bảo mật thông tin. Trên cơ sở nghiên cứu các khái niệm cơ bản về chữ ký số tậ p thể, Học viên tậ p trung nghiên cứu sâu và thực nghiệm lược đồ ch ữ ký số t ậ p th ể trên hệ mật ID-Based.
4. Nhiệm vụ nghiên cứ u Nhiệm vụ nghiên cứu của đồ án bao gồm: - Tìm hiểu các hệ mật khóa công khai và các lược đồ chữ ký số. - Tìm hiểu khái niệm chữ ký số tậ p thể và các lược đồ chữ ký số tậ p thể. - Nghiên cứu thực nghiệm lược đồ chữ ký số tậ p thể trên hệ mật ID-Based.
5. Đối tượ ng nghiên cứ u - Các hệ mật khóa công khai và các lược đồ chữ ký số. - Chữ ký số tậ p thể và các lược đồ chữ ký số tậ p thể. - Chữ ký số tậ p thể trên hệ mật ID-Based.
6. Phương pháp nghiên cứ u Đồ án nghiên cứu dựa trên các phương pháp: - Phương pháp nghiên cứu chuyên gia: tham khảo ý kiến của giáo viên hướ ng dẫn và các thầy cô giáo trong khoa công nghệ thông tin. - Phương pháp nghiên cứu tài liệu: tham khảo một số tài liệu chuyên ngành, sách, các bài báo khoa học công nghệ thông tin có liên quan. - Phương pháp phân tích, tổng hợ p.
3
- Phương pháp khai thác phầ n mềm máy tính và thực nghiệm chương trình.
7. Phạm vi nghiên cứ u - Nghiên cứu chữ ký số tậ p thể, khái niệm, mô hình an toàn chữ ký tậ p thể. - Nghiên cứ hệ mật định danh ID-Based.
8. Bố cục của Đồ án tốt nghiệp Ngoài phần Mở đầu, phần K ết luận, phần Tài liệu tham khảo. Nội dung chính của Đồ án tốt nghiệp đượ c k ết cấu thành 3 Chương:
Chương 1: Tổng quan về chữ ký số tậ p thể Trình bày khái quát v ề chữ ký số, chữ ký số tậ p thể bao gồm định nghĩa, phân loại,…
Chương 2: Chữ ký số tậ p thể vớ i các hệ mật khác nhau Nêu nên tình hình nghiên cứu về chữ ký số tậ p thể và chữ ký số tậ p thể trên các hệ mật RSA, Elliptic
Chương 3: Nghiên cứu thực nghiệm chữ ký số tậ p thể trên hệ mật ID Based Giớ i thiệu về hệ mật ID-Based, chữ ký số trên hệ mật ID-Based và nghiên cứu thực nghiệm chữ ký số tậ p thể trên hệ mật ID-Based.
4
Chương 1
TỔNG QUAN VỀ CHỮ KÝ SỐ TẬP THỂ 1.1.
Chữ ký số
Difie và Hellman, năm 1976 trong bài báo “New Directions in Cryptography” [3] đã đề cập đến khái niệm chữ ký số tuy nhiên hai tác giả này chưa đưa ra được lược đồ ký s ố th ực t ế nào. Phải đến năm 1978, trong công bố “A Method for Obtainning Digital Sig natures and Public-Key Cryptosystems” [4] R.Rivest, A Shamir, và L.Adleman m ới đưa ra lược đồ ký số dựa trên bài toán khó phân tích ra thừa số đượ c gọi là RSA và lược đồ này vẫn đang đượ c sử dụng cho đến ngày nay. Sau đó đã có nhiề u công trình nghiên cứu về chữ ký số, tuy nhiên phải đến năm 1988, S.Goldwasser, S.Micali và R.Rivest mới định nghĩa chính xác chữ ký số và các yêu cầu cần phải có của chữ ký số. Định nghĩa về chữ ký số có thể đượ c tìm thấy trong [7] và [6]. 1.1.1.
Định nghĩa về chữ ký số
Định nghĩa 1.1: Chữ ký số (Digital Signature): là d ữ liệu đượ c t ạo ra bở i một lược đồ chữ ký số, mà liên k ết thông điệ p dữ liệu (bản tin, tài liệu, báo cáo,…) vớ i thực thể (con ngườ i, thiết bị k ỹ thuật,…) tạo ra nó để đáp ứng yêu cầu xác thực về nguồn gốc và tính toàn vẹn của thông điệ p dữ liệu. Định nghĩa 1.2: Một lược đồ chữ ký số (Digital Signature Scheme) là một bộ các thuật toán (gen, sig, ver). Thuật toán gen tạo ra một khóa bí mật x s và một khóa công khai y s tương ứng của ngườ i ký S với đầu vào là các tham số hệ thống. Thuật toán sig lấy các tham số đầu vào là x s và thông điệ p m và sinh ra một chữ ký σ của m. Với đầu vào là thông điệ p m, chữ ký số σ và khóa công khai y s, thuật toán ver sẽ cho ra k ết quả true hoặc false. Các biểu thức sau đây phải đượ c thỏa mãn cho thuật toán sig và ver. Sig ( x s , m)
(1.1)
True if Pr( sig (m, xs )) 0 Ver (m, , y s ) False, otherwise
5
(1.2)
Hơn nữa, một lược đồ chữ ký số phải không thể giả mạo được. Có nghĩa là không thể tính đượ c chữ ký số của một thông điệ p nếu chỉ biết khóa công khai mà không biết khóa bí mật tương ứng. Định nghĩa 1.3: Hàm một chiều (One-way functions) là hàm đượ c tính toán chiều thuận khá dễ dàng, nhưng để tính toán ngượ c lại thì r ất khó. Ví dụ, cho giá tr ị của x thì việc tính hàm y f ( x) r ất dễ dàng, nhưng nếu biết giá tr ị của hàm y f ( x) thì r ất khó để tìm ra giá tr ị của x bởi hàm ngượ c f 1 ( y) .
Hàm thuận: f : X Y x X y Y | y
(1.3)
f ( x)
Hàm ngượ c: 1
f : Y X 1
y Y x X | x f ( y)
(1.4)
Định nghĩa 1.4: Hàm băm (Hash function) là mộ t hàm xử lý chuỗi, vớ i bất k ỳ độ dài chuỗi bít nào, cho đầu ra là một chuỗi bít có chiều dài cố định n và khác nhau vớ i mọi đầu vào khác nhau. h : X *
n
Y x X y Y | y
(1.5)
h( x )
Hàm băm cần thỏa mãn các tính chất sau:
Là hàm băm một chiều (One-way Hash Functions): nghĩa là cho mộ t chuỗi giá tr ị đầu vào, việc tính toán giá tr ị băm là rất dễ dàng, nhưng rất khó để khôi phục chuỗi giá tr ị đầu vào nếu biết giá tr ị băm của nó. Là hàm không va chạm mạnh: nghĩa là rất khó để tìm đượ c x1 và x2 thỏa mãn { x1 x 2 h( x1) h( x 2)} . 1.1.2.
Thuật toán tạo và xác nhận chữ ký số - Thuật toán tạo chữ ký số 6
Là phương pháp tạo chữ ký số từ thông điệ p dữ liệu và khóa bí mật của thực th ể ho ặc đối tượ ng ký. Hình 1.1 chỉ ra sơ đồ kh ối c ủa quy trình tạo ch ữ ký số. Khối hàm băm đượ c s ử d ụng để t ạo ra bản tin đại di ện có chiều dài cố định từ thông điệp đầu vào. Chữ ký số đượ c sinh ra bở i vi ệc mã hóa bản tin đại di ện sử d ụng khóa riêng của ngườ i g ửi. Sau đó, cả ha i thông điệp đầu vào và chữ ký số đượ c gửi cho ngườ i nhận. Thông điệp Thông điệp
Hàm một chiều
Thông tin đại diện thông điệp
Hàm ký số
Chữ ký số
Khóa riêng của người gửi
Hình 1.1. Quy trình tạo chữ ký số Giải thích các khối chức năng trên sơ đồ : 1. Thông điệ p (Message): Nguồn thông điệp đầu vào. 2. Hàm một chiều (Hash function): Hàm băm 1 chiều. 3. Thông tin đại diện thông điệp (Message Digest): Thông tin đạ i diện thông điệp được tính qua hàm băm 1 chiề u. 4. Hàm ký số (Signature Function): Khối chức năng tạo chữ ký số. 5. Khóa riêng của ngườ i gửi (Sender’s Private Key): Khóa riêng bí mật của ngườ i gửi. 6. Dữ liệu sau khi ký bao gồm: thông điệ p và chữ ký. - Thuật toán xác nhận chữ ký số
Là phương pháp kiểm tra tính hợ p lệ của chữ ký số tương ứng vớ i thông điệ p dữ liệu, dựa trên khóa công khai c ủa thực thể hoặc đối tượng ký để khẳng định tính xác thực về nguồn gốc và tính toàn vẹn của một thông điệ p dữ liệu cần kiểm tra. Thông điệ p từ ngườ i gửi đượ c giải mã và bất k ỳ ai cũng có thể đọc đượ c nhờ sử dụng khóa công khai của ngườ i gửi. Nhưng để đảm bảo tính xác 7
thực của ngườ i gửi thông điệ p, ngườ i nh ận sau khi nhận đượ c ch ữ ký số phải sử dụng một hàm ngượ c với hàm ký, mà dùng để sinh ra chữ ký số, để khôi phục lại bản tin đại diện ở phía ngườ i gửi. Thông điệ p nhận đượ c ở phía ngườ i nhận đượ c đưa vào hàm băm giống như bên ngườ i gửi để tạo ra bản tin đại diện gốc ban đầu. B ản tin đại di ện này đượ c so sánh vớ i b ản tin đại di ện v ừa đượ c khôi phục từ chữ ký số. Nếu hai bản tin đại diện này giống nhau thì có thể k ết luận r ằng thông điệ p nhận được là đúng của ngườ i gửi và không hề bị thay đổi trong quá trình truyền. Sơ đồ khối quy trình kiểm tra chữ ký số đượ c chỉ ra ở Hình 1.2. Hàm một chiều
Thông điệp
Thông tin đại diện thông điệp
So sánh
Khối chức năng kiểm tra ký số
Chữ ký số
Đúng hoặc sai
Thông tin đại diện thông điệp
Khóa công khai
của người gửi
Hình 1.2. Quy trình xác thực chữ ký số Giải thích các khối chức năng trên sơ đồ :
1. Thông điệ p: Nguồn thông điệp đầu vào. 2. Hàm một chiều (Hash Function): Khối hàm băm.
3. Thông tin đại diện thông điệp (Message Digest), là thông tin đượ c tính từ thông điệ p gốc qua hàm băm. Thông tin này cũng được tính ngượ c t ừ ch ữ ký số và khóa công khai của ngườ i gửi. 4. Khối chức năng kiểm tra chữ ký số. 5. Khóa riêng của ngườ i gửi (Sender’s Private Key). 6. Chữ ký số (Digital Signature). 1.1.3.
Phân loại chữ ký số 8
- Chữ ký tr ực tiế p và chữ ký có phân xử - Chữ ký số đơn và chữ ký số tậ p thể Chữ ký số đơn là chữ ký s ố tạo ra từ loại giao thức ký số mà chỉ cho phép một ngườ i ký vào một tài liệu. Chữ ký s ố tậ p thể là chữ ký số tạo ra từ loại giao thức chữ ký số cho phép nhiều ngườ i chia sẻ các giá tr ị mật và khóa công khai c ủa mình, phân cấp ngườ i ký hoặc giao thức ký số song song…Các hệ thống điện tử, tài chính, chính phủ cần sự xác thực của nhiều thành phần trướ c khi cho giao dịch tiến hành ứng dụng các dạng chữ ký số tậ p thể nhằm đảm b ảo an toàn cho ngườ i sử dụng. Sự chấ p thuận ngày càng tăng của các loại giao dịch tiền điện tử như Bitcoin, Ethereum và sự đầu tư cho công nghệ BlockChain cho các lĩnh vực ở mức liên chính phủ các nướ c d ẫn đến các nghiên cứu ch ữ ký hướ ng t ớ i nhóm càng mạnh mẽ như chúng ta thấy những năm gần đây.
Phân loại tấn công chữ ký số Năm 1998, Shafi Goldwasser trong [5] mô tả các loại hình tấn công vào chữ ký số. Ký hiệu A là người ký ngườ i bị tấn công, có hai dạng tấn công chữ ký số sau: 1.1.4.
1. Tấn công vào khóa (Key-only attacks): ngườ i tấn công chỉ biết khóa công khai của A. 2. Tấn công vào văn bản (Message Attacks): ngườ i tấn công có thể phân tích một số chữ ký tương ứng vớ i chữ ký số đã biết. Phụ thuộc vào cách ngườ i tấn công quan sát hoặc lựa chọn văn bản, tấn công vào văn bản đượ c chia làm 04 loại tấn công như sau: a. Tấn công văn bản đã biết (Known Message Attack): là lo ại t ấn công mà ngườ i tấn công có thể truy cập đến chữ ký của các văn bản m1, m2, …, mk nhưng không đượ c tự ý lựa chọn. b. Tấn công văn bản đượ c lự a chọn tổng quát (Generic Chosen Message Attack): là loại tấn công mà ngườ i tấn công có thể truy cậ p đượ c các chữ ký h ợ p lệ của A cho các văn bản đượ c lựa ch ọn m1, m2, …, mk , nhưng ngườ i tấn công không biết khóa công khai của A. Kiểu tấn công này đượ c gọi là kiểu tấn công không thích ứng: toàn bộ các 9
bản tin đượ c lập trướ c khi biết đượ c chữ ký. Tấn công dạng này đượ c gọi là tổng quát vì khóa công khai của A không đượ c biết, và tấn công này có thể thực hiện vớ i bất k ỳ ai. c. Tấn công văn bản đượ c lự a chọn trự c tiếp (Directed Chosen Message Attack): Dạng tấn công này là tương tự như tấn công lựa chọn tổng quát, tuy nhiên khác ở chỗ các văn bản đượ c tạo ra sau khi biết đượ c khóa công khai của A nhưng lại đượ c tạo ra trướ c khi quan sát bất k ỳ chữ ký nào. Đây cũng là tấ n công không thích ứng, và chỉ tấn công đượ c với người ký A nào đó mà không phải là tất cả. d. Tấn công văn bản đượ c lự a chọn thích nghi (Adaptive Chosen Message Attack): là dạng tấn công mà ngườ i tấn công có thể sử dụng A như là nguồn Oracle. Văn bản đượ c chọn không chỉ sau khi đượ c biết khóa công cai của A mà còn cả sau khi quan sát đượ c các chữ ký đượ c tạo ra trước đó. Bốn dạng tấn công văn bản trên đượ c liệt kê theo mức độ tấn công tăng dần. Do đó, bất k ỳ lược đồ chữ ký nào khi đưa ra phải chịu đượ c tấn công mạnh nhất là tấn công văn bản lựa chọn thích nghi.
Các dạng bẻ gãy lược đồ chữ ký số Các dạng phá vỡ lược đồ chữ ký số được trình bày đầy đủ bở i Shafi Goldwasser [5] và một s ố tác giả. N ếu ngườ i t ấn công bẻ g ẫy được lược đồ ch ữ ký số của A nghĩa là tấ n công của họ có thể đượ c thực hiện vớ i xác xuất lớ n. Có một số dạng phá vỡ lược đồ chữ ký số như sau: 1.1.5.
1. Phá vỡ hoàn toàn (A total break): Khi ngườ i t ấn công viết đượ c thông tin bí mật của A. 2. Giả mạo tổng quát (Universal Forgery): Ngườ i tấn công có thể tìm đượ c thuật toán ký có chức năng tương đương thuật toán ký của A. 3. Giả mạo có lự a chọn (Selective Forgery): Ngườ i tấn công có thể tìm đượ c chữ ký số cho một bản tin cụ thể đượ c lựa chọn có ưu tiên theo cách củ a ngườ i tấn công.
10
4. Giả mạo có tồn tại (Existential Forgery): là gi ả mạo ch ữ ký của ít nhất một văn bản. Ngườ i tấn công có thể không kiểm soát toàn bộ quá trình sinh ra chữ ký, nhưng có thể tạo ra chữ ký một cách ngẫu nhiên, không chủ định đượ c. Các dạng t ấn công và phá vỡ lược đồ chữ ký số đượ c trình bày ở trên có thể đượ c áp dụng cho tất cả các mô hình chữ ký số. Tuy nhiên, có những loại tấn công và phá vỡ lược đồ chữ ký số theo đặc thù của từng mô hình ký. Cho đế n nay, từ mô hình chữ ký số cơ sở , nhiều mô hình chữ ký s ố khác đã được đề xuất như: chữ ký số nhóm, chữ ký s ố tậ p thể, chữ ký số ngưỡ ng, chữ ký số vòng, chữ ký số có cấu trúc… 1.2.
Chữ ký số tập thể
Khái niệm Khái niệm chữ ký số tậ p thể dựa trên thuật toán RSA được đưa ra đầ u tiên bởi Nakamura và Itakura vào năm 1983. Lược đồ chữ ký số tậ p thể cho phép một tậ p thể người ký tham gia ký văn bản và ngườ i xác thực có thể xác thực đượ c r ằng văn bản đã đượ c từng thành viên trong thậ p thể tham gia ký. Cách đơn giả n nhất để tạo chữ ký số tậ p thể là ghép tất cả các chữ ký số đơn của từng thành viên. Tuy nhiên, cách này sẽ có độ dài chữ ký của t ậ p th ể và thờ i gian tính toán tăng tỷ lệ vớ i số lượng ngườ i ký. 1.2.1.
Năm 1994, Harn đã đề xuất mô hình lược đồ ký số ngưỡ ng dựa trên bài toán logarithm r ờ i r ạc mà yêu cầu một s ố lượng ngườ i ký tối thiểu (ngưỡ ng) thì chữ ký mớ i h ợ p l ệ. Sau đó Harn tiế p tục đề xu ất một mô hình chữ ký số t ậ p th ể có phân biệt trách nhiệm. Tuy nhiên, lược đồ này có nhược điểm v ề v ấn đề b ảo mật ở chỗ một thành viên trong tậ p thể ngườ i ký có thể tự mình ký mà không c ần có sự tham gia của cả tậ p thể ngườ i ký. Li và một số tác giả đã phân tích lược đồ của Harn và tìm ra nhược điể m này và gọi tấn công này là khóa-lừa-đảo. Năm 2002, Chih-Yin Lin et al. đã đề xuất ba lược đồ chữ ký số tậ p thể tương ứng vớ i cấu trúc ký nối tiế p, song song và k ết hợp. Các lược đồ này có chiều dài chữ ký số cố định và quá trình xác nhận chữ ký là hiệu quả. Một năm sau, 2003, một lược đồ chữ ký số tậ p thể có phân biệt trách nhiệm được đề xuất bởi Popescu, trong đó mỗ i thành viên sẽ chịu trách nhiệm lên phần văn bản đượ c ký và phần văn bản ký có thể đượ c xác nhận mà không cần tiết lộ toàn bộ văn bản. 11
Năm 2008, các tác giả đã đưa ra lược đồ chữ ký số tậ p thể dựa trên bài toán logarithm r ờ i r ạc và đượ c chứng minh là an toàn d ựa trên mô hình Random Oracle. Năm 2010, Một nghiên cứu khác cũng đưa ra lược đồ ch ữ ký số t ậ p th ể dựa trên bài toán logarithm r ờ i r ạc tương thích hạ tầng khóa công khai PKI. Cũng trong 2010, L. H Dũng và N.H Minh đưa ra lược đồ ký số tậ p thể trên EC. Năm 2011, F. Li and Q. Xue đã đề xuất lược đồ chữ ký số tậ p thể ủy quyền dựa trên ECC. Năm 2014, Tiwari và cộng sự đã đưa ra một lược đồ chữ ký số tậ p thể ủy quyền d ựa trên EC thu ộc dạng chứng minh đượ c an toàn (provable secure). Năm 2015, Sudha Devi và cộng sự đề xuất một giao thức ký số tậ p thể bảo mật và hiệu quả dựa trên ECC được đề xuất trong vớ i mục đích để giảm thờ i gian tính toán và có khả năng chống đượ c một số tấn công tấn công từ bên trong lên chữ ký s ố tậ p th ể mà các nghiên cứu trước có nhược điểm, tuy nhiên đây là lược đồ không có phân biệt trách nhiệm. Có thể thấy các lược đồ chữ ký số tậ p thể dựa trên hệ mật đườ ng cong Elliptic và các hệ mật khác gần đây đã thu hút nhiề u nhà nghiên cứu. Chữ ký số tậ p th ể t ừ khi ra đời vào năm 1983 và tiế p t ục phát triển cho đến nay. R ất nhiều lược đồ ch ữ ký số tậ p thể được đề xuất dựa trên những những hệ mật khác nhau như hệ mật RSA, hệ mật đường cong elliptic… Chữ ký số tậ p thể đã đượ c ứng dụng r ộng rãi trong th ực ti ễn như thương mại điện t ử và chính phủ điện t ử. Các dạng chữ ký tậ p thể đượ c sử dụng r ất nhiều trong các ứng dụng tài chính như Bitcoin, khi mà để cho phép một giao dịch tài chính thực hiện cần có nhiều khóa riêng. Trong phần tiế p theo, học viên nghiên cứu các khái niệm về chữ ký s ố tậ p thể, phân loại chữ ký số tậ p thể. Chữ ký số tậ p thể được định nghĩa bở i Boldyreva và Zuhua. Chữ ký số tậ p thể có thể được tóm lược như sau: Chữ ký số t ậ p thể là chữ ký t ạo ra t ừ một lượ c đồ chữ ký số , cho phép một nhóm ngườ i hợ p tác vớ i nhau cùng ký vào một tài liệu và việc ki ể m tra tính h ợ p l ệ có thể đượ c thự c hiện như chữ ký số đơn bằ ng khóa công khai của nhóm.
Lược đồ chữ ký s ố tậ p thể cho phép một tậ p thể người ký tham gia ký văn bản và ngườ i xác thực có thể xác thực đượ c r ằng văn bản là do từng thành viên trong tậ p th ể đã tham gia ký. Cách thứ c thức đơn giản nh ất để t ạo ch ữ ký số t ậ p 12
thể đơn giản là ghép tất cả các chữ ký thành phần của từng thành viên. Tuy nhiên, như vậy chữ ký của tậ p thể sẽ có độ dài tỉ lệ vớ i số lượng ngườ i ký. 1.2.2.
Các thành phần của lược đồ chữ ký số tập thể
- Giao thứ c sinh khóa (xác suất): giao thức này thường đượ c thực hiện một lần ban đầu cho tất cả các thành viên trong nhóm. Mỗi thành viên đượ c nhận đầu vào thông tin về nhóm U , đó là danh sách và đị nh danh của các thành viên trong nhóm. Giao thức sinh khóa sẽ sinh cho mỗi thành viên cặ p khóa bí mật và khóa công khai tương ứ ng (SK i, PK i).
Ngườ i tấn công có thể xuất hiện trong quá trình sinh khóa và có thể đưa ra đầu vào khác U′ cho tất cả các thành viên. - Giao thứ c ký tập thể (xác suất): các thành viên trong tậ p thể tham gia ký, k ết quả σ có thể được đưa ra bở i một trong các thành viên của nhóm. - Thuật toán xác thự c chữ ký số tập thể: thuật toán này có thể thực hiện bở i một ngườ i khác (không nằm trong nhóm U ), đầu vào là thông tin về U , thông điệ p m và chữ ký số tậ p thể σ . Thuật toán cho ra đầu ra là “ĐÚNG” hoặc “SAI”. 1.2.3.
Phân loại chữ ký số tập thể dự a trên cấu trúc xây dự ng 1.2.3.1.
Phân loại lược đồ chữ ký số tập thể
* Chữ ký số tậ p thể tuần tự Trong cuộc sống, thườ ng có r ất nhiều quyết định đượ c thực hiện bở i nhiều bộ phận (cơ quan) khác nhau và chữ ký số tậ p thể được đưa vào để thực hiện việc xác thực sự đồng thuận của các bộ phận trong hệ thống. Ví dụ sau đây sẽ làm minh họa cho tr ườ ng hợ p chữ ký số tậ p thể tu ần tự: Một công ty muốn khai tr ương một chiến dịch marketing lớ n. Bộ phận marketing cần phải có đượ c sự chấ p thuận của cả hai bộ phận: Bộ phận quản lý tài chính (Financial Controller department) và bộ phận quan hệ khách hàng (Public Relations department). Tr ườ ng hợ p này gọi là “ký trên chữ ký - Signature on signature”. Nghĩa là ngườ i k ý đầu tiên ký lên dữ liệu (dữ liệu ra quyết định mở chiến dịch marketing), và sau đó ngườ i thứ hai ký vào nội dung của dữ liệu cộng vớ i chữ ký của người đầu 13
tiên, ngườ i th ứ ba cũng thực hi ện tương tự … Dữ li ệu đượ c ký hoàn tất cho đến khi chữ ký của ngườ i cuối cùng được đặt vào dữ liệu. Phụ thuộc vào chính sách phân chia chức năng giữa các bộ phận của công ty, hai tình hu ống sau có thể xảy ra: Tr ườ ng hợ p chữ ký số t ậ p thể tuần t ự độc l ậ p (Independent Sequential Multiple Signature)
Trong tr ườ ng h ợ p này sự ch ấ p thuận của hai bộ phận qu ản lý tài chính và quan hệ khách hàng có hay không đều không quan tr ọng. Dữ liệu có thể đượ c ký bởi ngườ i thứ nhất r ồi qua ngườ i thứ hai. Thứ tự ký không quan tr ọng, ngườ i thứ hai ký mà không cần ph ải ki ểm tra tính hợ p l ệ của ngườ i th ứ nh ất. Lược đồ chữ ký số tậ p thể trong trườ ng hợ p này là thực hiện việc kiểm tra tính hợ p lệ của mỗi chữ ký một cách nhất quán.
Trườ ng hợ p chữ ký số t ậ p thể tuần t ự phụ thuộc (Dependent Sequential Multiple Signature)
Trong trườ ng hợ p này sự phân chia chức năng quyền h ạn của các bộ phận trong công ty đòi hỏ i thứ tự ký và kiểm tra bắt buộc. Trước khi khai trương chiế n dịch marketing bộ ph ận quan hệ khách hàng đồng ý vớ i d ự án trước sau đó đến bộ phận quản lý tài chính tiế p tục xem xét và đồng ý thông qua. Do đó thứ tự ký r ất quan tr ọng ngườ i ký sau kiểm tra chữ ký của người ký trước đó rồi sau đó ký vào nội dung tài liệu cộng vớ i các chữ ký trước đó. Chữ ký của ngườ i cuối cùng thỏa mãn tính toàn vẹn, xác thực và chống chối từ. * Chữ ký số tậ p thể song song Trong nhiều trườ ng hợ p một sự đồng thuận phải được ký đồng thờ i bở i nhiều thành viên. Một bản hợp đồng đượ c ký bở i 2 hoặc 3 ngườ i là một thí dụ minh họa rõ ràng cho trườ ng hợ p này. Một thỏa thuận quốc tế đượ c ký bở i nhiều thành viên là một ví dụ khác của chữ ký số t ậ p thể song song: Tất c ả các chữ ký đều “bình đẳng”, và không phân biệ t ứng xử. Trong lược đồ chữ ký số tậ p thể song song, chữ ký của mỗi người đượ c chứa trên dữ liệu ký, và không ký lên các chữ ký của ngườ i khác.
Trong lượ c đồ chữ ký s ố tậ p thể song song, có một người đóng vai trò là ngườ i quản lý. Ngườ i quản lý là ngườ i có trách nhiệm: 14
- Tiế p nh ận chữ ký c ủa mọi ngườ i ký trong nhóm và kiểm tra tính hợ p lệ của các chữ ký này. - Tính khoá công khai và chữ ký số tậ p thể của cả nhóm.
Chú ý: Để đảm b ảo tính an toàn của lược đồ ch ữ ký số t ậ p th ể song song thì bản thân người ngườ i quản lý trong nhóm cũng phải đượ c kiểm tra chữ ký. Việc kiểm tra này đượ c thực hiện bở i những ngườ i trong nhóm. Những thành viên trong nhóm có thể kiểm tra chữ ký của ngườ i quản lý. Tùy theo từng lượ c đồ, từng trườ ng hợ p cụ thể có các giải pháp xác thực khác nhau giữa ngườ i quản lý và các thành viên khác. Phân loại chữ ký số tập thể theo phân quyền những ngườ i ký lên dữ liệu. Chữ ký số tậ p thể có thể đượ c phân thành hai dạng là chữ ký số tậ p thể có phân biệt trách nhiệm và không phân biệt trách nhiệm ngườ i ký. Chữ ký số tậ p thể có phân biệt trách nhiệm người ký được đưa ra đầu tiên bởi Harn. Trong lượ c đồ này, mỗi thành viên có trách nhi ệm vớ i từng phần nhất định của văn bản. Trong nghiên cứu này, Harn cũng đưa ra các thuộ c tính của chữ ký số tậ p thể như sau: 1.2.3.2.
- Chữ ký s ố t ậ p thể có thể đượ c xác thực ch ỉ b ằng khóa công khai của cả tậ p thể mà không cần đến khóa công khai của từng thành viên. - Không thể tạo đượ c chữ ký số của c ả t ậ p thể nếu không có sự tham gia của toàn bộ các thành viên. * Chữ ký số tậ p thể không phân biệt trách nhiệm Một lược đồ ch ữ ký số t ậ p th ể được đề xu ất b ởi Harn, trong đó các thành viên ký có vai trò gi ống nhau và không phân biệt trách nhiệm. Tất cả các thành viên cùng ký vào toàn bộ văn bản m và tất cả các thành viên cùng chịu trách nhiệm vớ i toàn bộ nội dung của văn bản. Do vậy, lược đồ ch ữ ký số tậ p thể này là mô hình ký tậ p thể không phân biệt trách nhiệm.
15
Văn bản được ký Ký số
Ký số
Ký số
Ký số
Ký số
Hình 1.3. Ký số tậ p thể không phân biệt trách nhiệm * Chữ ký số tậ p thể có phân biệt trách nhiệm Trong thực tế, những ngườ i ký có vai trò và v ị trí khác nhau s ẽ ch ịu trách nhiệm vớ i các phần khác nhau của văn bản. Mỗi ngườ i ký sẽ chịu trách nhiệm vớ i phần văn bản liên quan đế n chức năng và trách nhiệ m của mình. Lược đồ chữ ký số đảm bảo thuộc tính này là lược đồ chữ ký số tậ p thể có phân biệt trách nhiệm của người ký. Năm 1999, Harn đã đề xuất lược đồ chữ ký số tậ p thể có phân biệt trách nhiệm của ngườ i ký mà có những thuộc tính như sau. - Mỗi thành viên có trách nhiệm khác nhau trong văn bả n cần ký. - Một phần của văn bản có thể xác thực mà không nhất thiết phải biết toàn bộ văn bản.
16
Văn bản cần ký được chia cho các thành
Ký số
viên chịu trách nhiêm
Ký số
Ký số
Ký số
Ký số
Hình 1.4. Ký số tậ p thể có phân biệt trách nhiệm K ết luận luận chương 1 Trong chương này, đầu tiên các khái niệm và định nghĩa cơ bản đượ c dùng trong chữ ký số, ch ữ ký số tậ p th ể đã đượ c trình bày. Tiế p theo, tổng quan các vấn đề nghiên cứu trong nướ c và trên thế giớ i v ề các chữ ký số tậ p thể. Dựa trên quá trình này, t rong chương tiế p theo, H ọc viên sẽ tậ p trung nghiên c ứu các lược đồ chữ ký số tậ p thể trên các hệ mật khác nhau nhằm mục đích hiểu một cách tổng quan về các hệ mật khóa công khai, chữ ký số trên các hệ mật và các lược đồ chữ ký số tậ p thể trên các hệ mật. 1.3.
17
Chương 2
CHỮ CH Ữ KÝ KÝ SỐ SỐ TẬ TẬP THỂ THỂ VỚ VỚ I CÁC HỆ HỆ MẬ MẬT KHÁC NHAU 2.1.
Tình hình nghiên cứ c ứ u về về chữ chữ ký ký số số tậ tập thể thể
Năm 1983, lần đầu tiên K.Nakamura K.Nakamura và K.Itakura đã đưa ra khái khái niệ m chữ ký số tậ p thể. Harn vào năm 1994 đã đề xuất mô hình lược đồ ký số tậ p thể ng dựa trên bài toán Lgarithm r ờ ngưỡ ng ời r ạc, ạc, là lược đồ ký s ố yêu cầu phải có một lượ ng ng tậ p thể tối thiểu (ngưỡ ng) ng) thì chữ ký mớ i có thể hợ p lệ. Đến năm 1999, Harn lại tiế p tục cải tiến và đưa ra khái niệ m chữ ký số tậ p thể có phân biệt trách nhiệm. Đáng tiếc là lược đồ ký tậ p thể này có điểm yếu bảo mật, khiến một trong số tậ p thể ngườ i ký có thể gian lận, tự mình ký mà không cần có sự tham gia ký của c ả t ậ p th ể. Điểm yếu này đã đượ c tác giả Li và đồng nghiệ p ch ỉ ra vào năm 2000, tấn công dạng này đượ c gọi là tấn công khóa lừa đảo (Rogue-Key Attack), trong đó thành viên củ a nhóm thay vì công b ố khóa công khai của mình lại sử dụng khóa công khai là một hàm phụ thuộc vào các khóa công khai của các thành viên khác để có thể dễ dàng tạo ra chữ ký s ố tậ p thể mà không cần có sự tham gia của các thành viên khác. Năm 2000, Shich và đồng nghiệp đề xuất lược đồ chữ ký tậ p thể ứng dụng Mobie, có chia ra làm 2 trườ ng ng hợ p nối tiếp và ký song song. Năm 2001, Lin, Wu và Hwang công bố lược đồ ký số tậ p thể có cấu trúc dựa trên hệ mật định danh [8]. Tuy nhiên ngay sau đó lược đồ này đã bị bẻ g ẫy bở i Mitchell [9] ngay trong năm 2001. Năm 2003, Constantin Popescu đề xuất lược đồ ký t ậ p thể dựa trên đườ ng ng cong Elliptic [20], tuy nhiên trong lược đồ này bị lỗi và lỗi này đã đượ c công bố vào năm 2011. Năm 2005, Kawauchi đề xuất lược đồ chữ ký s ố tậ p thể dựa trên hàm một chiều tuy nhiên giao thức ký cần có sự phụ thuộc trình tự ký. ng của Pointcheval và Stern và đưa Năm 2006, Bellare khái quát hóa ý tưở ng ra định nghĩa và đặ c tả về chữ ký số tậ p thể trong [11].
Năm 2007, Abound công bố lược đồ ký số tậ p thể dựa trên hệ mật RSA, cải ti ến t ừ lược đồ của Okamoto. Cũng trong năm này, Hakim Khali và Ahcene đề xuất lược đồ ký số tậ p thể dựa trên DSA và ECDSA [12]. 18
Baghezandi và cộng sự trình bày đánh giá độ bảo mật một s ố lược đồ chữ ký số tậ p thể vào năm 2008, đồ ng thời Bagherzandi cũng trình bày khá đầy đủ về định nghĩa chữ ký số t ậ p th ể và mô tả các tấn công vào chữ ký số t ậ p th ể, ngoài ra Bagherzandi cũng chứng minh độ bảo mật của chữ ký số thông qua bổ đề Forking.
N.R.Sunitha, B.B.Amberker và P.Koulgi vào năm 2008 đề xuất mô hình séc điện t ử sử d ụng lược đồ ký số tậ p thể dựa trên lược đồ ký ElGamal (logarith r ờ i r ạc), mô hình ký nối tiế p lần lượ t, tuy nhiên thứ tự ký thì không cần phải xác định trướ c [13]. Duc-Phong, Bonnecaze và Gabillon năm 2008 công bố lược đồ ký s ố tậ p thể dựa trên bài toán Logarithm r ời r ạc có chứng minh bảo mật bằng mô hình Oracle dựa trên ý tưở ng của Bellare. Năm 2009, ba tác giả tiế p tục đề xuất chữ ký số tậ p thể dựa trên cặ p song tuyến tính.
Meziani vào năm 2010 đưa ra lược đồ ký số t ậ p th ể khác hẳn các lược đồ đã có, dựa trên Coding Theoory. Tuy nhiên tính ứng dụng của lược đồ này không cao. Năm 2010, Zuhua Shao dựa trên hệ mật Logarithm r ờ i r ạc đề xuất lược đồ ký tậ p thể với định nghĩa và mô hình rất chi tiết và cụ thể cũng chỉ ra những điểm mà ngườ i t ấn công có thể tri ển khai. Cũng trong năm 2010 Jia Yu đề xu ất lược đồ ký tậ p thể Forward-Sucure, bên cạnh chữ ký số ngưỡ ng và chữ ký mù. Trong lược đồ ký forward-sucure signature scheme, toàn b ộ thời gian đượ c chia thành nhiều phân đoạn, cho mỗi phân đoạn sẽ sử dụng một khóa bí mật khác nhau, trong khi đó khóa công khai thì không thay đổ i trong toàn bộ quá trình ký. Khóa bí mật cho mỗi phân đoạn sẽ được tính thay đổi trong toàn bộ quá trình ký. Khóa bí mật cho mỗi phân đoạn sẽ được tính trên khóa cũ bằng một hàm một chiều. Mỗi chữ ký có một ý nghĩa trong mộ t thời gian xác định, khi xác thực ngoài việc xác thực tính hợ p lệ của chữ ký, lược đồ còn cho phép xác th ực cả quá trình ký qua từng phân đoạn thời gian. Lược đồ ký này được đề xuất dựa trên song tuyến tính. Năm 2015 Jinila trong [14] công bố lược đồ ký số tậ p thể dùng trong mạng giao thông dựa trên hệ mật RSA theo ID-Based, nhằm làm giảm kích thướ c số tậ p thể bở i toàn hệ thống chỉ có một cặ p khóa công khai và bí mật dùng 19
chung, ngoài ra vai trò của từng thành viên không có ý nghĩa bở i chữ ký thành phần của mỗi thành viên đơn thuầ n chỉ là phép nhân thông điệ p m vớ i chữ số thành phần si do trung tâm cung c ấp, như vậy trung tâm hoàn toàn tính đượ c giá tr ị này mà không cần tớ i sự tham gia của thành viên. Tiếp sau đây học viên sẽ trình bày lược đồ chữ ký số tậ p thể dựa trên một số hệ mật phổ thông và mang tính đạ i diện. 2.2.
Chữ ký số tập thể dự a trên bài toán Logarithm rờ i rạc
ElGamal là người đầu tiên đề xuất s ử dụng bài toán Logarithm r ờ i r ạc để xây dựng lược đồ ký số [15] năm 1985. Sau này thuậ t toán DSA trong chu ẩn [16] cũng dựa trên lược đồ Elgamal có sửa đổi để ban hành thành chuẩn cho chữ ký số. Harn năm 1999 công bố bài đầu tiên đưa ra khái niệ m ch ữ ký số tậ p thể phân biệt trách nhiệm. Sau đó năm 2003, Hwang đưa ra lược đồ ký số tậ p thể có phân biệt trách nhiệm. * Lược đồ chữ ký số t ậ p thể Khali và Farah
Lược đồ ký tậ p thể này do Khali công bố trong năm 2007 [12 ]. - Sinh khóa (1) Chọn hai số nguyên tố lớn p, q sao cho q|(p−1) như được định nghĩa trong tiêu chuẩn [3] ban hành năm 2013. Chọ n g là số sinh có bậc q trong trườ ng ∗.
ℤ
(2) Mỗi thành viên Ui, 1 ≤ i ≤ t chọ n số ng ẫu nhiên lớ n x i để làm khóa bí mật:1 ≤ xi ≤ q. (3) Ui tính khóa công khai yi tương ứng như sau: yi = gxi mod p - Tạo chữ ký số tậ p thể (1) Người trưở ng nhóm chọn ngẫu nhiên số k 1, (1 < k 1 < n) và tính r 1 = ( mod p) mod q b = k −1(H(m) + a1x1) mod q s = b−1 mod q
Sau đó gửi (r 1,s) cho tất cả thành viên. 20
(2) Các thành viên ki ểm tra tính hợ p lệ chữ ký của ngườ i quản lý bằng cách tính: u = H(m)·s mod q, v = r 1 ·s mod n r = (gu ·yv mod p) mod q Kiểm tra nếu r = r 1 thì chữ ký hợ p lệ, ngượ c lại là không. (3) Mỗi ngườ i ký Ui, i ≠ 1 sẽ tính chữ ký như sau: k i = s(H(m) + r 1xi) mod q r i = (gk i mod p) mod q
Sau đó sẽ gửi giá tr ị này đến ngườ i quản lý. (4) Ngườ i quản lý sẽ kiểm tra tính hợ p lệ của từng chữ ký thành viên và tạo chữ ký tậ p thể là tậ p (a1,a2,...,at,s). - Kiểm tra chữ ký số tậ p thể (1) Ngườ i kiểm tra, xác thực chữ ký tính:
u = H(m’)·s mod n,
v = r 1·s mod n
(2) Tiếp theo tính các điể m:
′ (∏. ) =
(∏ ) =
(3) Kiểm tra nếu r ’ = r thì chữ ký số hợ p lệ. - Chứng minh.
=
=
′ (∏. ) (∏() .. ) 21
=
=
(∏(()+)) (∏ ) 2.3.
Chữ ký số tập thể dự a trên hệ mật RSA
Lược đồ chữ ký số này do R. Rivest, A. Shamir và L. Adleman đề xuất vào năm 1978 trong công trình [4]. 2.3.1.
Chữ ký số RSA - Sinh khóa
(1) Chọn hai số nguyên lớn p, q và tính n = p.q và hàm φ(n) = (p -1)(q-1). φ(n) đượ c gọi là hàm Euler. Nếu p là số nguyên tố thì:
φ(p) = p-1 (2.1) φ(n) cho ra tổng số các số nguyên nhỏ hơn n và nguyên tố cùng nhau vớ i n. (2) Chọn số nguyên e, 1
φ(n)).
ℤ∗() là số d có nghĩa là e·d ≡ 1 (mod
Khóa công khai sẽ là (n,e) và khóa bí mật sẽ là (n,d). - Sinh chữ ký số
̃
(1) Tính giá tr ị băm = h(m) với h() là hàm băm bả o mật ví dụ như SHA256 và đượ c biểu diễn dướ i dạng số nguyên trong khoảng [0,n−1].
̃
(2) Tính chữ ký số:
̃
s= - Xác thực chữ ký số
(1) Ngườ i nhận, nhận được thông điệp m’ và chữ ký s, tính giá tr ị băm = h(m’).
′
(2) Tính giá tr ị:
̃ = s e
(2.3) 22
(3) nếu
= ′ , chữ ký hợ p lệ, ngượ c lại thì không.
- Chứng minh tính đúng đắn của thuật toán
Định lý 2.2.1. (Euler) Vớ i mọi số n,a nguyên tố cùng nhau ta có:
() ≡ 1 (mod n) (2.4) Chứng minh. Xét tậ p số nguyên: R = {x1,x2,...,xφ(n)} Mỗi ph ần t ử x i là số nguyên dương duy nhấ t nhỏ hơn n vớ i gcd(xi,n) = 1, nhân mỗi phần tử của R vớ i a và lấy phần dư khi chia cho n, ta sé có tậ p S: S = {(ax1 mod n),(ax2 mod n),...,(axφ(n) mod n)} Nhận thấy tậ p S có các phần tử chỉ là hoán vị của các phần tử của tậ p R vì a là nguyên tố cùng nhau vớ i n, xi cũng là nguyên tố cùng nhau vớ i n suy ra axi cũng nguyên tố cùng nhau vớ i n. Từ đó nhân tất cả các phần tử của S và R ta có:
()
()
= ()
()
=
=
=
∏( ) ∏
∏ ∏ ( ) ()
()
() .[∏ ] ∏ ( ) = = () ≡ 1 ( ) Khi n là số nguyên tố ta có định lý Fermat nhỏ: an-1 ≡ 1 (mod n)
Theo định lý Euler ta có:
̃()≡ 1 (mod n) (2.5) Từ đó có thể dễ dàng thấy r ằng:
̃′ = s = ̃( ) =̃ =̃()+ = (2.6) e
e
23
2.3.2.
Chữ ký số tập thể RDSA
Chữ ký số tậ p thể RDSA (repeated individual signature) là lược đồ ký đơn lặ p lại để tạo nên chữ ký tậ p thể.
̃
̃ thườ ng chúng ta sẽ sử
Ký hiệu là bản tóm lượ c của văn bản m, để có dụng hàm băm bảo mật nào đó:
̃= h(m)
(2.7)
- Ký văn bản Ký hiệu tậ p thể gồm t ngườ i ký là GU = {U1,U2,...,Ut}. Giao thức ký tậ p thể cho hầu hết tất cả các lược đồ ký tậ p thể dựa trên lược đồ ký đơn sẽ là:
(1) Ngườ i ký U1 sẽ sử dụng khóa bí mật d1 của mình để ký vào là mã hóa bằng khóa bí mật này.
, thườ ng
(2) Tiế p theo lần lượ t từng ngườ i ký Ui sẽ ký lên văn bản tóm lượ c mà ngườ i Ui−1 đã ký và chuyển tiếp cho ngườ i Ui+1. (3) Cuối cùng, ngườ i ký Ut s ẽ ký vào văn bản tóm lượ c, t ạo ra chữ ký SG mà những người khác đã ký và gử i cho ngườ i nhận (ngườ i xác thực) và văn bản cần gửi. - Xác thực chữ ký
̃’ =
(1) Ngườ i nhận nhận chữ ký SG và văn bản m’. Tạo bản tóm lượ c h(m’).
(2) Tiế p theo lần lượ t xác thực chữ ký của từng ngườ i gửi theo thứ tự ngượ c lại vớ i quá trình ký.
Lược đồ ký tậ p thể này có nhiều nhược điểm về hiệu năng tính toán, chiếm dụng không gian lưu chữ lớ n (tất cả các khóa công khai của ngườ i ký), đồng thờ i phải tuân thủ đúng thứ t ự ký của người ký. Để khắc phục nhược điểm này, nhiều lược đồ ký tậ p thể đã đượ c phát triển. Chữ ký tập thể Itakura và Nakamura Itakura và Nakamura là hai tác gi ả đề xu ất lược đồ chữ ký s ố tậ p thể đầu tiên vào năm 1983. Tuy nhiên lược đồ lại có điểm yếu nhất định.[1] 2.3.3.
- Sinh khóa 24
(1) Chọn hai số nguyên tố lớ n p, q. Tính giá tr ị n0 = p·q và φ(n 0) = (p−1)(q−1), vớ i mỗi ngườ i ký Ui chọn số r i và chọn số e sao cho e < φ(n 0), gcd(e,φ(n0)) = 1 và e > max{r i}1≤i≤t. (2) Mỗi ngườ i ký Ui có khóa công khai là (n i,e,i) vớ i n i = ni.r i sao cho r i < r j với 1 ≤ i < j ≤ t có nghĩa là n i < n j.
(3) Ngườ i ký Ui có khóa bí mật là di đượ c chọn sao cho e·di ≡ 1 (mod φ(ni)). - Ký văn bản Ký theo thứ tự ngườ i có r i nhỏ nhất cho đến lớ n nhất. (1) Ngườ i ký U1 tính si ≡ mod ni, sau đó gửi đến ngườ i ký U2.
̃
(2) Ngườ i ký Ui s ẽ ký vào chữ ký của người ký trướ c U i-1 v ới 2 ≤ i ≤ t−1 bằng cách tính: si ≡ (mod ni)
−
(3) Ngườ i cuối cùng Ut sẽ ký vào chữ ký nhận đượ c từ ngườ i Ut-1 bằng cách tính: s = st ≡ (mod nt)
−
- Xác thực chữ ký (1) Theo trình tự ngượ c lại từ giá tr ị cao xuống thấ p, vớ i khóa công khai (ni,e) vớ i mỗi t ≥ i ≥ 1, tính: si-1 ≡ (mod ni)
(2) Cuối cùng ngườ i xác thực sẽ tính đượ c s0 =
̃
(mod n ). 1
(3) Nếu s0 = thì chữ ký hợ p lệ, ngượ c lại thì không. - Chứng minh. si-1 = sei =(sds-1)e= si-1
Nhược điể m của lược đồ này là độ dài của ch ữ ký sẽ tăng lên sau mỗi l ần ký và khi n không phải là số nguyên tố thì lược đồ sẽ có điểm yếu là có thể khôi phục được văn bản mà không cần biết đến khóa bí mật. 25
2.3.4.
Lược đồ chữ ký tập thể Harn và Kiesler
Hai tác giả Harn và Kiesler năm 1989 đề xuất lược đồ ký tậ p thể cho ngườ i xác thực được xác định trước [13] đượ c mô tả dưới đây. - Sinh khóa (1) Mỗi ngườ i ký Ui, 1 ≤ i ≤ t chọ n ngẫu nhiên hai cặp đôi số nguyên tố lớ n (p i,qi) và ( ) c ặp đầu tiên dùng để cho việc ký tậ p th ể, c ặ p th ứ 2 để cho mã hóa thông điệ p.
,
. (3) Tính cặ p (e ,d ) và , ) sao cho: e .d ≡ 1 (mod φ(n )), . ≡ 1 (mod φ( )) (4) Khóa công khai sẽ là tậ p hợ p (n ,e , ).
(2) Tính ni = pi·qi và = ) và vớ i n i < h < v ới h là ngưỡ ng công khai biết trướ c. Sắ p xế p sao cho n1 < n2 < ... < ni < ... < nt. i
i
i
i
i
i i
- Ký văn bản (1) Bên thứ ba tính ci ≡ mod n1 và gửi giá tr ị c1 tớ i U1. (2) U1 giải mã = mod n1, sau đó kiểm tra và so sánh vớ i thông điệ p nhận đượ c, nếu hợ p lệ U1 sẽ dùng khóa công khai của U2 mã hóa chữ ký: s1 ≡ , c2 = mod n2
Sau đó U1 gửi c2 đến ngườ i ký U2. (3) Ngườ i ký Ui với 2 ≤ i ≤ t giả i mã chữ ký từ ngườ i gửi Ui-1 và cứ lần lượ t giải mã để tìm lại giá tr ị m. ≡ si-2 mod ni-1 (2.8)
−
...
≡ s mod n i
(2.9)
2
(2.10) ≡ m mod n sau đó mã hóa chữ ký này bằng khóa Tiế p theo tạo chữ ký số s ≡ − 2
i
công khai của ngườ i ký Ui+1 bằng cách tính:
26
ci+1 ≡
mod n −
i+1
(4) Đến ngườ i ký cuối cùng Ut, s ẽ tiế p tục tiến hành tương tự vớ i vi ệc coi ngườ i xác nhận như là thành viên U t+1: s ≡ mod nV
Ngườ i xác thực V có khóa công khai là (eV, nV ). - Xác thực chữ ký (1) Ngườ i xác thực V dùng khóa bí mật dV tính: ≡ mod nV ≡ st
(2) Lần lượ t giải mã ra m bằng cách thức tương tự như cách tính ở (2.8) đến (2.10). (3) So sánh giá tr ị m giải mã đượ c vớ i giá tr ị m’ nhận đượ c, nếu trùng nhau là chữ ký hợ p lại, ngượ c lại là không hợ p lệ. - Chứng minh.
= ( ) = − − − 2.4.
Chữ ký số tập thể dự a trên hệ mật Elliptic
2.4.1.
Tổng quan về hệ mật trên đườ ng cong elliptic
Năm 250 sau Công nguyên, Diophant khi giả i bài toán tìm s ố tầng của tháp các quả cầu mà khi tr ải ra mặt đất có thể xế p thành một hình vuông đã dẫ n đến giải phương trình (y là số quả cầu trên 1 cạnh hình vuông; x là số tầng của tháp): y2 = 12 + 22 + 32 + · · · + x 2 = x(x + 1)(2x + 1) /6
Phương trình y2 = x(x + 1)(2x + 1)/6 là m ột dạng của đườ ng cong Elliptic. Năm 1637, nhà toán học và vật lý học ngườ i Pháp Pierre de Fermat công bố định lý Fermat cuối cùng khi viết trên lề bản copy công trình của Diophant: Phương trình sau đây là vô nghiệ m: xn + yn = zn , n > 2
27
Hơn ba thế k ỷ, đã có rất nhiều nhà toán học cố gắng chứng minh định lý này xong đều thất bại, mãi cho đến năm 1994, Andrew Wiles, giáo sư trườ ng Princeton đã gây mộ t ti ếng vang lớ n trong cộng đồng toán học th ế gi ớ i vào thờ i điểm đó khi sử dụng đườ ng cong Elliptic có d ạng y2 = x(x − an )(x + bn ) cùng vớ i lý thuyết về Modul để chứng minh định lý Fermat cuối cùng. Năm 1987, Lenstra đề xuất thuật toán phân tích số nguyên ra thừa số nguyên tố sử dụng đường cong Elliptic, đó là thuật toán tương đố i nhanh, chạy vớ i thời gian dướ i hàm mũ và là thuật toán nhanh thứ 3 trong việc phân tích ra thừa số nguyên tố, sau phương pháp sàng đa thức toàn phương và phương pháp sàng trườ ng số tổng quát [2]. Trong lĩnh vực mật mã, vào năm 1985, Victor S. Miller công bố bài báo đầu tiên về ứng dụng đườ ng cong EC trong mật mã “Use of El liptic Curves in Cryptography” và sau đó là Neal Koblitz với “Elliptic curve cryptosystem” vào năm 1987. Từ đó cho đến nay đã có rấ t nhiều công bố nghiên cứu về EC v ề lý thuyết và trong thực ti ễn càng ngày ứng d ụng ECC càng đượ c s ử d ụng r ộng rãi, và đã được đưa thành các tiêu chuẩ n. Một số tiêu chuẩn liên quan đến đườ ng cong Elliptic: IEEE 1363: Tiêu chuẩn này bao gồm gần như tất c ả các thuật toán về các hệ khóa công khai trong đó có ECDH, ECD SA, ECMQV và ECIES. Trong phần phụ lục có cả các thuật toán cơ bản về lý thuyết số liên quan đến hệ mật khóa công khai. ANSI X9.62 và X9.63: Các chuẩn này tập trung vào đườ ng cong Elliptic và cụ thể về ECDSA trong X9.62 và ECDH, ECMQV và ECIES trong X9.63. Các chuẩn này cũng xác định khuôn dạng các dữ liệu và danh mục các đườ ng cong khuyến cáo sử dụng. FIPS 186.2: Tiêu chu ẩn của NIST cho chữ ký số, mô tả chi tiết về thuật toán DSA algorithm. SECG: Là tiêu chuẩn đượ c biên soạn b ở i nhóm các doanh nghiệ p d ẫn d ắt bở i công ty Certicom, gần như là ánh xạ của các chuẩn ANSI nhưng đượ c tiế p cận trên môi trườ ng Web từ Website http://www.secg.org/ ISO 15946-2: Tiêu chuẩn mô tả về ECDSA và ECIES (còn đượ c gọi là ECIES-KEM). 28
RFC 3278: “Use of Elliptic Curve Cryptogr aphy (ECC) Algorithms in Cryptographic Message Syntax (CMS)” là khuyế n nghị s ử d ụng thuật toán ECC trong mã hóa thông điệp văn bả n. * Phương trình Weierstra ß của đườ ng cong Elliptic
- Đườ ng cong Elliptic có dạng sau: y2 = x3 + Ax + B (2.11)
Trong đó A và B là các hằng s ố. Các giá tr ị của x, y, A, B thườ ng là các giá tr ị trên một trường nào đó, ví dụ như R (số thực), Q (số hữu tỷ), C (số phức), hoặc trườ ng hữu hạn Fq, vớ i q = pn trong đó p là số nguyên tố vớ i n ≥ 1. Nếu K là một trườ ng có a, b K, khi đó ta nói đường cong Elliptic được định nghĩa trên trường K. Điểm (x, y) trên đườ ng cong Elliptic vớ i (x, y) K đượ c g ọi là điểm K - Hữu tỷ. Dạng tổng quát phương trình Weierstrass của đườ ng cong Elliptic sẽ đượ c biểu diễn dướ i dạng:
∈
∈
y2 + a1xy + a3y = x3 + a2x2 + a4x + a6,
(2.12)
Trong đó a1, · · ·, a6 là các hằng số. Dạng (2.12) thường đượ c sử dụng vớ i các trường K có đặc s ố char(K) bằng 2 hoặc 3. Khi K có char(K) khác 2 có thể biến đổi (2.12) thành dạng sau: 2 3 (y + + ) = ( + ( + 4 ) + ( 4 + ( 4 6)
) Có thể viết lại như sau: = x + x + 4 x 6, Vớ i y = y + a x/2 + a /2 và vớ i các hằng số , 4 , 6 . Khi K có chap(K) khác 3 có thể dùng phép thế x = x + /3 và ta có: = 3+ Ax + B, 3
1
1
2
2
3
1
Trong đó A, B là các hằ ng số nào đó. Đườ ng cong (2.11) có định thức ∆ = −16(4A3+ 27B). Đườ ng cong này sẽ suy biến và không có đủ 3 nghiệm phân biệt khi ∆ = 0, trong tài liệ u này chúng ta chỉ xét các đường cong có ∆ ≠ 0. - H ệ mật trên đườ ng cong Elliptic Khái niệm: Tậ p hợ p tất cả các điểm ( x, y) vớ i x, y trình của đườ ng cong E và vớ i một điểm
29
F p
thoả mãn phương
ở vô cực cùng vớ i một phép toán
cộng sẽ tạo thành một nhóm, gọi là nhóm các điểm trên đườ ng cong elliptic trong F , ký hiệu là E ( F ). Giống như nhóm nhân trên trườ ng hữu hạn, nhóm này đượ c sử dụng để xây dựng nên hệ mật Elliptic. p
p
* Phép cộng các điểm trên đườ ng cong Elliptic
Xét hai điểm P1 = (x 1, y 1) và P2 = (x 2, y2) trên đường cong Elliptic E như Hình 2.1: y2 + a1xy + a3y = x3 + a2x2 + a4x + a6 Phép cộng giữa hai điểm trên đường cong E được định nghĩa như sau: P3(x3, y3) = P1(x1, y1) + P2(x2, y2)
(2.13)
Trong đó P3(x3, y3) = − (x3, ), điểm (x3, ), là giao điể m c ủa đườ ng cong E và đườ ng thẳng đi qua P1 và P 2. Vì 2 điểm P 3(x3, y 3), − (x3, ), đều nằm trên đườ ng cong E nên (x3, y3), (x3, ) phải thỏa mãn phương trình
Hình 2.1. Phép cộng trên đườ ng cong Elliptic
30
Sau khi định nghĩa và có công thứ c tính tổng 2 điểm trên đườ ng cong E, chúng ta sẽ định nghĩa phép nhân vô hướ ng hay phép cộng nhiều lần một điểm trên E. * Nhân vô hướ ng của một điểm trên đườ ng cong Elliptic
∈
Vớ i n N \ {0} định nghĩa phép nhân vô hướ ng của điểm P nằm trên đườ ng cong E là phép cộng n lần chính bản thân điểm P: P
↦ nP = P + P + · · · + P = Q
Để tối ưu phép nhân vô hướ ng, có thể sử dụng phương pháp Nhân đôi -vàcộng, đầu tiên biểu diễn số n dướ i dạng: n = n0 + 2n1 + 22n2 + · · · + 2mnm vớ i [n0 . . . nm] {0, 1}, sau đó áp dụng thuật toán:
∈
Thuật toán 1.1 Phương pháp Nhân đôi -và-cộng
1: Q ← 0 2: for i = 0 to m do 3: if ni = 1 then
4: Q ← CộngĐiểm(Q,P) 5: end if
6: P ← NhânĐôi(P) 7: end for 8: return Q
Ngoài phương pháp Nhân đôi-và-cộng, có thể sử dụng phương pháp Trượ t-cửasổ. Các phương pháp này cho phép nhân vô hướ ng một cách tối ưu. Lưu ý: • Không tồn tại phép nhân 2 điểm trên đường cong E, có nghĩa là không tồn tại P × Q vớ i P, Q E.
∈
• Không tồn tại thuật toán chia vô hướ ng Q : n. * Nhóm (+) của các điểm trên đườ ng cong Elliptic
Xét đường cong Elliptic E được định nghĩa bởi phương trình 31
y2 = x3 + Ax + B
Xét 3 điểm n ằm trên đườ ng cong E là P 1, P 2, P3 lần lượ t có các tọa độ là (x1, y1), (x2, y2) và (x3, y3). Để các điểm trên đườ ng cong Elliptic tạo thành nhóm (+), “điể m vô cùng” (∞) sẽ được thêm vào đườ ng cong, kí hiệu là , điểm này sẽ nằm ở trên cùng và dướ i cùng của tr ục y. Một trong những thuộc tính quan tr ọng nhất của đườ ng cong Elliptic là tồn tại nhóm các điểm vớ i phép cộng nằm trên đườ ng cong. Định lý 1.5.1. Phép cộng với các điểm P, P1, P2, P3 trên đườ ng cong E thỏa mãn các tính chất của nhóm: 1. (Giao hoán): P1 + P2 = P2 + P1;
2. (Điểm đơn vị): P + ∞ = P; 3. (Điểm nghịch đảo): Tồn tại P’ của P sao cho P + P’= ∞; 4. (K ết hợ p): (P1 + P2) + P3 = P1 + (P2 + P3).
32
Hình 2.2. Ví dụ về tính chất k ết hợp trên đườ ng cong Elliptic 2.4.2.
Lược đồ chữ ký số tập thể Popescu
Trong mục này sẽ mô tả tóm tắt lược đồ thuật toán của tác giả Popescu trong tạp chí “Studies in Informatics and Control” [10]. Lược đồ chữ ký số tậ p thể bao gồm 3 pha, pha sinh khóa, pha sinh ch ữ ký và pha kiểm tra chữ ký. Giả thiết r ằng có t ngườ i ký Ui, 1 ≤ i ≤ t cùng ký vào văn bản m {0,1}∗.
∈
- Sinh khóa Chọn bộ tham số như trong [20], sau đó tiến hành các bước như sau:
33
(1) Chọn p là số nguyên tố và n là số nguyên. Gọi f(x) là đa thức t ối gi ản trên GF(p) có bậc n, sinh ra trườ ng hữu hạn GF(pn) và α là nghiệm của f(x) trong GF(pn).
∈
(2) Hai phần tử a,b GF(pn) định nghĩa đườ ng cong Elliptic E trên GF(pn) có phương trình là y 2 = x3 + ax + b vớ i p > 3 và 4a3 + 27b2 ≠ 0. (3) Hai phần tử x p và y p trong GF(pn) xác định điểm P = (x p,y p) vớ i bậc nguyên tố q trong E(GF(pn)) với P ≠ 0, mà 0 là điểm trung hòa. (4) Định nghĩa hàm chuyển đổ i c(x) : GF(pn)
−
↦ Z như sau: p
() ⋲ , =
−
∈ (),0 ≤ ≤ =
Các bước sinh khóa đượ c thực hiện như sau: (1) Mỗi ngườ i ký chọn ngẫu nhiên số nguyên di trong khoảng [1,q−1] và tính khóa công khai tương ứng như là điể m Qi = diP. (2) Tính khóa công khai tổng cho tất cả ngườ i ký (bằng tổng tất cả các khóa công khai của từng ngườ i ký) Q = = = dP = (xQ,yQ) vớ i d = = di (mod q).
∑
∑
(3) Định nghĩa hàm H là hàm băm mộ t chiều ví dụ như SHA-256. - Tạo chữ ký số tậ p thể Mỗi ngườ i ký Ui thực hiện các bước sau đây:
∈
(1) Chọn ngẫu nhiên số k i [1,q−1] và tính R i = k iP = (xR i,yR i), 1 ≤ i ≤ t. (2) Chuyển đổi giá tr ị x của điểm R i thành số nguyên r i = c(xR i), v ớ i c(x) là hàm chuyển. Giá tr ị r i đượ c truyền cho tất cả các thành viên khác trong nhóm. (3) Khi r i,1 ≤ i ≤ t đượ c cung cấp đầy đủ thông qua kênh truyền, mỗi thành viên sẽ tính giá tr ị giao ướ c: r = r 1 + r 2 +···+ r t (mod q) 34
(2.14)
(4) Thông qua khóa riêng (khóa bí mật) di và k i, ký văn bản m, ngườ i ký Ui sẽ tính: si = diH(m) − k ir (mod q). (2.15) (5) Truyền cặ p (m,si) tới ngườ i ủy nhiệm được phân công, khi ngườ i này nhận đượ c toàn bộ cặ p chữ ký số sẽ tiến hành kiểm tra bằng điểm:
(r -1H(m) mod q)Qi − (r -1 si mod q)P = ( , ), 1 ≤ i ≤ t Và kiểm tra r i = ( , ) (mod q), 1 ≤ i ≤ t. Sau khi kiểm tra các chữ ký của tất cả các thành viên và nếu chúng đều hợ p lệ thì tiến hành tính chữ ký số tậ p thể (r,s) vớ i :
s = s1 + s2 +···+ st (mod q). - Kiểm tra chữ ký số tậ p thể (1) Khi mỗi cặ p chữ ký (m,si), 1 ≤ i ≤ t thỏa mãn điề u kiện: (r -1 H(m) mod q)Qi −(r -1 si mod q)P =(
, ), 1 ≤ i ≤ t
(2) Tính tổng cho tất cả ngườ i ký: (r -1 H(m) mod q)Q − (r -1s mod q)P = (x e,ye) s = s1 + s2 +···+ st (mod q)
(, ) =
và r = c(xe) (mod q), nói cách khác ngườ i kiểm tra tính điể m (xe,ye) (3) Kiểm tra nếu r = c(xe) (mod q), n ếu đúng thì cặ p chữ ký (r,s) chấ p nhận, nếu sai thì t ừ chối chữ ký. - Chứng minh.
−()) (−) −(() ) =
=
=
−(() () ) 35
=
=
=
−( ) 2.4.3.
Lược đồ chữ ký số tập thể Khali và Farah Lược đồ ký tậ p thể này do Khali công bố trong năm 2007 [17]. - Sinh khóa Chọn bộ tham số như trong [31]. Sau đó tiến hành các bước như sau: (1) Mỗi thành viên Ui, 1 ≤ i ≤ t chọn s ố ng ẫu nhiên lớ n d i để làm khóa bí
mật. (2) Ui tính khóa công khai Qi tương ứng như sau: Qi = diP. - Tạo chữ ký số tậ p thể Mỗi ngườ i ký Ui thực hiện các bước sau đây: (1) Người trưở ng nhóm chọn ngẫu nhiên số k, (1 < k < n) và tính R 1 = kP = (x 1,y1) và chuyển x1 thành số nguyên . Tính tiế p r 1 = mod n và tính: s = k(H(m) + r 1d1) mod n (2.16) Sau đó gửi (r 1,s) cho tất cả thành viên. (2) Các thành viên kiểm tra tính hợ p lệ chữ ký của ngườ i quản lý bằng cách tính:
u = H(m)·s mod n, v = r 1·s mod n
R’ = uP + vQ 1 Kiểm tra nếu r = r 1 thì chữ ký hợ p lệ, ngượ c lại là không.
≠
(3) Mỗi ngườ i ký Ui, i 1 sẽ tính chữ ký như sau: r i = s(H(m) + r 1di) mod n
(2.17)
Sau đó sẽ gửi giá tr ị này đến ngườ i quản lý. (4) Ngườ i quản lý sẽ kiểm tra tính hợ p lệ của từng chữ ký thành viên và tạo chữ ký tậ p thể là tậ p (a1,a2,...,at,s). - Kiểm tra chữ ký số tậ p thể 36
(1) Ngườ i kiểm tra, xác thực chữ ký tính: u = H(m’)· s mod n, v = r 1·s mod n (2) Tiếp theo tính các điể m:
′ ( ) =
=
(3) Chuyển đổi các tọa độ x của điểm R 0,R thành số nguyên
r’=
̅ mod n, r = ̅ mod n
̅ , ̅ .
(4) Kiểm tra nếu r’ = r thì chữ ký số hợ p lệ ngượ c lại là không hợ p lệ. - Chứng minh.
=
=
′ ( ) ((′) )
((′) ) =
2.5.
=
K ết luận chương 2
Trong chương này, Họ c viên sẽ giớ i thiệu sơ lượ c về tình hình nghiên cứu chữ ký số tậ p thể sau đó là tậ p trung nghiên cứu các lược đồ chữ ký số tậ p thể trên các hệ mật khác nhau: hệ mật RSA, hệ mật Elliptic nhằm mục đích hiểu một cách tổng quan về các hệ mật khóa công khai, chữ ký số trên các hệ mật (chữ ký số RSA, chữ ký số tậ p thể RDSA, Itakura và Nakamura) và các lược đồ ch ữ ký số tậ p thể trên các hệ mật (Lược đồ chữ ký số tậ p thể Khali và Farah, Lược đồ chữ ký tậ p thể Harn và Kiesler, Lược đồ chữ ký số tậ p thể Popescu). Trong chương tiế p theo, Học viên sẽ đi vào trọng tâm của đề tài nghiên cứu thực nghiệm chữ ký số tậ p thể trên hệ mật ID-Based.
37
Chương 3
NGHIÊN CỨ U THỰ C NGHIỆM LƯỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ TRÊN HỆ MẬT ID-BASED Năm 1985, Shamir lần đầu tiên đưa ra ý tưở ng về hệ mật định danh (IDBase) [21], trong đó thay vì việ c t ạo ra khóa công khai bằng phương pháp ngẫu nhiên, ở đây có thể dùng các thông tin định danh như đị a chỉ Email, số chứng minh thư để tạo ra khóa công khai, ưu điể m của hệ mật này là không cần phải trao đổi khóa công khai, và có thể biết khóa công khai từ trướ c khi cặ p khóa đượ c tạo ra, không cần phải trao đổi khóa công khai vì nó có thể đượ c tạo ra theo một quy định tườ ng minh và dễ dàng. Hệ mật định danh đặc biệt phù hợ p vớ i những môi trườ ng có một số lượ ng lớn ngườ i dùng. Từ sau công trình của Boneh and Franklin năm 2001, hàng loạ t công trình khác dựa trên ID-Based đượ c phát triển. 3.1.
Chữ ký số tập thể dự a trên cặp Song tuyến tính
Lược đồ chữ ký số t ậ p thể B oldyreva Lược đồ do Boldyreva công b ố vào năm 2003 [2 2]. - Sinh khóa
∗ → E (nhóm các điểm nằm trên đườ ng cong (1) Coi hàm băm H : Elliptic có bậc là q là hàm ánh xạ tới điểm.
{0,1}
(2) Chọn khóa bí mật là xi xiP, vớ i ui U,1 ≤ i ≤ t.
∈
∈ ℤ∗ và khóa công khai tương tứng là =
- Tạo chữ ký số tậ p thể (1) Mỗi thành viên ui tính σi = xiH(m) và gửi đến ngườ i ký D. (2) D tính giá tr ị ký số của cả tậ p thể: σ =
(m,σ).
∑= σ và đưa ra chữ ký số
- Kiểm tra chữ ký số tậ p thể (1)Tính khóa công khai của cả tậ p thể: (2) Kiểm tra điều kiện:
,H(m))
e(P,σ) = e(
38
== ∑=
Nếu đúng thì chữ ký số hợ p lệ, ngượ c lại là không. - Chứng minh.
=
=
e(P,σ) (,σ ) (, ()
( ,()) (,()) =
Nghiên cứ u thự c nghiệm lược đồ chữ ký số tập thể trên hệ mật IDBased 3.2.
Hệ mật ID-Based Hệ mật ID-Based hay IBE ( Identity-based encryption nghĩa là Mã hóa dựa trên định danh) là công nghệ mã hóa khóa công khai cho phép ngườ i dùng tính toán khóa công khai từ một chuỗi tùy ý. Chúng ta thường nghĩ đế n chuỗi này như thể hiện một nhận d ạng nào đó, nhưng thườ ng hữu ích khi sử dụng một nhận dạng để tính toán một khoá công khai như vậ y. 3.2.1.
Khả năng tính toán các phím khi cầ n thiết cho các hệ thống IBE khác biệt so v ớ i các hệ thống khoá công khai truyền thống, và các tính chất này mang lại những lợ i ích thực tiễn đáng kể trong một số trườ ng hợ p. Vì vậy, mặc dù có r ất ít trườ ng h ợp, trong đó không thể giải quyết bất k ỳ vấn đề nào vớ i các công nghệ khóa công khai truyền thống có thể đượ c gi ải quyết bằng IBE, các giải pháp sử dụng IBE có thể đơn giản hơn nhiều để thực hiện và hỗ tr ợ ít hơn nhiều so vớ i các giải pháp thay thế. IBE lần đầu tiên được đề cậ p bởi Adi Shamir vào năm 198 5, khi ông mô tả một phác thảo thô của các tính chất mà một hệ thống như vậy nên có và làm thế nào nó có thể đượ c sử dụng, mặc dù ông đã không thể tìm thấy một công nghệ an toàn và khả thi đã làm việc như ông mô tả. Ông dường như thấ y những ưu điểm của IBE liên quan đến tính dễ sử dụng so vớ i các công nghệ khác khi ông mô tả IBE theo cách này.
39
Một chương trình dựa trên nhận dạng giống như một hệ thống thư điện tử lý tưở ng: Nếu b ạn biết tên và địa chỉ c ủa ai đó, bạn có thể g ửi cho anh ta nh ững thông điệ p mà anh ta chỉ có thể đọc và bạn có thể xác minh những chữ ký mà chỉ có anh ta mớ i có thể tạo ra. Nó làm cho các thuật toán mã hoá đượ c cung cấ p cho ngườ i s ử d ụng r ất rõ ràng, và có thể đượ c s ử d ụng có hiệu qu ả b ở i c ả chìa khóa hoặc giao thức. Một hệ thống IBE có những điểm tương đồng vớ i các hệ thống khóa công khai truyền thống, nhưng cũng khá khác theo nhữ ng cách khác. Mặc dù khóa công khai truyền thống chứa tất c ả các tham số c ần thiết để s ử d ụng khóa, để s ử dụng một hệ thống IBE, người dùng thườ ng cần có một tậ p hợ p các tham số công khai từ một bên thứ ba đáng tin cậy. V ớ i các tham số này, ngườ i dùng có thể tính toán khóa IBE công khai của bất k ỳ ngườ i dùng nào và sử dụng nó để mã hóa thông tin cho người dùng đó. Quá trình này đượ c thể hiện trong hình dưới đây.
Hình 3.1. Mã hóa vớ i một hệ thống IBE.
40
Hình 3.2. Giải mã vớ i một hệ thống IBE Ngườ i nhận thông tin mã hoá IBE sau đó xác thự c một cách nào đó tớ i máy phát khoá cá nhân (PKG), một bên thứ ba đáng tin cậy tính toán khóa cá nhân IBE tương ứng vớ i khóa công khai IBE c ụ thể. PKG thườ ng sử dụng thông tin bí mật đượ c gọi là bí mật gốc, cộng vớ i nhận dạng của người dùng, để tính toán một khóa cá nhân như vậy. Sau khi tính khoá này đượ c tính, nó đượ c phân phối an toàn cho ngườ i đượ c ủy quyền (mô tả trong Hình 3.2). Trong một sơ đồ khóa công khai truyền thống, chúng ta có thể tóm tắt các thuật toán liên quan đến việc tạo và sử dụng cặ p khóa công khai-cá nhân như tạo ra, mã hóa và giải mã quan tr ọng. Hai thuật toán bổ sung, chứng nhận và xác nhận chính xác, thườ ng đượ c s ử d ụng trong nhiều triển khai của các chương trình như vậy. Để xác định đầy đủ các hoạt động c ủa một chương trình như vậ y chúng ta cần ph ải xác định hoạt động của mỗi thuật toán. Trong bướ c tạo khoá, một khoá của cặ p khóa công khai-cá nhân đượ c tạo ngẫu nhiên và khoá khác trong cặp đượ c tính từ nó. Sau đó, khóa công khai và danh tính củ a ch ủ sở h ữu đó đượ c CA ký bằng chữ ký số để tạo chứng chỉ số. Mã hóa đượ c thực hiện bằng khóa công khai có trong chứng chỉ này. Giải mã đượ c thực hiện bằng khóa cá nhân tương ứng vớ i khoá công khai.
41
Bảng 3.1. So sánh tính chất của IBE và các hệ thống khóa công khai truyền thống
Hệ thống khóa công khai truyền thống
IBE
- Các tham số công khai đượ c phân - Tất cả các tham số bắt buộc là một phối bở i một TTP phần của khóa công khai - Khóa chủ bí mật PKG đượ c sử dụng - Khóa cá nhân CA đượ c sử dụng để để tính toán các khóa cá nhân tạo chứng chỉ số - Khóa cá nhân do PKG tạo ra
- Khóa cá nhân đượ c tạo ngẫu nhiên
- Khóa công cộng có thể đượ c tính bở i - Khóa công khai đượ c tính từ khóa cá bất k ỳ ngườ i dùng nào nhân - Các phím thườ ng ngắn - Chỉ mã hóa
- Các phím thườ ng có giá tr ị trong thờ i gian dài - Chữ ký số và mã hóa
Bảng 3.2.
Bốn thuật toán trong lược đồ IBE
Các bướ c
Tóm lượ c
- Thiết lậ p
- Khở i tạo tất cả các tham số hệ thống.
- Khai thác
- Tính mật mã cá nhân IBE t ừ khóa bí mật PKG và nhận dạng bằng cách sử dụng các tham số hệ thống.
- Mã hóa - Giải mã
- Mã hóa thông tin sử dụng khóa công khai IBE đượ c tính từ các tham số hệ thống và nhận dạng. - Giải mã thông tin sử dụng một khóa cá nhân IBE đượ c tính từ khóa bí mật PKG và danh tính.
42
Bảng 3.3.
Khả năng áp dụng các công nghệ mã hoá khác nhau trong việc đạt đượ c các mục tiêu an ninh thông tin
Mục tiêu an toàn
IBE
Các công nghệ khóa công khai truyền thống
- Tính bảo mật
- Có
- Có
- Tính toàn vẹn
- Không
- Có
- Khả dụng
- Không
- Có
- Xác thực
- Không
- Có
- Không bác bỏ
- Không
- Không
Trong một lược đồ IBE cũng có bốn thuật toán đượ c sử dụng để tạo và sử dụng c ặ p khóa công khai - cá nhân. Đây thường đượ c gọi là thiết lậ p, khai thác, mã hóa và giải mã. Thiết lậ p là thuật toán vớ i các tham số cần thiết cho việc tính toán IBE đượ c kh ở i tạo, bao gồm cả bí mật chính mà PKG sử d ụng để tính toán các khóa cá nhân IBE. Khai thác là thuật toán để tính toán khóa cá nhân IBE t ừ các tham số đượ c thiết lập trong bướ c thiết lậ p cùng vớ i nhận dạng của ngườ i dùng và sử dụng bí mật chính của PKG để thực hiện việc này. Mã hóa đượ c thực hiện vớ i một khóa công khai IBE đượ c tính từ thông số từ bướ c thiết lậ p và nhận dạng của ngườ i dùng. Giải mã đượ c thực hiện vớ i một khóa cá nhân IBE đượ c tính từ nhận dạng của ngườ i dùng và khoá cá nhân của PKG. Hoạt động của các chương trình IBE theo bố n phần sau: các thuật toán thực hiện các bướ c thiết lậ p, khai thác, mã hóa và giải mã.
Có năm mục tiêu chính mà giải pháp bảo mật thông tin có thể đáp ứng: cung cấ p tính bảo mật, tính toàn vẹn, tính khả dụng, xác thực và không phản hồi. Bảo mật giữ bí mật thông tin từ những người không đượ c ủy quyền để xem nó. Tính toàn vẹn đảm bảo r ằng thông tin không b ị thay đổi bởi các phương tiện trái phép ho ặc không xác định.Tính khả dụng đượ c yêu cầu bởi ngườ i dùng tại thờ i điểm thông tin đượ c yêu cầu và trong biểu mẫu mà ngườ i dùng cần. Xác thực là 43
khả năng xác minh danh tính của ngườ i dùng. Không bác bỏ ngăn cản việc từ chối các cam k ết hoặc hành động trước đó. Việ c sử dụng mật mã có thể hỗ tr ợ hầu hết các mục tiêu này; Việc sử dụng IBE chỉ có thể hỗ tr ợ một trong những mục tiêu này. Điều này đượ c tóm tắt trong Bảng 3.3. IBE cung cấ p một giải pháp dễ dàng cung cấ p sự bảo mật của dữ liệu. Nó không cung cấ p tính toàn vẹn, tính khả dụng, xác thực và không phản hồi. Đây là những d ễ dàng đượ c cung cấ p bở i chữ ký s ố bằng cách sử dụng các phím đượ c tạo ra và quản lý bở i một hệ thống khóa công khai truyền thống. Tuy nhiên, chúng ta sẽ thấy r ằng những lợ i ích mà IBE cung cấp đã làm cho nó trở thành một giải pháp r ất tốt cho một số vấn đề, và một giải pháp lai sử dụng IBE cho mã hoá và một h ệ th ống khóa công khai truyền th ống để cung cấ p ch ữ ký số có thể là một giải pháp k ết hợp các tính năng tố t nhất của mỗi công nghệ. 3.2.2.
Chữ ký số tập thể trên hệ mật ID-Based Do Rajeev Anand và Sahadeo Padhye đề xuất vào năm 2013 [22]. - Cài đặt
Coi G1 là nhóm cộng cyclic có bậc là số nguyên tố q và phần tử sinh là P. G2 là nhóm nhân cyclic có cùng bậc q. e là một ánh xạ song tuyến tính e : G1×G1 → G2. H1,H2,H3 là các hàm băm đượ c sử dụng cho mục đích bảo mật và đượ c định nghĩa như sau: H1 : {0,1}∗ → G1, H2 : {0,1}∗ → ∗ , H3 : {0,1}∗×{0,1}∗ → ∗ .
ℤ
∈ ℤ∗. = sP ∈ G .
ℤ
(1) Vớ i tham số bảo mật k chọn ngẫu nhiên s (2) Tính khóa công khai của hệ thống: P pub
1
(3) Công bố tham số của hệ thống là Params = (k,G1,G2,q,e,H1,H2,H3,P,P pub). - Tách khóa
Ngườ i ký ủy nhiệm có định danh là ID, có n ngườ i có thể ký ủy nhiệm với 1 ≤ i ≤ n.
(1) Bất k ỳ ai cũng có thể tính khóa công khai của ngườ i cần ủy nhiệm: QID = H1(ID) G1 và những người đượ c ủy nhiệm = H1(ID ) G1.
∈
44
∈
(2) Ngườ i quản tr ị hệ thống sẽ tính khóa bí mật cho ngườ i ủy nhiệm và đượ c ủy nhiệm SID = sQID và = s với 1 ≤ i ≤ n. Ngườ i quản tr ị sẽ thông qua kênh bí mật gửi các khóa bí mật này cho các thành viên.
- Ngườ i ủy nhiệm ký
∈
(1) Với văn bản m {0,1}∗, ngườ i ký chọn ngẫu nhiên x
∈ ℤ∗q.
(2) Tính các giá tr ị: Vs = xP, H = H2(m) Ws = HSID + xP pub (3) Chữ ký của ngườ i ủy nhiệm là σ = (Ws,Vs). - Xác thực chữ ký ngườ i ủy nhiệm (1) Với văn bản m’ và chữ ký σ = (Ws,Vs) nhận được, ngườ i xác thực tính: H' = H2(m’) và QID = H1(ID). (2) Chấ p nhận chữ ký khi điều kiện sau thỏa mãn: e(Ws,P) = e(H’Q ID + Vs,P pub)
(3.1)
- Sinh khóa cho người đượ c ủy nhiệm
Trong giai đoạn này ngườ i ủy nhiệm sẽ trao đổi v ới người đượ c ủy nhiệm vớ i các quyền đượ c ủy nhiệm. Để làm việc này ngườ i ủy nhiệm sẽ tạo ra một văn bản bảo đảm w, văn bản này sẽ kèm theo một số thông tin về văn bản, về những hạn ch ế c ủa văn bản sẽ ủy nhiệm, thờ i gian hoặc định danh của nh ững ngườ i s ẽ ủy nhiệm. (1) Ủy nhiệm: Ngườ i cần ủy nhiệm chọn ngẫu nhiên t
∈ ℤ∗ . và tính:
V = tP, h = H2(w),
∈
W = hSID + tP pub G1 Chuyển giá tr ị (W,V,w) vớ i các thành viên qua kênh truyền bí mật.
(2) Kiểm tra ủy nhiệm: mỗi thành viên s ẽ tính h = H2(w) và kiểm tra điều kiện sau (nếu không thỏa mãn thì phải yêu cầu gửi lại hoặc\ hủy giao thức): 45
e(W,P) = e(hQID + V,P pub) (3) Sinh khóa ủy nhiệm: mỗi thành viên bí mật ủy nhiệm: - Sinh chữ ký ủy nhiệm
sẽ tính h = H (w) tính khóa 2
pk = W + hS
Trong pha này sẽ có một ngườ i phụ trách có nhiệm v ụ tậ p hợ p hết tất cả các chữ ký thành phần.
ID sẽ chọn ngẫu nhiên số x ∈ ℤ∗. (2) Tính các giá tr ị: h = H (m,w) và = x P và gửi giá tr ị đến (n−1) (1) Mỗi thành viên
i
3
3
i
các thành viên còn lại.
(3) Các thành viên tính và gửi
σ :
= σ = h pk + x P 3
i pub
(4) Ngườ i phụ trách sau khi có các chữ ký thành phần sẽ tạo khóa công khai ủy nhiệm:
pk = h(Q + ) + V ID
(3.2)
Và sau đó kiểm tra điều kiện:
σ
e(P, ) = e(P pub, h’ - Xác thực chữ ký ủy nhiệm
pk + ) (3.3)
Ngườ i xác thực chữ ký ủy nhiệm sau khi nhận văn bản m0 và chữ ký (σ p,V,w,U p) sẽ tiến hành các bướ c sau: (1) Kiểm tra m0 và bảo đảm w có thỏa mãn các điều kiện liên quan hay không. (2) Kiểm tra xem n người ký có được ngườ i ủy quyền ủy nhiệm hay không. Nếu không thì dừng và từ chối chữ ký. 46
(3) Tính các giá tr ị: h = H2(w)
ℎ3 = H (m ,w) ℎ[ ] 3
’
=
(4) Kiểm tra điều kiện sau nếu đúng thì chấ p nhận chữ ký, ngượ c lại từ chối:
e(P,σ p) = e(P pub, 3 Q pk + U p) (3.4)
ℎ
- Chứng minh.
e(P,σ p) = e(P pub, 3 Q pk + U p)
ℎ (,σ ) (,ℎ3 ) =
(,[ℎ3 x ) (,ℎ3 )
=
(,[ℎ3( ℎ ) ]) (,ℎ3 )
=
(,[ℎ3(ℎ ℎ ) ]) (,ℎ3 ) =
(,[ℎ3(ℎ ℎ ) ]) ( ,ℎ3 ) =
(,[ℎ3(ℎ ℎ ) ]) (,ℎ3 ) =
( ,[ℎ3(ℎ ℎ )]) ( ,ℎ3 ) =
47
( ,ℎ3[[(ℎ ℎ ]) (,ℎ3 ) =
(,ℎ3[ℎ[ ]) (,ℎ3 ) = (,ℎ3 ) (,ℎ3 ) Biểu thức cuối cùng đúng khi ℎ3 = ℎ3 Nghiên cứ u thự c nghiệm lược đồ chữ ký số tập thể trên hệ mật IDBased - Chương trình thực nghiệm chữ ký số t ậ p thể trên hệ mật ID-Based đượ c xây dựng trên ngôn ngữ lậ p trình Python. 3.2.3.
- Cài đặt, sử dụng phần mềm Netbeans IDE 8.1 trên máy tính để thực nghiệm chương trình.
Hình 3.3. Giao diện chính của phần mềm Netbeans IDE 8.1 - Thêm plugins để chạy code Python 48
Vào Tool -> plugins -> downloaded -> add plugins - Cài đặt PyQT5 để lậ p trình giao diện cho chương trình.
Chương trình có sử dụng 1 số module của PyQT5 như: + QtCore: là module bao gồm phần lõi không thuộc chức năng GUI, ví dụ dùng để làm việc với thời gian, file và thư mục, các loại dữ liệu, streams, URLs, mime type, threads hoặc processes. + QtGui: bao gồm các class dùng cho việc lập trình giao diện (windowing system integration), event handling, 2D graphics, basic imaging, fonts và text. + QtWidgets: bao gồm các class cho widget, ví dụ: button, hộp thoại, … được sử dụng để tạo nên giao diện người dùng cơ bản nhất. - Code giao diện cho chương trình: from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(949, 582) Dialog.setAutoFillBackground(False) self.lText1 = QtWidgets.QLabel(Dialog) self.lText1.setGeometry(QtCore.QRect(280, 20, 451, 31)) font = QtGui.QFont() font.setFamily("Tahoma") font.setPointSize(14) self.lText1.setFont(font) self.lText1.setObjectName("lText1") self.pushButton = QtWidgets.QPushButton(Dialog) self.pushButton.setGeometry(QtCore.QRect(280, 440, 101, 31)) self.pushButton.setObjectName("pushButton")
49
self.QLE_mes = QtWidgets.QLineEdit(Dialog) self.QLE_mes.setGeometry(QtCore.QRect(280, 399, 631, 31)) self.QLE_mes.setObjectName("QLE_mes") self.label = QtWidgets.QLabel(Dialog) self.label.setGeometry(QtCore.QRect(130, 400, 141, 21)) font = QtGui.QFont() font.setPointSize(12) self.label.setFont(font) self.label.setObjectName("label") self.QTE_KQ = QtWidgets.QPlainTextEdit(Dialog) self.QTE_KQ.setGeometry(QtCore.QRect(280, 490, 631, 71)) self.QTE_KQ.setObjectName("QTE_KQ") self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setGeometry(QtCore.QRect(260, 81, 21, 21)) font = QtGui.QFont() font.setPointSize(12) font.setItalic(True) -def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", MULTISIGNATURE"))
"ID
BASED
self.lText1.setText(_translate("Dialog", "CHỮ KÝ SỐ TẬP THỂ DỰ A TRÊN HỆ MẬT ID-BASED")) self.pushButton.setText(_translate("Dialog", "KÝ"))
self.label.setText(_translate("Dialog", "Thông điệ p cần ký:")) self.label_2.setText(_translate("Dialog", "k:")) self.label_3.setText(_translate("Dialog", "P:")) self.label_4.setText(_translate("Dialog", "ID_ ủy nhiệm:"))
50
self.label_5.setText(_translate("Dialog", "ID_ngườ i ký 1:")) self.label_6.setText(_translate("Dialog", "ID_ngườ i ký 2:"))
self.label_7.setText(_translate("Dialog", "ID_ngườ i ký 3:")) self.label_8.setText(_translate("Dialog", "Chữ ký tậ p thể ủy nhiệm:")) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_()) // Mã nguồn d ựa trên thuật toán chữ ký t ậ p thể
def _algo4a(t, u): '''computing of $(-t^2 +u*s -t*p -p^2)^3$ The algorithm is by J.Beuchat et.al, in the paper of "Algorithms and Arithmetic Operators for Computing the $eta_T$ Pairing in Characteristic Three", algorithm 4 in the appendix ''' c0 = f3m.cubic(t) # c0 == t^3 c1 = f3m.cubic(u) f3m.neg(c1, c1) # c1 == -u^3 m0 = f3m.mult(c0, c0) # m0 == c0^2 v0 = f3m.zero() f3m.neg(m0, v0) # v0 == -c0^2 f3m.sub(v0, c0, v0) # v0 == -c0^2 -c0 f3m._add2(v0) # v0 == -c0^2 -c0 -1 v1 = c1
51
v2 = f3m.one() f3m.sub(v2, c0, v2) # v2 == 1 -c0 return [[v0, v1], [v2, f3m.zero()], [f3m.two(), f3m.zero()]] def _algo4(xp, yp, xq, yq): re = f3m._m % 12 xp = f3m._clone(xp) f3m._add1(xp) # xp == xp + b yp = f3m._clone(yp) if re == 1 or re == 11: f3m.neg(yp, yp) # yp == -\mu*b*yp, \mu == 1 when re==1, or 11 xq = f3m.cubic(xq) # xq == xq^3 yq = f3m.cubic(yq) # yq == yq^3 t = f3m.zero(); f3m.add(xp, xq, t) # t == xp+xq nt = f3m.zero() f3m.neg(t, nt) # nt == -t nt2 = f3m.mult(t, nt) # nt2 == -t^2 v2 = f3m.mult(yp, yq) # v2 == yp*yq v1 = f3m.mult(yp, t) # v1 == yp*t if re == 7 or re == 11: # \lambda == 1 nyp = f3m.zero(); f3m.neg(yp, nyp) # nyp == -yp nyq = f3m.zero(); f3m.neg(yq, nyq) # nyq == -yq a1 = [[v1, nyq], [nyp, f3m.zero()], [f3m.zero(), f3m.zero()]] # a1 == \lambda*yp*t -\lambda*yq*s -\lambda*yp*p else: # \lambda == -1 f3m.neg(v1, v1) # v1 == -yp*t a1 = [[v1, yq], [yp, f3m.zero()], [f3m.zero(), f3m.zero()]] a2 = [[nt2, v2], [nt, f3m.zero()], [f3m.two(), f3m.zero()]] # a2 == -t^2 +yp*yq*s -t*p -p^2
52
R = f36m.mult(a1, a2) for _ in range((f3m._m - 1) // 2): R = f36m.cubic(R) xq = f3m.cubic(xq) xq = f3m.cubic(xq) f3m._add2(xq) # xq <= xq^9-b yq = f3m.cubic(yq) yq = f3m.cubic(yq) f3m.neg(yq, yq) # yq <= -yq^9 f3m.add(xp, xq, t) # t == xp+xq f3m.neg(t, nt) # nt == -t nt2 = f3m.mult(t, nt) # nt2 == -t^2 u = f3m.mult(yp, yq) # u == yp*yq S = [[nt2, u], [nt, f3m.zero()], [f3m.two(), f3m.zero()]] R = f36m.mult(R, S) return R -def pairing(x1, y1, x2, y2): '''computing the Tate bilinear pairing :param x1: the x coordinate of element $P=[x1, y1]$ :type x1: list :param y1: the y coordinate of element $P=[x1, y1]$ :type y1: list :param x2: the x coordinate of element $R=[x2, y2]$ :type x2: list :param y2: the y coordinate of element $R=[x2, y2]$ :type y2: list :returns: the result
53
''' if (f3m._m - 1)//2 % 2 == 0: f = _algo5 else: f = _algo4 v = f(x1, y1, x2, y2) return _algo8(v) def init(bits_of_order_of_G1): '''init whole module. making sure the order of G1 is at least $bits_of_order_of_G1$''' for p in _params: p = p.split() bit_num = int(p[2]) if bit_num >= bits_of_order_of_G1: m, t, _, order = map(int, p[:4]) f3m._set_param(m, t) ecc._order = order x, y = p[4:] ecc._x = f3m._from_str(x) ecc._y = f3m._from_str(y) return raise NotImplementedError('max supported bit num is 911')
54
- Giao diện chương trình:
Hình 3.4. Giao diện chương trình 3.3.
K ết luận chương 3
Chương cuối này, đầu tiên ta nghiên cứu v ề chữ ký s ố dựa trên cặ p Song tuyến tính cụ thể ở lược đồ chữ ký số tậ p thể Boldyreva. Phần thứ hai của chương đi vào nghiên cứu th ực nghiệm chữ ký số t ậ p th ể trên hệ mật ID-Based. Trong mục chính của đề tài này ta sẽ hiểu rõ hơn về hệ mật ID-Based trên nền tảng hệ mật đườ ng cong Elliptic, tiếp đó đến chữ ký số tậ p thể trên hệ mật IDBased và cuối cùng là nghiên cứu thực nghiệm chữ ký số tậ p thể trên hệ mật IDBased.
55
K ẾT LUẬN * Các k ết quả đạt đượ c - Đồ án đã nêu rõ các vấn đề c ần nghiên cứu v ề ch ữ ký số, ch ữ ký số t ậ p thể các ứng d ụng c ủa ch ữ ký số trong bảo mật thông tin, nêu tổng quan các vấn đề nghiên cứu trong nướ c và trên thế giớ i về các chữ ký số tậ p thể. - Giớ i thiệu sơ lượ c về tình hình nghiên cứu chữ ký số tậ p thể sau đó là tậ p trung nghiên cứu các lược đồ chữ ký số tậ p thể trên các hệ mật khác nhau: hệ mật RSA, hệ mật Elliptic nhằm mục đích hiểu một cách tổng quan về các hệ mật khóa công khai, chữ ký số trên các hệ mật (chữ ký số RSA, chữ ký số tậ p thể RDSA, Itakura và Nakamura) và các lược đồ chữ ký số tậ p thể trên các hệ mật (Lược đồ chữ ký số tậ p thể Khali và Farah, Lược đồ chữ ký tậ p thể Harn và Kiesler, Lược đồ chữ ký số tậ p thể Popescu), chữ ký s ố dựa trên cặ p Song tuyến tính cụ thể ở lược đồ chữ ký số tậ p thể Boldyreva. - Nghiên cứu và thực nghiệm lược đồ chữ ký số tậ p thể trên hệ mật IDBased.
* Hướ ng phát triển - Đề xuất mô hình ứng dụng chữ ký số nhằm đáp ứng các yêu cầu đặt ra khi triển khai một Chính phủ điện t ử trong thực t ế xã hội, áp dụng phù hợ p cho các đối tượ ng là các tổ chức, các cơ quan hành chính, các doanh nghiệp,… - Phát triển lược đồ chữ ký số theo hệ mật ID-Based có độ an toàn cao và hiệu quả thực hiện cao theo mô hình đã đề xuất.
56
TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt [1] Đặng Minh Tuấn (2016), Chữ ký số tậ p thể, Chuyên đề Tiến sĩ, Viện Khoa học và Công nghệ Quân Sự, Bộ Quốc Phòng, Hà Nội. [2] Đặng Minh Tuấn (2016), Hệ Mật mã khóa công khai dựa trên đườ ng cong Elliptic, Chuyên đề Tiến sĩ, Viện Khoa học và Công nghệ Quân Sự, Bộ Quốc Phòng, Hà Nội. Tài liệu Tiếng Anh [3] Whitfield Diffie and Martin E. Hellman (1976), “New Directions in Cryptography”, IEEE Trans. Info. Theory, IT-22 (6), pp. 644 – 654. [4] R.L. Rivest, A. Shamir, and L. Adleman (1978), “A Method for Obtaining Digital Signatures and Public-Key Cryptosystems”, Commun. ACM, 21, pp. 120 – 126. [5] Shafi Goldwasser, Silvio Micali, and Ronald L.Rivest (1988), “A Digital Signature Scheme Secure Against Adaptive Chosen-Message Attacks”, SIAM Journal on Computing - Special issue on cryptography, 17 (2), pp. 281 – 308. [6] Rafail Ostrovsky (2010), Foundations of Cryptography, CS 282A/MATH 209A. [7] Yehuda Lindell (2010), Foundations of Cryptography, Bar-Ilan University. [8] Chih-Yin Lin, Tzong-Chen Wu, and Jing-Jang Hwang (2001), “ID based structured multisignature schemes”, Advances in Network and Distributed Systems Security, Kluwer Academic Publishers, Boston, pp. 45 – 59. [9] Chris J. Mitchell (December 2001), “An attack on an ID -based multisignature scheme ”, Royal Holloway, University of London, Mathematics Department Technical Report RHUL-MA-2001-9.
[10] Constantin Popescu (2003), “A Digital Multisignature Scheme with Distinguished Signing Responsibilities”, Studies in Informatics and Control. [11] Mihir Bellare and Gregory Neven (2006), “Multi -Signatures in the Plain Public-Key Model and a General Forking Lemma”, ACM CCS. 57