You are on page 1of 25

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH
TRƯỜ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


TP. HỒ CHÍ MINH, THÁNG 6 NĂM 2019
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜ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: ...............................
Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

LỜI CẢM ƠN

Để hoàn thành nhiệm vụ đồ án môn học được giao, lời đầu tiên em xin cảm ơn
chân thành đến toàn thể thầy cô trong trường Đại học Bách Khoa TP.HCM nói chung
và các thầy cô trong khoa Điện-Điện Tử, bộ môn Điện Tử nói riêng, những người đã
tận tình hướng dẫn, dạy dỗ và trang bị cho chúng em những kiến thức nền tảng bổ ích
trong suốt những năm vừa qua.

Đặ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

Phạm Minh Hiếu – 1611047 i


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

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 (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.

Phạm Minh Hiếu – 1611047 ii


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

MỤ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

Phạm Minh Hiếu – 1611047 iii


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

DANH 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

Phạm Minh Hiếu – 1611047 iv


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

1. 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ác
mạ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ên
toà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ột
khố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ụng
Internet để 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ời
gian, 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ấn
cô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 ( IP
Security).

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ức
IPSec được phát triển bởi tổ chức Internet Engineering Task Force (IETF). IPSec bao gồm
mộ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 tin
trê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 qua
tầng 3 (Network layer) trong mô hình OSI. (Đó là lý do tại sao IPSec được phát triển ở giao
thức tầng 3 thay vì tầng 2).

Phạm Minh Hiếu – 1611047 1


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

Hình 1 - IPSec trong mô hình OSI

IPSec được thiết kế như phần mở rộng của giao thức IP, được thực hiện thống nhất
trong 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 (Hash
Function) 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.

Phạm Minh Hiếu – 1611047 2


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

2. 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ử.

Phạm Minh Hiếu – 1611047 3


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

Cá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 thu
gọn, đôi khi gọi là một dấu vết (imprint), vân tay số (digital fingerprint), hoặc tóm
lượ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ữ
kí số.

- Một lớp các hàm băm riêng được gọi là mã xác thực thông báo (MAC) cho phép
xác thực thông báo bằng các kĩ thuật mã đối xứng.

2.2. Hàm băm SHA1

Thuật toán hàm băm an toàn SHA (Secure Hash Algorithm) được chấm nhận trong số các
chuẩn của Mỹ năm 1992 và nó được ứng dụng cùng với thuật toán chuẩn chữ ký số DSS. Khi
đầu vào là một bản tin M có chiều dài bất kỳ, đầu ra là là 160 bits rút gọn.

Trong SHA-1 sử dụng hàm f(t, B, C, D), với 0t79; B, C và D –là các từ 32 bít.

f(t, B, C, D) = (B  C)  ((B)  D) khi 0t19

f(t, B, C, D) = B  C  D khi 20t39

f(t, B, C, D) = (B  C)  (B  D)  (C  D) khi 40t59

f(t, B, C, D) = B  C  D khi 60t79

Và sử dụng các hằng số:

Kt = 5A827999 khi 0t19

Kt = 6ED9EBA1 khi 20t39

Kt = 8F1BBCDC khi 40t59

Kt = CA62C1D6 khi 40t79

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.

Phạm Minh Hiếu – 1611047 4


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

1) 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ày
biể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 M 1,
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

H0 := 67452301, H1 := EFCDAB89, H2 := 98BADCFE,

H3 := 10325476, H4 := C3D2E1F0

3) i := 1
4) Chia khối Mi thành 16 từ 32 bít w0, w1, …, w15.
5) Đối với các t: 16t79 wt := (wt-3  wt-8  wt-14  wt-16)<<<1.
6) A := H0, B := H1, C := H2, D := H3, E := H4.
7) Đối với tất cả các t từ 0 đến 79

TEMP := (A <<< 5 + f(t, B, C, D) + E + wt + Kt) mod 232;

E := D; D := C; C := B <<< 30; B := A; A := TEMP.

8) H0 := H0 + A, H1 := H1+B, H2 := H2 + C, H3 := H3 + D, H4 := H4 + E,

Tất cả các lệnh cộng theo modulo 232

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:

Phạm Minh Hiếu – 1611047 5


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

Hì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

Internal Block Max Word


Output
Algorithm state size size message size size Rounds Operations Collision
size (bits)
(bits) (bits) (bits) (bits)

SHA-0 160 160 512 264 − 1 32 80 +,and,or,xor,rotfl Yes

SHA-1 160 160 512 264 − 1 32 80 +,and,or,xor,rotfl 263 attack

SHA-
256/224 256 512 264 − 1 32 64 +,and,or,xor,shr,rotfr None
256/224

SHA-
512/384 512 1024 2128 − 1 64 80 +,and,or,xor,shr,rotfr None
512/384

Phạm Minh Hiếu – 1611047 6


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

3. 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 linh
kiệ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 HDL
mộ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ác
cô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àng
viế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 quy
trì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 tin
cảnh báo khiến việc phát hiện và sửa lỗi trở nên đơn giản hơn

Phạm Minh Hiếu – 1611047 7


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

3.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à debug


cho 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 ALTERA
STARTER 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ùng
cho 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ác
phiê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ên
cạ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ọ

Phạm Minh Hiếu – 1611047 8


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

linh 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:

- Core Voltage: 1.2V.

- Les: 68416.

- User I/Os: 622 (vì khi dùng để mô phỏng SHA1 chuỗi kí tự đầu vào phải lớn hơn
512 bits).

- Memory bits: 1152000.

- Embedded multiplier 9-bit elements: 300.

- PLL: 4.

- Global Clock: 16.

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ạo
một Verilog HDL file bằng File -> New -> Verilog HDL file -> OK.

Phạm Minh Hiếu – 1611047 9


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

Hì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

Phạm Minh Hiếu – 1611047 10


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

b) 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:

- H0 = 67 45 23 01

- H1 = EF CD AB 89

- H2 = 98 BA DC FE

- H3 = 10 32 54 76

- H4 = C3 D2 E1 F0

Hình 11 - Bộ đệm MD Buffer

Phạm Minh Hiếu – 1611047 11


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

d) 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 f 1, 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 H 0H1H2H3H4. Các thao tác qua
mỗ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 testbench
trong 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.

Phạm Minh Hiếu – 1611047 12


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

Hình 13 - Giao diện của ModelSim Altera Starter Edition 6.4a

4.2.2. Mô phỏng file testbench bằng dạng sóng ngõ ra

Sau khi Compile file testbench và trên thanh Transcript báo đã Compile thành công,
ta chọn Libraby ở phía góc trái màn hình. Ta chọn thư mục Work -> testbench để mô phỏng
file testbench vừa viết

Hình 14 - Thông báo đã compile thành công file testbench

Phạm Minh Hiếu – 1611047 13


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

Tiếp đó ta chuột phải vào testbench chọn Add -> To Wave -> All items in region để
thêm các dữ liệu dạng sóng cần mô phỏng lên Wave. Tiếp theo ta chọn Run Length để khai
báo thời gian mô phỏng, ở đây em chọn Run Length = 200ns để quan sát hết 80 vòng lặp của
thuật toán với thời gian xung CLK là 2ps

Khi mô phỏng bằng ModelSim em gán cho dữ liệu đầu vào block là mã ASCII của
các kí tự, ví dụ chuỗi “abc” có mã ASCII là “616263” và dữ liệu đầu ra context_out kiểu
HEX.

Hình 15 - Giao diện hiển thị dạng sóng của ModelSim

5. KẾT QUẢ THỰC HIỆN

Sau quá trình điều chỉnh và sửa chữa code, em cũng đã hoàn thành mục tiêu đề ra của
Đồ án môn học. Để kiểm tra độ chính xác của chuỗi kết quả mô phỏng, em xử dụng Tool
MD5&SHA1 Hash Generator For Text của website http://onlinemd5.com/. Với chuỗi dữ liệu
đầu vào có độ dài 512 bits thì module cho ra kết quả một chuỗi có độ dài 160 bits tương tự
như Tools trên website

Phạm Minh Hiếu – 1611047 14


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

 Chuỗi đầu vào là “abc” cho kết quả context_out là


A9993E364706816ABA3E25717850C26C9CD0D89D

Hình - Mô phỏng chuỗi “abc” và kiểm tra lại

Phạm Minh Hiếu – 1611047 15


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

 Chuỗi đầu vào là “MinhHieu” cho kết quả context_out là


1477C9A71D9222EC5C9C70C64A6E26520F0BC226

Hình - Mô phỏng chuỗi “MinhHieu” và kiểm tra lại bằng tool


Phạm Minh Hiếu – 1611047 16
Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

 Chuỗi đầu vào là “DHBK” cho kết quả context_out là:


E06645978275D4D97E71C9E8B75786F9C182B3D4

Hình 16 - Mô phỏng chuỗi “DHBK” và kiểm tra lại bằng tool

Phạm Minh Hiếu – 1611047 17


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

6. NHẬN XÉT ĐÁNH GIÁ QUÁ TRÌNH VÀ HƯỚNG PHÁT TRIỂN

6.1. Nhận xét, đánh giá quá trình

Sau quá trình tìm hiểu và nghiên cứu đồ án mã hóa IP Security bằng mã nguồn
SHA1 em thầy mình có thêm nhiều kiến thức hơn về lập trình ngôn ngữ Verilog cũng
như hiểu biết hơn về hướng thiết kế vi mạch. Ngoài ra em còn hiểu thêm về các khái
niệm các thuật toán trong giải thuật hàm băm (Hash function) sẽ giúp ích cho em rất
nhiều sau này. Bên cạnh đó nhờ sự hướng dẫn chỉ bảo tận tình của thầy PGS-TS
Hoàng Trang giúp em giải đáp các thắc mắc khó khăn trong quá trình nghiên cứu đồ
án.

Những hạn chế:

- Do đây là một đề tài tương đối mới với em nên trong quá trình thực hiện đề tài còn
nhiều hạn chế và thiếu sót.

- Thời gian làm quen với ngôn ngữ lập trình Verilog chưa nhiều khiến em mất khá
nhiều thời gian để hoàn thành đồ án.

- Do đồ án mới chỉ dừng lại ở mức mô phỏng bằng phần mềm cũng như chưa được
mô phỏng trực tiếp trên KIT FPGA nên chưa thể đánh giá cao giá trị thực tiễn của
đề tài.

6.2. Hướng phát triển

Nhận thấy kết quả thu lại khá khả quan nên với kết quả này, đồ án là bước đệm vững
chắc để hướng đến đề cương và đề tài luận văn sắp tới:

- Có thể xây dựng bộ mã hóa với dữ liệu đầu vào cao hơn, tính bảo mật cao hơn.

- Từ thuật toán SHA1 có thể tự xây dựng cho mình một giải thuật riêng với độ bảo
mật cao hơn.

- Ứng dụng được trên KIT FPGA cũng như phát triển trên các nền tảng vi xử lý
khác.

7. TÀI LIỆU THAM KHẢO

[1] Chương 11 – Hàm băm, tài liệu của Học viện Kỹ thuật Quân sự 2014
[2] Chương 4 – Hàm băm, tài liệu của Bộ môn Khoa học máy tính, Khoa CNTT & TT,
Đại học Cần Thơ.

Phạm Minh Hiếu – 1611047 18


Mã hóa IP Security SHA1 GVHD: PGS.TS Hoàng Trang

[3] Verilog Tuturial http://www.asic-world.com/verilog/veritut.html.


[4] Verilog HDL và Ứng dụng, NXB Đại học Quốc gia TPHCM 2008.

Phạm Minh Hiếu – 1611047 19

You might also like