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 к различным видам атак. В то же время, требования, предъявляемые к хэш-функциям при их разработке, концептуально иные и данный тезис не слишком обоснован.В своей работе Markku Saarinen описал возможные атаки с использованием связанных ключей на алгоритм 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 Панасенко С.Алгоритмы шифрования. Специальный справочник
- ↑ 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
- ↑ Jiqiang Lu, Jongsung Kim, Nathan Keller, Orr Dunkelman.Related-Key Rectangle Attack on 42-Round SHACAL-2, 2006
Ссылки [править]
- H. Handschuh, D. Naccache SHACAL (2000).
- Панасенко С.Алгоритмы шифрования. Специальный справочник - Санкт-Петербург: БХВ-Петербург, 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"..
- Jiqiang Lu, Jongsung Kim, Nathan Keller, Orr Dunkelman (2006). "Related-Key Rectangle Attack on 42-Round SHACAL-2" (PDF).: 85–100, Samos: Springer-Verlag.
- Markku-Juhani Olavi Saarinen (2003-02). "Cryptanalysis of Block Ciphers Based on SHA-1 and MD5" (PDF). FSE '03: 36–44, Lund: Springer-Verlag.
| Это заготовка статьи по информационной безопасности (защите информации). Вы можете помочь проекту, исправив и дополнив её. |
| Симметричные криптосистемы | |
|---|---|
| Поточный шифр | |
| Сеть Фейстеля |
ГОСТ 28147-89 • Blowfish • Camellia • CAST-128 • CAST-256 • CIPHERUNICORN-A • CIPHERUNICORN-E • CLEFIA • Cobra • DFC • DEAL • DES • DESX • EnRUPT • FEAL • FNAm2 • HPC • IDEA • KASUMI • Khufu • LOKI97 • MARS • NewDES • Raiden • RC5 • RC6 • RTEA • SEED • Sinople • TEA • Triple DES • Twofish • XTEA • XXTEA |
| SP-сеть | |
| Другие | |


.




- номер раунда (1-79)
- фрагмент расширенного ключа для i-го раунда
- функция для i-го раунда (см. табл. 1)
- модифицирующие константы (см. табл. 2)

















- временная переменная