Рейтинг:1

Хэш-функции с постоянным числом единиц

флаг cn

В следующей статье: https://eprint.iacr.org/2018/056.pdf, случайный оракул определяется следующим образом: $ H: *\xrightarrow{} \{ \mathbf{v} | \mathbf{v} \in R_{q,[1]}, || \mathbf{v}||_{1}=\omega\}$

Где $R_{q,[1]}$ обозначает те элементы, которые принадлежат кольцу $R_{q}=Z_{q}/<x^n+1>$ и имеют коэффициенты между [-1,1].

Безопасны ли эти случайные оракулы? Если да, то какая хэш-функция может выводить постоянное количество единиц без ущерба для безопасности?

kelalaka avatar
флаг in
Я не думаю, что $||v||_1$ представляет собой $1$s. Это скорее $p-норма$, где $p$ равно единице.
Рейтинг:1
флаг ru

Если они ведут себя как случайные оракулы, то они обеспечивают безопасность, соизмеримую с размером пространства изображения, которое $2^\омега\бином п\омега$ (обратите внимание, что есть $\омега$ ненулевые записи, каждая из которых может быть плюс или минус один). Таким образом, если безопасность скомпрометирована обнаружением коллизии в $Ч$ это должно потребовать $O(2^{\omega/2}\sqrt{\binom n\omega})$ оценки $Ч$ найти. Для любого заданного уровня безопасности можно найти соответствующие значения $n$ и $\омега$ для которых требуемая работа превышает уровень безопасности.

Самый простой способ практически построить такой $Ч$ заключается в адаптации обычного $ч$-битная хэш-функция, которая, как считается, ведет себя как случайный оракул. Используйте это, чтобы сгенерировать универсальное значение между 0 и $V:=2^\omega\binom n\omega$ (например, обрабатывая хеш-выход как $ч$-битное целое; если это значение меньше $2^ч\мод V$, добавьте 1 к входным данным и выполните итерацию, иначе уменьшите значение по модулю $В$). Теперь разделите значение $v$ на два значения $c:=v/2^\omega$ и $b:=v\mod{2^\omega}$ (Обратите внимание, что $b$ и $с$ будет независимым и равномерно распределенным по модулю $2^\омега$ и $\бином п\омега$ соответственно). Теперь используйте $с$ и метод этот ответ выбрать набор из $\омега$ коэффициенты, которые будут ненулевыми и будут использовать биты $b$ для выбора между коэффициентами плюс и минус 1.

poncho avatar
флаг my
На самом деле, более простой (хотя и не столь эффективный) способ реализовать такой Oracle — это взять последовательность $0, 1, 2, ..., n-1$ и перемешать их с помощью метода Фишера-Йейтса (используя хороший ГСЧ, засеянный криптографический хэш строки), а затем взять полученную последовательность и преобразовать любое значение $
Daniel S avatar
флаг ru
@poncho Еще проще было бы использовать XOF для генерации однородных случайных значений из $[0,n)$ до тех пор, пока не будут получены отдельные значения $\omega$. Комбинатор во мне все еще склоняется к точности комбинаторной системы счисления.

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

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