4. Chương 4: THỬ NGHIỆM CHƯƠNG TRÌNH CHỮ KÝ SỐ BỘI TRÊN ĐƯỜNG
4.1 CẤU HÌNH HỆ THỐNG
Nhằm chứng minh tính đúng đắn của hai lược đồ chữ ký bội đã được đề xu t ở chương 2, trong phần này, tác giả xây dựng phần mềm thử nghiệm mô phỏng các hoạt động tạo khóa, kiểm tra và xác thực chữ ký trong hai lược đồ chữ ký bội tuần tự và ngang hàng.
Phần mềm thử nghiệm sẽ được cài đặt trên máy tính của các thành viên tham gia vào quá trình tạo chữ ký. Phần mềm cho phép các cá nhân có thể ký và kiểm tra sự hợp lệ của chữ ký và bảo toàn văn bản. Để đáp ứng các mục tiêu trên, yêu cầu tối thiểu về c u hình phần cứng và phần mềm của hệ thống như sau:
4.1.1 Cấu hình phần c ng
Yêu cầu phần cứng của chương trình:
CPU
- Tối thiểu: 1GHz pentinum processor
- Đề nghị: 2GHz pentinum processor hoặc cao hơn
RAM
- Tối thiểu: 1 GB
- Đề nghị: 2 GB hoặc cao hơn
HDD
- Tối thiểu: 50 GB
4.1.2 Cấu hình phần mềm
Yêu cầu phần mềm của chương trình:
- Máy phải cài đặt và sử dụng một trong các hệ điều hành sau : window 2000, window XP (pack 1,2,3), window server, window 7.
4.2 CÁC THÀNH PHẦN CỦA CHƯƠNG TRÌNH
Chương trình thử nghiệm sử dụng ngôn ngữ Matlab minh họa cho hai lược đồ chữ ký bội trên đường cong Elliptic (tuần tự và ngang hàng). Mỗi một lược đồ gồm bốn phần chính:
- Khởi tạo và thực hiện các phép toán trên đường cong Elliptic - Tạo khóa
- Tạo chữ ký bội - Xác thực chữ ký bội
Hình 4.1. Chương trình mô phỏng lược đồ chữ ký bội ngang hàng
4.2.1 Khởi tạo và thực hiện các ph p toán trên đường cong Elliptic
Khởi tạo các tham số của đường cong Elliptic (như a,b,p,n), điểm cơ sở (G), số thành viên tham gia ký (N).
4.2.2 Tạo khóa
Trên cơ sở các tham số khởi tạo, phần này tạo ra khóa công khai (pub) của cả nhóm và khóa bí mật cho từng cá nhân (pri).
4.2.3 Tạo chữ ký bội
Sử dụng hàm băm mật mã kết hợp với văn bản cần ký và các tham số đã khởi tạo để tạo chữ ký bội cho cả nhóm. Chữ ký bội trên file đại diện đầu vào được thình
thành trên cơ sở hai lược đồ chữ ký bội tuần tự và ngang hàng đã được đề xu t trong phần trước.
4.2.4 Xác thực chữ ký bội
Trên cơ sở nhận được văn bản, chữ ký bội và các tham số công khai, phần này tiến hành xác thực tính hợp lệ của chữ ký và tính toàn vẹn của văn bản.
4.3 CHƯƠNG TRÌNH
4.3.1 Lược đồ chữ ký bội ngang hàng
Khởi tạo và thực hiện các phép toán trên đường cong Elliptic: bao gồm một số chương trình con (được mô tả trong bảng 4.1)
Bảng 4.1. Các chương trình con kh i tạo và thực hiện các phép toán trên đường cong Elliptic cho lược đồ ngang hàng
STT Tên chương trình Ch c năng Đầu vào Đầu ra
1. [EZp,G]=Ellip_point(a,b,p)
Khởi tạo đường cong Elliptic, chọn điểm cơ sở G a,b,p: Các hệ số của phương trình mô tả đường cong Elliptic -Ezp: Các điểm trên đường cong -G: Điểm cơ sở
2. C=Eadd(A,B)
Thực hiện phép cộng hai điểm trên đường cong Elliptic
A,B là hai điểm trên đường cong Elliptic C: Kết quả của phép cộng hai điểm A,B và cũng thuộc đường cong Elliptic 3. C=Emul(k,A) Nhân một điểm thuộc đường cong
với một số -A: Điểm thuộc đường cong -k: Hệ số nhân C: Kết quả của phép nhâ điểm A với hệ số k và cũng thuộc đường cong Elliptic 4. C=Esub(A,B) Thực hiện phép trừ hai điểm trên đường cong Elliptic
A,B là hai điểm trên đường cong Elliptic C: Kết quả của phép trừ hai điểm A,B và cũng thuộc đường cong Elliptic
Tạo khóa:
- Cú pháp chương trình: [pub, pri]=parallel_makekey(N,p,G)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G).
- Đầu ra: Khóa công khai (pub) cho N thành viên và khóa bí mật (pri) cho mỗi thành viên trong nhóm.
- Cách thức thực hiện: Khóa bí mật (pri) của mỗi thành viên trong N là một số lớn ngẫu nhiên, khóa công khai là tổng của các khóa bí mật này nhân với điểm cơ sở G.
Tạo chữ ký bội
- Cú pháp chương trình: [E,S]=parallel_makesig(N,p,G,pri,s)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G), khóa bí mật(pri), văn bản cần ký (s)
- Đầu ra: Thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S).
- Cách thức thực hiện: E là đầu ra hàm băm của văn bản (s) và các tham số ngẫu nhiên tùy thuộc vào từng thành viên tham giá ký bội. S được tạo thành từ E , pri và các tham số ngẫu nhiên khác theo thuật toán đã trình bày ở hình 2.4.
Xác thực chữ ký bội
- Cú pháp chương trình: [H,Z]=parallel_verify(S,G,pub,E,s,p)
- Đầu vào: Tham số của đường cong Elliptic (G và p), văn bản nhận được (s), khóa công khai (pub), thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S).
- Đầu ra: Thành phần thứ nh t của chữ ký cho việc xác thực (H), thành phần thứ hai của chữ ký cho việc xác thực (Z).
- Cách thức thực hiện: Xác định Z từ thành phần thứ nh t và thứ hai của chữ ký (E,S), kết hợp với các tham số công khai: Điểm cơ sở G, khóa công khai của cả nhóm pub, cùng với văn bản nhận được (s). F là đầu ra hàm băm của văn bản (s) và Z ( xác thực chữ ký hợp lệ khi giá trị H = E).
Khởi tạo và thực hiện các phép toán trên đường cong Elliptic: Tương tự như lược đồ ngang hàng, bao gồm một số chương trình con (được mô tả trong bảng 4.1)
Tạo khóa:
- Cú pháp chương trình: [pub, pri,L]=serial_makekey(N,p,G)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G).
- Đầu ra: Khóa công khai (pub) cho N thành viên và khóa bí mật (pri) cho mỗi thành viên trong nhóm.
- Cách thức thực hiện: Khóa bí mật (pri) của mỗi thành viên trong N là một số lớn ngẫu nhiên, khóa công khai là tích tuần tự của các khóa bí mật này với điểm cơ sở G.
Tạo chữ ký bội tuần tự
- Cú pháp chương trình: [E,S,R,T]=serial_makesig(N,p,G,pri,s)
- Đầu vào: Số thành viên (N), tham số của đường cong Elliptic (p,G), khóa bí mật(pri), văn bản cần ký (s)
- Đầu ra: Thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S), các tham số công khai cho việc xác thực (R và T);
- Cách thức thực hiện: E là đầu ra hàm băm của văn bản (s) và các tham số ngẫu nhiên tùy thuộc vào từng thành viên tham giá ký bội. S được tạo thành từ E , pri và các tham số ngẫu nhiên khác theo thuật toán đã trình bày ở hình 2.5.
Xác thực chữ ký bội tuần tự
- Cú pháp chương trình: [H,Z]=serial_verify(S,G,R,T,pub,E,s,p)
- Đầu vào: Tham số của đường cong Elliptic (G và p), văn bản nhận được (s), khóa công khai (pub), thành phần thứ nh t của chữ ký (E), thành phần thứ hai của chữ ký (S), các tham số công khai cho việc xác thực (R và T); - Đầu ra: Thành phần thứ nh t của chữ ký cho việc xác thực (H), thành phần
thứ hai của chữ ký cho việc xác thực (Z).
- Cách thức thực hiện: Xác định Z từ thành phần thứ nh t và thứ hai của chữ ký (E,S), hai tham số R và T, kết hợp với các tham số công khai: Điểm cơ sở G, khóa công khai của cả nhóm pub, cùng với văn bản nhận được (s). F là đầu ra hàm băm của văn bản (s) và Z ( xác thực chữ ký hợp lệ khi giá trị H = E).
4.4.1 Chương trình lược đồ chữ ký số bội ngang hàng
Bước 1: Trên môi trường Matlab chạy chương trình PmultisigGui
Bước 2- Khởi tạo tham số:
Nhập số lượng thành viên vào ô Number of Member. Nhập nội dung văn bản cần mã hóa vào ô Message hoặc mở từ một file đã lưu trữ bằng nút Browse
Hình 4.3. Kh i tạo chương trình chữ ký bội ngang hàng
Bước 3- Tạo khóa bí mật và công khai
Nh n nút P B để tạo khóa công khai, nh n nút PRI để tạo khóa bí mật cho các thành viên. Các giá trị của khóa sẽ được hiển thị trên chương trình ở các ô hiển thị bên cạnh tương ứng (hình 4.4).
Bước 4 - Tạo chữ ký bội
Khi nh n vào nút First Element (E), chương trình sẽ tính toán và hiển thị giá trị đầu ra của hàm băm văn bản đã ký với các tham số ngẫu nhiên. Nếu nh n vào nút
Second Element (S), chương trình sẽ đưa ra thành phần thứ hai của chữ ký bội (là cơ sở cho việc xác thực chữ ký bội sau này). Hình 4.5 minh họa quá trình tạo chữ ký đã được mô tả ở trên.
Hình 4.4. Tạo khóa bí mật và công khai
Hình 4.5. Tạo chữ ký bội ngang hàng
Bước 5 – Xác thực chữ ký
Để xác thực chữ ký ta có thể nhập vào một văn bản như có nội dung như văn bản gốc trong ô Message hoặc mở từ một file đã lưu trữ bằng nút Browse . Nội dung
file sẽ được hiển thị trên ô Content of Sending Message. Khi nh n vào nút First Element (H), chương trình sẽ tính toán và hiển thị giá trị đầu ra của hàm băm văn bản đã ký với các tham số ngẫu nhiên. Nếu nh n vào nút Second Element (Z), chương trình sẽ đưa ra thành phần thứ hai của chữ ký bội. Nếu giá trị H và E là như nhau, ta kết luận văn bản gốc không bị chỉnh sửa và các chữ ký bội là hợp lệ. Quá trình thực hiện cụ thể việc xác thực chữ ký được minh họa trong hình 4.6.
Hình 4.6. Xác thực chữ ký bội ngang hàng
4.4.2 Chương trình lược đồ chữ ký số bội tuần tự
Bước 1: Trên môi trường Matlab chạy chương trình MultisigGui
Bước 2- Khởi tạo tham số:
Nhập số lượng thành viên vào ô Number of Member. Nhập nội dung văn bản cần mã hóa vào ô Message hoặc mở từ một file đã lưu trữ bằng nút Browse như trong phần khởi tạo tham số của chương trình minh họa cho lược đồ chữ ký bội ngang hàng (xem hình 4.7).
Bước 3- Tạo khóa bí mật và công khai
Nh n nút P B để tạo khóa công khai, nh n nút PRI để tạo khóa bí mật cho các thành viên. Các giá trị của khóa sẽ được hiển thị trên chương trình ở các ô hiển thị bên cạnh tương ứng (hình 4.7).
Hình 4.7. Kh i tạo chương trình và kh i tạo khóa bí mật và công khai
Bước 4 - Tạo chữ ký bội
Khi nh n vào nút First Element (E), chương trình sẽ tính toán và hiển thị giá trị đầu ra của hàm băm văn bản đã ký với các tham số ngẫu nhiên. Nếu nh n vào nút
Second Element (S), chương trình sẽ đưa ra thành phần thứ hai của chữ ký. Nút First Parameter (R) và Second Parameter (T) sẽ hiển thị các tham số công khai cần gửi đi nhằm hỗ trợ cho quá trình xác thực chữ ký tuần tự (xem hình 4.8 và 4.9).
Bước 5 – Xác thực chữ ký
Cũng như chương trình chữ ký bội ngang hàng, để xác thực chữ ký ta có thể nhập vào một văn bản như có nội dung như văn bản gốc trong ô Message hoặc mở từ một file đã lưu trữ bằng nút Browse . Nội dung file sẽ được hiển thị trên ô Content of Sending Message. Khi nh n vào nút First Element (H), chương trình sẽ tính toán và hiển thị giá trị đầu ra của hàm băm văn bản đã ký với các tham số ngẫu nhiên. Nếu nh n vào nút Second Element (Z), chương trình sẽ đưa ra thành phần thứ hai của chữ ký bội. Nếu giá trị Hvà E là như nhau, ta kết luận văn bản gốc không bị chỉnh sửa và các chữ ký bội là hợp lệ. Quá trình thực hiện cụ thể việc xác thực chữ ký trong hai trường hợp điển hình (hợp lệ và không hợp lệ) được minh họa trong hình 4.8 và hình 4.9.
Hình 4.8. Tạo và xác thực chữ ký bội tuần tự trong trường hợp đúng
Hình 4.9. Tạo và xác thực chữ ký bội tuần tự trong trường hợp sai
KẾT LUẬN
Sau thời gian nghiên cứu, được sự hướng dẫn tận tình của Thầy giáo PGS.TS. Trịnh Nhật Tiến, tôi đã hoàn thành luận văn “Nghiên cứu chữ ký số bội và ứng dụng trong thương mại điện tử’’.Luận văn đã đạt được ba kết quả chính như sau:
1./ Nghiên cứu tài liệu để hệ thống lại các v n đề sau: - Hệ mật mã trên đường cong Elliptic
- Chữ ký số bội trên đường cong Elliptic
2./ Thử nghiệm ứng dụng chữ ký số bội trong thương mại điện tử Minh chứng: có chương trình.
3./ Đề xu t hai lược đồ chữ ký số bội trên đường cong Elliptic
Minh chứng: Có bài báo đăng tại: Tạp chí Nghiên cứu khoa học và công nghệ Quân sự - Số đặc san ACEIT’12, 11-2012, trang 81-87.
Hướng phát triển tiếp theo của luận văn là: Nghiên cứu cải tiến tăng tốc độ tính toán; Đánh giá, so sánh hiệu quả của hai lược đồ đã đề xu t trên cùng một ứng dụng; Áp dụng hai lược đồ chữ ký bội này trong các lĩnh vực khác ngoài thương mại điện tử.
Do thời gian nghiên cứu có hạn cộng với năng lực bản thân còn hạn chế, luận văn chắc chắn sẽ không tránh khỏi một số sai sót nh t định. Tôi r t mong nhận được ý kiến đóng góp của các Thầy Cô, các bạn đồng nghiệp cùng các cá nhân quan tâm để nội dung luận văn được hoàn thành với ch t lượng tốt hơn.
Cuối cùng, Em xin cảm ơn Thầy giáo PGS.TS. Trịnh Nhật Tiến đã tận tình giúp đỡ em hoàn thành nội dung nghiên cứu đề ra. Xin cảm ơn các Thầy Cô trong Khoa Công Nghệ thông tin – Trường Đại học Công nghệ - Đại học Quốc gia Hà nội đã tận tình giảng dạy cung c p kiến thức cho em trong suốt khóa học.
DANH MỤC CÔNG TRÌNH KHOA HỌC CÓ LIÊN QUAN
1. Dương Thị Mai Thương, Trịnh Nhật Tiến. Lược đồ chữ ký số bội trên đường cong Elliptic. Tạp chí Nghiên cứu khoa học và công nghệ Quân sự - Số đặc san ACEIT’12, 11-2012, trang 81-87.
TÀI LIỆU THAM KHẢO Tiếng Việt:
1. Trịnh Nhật Tiến. Một số v n đề về an toàn thông tin, một số chữ ký dùng trong giao dịch số.
2. Phan Đình Diệu – Lý thuyết mật mã và an toàn thông tin. Nxb Đại học Quốc Gia Hà Nội, 2006.
3. TS. Nguyễn Đăng Hậu. Kiến thức thương mại số 11 - 2004.
Tiếng Anh :
4. Chaum, David, van Heijst, Eugene and Pfitzmann, Birgit, Cryptographically strong undeniable signatures, unconditionally secure for the signer (extended abstract)
5. Ecient Convertible Undeniable Signature Schemes - D.Chaum, E. van Heys
6. K. Itakura and K. Nakamura, “A public key cryp-tosystem suitable for digital multisignatures," NEC Research and Development, vol. 71, pp. 1-8, 1983.
7. T. S. Chen, K. H. Huang, and Y. F. Chung, “Digital multi-signature scheme based on the elliptic curve cryptosystem," J. Computer Science and Technology,vol. 19, no. 4, pp. 570, 2004.
8. D. Liu, P. Lio, and Y. Q. Dai, “Attack on digital multi-signature scheme based on the elliptic curve cryptosystem," Journal of Computer Science and Technology, vol. 22, no. 1, pp. 92-94, 2007.
9. Michels M, P Horster. On the risk of discruption in several multiparty signature schemes. In Asiacrypt’96, LNCS 1163, Kyongju, Korea, Nov, 3-7, 1996, pp.334-345.
10. Hemlal Sahu and Birendra Kumar Sharma. An MSS Based on the Elliptic Curve Cryptosystem. In International Journal of Network Security, Vol.11, No.2, PP.118 - 120, Sept. 2010.
11. Miler V S. ses of elliptic curves in cryptogrphy. In Proc. Crypto’85, LNCS 218, Springer – Verlag, 1985, pp.417-426.
12. Koblitz N.Elliptic curve cryptosystems. Mathematics of Coputation, 1987, 48: 203-209. 13. L. Harn, Group-oriented (t,n) threshold digital signature scheme and digital multisignature, IEEE Proc. on Computers and Digital Techniques, vol.141, no.5, pp.307-313, 1994.
14. A.J.Menezes, P.C. Van Oorschot, and S.A.Vanstone. Handbook of Applied Cryptography. CRC Press, Boca Raton, FL, 1997.
15. Wenbo Mao, Modern Cryptography: Theory and Practice, Prentice Hall PTR, p. 648, 2003.
16. William Stallings, Cryptography and Network Security Principles and Practices, Fourth Edition, Prentice Hall PTR, p. 592, 2005.
17. P. K. Sahoo, Dr. R. K. Chhotray, Dr. Gunamani Jena, Dr. S. Pattnaik - An Implementation Of Elliptic Curve Cryptography - International Journal of Engineering Research & Technology (IJERT) Vol. 2 Issue 1, January- 2013
18. Yunpeng Zhang, Tong Chen, Xianwei Zhang and Weidong Zhao - Improved Digital Signature Scheme Based on Elliptic Curve, Research Journal of Applied Sciences, Engineering and Technology 4(18): 3437-3439, 2012