Đề tài hàm băm sha3

đang tải dữ liệu....

Nội dung tài liệu: Đề tài hàm băm sha3

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA VIỄN THÔNG I ---------- BÀI TIỂU LUẬN MÔN HỌC: AN NINH MẠNG THÔNG TIN Đề Tài: Hàm băm SHA3 Giảng viên hướng dẫn: Nguyễn Thanh Trà 1 Nhóm 2 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Mục Lục Mục Lục ..................................................................................................................................................2 Danh Mục Hình Vẽ ................................................................................................................................3 Lời nói đầu ..............................................................................................................................................4 1. Lý do chọn đề tài ................................................................................................................................4 2. Mục đích và phạm vi của tiểu luận ...................................................................................................4 3. Hướng tiếp cận của tiểu luận ............................................................................................................4 Hàm băm SHA3......................................................................................................................................5 1. Giới thiệu về SHA3.............................................................................................................................5 1.1. SHA3 là gì ................................................................................................................................5 1.2. Ứng dụng của SHA3 ..................................................................................................................5 2. Cấu trúc bọt biển ................................................................................................................................6 3.Hàm lặp lại f của SHA3 ...................................................................................................................11 3.1. Cấu trúc của f ....................................................................................................................... 12 3.2. Chức năng bước Theta........................................................................................................ 14 3.3. Chức năng bước Rho .......................................................................................................... 15 3.4. Chức năng bước Pi ............................................................................................................... 16 3.5. Chức năng bước Chi ............................................................................................................ 19 3.6. Chức năng của bước Iota..................................................................................................... 19 5. Ứng dụng ...........................................................................................................................................20 6. Kết luận .............................................................................................................................................21 Tài Liệu Tham Khảo ........................................................................................................................... 22 2 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Danh Mục Hình Vẽ Hình 1. Đầu vào và đầu ra của cấu trúc bọt biển .....................................................................................7 Hình 2. Cấu trúc bọt biển .........................................................................................................................8 Hình 3. Tất cả kích thước và mức độ bảo mật ( đơn vị bit) .................................................................. 10 Hình 4. Ma trận trạng thái SHA3 ........................................................................................................... 11 Hình 5. Hàm lặp f của SHA3................................................................................................................... 13 Hình 6. Các chức năng của bước trong SHA3 ........................................................................................ 14 Hình 7. Chức năng bước Theta và Chi ................................................................................................... 15 Hình 8. Giá trị xoay vòng được sử dụng trong SHA3............................................................................. 17 Hình 9. Chức năng bước Pi .................................................................................................................... 18 Hình 10. Hằng số vòng trong SHA3 ....................................................................................................... 20 3 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Lời nói đầu 1. Lý do chọn đề tài Trong những năm gần đây, hàm băm được sử dụng rộng rãi nhất là Thuật toán băm an toàn (SHA). Thật vậy, vì hầu như mọi hàm băm được sử dụng rộng rãi khác đều có điểm yếu đáng kể về phân tích mật mã, SHA ít nhiều là thuật toán băm tiêu chuẩn cuối cùng còn lại vào năm 2005. SHA được phát triển bởi Viện Tiêu chuẩn và Công nghệ Quốc gia (NIST) và được xuất bản dưới dạng một tiêu chuẩn xử lý thông tin liên bang (FIPS 180) vào năm 1993. Khi các điểm yếu được phát hiện trong SHA, bấy giờ được gọi là SHA-0, một phiên bản sửa đổi đã được ban hành với tên FIPS 180-1 vào năm 1995 và được gọi là SHA-1. SHA dựa trên hàm băm MD4 và thiết kế của nó gần với mô hình MD4. Nhằm tìm hiểu về phiên bản mới nhất của SHA, em thực hiện đề tài “Hàm băm SHA3 cho tiểu luận của mình. 2. Mục đích và phạm vi của tiểu luận - Mục đích tiểu luận: Đề tài đặt ra mục đích tìm hiểu cấu trúc và ứng dụng của SHA3. - Phạm vi tiểu luận: Tiểu luận giới hạn tìm hiểu về cấu trúc cơ bản và ứng dụng của SHA3. 3. Hướng tiếp cận của tiểu luận - Phương pháp thu thập và xử lí thông tin: Tiến hành thu thập, tham khảo thông tin từ các nguồn khác nhau như báo trí, giáo trình, tài liệu,.. từ đó phân tích, đánh giá, tổng hợp. 4 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Hàm băm SHA3 1. Giới thiệu về SHA3 1.1. SHA3 là gì SHA-3 là một hàm mật mã đa năng do Guido Bertoni, Joan Daemen, Michaël Peeters và Gilles Van Assche thiết kế. SHA-3 có thể được sử dụng cho nhiều mục đích khác, nhưng nó được biết đến như một hàm băm cung cấp mức độ bảo mật cao hơn khi so sánh với các thuật toán băm cũ hơn (SHA-1 và SHA-2). SHA là viết tắt của Secure Hash Algorithm (Thuật toán băm an toàn) và đề cập đến một tập hợp các hàm băm mật mã được xuất bản bởi Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST). Cả SHA-1 và SHA-2 đều được thiết kế bởi Cơ quan An ninh Quốc gia Hoa Kỳ (NSA), và do đó, có cấu trúc tương tự. Mặc dù SHA-3 hỗ trợ cùng kích thước đầu ra (độ dài băm) như SHA-2, nhưng cơ chế hoạt động của nó khá khác biệt. Các cuộc tấn công lý thuyết vào SHA-1 được thực hiện vào năm 2004 và được công bố rộng rãi vào năm 2005. Vài năm sau, vào năm 2011, SHA-2 được NIST tuyên bố là hàm băm tiêu chuẩn mới được sử dụng. Tuy nhiên, quá trình di chuyển từ SHA-1 sang SHA-2 diễn ra khá chậm và chỉ đến đầu năm 2017, một tỷ lệ lớn các nhà phát triển và nhà khoa học máy tính cuối cùng đã chuyển sang SHA-2. Ngay sau đó, Google đã thông báo về một cuộc tấn công vào SHA-1 thành công vào tháng 2 năm 2017 và kể từ đó, SHA-1 không còn được coi là an toàn nữa và việc sử dụng nó không được khuyến khích. Hàm SHA-3 bắt đầu được phát triển vào khoảng năm 2007 sau khi NIST công bố quy trình kiểm tra và cạnh tranh công khai, nhằm tìm kiếm một hàm băm mật mã mới có thể khắc phục những sai sót tiềm ẩn của SHA-1 và SHA-2 trước đó. Mặc dù chưa có cuộc tấn công nào đáng kể vào SHA-2 được chứng minh, nhưng người ta cho rằng các hàm băm sẽ bị bẻ khóa theo thời gian và phải mất nhiều năm để một hàm tiêu chuẩn mới được phát triển. Có tính đến điều đó, cùng với các cuộc tấn công thành công được thực hiện chống lại SHA-1 vào năm 2004 và 2005, NIST nhận thấy sự cần thiết phải tạo ra một thuật toán băm mật mã mới. Năm 2012, NIST tuyên bố SHA-3 là thuật toán chiến thắng của cuộc thi và nó được tiêu chuẩn hóa là thành viên mới nhất của SHA (do đó được gọi là SHA-3). 1.2. Ứng dụng của SHA3 Một trong những lý do SHA-3 được NIST chọn là do cấu trúc sáng tạo của nó, được chứng minh là an toàn và hiệu quả hơn các thuật toán khác. Về mặt kỹ thuật, thuật toán SHA-3 dựa trên hàm bọt biển (hoặc cấu tạo bọt biển) – trái ngược với cấu trúc Merkle Damgard được sử dụng bởi SHA-1 và SHA-2. Hiện tại, SHA-2 vẫn được coi là an toàn và được sử dụng rộng rãi. Ví dụ: SHA- 256 được sử dụng bởi Bitcoin và các loại tiền điện tử khác và đóng một vai trò quan 5 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 trọng trong quá trình khai thác. Chúng ta có thể thấy việc áp dụng SHA-3 ngày càng tăng trong tương lai vì nó có vẻ như còn lâu mới bị tấn công thành công. Tuy nhiên, chúng ta sẽ thấy nhiều thuật toán băm mật mã hơn được phát triển trong những năm tới khi lĩnh vực mật mã tiến bộ và những lỗ hổng mới được phát hiện. 2. Cấu trúc bọt biển Cấu trúc cơ bản của SHA-3 là một sơ đồ được các nhà thiết kế của nó gọi là cấu trúc bọt biển [BERT07, BERT11]. Cấu trúc bọt biển có cấu trúc chung giống như các hàm băm lặp đi lặp lại khác. Hàm bọt biển nhận một thông điệp đầu vào và phân vùng nó thành các khối có kích thước cố định. Mỗi khối được xử lý lần lượt, đầu ra của mỗi lần lặp được đưa vào lần lặp tiếp theo, cuối cùng tạo ra một khối đầu ra. Chức năng bọt biển được xác định bởi ba tham số: f = nội hàm được sử dụng để xử lý từng khối đầu vào3 r = kích thước tính bằng bit của các khối đầu vào, được gọi là tốc độ bit pad = thuật toán đệm Một hàm bọt biển cho phép cả đầu vào và đầu ra có độ dài thay đổi, làm cho nó trở thành một cấu trúc linh hoạt có thể được sử dụng cho hàm băm (đầu ra có độ dài cố định), bộ tạo số giả (đầu vào có độ dài cố định) và các hàm mật mã khác. Hình 1 minh họa điểm này.n bit được phân vùng thành k khối kích thước cố định của r mỗi bit. Nếu cần, thông báo được đệm để đạt được độ dài là bội số nguyên của r bit. Phân vùng kết quả là chuỗi của khối P0, P1,. . . ,Pk-1, với n = k×r. Để có tính đồng nhất, phần đệm luôn được thêm vào, để nếu n mod r = 0, một khối đệm của r bit được thêm vào. Thuật toán đệm thực tế là một tham số của hàm. Đề xuất chính xác của bọt biển [BERT11] đề xuất hai phương án đệm: Đệm đơn giản: Được ký hiệu bởi pad10*, thêm một bit 1 theo sau là số bit 0 tối thiểu sao cho độ dài của kết quả là bội số của độ dài khối. Nhiều vùng đệm: Được ký hiệu bởi pad10*1, nối một bit đơn lẻ 1 theo sau là số bit 0 tối thiểu theo sau bởi một bit 1 sao cho độ dài của kết quả là bội số của độ dài khối. Đây là sơ đồ đệm đơn giản nhất cho phép sử dụng an toàn cùng f với các tỉ lệ r khác nhau. Sau khi xử lý tất cả các khối, hàm bọt biển tạo ra một chuỗi khối đầu ra Z0, Z1,. . . ,Zj–1. Số lượng khối đầu ra được xác định bởi số lượng bit đầu ra mong muốn. Nếu đầu ra mong muốn là ℓ bit, thì j khối là được sản xuất, sao cho (𝑗 − 1) × 𝑟 < ℓ ≤ 𝑗 × 𝑟. 6 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Hình 1. Đầu vào và đầu ra của cấu trúc bọt biển 7 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Hình 2. Cấu trúc bọt biển Hình 2 mô tả cấu trúc lặp lại của hàm bọt biển. Cấu tạo bọt biển hoạt động trên biến trạng thái s là b = r + c bit, được khởi tạo thành tất cả các số không và được sửa đổi ở mỗi lần lặp. Giá trị r được gọi là tốc độ bit. Giá trị này là kích thước khối được sử dụng để phân vùng thông báo đầu vào. Thuật ngữ tốc độ bit phản ánh thực tế rằng r là số bit được xử lý ở mỗi lần lặp: giá trị của r càng lớn thì tốc độ các bit thông báo được xử lý bởi cấu trúc bọt biển càng lớn. Giá trị c được gọi là dung lượng. Việc kiểm kê về các tác động bảo mật của dung lượng ở hiện tại là chưa thể thực hiện được. Về bản chất, dung lượng là thước đo mức độ phức tạp có thể đạt được của kết cấu bọt biển và cùng với đó là mức độ an toàn có thể đạt được. Có một số cách nhất định có thể đánh đổi mức độ bảo mật đã được xác nhận để lấy tốc độ 8 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 dung lượng c và giảm tốc độ bit r tương ứng, hoặc ngược lại. Các giá trị mặc định cho SHA3 là c = 1024 bit, r = 576 bit, và do đó b = 1600 bit. Cấu tạo của bọt biển bao gồm hai giai đoạn. Giai đoạn hấp thụ tiến hành như sau: Đối với mỗi lần lặp, khối đầu vào cần xử lý được đệm bằng các số 0 để mở rộng độ dài của nó từ r bit thành b bit. Sau đó, phép toán thao tác bit XOR của khối thông báo mở rộng và s được hình thành để tạo đầu vào b bit cho hàm lặp f. Đầu ra của f là giá trị của s cho lần lặp tiếp theo. Nếu chiều dài đầu ra mong muốn ℓ thỏa mãn ℓ ≤ b, sau đó khi hoàn thành giai đoạn hấp thụ, các bit s đầu tiên được trả lại và các bản chất cấu tạo bọt biển. Nếu không, cấu trúc bọt biển sẽ đi vào giai đoạn ép. Để bắt đầu, ℓ bit đầu tiên của s được giữ lại dưới dạng khối Z0. Sau đó, giá trị của s được cập nhật với các lần thực thi lặp lại của f và tại mỗi lần lặp, ℓ bit đầu tiên của s được giữ lại dưới dạng khối Zi và được nối với các khối đã tạo trước đó. Quá trình tiếp tục thông qua (j - 1) lặp lại cho đến khi chúng ta có (𝑗 − 1) × 𝑟 < ℓ ≤ 𝑗 × 𝑟. Tại thời điểm này, các bit đầu tiên của khối nối Y được trả về. Lưu ý rằng giai đoạn hấp thụ có cấu trúc của một hàm băm điển hình. Một trường hợp phổ biến sẽ là một trường hợp trong đó độ dài băm mong muốn nhỏ hơn hoặc bằng độ dài khối đầu vào; đó là, ℓ ≤ r. Trong trường hợp đó, cấu trúc bọt biển sẽ kết thúc sau giai đoạn hấp thụ. Nếu yêu cầu đầu ra dài hơn b bit, thì giai đoạn ép được sử dụng. Do đó, việc xây dựng bọt biển khá linh hoạt. Ví dụ: một tin nhắn ngắn có độ dài r có thể được sử dụng làm hạt giống và cấu trúc bọt biển sẽ hoạt động như một bộ tạo số giả ngẫu nhiên. Tóm lại, cấu trúc bọt biển là một cấu trúc lặp lại đơn giản để xây dựng một hàm F với đầu vào có độ dài thay đổi và độ dài đầu ra tùy ý dựa trên phép biến đổi độ dài cố định hoặc hoán vị f hoạt động trên một số bit cố định b. Cấu tạo bọt biển được định nghĩa chính thức trong [BERT11] như sau: 9 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Kích thước thông báo 224 256 384 Kích thước tin nhắn Không có giới hạn Không có giới hạn Không có giới hạn Kích thước khối ( tốc độ bit 1152 1088 832 r) Kích thước từ 64 64 64 Số vòng 24 24 24 Công suất c 448 512 768 Collision Resistance 2112 2128 2192 Second Preimage 2224 2256 2384 Resistance Hình 3. Tất cả kích thước và mức độ bảo mật ( đơn vị bit) Trong định nghĩa thuật toán, ký hiệu sau được sử dụng: | M | là độ dài tính bằng bit của một chuỗi bit M. Một chuỗi bit M có thể được coi là một chuỗi các khối có độ dài cố định x, trong đó khối cuối cùng có thể ngắn hơn. Số khối của M được kí hiệu là |M|x. Các khối của M được kí hiệu là Mi và chỉ số nằm trong khoảng từ 0 đến |M|x - 1. Biểu thức |𝑀|ℓ biểu thị sự cắt ngắn của M đối với ℓ bit đầu tiên của nó. SHA-3 sử dụng hàm lặp f, có nhãn Keccak-f, sẽ được giải mã trong phần tiếp theo. Hàm SHA-3 tổng thể là một hàm bọt biển được biểu thị bằng Keccak [r, c] để phản ánh rằng SHA-3 có hai tham số hoạt động: r - kích thước khối thông báo và c - dung lượng, với giá trị mặc định là r + c = 1600 bit. Hình 3 cho thấy các giá trị được hỗ trợ của r 10 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 và c. Như Hình 3 cho thấy, bảo mật hàm băm gắn liền với cấu trúc bọt biển là một hàm của dung lượng c. Theo thuật toán bọt biển được định nghĩa ở trên, Keccak [r, c] được định nghĩa là 𝐾𝑒𝑐𝑐𝑎𝑘[𝑟, 𝑐]∆𝑆𝑃𝑂𝑁𝐺𝐸[𝐾𝑒𝑐𝑐𝑎𝑘 − 𝑓[𝑟 + 𝑐], 𝑝𝑎𝑑10 · 1, 𝑟] Tiếp theo là phần trình bày về hàm lặp Keccak-f. 3.Hàm lặp lại f của SHA3 Bây giờ ta kiểm tra hàm lặp Keccak-f được sử dụng để xử lý từng khối liên tiếp của thông điệp đầu vào. Ta đã biết f nhận đầu vào là một biến 1600 bit gồm r bit, tương ứng với kích thước khối thông báo theo sau là c bit, được gọi là dung lượng. Đối với xử lý nội bộ trong f, biến trạng thái đầu vào s được tổ chức dưới dạng 5×5×64 mảng a. Các đơn vị 64-bit được gọi là làn. Chúng ta sử dụng ký hiệu a [x, y, z] để chỉ một bit riêng lẻ với mảng trạng thái. Ta biểu diễn ma trận 5×5 dưới dạng L[x, y], trong đó mỗi cổng vào trong L là một làn 64 bit. Việc sử dụng các chỉ số trong ma trận này được thể hiện trong Hình 4. Trong hình, các cột được gắn nhãn x = 0 đến x = 4, các hàng được gắn nhãn y = 0 đến y = 4 và các bit riêng lẻ trong một làn được dán nhãn z = 0 đến z = 63. Ánh xạ giữa các bit của s và bit của a là s[64(5y + x) + z] = a[x, y, z] Hình 4. Ma trận trạng thái SHA3 11 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Chúng ta có thể hình dung điều này đối với ma trận trong Hình 4. Khi coi trạng thái như một ma trận của các làn, làn đầu tiên ở góc dưới bên trái, L[0, 0], tương ứng với giây so với 64 bit đầu tiên của s. Làn trong cột thứ hai, hàng thấp nhất, L[1, 0], tương ứng với 64 bit tiếp theo của s. Do đó, mảng a được lấp đầy bởi các bit của s bắt đầu với hàng y = 0 và tiếp tục từng hàng. 3.1. Cấu trúc của f Chức năng f được thực thi một lần cho mỗi khối đầu vào của thông báo được băm. Hàm nhận đầu vào là biến trạng thái 1600 bit và chuyển nó thành biến ma trận 5×5 của làn 64-bit. Ma trận này sau đó trải qua 24 vòng xử lý. Mỗi vòng bao gồm năm bước và mỗi bước cập nhật ma trận trạng thái bằng các phép toán hoán vị hoặc thay thế. Như thể hiện trong Hình 5, các vòng giống hệt nhau, ngoại trừ bước cuối cùng của mỗi vòng, được sửa đổi bởi một hằng số vòng khác nhau cho mỗi vòng. Việc áp dụng năm bước có thể được thể hiện dưới dạng thành phần 5 trong hàm sau: R=i o χ o π o ρ o θ Hình 4 tóm tắt hoạt động của năm bước. Các bước có một mô tả đơn giản dẫn đến một đặc điểm kỹ thuật nhỏ gọn và không có cửa sập nào có thể ẩn được. Các hoạt động trên làn trong đặc điểm kỹ thuật được giới hạn ở bitwise. 12 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Hình 5. Hàm lặp f của SHA3 Chức năng Kiểu Miêu tả 𝜃 Thay thế Giá trị mới của mỗi bit trong mỗi từ phụ thuộc vào giá trị hiện tại của của nó, 1 bit trong mỗi từ thuộc cột trước và 1 bit trong mỗi từ thuộc cột kế tiếp 𝜌 Hoán vị Các bit của mỗi từ được hoán vị bằng cách sử dụng 1 bit dịch vòng. W[0,0] không bị ảnh hưởng 𝜋 Hoán vị Các từ được hoán vị trong ma trận 5×5. W[0,0] không bị ảnh hưởng 𝜒 Thay thế Giá trị mới của mỗi bit trong mỗi từ phụ thuộc vào giá trị hiện tại của nó, 1 bit trong từ tiếp theo cùng hang và 1 bit trong từ tiếp theo đó cùng hàng 13 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 𝜄 Thay thế W[0,0] được cập nhật bởi XOR với một hằng số làm tròn Hình 6. Các chức năng của bước trong SHA3 Phép toán Boolean (XOR, AND, NOT) và phép quay. Không cần tra cứu bảng, các phép toán số học hoặc các phép quay phụ thuộc vào dữ liệu. Do đó, SHA-3 được thực hiện dễ dàng và hiệu quả trong cả phần cứng hoặc phần mềm. Chúng ta lần lượt xem xét từng chức năng của từng bước. 3.2. Chức năng bước Theta Tham chiếu Keccak xác định u chức năng như sau. Đối với bit z trong cột x, hàng y, a θ: a[x, y, z] ← a[x, y, z] ⊕ ∑ a[(x − 1), y, z] y′ =0 4 ⊕∑ a[(x + 1), y, (z − 1)] y′ =0 trong đó các tổng kết là các phép toán XOR. Chúng ta có thể thấy rõ hơn những gì hoạt động này thực hiện bằng cách tham khảo Hình 7a). Đầu tiên, xác định XOR theo chiều dọc của các làn đường trong cột x là C[x]= L[x, 0]⊕ L[x, 1]⊕ L[x, 2]⊕ L[x, 3]⊕ L[x, 4] Xét làn đường L [x, y] trong cột x, hàng y. Tổng đầu tiên trong biểu thức trên thực hiện XOR theo chiều dọc bit của các làn đường trong cột (x- 1) mod 4 để tạo thành làn 64 bit C [x -1]. Tổng thứ hai thực hiện một bitwise là XOR của các làn trong cột (x + 1) mod 4, và sau đó xoay các bit trong làn 64 bit để bit ở vị trí z được ánh xạ vào vị trí z + 1 mod 64. Điều này tạo thành ROT làn (C [x + 1], 1). Hai làn đường này và L [x, y] được kết hợp bởi XOR theo chiều dọc bit để tạo thành giá trị cập nhật của L [x, y]. Điều này có thể được thể hiện như sau: L[x, y]d L[x, y]⊕ C[x- 1]⊕ ROT (C [x+ 1], 1) Hình 7.a) minh họa hoạt động trên L [3, 2]. Thao tác tương tự được thực hiện trên tất cả các làn khác trong ma trận. Một số quan sát theo thứ tự. Mỗi bit trong một làn được cập nhật bằng cách sử dụng chính bit và một bit ở cùng vị trí bit từ mỗi làn trong cột trước và một bit ở vị trí bit liền kề từ mỗi làn trong cột tiếp theo. Như vậy giá trị cập nhật của mỗi bit phụ thuộc vào 11 bit. Điều này mang lại sự trộn tốt. Ngoài ra, bước theta cung cấp sự khuếch tán tốt. Các nhà thiết kế của Keccak nói rằng bước theta cung cấp mức độ 14 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 khuếch tán trung bình cao và nếu không có theta, việc cung cấp sự khuếch của hàm vòng sẽ không có ý nghĩa . Hình 7. Chức năng bước Theta và Chi 3.3. Chức năng bước Rho Hàm 𝜌 được định nghĩa như sau: 𝜌: 𝑎[𝑥, 𝑦, 𝑧] ← 𝑎[𝑥, 𝑦, 𝑧] nếu x = y = z = 0 Mặt khác (𝑡 + 1)(𝑡 + 2) 𝜌: 𝑎[𝑥, 𝑦, 𝑧] ← 𝑎 [𝑥, 𝑦, (𝑧 − )] 2 0 1 𝑡 1 𝑥 Với t thỏa mãn 0 ≤ 𝑡 < 24 và ( ) . ( ) = (𝑦) trong GF52x2 2 3 0 Để xem xét bước này thực hiện những gì, chúng ta phải xem xét quá trình một cách chi tiết. 15 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 1. Làn đường ở vị trí (x, y) = (0, 0), tức là L [0, 0], không bị ảnh hưởng. Nói cách khác, một sự dịch chuyển bit tròn trong làn đường được thực hiện. 2. Biến t, với 0 ≤ 𝑡 < 24, được sử dụng để xác định cả lượng dịch chuyển bit tròn và làn đường nào được gán giá trị dịch chuyển nào. 3. 24 bit dịch chuyển riêng lẻ được thực hiện có các giá trị tương ứng (𝑡 + 1)(𝑡 + 2) 𝑚𝑜𝑑 64 2 4. Sự dịch chuyển được xác định bởi giá trị của t được thực hiện trên làn đường ở vị trí (x, y) trong 5x5 ma trận của làn đường. Cụ thể, đối với mỗi giá trị của t, tương quan vị trí ma trận được xác định bởi t = 3 , ta có: 𝑥 0 1 3 1 ( )=( ) ( ) 𝑚𝑜𝑑 5 𝑦 2 3 0 0 1 0 1 0 1 1 = ( )( )( ) ( ) 𝑚𝑜𝑑 5 2 3 2 3 2 3 0 0 1 0 1 0 =( )( ) ( ) 𝑚𝑜𝑑 5 2 3 2 3 2 0 1 2 =( ) ( ) 𝑚𝑜𝑑 5 2 3 6 0 1 2 = ( ) ( ) 𝑚𝑜𝑑 5 2 3 1 1 = ( ) 𝑚𝑜𝑑 5 7 1 = ( ) 2 Hình 5 cho thấy các tính toán được thực hiện để xác định lượng dịch chuyển bit và vị trí của mỗi giá trị dịch chuyển bit. Lưu ý rằng tất cả các số khoảng luân chuyển là khác nhau. Do đó, hàm r bao gồm một hoán vị đơn giản (dịch chuyển vòng tròn) trong mỗi làn đường. Mục đích là cung cấp sự lan tỏa trong mỗi làn đường. Nếu không có chức năng này, sự phân tán giữa các làn đường sẽ rất chậm. 3.4. Chức năng bước Pi Hàm 𝜋 được định nghĩa như sau: 𝑥 0 1 𝑥′ 𝜋: 𝑎[𝑥, 𝑦] ← 𝑎[𝑥 ′ , 𝑦 ′ ] với (𝑦) = ( )( ) 2 3 𝑦′ 16 Bài thi cuối kì môn An ninh mạng thông tin Nhóm 5 Hình 8. Giá trị xoay vòng được sử dụng trong SHA3 17

Tìm luận văn, tài liệu, khoá luận - 2024 © Timluanvan.net