Рейтинг:1

Сложность майнинга/подписи хэшей

флаг bd

Читая о майнинге криптовалюты, я обнаружил, что для этого требуется, чтобы некоторые ведущие биты вывода хеш-функции были равны 0. Это сводится к устойчивости хеш-функции к прообразу, поэтому выполняется с полным перебором.

Мой вопрос: скажем, у меня есть идеальная хэш-функция, которая дает 128-битный вывод, и я хочу, чтобы ведущие 4 бита были равны 0. Каково ожидаемое количество времени, которое мне нужно для ее запуска (со случайно выбранными сообщениями), чтобы я получил желаемый результат?

В частности, я ищу какую-то функцию, которая даст сложность для настройки $м$ биты идеальной хеш-функции, которая возвращает $n$ биты в качестве вывода.

kelalaka avatar
флаг in
Отвечает ли это на ваш вопрос? [SHA-512 — насколько сложно найти дайджест хэша, начинающийся как минимум с двенадцати нулей?] (https://crypto.stackexchange.com/questions/89690/sha-512-how-difficult-is-it-to -найти-хеш-дайджест-начинающийся-как минимум-с-двенадцати)
hola avatar
флаг bd
@kelalaka спасибо за ссылку. Этот более эмпирический, но мне нужны теоретические расчеты.
kelalaka avatar
флаг in
Мы уже проиграли, когда мы моделируем как равномерный рандом. Кроме того, ответ уже теоретический. Если вы ищете ожидаемое значение, это легко; Это испытания Бернулли, ожидаемое значение равно $p$, а результат равен 1/16. Ожидаемое значение количества независимых испытаний для достижения первого успеха составляет $1/p = 16$.
kelalaka avatar
флаг in
Также обратите внимание, что, когда мы говорим о сложности, она должна зависеть от входных данных, а не просто от количественной оценки, такой как криптографическая хеш-функция, которая должна иметь $\mathcal{O}(2^n)$ безопасность перед изображением и SHA-256. имеет 256-битную защиту перед изображением, а не $\mathcal{O}(2^{256})$, поскольку это константа!.
Рейтинг:3
флаг cn

Для случайного ввода. Каждый бит имеет вероятность $\фракция{1}{2}$ быть нулем. Тогда, потому что мы предполагаем независимость (идеальная хэш-функция подразумевает это предположение). Для каждого входа вероятность иметь $4$ нули в начальных битах $\frac{1}{2^4}=\frac{1}{16}$.

Затем после $к$ вычислений, потому что мы считаем каждый вывод независимым (все еще потому, что это идеальная хеш-функция). Вероятность дождаться ровно $я$ шаги - хороший результат $\frac{1}{16}\left(15/16\right)^{i-1}$. (потому что у вас неправильный вывод для $(я-1)$ хэши, а затем тупой).

И ожидание времени вычисления равно $\sum^{\infty}_{i=1} i\frac{1}{16}\left(15/16\right)^{i-1}= \frac{1}{16}\sum^{\infty}_{j=1} \sum^{\infty}_{i=j}\left(15/16\right)^{i-1}= \frac{1}{16}\sum^{\infty}_{j=1} \sum^{\infty}_{i=0}\left(15/16\right)^{j+i-1 }$

$$=\frac{1}{16}\sum^{\infty}_{j=1} \left(15/16\right)^{j-1}\sum^{\infty}_{i= 0}\влево(15/16\вправо)^{i} $$ $$= \frac{1}{16}\sum^{\infty}_{j=1} \left(15/16\right)^{j-1}\frac{1}{1/16}$ $ $$=\sum^{\infty}_{j=0} \left(15/16\right)^{j} =16$$.

Тогда в среднем вам нужно вычислить $16$ хеши, чтобы найти хороший.

Вы можете легко обобщить это доказательство, заменив $16$ к $2^м$, и вы сделаете вывод, что в среднем вам нужно вычислить $2^м$ хеши.

Обратите внимание, что, поскольку мы заранее выбираем координаты, где мы хотим иметь нули, общий вывод хеш-функции не имеет значения, если мы посмотрим на количество хэшей, которые мы должны вычислить (но это может иметь значение, если мы посмотрим на время вычисления). из $Ч$).

hola avatar
флаг bd
Хм. Таким образом, вам нужно $2^m$ случайных испытаний, чтобы ожидать хэш-вывод с фиксированными $m$ местоположениями.
Ievgeni avatar
флаг cn
Да, но это средний показатель.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.