Keccak – алгоритм майнинга на основе «механизма губки»

Keccak – это криптофункция, которая в 2012 году стала победителем конкурса криптографических алгоритмов и была утверждена в качестве нового федерального стандарта обработки информации США.

Майнинг по алгоритму Keccak

Целью конкурса, проводимого Национальным бюро стандартов США, является поддержание инновационного и индустриального развития своей страны и повышение ее конкурентоспособности. Так как хеш-алгоритмы постоянно подвергаются атакам, приходится создавать новые стандарты и технологии, чтобы улучшить не только экономическую безопасность, но и общее качество жизни людей. И новый алгоритм хеширования 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 Ti8.15-KlausT1,439
Gigabyte GTX 1080 Ti8.20-KlausT1,38
MSI GTX 1080 Ti8.15-KlausT10357
TITAN Xp COLLECTORS EDITIONalexis-1.01,35
MSI GTX 1080 Ti8.16-KlausT1,34
Gigabyte GTX 1080 Ti8.21-KlausT1,33
EVGA GTX 1080 Ti8.19-KlausT1,32
ASUS GTX 1080 Ti8.18-KlausT1,31
TITAN Xp COLLECTORS EDITION8.16-KlausT 1,31
Gigabyte GTX 1080 Tialexis-1.01,31

Keccak является хорошим выбором для стандарта SHA-3. Он быстрый, имеет равномерное распределение бит, и хорошо противостоит столкновениям. Но гонка цифровых вооружений еще далека от завершения. С годами, возможно, и на этот алгоритм будут совершены успешные нападения, поэтому хеш-функции постоянно будут совершенствоваться и обновляться.

Ссылка на основную публикацию