Розглянуто питання щодо підвищення безпеки та ефективності програмної реалізації симетричних блокових шифрів. Використано bitslice-підхід до безпечної імплементації криптоалгоритмів, який має такі потенційні переваги, як високу швидкодію і невимогливість до обчислювальних ресурсів. Проте, відомі bitsliced-методи мають обмеження, оскільки працюють з детермінованими S-Box або розраховують S-Box менших розмірів. Запропоновано новий евристичний метод bitsliced-подання криптографічних 8´8 S-Box, що містять випадково згенеровані значення. Метод засновано на декомпозиції таблиці істинності, яка описує S-Box, на дві частини. Одна частина таблиці формує логічні маски, а інша – розбивається на бітові вектори, для знаходження логічного опису яких застосовано вичерпний пошук. Після знаходження опису всіх векторів ці дві частини таблиці об'єднуються в одну за допомогою логічних операцій. Використання запропонованого методу, орієнтованого на програмну реалізацію в логічному базисі {AND, OR, XOR, NOT}, забезпечує мінімізацію довільних 8´8 S-Box. Цей метод допускає імплементацію з використанням стандартних логічних інструкцій на будь-яких 8/16/32/64-бітних процесорах. Також можливе використання логічних SIMD-інструкцій із розширень SSE, AVX, AVX-512 для х86-64 процесорів, що забезпечує високу швидкодію завдяки використанню довгих регістрів. Розроблено відповідне програмне забезпечення, яке реалізує метод пошуку bitsliced-подання заданого S-Box, а також автоматично формує для нього С++ код на базі SSE, AVX і AVX-512 інструкцій. Досліджено ефективність методу на S-Box відомих блокових шифрів, зокрема Національного стандарту шифрування "Kalyna". Встановлено, що розроблений алгоритм потребує майже вдвічі менше вентилів для bitsliced-опису довільного S-Box, ніж кращий відомий алгоритм (370 вентилів проти 680 відповідно). Для шифрів, у яких використовуються дві або чотири таблиці S-Box, внаслідок спільної мінімізації можна отримати до 330 або 300 вентилів на таблицю відповідно.
- Avraamova, O., Fomin, D., Serov, V., Smirnov, A., & Shokov, V. (2021). A compact bit-sliced representation of Kuznyechik S-box. Mathematical Aspects of Cryptography, 12(2), 21–38. https://doi.org/10.4213/mvk354
- Biham, E. (1997). A fast new DES implementation in software. In: Biham E. (Eds.) Fast Software Encryption. FSE 1997. Lecture Notes in Computer Science, 1267, 260–272. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0052352
- Biryukov, A., Perrin, L., & Udovenko, A. (2016) Reverse-Engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1. In: Fischlin M., Coron JS. (Eds.) Advances in Cryptology – EUROCRYPT 2016. Lecture Notes in Computer Science, Vol. 9665, 372–402. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-49890-3_15
- Borisenko, N., Vasinev, D., & Khoang, D. (2016). Method of forming s-blocks with minimum number of logic elements (RU Patent No. 2572423). Federal service for intellectual property. Retrieved from https://patents.google.com/patent/RU2572423C2/enhttps://patents.google.com/patent/RU2014112547A/en
- Boyar, J., & Peralta, R. (2012). A Small Depth-16 Circuit for the AES S-Box. In: Gritzalis D., Furnell S., Theoharidou M. (Eds.) Information Security and Privacy Research. SEC 2012. IFIP Advances in Information and Communication Technology, Vol. 376, 287–298. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30436-1_24
- Brayton, R., Hachtel, G., McMullen, C., & Sangiovanni-Vincentelli, A. (1984). Logic Minimization Algorithms for VLSI Synthesis. Kluwer Academic Publishers, Hingham, USA. https://doi.org/10.1007/978-1-4613-2821-6
- Canright, D. (2005). A Very Compact S-Box for AES. In: Rao J. R., Sunar B. (Eds.) Cryptographic Hardware and Embedded Systems – CHES 2005. CHES 2005. Lecture Notes in Computer Science, Vol. 3659, 441–455. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11545262_32
- Intel. (2021). Intel Intrinsics Guide. Retrieved from https://software.intel.com/sites/landingpage/IntrinsicsGuide/
- Käsper, E., & Schwabe, P. (2009). Faster and Timing-Attack Resistant AES-GCM. In: Clavier C., Gaj K. (Eds.) Cryptographic Hardware and Embedded Systems – CHES 2009. CHES 2009. Lecture Notes in Computer Science, 5747, 1–17. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04138-9_1
- Maximov, A., & Ekdahl, P. (2019). New Circuit Minimization Techniques for Smaller and Faster AES SBoxes. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2(4), 91–125. https://doi.org/10.13154/tches.v2019.i4.91-125
- Oliynykov, R., et al. (2015). A New Encryption Standard of Ukraine: The Kalyna Block Cipher. IACR Cryptology ePrint Archive, 2(650). Retrieved from https://eprint.iacr.org/2015/650.pdf
- Raghuraman, S. (2019). Efficiency of Logic Minimization Techniques for Cryptographic Hardware Implementation. Masters Thesis, Virginia Polytechnic Institute and State University.
- Reyhani-Masoleh, A., Taha, M., & Ashmawy, D. (2018). Smashing the Implementation Records of AES S-box. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2(2), 298–336. https://doi.org/10.13154/tches.v2018.i2.298-336
- Sovyn, Y., & Khoma, V. (2021). Bitsliced S-Box. Retrieved from https://drive.google.com/drive/folders/1yotZ4Hu5d3u0A4SoQnSS__BrcNZDOKYh? usp=sharing
- Stoffelen, K. (2016). Optimizing S-Box Implementations for Several Criteria Using SAT Solvers. In: Peyrin T. (Eds.) Fast Software Encryption. FSE 2016. Lecture Notes in Computer Science, Vol. 9783, 140–160. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-52993-5_8