Dưới đây là một số chi tiết về bốn nguyên thủy mật mã có thể là những ứng cử viên tiềm năng cho bảo vệ tính bảo mật/toàn vẹn trong 5G dựa trên thông tin từ [6, 7], lần lượt là AES-256, SNOW 3G*, SNOW-V và ZUC-256. Trong đó AES-256 là khá quen thuộc với nhiều bạn đọc, SNOW 3G* chính là SNOW 3G nhưng sử dụng khóa có 256-bit thay cho 128-bit.
Trong [8-15] trình bày một số kết quả hoạt động khi triển khai phần mềm/phần cứng và các cuộc tấn công nguy hiểm nhất cho đến nay đối với các mật mã này. Diện tích triển khai phần cứng được đánh giá theo tương đương cổng (Gate equivalent - GE), nó tương đương với diện tích vật lý của một cổng phủ định của cổng AND (NOT-AND – NAND). Tuy nhiên, sẽ không hợp lý nếu chỉ so sánh hiệu suất của các mật mã này theo các số liệu trong bảng, vì các nền tảng và các tiểu tiết thực hiện có thể khác nhau.
Bảng 2. Một số kết quả hiệu suất của AES-256, SNOW 3G*, SNOW-V và ZUC-256 [18]
Các triển khai thuộc các nền tảng hoặc tài nguyên khác nhau và sẽ không hợp lý nếu so sánh chúng trực tiếp theo các số liệu hiển thị Bảng 2. Hãy tham chiếu tới các tài liệu tham khảo để biết thêm chi tiết. Cột 2 – 5 là thông lượng dưới các kích thước bản rõ khác (tất cả thông lượng được đo bằng Gbps và kích thước bản rõ tính bằng byte).
Nội dung dưới đây trình bày sơ lược về thiết kế của 4 thuật toán và kèm theo những bình luận về khả năng ảo hóa, tốc độ thực thi, độ mật của từng thuật toán.
AES-256
Chuẩn mã hóa tiên tiến (Advanced Encryption Standard – AES) mã hóa và giải mã dữ liệu trong các khối 128 bit và hỗ trợ ba độ dài khóa:128-bit, 192-bit và 256-bit. AES liên tục thực hiện bốn phép biến đổi (SubBytes, ShiftRows, MixColumns, AddRoundKey) và những biến đổi này tạo thành một vòng đầy đủ. Khi làm việc với các độ dài khóa khác nhau, số vòng yêu cầu cũng khác nhau lần lượt là 10 vòng cho AES-128, 12 vòng cho AES-192 và 14 vòng cho AES-256.
AES phổ biến đến mức được hỗ trợ đặc biệt từ các nhà cung cấp CPU chủ đạo, dưới dạng các lệnh nội bên trong, làm cho nó chạy nhanh ngay cả trên môi trường phần mềm. Ví dụ, một số CPU như Intel, thiết bị micro nâng cao (Advanced Micro Devices – AMD) và Máy có kiến trúc RISC nâng cao (Advanced RISC Machines - ARM) đã được tích hợp với các lệnh AES SIMD để cung cấp các lời gọi mức người dùng thực hiện các vòng AES. Nhiều phần mềm bảo mật cũng hỗ trợ tập lệnh AES như OpenSSL. Điều này làm cho AES có lợi thế hơn so với các mã pháp khác. Vì AES có thể khá hiệu quả trong hệ thống 5G được đám mây hóa.
Xem xét những điều này, chúng ta có thể mong đợi rằng AES rất có thể sẽ được triển khai trong 5G, với phiên bản 256-bit. Theo [2] “Nếu AES 256-bit được đưa vào, các chế độ AES mới hơn, ví dụ GCM, có thể được xem xét trong giai đoạn quy chuẩn có thể được thực hiện đối với các cải thiện hiệu suất có thể xảy ra”. [10] đã kiểm tra thông lượng của AES-256 (ở chế độ bộ đếm) trong OpenSSL khi dùng các lệnh của CPU Intel hỗ trợ AES và các kỹ thuật tối ưu hóa khác trong môi trường phần mềm theo kết quả Bảng 2 AES: đạt được thông lượng cao hơn 20 Gbps khi kích thước các bản rõ lớn hơn 256 byte, đáp ứng yêu cầu tốc độ của 5G. Đối với hiệu suất trong môi trường phần cứng, kết quả từ [11] cung cấp một triển khai được tối ưu hóa tốc độ - diện tích của AES-128 (10 vòng) trên công nghệ NanGate 15 nm với thông lượng 71,19 Gbps và diện tích 17232 GE. Điều này có nghĩa là với cùng một thiết kế, có thể đạt được 50,85 Gbps cho AES-256 (14 vòng) [10]. Cho đến nay, tấn công nguy hiểm nhất trên AES-256 là biclique dẫn đến khôi phục khóa với độ phức tạp tính toán 2254,4 [12], tốt hơn một chút so với tìm kiếm khóa vét cạn.
SNOW 3G*
SNOW 3G là mã dòng định hướng từ đang được sử dụng làm cốt lõi của một trong những thuật toán bảo mật và toàn vẹn cho cả mạng 3G và tiến hóa dài hạn (Long Term Evolution – LTE) với mức bảo mật 128-bit. Hình 2 cho thấy giản đồ tổng thể của SNOW 3G. Nó bao gồm một thanh ghi dịch phản hồi tuyến tính (Linear Feedback shift register – LFSR) của phần tuyến tính và một phần phi tuyến tính được gọi là máy có hữu hạn trạng thái (Finite State Machine – FSM), cả hai đều được xác định trên GF(232). Phần LFSR bao gồm 16 ô, được ký hiệu là (s15, s14,…, s1, s0), mỗi ô chứa 32 bit và do đó tổng cộng là 512 bit; trong khi FSM có ba thanh ghi 32 bit bên trong R1, R2 và R3, được kết nối bằng các phép toán như S-biến đổi, phép cộng số học và XOR.
Tại mỗi lần lặp, đầu ra của FSM được XOR với s0 từ LFSR để tạo ra dòng khóa 32 bit. Tiếp đó, FSM và LFSR lần lượt được cập nhật: FSM lấy s15, s5 từ LFSR và cập nhật R1, R2 và R3. Sau đó, LFSR là được cập nhật với mỗi giá trị trong từng ô được chuyển sang bên phải một ô và s15 được cập nhật theo đa thức sinh. Cấu trúc định hướng từ này giúp SNOW 3G hiệu quả trong cả môi trường phần mềm và phần cứng. Trong [10], các tác giả đã triển khai SNOW 3G trong môi trường phần mềm, với thông lượng lớn hơn 8,5 Gbps đối với các bản rõ có kích thước lớn hơn 4096 byte. Trong một triển khai tích hợp phần cứng gần đây của SNOW 3G và ZUC sử dụng thư viện công nghệ đích 65 nm [13], nó có thể đạt được 52,8 Gbps cho riêng SNOW 3G với khoảng 18100 GE. Cho đến nay, không có phương pháp phân tích mật mã hiệu quả nào chống lại SNOW 3G với mức bảo mật 128 bit.
Hình 2. Pha sinh dòng khóa của mã pháp SNOW 3G
SNOW 3G có thể được giữ lại ở 5G nhưng với kích thước khóa được đặt thành 256 bit [7], với lợi thế là các thành phần hiện có trong phần cứng có thể được sử dụng lại. Tuy nhiên, trong [8], một cuộc tấn công tương quan dẫn đến khôi phục khóa với độ phức tạp 2177 và một cuộc tấn công phân biệt với độ phức tạp 2172 đã được đề xuất. Điều này cho thấy rằng nếu độ dài khóa trong SNOW 3G được tăng lên 256 bit, thì không thể đạt được mức bảo mật 256 bit cho dòng khóa được sinh ra. Do đó, nếu SNOW 3G* được sử dụng trong 5G, một số biện pháp bảo mật cần được thực hiện để chống lại các cuộc tấn công, ví dụ, hạn chế độ dài của dòng khóa như được thực hiện trong hệ thống 3G/LTE. Tuy nhiên, nhược điểm chính của SNOW 3G* là hiệu suất của nó trong phần mềm có thể là một điểm nghẽn tiềm ẩn đối với hệ thống 5G đám mây hóa.
SNOW-V
Năm 2019, mã pháp SNOW-V đã được đề xuất trong [10] như phiên bản 256-bit của SNOW 3G, để đáp ứng yêu cầu của 5G đối với các nguyên thủy mật mã về cả tốc độ mã hóa và mức độ bảo mật (với “V” là viết tắt của “Virtualization”). Mục tiêu chính của SNOW-V là đạt được hiệu quả cao trong môi trường phần mềm và tăng cường mức độ bảo mật lên 256 bit. Cấu trúc chung của SNOW-V kế thừa các nguyên tắc thiết kế và bảo mật của SNOW 3G, với LFSR tuyến tính và FSM phi tuyến tính, nhưng cả hai đều được cập nhật để phù hợp hơn với triển khai được vector hóa trên này làm cho SNOW-V hiệu quả trong môi trường phần mềm. Bên cạnh đó SNOW-V cũng áp dụng một tính năng bảo mật mới trong quá trình khởi tạo.
Hình 3. Pha sinh dòng khóa của mã pháp SNOW-V
Hình 3 cho thấy giản đồ tổng thể của SNOW-V. Phần LFSR là một cấu trúc xoay vòng bao gồm hai LFSR (được đặt tên là LFSR-A và LFSR-B) được xác định bởi hai đa thức, chúng cung cấp vật liệu cho nhau. Cả hai đều có 16 trạng thái và mỗi trạng thái là một phần tử từ GF(216), nhưng với các đa thức sinh khác nhau, do đó cho tổng số 512 - bit. Một cấu trúc LFSR như vậy có thể đạt được độ dài chu kỳ tối đa là 2512 - 1. Mỗi khi cập nhật LFSR, LFSR-A và LFSR-B chạy 8 nhịp, có nghĩa là 256 bit trong tổng số trạng thái 512 bit sẽ được cập nhật và sau đó hai băng 128 bit T1 và T2 được lấy ra tương ứng từ (b15, b14,…, b8) và (a7, a6,…, a0) sẽ được nạp cho FSM.
FSM có ba thanh ghi 128-bit R1, R2 và R3. Hai vòng AES đầy đủ được sử dụng làm hai S-hộp 128-bit lớn, một phiên bản được cấu trúc lại của các S-hộp 32-bit được sử dụng trong thiết kế SNOW 3G. Tại mỗi lần lặp, FSM lấy T1 và T2 từ LFSR làm đầu vào và tạo ra dòng khóa 128 bit. Sau đó, các thanh ghi R2 và R3 được cập nhật tương ứng từ R1 và R2 thông qua một vòng mã hóa AES đầy đủ với khóa vòng được đặt bằng 0, trong khi R1 được cập nhật từ R2, R3 và T2 bằng sự kết hợp của các phép toán XOR, phép cộng số học và một hoán vị σ.
Chế độ hoạt động mã hóa xác thực với dữ liệu liên hợp (Authenticated encryption with associated data - AEAD) cũng được cung cấp cho SNOW-V khi tận dụng thuật toán toàn vẹn và xác thực của mã xác thực thông điệp Galois (GMAC) để cung cấp thêm khả năng xác thực cho tin nhắn. Một lợi thế khác biệt của mã xác thực thông điệp Galois (Galois Message Authentication Code – GMAC) trong SNOW-V là ở chỗ H-key (khóa băm) được sử dụng trong hàm GHASHH là được tạo mới cho mỗi cặp (K, IV), tuy nhiên, điều tương đương, ví dụ như trong chế độ AES-GCM, trong đó H-key chỉ được lấy ra từ K. Các nhà thiết kế cũng đưa ra các triển khai phần mềm và phần cứng và hiệu suất tương ứng. Để triển khai phần mềm, các thanh ghi lớn và các lệnh SIMD được vector hóa, về thực chất bộ lệnh Mở rộng vecto nâng cao 2 ( Advanced Vector Extensions -AVX2) được sử dụng. Tốc độ có thể cao hơn 22 Gbps để mã hóa các bản rõ có kích thước lớn hơn 256 byte. Bốn cách triển khai phần cứng khả thi cũng được cung cấp tùy theo tài nguyên của thiết bị và thông lượng có thể cao hơn 358 Gbps với khoảng 13041 GE.
Trong [10] có 42 trang và một phần “3. Về phân tích độ an toàn (Security Analysis)" chiếm một dung lượng lớn. Nhắc lại rằng SNOW-V có khóa K 256-bit và vector khởi đầu Vecto khởi tạo (Initial vector – IV) 128-bit. Những tấn công sau đã được nghiên cứu (có sử dụng rất nhiều các kiến thức, kết quả của các tài liệu được trích dẫn trong [5]):
- Các tấn công khởi đầu thông qua các tấn công MDM/AIDA/cube.
- Các tấn công khởi đầu khác (kết hợp với sai khác ở các bit khóa).
- Tấn công đánh đổi Thời gian/Bộ nhớ/Dữ liệu.
- Các tấn công phân biệt tuyến tính và các tấn công tương quan.
- Các tấn công đại số.
- Tấn công Đoán-và-Xác định.
- Các tấn công khác (các tấn công cài đặt gồm có tấn công kênh kề, tấn công gây lỗi)
Từ Bảng 2 trong [10] có thể thấy rằng, tấn công cube lên SNOW-V được rút gọn còn có 7 vòng đã yêu cầu độ phức tạp lớn hơn 2256. Trong [16], các tác giả đã thực hiện một phân tích sâu và kỹ lưỡng liên quan đến các tấn công đoán-và-xác định, và phát hiện ra một tấn công có độ phức tạp 2406 mà thiết lập giới hạn trên cho độ an toàn của SNOW-V, điều này cũng cho thấy một hành lang an toàn tốt của thuật toán.
Qua việc nghiên cứu đánh giá độ an toàn đối với những tấn công chung cho mã dòng (như tấn công tương quan, tấn công đại số) tới những tấn công tương đối đặc thù cho họ SNOW (như tấn công đoán-và-xác định), cho đến thời điểm này có thể kết luận rằng SNOW-V đạt được độ an toàn cần thiết.
ZUC-256
ZUC-256 [17] được đề xuất vào tháng 1/2018 như là phiên bản 256bit của ZUC, để đáp ứng yêu cầu về mức độ bảo mật 256-bit của hệ thống 5G. Khác với SNOW-V gần như được thiết kế lại từ SNOW 3G tiền nhiệm, ZUC-256 giữ nguyên cấu trúc như ZUC-128 trong khi chỉ cải thiện giai đoạn khởi tạo và tạo mã xác thực thông điệp. Điều này mang lại cho ZUC-256 một số lợi thế về khả năng tái sử dụng của phần cứng hiện có.
Hình 4. Pha sinh dòng khóa của mã pháp ZUC-256
Hình 4 cho thấy giản đồ tổng thể của thuật toán ZUC-256, giống như trong ZUC-128. Nó bao gồm ba lớp: lớp trên cùng là LFSR gồm 16 ô, lớp dưới cùng là một hàm phi tuyến được gọi là F, trong khi lớp giữa được gọi là lớp tổ chức lại bit (BR-bit-reorganization) là lớp kết nối giữa LFSR và F. Khác với các mã dòng phổ biến thường được xác định trên các trường nhị phân GF(2) hoặc các trường mở rộng của GF(2), LFSR trong ZUC được xác định trên trường nguyên tố GF(p), với p = 231 - 1. Điều này làm ZUC-128 phức tạp hơn đối với phân tích mật mã. Mỗi khi cập nhật, giá trị trong một ô dịch chuyển sang bên phải một bước và S15 được cập nhật theo đa thức sinh. Lớp BR trích xuất một số phần 16bit thấp hơn hoặc cao hơn từ một số trạng thái trong LFSR và tạo thành bốn từ 32bit X0, X1, X2, X3 với ba từ đầu tiên được đưa vào F và từ cuối cùng được XOR với đầu ra của F để cuối cùng tạo ra một đoạn của dòng khóa. Các thanh ghi trong F được xác định trên GF(232) và được cập nhật bằng sự kết hợp của các phép toán như cộng số học, XOR, dịch vòng (≪ 16) và S-biến đổi (S ∗ L1, S ∗ L2).
Tài liệu [14] đưa ra một triển khai phần mềm của ZUC-256, nơi nó có thể đạt được tốc độ 0,7547 bit/chu kỳ, tức là 3,17 Gbps nếu chúng ta xem xét một Bộ xử lý trung tâm (Central Processing Unit – CPU)E @ 4,20 GHz như trong [10], đối với bản rõ có kích thước lớn hơn 1024 byte. Một triển khai phần cứng gần đây của ZUC sử dụng kiến trúc đường ống trên công nghệ Mạch tích hợp cho ứng dụng cụ thể (Application-specific integrated circuit - ASIC) 65 nm [15] có thể cung cấp thông lượng lên đến 80 Gbps với 12.500 GE.
Vào tháng 7/2018, một hội thảo về ZUC-256 đã được tổ chức và một số phương pháp thám mã tổng quát đã được trình bày, nhưng không có điểm yếu rõ ràng nào của ZUC-256 được tìm thấy vào thời điểm đó. Tuy nhiên, vào tháng 11/2019, các tác giả trong [9] đã đưa ra một tấn công phân biệt lên ZUC-256 với độ phức tạp O(2236) và chỉ rõ trong bài báo rằng “mặc dù tấn công chỉ nhanh hơn 220 lần so với tìm kiếm khóa vét cạn, nhưng kết quả chỉ ra rằng ZUC-256 không cung cấp một nguồn có đầy đủ 256 bit entropy trong dòng khóa được tạo, điều mà sẽ được mong đợi từ khóa có 256-bit ”. Tương tự, giống như trường hợp SNOW 3G, tấn công có thể không gây ra mối đe dọa ngay lập tức cho ZUC-256 miễn là độ dài của dòng khóa tương ứng với một giá trị IV bị hạn chế. Có lẽ, sẽ tốt nếu ZUC-256 có thể hoạt động nhanh hơn trong môi trường ảo hóa, nhưng mặt khác, nó có thể tái sử dụng các thành phần hiện có trong phần cứng, đây là một loại lợi thế khác.
Tài liệu trích dẫn 1. 3rd Generation Partnership Project. Technical Specification Group Services and System Aspects; Security Architecture and Procedures for 5G system (Release 16). 3GPP TS 33.501 (V16.5.0). https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3169 2. 3rd Generation Partnership Project. Technical Specification Group Services and Systems Aspects; Security Aspects; Study on the support of 256-bit Algorithms for 5G (Release 16). 3GPP TS 33.841 (V16.1.0). https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3422 3. Markus Grassl, Brandon Langenberg, Martin Roettler, Rainer Steinwandt (2015): “Applying Grover’s algorithm to AES: quantum resource estimates”. https://arxiv.org/pdf/1512.04965.pdf. 4. Vlad Gheorghiu, Michele Mosca (2017): “GRI quantum risk assessment report: A resource estimation framework for quantum attacks against cryptographic functions”. http://globalriskinstitute.org/download/summary-report-3/ 5. Scott Fluhrer (2017): “Reassessing Grover’s Algorithm”. 6. ETSI SAGE. Expectations and requirements for 256-bit algorithms. S3-190107. 7. ETSI SAGE. 256-bit algorithm candidates. S3-194534. 8. Yang J, Thomas J, Alexander M. Vectorized linear approximations for attacks on SNOW 3G. In: Proceedings of the 27th Annual Fast Software Encryption Conference, 2020. 9. Yang J, Thomas J, Alexander M. Spectral analysis of ZUC-256. In: Proceedings of the 27th Annual Fast Software Encryption Conference, 2020. 10. Patrik E, Thomas J, Maximov A, et al. A new SNOW stream cipher called SNOW-V. IACR Trans Symmetric Cryptol, 2019, 20: 1–42. 11. Rei U, Sumio M, Naofumi H, et al. A high throughput/gate aes hardware architecture by compressing encryption and decryption datapaths toward efficient cbc-mode implementation. Cryptology ePrint Archive, 2016. https://eprint.iacr.org/2016/595 12. Andrey B, Dmitry K, Christian R. Biclique cryptanalysis of the full AES. https://eprint.iacr.org/2011/449.pdf 13. Gupta S S, Chattopadhyay A, Khalid A. Designing integrated accelerator for stream ciphers with structural similarities. Cryptography and Communications, 2013, 5: 19–47. 14. Roberto A, Billy B B. Faster 128-EEA3 and 128-EIA3 software. In: Proceedings of the 16th International Conference on Information Security, Cham: Springer, 2015. 199–208. 15. Liu Z B, Zhang Q L, Ma C Q, et al. HPAZ: a high-throughput pipeline architecture of ZUC in hardware. In: Proceedings of Design, Automation & Test in Europe Conference & Exhibition (DATE), 2016. 269–272. 16. Jiao L, Li Y Q, Hao Y L. A guess-and-determine attack on SNOW-V stream cipher. Comput J, 2020. doi: 10.1093/comjnl/bxaa003. 17. ZUC Design Team. The ZUC-256 Stream Cipher. 2018. 18. Jing Yang & Thomas Johansson, An overview of cryptographic primitives for possible use in 5G and beyond, Science China Information Sciences volume 63, Article number: 220301 (2020). |