Information Safe              Confidentiality                    Modern cipherVan Hoang NguyenMail: startnewday85@gmail.co...
Modern CiphersBlock cipher?    Stream cipher?
Modern Block  cipher?
Ý tưởng của block CiphersMã hóa từng khối của plaintext một lần. Giả sử độ lớncủa mỗi khối là n bits, thì ứng với mỗi n bi...
Ý tưởng của block Ciphers
Block cipher     =Monoalphabetic   cipher?
Block Ciphers ≈ Monoalphabetic cipherĐể chứng minh, trước hết ta giả sử mỗi khối có cỡ là nbits. Khi đó:   • Bảng chữ cái ...
Block ciphercó an toàn không?
Năm 800!!!Abu Yusuf Yaqub ibn Is-haq ibn as-Sabbah ibn omran ibn Ismail al-Kindi
Confusion và Diffusion                 • Hai thuật ngữ này được Claude                 Shannon đề xuất vào năm 1949 trong ...
Tính an toàn của block cipher• Hàm mã hóa E phải là hàm có tính đảo ngượcđược, tức E là một “song ánh”• Gọi n là cỡ của kh...
Mã khối tổng quát
Nhược điểm của mã khối tổng quátMã khối tổng quát rõ ràng là an toàn với n lớn.Nhưng n lớn chưa hẳn là khả thi với nhà lập...
n lớn  An toànKhông khả thi
ý tưởng của Horst FeistelÝ tưởng của Feistel là xấp xỉ ý tưởng mã khối. Cụthể là thay vì sử dụng mã khối tổng quát, ta chỉ...
Hill cipherCác hàm tuyến tính    Dễ phá 
ý tưởng của Horst Feistel• Horst Feistel đề nghị sử dụng mã tích thay vìcác hàm tuyến tính• Ông đề nghị sử dụng luân phiên...
Feistel cipher structureĐược xây dựng dựa trên ý tưởng của Feistel.  • Một khối của plaitext(PB) sẽ chạy qua n vòng mã hóa...
Feistel cipher structure                      K1                      Kn
Feistel cipher structureNhận xét:   • Hàm thế được áp dụng trên nửa trái(F và phép xor)   • Các vòng có cùng một cấu trúc ...
Feistel decipher structureGiống hệt với mã hóa nhưng thực hiện theo chiềungược lại:  • Ciphertext được sử dụng làm input  ...
Nguyên tắc thiết kế mã khối FeistelMột số yếu tố cần quan tâm khi thiết kế:      • Block size – Cỡ của khối      • Key siz...
Data EncryptionStandard(DES)
• Vì sao phải chuẩn hóa việc mã hóa dữ liệu?• Cấu trúc mã hóa và giải mã của chuẩn mãhóa dữ liệu DES?• Tính an toàn của DES
Vì sao phải chuẩnhóa việc mã hóa dữ        liệu?
• Ngay trong thời kỳ đầu mã hóa, người ta đã thấy sựcần thiết phải thống nhất với nhau phương pháp mã hóa• Điều này càng đ...
Cấu trúc của DES?
Data Encryption Standard• Năm 1977, NBS đưa ra chuẩn mã hóa dữ liệu –DES(FIPS PUB 46)• DES lập tức trở nên phổ biến trong ...
Những tranh luận về thiết kế của             DESDES được đưa ra tranh luận vì DES là một chuẩncông khai. Có 2 khía cạnh là...
DES Encryption• DES có cấu trúc tương                           64 bitstự như cấu trúc củaFeistel nếu bỏ đi hàm IP      IP...
Initial permution(IP)• IP là bước đầu tiên trong cấu trúc của DES• Bản chất của hàm IP là tạo ra một hoán vị của input• Hà...
Initial permution(IP)Bảng 8x8 sẽ mô tả hàm IP với input có chiều dài64 bits.      58   50   42   34   26   18   10   2    ...
IP-1Bảng 8x8 sẽ mô tả hàm IP-1 với input có chiềudài 64 bits.      40   8   48   16   56   24   64   32      39   7   47  ...
Cấu tạo một vòng DES• Input là một chuỗi 64 bits.• Đầu tiên input được chia làm 2 nửa ký hiệu là L và R.• Output là một ch...
Cấu tạo một vòng DESHàm F được mô tả trong DES như sau:• Input là một chuỗi 32 bits(là nửa phải                32 bitstron...
Cấu tạo một vòng DESHàm E(Expansion/permutation):        32     1     2     3     4    5         4     5     6     7     8...
Cấu tạo một vòng DESCấu tạo của S-box: • Hàm F chứa 8 S-box. • Input cho mỗi S-box là một chuỗi 6 bits. • Output cho mỗi S...
Cấu tạo một vòng DESCấu tạo P(Permutation):       16   7    20 21 29 12 28 17        1   15   23 26 5 18 31 10       2    ...
Key generation• Đầu tiên khóa K được chạy                  K(64 bits)qua hàm PC1 để lấy 56 bits.                          ...
Key generationHàm PC1:       57   49   41   33   25   17   9       1    58   50   42   34   26   18       10   2    59   5...
Key generationHàm PC2:        14     17    11   24     1        5     3        28        15     6     21   10     23      ...
DES Decryption• Giải mã đơn giản là áp dụng thuật toán mãnhưng với các khóa được sử dụng theo chiềungược lại(k16->k1).• DE...
Tính an toàn của     DES?
Hiệu ứng tuyết lở               Avalanche Effect• Là một tính chất mong muốn của các mậtmã.• Nếu thay đổi một bít ở đầu và...
Key size• Với khóa cỡ 56 bits, ta có 256≈7.2x1016khóa tiềm năng.• DES có thể bị tấn công vét cạn:       - Năm 1997, một mạ...
Cryptanalysis• Có nhiều nghiên cứu thám mã trênDES.• Lợi dụng điểm yếu trong thiết kế củaDES(S-box).
Cryptanalysis• Sử dụng kết quả thống kê => cần mộtlượng thông tin lớn.• Một số hình thức chính:     - Thám mã sai phân-Dif...
Timing Attack• Dựa trên cơ sở là: việc mã và giải mãcần một lượng thời gian khác nhau vớinhững input khác nhau• DES là hoà...
Differential cryptanalysis• Là một trong những thành tựu của thám mãmới được công bố gần đây• Tuy nhiên NSA đã nhận thấy v...
Differential cryptanalysis• DES có thể kháng cự được với hình thức tấncông này• Việc sử dụng S-box và các hàm hoán vị(P) l...
DESThực sự là không an       toàn
Triple DESCó tốc độ chậm!
Năm 1997NIST kêu gọi tìm  kiếm mã mới
Advanced Encryption Standard                                    128 bits                 key• Block size: “128 bits”      ...
AES Round’s structure
Add Round key• XOR trạng thái với 128 bits khóa• Xử lý theo từng cột• Dễ tìm hàm ngược• Thiết kế đơn giản nhất có thể:   –...
Substitute bytes• Là một phép thế các bytes đơn giản• Sử dụng cách cài đặt dạng bảng(S-box)
Shift Row• Dịch bits trên mỗi dòng   – Dòng 1: không đổi   – Dòng 2: dịch sang trái 1 byte   – Dòng 3: dịch sang trái 2 by...
Shift Row• Hàm ngược, đơn giản là dịch sang phải• Add round key thực hiện theo cột, do đóbước này thực hiện theo dòng nhằm...
Mix Column
Key Expansion• Mở rộng khóa(128 bits) thành mảng gồm 44/52/60từ 32 bits• Copy khóa vào 4 từ đầu tiên của mảng• Các nhóm 4 ...
Key Expansion
Modern block cipher
Upcoming SlideShare
Loading in …5
×

Modern block cipher

4,411 views
4,250 views

Published on

Modern cipher includes block cipher and stream cipher. This slide describe basic principles in building symmetric block ciphers.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,411
On SlideShare
0
From Embeds
0
Number of Embeds
72
Actions
Shares
0
Downloads
782
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Modern block cipher

  1. 1. Information Safe Confidentiality Modern cipherVan Hoang NguyenMail: startnewday85@gmail.comDepartment of Computer ScienceFaculty of Information Technology – Hanoi University of Agriculture.
  2. 2. Modern CiphersBlock cipher? Stream cipher?
  3. 3. Modern Block cipher?
  4. 4. Ý tưởng của block CiphersMã hóa từng khối của plaintext một lần. Giả sử độ lớncủa mỗi khối là n bits, thì ứng với mỗi n bits đầu vàosẽ cho ra n bits mã hóa PlainText Block Block Block Block Encrypt CBlock CBlock CBlock CBlock CipherText
  5. 5. Ý tưởng của block Ciphers
  6. 6. Block cipher =Monoalphabetic cipher?
  7. 7. Block Ciphers ≈ Monoalphabetic cipherĐể chứng minh, trước hết ta giả sử mỗi khối có cỡ là nbits. Khi đó: • Bảng chữ cái gốc chính là bảng chữ cái mà mỗi chữ cái là một bộ n bits • Quá trình mã hóa khối đơn giản có thể hiểu là thay thế n bits ban đầu bằng n bits mã hóa. Vậy nên nó cũng như là việc thay thế chữ cái này bằng chữ cái khác • Như vậy phương thức mã hóa có thể được diễn đạt thông qua một bảng chữ cái mã hóa mà ở đó mỗi chữ cái là một bộ n bitsNhư vậy mã khối là “tương đương” với mã một bảng chữ cái!
  8. 8. Block ciphercó an toàn không?
  9. 9. Năm 800!!!Abu Yusuf Yaqub ibn Is-haq ibn as-Sabbah ibn omran ibn Ismail al-Kindi
  10. 10. Confusion và Diffusion • Hai thuật ngữ này được Claude Shannon đề xuất vào năm 1949 trong ý tưởng về mạng thế và hoán vị(S-P Network) • Confusion – Sự rối loạn là thuật ngữ dùng để chỉ những kỹ thuật nhằm làm cho quá trình tìm kiếm mối quan hệ thống kê giữa khóa và bản mã trở nên “không thể” • Diffusion – Sự khuyếch tán là thuật ngữ dùng để chỉ những kỹ thuật nhằm làm cho quá trình tìm kiếm mối quan hệ thống kê giữa bản gốc và bản mã trở nên “không thể”Claude Shannon
  11. 11. Tính an toàn của block cipher• Hàm mã hóa E phải là hàm có tính đảo ngượcđược, tức E là một “song ánh”• Gọi n là cỡ của khối. Khi đó ta sẽ có 2n! cáchàm E khác nhau - Với n nhỏ => dễ bị tấn công bởi phương pháp thống kê, và vét cạn(brute-force) - Với n lớn ?  Không thể tìm ra mối liên hệ thống kê  Không thể thực hiện vét cạn vì số lượng hàm E tăng rất nhanh theo n
  12. 12. Mã khối tổng quát
  13. 13. Nhược điểm của mã khối tổng quátMã khối tổng quát rõ ràng là an toàn với n lớn.Nhưng n lớn chưa hẳn là khả thi với nhà lập mã: • Vì để tạo ra hàm E tổng quát => Khóa đơn giản chính là mô tả của hàm E • Khi n lớn, mô tả của hàm E sẽ rất phức tạpChẳng hạn: Với n=64: Để mô tả hàm E cần 64*264 bits ≈ 220 TB!!!
  14. 14. n lớn An toànKhông khả thi
  15. 15. ý tưởng của Horst FeistelÝ tưởng của Feistel là xấp xỉ ý tưởng mã khối. Cụthể là thay vì sử dụng mã khối tổng quát, ta chỉ sửdụng một tập con trong tập các hàm tổng quát(nhữnghàm có thể mô tả một cách đơn giản hơn) • Hill cipher và các hàm tuyến tính là một ví dụ c1  p1k11  p2 k12  ...  pn k1n c  p k  p k  ...  p k  2 1 21 2 22 n 2n .............................................   ............................................. cn 1  p1k( n 1)1  p2 k( n 1) 2  ...  pn k( n 1) n  cn  p1k n1  p2 k n 2  ...  pn k nn 
  16. 16. Hill cipherCác hàm tuyến tính Dễ phá 
  17. 17. ý tưởng của Horst Feistel• Horst Feistel đề nghị sử dụng mã tích thay vìcác hàm tuyến tính• Ông đề nghị sử dụng luân phiên phép thế vàphép hoán vị• Horst Feistel thực sự thành công trong việchiện thực hóa ý tưởng S-P Network của ClaudeShannon
  18. 18. Feistel cipher structureĐược xây dựng dựa trên ý tưởng của Feistel. • Một khối của plaitext(PB) sẽ chạy qua n vòng mã hóa để sinh ra một khối của ciphertext(CB) • Đầu tiên PB được chia làm 2 phần ký hiệu là: R0,L0 • Khóa mã hóa K sẽ được sử dụng để sinh ra n khóa con(subkey): ki với 1≤i≤n • Tại vòng mã hóa i: - Input: Ri-1, Li-1(là kết quả của vòng thứ i-1) - Output: Ri = F(Ri-1,ki) xor Li-1 Li = Ri-1 • CB=Rn||Ln.
  19. 19. Feistel cipher structure K1 Kn
  20. 20. Feistel cipher structureNhận xét: • Hàm thế được áp dụng trên nửa trái(F và phép xor) • Các vòng có cùng một cấu trúc nhưng được khác biệt hóa bởi khóa con ki • Cuối cùng phép hoán vị được thực hiện bằng cách đảo vị trí hai nửa Cấu trúc của Feistel bản chất là việc thực hiện luân phiên các chức năng confusion(rối loạn) và diffusion(khuyếch tán). Cấu trúc của Feistel là một cài đặt cụ thể cho ý tưởng của Claude Shannon.
  21. 21. Feistel decipher structureGiống hệt với mã hóa nhưng thực hiện theo chiềungược lại: • Ciphertext được sử dụng làm input • Các khóa con ki được sử dụng theo trình tự ngược lại: kn,kn-1,…,k2,k1 Sự đối xứng trong cấu trúc mã hóa và giải mã chính là nét đẹp trong cấu trúc của Feistel cipher.
  22. 22. Nguyên tắc thiết kế mã khối FeistelMột số yếu tố cần quan tâm khi thiết kế: • Block size – Cỡ của khối • Key size – Cỡ của khóa • Số lượng vòng(n) • Thuật toán sinh khóa con • Hàm F Phần mềm mã hóa/giải mã phải “nhanh” Cấu trúc phải “clear”
  23. 23. Data EncryptionStandard(DES)
  24. 24. • Vì sao phải chuẩn hóa việc mã hóa dữ liệu?• Cấu trúc mã hóa và giải mã của chuẩn mãhóa dữ liệu DES?• Tính an toàn của DES
  25. 25. Vì sao phải chuẩnhóa việc mã hóa dữ liệu?
  26. 26. • Ngay trong thời kỳ đầu mã hóa, người ta đã thấy sựcần thiết phải thống nhất với nhau phương pháp mã hóa• Điều này càng được thấy rõ hơn trong chiến tranhthế giới thứ II, khi mà những trao đổi thông tin bímật giữa các quốc gia trở nên phổ biến• Những năm 1960, máy tính đã được sử dụng trongcác doanh nghiệp. Và mã hóa máy tính trở thànhphương tiện cho trao đổi thông tin bí mật• Ngày 15/5/1973, Cục tiêu chuẩn quốc gia HoaKỳ(NBS) lên kế hoạch chuẩn hóa việc mã hóa dữ liệu
  27. 27. Cấu trúc của DES?
  28. 28. Data Encryption Standard• Năm 1977, NBS đưa ra chuẩn mã hóa dữ liệu –DES(FIPS PUB 46)• DES lập tức trở nên phổ biến trong công việc mã hóa• DES là một mã khối với: - Block size : 64 bits - Key size : 56 bits• DES được dựa trên dự án Tuchman-Meyer – một phiênbản cải tiến của Lucifer cho mục đích thương mại
  29. 29. Những tranh luận về thiết kế của DESDES được đưa ra tranh luận vì DES là một chuẩncông khai. Có 2 khía cạnh là: • Key size: theo đánh giá 56 bits là hơi nhỏ • Chi tiết thiết kế của S-Box Mặc cho những bàn cãi khác nhau về tính an toàn của DES. DES vẫn được sử dụng một cách rộng rãi!
  30. 30. DES Encryption• DES có cấu trúc tương 64 bitstự như cấu trúc củaFeistel nếu bỏ đi hàm IP IPvà IP-1 ở đầu và cuối. Round 1 Round 16 Swap IP-1 64 bits
  31. 31. Initial permution(IP)• IP là bước đầu tiên trong cấu trúc của DES• Bản chất của hàm IP là tạo ra một hoán vị của input• Hàm hoán vị được định nghĩa theo cấu trúc bảng• Với một bảng mô tả hàm IP sẽ có bảng tương ứng môtả cho hàm IP-1
  32. 32. Initial permution(IP)Bảng 8x8 sẽ mô tả hàm IP với input có chiều dài64 bits. 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
  33. 33. IP-1Bảng 8x8 sẽ mô tả hàm IP-1 với input có chiềudài 64 bits. 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25
  34. 34. Cấu tạo một vòng DES• Input là một chuỗi 64 bits.• Đầu tiên input được chia làm 2 nửa ký hiệu là L và R.• Output là một chuỗi 64 bits, được xây dựng từ 2 nửa: output=L’||R’. Trong đó: - L’=R - R’=L xor F(R,K)
  35. 35. Cấu tạo một vòng DESHàm F được mô tả trong DES như sau:• Input là một chuỗi 32 bits(là nửa phải 32 bitstrong input của vòng). Expansion/permutation• Input đầu tiên được chạy qua hàm E(Expansion/permuation) để thực hiện hoán 48 bitsđổi và bổ xung thêm 16 bits. Kết quả trả ki xorra chuỗi 48 bits.• Chuỗi 48 bits thu được đem xor với khóa Substitution/choicek. 32 bits• Tiếp đến chạy qua hàm S-box để thực Permutationhiện phép thế và chọn. Kết quả trả ra chuỗi32 bits. 32 bits• Cuối cùng chạy qua một hàm hoán vị P đểtrả ra 32 bits output.
  36. 36. Cấu tạo một vòng DESHàm E(Expansion/permutation): 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1Hàm E được mô tả bằng một bảng hoán vị, có sự mởrộng bằng cách lặp 16 bits.
  37. 37. Cấu tạo một vòng DESCấu tạo của S-box: • Hàm F chứa 8 S-box. • Input cho mỗi S-box là một chuỗi 6 bits. • Output cho mỗi S-box là một chuỗi 4 bits. • S-box được định nghĩa dưới dạng bảng, có cấu trúc như sau: 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 • Phương thức hoạt động của S-box: - Hai bits: đầu và cuối: chỉ số dòng. - Bốn bits giữa: chỉ số cột.
  38. 38. Cấu tạo một vòng DESCấu tạo P(Permutation): 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25Cấu tạo hàm Swap: • Hàm Swap hoán đổi vị trí hai nửa của chuỗi bits input.
  39. 39. Key generation• Đầu tiên khóa K được chạy K(64 bits)qua hàm PC1 để lấy 56 bits. PC1• Kết quả được chia làm hainữa. Mỗi nửa được đưa qua C0 D0hàm left shift. Left shift Left shift• Tiếp đến 2 nửa sẽ làm inputcho hàm PC2 để tính ra k1. Permutation/ Contraction(PC2)• Đồng thời 2 nửa cũng đượclưu lại để tính khóa cho vòng C1 D1tiếp theo.
  40. 40. Key generationHàm PC1: 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4
  41. 41. Key generationHàm PC2: 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32Hàm Left shift:Round number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Bits rotated 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
  42. 42. DES Decryption• Giải mã đơn giản là áp dụng thuật toán mãnhưng với các khóa được sử dụng theo chiềungược lại(k16->k1).• DES gần giống như việc giữ thư bí mật bằngcách bỏ thư vào hòm và khóa lại. Sau đó hòmthư thu được lại bỏ vào hòm lớn hơn và khóalại, cứ như vậy cho đủ 16 hòm thì thu đượcDES.
  43. 43. Tính an toàn của DES?
  44. 44. Hiệu ứng tuyết lở Avalanche Effect• Là một tính chất mong muốn của các mậtmã.• Nếu thay đổi một bít ở đầu vào hoặc khóathì đầu ra sẽ thay đổi trên nhiều bits(1/2).• DES thể hiện rất tốt tính chất này.
  45. 45. Key size• Với khóa cỡ 56 bits, ta có 256≈7.2x1016khóa tiềm năng.• DES có thể bị tấn công vét cạn: - Năm 1997, một mạng các máy tính. - Năm 1998, EEF và DES cracker. - Năm 1999, sử dụng kết hợp các biện pháp.
  46. 46. Cryptanalysis• Có nhiều nghiên cứu thám mã trênDES.• Lợi dụng điểm yếu trong thiết kế củaDES(S-box).
  47. 47. Cryptanalysis• Sử dụng kết quả thống kê => cần mộtlượng thông tin lớn.• Một số hình thức chính: - Thám mã sai phân-Differential cryptanalysis. - Thám mã tuyến tính-Linear cryptanalysis. - Tấn công khóa liên kết–related key attack.
  48. 48. Timing Attack• Dựa trên cơ sở là: việc mã và giải mãcần một lượng thời gian khác nhau vớinhững input khác nhau• DES là hoàn hảo để đối phó với hìnhthức tấn công này
  49. 49. Differential cryptanalysis• Là một trong những thành tựu của thám mãmới được công bố gần đây• Tuy nhiên NSA đã nhận thấy vấn đề này từnhững năm 1970• Được công bố năm 1990 bởi Murphy, Birhamvà Shamir• Là một phương pháp mạnh để tấn công các mãkhối
  50. 50. Differential cryptanalysis• DES có thể kháng cự được với hình thức tấncông này• Việc sử dụng S-box và các hàm hoán vị(P) làmcho DES mạnh hơn Lucifer trong việc đối phóvới thám mã sai phân
  51. 51. DESThực sự là không an toàn
  52. 52. Triple DESCó tốc độ chậm!
  53. 53. Năm 1997NIST kêu gọi tìm kiếm mã mới
  54. 54. Advanced Encryption Standard 128 bits key• Block size: “128 bits” add round key W[0,3] Substitue bytes Round 1• Key size: 128 bits Shift rows expand key Mix columns W[4,7] add round key Substitue bytes Round 9 Shift rows Mix columns W[36,39] add round key Substitue bytes Round 10 Shift rows W[40,43] add round key 128 bits
  55. 55. AES Round’s structure
  56. 56. Add Round key• XOR trạng thái với 128 bits khóa• Xử lý theo từng cột• Dễ tìm hàm ngược• Thiết kế đơn giản nhất có thể: – Dạng mã Vernam với khóa mở rộng – Bổ xung một số bước nhằm tăng độ phức tạp/tính an toàn
  57. 57. Substitute bytes• Là một phép thế các bytes đơn giản• Sử dụng cách cài đặt dạng bảng(S-box)
  58. 58. Shift Row• Dịch bits trên mỗi dòng – Dòng 1: không đổi – Dòng 2: dịch sang trái 1 byte – Dòng 3: dịch sang trái 2 bytes – Dòng 4: dịch sang trái 3 bytes
  59. 59. Shift Row• Hàm ngược, đơn giản là dịch sang phải• Add round key thực hiện theo cột, do đóbước này thực hiện theo dòng nhằm hoán vịcác bytes trong các cột
  60. 60. Mix Column
  61. 61. Key Expansion• Mở rộng khóa(128 bits) thành mảng gồm 44/52/60từ 32 bits• Copy khóa vào 4 từ đầu tiên của mảng• Các nhóm 4 từ tiếp theo, mỗi từ được xây dựng dựatrên từ đứng trước nó(wi-1) và từ cả nhóm trước có vịtrí tương ứng với nó(wi-4), theo công thức sau: xor(g(wi-1),wi-4) nếu wi là từ đầu tiên trong nhóm wi = xor(wi-1,wi-4)• Hàm g thực hiện liên tiếp các phép: dịch trái, S-box, cuối cùng là xor với một hằng số
  62. 62. Key Expansion

×