ĐẠI HOC QUOC GIA TP. HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA KY THUAT MAY TINH TRAN XUAN NGỌC HOAN - 20521338 NGUYEN LÊ THẢO - 20520932 KHÓA LUẬN TÓT NGHIỆP HIỆN THỰC LOI IP THUAT TOÁN CHỮ KÝ SO (DSA) SỬ DỤNG HE MAT MÃ DUONG CONG ELLIPTIC KET HOP THUAT TOAN BAM SHA-256 TREN FPGA IMPLEMENT IP OF DIGITAL SIGNATURE ALGORITHM USING ELLIPTIC CURVE CRYTOGRAPHY AND SHA-256 ON FPGA CU NHÂN NGANH KỸ THUAT MAY TÍNH GIANG VIEN HUONG DAN ThS. PHAM THANH HUNG TS. TRAN PHUOC XUAN TP.
HO CHÍ MINH, 2024 LỜI CẢM ƠN Trong khoảng thời gian thực hiện đề tài này, chúng tôi nhận được rất nhiều sự đóng góp, hỗ trợ từ quý thầy cô khoa kỹ thuật máy tính nói riêng và trường đại học Công Nghệ Thông Tin nói chung. Sự giúp đỡ day bảo tận tình là một yếu tố vô cùng quan trọng giúp cho việc thực hiện đề tài diễn ra suôn sẻ. Với lòng biết ơn sâu sắc, chúng tôi xin gửi lời cảm ơn chân thành nhất tới toàn thé đội ngũ cán bộ tại trường đại hoc Công Nghệ Thông Tin đã tạo điều kiện thuật lợi, môi trường tuyệt vời trong suốt quá trình đề tài diễn ra. Đồng thời cảm ơn những nhận xét bổ ích, những hỗ tro và các kiến thức nền tảng mà thầy cô đã trao đổi giúp đề tài hoàn thiện hơn.
Đặc biệt, lời cảm ơn chân thành nhất xin được gửi tới ThS. Pham Thanh Hùng, giảng viên hướng dẫn chính của chúng tôi. Thầy đã hướng dẫn cụ thẻ, chỉ bảo và đưa ra những đóng góp quý báu trong quá trình thực hiện. Những đóng góp của thầy không chỉ là những gợi ý về mặt học thuật, khắc phục các khó khăn gặp phải, mà còn là những kinh nghiệm giúp chúng tôi hoàn thiện những thiếu sót của bản thân.
Chúng tôi cũng xin gửi lời cảm ơn tới hội đồng bảo vệ khoá luận, những người đã dành thời gian đánh giá và đưa ra những nhận xét quý báu giúp chúng tôi cải thiện và hoàn thiện hơn đề tài của mình. Cuối cùng, không thể không nhắc đến gia đình, người thân, bạn bè đã tạo động lực, điều kiện, giúp đỡ và hỗ trợ chúng tôi để có thể có được sự tập trung hoàn toàn và nỗ lực hoàn thành tốt việc thực hiện khoá luận này. MỤC LỤC Chương l. _ Tổng quan đề tài.
Mục tiêu để tài.- cv tt the 2 1. Phạm vi để tài.-ccccc th re 3 Chương 2. Co sở lý thuyẾt. So lược về mật mã hỌC.---: 2s s SE SESEEE9E955E1512E2E5E15121215E2E1 1121 xxe.
Vấn đề logarithm rời rạc. Trung itu ann one a. Hệ mật mã đường cong EÏÏIPIC. Tổng quan về đường cong Elliptic.
Thuat toán trên đường cong Elliptic. Nhân các điểm trên đường cong Elliptic. Tham số của hệ mật ECC. Ứng dụng của hệ mật đường cong Elliptic.
_ Thuật toán chữ ký số ECDSA. _ Tổng quan thuật toán chữ ký số ECDSA. _ Thuật toán sinh — xác thực chữ ký số ECDSA. Tóm lược về SHA-256.
_ Cách thức hoạt động. St S2 SH re 23 2. Ứng dụng của hàm băm SHA.--- 2 2+52+E+EE+EE+EEeEEerxerxerkered 26 Churong 6s i0 1. Hiện thực thuật toán ECC.
_ Hiện thực tầng thấp nhất.------¿© ¿22+ +E2EE2E12EE2ExEEEEEEerkerreei 29 3. _ Thuật toán cộng trừ modulO. Thuật toán nhân moduÌO. _ Thuật toán nghịch đảo moduÌO.-- -- 5+ ++sss+ss++sex+eexssss 35 3.
_ Hiện thực tầng trung gian. _ Hiện thực tang trên cùng. _ Hiện thực thuật toán SHA. Hiện thực thuật toán chữ ky số ECDSA.
Xây dựng hệ thống SoC woecceccecceccsscssesssessessessessessessessessessessessecsessesseeaseasease 66 Chương 4. Kết quả hiện thực và đánh giá.---- ¿©2552 ©2++2x+2z++zx>x+szxez 67 AL. Kết quả mô phỏng.----- +©52+2E22EESEE12EE2EE211271712221E211221 E1. Cac khối phép toán moduÏo.
Khối phép tính trên đường cong Elliptic. Khối SHA-256 và ECDSA. So sánh và đánh BIả.- SG 0 2011211121111 1111119 1191118 1 ng ng ng re 86 4. Kết quả sau tông hợp.-----:-©-+¿22++22kt2Ekt2EkSEkerkxerkrerkree 86 4.
Đánh giá thiết kế.ccccccccccccccscssessessessessssecssssssssssssssessssesssessessessessesseesessessesseesess 93 DANH MỤC HÌNH Hình 2.1: Đường cong Elliptic trên trường số thực .-----¿- 2 z2cs+zczzxerxzre¿ 9 Hình 2.2: Phép cộng hai điểm khác nhau trên đường cong Elliptic .3: Phép cộng hai điểm trùng nhau trên đường nhau Elliptic.1: Kiến trúc khối cộng trừ moduÏO.-- 2-2 25s x+£E+£E+£Ee£EzEezErrezreez 31 Hình 3.2: Khối nhân moduÌo.-- 2: 2£ 5¿S£+2E£2EE£EE+2EE2EE2EE£EE+2EEEEEzEEerxzrxerxee 33 Hình 3.3: Máy trạng thái FSM khối nhân modulÌo.--- 2-2 22 +2 £++zx>xze: 34 Hình 3.4: Khối Datapath nghịch đảo modulo.-------¿- z2++:sz+zx+zcxzzsee¿ 35 Hình 3.5: Sơ đồ máy trạng thái FSM khối nghịch đảo modulo.6: Khối Datapath Fp - ALU .7: Máy trạng thái FSM khối Fp - ALLU.- 2-2222 ++ezzzs+zxezrxee 43 Hình 3.8: Khối Datapath EC Unit.----- -- 2 2 2+S2E%+EE£EEEEEEEEEEEeEEerkerrerrerreee 46 Hình 3.9: Khối FSM EC_ Unit với các tín hiệu điều khiên.10: Sơ đồ máy trạng thái FSM khối EC_ Unit.11: Khối Datapath SHA-256.--- 2 2++E2S2+EE2EE£EEEEEEEEEEEEEEEEEerkrrerreee 52 Hình 3.12: Module w[ï] tính toán lap đầy các word còn lại.13: Module tính toán các giá trị a! và e' cho việc lưu các biến.14: Máy trạng thai FSM SHA-256. St S2t S9 re 55 Hình 3.15: Mô hình tong quát khối ECDSA. 2£ 5+ ++EE£+E++EE+EE+zExerxezrxee 57 Hình 3.16: Khối Datapath thuật toán ECDSA.17: Máy trạng thai FSM khối ECDSA.--- 2 ¿£+E++£x+zE++rxzzrszrxez 61 Hình 3.18: So đồ máy trạng thai FSM khối ECDSA.19: Mô hình SOC. 112119112111 119011 110111 19t HT ng ng Hiệp 66 Hình 3.20: Mô hình kết nối SoC trên phần mềm Vivado.txt và inputB.txt sau khi thực hiện random.2: Kết quả mô phỏng một test case phép cộng modulo .3: File kết quả phép cộng modulo từ vivado và python.4: Kết quả mô phỏng một test case phép trừ modulo.5: File kết quả phép trừ modulo từ vivado và python.6: Kết quả mô phỏng một test case phép nhân modulo .7: File kết quả phép nhân modulo từ vivado và python.8: Kết quả mô phỏng một test case phép nghịch đảo modulo .9: File kết quả phép nghịch đảo modulo từ vivado và python.10: Kết quả kiểm tra các test CaSe.11: Kết quả testcase 1 phép tính PA trên công cụ trực tuyến .12: Kết quả testcase 1 phép tinh PD trên công cụ trực tuyến .13: Kết qua mô phỏng testcase 1 trên Vivado .14 Kết quả testcase 2 phép tính PA trên công cụ trực tuyến .15: Kết quả testcase 2 phép tinh PD trên công cụ trực tuyến .16: Kết quả mô phỏng testcase 2 trên Vivado .------- 2+ ©sz+cs>xzcse¿ 72 Hình 4.17: Kết qua testcase 3 phép tính PA trên công cụ trực tuyến .18 Kết quả testcase 3 phép tính PD trên công cụ trực tuyến .19: Kết quả mô phỏng testcase 5 trên công cụ trực tuyến.20: Kết quả testcase 4 phép tính PA trên công cụ trực tuyến .21: Kết quả testcase 4 phép tinh PD trên công cụ trực tuyến .22: Kết quả mô phỏng testcase 4 trên Vivado.------- s¿©sz+2s>x++cs+2 74 Hình 4.23: Kết quả testcase 5 phép tính PA trên công cụ trực tuyến .24: Kết quả testcase 5 phép tinh PD trên công cụ trực tuyến .25: Kết qua mô phỏng testcase 5 trên Vivado.26: Kết quả testcase 1 trên công cụ trực tuyến .----- + sc+secxccxees 76 Hình 4.27: Kết quả mô phỏng testcase 1 trên Vivado.----- 2 x+cx+csscxccxees 76 Hình 4.28: Kết qua testcase 2 trên công cụ trực tuyến .------cc¿+cs+ccszccee 77 Hình 4.29: Kết quả mô phỏng testcase 2 trên Vivado.---¿- -- x+cx+csscxcrxees 77 Hình 4.30: Kết quả testcase 3 trên công cụ trực tuyến .-----cccsc+serxcrxees 77 Hình 4.31: Kết quả mô phỏng testcase 3 trên Vivado.32: Kết qua testcase 4 trên công cụ trực tuyến .--------csc+secxccxee: 78 Hình 4.33: Kết quả mô phỏng testcase 4 trên Vivado.34: Kết quả testcase 5 trên công cụ trực tuyến .------cccs+secxccxees 79 Hình 4.35: Kết quả mô phỏng testcase 5 trên Vivado.------ 2 s+cs+cxscxsrxeẻ 79 Hình 4.36: Kết quả kiểm tra văn bản 1 trên công cụ trực tuyến và Vivado .37: Kết quả kiểm tra văn bản 2 trên công cụ trực tuyến và Vivado .38: Kết quả kiểm tra văn bản 3 trên công cụ trực tuyến và Vivado .39: Kết quả kiểm tra văn bản 4 trên công cụ trực tuyến và Vivado .40: Kết quả testcase 1 ECDSA trên công cụ trực tuyến ¬ 82 Hình 4.41: Kết quả mô phỏng ECDSA testcase 1 trên Vivado.42: Kết quả testcase 2 ECDSA trên công cụ trực tuyến .43: Kết quả mô phỏng ECDSA testcase 2 trên Vivado.44: Kết quả testcase 3 ECDSA trên công cụ trực tuyến .45: Kết quả mô phỏng ECDSA testcase 3 trên Vivado.46: Kết quả testcase 4 ECDSA trên công cụ trực tuyến .47: Kết quả mô phỏng ECDSA testcase 4 trên Vivado.48: Kết quả testcase 4 ECDSA trên công cụ trực tuyến .49: Kết quả mô phỏng ECDSA testcase 5 trên Vivado.50: Kết quả timing khối SHA-256.-- 2-2 2 E+SE+EE+EEeEEZEeEEzErrrerree 87 Hình 4.51: Kết quả tài nguyên sử dung và năng lượng khối SHA-256.52: Kết quả sau khi timing khối EC__Unit.- 2-2-2 s2 s£xe£EzEzzse2 87 Hình 4.53: Kết qua tài nguyên sử dung và năng lượng khối EC_ Unit.54: Kết qua timing khối ECDSA oi.55: Kết qua tài nguyên sử dụng va năng lượng khối ECDSA.56: Thời gian thực thi của khối ECDSA wo.57: Kết quả xuất ra của sô Vitis Console trên kit Virtex 7.58: Kết quả trên công cụ trực tuy@n oes eecccsccsessceseessessessessessessessessessessesseeaes 90 DANH MỤC BANG Bảng 2.1: Thuộc tính của tham số hệ mật đường cong Elliptic qua trường Fp.1: Bang control word máy trạng thái khối nhân Modulo .2: Bang control word máy trạng thái FSM khối nghịch đảo modulo.3: Các bước thực hiện phép tính PA.4: Ví dụ phép tính PA.
2112112111111 55111 1111211111111 1 1 11 He rrkg 39 Bang 3.5: Các bước thực hiện phép tính PD.7: Bảng các tín hiệu điều khiển khối Datapath Fp — ALU .8: Lập lịch thực hiện các phép tính của PA và PD oo.9: Bảng các tín hiệu điều khiến khối Datapath EC_ Unit.10: Bang control word máy trang thái FSM khối EC_ Unit.11: Bang tín hiệu điều khiển khối Datapath SHA-256.12: Bang control word máy trạng thái FSM SHA-256.13: Bang tin hiệu điều khiển khối Datapath ECDSA wo.14: Bang control word máy trang thái FSM khối ECDSA.15: Bang control word máy trạng thai FSM khối ECDSA.1: Bảng tài nguyên sử dụng của thiết kế trên kit VirteX-7.2: Kết qua so sánh khi thực hiện nap kit Virtex 7.3: Bảng so sánh các thuật toán ECC.4: Bảng so sánh các thuật toán ECDSA.- 2c SccSSssrsrrrsrrsrreree 92 DANH MUC TU VIET TAT ECC - Elliptic Curve Cryptography SHA - Secure Hash Algorithm DSA - Digital Signature Algorithm ECDHE - Elliptic Curve Diffie Hellman Ephemeral ECDSA - Elliptic Curve Digital Signature Algorithm RSA - Rivest-Shamir-Adleman FPGA - Field-Programmable Gate Array SoC - System on Chip FIPS - Federal Information Processing Standards NIST - National Institute of Standards and Technology DES - Data Encryption Standard AES - Advanced Encryption Standard ISO - International Organization for Standardization SECG - Standards for Efficient Cryptography Group ANSI - American National Standards Institute IEEE - Institute of Electrical and Electronics Engineers TOM TAT KHÓA LUẬN Trọng tâm của đề tài này là nghiên cứu và hiện thực lõi IP thuật toán chữ ký số (ECDSA), sử dụng hệ mật mã đường cong Elliptic với kích thước khóa nhỏ giúp giảm thiểu tài nguyên nhưng vẫn đảm bảo tính bảo mật tương đương với hệ thống RSA. Đồng thời, lõi IP này kết hợp với thuật toán băm SHA-256 giúp tăng cường thêm tính bảo mật của thuật toán.