Thuật toán mã hóa khối (Block Cipher)
1. Tổng quan
A. Định nghĩa
Mã khối là phương thức mã hóa khóa đối xứng chia bản rõ thành các khối có kích thước cố định (ví dụ: 64 bit, 128 bit) và dùng một khóa bí mật duy nhất để mã hóa·giải mã từng khối. Nó đối lập với mã dòng, vốn tạo ra dòng khóa (keystream) theo đơn vị bit·byte và xử lý tuần tự.
Bối cảnh khiến mã khối ra đời và trở thành nền tảng của các hệ mật mã ngày nay là nhu cầu thực tế "mã hóa lượng lớn dữ liệu một cách nhanh chóng, an toàn và theo phương thức được chuẩn hóa". Trước thập niên 1970, mật mã là công nghệ không công khai thuộc lĩnh vực quân sự·ngoại giao, nhưng khi tin học hóa tài chính và truyền thông thương mại lan rộng, người ta cần một chuẩn mật mã công khai mà ai cũng có thể kiểm chứng. Điểm khởi đầu là việc NBS của Hoa Kỳ (nay là NIST) chọn DES làm tiêu chuẩn năm 1977; sau đó, qua cuộc tuyển chọn AES (1997~2001), mã khối đã phát triển trên nguyên tắc Kerckhoffs "thuật toán công khai, bí mật chỉ nằm ở khóa". Ngày nay, lưu lượng web được bảo vệ bằng TLS, mã hóa toàn bộ ổ đĩa (BitLocker·FileVault), mạng WLAN (WPA2/3) và bảo vệ dữ liệu trên thẻ IC tài chính trên thực tế đều phụ thuộc vào mã khối.
B. Nguyên lý thiết kế — Xáo trộn (Confusion) và Khuếch tán (Diffusion)
Khái niệm căn bản nhất để hiểu độ an toàn của mã khối là xáo trộn (Confusion) và khuếch tán (Diffusion) do Claude Shannon đề xuất năm 1949. Xáo trộn là tính chất làm cho mối quan hệ thống kê giữa khóa và bản mã phức tạp nhất có thể, khiến dù phân tích bản mã bao nhiêu cũng khó đoán được bit nào của khóa đã tác động như thế nào. Tính chất này chủ yếu được hiện thực bằng hàm thay thế phi tuyến S-box (Substitution box). S-box là bảng tra biến mẫu bit đầu vào thành mẫu đầu ra không thể dự đoán; nếu còn sót lại dù chỉ một chút tính tuyến tính thì đó sẽ là manh mối cho tấn công tuyến tính, vì vậy đây là phần được đầu tư công sức nhiều nhất khi thiết kế.
Khuếch tán là tính chất làm cho sự thay đổi của một bit bản rõ (hoặc một bit khóa) lan rộng ra nhiều bit của bản mã. Lý tưởng là khi lật 1 bit bản rõ thì khoảng một nửa số bit bản mã thay đổi ngẫu nhiên, gọi là hiệu ứng thác lũ (Avalanche Effect). Nếu khuếch tán đủ mạnh, dù kẻ tấn công thu thập được lượng lớn cặp bản rõ·bản mã để phân tích thống kê cũng không tìm ra quy luật. Khuếch tán chủ yếu được hiện thực bằng hoán vị (Permutation) xáo trộn vị trí bit và tầng khuếch tán dưới dạng phép nhân ma trận.
Điểm cốt lõi là thay thế và hoán vị được lặp lại qua nhiều vòng (round). Chỉ với một lần thay thế·hoán vị thì xáo trộn·khuếch tán không đủ và dễ bị phân tích, nhưng khi lặp lại từ 10 lần trở lên, mối quan hệ giữa bản rõ và bản mã được trộn đủ kỹ để không thể giải mã trong thời gian thực tế. Ví dụ, AES-128 thực hiện 10 vòng, AES-256 thực hiện 14 vòng, và số vòng được xác định sao cho có biên an toàn (security margin) đủ lớn trước các tấn công tốt nhất đã biết.
2. Sơ đồ khái niệm cấu trúc tổng thể
Mã khối gồm lịch khóa (key schedule) dẫn xuất khóa vòng dùng cho từng vòng từ khóa gốc, và hàm vòng dùng khóa vòng đó để biến đổi khối lặp đi lặp lại. Sơ đồ khái niệm dưới đây cho thấy luồng tổng thể một khối bản rõ đi qua các vòng để trở thành bản mã.
flowchart TB
K["Khóa bí mật (khóa chủ)"] --> KS["Lịch khóa<br/>(tạo khóa vòng)"]
P["Khối bản rõ (kích thước cố định)"] --> R1["Vòng 1<br/>(thay thế·hoán vị)"]
KS -->|"Khóa vòng 1"| R1
R1 --> R2["Vòng 2 ... N<br/>(lặp lại)"]
KS -->|"Khóa vòng 2~N"| R2
R2 --> C["Khối bản mã"]
style KS fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
style R2 fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
Điểm bắt buộc phải lưu ý ở đây là chất lượng của lịch khóa cũng là một phần của độ an toàn. Nếu các khóa vòng có tương quan yếu với nhau thì sẽ trở thành mục tiêu của tấn công khóa liên quan (related-key attack), vì vậy bản thân quá trình dẫn xuất khóa vòng từ khóa chủ phải phi tuyến và không thể dự đoán. Thực tế, DES được biết là có một số ít "khóa yếu (weak key)" khiến mã hóa và giải mã trở nên giống hệt nhau, và một mã khối tốt được thiết kế sao cho không có các khóa ngoại lệ như vậy.
3. Cấu trúc bên trong — Feistel và SPN
Hai phương thức tiêu biểu tổ chức hàm vòng của mã khối là cấu trúc Feistel và cấu trúc SPN (Substitution-Permutation Network). Hai cấu trúc có cùng mục tiêu "lặp lại thay thế·hoán vị" nhưng cách bố trí khác nhau, dẫn đến các đặc tính khác nhau về sự thuận tiện khi hiện thực và hiệu năng.
flowchart LR
subgraph FE["Cấu trúc Feistel (DES)"]
L0["Nửa trái L"] --> X1["XOR"]
R0["Nửa phải R"] --> F["Hàm vòng F"]
KF["Khóa vòng"] --> F
F --> X1
X1 --> Rn["Vòng tiếp theo: hoán đổi L·R"]
R0 --> Rn
end
subgraph SP["Cấu trúc SPN (AES)"]
IN["Toàn bộ khối"] --> SB["Thay thế (S-box)"]
SB --> PM["Hoán vị·khuếch tán (ma trận)"]
PM --> AK["XOR khóa vòng"]
AK --> OUT["Vòng tiếp theo"]
end
style FE fill:#eef7ee,stroke:#2f9e44
style SP fill:#e8f0fe,stroke:#2f6fed
Cấu trúc Feistel chia khối thành hai nửa trái·phải (L, R), chỉ áp dụng hàm vòng F cho một nửa, XOR kết quả với nửa còn lại rồi hoán đổi trái phải, và lặp lại quá trình này. Ưu điểm thực tiễn lớn nhất của cấu trúc này là cấu trúc mạch của mã hóa và giải mã giống hệt nhau. Chỉ cần đưa khóa vòng vào theo thứ tự ngược lại là có thể giải mã bằng cùng phần cứng·phần mềm, nên chi phí hiện thực giảm một nửa. Ngoài ra, bản thân hàm vòng F không cần có hàm ngược (vì được hoàn nguyên bằng XOR), nên mức độ tự do trong thiết kế S-box cao. DES, 3DES, SEED, Blowfish thuộc họ này. Nhược điểm là mỗi vòng chỉ biến đổi một nửa khối, nên để đạt khuếch tán đủ cần tương đối nhiều vòng.
Cấu trúc SPN áp dụng tuần tự tầng thay thế (S-box), tầng hoán vị·khuếch tán và XOR khóa vòng trên toàn bộ khối. Vì toàn bộ khối được biến đổi mỗi vòng nên khuếch tán nhanh và thuận lợi cho song song hóa, tương thích tốt với lệnh SIMD của CPU hiện đại hoặc phần cứng chuyên dụng. AES, ARIA là đại diện tiêu biểu. Đổi lại, khi giải mã cần phép biến đổi ngược của S-box và ma trận khuếch tán nên mạch mã hóa và giải mã khác nhau. Lý do AES rất nhanh trên cả phần mềm và phần cứng chính là tính song song của cấu trúc SPN này và sự hỗ trợ của tập lệnh AES-NI sẽ được giải thích ở phần sau.
Hàm ý thực tiễn của sự khác biệt giữa hai cấu trúc là rõ ràng. Trong môi trường nhúng bị ràng buộc cực độ hoặc khi cần giữ logic mã hóa·giải mã làm một, tính đối xứng của Feistel có lợi; còn trong môi trường coi trọng thông lượng như máy chủ·di động, tính song song của SPN có lợi.
Ngoài ra, cấu trúc ARX (Add-Rotate-XOR) xây dựng hàm vòng chỉ bằng phép cộng, phép xoay và XOR gần đây được chú ý. Vì không dùng bảng tra S-box nên nó chống chịu tốt với kênh kề thời gian cache (cache timing side-channel) và hiện thực phần mềm nhẹ, nên mã khối hạng nhẹ LEA của Hàn Quốc và mã dòng ChaCha20 đã áp dụng phương thức này. Rốt cuộc, lựa chọn cấu trúc là sự thỏa hiệp giữa ba trục "biên an toàn, nền tảng hiện thực mục tiêu, mối đe dọa kênh kề", và không có một đáp án duy nhất.
4. Sự thay đổi của các thuật toán chính
Mã khối đã liên tục thay thế thế hệ theo sự phát triển của năng lực tính toán và sự tiến hóa của các kỹ thuật tấn công. Tiêu chuẩn ban đầu DES dùng khối 64 bit và khóa thực chất 56 bit, và ngay từ khi công bố, độ dài khóa ngắn đã bị lo ngại. Thực tế, năm 1998, thiết bị chuyên dụng "Deep Crack" do EFF chế tạo với chi phí khoảng 250 nghìn USD đã phá khóa 56 bit bằng vét cạn (brute-force) trong 56 giờ, và tuổi thọ của DES trên thực tế đã chấm dứt. Đây là sự kiện mang tính biểu tượng chứng minh thực nghiệm rằng "không gian khóa 2⁵⁶ không còn an toàn".
3DES (Triple DES), xuất hiện như một giải pháp quá độ, áp dụng DES ba lần (mã hóa-giải mã-mã hóa) với ba khóa để nâng độ dài khóa hiệu dụng lên 112 bit. Tuy bảo đảm được độ an toàn nhưng do thực hiện DES 3 lần nên tốc độ chậm đi còn 1/3, và vẫn mang giới hạn căn bản là khối 64 bit (dễ bị tấn công Sweet32 giải thích ở phần sau). Vì những lý do này, NIST đã quy định 3DES thuộc diện cấm sử dụng mới sau cuối năm 2023.
Độ an toàn của mã khối không được bảo đảm chỉ vì khóa dài, mà được đánh giá bằng mức độ chịu đựng các kỹ thuật phân tích đã biết. Trong các kỹ thuật tấn công tiêu biểu, thám mã vi sai (differential cryptanalysis) lợi dụng độ lệch xác suất khi sự khác biệt đầu vào lan truyền thành sự khác biệt đầu ra, còn thám mã tuyến tính (linear cryptanalysis) tích lũy thống kê các quan hệ tuyến tính xấp xỉ giữa các bit đầu vào·đầu ra·khóa để khôi phục khóa. Một mã khối tốt thiết kế S-box và tầng khuếch tán sao cho xác suất thành công của hai tấn công này nhỏ đến mức không đáng kể, và cộng thêm biên an toàn bằng số vòng đủ lớn. Việc AES chịu được thời gian kiểm chứng lâu dài cũng là vì khả năng kháng lại các phân tích này được chứng minh về mặt toán học.
Tiêu chuẩn trên thực tế toàn cầu hiện nay là AES (Advanced Encryption Standard). Thuật toán Rijndael do các nhà nghiên cứu Bỉ thiết kế đã được xác lập làm tiêu chuẩn năm 2001 sau 5 năm tuyển chọn·kiểm chứng công khai. AES hỗ trợ khối 128 bit với khóa 128·192·256 bit, an toàn và nhanh nhờ cấu trúc SPN. Dù đã chịu sự phân tích tập trung của toàn thế giới hơn 20 năm, vẫn chưa phát hiện được tấn công thực tế nào trên toàn bộ số vòng. Tại Hàn Quốc, các tiêu chuẩn kiểu Hàn Quốc là SEED (1999, do KISA phát triển, họ Feistel, 128 bit) và ARIA (2004, tiêu chuẩn quốc gia, họ SPN, 128 bit) được sử dụng rộng rãi trong lĩnh vực công và tài chính. Mã khối hạng nhẹ LEA (2013) của Hàn Quốc dành cho môi trường IoT hạng nhẹ cũng đã được tiêu chuẩn hóa.
| Thuật toán | Kích thước khối/khóa (bit) | Cấu trúc | Đặc điểm và hiện trạng |
|---|---|---|---|
| DES | 64 / 56 | Feistel | Khóa ngắn, bị phá bằng vét cạn năm 1998, đã loại bỏ |
| 3DES | 64 / 112·168 | Feistel | DES 3 lần, chậm·giới hạn 64 bit, bị cấm sau 2023 |
| AES | 128 / 128·192·256 | SPN | Tiêu chuẩn quốc tế hiện hành, an toàn·tốc độ cao, tăng tốc HW |
| SEED / ARIA | 128 / 128 | Feistel / SPN | Tiêu chuẩn Hàn Quốc (công·tài chính) |
| LEA | 128 / 128·192·256 | ARX | Mã hạng nhẹ Hàn Quốc, môi trường IoT·tiêu thụ điện thấp |
5. Chế độ hoạt động (Block Cipher Mode of Operation)
Bản thân mã khối là hàm chỉ biến đổi một khối có kích thước cố định. Tuy nhiên, dữ liệu thực tế (tệp, gói tin truyền thông, bản ghi cơ sở dữ liệu) dài hơn kích thước khối rất nhiều, vì vậy bắt buộc cần chế độ hoạt động quy định cách liên kết nhiều khối để mã hóa. Dù dùng cùng AES, nếu chọn sai chế độ hoạt động thì độ an toàn sẽ sụp đổ, nên trong thực tiễn đây là quyết định quan trọng không kém việc chọn thuật toán.
flowchart LR
subgraph ECB["ECB (không khuyến nghị)"]
P1["P1"] --> E1["Mã hóa"] --> C1["C1"]
P2["P2"] --> E2["Mã hóa"] --> C2["C2"]
end
subgraph CBC["CBC (xâu chuỗi)"]
IV["IV"] --> XX1["XOR"]
PP1["P1"] --> XX1 --> EE1["Mã hóa"] --> CC1["C1"]
CC1 --> XX2["XOR"]
PP2["P2"] --> XX2 --> EE2["Mã hóa"] --> CC2["C2"]
end
style ECB fill:#fdedeb,stroke:#e03131
style CBC fill:#e8f0fe,stroke:#2f6fed
ECB (Electronic Codebook) là chế độ đơn giản nhất, mã hóa từng khối một cách độc lập. Nó có ưu điểm là xử lý song song được, nhưng có điểm yếu chết người là cùng một khối bản rõ luôn cho ra cùng một khối bản mã. Vì vậy, mẫu hình của dữ liệu gốc vẫn lộ ra nguyên vẹn ngay cả trong dữ liệu đã mã hóa. Như ví dụ nổi tiếng "chim cánh cụt ECB", khi mã hóa ảnh bitmap bằng ECB, chỉ có màu sắc thay đổi còn hình dạng vẫn nhìn thấy rõ. Do đó, trong thực tiễn ECB trên thực tế bị cấm sử dụng.
CBC (Cipher Block Chaining) tạo chuỗi liên kết giữa các khối bằng cách XOR mỗi khối bản rõ với khối bản mã ngay trước đó trước khi mã hóa. Khối đầu tiên dùng vectơ khởi tạo (IV) ngẫu nhiên, nên cùng một bản rõ nhưng khác IV sẽ cho ra bản mã hoàn toàn khác và mẫu hình biến mất. Tuy nhiên, IV phải không thể dự đoán (tấn công BEAST trên TLS trước đây đã lợi dụng IV có thể dự đoán), và do mã hóa diễn ra tuần tự nên khó song song hóa.
Chế độ CTR (Counter) mã hóa giá trị bộ đếm tăng dần để tạo dòng khóa rồi XOR với bản rõ, tức là dùng mã khối như một mã dòng. Vì bộ đếm của mỗi khối độc lập nên cả mã hóa lẫn giải mã đều xử lý song song hoàn toàn, phù hợp với môi trường dung lượng lớn·tốc độ cao. Tuy nhiên, nếu dùng cùng một tổ hợp (khóa, bộ đếm) hai lần thì dòng khóa bị tái sử dụng và gây hậu quả nghiêm trọng, nên quản lý nonce là cốt lõi.
GCM (Galois/Counter Mode) là tiêu chuẩn hiện đại kết hợp tính bảo mật của chế độ CTR với tính toàn vẹn·xác thực thông qua thẻ xác thực (AEAD). Nó tạo ra thẻ xác thực kiểm chứng dữ liệu không bị sửa đổi đồng thời với việc mã hóa, nên cung cấp tính bảo mật và toàn vẹn cùng lúc. Đây là lý do bộ mật mã bắt buộc của TLS 1.3 là AES-GCM (và ChaCha20-Poly1305).
| Chế độ | Tính song song | Thuộc tính cung cấp | Đặc điểm và khuyến nghị |
|---|---|---|---|
| ECB | Có | Bảo mật (không hoàn chỉnh) | Lộ mẫu hình, cấm sử dụng |
| CBC | Chỉ khi giải mã | Bảo mật | Bắt buộc IV, cẩn trọng padding oracle |
| CTR | Hoàn toàn | Bảo mật | Cấm tái sử dụng nonce, tốc độ cao |
| GCM | Hoàn toàn | Bảo mật + toàn vẹn (AEAD) | Khuyến nghị hiện đại, bắt buộc trong TLS 1.3 |
Việc chế độ hoạt động quyết định độ an toàn được chứng minh qua các vụ tấn công thực tế. Tấn công Sweet32 công bố năm 2016 nhắm chính vào kích thước khối 64 bit của 3DES·Blowfish, chứng minh thực nghiệm rằng khi mã hóa khoảng 2³² khối (khoảng 32GB) với cùng một khóa, nghịch lý ngày sinh làm phát sinh va chạm khối bản mã và một phần bản rõ bị khôi phục. Đây là trường hợp mà không phải bản thân thuật toán mà tổ hợp "khối ngắn + phiên kéo dài" đã tạo ra lỗ hổng, trở thành căn cứ mạnh mẽ để chuyển sang AES với khối 128 bit. Ngoài ra, tấn công padding oracle (như POODLE) lợi dụng lỗi xử lý padding của chế độ CBC cho thấy hiện thực sai có thể vô hiệu hóa một thuật toán an toàn như thế nào, và đây là bối cảnh ngành công nghiệp chuyển sang chế độ AEAD (GCM).
6. Chuyên sâu — xu hướng tiêu chuẩn và chuẩn bị cho kháng lượng tử
Trục thứ nhất trong các xu hướng mới nhất quanh mã khối là mật mã hạng nhẹ (Lightweight Cryptography). Trên các thiết bị bị giới hạn cực độ về điện năng, số cổng logic và bộ nhớ như IoT·cảm biến·RFID, ngay cả AES cũng có thể quá nặng, vì vậy năm 2023 NIST đã chọn ASCON làm tiêu chuẩn cuối cùng của cuộc tuyển chọn mật mã hạng nhẹ. ASCON cung cấp AEAD hoạt động hiệu quả trên phần cứng nhỏ, và dự kiến sẽ trở thành thành phần cơ bản của bảo mật IoT công nghiệp trong tương lai. LEA của Hàn Quốc cũng được thiết kế từ cùng nhận thức về vấn đề này.
Trục thứ hai là chuẩn bị cho điện toán lượng tử. Trái với hiểu lầm phổ biến, máy tính lượng tử không vô hiệu hóa hoàn toàn mật mã khóa đối xứng. Khác với thuật toán Shor trên thực tế làm sụp đổ mật mã khóa công khai (RSA·ECC), thuật toán Grover áp dụng cho khóa đối xứng chỉ rút ngắn thời gian vét cạn khóa xuống căn bậc hai. Tức là trong môi trường lượng tử, độ an toàn thực chất của AES-128 giảm xuống khoảng 64 bit, nhưng AES-256 vẫn duy trì độ an toàn khoảng 128 bit, nên vẫn được đánh giá là an toàn. Vì vậy, ứng phó thực tiễn là rõ ràng — cách tiếp cận lai được khuyến nghị: với khóa đối xứng thì tăng độ dài khóa lên AES-256 để chuẩn bị, còn mật mã khóa công khai dùng kèm cho trao đổi khóa·chữ ký thì chuyển sang PQC (ML-KEM, ML-DSA, v.v.) được NIST tiêu chuẩn hóa năm 2024.
Trục thứ ba là tăng tốc phần cứng và phòng thủ kênh kề. Các CPU hiện đại như Intel·ARM tích hợp AES-NI (và ARMv8 Crypto Extension) xử lý một vòng AES bằng một lệnh duy nhất, đem lại hiệu năng nhanh gấp vài lần~vài chục lần so với hiện thực phần mềm, đồng thời phòng thủ cả tấn công thời gian cache nhắm vào chênh lệch thời gian truy cập bảng tra. Đây là nền tảng cốt lõi phá bỏ quan niệm cũ "AES chậm" và hiện thực hóa mã hóa toàn diện (encryption everywhere).
7. Lưu ý và hàm ý
Lấy AES làm thuật toán cơ bản, nhưng phải thiết kế cùng cả chế độ hoạt động. Hệ thống mới lấy AES-256/GCM (hoặc ChaCha20-Poly1305) làm mặc định, còn DES·3DES·RC4·ECB của hệ thống cũ được quản lý như đối tượng cần chuyển đổi. Chỉ nói "dùng AES" không thể bảo đảm an toàn; cần nhận thức rằng việc dùng sai chế độ như sử dụng ECB hay tái sử dụng nonce là nguyên nhân chính của các sự cố thực tế.
Quản lý khóa (Key Management) có thể quan trọng hơn lựa chọn thuật toán. AES mạnh đến đâu cũng vô nghĩa nếu khóa bị hardcode trong mã nguồn hoặc được lưu trữ không an toàn. Cốt lõi của thực tiễn là quản lý toàn bộ vòng đời khóa — tạo, lưu giữ, thay định kỳ (rotation) và hủy — thông qua HSM (module bảo mật phần cứng)·KMS, cùng thiết kế mã hóa phong bì (envelope encryption) bọc khóa mã hóa dữ liệu (DEK) bằng khóa mã hóa khóa (KEK).
Sự đánh đổi giữa hiệu năng và bảo mật đã được giải quyết phần lớn nhờ tăng tốc phần cứng. Trên máy chủ·thiết bị di động nơi AES-NI đã phổ biến, gánh nặng hiệu năng của mã hóa toàn diện là không đáng kể, nên lập luận "bỏ qua mã hóa vì hiệu năng" không còn hợp lệ. Tuy nhiên, với IoT tiêu thụ điện cực thấp, cần cách tiếp cận dựa trên rủi ro xem xét riêng các mật mã hạng nhẹ như ASCON·LEA.
Chuyển đổi sang kháng lượng tử được tiếp cận từng bước, tách riêng khóa đối xứng và khóa công khai. Với khóa đối xứng, nâng độ dài khóa lên AES-256 để chuẩn bị; với lĩnh vực khóa công khai dễ tổn thương, xây dựng chiến lược lai ưu tiên chuyển sang PQC. Nếu tính đến mối đe dọa "thu thập bây giờ, giải mã sau (harvest now, decrypt later)", dữ liệu cần bảo mật dài hạn càng phải được ưu tiên chuyển đổi cao hơn.
Thể chế hóa việc tuân thủ tiêu chuẩn và kiểm chứng. Khu vực công và tài chính tại Hàn Quốc yêu cầu sử dụng module mật mã đã được kiểm chứng (KCMVP) như SEED·ARIA·AES, vì vậy nên chọn thư viện·module đã được kiểm chứng thay vì tự hiện thực, đồng thời đưa vào thiết kế kiến trúc linh hoạt mật mã (crypto-agility) cho phép dễ dàng thay thế thuật toán để chuẩn bị cho việc thuật toán mật mã bị lỗi thời.
Tài liệu tham khảo
- NIST FIPS 197, Advanced Encryption Standard (AES): https://csrc.nist.gov/pubs/fips/197/final
- NIST SP 800-38A, Block Cipher Modes of Operation: https://csrc.nist.gov/pubs/sp/800/38/a/final
- NIST Lightweight Cryptography (ASCON): https://csrc.nist.gov/projects/lightweight-cryptography
- KISA, hướng dẫn sử dụng mật mã (SEED·ARIA·LEA): https://seed.kisa.or.kr/
Tóm tắt một câu: Mã khối là mật mã khóa đối xứng áp dụng lặp lại xáo trộn·khuếch tán qua nhiều vòng trên từng khối bản rõ có kích thước cố định; trên nền cấu trúc Feistel·SPN, AES đã trở thành tiêu chuẩn trên thực tế, và vì lựa chọn chế độ hoạt động như ECB (yếu)·CBC·CTR·GCM cùng quản lý khóa quyết định độ an toàn, hệ thống mới phải lấy AES-256/GCM, kết hợp toàn vẹn (AEAD) và chuẩn bị kháng lượng tử làm chiến lược cơ bản.