Báo cáo này trình bày phương pháp Mã hóa IP sử dụng Giải thuật hàm băm (Hash Function) với mã nguồn SHA1 trên công cụ hỗ trợ Quartus II và ModelSim ALTERA. Đưa ra lưu đồ giải thuật cũng như Schematic cho bộ mã hóa. Báo cáo gồm có 4 phần như sau: Phần 1: Giới thiệu về IP Security và tầm quan trọng trong thực tiễn. Phần 2: Trình bày về giải thuật hàm băm và mã nguồn SHA1. Phần 3: Giới thiệu về công cụ hỗ trợ lập trình Quatus II và công cụ mô phỏng ModelSim ALTERA. Phần 5: Mô phỏng chương trình, dạng sóng, đánh giá kết quả đạt được và kết luận.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
-o0o -ĐỒ ÁN MÔN HỌC
MÃ HÓA IP SECURITY CHUẨN MÃ HÓA SHA1
GVHD: PGS.TS Hoàng Trang
SVTH: Phạm Minh Hiếu 1611047
TP.Hồ Chí Minh, 06/2019
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập – Tự do – Hạnh phúc.
-✩ - -✩ -
Khoa: Điện – Điện tử Bộ Môn: Điện tử NHIỆM VỤ ĐỒ ÁN MÔN HỌC
1 HỌ VÀ TÊN: Phạm Minh Hiếu 1611047 2 NGÀNH: ĐIỆN TỬ - VIỄN THÔNG 3 Đề tài: Mã hóa IP Security bằng mã nguồn SHA1 4 Nhiệm vụ : - Nghiên cứu thuật toán Hàm băm (Hash Function) với mã SHA1 - Nghiên cứu lập trình thuật toán SHA1 bằng ngôn ngữ Verilog trên công cụ hỗ trợ Quartus II version 9.0 - Mô phỏng và kiểm tra lại dạng sóng ngõ ra trên công cụ ModelSim ALTERA 5 Ngày giao nhiệm vụ đồ án: 13/3/2019 6 Ngày hoàn thành nhiệm vụ: 3/6/2019 7 Họ và tên người hướng dẫn: Phần hướng dẫn PGS-TS.Hoàng Trang Giao nhiệm vụ đề tài vài giải đáp những khó khăn, thắc mắc khi làm đồ án của sinh viên Nội dung và yêu cầu ĐAMH đã được thông qua Bộ Môn Tp.HCM, ngày… tháng… năm 20 CHỦ NHIỆM BỘ MÔN NGƯỜI HƯỚNG DẪN PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ):
Đơn vị:
Ngày bảo vệ :
Điểm tổng kết:
Nơi lưu trữ luận văn:
Trang 3Đặc biệt em xin chân thành gửi lời cảm ơn sâu sắc đến thầy PGS-TS Hoàng Trang, người đã tận tình hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều kiện giúp đỡ em trong suốt quá trình làm đồ án môn học
Cuối cùng em xin gửi lời cảm ơn đến gia đình, bạn bè đã luôn luôn ủng hộ đồng hành cùng với em trong suốt chặng đường học tập và nghiên cứu tại Đại học Bách Khoa vừa qua.
Em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 3 tháng 6 năm 2019 .
Sinh viên
Phạm Minh Hiếu
Trang 4
TÓM TẮT ĐỒ ÁN
Báo cáo này trình bày phương pháp Mã hóa IP sử dụng Giải thuật hàm băm (HashFunction) với mã nguồn SHA1 trên công cụ hỗ trợ Quartus II và ModelSim ALTERA Đưa
ra lưu đồ giải thuật cũng như Schematic cho bộ mã hóa Báo cáo gồm có 4 phần như sau:
Phần 1: Giới thiệu về IP Security và tầm quan trọng trong thực tiễn
Phần 2: Trình bày về giải thuật hàm băm và mã nguồn SHA1
Phần 3: Giới thiệu về công cụ hỗ trợ lập trình Quatus II và công cụ mô phỏngModelSim ALTERA
Phần 5: Mô phỏng chương trình, dạng sóng, đánh giá kết quả đạt được và kết luận
Trang 5MỤC LỤC
1 GIỚI THIỆU 1
1.1 Tổng quan 1
1.2 Giới thiệu về IP Security và tầm quan trọng trong thực tiễn 1
1.3 Nhiệm vụ đồ án 2
2 LÝ THUYẾT 3
2.1 Tổng quan về hàm băm (Hash Function) 3
2.2 Hàm băm SHA1 4
3 GIỚI THIỆU VỀ CÔNG CỤ HỖ TRỢ LẬP TRÌNH VÀ MÔ PHỎNG NGÔN NGỮ VERILOG 7
3.1 Giới thiệu về phần mềm Quartus II Web Edition Soft Ware 9.0 7
3.2 Giới thiệu về phần mềm hỗ trợ mô phỏng ModelsSim ALTERA STARTER EDITION 6.4a 8
4 XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG MÃ HÓA SHA1 8
4.1 Lập trình bằng code RTL bằng phần mềm Quartus II 8
4.1.1 Thiết kế Project mã hóa bằng Quartus II 8
4.1.2 Lập trình code Verilog cho mã hóa SHA1 10
4.2 Mô phỏng Project bằng Modelsim ALTERA STARTER EDITION 6.4a 12
4.2.1 Tạo file testbench cho Module sha1_block 12
4.2.2 Mô phỏng file testbench bằng dạng sóng ngõ ra 13
5 KẾT QUẢ THỰC HIỆN 14
6 NHẬN XÉT ĐÁNH GIÁ QUÁ TRÌNH VÀ HƯỚNG PHÁT TRIỂN 18
6.1 Nhận xét, đánh giá quá trình 18
6.2 Hướng phát triển 18
7 TÀI LIỆU THAM KHẢO 18
Trang 6DANH SÁCH HÌNH MINH HỌA
Hình 1 - IPSec trong mô hình OSI 2
Hình 2 - Ví dụ về Hàm băm 3
Hình 3 - Khối dữ liệu đầu vào được mở rộng 5
Hình 4 - Lưu đồ giải thuật trong 1 round [2] 6
Hình 5 - Giao diện của Quartus II Web Edition Software 9 7
Hình 6 - Giao diện làm việc của ModelSim Altera Starter Edition 6.4a 8
Hình 7 - Cửa sổ New Project Wizard 9
Hình 8 - Cửa sổ Creat New Verilog HDL file 10
Hình 9 - Module sha1_block 10
Hình 10 - Module w_machine 11
Hình 11 - Bộ đệm MD Buffer 11
Hình 12 - sha1_round 12
Hình 13 - Giao diện của ModelSim Altera Starter Edition 6.4a 13
Hình 14 - Thông báo đã compile thành công file testbench 13
Hình 15 - Giao diện hiển thị dạng sóng của ModelSim 14
Hình 16 - Mô phỏng chuỗi “abc” và kiểm tra lại 15
Hình 17- Mô phỏng chuỗi “MinhHieu” và kiểm tra lại bằng tool 16
Hình 18 - Mô phỏng chuỗi “DHBK” và kiểm tra lại bằng tool 17
DANH SÁCH BẢN Bảng 1 So sánh mã SHA1 và các mã khác cùng họ SHA 6
Trang 71 GIỚI THIỆU
1.1 Tổng quan
Internet là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm cácmạng máy tính được liên kết với nhau Hệ thống này truyền thông tin theo kiểu nối chuyển
gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã được chuẩn hóa (giao
thức IP) Hệ thống này bao gồm hàng ngàn mạng máy tính nhỏ hơn của các doanh nghiệp,
của các viện nghiên cứu và các trường đại học, của người dùng cá nhân và các chính phủ trêntoàn cầu
Mạng Internet mang lại rất nhiều tiện ích hữu dụng cho người sử dụng, một trong các
tiện ích phổ thông của Internet là hệ thống thư điện tử (email), trò chuyện trực tuyến (chat),công cụ tìm kiếm (search engine), các dịch vụ thương mại và chuyển ngân và các dịch
vụ về y tế giáo dục như là chữa bệnh từ xa hoặc tổ chức các lớp học ảo Chúng cung cấp mộtkhối lượng thông tin và dịch vụ khổng lồ trên Internet Ban đầu, các tổ chức cơ quan sử dụngInternet để giới thiệu các sản phẩm và dịch vụ bằng các website của mình Cùng với thờigian, nó sẽ phát triển thành thương mại điện tử, mọi hoạt động kinh doanh, các giao dịchđược thực hiện qua mạng internet Bài toán đặt ra là làm thế nào để bảo mật an toàn cho các
dữ liệu trong quá trình truyền qua mạng? Làm thế nào có thể bảo vệ chống lại các cuộc tấncông trong quá trình truyền tải các dữ liệu đó? Và để trả lời cho các câu hỏi đó thì người ta đãxây dựng lên hệ thống giao thức bảo mật trong quá trình truyền – nhận thông tin IPsec ( IPSecurity)
1.2 Giới thiệu về IP Security và tầm quan trọng trong thực tiễn
Thuật ngữ IPSec là một từ viết tắt của thuật ngữ Internet Protocol Security Giao thứcIPSec được phát triển bởi tổ chức Internet Engineering Task Force (IETF) IPSec bao gồmmột hệ thống các giao thức chuẩn, cung cấp các dịch vụ bảo mật quá trình truyền thông tintrên nền tảng Internet Protocol (IP) Bao gồm xác thực và mã hoá (Authenticating and
Encrypting) cho mỗi gói IP (IP packet) trong quá trình truyền thông tin Mọi giao tiếp trong
một mạng trên cơ sở IP đều dựa trên các giao thức IP Do đó, khi một cơ chế bảo mật caođược tích hợp với giao thức IP, toàn bộ mạng được bảo mật bởi vì các giao tiếp đều đi quatầng 3 (Network layer) trong mô hình OSI (Đó là lý do tại sao IPSec được phát triển ở giaothức tầng 3 thay vì tầng 2)
Trang 8IPSec được thiết kế như phần mở rộng của giao thức IP, được thực hiện thống nhấttrong cả hai phiên bản IPv4 và IPv6 Đối với IPv4, việc áp dụng IPSec là một tuỳ chọn,nhưng đối với IPv6, giao thức bảo mật này được triển khai bắt buộc.
1.3 Nhiệm vụ đồ án
Đồ án nghiên cứu những lý thuyết cơ bản về kiến trúc IPSec và Giải thuật hàm băm (HashFunction) SHA1 qua đó xây dựng được chương trình mô phỏng mã hóa IP bằng ngôn ngữVerilog
Nhiệm vụ chi tiết:
- Tìm hiểu giải thuật hàm băm SHA và các dữ liệu của nó
- Tìm hiểu về các công cụ hỗ trợ lập trình và mô phỏng ngôn ngữ Verilog
- Xây dựng chương trình mô phỏng và đánh giá, rút ra kết luận
Giới hạn đề tài:
Đồ án chỉ thực hiện mô phỏng mã hóa giải thuật hàm băm với mã nguồn SHA1 vàxuât file mô phỏng dưới dạng sóng trên phần mềm ModelSim chứ chưa thực hiện môphỏng thực tế trên KIT FPGA
Hình 1 - IPSec trong mô hình OSI
Trang 92 LÝ THUYẾT
2.1 Tổng quan về hàm băm (Hash Function)
[1] Hàm băm là các thuật toán không sử dụng khóa để mã hóa, nó có nhiệm vụ băm
thông điệp được đưa vào theo một thuật toán h một chiều nào đó, rồi đưa ra một bản băm –
văn bản đại diện – có kích thước cố định Do đó người nhận không biết được nội dung hay độdài ban đầu của thông điệp đã được băm bằng hàm băm Giá trị của hàm băm là duy nhất, vàkhông thể suy ngược lại được nội dung thông điệp từ giá trị băm này
Hình 2 - Ví dụ về Hàm băm
Đặc trưng:
Hàm băm h là hàm một chiều (one-way hash) với các đặc tính:
- Với thông điệp đầu vào xthu được bản băm z = h(x) là duy nhất.
- Nếu dữ liệu trong thông điệp x thay đổi để thành thông điệp x’ thì h(x’) ¹h(x) =>
Hai thông điệp hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau
- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm => Với thông
điệp x thì dễ dàng tính được z = h(x), nhưng lại không thể (thực chất là khó) suy
ngược lại được x nếu chỉ biết giá trị hàm băm h.
Vai trò hàm băm trong mật mã hiện đại:
- Được dùng để xác thực tính nguyên vẹn dữ liệu
- Được dùng trong quá trình tạo chữ kí số trong giao dịch điện tử
Trang 10Các hàm băm lấy một thông báo đầu vào và tạo một đầu ra được xem như là:
- Mã băm (hash code),
- Kết quả băm (hash result),
- Hoặc giá trị băm (hash value)
- Vai trò cơ bản của các hàm băm mật mã là một giá trị băm coi như ảnh đại diện thugọn, đôi khi gọi là một dấu vết (imprint), vân tay số (digital fingerprint), hoặc tómlược thông báo (message digest) của một xâu đầu vào, và có thể được dùng như làmột định danh duy nhất với xâu đó
- Các hàm băm thường được dùng cho toàn vẹn dữ liệu kết hợp với các lược đồ chữ
Trong SHA-1 sử dụng hàm f(t, B, C, D), với 0t79; B, C và D –là các từ 32 bít
Thuật toán Hash SHA-1 được miểu tả bởi các bước sau:
Đầu vào: bản tin có chiều dài <264 bít
Trang 111) Mở rộng bản tin: thêm vào bit để chiều dài bản tin là bội của 512 Quá trình thêm diễn
ra như sau Thêm bit 1 vào cuối bản tin, sau đó thêm vào một số bít 0 để nhận bản tin
có chiều dài là đồng dư với 448 modulo 512, và cuối cùng thêm vào 64 bít, 64bít nàybiểu diễn chiều dài của bản tin ban đầu Bản tin được thêm vào bao gồm các khối M1,
M2, … , Mn, chiều dài mỗi khối là 512 bít
Hình 3 - Khối dữ liệu đầu vào được mở rộng
2) Khởi tạo các biến
9) Nếu i<n, thì i := i+1 và chuyển sang bước 4
Các bước trong quy trình thực hiện giải thuật hàm băm được tóm tắt qua sơ đồ sau:
Trang 12Hình 4 - Lưu đồ giải thuật trong 1 round [2]
Đầu ra: bản băm rút gọn có chiều dài 160 bít là liên kết của các từ 32 bít H0 | H1 | H2 |
H3 | H4 Chú ý: Ngoài SHA-1 chúng ta vừa xem, còn có những thuật toán có chiều dài khác
nhau, nhưng về cơ bản thuật toán là giống SHA-1, nên ở đây không được miêu tả cụ thể màchỉ nêu ra bảng tóm tắt so sánh của các biến dạng khác nhau của SHA
Bảng 1 So sánh mã SHA1 và các mã khác cùng họ SHA
Algorithm Output
size (bits)
Internal state size (bits)
Block size (bits)
Max message size (bits)
Word size (bits)
Rounds Operations Collision
SHA-0 160 160 512 2 64 − 1 32 80 +,and,or,xor,rotfl Yes
SHA-1 160 160 512 2 64 − 1 32 80 +,and,or,xor,rotfl 2 63 attack
Trang 133 GIỚI THIỆU VỀ CÔNG CỤ HỖ TRỢ LẬP TRÌNH VÀ MÔ PHỎNG NGÔN NGỮ VERILOG
3.1 Giới thiệu về phần mềm Quartus II Web Edition Soft Ware 9.0
Quartus II Web Edition Software 9 là phần mền khá nổi tiếng của hãng Altera không
thể thiếu dành cho kỹ sư kỹ thuật điện tử Với Quartus II 9 giúp thiết kế được các mạch linhkiện cũng như mô phỏng quá trình thực hiện, lập trình với ngôn ngữ VHDL, Verilog HDLmột cách tốt nhất, fix bug, hiện thông báo lỗi trong khi quá trình code gặp lỗi
Quartus II 9 đọc các file mạch (netlist) EDIF chuẩn, VHDL và Verilog HDL cũng nhưtạo ra các file netlist này Phần mềm Quartus II sử dụng bộ tích hợp NativeLink@ với cáccông cụ thiết kế cung cấp việc truyền thông tin liền mạch giữa Quartus với các công cụ thiết
kế phần cứng EDA khác Quartus II có môi trường thiết kế đồ họa giúp nhà thiết kế dễ dàngviết mã, biên dịch, soát lỗi, mô phỏng
Hình 5 - Giao diện của Quartus II Web Edition Software 9
Công cụ biên dịch của Quartus II nằm ở trung tâm hệ thống nó cung cấp cho chúng ta quytrình thiết kế khá là mạnh cho phép tùy biến để đạt được thiết kế tối ưu trong dự án Quartus
II cho phép làm việc với nhiều file ở cùng thời điểm, soạn thảo file thiết kế trong khi vẫn cóthể biên dịch hay chạy mô phỏng các dự án khác Công cụ định vị lỗi tự động và các bản tincảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản hơn
Trang 143.2 Giới thiệu về phần mềm hỗ trợ mô phỏng ModelsSim ALTERA STARTER EDITION 6.4a
ModelSim ALTERA STARTER EDITION 6.4a là chương trình mô phỏng và debugcho các thiết kế ASIC và FPGA cực kỳ mạnh mẽ và hiệu quả, khi thiết kế FPGA chúng ta cóthể dùng Modelsim để mô phỏng, kiểm tra, test chương trình… ModelSim ALTERASTARTER EDITION 6.4a là môi trường debug cho các ngôn ngữ như Verilog HDL, VHDL,System C ModelSim hiện nay có các phiên bản là PE,LE,SE,XE ModelSim PE và LE dùngcho các thiết kế nhỏ và trung bình, trong khi bản SE dùng cho các thiết kế FPGA lớn hơn Cácphiên bản PE và SE có trả phí, phiên bản XE và phiên bản Student Edition là miễn phí Bêncạnh đó ModelSim ALTERA STARTER EDITION 6.4a hỗ trợ rất tốt Quartus II Web Edition
Software 9 trong quá trình mô phỏng dựa vào source code RTL đã biên dịch bên Quartus II
Web Edition Software 9
Hình 6 - Giao diện làm việc của ModelSim Altera Starter Edition 6.4a
4 XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG MÃ HÓA SHA1.
4.1 Lập trình bằng code RTL bằng phần mềm Quartus II
4.1.1 Thiết kế Project mã hóa bằng Quartus II
Sau khi khởi động giao diện chính của Quartus II, ta tạo Project bằng File → New
Project Wizard và điền các thông tin cần thiết về Folder chưa Project, tên Project và tên Top– Module Tiếp tới ta cần khai báo họ và tên linh kiện FPGA để cấu hình Ở đây em chọn họ
Trang 15linh kiện CycloneII, tên EP2C70F896C6 (board DE2-70) là kit FPGA được dùng trong môn
học Kỹ Thuật Số với thông số như sau:
Hình 7 - Cửa sổ New Project Wizard
Sau khi cấu hình cho Project, tiếp đến ta bắt đầu soạn thảo code Verilog bằng việc tạomột Verilog HDL file bằng File -> New -> Verilog HDL file -> OK
Trang 16Hình 8 - Cửa sổ Creat New Verilog HDL file 4.1.2 Lập trình code Verilog cho mã hóa SHA1
a) Xây dựng khối SHA1 block:
Để đơn giản cho việc mô phỏng cũng như tính toán thì ở em chọn độ dài của khối dữliệu đầu vào là 512 bits và đầu vào/ đầu ra bao gồm[3]:
- Xung CLK, tín hiệu Start.
- Khối dữ liệu đầu vào block có chiều dài 512 bits.
- Khởi tạo bộ đệm context_initial.
- Dữ liệu đã được mã hóa context_out.
- Biến done cho biết đã thực hiện xong 80 vòng lặp
Hình 9 - Module sha1_block
Trang 17b) Xử lý khối dữ liệu 512 bits
Chia khối Mi thành 16 từ (word) w0, w1, …, w15 mỗi từ 32 bits
Hình 10 - Module w_machine c) Khởi tạo giá trị bộ đệm MD (MD buffer).
Một bộ đệm 160 bits được dùng để lưu trữ các giá trị băm trung gian và kết quả Bộđệm được biểu diễn bằng 5 thanh ghi 32 bits và các giá trị khởi tạo ở dạng số hex như sau:
Trang 18d) Xây dựng khối thực hiện 80 vòng lặp (round).
Phần trọng tâm của giải thuật bao gồm 4 bước thực thiện tất cả 80 vòng lặp (round).Trong đó 4 bước đều có cấu trúc giống nhau chỉ khác ở các hàm logic f1, f2, f3, f4 Mỗi vòngđều có đầu vào là 512 bits đông thời có một bộ đệm 160 bits H0H1H2H3H4 Các thao tác quamỗi vòng lặp sẽ cập nhât lại bộ đệm[4]
Hình 12 - sha1_round
4.2 Mô phỏng Project bằng Modelsim ALTERA STARTER EDITION 6.4a
4.2.1 Tạo file testbench cho Module sha1_block
Để mô phỏng dạng sóng ngõ ra cho module sha1_block ta cần xây dựng file testbenchtrong phần mềm ModelSim ALTERA STARTER EDITION 6.4a Ta chọn File -> New ->Project Sau đó chọn Create New File để thực hiện viết file testbench