TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINMẬT MÃ HỌCBÁO CÁO THỰC HÀNH LAB 4GVHD: TS... Hash function+ Sử dụng thư viện OpenSSL+ Các hàm SHA2, SHA3 nhận đầu vào là message const char *Input , me
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
MẬT MÃ HỌC BÁO CÁO THỰC HÀNH LAB 4
GVHD: TS Nguyễn Ngọc Tự
Lớp: NT219.O22.1 Sinh viên thực hiện:
Phạm Mạnh Kha - 22520600
□□ Tp Hồ Chí Minh, 02/2024 □□
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……., ngày…… tháng……năm 2024
Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 3Ⅰ Cấu hình máy tính
CPU: Intel® Core™ i5-10210U CPU @ 1.60GHz 4 nhân 8 luồng
RAM: 12Gb
Graphic: Intel UHD 620
OS: Ubuntu 22.04 & Window 11
Disk: 512Gb
Thực
1 Hash function
+ Sử dụng thư viện OpenSSL
+ Các hàm SHA2, SHA3 nhận đầu vào là message ( const char
*Input ), message file nếu có (const char *Inputfile) , và output file nếu
có ( const char* Outputfile )
+ Các hàm SHAKE128 SHAKE256 nhận đầu vào là message ( const char *Input ), message file nếu có (const char *Inputfile) , output file nếu có ( const char* Outputfile ), và output length.
Hàm SHA224
Trang 4Các bước thực hiện: Sử dụng python và thư viện pyqt6
Tạo file so từ code C++
Lập trình Python để tạo các hàm có thể gọi các hàm từ code C++
Lập trình giao diện, kết nối các hàm với các button, lineedit…
Giao diện thực hiện hàm SHA224, với input là file “test.txt”, output là file
“output.txt” Các tham số không dùng đến thì nhập là “0”
Giao diện thực hiện hàm SHA224, với input nhập từ người dùng và xuất ra kết quả ( không lưu vào file ):
Trang 5Giao diện thực hiện hàm SHAKE128, với input nhập vào từ người dùng, d = 64:
Trang 61.3 So sánh khi chạy trên Window và Linux
Trang 7Inputsize Function Window Linux
2MB
SHA3-224 0.002 0.005107 SHA3-256 0.002 0.005141 SHA3-384 0.003 0.005211
SHAKE256 0.008 0.005298
chậm hơn các thao tác tương ứng trên Window một chút
không có nhiều khác biệt trên cả 2 hệ điều hành
2 PKI and Digital Certificate
2.1 Mô tả
Sử dụng thư viện OpenSSL, người dùng chọn chứng chỉ cần kiểm tra thông tin và format (DER, PEM) của chứng chỉ, sau đó các thông tin của chứng chỉ hợp lệ sẽ được xuất ra màn hình
Trang 83 Collision and length extension attacks on Hash functions
3.1 Two collision messages have the same prefix string:
Sử dụng md5_fastcoll để tạo ra 2 file có chung mã hash MD5 từ
prefix.txt:
Trang 93.2 Two different C++ programs but have the same MD5:\
Các bước thực hiện:
B1: Biên dịch chương trình thành file o
B2: Sử dụng bless để tìm offset (12320 theo decimal) của vị trí 0x41 (A) xuất hiện
Trang 10B3: Sử dụng offset để tạo file prefix và suffix
B4: Dùng md5_fastcoll để tạo ra file1, file2
B5: Tạo testcode1, testcode2 có chung mã băm
Trang 11Sử dụng hashpump với các tham số:
message: thisismessage
key: thisisthekeyiuse, length = 16
M = thisisthekeyiusethisismessage
pad: padding