Skein
Skein (англ. Skein) — алгоритм хешування змінної розрядності, розроблений групою авторів на чолі з Брюсом Шнайєром.
Хеш функція Skein виконана як універсальний криптографічний примітив, на основі блочного шифру Threefish, що працює в режимі UBI-хешування. Основною концепцією розробки була оптимізація під мінімальне використання пам'яті, криптографічно безпечне хешування невеликих повідомлень, стійкість до всіх відомих атак на хеш-функції, оптимізація під 64-розрядні процесори й активне використання звернень до таблиць.
Skein підтримує розміри внутрішнього стану 256, 512 і 1024 біт і розмір вихідного блоку до 2 64 −1 біт. Автори заявляють про 6.1 такт на байт для будь-якого розміру вихідного блоку на ПК з процесором Intel Core 2 Duo. З числа кандидатів на SHA-3 Skein входить в п'ятірку найшвидших, проте є лідером лише в 64-розрядному варіанті, який перевершує за швидкісними характеристика 32-розрядний у більш ніж чотири рази. Це пояснюється тим, що автори спочатку орієнтувалися на оптимізацію під 64-розрядні процесори.[1]
Skein-512 може бути реалізована з використанням всього 200 байт пам'яті, Skein-256 — 100 байт, що оптимально для апаратної реалізації алгоритму в смарт-картах.[2]
Як заявляють автори, хеш-функція Skein на поширених процесорах працює в середньому вдвічі швидше SHA-512, Threefish вдвічі швидше AES.
Skein захищена від нових видів атак на хеш-функцій — підбору подовжених повідомлень і псевдоколізій.
Threefish, що лежить в основі Skein має дуже просту структуру і може бути використаний для заміни алгоритмів блочного шифрування, будучи швидким і гнучким шифром, що працює в довільному режимі шифрування. Сам Threefish не використовує S-блоки, натомість покладається на комбінації інструкцій XOR, складання і циклічного зсуву.
Примітки
Посилання
- Офіційна сторінка Skein [Архівовано 12 липня 2012 у Wayback Machine.]
- Офіційна документація по хеш-функції
- Вихідні тексти
|
Портал «Програмування» |
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. Будь ласка, допоможіть удосконалити цю статтю, додавши посилання на надійні (авторитетні) джерела. Зверніться на сторінку обговорення за поясненнями та допоможіть виправити недоліки. Матеріал без джерел може бути піддано сумніву та вилучено. (лютий 2017) |
Це незавершена стаття з криптографії. Ви можете допомогти проєкту, виправивши або дописавши її. |
Це незавершена стаття про алгоритми. Ви можете допомогти проєкту, виправивши або дописавши її. |