Keccak – алгоритм майнинга на основе «механизма губки»
Содержание
Keccak – это криптофункция, которая в 2012 году стала победителем конкурса криптографических алгоритмов и была утверждена в качестве нового федерального стандарта обработки информации США.
Целью конкурса, проводимого Национальным бюро стандартов США, является поддержание инновационного и индустриального развития своей страны и повышение ее конкурентоспособности. Так как хеш-алгоритмы постоянно подвергаются атакам, приходится создавать новые стандарты и технологии, чтобы улучшить не только экономическую безопасность, но и общее качество жизни людей. И новый алгоритм хеширования Keccak – это одна из инициатив NIST.
Немного истории
Проблема, которую заметили в предыдущих стандартах SHA-1 и SHA-2, заключалась в том, что они используют одну и ту же основу для обработки текста сообщения, называемую Merkle-Damgard. Это означает, что успешная атака на SHA-1 становится потенциальной угрозой на SHA-2.
Несмотря на то, что успешных атак на полномасштабный SHA-2 зафиксировано не было, стоило позаботиться о создании новых механизмов шифрования. Это была одна из причин, по которой NIST спонсировал разработку нового алгоритма SHA-3.
Все кандидатские хеш-функции должны были соответствовать четырем условиям, установленным NIST:
- Хеш-функция должна хорошо работать независимо от ее реализации. Она должна тратить минимальные ресурсы даже при хешировании большого количества текста сообщения (многие предлагаемые варианты фактически не смогли выполнить это требование).
- Алгоритм должен быть консервативным в отношении безопасности. Он должен выдерживать известные атаки, сохраняя при этом большой коэффициент безопасности. Он должен испускать те же четыре размера хеша, что и SHA-2 (224-, 256-, 384- или 512 бит), но при необходимости может работать с большими размерами хеширования.
- Функция должна быть подвергнута криптоанализу. Исходный код и аналитические результаты будут полностью открытыми для заинтересованных сторон, чтобы последние могли проводить собственный анализ и оставлять комментарии. Любые недостатки, обнаруженные во время анализа, должны решаться с помощью настроек или редизайна.
- Новая функция должна использовать новый код: она не может использовать механизм Merkle-Damgard для создания хеша сообщений.
На конкурсе SHA-3 в первом раунде оценивалось 51 кандидатские функции. Из них 14 смогли перейти ко второму раунду. В третьем раунде кандидаты сократились до пяти. И из тех пяти Keccak был объявлен победителем.
Особенности алгоритма
Название алгоритма «Keccak» правильно произносить, как «Кет-чак». Он имеет еще одно название – SHA-3. Это работа четырех разработчиков:
- Гвидо Бертони;
- Джоан Даемен;
- Майкла Петерса;
- Джайлса Ван Асса.
Keccak использует инновационный «механизм губки» для хеширования текста сообщения. Он имеет среднюю скорость в 12,5 циклов на байт на процессоре Intel Core 2, а его простой дизайн хорошо подходит для аппаратной реализации.
Keccak может противостоять известным атакам с минимальной сложностью 2n, где n – размер хеша. Он имеет большой запас прочности. На сегодняшний день сторонний криптоанализ не показал серьезных недостатков в Кекчаке. Тем не менее, создатели Keccak участвуют в конкурсе Crunchy Crypto Contest, где задаются проблемы, определяются правила и отчеты о статусе столкновения и предварительного изображения Keccak Crunchy.
Существует три части алгоритма Кечкака.
Функция Hash (n, M, N, H) служит функцией ввода. Он принимает четыре входных аргумента:
- размер хеша (n) в битах;
- текст сообщения (M);
- размер сообщения (N) в битах;
- хеш-переменную (H).
Алгоритм стандарта SHA-3 имеет структурную конструкцию губки, где все вводные данные сначала как бы впитываются и суммируются по узлу 2 с инвариантами состояния, затем внутри криптографической губки создаются многосерийные перестановки и на выходе «выжимается» зашифрованный результат.
Чтобы зашифровать строку, ее следует разбить на множество фрагментов определенного размера и на каждом раунде подмешать все полученные части не к полноценному 1600-битному состоянию, а только к верхнему размеру (на картинке – это промежуток «r»). И так происходит на каждом раунде хеширования. Благодаря тому, что используется не целое состояние, а только определенная часть, нельзя получить информацию о связи данных на входе и выходе.
В каких криптовалютах используется алгоритм Keccak
Есть несколько криптовалют, платформы которых работают на новом алгоритме:
- Nexus (NXS);
- Quark (QRK);
- SmartCash (SMART);
- Maxcoin (MAX);
- CreativeChain (CREA)
Как майнить Keccak
Алгоритм имеет множество настраиваемых параметров, таких как:
- размер блока вводных данных;
- размер состояния хеш-алгоритма;
- кол-во раундов в f-функции и другие.
В майнинге криптовалют на данном алгоритме успешно используются графические процессоры. Ниже мы приведем мощности некоторых актуальных моделей видеокарт для SHA-3 на Windows-64.
GPU | Версия ccminer | Хешрейт, GH/s |
---|---|---|
GeForce GTX 1080 Ti | 8.15-KlausT | 1,439 |
Gigabyte GTX 1080 Ti | 8.20-KlausT | 1,38 |
MSI GTX 1080 Ti | 8.15-KlausT | 10357 |
TITAN Xp COLLECTORS EDITION | alexis-1.0 | 1,35 |
MSI GTX 1080 Ti | 8.16-KlausT | 1,34 |
Gigabyte GTX 1080 Ti | 8.21-KlausT | 1,33 |
EVGA GTX 1080 Ti | 8.19-KlausT | 1,32 |
ASUS GTX 1080 Ti | 8.18-KlausT | 1,31 |
TITAN Xp COLLECTORS EDITION | 8.16-KlausT | 1,31 |
Gigabyte GTX 1080 Ti | alexis-1.0 | 1,31 |
Keccak является хорошим выбором для стандарта SHA-3. Он быстрый, имеет равномерное распределение бит, и хорошо противостоит столкновениям. Но гонка цифровых вооружений еще далека от завершения. С годами, возможно, и на этот алгоритм будут совершены успешные нападения, поэтому хеш-функции постоянно будут совершенствоваться и обновляться.
Подписывайтесь на наш Telegram канал. Будьте в курсе новых статей.