РЕАЛІЗАЦІЯ АЛГОРИТМУ ХЕШУВАННЯ KECCAK ВИКОРИСТОВУЮЧИ ОБЧИСЛЮВАЛЬНІ МОЖЛИВОСТІ ГРАФІЧНОГО ПРОЦЕСОРА
14.09.2021 21:59
[1. Информационные системы и технологии]
Автор: Васільцов Д.В., магістрант, кафедра комп’ютерних систем та мереж, ІФТКН, Чернівецький національний університет імені Юрія Федьковича, м. Чернівці
Вступ. Мета роботи полягає в розробці програмної реалізації алгоритму хешування Keccak використовуючи обчислювальні можливості графічного процесора.
Актуальність теми. Хешування широко використовується в криптографії та не тільки. Алгоритм Keccak, який ми будемо реалізовувати покладений в основу стандарту хешування SHA-3, що не залишає сумнівів в актуальності його використання у різних системах, що цього потребують. Одним із невід'ємних факторів подібних алгоритмів є їх швидкість, адже при використанні хешування у високонавантажених системах які потребують обробки великої кількості даних, навіть найменша оптимізація буде сильно відчутна. Використовуючи обчислювальні можливості GPU ми зможемо отримати чудові показники швидкості виконання алгоритму, що дасть змогу виконати обробку даних більшого об'єму за той же час.
Аналіз проблеми. Для підтвердження цілісності повідомлень у системах ідентифікації цифрової інформації використовують криптографічні хеш-функції. Такі алгоритми хешування як MD5 та SHA-1 використовують при перетворенні даних довільної довжини у хеш фіксованого розміру функції ущільнення, через що неодмінно стикаються з проблемою появи колізій та зовнішніх атак. Заснований на конструкції криптографічної губки стандарт SHA-3 використовує xeш-функції зі змінною довжиною виходу і реалізує механізм псевдовипадкових перемішувань, який унеможливлює простеження залежності результату від вхідних даних і забезпечує стійкість до атак на виявлення колізій. У роботі [1] доповідається про модель ітеративної хеш-функції з використанням структури Меркле-Дамгарда, побудованої на правилах КА, в поєднанні з операціями XOR та побітового зсуву. Для забезпечення криптостійкості розробленої конструкції було запропоновано використовувати комбінацію лінійних та нелінійних правил КА. Лінійні правила (наприклад, «60», «90», «150»), в яких використовується лише операція XOR, забезпечують стійкість до колізій. Тоді як нелінійна група правил з AND-OR логікою (такі як, «22», «30», «86», «135»), використовуються для підтримки однонаправленості та нелінійності хеш-функцій.
Запропоноване технічне рішення. Пропонується реалізувати алгоритм хешування Keccak використовуючи обчислювальні можливості графічного процесора у вигляді додатка. Користувач матиме змогу визначити вхідне повідомлення для хешування та розмір хешу у бітах (256, 384, 512), отримавши в результаті хеш свого повідомлення. Програмну реалізацію даного алгоритму можна інтегрувати в систему, що цього потребує, без будь яких складностей.
Конструкція губки працюватиме у двох режимах: «вбирання» (absorbing) та «віджим» (squeezing). Дані спочатку «вбираються» в губку, при якому початкове повідомлення піддається багатораундовим перестановкам, потім результат «віджимається» з губки. На етапі «вбирання» блоки повідомлення додаються за модулем 2 з підмножиною стану, який потім перетворюється за допомогою функції перестановки. На етапі «віджимання» вихідні блоки зчитуються з одного і того ж підмножинного стану, зміненого функцією перестановок. Розмір частини стану, який записується і зчитується, називається «швидкістю» (англ. rate) і позначається r, а розмір частки, яка незаймана введенням/виведенням, називається «ємністю» (англ. capacity) і позначається с.
На всіх етапах реалізації алгоритму буде дотримано принципів GPGPU (обчислення загального призначення на графічних процесорах).
Список літератури:
1. Jeon J.-Ch. Analysis of hash functions and cellular automata based schemes / J.-Ch. Jeon // International Journal of Security and Applications, 2013. – Vol. 7, No. 3. – P. 303-316.
2. Bertoni G. [Electronic resource]. – The Keccak sponge function family. – Access mode : http://keccak.noekeon.org/.