SHACAL
| SHACAL | |
|---|---|
| | |
| Создатель | Хелена Хандшух, Давид Наккаш |
| Создан | 2000 |
| Опубликован | 2001 |
| Размер ключа | 128—512 бит |
| Размер блока | 160 бит / 256 бит |
| Число раундов | 80/64 |
| Тип | Криптографическая хеш-функция |
SHACAL — в криптографии симметричный блочный криптоалгоритм, разработанный для участия в конкурсе NESSIE группой авторов из компании Gemplus во главе с Хеленой Хандшух и Давидом Наккашем. Существует два варианта алгоритма — SHACAL-1 и SHACAL-2, который и стал одним из 17 финалистов NESSIE.
SHACAL-1
Алгоритм SHACAL существенно отличается от многих других алгоритмов. Он основан на функции компрессии хеш-алгоритма SHA-1, что возможно благодаря обратимости раундовой функции данного хеш-алгоритма, при условии что её внутреннее состояние известно. В данном случае ключ используется как подвергающиеся трансформации данные, а открытый текст подается как внутреннее состояние хеш-функции. Всего выполняется 80 раундов преобразования.[1]
Особенностью алгоритма является его простое ключевое расписание — ключ короче 512 бит дополняется до полного размера нулевыми битами. Ключи короче 128 бит не применяются. 512-битный исходный ключ шифрования делится на 16 фрагментов по 32 бита K0…K15. Остальные фрагменты расширенного ключа K16…K79 вычисляются из первых 16 фрагментов по формуле:
- .
Данная особенность стала преградой для избрания алгоритма в качестве финалиста NESSIE, так как возникли сомнения в её криптостойкости.[2]
Размер блока равен размеру внутреннего состояния и хеша хеш-функции SHA1 — 160 бит. Блок обрабатывается как пять 32-битных подблоков: . Шифротекстом является конкатенация данных из переменных [3]
SHACAL-1 в настоящее время мало распространен. Его довольно быстро заменил алгоритм SHACAL-2, который часто именуется как просто SHACAL. Существовал так же теоретический SHACAL-0, который был основан на хеш-функции SHA-0 (ранней, позже исправленной версии SHA-1), но он не получил распространения, как собственно и сама хеш-функция SHA-0.[4]
Реализация алгоритма SHACAL-1
- Представить шифруемое сообщение в виде 5 32-битных блоков данных: A, B, C, D, E.
- 80 раз проделать следующее:
где:
- — номер раунда (1-79)
- — фрагмент расширенного ключа для i-го раунда
- — функция для i-го раунда (см. табл. 1)
- <<< — побитовый циклический сдвиг влево
- — модифицирующие константы (см. табл. 2)
Таблица 1
| Раунды | Функция |
| 0-19 | |
| 20-39 | |
| 40-59 | |
| 60-79 |
Таблица 2
| Раунды | Значения константы |
| 0-19 | 5A827999 |
| 20-39 | 6ED9EBA1 |
| 40-59 | 8F1BBCDC |
| 60-79 | CA62C1D6 |
SHACAL-2
В 2001 году создатели алгоритма SHACAL-1, также в рамках конкурса NESSIE разработали aлгоритм SHACAL-2 основанный на 64 раундах хеш-функции SHA-256 с внутренним состоянием длиной 256 бит.[4]
Исходный ключ размером 512 бит по аналогии с SHACAL-1 делится на 16 частей по 32 бита каждая. Остальные 48 частей вычисляются следующим образом:
где и :
Реализация алгоритма SHACAL-2
Алгоритм состоит из 64 раундов преобразований:
где:
- >>> — побитовый циклический сдвиг
- — временная переменная
- — модифицирующие константы при i = 0 — 63 (см. Таблицу 3, константы расположены по порядку)
Таблица 3
| 428a2f98 | 71374491 | b5c0fbcf | e9b5dba5 |
| 3956c25b | 59f111f1 | 923f82a4 | ab1c5ed5 |
| d807aa98 | 12835b01 | 243185be | 550c7dc3 |
| 72be5d74 | 80deb1fe | 9bdc06a7 | c19bf174 |
| e49b69c1 | efbe4786 | 0fc19dc6 | 240calcc |
| 2de92c6f | 4a7484aa | 5cb0a9dc | 76f988da |
| 983e5152 | a831c66d | b00327c8 | bf597fc7 |
| c6e00bf3 | d5a79147 | 06ca6351 | 14292967 |
| 27b70a85 | 2e1b2138 | 4d2c6dfc | 53380d13 |
| 650a7354 | 766a0abb | 81c2c92e | 92722c85 |
| a2bfe8a1 | a81a664b | c24b8b70 | c76c51a3 |
| d192e819 | d6990624 | f40e3585 | 106aa070 |
| 19a4c116 | 1e376c08 | 2748774c | 34b0bcb5 |
| 391c0cb3 | 4ed8aa4a | 5b9cca4f | 682e6ff3 |
| 748f82ee | 78a5636f | 84c87814 | 8cc70208 |
| 90befffa | a4506ceb | bef9a3f7 | c67178f2 |
Стойкость
Прежде всего, как было отмечено[4], преимуществом алгоритмов семейства SHACAL была их производительность. Важным моментом является так же простота описания и реализации алгоритмов.
Одним из тезисов безопасности стала архитектура шифра. Теоретически, безопасность алгоритмов SHA-1 и SHA-2 должна обеспечить и устойчивость алгоритмов SHACAL к различным видам атак. В то же время, требования, предъявляемые к хеш-функциям при их разработке, концептуально иные и данный тезис не слишком обоснован. В своей работе Маркку-Юхани Сааринен описал возможные атаки с использованием связанных ключей на алгоритм SHACAL-1.[5]
Относительно устойчивости на конкурсе NESSIE было отмечено отсутствие каких-либо предложений по атаке на SHACAL. Однако, что касается SHACAL-1, ключевое расписание было подвержено критике. В 2002 году Ким Чонсон (Jongsung Kim) предложил дифференциальную атаку на 41 раундах SHACAL-1 с 512-битным ключом. В 2005 году О. Дункельман(O.Dunkelman) представил атаку на связанных ключах для всех 80 раундов SHACAL-1.[6] Годом позднее экспертами был сделан вывод, что в связи с обнаружением коллизий в SHA-1 будут появляться новые атаки на связанных ключах, а криптоаналитики из Кореи предложили атаку методом бумеранга.
После окончания конкурса NESSIE была предложена атака на 42 раунда алгоритма SHACAL-2 c 512-битным ключом, но полнораундовый алгоритм пока не взломан[7]. Следовательно, полнораундовые алгоритмы SHACAL на данный момент можно считать безопасными при условии использования в качестве ключа 512-битного хеша от какой-либо хеш-функции (SHA-512, Whirlpool).
Примечания
- ↑ H. Handschuh, D. Naccache SHACAL
- ↑ Панасенко, 2009, с. 449.
- ↑ ndschuh, D. Naccache SHACAL
- ↑ 1 2 3 Панасенко, 2009.
- ↑ Markku-Juhani Olavi Saarinen (2003-02). «Cryptanalysis of Block Ciphers Based on SHA-1 and MD5»
- ↑ J. Lu, J. Kim, N. Keller, O. Dunkelman (2006). "Differential and Rectangle Attacks on Reduced-Round SHACAL-1
- ↑ Lu et al., 2006, p. 85–100.
Ссылки
- H. Handschuh, D. Naccache. SHACAL (2000).
- Панасенко С. П. Алгоритмы шифрования. Специальный справочник — СПб.: BHV-СПб, 2009. — 576 с.
- Панасенко С.Алгоритмы шифрования. Специальный справочник — Санкт-Петербург: БХВ-Петербург, 2009. — С. 443—451. — 978-5-9775-0319-8.
- J.Lu,J.Kim,N.Keller,O.Dunkelman (2006). Differential and Rectangle Attacks on Reduced-Round SHACAL-1.
{{cite conference}}: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) - Jiqiang Lu, Jongsung Kim, Nathan Keller, Orr Dunkelman (2006). Related-Key Rectangle Attack on 42-Round SHACAL-2 (PDF). Samos: Springer-Verlag. Архивировано из оригинала (PDF) 25 сентября 2006. Дата обращения: 14 ноября 2012.
{{cite conference}}: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка) - Markku-Juhani Olavi Saarinen (Февраль 2003). Cryptanalysis of Block Ciphers Based on SHA-1 and MD5 (PDF). FSE '03. Lund: Springer-Verlag. pp. 36—44. Архивировано из оригинала (PDF) 24 декабря 2006. Дата обращения: 28 ноября 2012.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.