Đồ án Thuật toán băm và thuật toán MAC

Nội dung chính: Trong chương này ta sẽ tìm hiểu các thuật toán băm an toàn (SHA- Secure Hash Algorithm ) và các thông điệp xác thực (MAC- Message Authentication Codes )  Hàm Hash :  Nén mẩu tin vê kích thước cố định  Bằng cách xử lý mẩu tin theo từng khối  Theo một hàm nén nào đó  Sử dụng mã khối hoặc tuỳ chọn  Mã xác thực mẩu tin (MAC)  Phần xác thực mẩu tin có kích thước cố định  Để cung cấp tính xác thực cho mẫu tin  Bằng cách sử dụng mã khối với chế độ móc nối hoặc hàm Hash Các thuật toán băm an toàn được đề cập: • SHA-512 • Whirlpool Các thông điệp xác thực được đề cập: • HMAC • CMAC

docx32 trang | Chia sẻ: tuandn | Lượt xem: 2832 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Thuật toán băm và thuật toán MAC, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đồ án Bảo Mật Thông Tin Người thực hiện: Võ Công Tâm Nguyễn Quang Kỳ Giáo viên hướng dẫn: thầy Đặng Trường Sơn Nội dung chính: Trong chương này ta sẽ tìm hiểu các thuật toán băm an toàn (SHA- Secure Hash Algorithm ) và các thông điệp xác thực (MAC- Message Authentication Codes ) Hàm Hash : Nén mẩu tin vê kích thước cố định Bằng cách xử lý mẩu tin theo từng khối Theo một hàm nén nào đó Sử dụng mã khối hoặc tuỳ chọn Mã xác thực mẩu tin (MAC) Phần xác thực mẩu tin có kích thước cố định Để cung cấp tính xác thực cho mẫu tin Bằng cách sử dụng mã khối với chế độ móc nối hoặc hàm Hash Các thuật toán băm an toàn được đề cập: SHA-512 Whirlpool Các thông điệp xác thực được đề cập: HMAC CMAC Chương 12: Thuật toán băm và thuật toán MAC Nội dung 12.1 Thuật toán băm an toàn SHA-512 Logic SHA-512 Round Function 12.2 Whirlpool Whirlpool Hash Structure Block Cipher W Performance of Whirlpool 12.3 HMAC HMAC Design Objectives HMAC Algorithm Security of HMAC 12.4 CMAC 12.5 Recommended Reading and Web Sites 12.6 Key Terms, Review Questions, and Problems Key Terms Review Questions Problems Những điểm chính: ● Hầu như tất cả các thuật toán băm an toàn có cấu trúc tổng quát thể hiện trong hình11,9. ● Các hàm nén được sử dụng trong các thuật toán băm an toàn rơi vào một trong hai loại: một hàm đặc biệt thiết kế cho các hàm băm hoặc một khối mã đối xứng. SHA và Whirlpool là những ví dụ của hai phương pháp tiếp cận, tương ứng. ● Thông điệp mã xác thực cũng rơi vào hai loại, dựa vào việc sử dụng của một thuật toán băm an toàn và dựa trên việc sử dụng một khối mã đối xứng. HMAC và CMAC là những ví dụ của hai phương pháp tiếp cận, tương ứng. Trong chương này, chúng ta nhìn vào ví dụ quan trọng của cả hai thuật toán băm an toàn và mã xác thực thông điệp (MAC). Hầu hết các hàm băm quan trọng  hiện đại theo cấu trúc cơ bản của hình 11,9. Điều này đã chứng tỏ là một cấu trúc âm thanh cơ bản và các thiết kế mới hơn chỉ cần tinh chỉnh cấu trúc và thêm vào độ dài mã băm. Trong cấu trúc cơ bản này, hai cách tiếp cận đã được theo sau trong việc thiết kế các hàm nén, là khối xây dựng cơ bản của hàm băm.Theo truyền thống, hầu hết các hàm băm đó đã được sử dụng rộng rãi dựa vào hàm nén đặc biệt thiết kế cho các hàm băm . Thông thường, hàm nén này sử dụng các modun số học và phép tính nhị phân logich. Một phương pháp khác là sử dụng một mã khối đối xứng như hàm nén. Trong chương này, chúng tôi kiểm tra có lẽ là ví dụ quan trọng nhất của mỗi phương pháp tiếp cận: các Thuật toán băm an toàn (SHA) và Whirlpool. MAC cũng thuận tiện chia thành hai loại dựa trên khối xây dựng cơ bản của chúng. Một cách tiếp cận phổ biến là sử dụng một thuật toán băm như SHA như là cốt lõi của thuật toán MAC. Một phương pháp khác là sử dụng một mã khối đối xứng trong phương thức khối mã trung gian. Một lần nữa, chúng ta nhìn vào ví dụ này có lẽ quan trọng nhất của  từng phương pháp tiếp cận: HMAC và CMAC. 12.1. Thuật toán băm an toàn: Các Secure Hash Algorithm (SHA) được phát triển bởi Viện Tiêu chuẩn và Công nghệ(NIST) và được xuất bản như là một tiêu chuẩn xử lý thông tin liên bang (FIPS 180) năm 1993, một phiên bản sửa đổi đã được ban hành như FIPS 180-1 vào năm 1995 và thường gọi là SHA-1. Các tài liệu tiêu chuẩn thực tế được đặt tên Thuật toán băm an toàn. SHA dựa trên hàm băm MD4 và thiết kế các mô hình chặt chẽ MD4. SHA-1cũng được quy định trong RFC 3174, mà thực chất là các bản sao các tài liệu trongFIPS 180-1, nhưng thêm một đoạn mã C thực hiện. SHA-1 tạo ra một giá trị băm 160 bit. Năm 2002, NIST sản xuất một phiên bản sửa đổitiêu chuẩn, FIPS 180-2, đã xác định ba phiên bản mới SHA, với độ dài giá trị băm 256,384, và 512 bit, được gọi là SHA-256, SHA-384 và SHA -512 (Bảng 12.1). Những phiên bản này mới có cùng một cấu trúc cơ bản và sử dụng cùng loại modun số học và phép tính nhị phân logich như SHA-1. Năm 2005, NIST công bố ý định ngưng phê duyệt SHA-1 và tin cậy vào các phiên bản SHA khác vào năm 2010. Ngay sau đó, một nhóm nghiên cứu đã mô tả một cuộc tấn công, trong đó hai thông điệp riêng biệt có thể được nhận thấy rằng thực hiện cùng một thuật SHA-1 bằng cách sử dụng 269 phép tính, ít hơn 280 phép tính như trước đây cần thiết để tìm thấy một dụng độ với một thuật toán băm SHA-1 [WANG05 ]. Kết quả này sẽ đẩy nhanh quá trình chuyển đổi đến các phiên bản khác của SHA. Bảng 12.1. So sánh thông số SHA SHA-1 SHA-256 SHA-384 SHA-512 Tóm tắt thông điệp 160 256 384 512 Độ dài thông điệp <264 <264 <2128 <2128 Độ dài khối 512 512 1024 1024 Độ dài WORD 32 32 64 64 Số bước 80 64 80 80 Độ an toàn 80 128 192 256 Ghi chú: 1. Tất cả kích thước được đo bằng bit. 2. Độ an toàn đề cập đến thực tế là một cuộc tấn công ngày sinh nhật vào tóm tắt thông điệp kích thước n tạo ra một đụng độ với chi phí khoảng 2n/2 SHA-512 Logic Thuật toán có đầu vào một thông điệp với một chiều dài tối đa nhỏ hơn 2128 bit và tạo ra tóm tắt thông điệp 512-bit. Đầu vào được xử lý trong khối 1024-bit.Hình 12.1 mô tả tổng thể xử lý của một thông điệp để tạo ra tóm tắt. Hình 12.1.Sự sinh ra tóm tắt thông điệp sử dụng SHA-512 Điều này tuân theo cấu trúc tổng quát mô tả trong hình 11,9. Xử lý bao gồm các bước sau: Bước 1: Nối bit đệm. Thông điệp này được đệm để chiều dài của nó là đồng dư với 896 modulo 1024 [chiều dài ≡ 896 (mod 1024)]. Đệm là luôn luôn thêm, ngay cả khi thông điệp  đã được chiều dài mong muốn. Như vậy, số lượng các bit đệm nằm trong khoảngtừ 1 đến 1024. Đệm bao gồm một bit đơn 1- tiếp theo là số cần thiết của bit 0-. Bước 2: Nối chiều dài. Một khối 128 bit được nối vào thông điệp. Khối này được coi là một số nguyên không dấu 128-bit (byte đầu tiên quan trọng nhất) và chứa độ dài của thông điệp ban đầu (trước khi đệm). Kết quả của hai bước đầu tiên mang lại một thông điệp là bội số nguyên của 1024 bit chiều dài. Trong hình 12,1, thông điệp mở rộng được biểu diễn như chuỗi khối 1024-bit M1, M2,..., MN, sao cho tổng chiều dài của thông điệp mở rộng là N x 1024 bit. Bước 3: Khởi tạo băm đệm. Một bộ đệm 512-bit được sử dụng để giữ kết quả trung gian và kết quả của hàm băm. Đệm này có thể được biểu diễn như là tám thanh ghi 64-bit (a, b, c, d, đ, e, g, h). Những thanh ghi được khởi tạo với các số nguyên 64-bit sau đây (giá trị ở hệ thập lục phân): a = 6A09E667F3BCC908 b = BB67AE8584CAA73B c = 3C6EF372FE94F82B c = A54FF53A5F1D36F1 e = 510E527FADE682D1 f = 9B05688C2B3E6C1F g = 1F83D9ABFB41BD6B h = 5BE0CDI9137E2179 Những giá trị này được lưu trữ ở định dạng big- endian, byte có trọng số lớn nhất trong word nằm ở địa chỉ thấp nhất (ngoài cùng bên trái). Những word này thu được bằng cách lấy 64-bit của phần thập phân của căn bậc hai của tám mươi số nguyên tố đầu tiên. Bước 4: Xử lý thông điệp trong các khối 1024-bit (128 word). Trái tim của thuật toán là một module bao gồm 80 vòng; module này được gắn nhãn F trong hình 12.1. Logic được minh họa trong hình 12.2. Hình 12.2. SHA-512 Xử lý một khối đơn 1024-Bit Mỗi vòng lấy giá trị đầu vào 512-bit đệm abcdefgh, và cập nhật nội dung của bộ đệm. Tại đầu vào vòng đầu tiên, bộ đệm có giá trị của các giá trị băm trung gian, Hi-1 . Mỗi vòng t sử dụng giá trị 64-bit Wt bắt nguồn từ khối 1024-bit hiện tại đang được xử lý (Mi). Những giá trị này được bắt nguồn bằng cách sử dụng một lịch trình thông điệp mô tả sau đó. Mỗi vòng cũng sử dụng một hằng số Kt phụ trong đó 0≤t≤79 cho biết một trong số 80 vòng. Những Word này biểu diễn 64-bit đầu tiên của phần thập phân của căn bậc ba 80 số nguyên tố đầu tiên. Các hằng số cung cấp một "ngẫu nhiên" tập các mẫu 64-bit, cần loại bỏ bất kỳ qui luật trong các dữ liệu đầu vào. Kết quả của vòng tám mươi được cộng vào đầu vào vòng đầu tiên (Hi-1) để tạo ra Hi. Việc cộng thêm được thực hiện độc lập cho mỗi tám word trong bộ đệm với nhau của các word tương ứng trong Hi-1 sử dụng modulo cộng 264. Bước 5: Kết quả. Sau khi tất cả N khối 1024-bit đã được xử lý, kết quả từ giai đoạn thứ N là thông điệp tóm tắt 512-bit. Chúng ta có thể tóm tắt các hoạt động của SHA-512 như sau: Trong đó: IV = giá trị ban đầu của bộ đệm abcd, được xác định trong bước 3 abcdefghi = kết quả của vòng xử lý cuối của khối thông điệp thứ i N = số lượng các khối trong thông điệp (bao gồm cả các vùng đệm và chiều dài) SUM64 = modulo cộng 264 thực hiện một cách riêng biệt trên mỗi word của các cặp đầu vào MD = giá trị tóm tắt thông điệp cuối cùng SHA-512 Hàm Vòng Chúng ta hãy xem xét chi tiết hơn tại logic trong mỗi của 80 bước của quy trình xử lý một khối 512-bit (Hình 12.3). Mỗi vòng được định nghĩa bởi các tập phương trình sau: Trong đó: t = số bước (0≤t≤79) ch(e,f,g) = (e AND f) (NOT e AND g) hàm có điều kiện If e then f else g Maj(a,b,c) = = (a AND b) (a AND c) (b AND c) hàm true chỉ khi phần lớn (2 hoặc 3) đối số là true Trong đó: ROTRn(x) = chỉ thị dịch phải (phép quay) của đối số x 64-bit n bit Wt = một word 64 bit bắt nguồn từ khối đầu vào hiện tại 512-bit Kt = một biến phụ 64-bit + = modulo cộng 264 Hình 12.3.  Hoạt động cơ bản của SHA 512 (một vòng) Nó vẫn còn để chỉ ra làm thế nào các giá trị word 64-bit Wt được bắt nguồn từ thông điệp 1024-bit. Hình 12.4 minh họa cho bản đồ. 16 giá trị đầu tiên của Wt được lấy trực tiếp từ trong 16 word của khối hiện hành. Các giá trị còn lại được quy định như sau: Trong đó: ROTRn(x) = chỉ thị dịch phải (phép quay) của đối số x 64-bit n bit SHRn(x) = dịch trái đối số 64-bit x n bit với đệm 0 về bên phải Hình 12.4. Sự tạo thành dãy 80 word đầu vào cho xử lý khối đơn giải thuật SHA-512 Như vậy,trong 16 bước xử lý đầu tiên giá trị của Wt bằng word tương ứng trong khối thông điệp. Đối với 64 bước còn lại, giá trị của Wt bao gồm chỉ thị dịch trái 1 bit của phép XOR bốn giá trị trước đó của Wtvới 2 trong số các gí trị đó tùy vào phép dịch và quay.Điều này mở đầu cho rất nhiều sự thừa thãi và phụ thuộc vào khối thông điệp được nén, làm phức tạp nhiệm vụ của việc tìm kiếm một khối thông điệp khác nhau mà vạch ra với cùng hàm nén đầu ra. 12.2. Whirlpool Trong phần này, chúng ta khảo sát hàm băm Whirlpool, một trong những người thiết kế cũng là đồng tác giả sáng chế của Rijndael, được thông qua là Advanced Encryption Standard (AES). Whirlpool là một trong hai hàm băm xác nhận bởi NESSIE (New châu Âu theo hệ thống các chữ ký, Integrity, và Mật mã). Các dự án NESSIE là một Liên minh châu Âu tài trợ nỗ lực để đưa ra một danh mục các nguyên thủy mạnh mật mã các loại. Whirlpool dựa trên việc sử dụng một thuật toán mã hóa khối cho hàm nén. Như đã đề cập trong chương 11, có truyền thống ít được quan tâm trong việc sử dụng các hàm băm dựa trên  mật mã khối vì những lỗ hổng bảo mật thể hiện của cấu trúc. Sau đây là những hạn chế tiềm năng: Khối mật mã không có các tính chất của hàm ngẫu nhiên. Ví dụ, họ khả nghịch. Điều nàythiếu tính ngẫu nhiên có thể dẫn đến những điểm yếu có thể khai thác. Khối mật mã thường thể hiện qui luật khác hoặc các điểm yếu. Ví dụ, cho thấy làm thế nào để thỏa hiệp nhiều chương trình băm dựa trên thuộc tính của các mã khối cơ bản. Thông thường, các hàm băm dựa trên mật mã khối chậm hơn so với hàm băm dựa trên hàm nén đặc biệt thiết kế cho các hàm băm. Một đánh giá chủ yếu về sức mạnh của một hàm băm là chiều dài của mã băm theo bit.Đối với mã băm dựa trên thuật toán mã hóa khối, thiết kế đề xuất có chiều dài mã băm không bằng chiều dài khối mã, hoặc hai lần chiều dài khối mã. Theo truyền thống, mật mã khối có chiều dài đã được hạn chế tới 64 bit (như DES, triple DES), kết quả là mã băm có vấn đề về chiều dài. Tuy nhiên, kể từ khi áp dụng AES, đã có nhiều đổi mới quan tâm đến việc phát triển một hàm băm an toàn dựa trên một mã khối mạnh mẽ thể hiện hiệu suất tốt. Whirlpool là một hàm băm dựa trên mã khối nhằm cung cấp bảo mật và hiệu suất có thể so sánh, nếu không tốt hơn, hàm băm không dựa vào mã khối, như SHA. Whirlpool có các tính năng sau đây: Độ dài mã hash là 512 bit, bằng mã băm dài nhất có sẵn với SHA. Cơ cấu tổng thể của hàm băm là một trong đó đã được thể hiện được khả năng chốngcác cuộc tấn công thông thường lên các mã băm dựa trên mật mã khối. Các mã khối cơ bản dựa trên AES và được thiết kế để cung cấp để triển khai ở cả hai phần mềm và phần cứng đó là đó là vừa nhỏ gọn vừa đạt hiệu suất tốt Thiết kế Whirlpool đặt các mục tiêu bảo mật sau: Giả sử chúng ta có kết quả băm giá trị của bất kỳ chuỗi n-bit của đầu ra Whirlpool đầy đủ. Khối lượng công việc dự kiến ​​sẽ tạo ra một đụng độ theo thứ tự 2n2 thi hành Whirlpool. Với một giá trị n-bit, các khối lượng công việc dự kiến ​​của việc tìm kiếm thông điệp đó băm giá trị đó theo thứ tự 2n thi hành Whirlpool. Với một tin nhắn và kết quả n-bit băm của nó, các khối lượng công việc dự kiến ​​sẽ tìm được một tin nhắn thứ hai với giá trị băm tương tự theo thứ tự 2n thi hành Whirlpool. Không khả thi để phát hiện mối tương quan có hệ thống giữa các tổ hợp tuyến tính bitđầu vào và sự kết hợp bất kỳ tuyến tính của các bit của kết quả băm, hoặc để dự đoánnhững gì bit của kết quả băm sẽ thay đổi giá trị khi một số bit đầu vào đảo ngược (điều này có nghĩa là đề kháng chống tuyến tính và tấn công). Các nhà thiết kế khẳng định sự tự tin của họ rằng các mục tiêu này đã được đáp ứngvới một ngưỡng an toàn đáng kể. Tuy nhiên, các mục tiêu không nhạy cảm với mộtchứng minh hình thức. Chúng ta bắt đầu với một cuộc thảo luận về cấu trúc của hàm băm tổng thể, và sau đókiểm tra mã khối được sử dụng như là khối xây dựng cơ bản. Cơ cấu Băm Whirlpool Bối cảnh Cấu trúc chung hàm băm lặp được đề xuất bởi Merkle (hình 11,9) được sử dụng trong hầu như tất cả các hàm băm an toàn. Tuy nhiên, như đã được chỉ ra, có khó khăn trong việc thiết kế một hàm băm lặp thực sự an toàn khi chức năng nén là một thuật toán mã hóa khối. Preneel biểu diễn một phân tích hệ thống về các hàm băm dựa trên mật mã khối, sử dụng mô hình mô tả trong Hình 12.5. Trong mô hình này, chiều dài mã băm bằng với chiều dài khối mã. Vấn đề an ninh bổ sung được giới thiệu và phân tích là khó khăn hơn nếu độ dài mã băm vượt quá chiều dài khối mã. Preneel nghĩ ra 64 hoán vị có thể có của mô hình cơ bản, trên cơ sở đó đầu vào phục vụ như khoá mật mã và được phục vụ như là bản nguồn và trên những gì nhập vào, nếu có, được kết hợp với bản mã để tạo ra mã bămtrung gian. Dựa trên phân tích của ông, ông kết luận rằng các quy trình, trong đó chỉ rõ được cho ăn về phía trước và kết hợp với bản mã đã được an toàn. Như một sắp xếp làm cho hàm nén khó đảo ngược. [BLAC02] xác nhận các kết quả này, nhưng chỉ ra các vấn đề an ninh của việc sử dụngmột thuật toán mã hóa khối được thiết lập như là AES: Các mã băm 128-bit giá trị thu được từ việc sử dụng AES hay quy trình khác với cùng một khối có kích thước có thểkhông đủ để bảo mật. Hình 12.5. Mô hình đơn lặp lại của hàm Hash (mã băm bằng độ dài khối) Lưu ý: hình thang cho biết đầu vào khóa mã hóa. Whirlpool Logic Với một thông điệp bao gồm một chuỗi các khối m1, m2,..., mt hàm băm Whirlpoolđược thể hiện như sau: H0 = giá trị ban đầu Hi = E(Hi-1, mi) Hi-1 mi = giá trị trung gian Ht = giá trị mã băm Về mô hình Hình 12.5, đầu vào mã hóa chính cho mỗi lần lặp là giá trị băm trung gian từlần lặp trước đó; bản nguồn là khối thông điệp hiện tại ; và giá trị trước là các phép XOR trên bit của khối thông điệp hiện tại và giá trị băm trung gian lần lặp trước đó. Thuật toán có đầu vào một thông điệp với một chiều dài tối đa nhỏ hơn 2256 bit và tạo ra đầu ra một thông điệp tóm tắt 512-bit. Đầu vào được xử lý trong khối 512-bit. Hình 12.6 mô tả các xử lý tổng thể của một thông điệp để tạo ra một tóm tắt. Điều này tuân theo cấu trúc chung mô tả trong hình 11,9. Xử lý bao gồm các bước sau: Bước 1: Thêm bit đệm. Thông điệp được đệm để chiều dài của tính bằng bit là bội lẻ 256. Đệm là luôn luôn thêm, ngay cả khi tin nhắn đã được chiều dài mong muốn. Ví dụ, nếu thông điệp này là 256x 3 = 768 bit dài, nó được đệm bằng 512 bit chiều dài 256 x 5 = 1280 bit. Như vậy, số lượng các bit đệm nằm trong khoảng từ 1 đến 512. Hình 12.6. Sự sinh ra Thông điệp tóm tắt Sử dụng Whirlpool Ghi chú:3 cổng vào đánh dấu đầu vào chủ chốt Đệm bao gồm một bit 1 tiếp theo là số cần thiết của bit 0. Bước 2: Thêm chiều dài. Một khối 256 bit được nối vào thông điệp. Khối này được coi là một số nguyên không dấu 256-bit (byte đầu tiên quan trọng nhất) và có chiều dài theo bit của thông điệp ban đầu (trước khi đệm). Kết quả của hai bước đầu tiên mang lại thông điệp là bội số của 512 bit chiều dài.Trong Hình 12.6, thông điệp mở rộng được biểu diễn như dãy của các khối 512-bit m1,m2,..., MT để tổng chiều dài của thông điệp mở rộng là tx 512 bit. Các khối được xem bên ngoài như là mảng các byte được tuần tự nhóm các bit trongkhối 8-bit. Tuy nhiên, nội bộ, các trạng thái băm Hi được xem như là một ma trận 8 x 8 /byte. Việc chuyển đổi giữa hai thứ được giải thích sau đó. Bước 3: Khởi tạo ma trận băm. Một ma trận  8 x 8 byte được sử dụng để giữ kết quả trung gian và cuối cùng của hàm băm. Các ma trận được khởi tạo bao gồm tất cả bit 0. Bước 4: Xử lý thông điệp trong khối 512 bit (64 byte). Trái tim của thuật toán là khối mã W. Khối Mã W Không giống như hầu hết tất cả các đề nghị khác cho một hàm băm dựa vào khối mã trên,Whirlpool sử dụng một khối mã được thiết kế để sử dụng trong các hàm băm và hàm đó không bao giờ được sử dụng như là một chức năng mã hóa độc lập. Lý do cho điều này là các nhà thiết kế muốn sử dụng một mã khối với sự an toàn và hiệu quả AES, nhưng với một chiều dài băm mà cung cấp khả năng bảo mật bằng SHA-512. Kết quả là các mã khối W, trong đó có một cấu trúc tương tự và sử dụng các chức năng cơ bản tương tự như AES, nhưng trong đó sử dụng một kích thước khối và kích thước một khóa là 512 bit. Bảng 12.2 so sánh AES và W. Mặc dù W cũng tương tự như AES, nó không chỉ đơn giản là một phần mở rộng. Hãy nhớ rằng các đề xuất của Rijndael để xác định một mã AES, trong đó chiều dài khối và chiều dài khóa có thể được độc lập quy định là 128, 192, hay 256 bit. Các đặc điểm kỹ thuật của AES sử dụng 3 khóa thay thế có cùng kích thước, nhưng giới hạn độ dài khối đến 128 bit. AES hoạt động trên một trạng thái 4 x 4 byte. Rijndael với độ dài 192 bit khối hoạt động trên một trạng thái 4 x 6 byte. Rijndael với độ dài 256 bit khối hoạt động trên một trạng thái 4 x 8 byte. W hoạt động trên một trạng thái8 x 8 byte. Càng nhiều đại diện trạng thái khác với hình vuông, khuếch tán càng chậm đi và càng nhiều các vòng mã cần. Đối với một chiều dài khối là 512 bit, các nhà phát triển Whirlpool có thể đã được xác định một hoạt động Rijndael trên một trạng thái 4 x 16 byte, nhưng mã sẽ cần nhiều vòng và nó hẳn đã rất chậm. Như Bảng 12.2 chỉ, W sử dụng một ma trận hàng trong khi AES sử dụng một ma trận. Không có lý do kỹ thuật để thích một trong những định hướng hang cột nào hơn, bởi vì một cách dễ dàng có thể xây dựng một mô tả tương đương của cùng một mã, chuyển đổi hàng với các cột. Bảng 12.2. So sánh Whirlpool Khối Mã W và AES W AES Kích thước khối (bit) 512 128 Kích thước khóa (bit) 512 128,192 hoặc 256 Định hướng ma trận Đầu vào là ma trận dòng Đầu vào là ma trận cột Số vòng 10 10,12 hoặc 14 Khóa mở rộng Hàm vòng W Thuật toán mở rộng chuyên dụng Đa thức GF(28) x8 + x4 + x3 + x2 + 1 (011D) x8 + x4 + x3 + x + 1 (011B) Nguồn gốc của S-Box Cấu trúc đệ quy Bội nghịch đảo trong GF (28) cộng với biến đổi phép chiếu Nguồn gốc của hằng số vòng Cổng tiếp theo của S-Box Phần tử 2i của GF(28) Lớp khuếch tán Nhân phải của ma trận vòng 8 x 8 MDS (1, 1, 4, 1, 8, 5, 2, 9) -trộn hàng Nhân trái của ma trận vòng MDS 4x4 Hoán vị Chuyển cột Chuyển dòng Cơ cấu tổng thể Hình 12,7 thể hiện cấu trúc tổng thể của W. Các thuật toán mã hóa lấy một khối 512-bit bản nguồn và khoá 512-bit làm đầu vào và sản xuất một khối 512-bit bản mã là đầu ra.Các thuật toán mã hóa liên quan đến việc sử dụng bốn hàm khác nhau, hoặc chuyển đổi: thêm khóa (AK), thay thế byte (NHNN), dịch cột (SC), và trộn hàng (MR),mà hoạt động được giải thích sau đó. W bao gồm một ứng dụng duy nhất của AK sau10 vòng có liên quan đến tất cả bốn hàm. Chúng ta có thể diễn tả chính xác hoạt độn