1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo cuối kỳ môn thiết kế hệ thống số hdl đề tài hiện thực giải thuật mã hóa sha 1

30 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Report Final Semester on Digital System Design HDL - Implementation of SHA-1 Hash Algorithm
Tác giả Nguyễn Đức Hy, Phạm Trọng Huỳnh, Tô Quang Huấn
Người hướng dẫn TS Lâm Đức Khải
Trường học University of Information Technology - Posts and Telecommunications Institute of Technology
Chuyên ngành Computer Engineering
Thể loại Báo cáo cuối kỳ
Năm xuất bản 2022
Thành phố Ho Chi Minh City
Định dạng
Số trang 30
Dung lượng 4,12 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1. INTRODUCTION (0)
    • 1.1. Hash function overview (6)
    • 1.2. General structure of Hash function (7)
    • 1.3. Applications of data encryption (7)
    • 1.4. Encryption method (8)
      • 1.4.1. SHA algorithm (8)
      • 1.4.2. SHA-1 algorithm (9)
    • 1.5. Step- -step of SHA-1 algorithm. ............................................................... 4 by 1. Step 1: Message Padding (0)
      • 1.5.2. Step 2: Append length (10)
      • 1.5.3. Step 3: Divide input into 512 bits block (10)
      • 1.5.4. Step 4: Initialize chaining variable (10)
      • 1.5.5. Step 5: Process block (11)
      • 1.5.6. Step 6: Process each block (11)
      • 1.5.7. Step 7: Process output (12)
    • 1.6. SHA -1 algorithm review (12)
  • Chương 2. SOFTWARE IMPLEMENTATI ON (0)
    • 2.1. Software Introduction (15)
    • 2.2. Algorithm flowchart of SHA-1 algorithm (16)
    • 2.3. SHA-1 algorithm testing results by software (17)
  • Chương 3. HARDWARE IMPLEMENTATION (0)
    • 3.1. Datapath Hardware architecture (18)
      • 3.1.1. Functional block (18)
      • 3.1.2. RTL design architecture (21)
      • 3.1.3. Sharing techniques (21)
      • 3.1.4. Pipeline techniques (22)
    • 3.2. Controller (24)
    • 3.3. Verilog HDL Design (24)
    • 3.4. Verification (25)
      • 3.4.1. Pre- synthesis verification vs Software implementation (25)
      • 3.4.2. Post-synthesis verification vs Software implementation (27)

Nội dung

INTRODUCTION

Hash function overview

Thuật toán Cryptography là lĩnh vực khoa học chuyên sâu về mã hóa và giải mã dữ liệu nhằm bảo vệ thông tin Nó tập trung vào phương pháp chuyển đổi dữ liệu từ dạng rõ (clear text) sang dạng mờ (cipher text) và ngược lại để đảm bảo tính bảo mật của thông tin.

Thuật toán Hashing là một hàm băm mật mã, hoạt động bằng cách ánh xạ dữ liệu có kích thước tùy ý thành hàm băm có độ dài cố định Được thiết kế để mã hóa một chiều, thuật toán này đảm bảo rằng không thể thực hiện mã hóa ngược lại để truy xuất dữ liệu ban đầu Hashing đóng vai trò quan trọng trong bảo mật thông tin và các hệ thống công nghệ thông tin ngày nay.

Hàm băm lý tưởng cần đảm bảo tính nhanh chóng, khả năng trả về một phạm vi giá trị băm rộng, và tạo ra giá trị đầu ra duy nhất cho mỗi giá trị đầu vào Nó phải sinh ra các giá trị băm khác nhau kể cả khi đầu vào gần giống nhau và các giá trị băm không có mẫu rõ ràng Các yêu cầu của hàm hash bao gồm đối số là chuỗi dữ liệu với độ dài không đổi, giá trị băm mang chiều dài cố định, và quá trình tính toán hiệu quả, đảm bảo thời gian ký và kiểm tra nhanh hơn quá trình xử lý dữ liệu gốc Hàm hash còn phải khó vỡ mẻ, tức là khó tìm ra x thỏa mãn H(x) = y, để đảm bảo tính bảo mật, và không va chạm, nghĩa là không thể dễ dàng tìm hai dữ liệu khác nhau có cùng giá trị băm.

General structure of Hash function

Trong các thuật toán xử lý dữ liệu, khi truyền hoặc mã hóa một thông điệp M có độ dài bất kỳ, thường cần thêm các bit bổ sung để đảm bảo thông điệp có độ dài là bội số của một chiều dài cố định Việc chia nhỏ thông điệp M thành các khối có kích thước bằng nhau (M = (M1, M2, , Ms)) giúp tối ưu hóa quá trình tính toán và mã hóa dữ liệu Điều này đảm bảo tính đồng nhất trong quá trình xử lý dữ liệu và cải thiện hiệu quả của các thuật toán bảo mật và truyền thông.

Gọi Hi là trạng thái có kích thước n bit, trong đó n là chiều dài của giá trị hàm băm Hàm nén F thực hiện thao tác trộn khối dữ liệu với trạng thái hiện hành để tạo ra trạng thái mới Quá trình khởi tạo bắt đầu từ H0, bằng vectơ khởi tạo phù hợp Trong các vòng lặp i từ 1 đến s, trạng thái Hi được cập nhật bằng cách áp dụng hàm nén F vào trạng thái trước đó Hi-1 và khối dữ liệu Mi, theo công thức Hi = F(Hi-1, Mi).

Applications of data encryption

Để xác minh xem một tệp đã bị thay đổi hay chưa, bạn có thể tạo ra một checksum khi tải xuống và so sánh nó với checksum của tệp gốc, đảm bảo rằng hai checksum này trùng khớp Nếu hai checksum giống nhau, tức là tệp chưa bị thay đổi hoặc nhiễm mã độc; ngược lại, nếu chúng không khớp, khả năng cao là tệp đã bị chỉnh sửa hoặc bị thay thế bởi phần mềm độc hại Để làm điều này, bạn có thể dùng các công cụ tạo checksum như hàm băm mật mã SHA-1 và so sánh kết quả với checksum được cung cấp trên trang web của nhà phát triển Việc sử dụng checksum giúp đảm bảo tính toàn vẹn của tệp và bảo vệ hệ thống của bạn khỏi các mối đe dọa tiềm tàng do tệp độc hại gây ra.

Mã xác thực thông báo HMAC

3 o Dùng để tạo ra HMAC (Hashed Message Authentication Code) có dạng như sau: HMAC = hashFunction(message + key) o Giả s b n muử ạ ốn cho phép người dùng ch n "quên mọ ật khẩu" và g i mử ột liên kế ặt đt lại mật khẩu được gửi đến địa chỉ e-mail của họ o Bạn đã tạo một khóa bí mật mà chỉ b n mạ ới bi t Hãy gế ọi đây là K o Xây d ng m t chu i bao gự ộ ỗ ồm địa ch e-mail cỉ ủa người dùng, th i gian ờ hiện t i c a máy chạ ủ ủ, mã băm của mật khẩu người dùng hi n t i Hãy gệ ạ ọi tin nh n này là M Tính HMAC c a M, s d ng K làm khóa bí m t T o ắ ủ ử ụ ậ ạ một URL chứa đường dẫn đến trang đặt lại m t kh u c a bậ ẩ ủ ạn và dưới d ng ạ các tham số, địa ch e-mail cỉ ủa người dùng, th i gian hi n t i và HMAC ờ ệ ạ được tạo ở bước trước, ví dụ: https://www.example.com/forgotPassword?user=user%40example.com

&time 151205T131159Z&hmac902ed847ff28930b5f141abfa8b47

Khi người dùng nhận được email, họ sẽ theo dõi URL và truy cập vào trang quên mật khẩu Để đặt lại mật khẩu, người dùng cần trải qua quá trình xác minh để đảm bảo tính xác thực và an toàn Sau khi hoàn thành các bước xác minh đúng quy trình, liên kết đổi mật khẩu là hợp lệ và an toàn, giúp người dùng thay đổi mật khẩu một cách dễ dàng mà không lo bị xáo trộn hoặc lừa đảo.

Encryption method

SHA là viết tắt của Thuật toán Hash an toàn (Secure Hash Algorithm), với phiên bản đầu tiên là SHA-1 ra đời năm 1995 và sau đó là SHA-2 SHA-1 tạo ra hàm băm 160 bit (20 byte), thể hiện dưới dạng số nguyên dài 40 chữ số trong hệ thập lục phân Thuật toán này được thiết kế cho các ứng dụng mật mã, nhưng sớm bị phát hiện có lỗ hổng bảo mật Chính vì vậy, các phiên bản SHA khác đã được xây dựng và phát triển liên tục, hiện nay đã có nhiều loại giải thuật SHA đa dạng được sử dụng rộng rãi.

SHA-1 là một hàm băm mật mã do Cơ quan An ninh Quốc gia Hoa Kỳ thiết kế và được NIST công nhận vào năm 1995 như một phiên bản cải tiến của thuật toán SHA-0.

Trong các giao thức và ứng dụng bảo mật như TLS, SSL, SSH và IPsec, thuật toán được sử dụng để đảm bảo an toàn dữ liệu Khi truyền đạt, các message nhỏ hơn 2^64 bit đều được xử lý qua các thao tác mã hóa và tạo ra mã băm có độ dài 160-bit Mã băm cuối cùng được hình thành sau khi thao tác này cộng thêm phần mã băm trước đó, giúp tăng cường tính toàn vẹn và xác thực của dữ liệu truyền tải.

Thuật toán SHA bao gồm các phiên bản khác nhau như SHA-0, SHA-1 và SHA-2, mỗi loại có cấu trúc riêng biệt để đảm bảo an toàn tối đa SHA-1 có nhiều điểm tương đồng với SHA-0 nhưng đã được chỉnh sửa để khắc phục một lỗi trong đặc tả kỹ thuật của hàm băm ban đầu Các phiên bản này ngày càng được cải tiến nhằm tăng cường độ bảo mật và độ tin cậy trong việc xử lý dữ liệu.

1.5 Step-by-step of SHA-1 algorithm Đầu vào: Chuỗi có độ dài tối đa 2 64 bits Đầu ra: Chuỗi đã được mã hóa, có độ dài 160 bits

Tin nhắn hoặc tệp dữ liệu ban đầu được xem như một chuỗi bit, có thể biểu diễn dưới dạng số HEXA, nhằm chuẩn bị cho quá trình xử lý tiếp theo Mục đích chính của việc đệm tin nhắn là biến chuỗi thành một bội số của 512 bits để dễ dàng chia thành các khối dữ liệu nhỏ hơn trong các bước xử lý sau Quá trình này bao gồm việc thêm 1 bit “1” cùng nhiều số “0” vào sau chuỗi gốc để đảm bảo độ dài phù hợp, từ đó thúc đẩy quá trình mã hóa và tính toán dữ liệu được chính xác hơn Chi tiết các bước thực hiện sẽ được trình bày rõ trong phần tiếp theo của bài viết.

“0” bao nhiêu th phải tính Và cuối cùng là sẽ thêm 2 word(64 bits) vào cuối dãy, 2 word này biểu diễn cho độ dài của tin nhắn gốc [4]

Công việc cần làm là tìm chuỗi nhị phân tự nhiên sao cho độ dài của chuỗi đó nhỏ hơn hoặc bằng n*512 - 64 bits Để đảm bảo điều kiện này, số bit đệm cần thêm vào là 512*n - chiều dài chuỗi gốc - 64 Chúng ta sẽ đệm thêm một bit “1” sau chuỗi gốc, tiếp đó các bit còn lại là “0” để hoàn thiện quá trình đệm bit an toàn Ví dụ minh họa rõ ràng giúp hiểu rõ cách tính toán và thực hiện đệm bit trong quá trình xử lý dữ liệu.

▪ Chuỗi ban đầu có 1000 bits

▪ Áp dụng công thức trên: 1000 n = 3.

Step- -step of SHA-1 algorithm 4 by 1 Step 1: Message Padding

▪ Vậy s bit cố ần đệm là: 512 * 3 - 1000 - 64 = 472 bits

Chúng ta sẽ chuyển đổi độ dài của chuỗi dữ liệu gốc (ký hiệu là L) thành dạng số thập lục phân 64 bit để đảm bảo tính chính xác và tối ưu cho quy trình xử lý dữ liệu Sau đó, giá trị này sẽ được thêm vào phía sau chuỗi đã thu được từ bước đầu tiên, giúp mở rộng và chuẩn hóa dữ liệu để phục vụ các mục đích mã hóa hoặc phân tích Quá trình chuyển đổi này là bước quan trọng trong việc đảm bảo dữ liệu được xử lý một cách chính xác và tối ưu theo chuẩn quốc tế và các quy tắc SEO hiện hành.

Ví dụ: o Độ dài chuỗi gốc là 1000 bits o Đổi: 1000dec = 0x0000000000003E8 hex o Thêm vào chuỗi có được sau bước 1 o Chuỗi cuối cùng thu được sẽ là input cho vi c hash ệ

Hnh 1-2 Quá trình append length [5]

1.5.3 Step 3: Divide input into 512 bits block

Tại bước này chúng ta sẽ chia chuỗi input có được tại bước 2 thành từng khối nhỏ hơn Mỗi khối sẽ có độ lớn là 512 bits [4]

Chúng ta có 5 chuỗi ban đầu được khởi tạo như sau: o H0: 0x67452301

Trong bước 3, mỗi block dữ liệu 512 bits được chia thành 16 khối nhỏ, mỗi khối có độ dài 32 bits, ký hiệu lần lượt là w(0), w(1), , w(15) Các khối này tương ứng với 16 phần của dữ liệu đã chia từ 512 bits ban đầu Đồng thời, các giá trị w(16) đến w(79) sẽ được tạo ra qua quá trình mở rộng dữ liệu này nhằm phục vụ cho các bước xử lý tiếp theo trong thuật toán Việc chia nhỏ và mở rộng dữ liệu này đóng vai trò quan trọng trong quá trình mã hóa, đảm bảo dữ liệu được xử lý chính xác và an toàn.

Hnh 1-4 Xử lý bên trong một block [5] o Với w(16) - w(79): Ta thực hiện vi c tính toán v i công thệ ớ ức dưới đây: w(t) = (w(t-3) XOR w(t-8) XOR w(t-14) XOR w(t-16))

Ngày đăng: 17/08/2023, 10:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] T. L. H. Dũng, “Khoa CNTT, Học viện Kỹ Thuật Quân Sự, Mã Hóa, Chương 11: Hàm băm,” [Trực tuyến]. Available: http://fit.mta.edu.vn/~dunglh/course-102.[Đã truy cập 8 11 2021] Sách, tạp chí
Tiêu đề: Khoa CNTT, Học viện Kỹ Thuật Quân Sự, Mã Hóa, Chương 11: Hàm băm
Tác giả: T. L. H. Dũng
[2] S. Soderstrom, “The wonderful applications of HMAC,” 11 12 2015. [Trực tuyến]. Available: https://by.com.vn/zawF3I. [Đã truy cập 10 11 2021] Sách, tạp chí
Tiêu đề: The wonderful applications of HMAC
Tác giả: S. Soderstrom
Năm: 2015
[3] J.-w. Kim, H.-u. Lee và Y. Wo n, “Design for high throughput SHA -1 hash function on FPGA,” 4-6 July 2012. [Trực tuyến]. Available:https://ieeexplore.ieee.org/document/6261737. [Đã truy cập 10 11 2021] Sách, tạp chí
Tiêu đề: Design for high throughput SHA -1 hash function on FPGA
Tác giả: J.-w. Kim, H.-u. Lee, Y. Won
Nhà XB: IEEE
Năm: 2012
[4] Safaa S. Omran, Laith F. Jumma, Computer Engineering Techniques College of Electrical and Electronic Techniques Baghdad, Iraq, “Design Of SHA-1 & SHA- 2 MIPS Processor Using FPGA, Annual Conference on New Trends in Information & Communications Technology Applications-(NTICT'2017),” 7 - 9March 2017. [Tr c ự tuy n]. ế Available:https://ieeexplore.ieee.org/document/6261737. [Đã truy cậ p 10 11 2021] Sách, tạp chí
Tiêu đề: Design Of SHA-1 & SHA- 2 MIPS Processor Using FPGA
Tác giả: Safaa S. Omran, Laith F. Jumma
Nhà XB: Annual Conference on New Trends in Information & Communications Technology Applications-(NTICT'2017)
Năm: 2017
[5] T. G. L. G. N. B. F. L. Schott, “Springer Link, Comparative Analysis of the Hardware Implementations of Hash Functions SHA-1 and SHA-512, pp. 76-78,”5 9 2002. [Tr ực tuyế n]. Available: https://link.springer.com/chapter/10.1007/3-540-45811-5_6. [Đã truy cập 18 11 2021].[6] “Wikipedia,” [Trực tuyến]. Available:https://upload.wikimedia.org/wikipedia/commons/e/e2/SHA-1.svg. [Đã truy cập 10 11 2021] Sách, tạp chí
Tiêu đề: Comparative Analysis of the Hardware Implementations of Hash Functions SHA-1 and SHA-512
Tác giả: T. G. L. G. N. B. F. L. Schott
Nhà XB: Springer Link
Năm: 2002
[7] N. V.Jayswal, “Lecture in Computer Engineering, Shri K . J. Pilytechnic, Bharuch. CNS: Unit 3: Lecture 9: Secure Hash Algorithm - 1 (SHA-1),” 11 8 2017. [Tr c tuy ự ến]. Available: https://bitly.com.vn/mij0c1. [Đã truy c p 18 11 ậ 2021] Sách, tạp chí
Tiêu đề: Lecture in Computer Engineering, Shri K . J. Pilytechnic, Bharuch. CNS: Unit 3: Lecture 9: Secure Hash Algorithm - 1 (SHA-1)
Tác giả: N. V. Jayswal
Năm: 2017
[8] H. N. D. T. Đ. D. Lâm Đức Khải, Giáo trnh Thiết kế luận lý số 2, TP Hồ Chí Minh: Nhà xuất bản ĐHQG-HCM, 2019 Khác

HÌNH ẢNH LIÊN QUAN

Bảng điều  khiển gồm  có tổng cộng  32 trạng  thái với  các tín  hiệu điều  khiển  chuyển trạng thái  là START và LOOP - Báo cáo cuối kỳ môn thiết kế hệ thống số hdl đề tài hiện thực giải thuật mã hóa sha 1
ng điều khiển gồm có tổng cộng 32 trạng thái với các tín hiệu điều khiển chuyển trạng thái là START và LOOP (Trang 24)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w