Threefish — вкриптографії симетричний блоковий криптоалгоритм, розроблений автором Blowfish та Twofish, американським криптографомБрюсом Шнайером 2008 року для використання в хеш-функції Skein і як універсальну заміну наявним блоковим шифрам. Основними принципами розробки шифру були: мінімальне використання пам'яті, необхідна для використання в хеш-функції стійкість до атак, простота реалізації та оптимізація під 64-розрядні процесори.
Розробники | Брюс Шнайєр |
---|---|
Уперше оприлюднений | 2008 р. |
Раундів | 72 (80 при ключі 1024 біт) |
Тип | SP-мережа |
Структура алгоритму
Threefish має дуже просту структуру і може бути використаний для заміни алгоритмів блочного шифрування, бувши швидким і гнучким шифром, що працюють в довільному режимі шифрування. Threefish S-блоки не використовує, заснований на комбінації інструкцій виключаючого або, складання і циклічного зсуву.
Як і AES, шифр реалізований у вигляді підстановочно-перестановочної мережі на оборотних операціях, не будучи шифром мережі Фейстел.
Алгоритм передбачає використання tweak-значення, свого роду вектора ініціалізації, дозволяючи змінювати таким чином значення виходу, без зміни ключа, що має позитивний ефект як для реалізації нових режимів шифрування, так і на криптостойкости алгоритму.
Як результат думки авторів, що кілька складних раундів часто гірше ніж застосування великого числа простих раундів, алгоритм має нетрадиційно велику кількість раундів - 72 або 80 при ключі 1024 біт, проте, за заявою творців, його швидкісні характеристики випереджають AES приблизно вдвічі. Варто зауважити, що через 64-бітної структури шифру, дана заява правдива лише на 64-розрядній архітектурі. Тому, Threefish, як і Skein , заснований на ньому, на 32-розрядних процесорах показує значно гірші результати ніж на «рідному» обладнанні.
Ядром шифру є проста функція «MIX», перетворювальна два 64-бітових беззнакових числа, в процесі якої відбувається складання, циклічний зсув (ROL / ROR), і додавання по модулю 2 (XOR).
Нижче представлений код MIX-функції для Threefish-1024:
// Константи для циклічного зсуву int R16 [8] [8] = { {55, 43, 37, 40, 16, 22, 38, 12}, {25, 25, 46, 13, 14, 13, 52, 57}, {33, 8, 18, 57, 21, 12, 32, 54}, {34, 43, 25, 60, 44, 9, 59, 34}, {28, 7, 47, 48, 51, 9, 35, 41}, {17, 6, 18, 25, 43, 42, 40, 15}, {58, 7, 32, 45, 19, 18, 2, 56}, {47, 49, 27, 58, 37, 48, 53, 56}, }; // D - раунд, j - індекс в таблиці циклічного зсуву void mix (int j, int d) { usigned long long rotl; y [0] = x [0] + x [1]; rotl = R16 [d% 8] [j]; y [1] = (x [1] << rotl) | (x [1] >> (64 - rotl)); y [1] ^ = y [0]; }
Процедура розшифрування обернена процедурі зашифрування і містить зворотну функцію DEMIX.
Кожен з 72 раундів Threefish-256 і Threefish-512 має чотири MIX перетворення, Threefish-1024 - вісім звернень до MIX функції.
Безпека
За заявою авторів, алгоритм має більш високий рівень безпеки, ніж AES. Існує атака на 25 з 72 раундів Threefish, в той час як для AES - на 6 з 10. Threefish має показник фактора безпеки 2.9, в свою чергу, AES всього 1.7
Для досягнення повної дифузії, шифру Threefish-256 досить 9 раундів, Threefish-512 - 10 раундів і Threefish-1024 - 11 раундів. Виходячи з цього, 72 і 80 раундів відповідно в середньому, забезпечать кращі результати, ніж існуючі шифри.
У той же час, алгоритм має набагато простішу структуру і функцію перетворення, проте виконання 72-80 раундів, на думку дослідників, забезпечує необхідну стійкість. Вживаний розмір ключа від 256 до 1024 біт зводить нанівець можливість повного перебору паролів при так званій атаці грубою силою (brute force attack) на сучасному обладнанні.
Посилання
- Офіційна сторінка Skein і Threefish [ 12 липня 2012 у Wayback Machine.] (англ.)
- Інформація по шифру Threefish [ 14 лютого 2016 у Wayback Machine.]
- Вихідний код алгоритму Threefish-512 на мовах C і Delphi
Див. також
- Skein — хеш-функція, заснована на Threefish
Примітки
- Skein випереджає вдвічі SHA-512 і входить в п'ятірку найбільш швидких хеш-функцій-кандидатів SHA-3 на 64-бітної архітектури
- Вихідний код Threefish-1024 на мові C [ 5 березня 2016 у Wayback Machine.] та мовою Delphi
- . Архів оригіналу за 2 липня 2012. Процитовано 16 червня 2012.
- The Skein Hash Function Family [ 15 січня 2009 у Wayback Machine.](англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Threefish vkriptografiyi simetrichnij blokovij kriptoalgoritm rozroblenij avtorom Blowfish ta Twofish amerikanskim kriptografomBryusom Shnajerom 2008 roku dlya vikoristannya v hesh funkciyi Skein i yak universalnu zaminu nayavnim blokovim shifram Osnovnimi principami rozrobki shifru buli minimalne vikoristannya pam yati neobhidna dlya vikoristannya v hesh funkciyi stijkist do atak prostota realizaciyi ta optimizaciya pid 64 rozryadni procesori ThreefishRozrobniki Bryus ShnajyerUpershe oprilyudnenij 2008 r Raundiv 72 80 pri klyuchi 1024 bit Tip SP merezhaStruktura algoritmuThreefish maye duzhe prostu strukturu i mozhe buti vikoristanij dlya zamini algoritmiv blochnogo shifruvannya buvshi shvidkim i gnuchkim shifrom sho pracyuyut v dovilnomu rezhimi shifruvannya Threefish S bloki ne vikoristovuye zasnovanij na kombinaciyi instrukcij viklyuchayuchogo abo skladannya i ciklichnogo zsuvu Yak i AES shifr realizovanij u viglyadi pidstanovochno perestanovochnoyi merezhi na oborotnih operaciyah ne buduchi shifrom merezhi Fejstel Algoritm peredbachaye vikoristannya tweak znachennya svogo rodu vektora inicializaciyi dozvolyayuchi zminyuvati takim chinom znachennya vihodu bez zmini klyucha sho maye pozitivnij efekt yak dlya realizaciyi novih rezhimiv shifruvannya tak i na kriptostojkosti algoritmu Yak rezultat dumki avtoriv sho kilka skladnih raundiv chasto girshe nizh zastosuvannya velikogo chisla prostih raundiv algoritm maye netradicijno veliku kilkist raundiv 72 abo 80 pri klyuchi 1024 bit prote za zayavoyu tvorciv jogo shvidkisni harakteristiki viperedzhayut AES priblizno vdvichi Varto zauvazhiti sho cherez 64 bitnoyi strukturi shifru dana zayava pravdiva lishe na 64 rozryadnij arhitekturi Tomu Threefish yak i Skein zasnovanij na nomu na 32 rozryadnih procesorah pokazuye znachno girshi rezultati nizh na ridnomu obladnanni Yadrom shifru ye prosta funkciya MIX peretvoryuvalna dva 64 bitovih bezznakovih chisla v procesi yakoyi vidbuvayetsya skladannya ciklichnij zsuv ROL ROR i dodavannya po modulyu 2 XOR Nizhche predstavlenij kod MIX funkciyi dlya Threefish 1024 Konstanti dlya ciklichnogo zsuvu int R16 8 8 55 43 37 40 16 22 38 12 25 25 46 13 14 13 52 57 33 8 18 57 21 12 32 54 34 43 25 60 44 9 59 34 28 7 47 48 51 9 35 41 17 6 18 25 43 42 40 15 58 7 32 45 19 18 2 56 47 49 27 58 37 48 53 56 D raund j indeks v tablici ciklichnogo zsuvu void mix int j int d usigned long long rotl y 0 x 0 x 1 rotl R16 d 8 j y 1 x 1 lt lt rotl x 1 gt gt 64 rotl y 1 y 0 Procedura rozshifruvannya obernena proceduri zashifruvannya i mistit zvorotnu funkciyu DEMIX Kozhen z 72 raundiv Threefish 256 i Threefish 512 maye chotiri MIX peretvorennya Threefish 1024 visim zvernen do MIX funkciyi BezpekaZa zayavoyu avtoriv algoritm maye bilsh visokij riven bezpeki nizh AES Isnuye ataka na 25 z 72 raundiv Threefish v toj chas yak dlya AES na 6 z 10 Threefish maye pokaznik faktora bezpeki 2 9 v svoyu chergu AES vsogo 1 7 Dlya dosyagnennya povnoyi difuziyi shifru Threefish 256 dosit 9 raundiv Threefish 512 10 raundiv i Threefish 1024 11 raundiv Vihodyachi z cogo 72 i 80 raundiv vidpovidno v serednomu zabezpechat krashi rezultati nizh isnuyuchi shifri U toj zhe chas algoritm maye nabagato prostishu strukturu i funkciyu peretvorennya prote vikonannya 72 80 raundiv na dumku doslidnikiv zabezpechuye neobhidnu stijkist Vzhivanij rozmir klyucha vid 256 do 1024 bit zvodit nanivec mozhlivist povnogo pereboru paroliv pri tak zvanij ataci gruboyu siloyu brute force attack na suchasnomu obladnanni PosilannyaOficijna storinka Skein i Threefish 12 lipnya 2012 u Wayback Machine angl Informaciya po shifru Threefish 14 lyutogo 2016 u Wayback Machine Vihidnij kod algoritmu Threefish 512 na movah C i DelphiDiv takozhSkein hesh funkciya zasnovana na ThreefishPrimitkiSkein viperedzhaye vdvichi SHA 512 i vhodit v p yatirku najbilsh shvidkih hesh funkcij kandidativ SHA 3 na 64 bitnoyi arhitekturi Vihidnij kod Threefish 1024 na movi C 5 bereznya 2016 u Wayback Machine ta movoyu Delphi Arhiv originalu za 2 lipnya 2012 Procitovano 16 chervnya 2012 The Skein Hash Function Family 15 sichnya 2009 u Wayback Machine angl