Рейтинг:2

Является ли отображение k-битной строки на другую k-битную строку, содержащую 1, односторонней функцией?

флаг mx

Я новичок в криптоанализе, и я видел в другом ответе на вопрос что $f: \lbrace0, 1\rbrace^{\kappa}\to \lbrace0, 1\rbrace^{\kappa}, f(x) = 1^{\kappa} $ является односторонней функцией. Почему это так? Любая помощь будет оценена

флаг et
Выход всегда один и тот же для определенного значения k — так как же выяснить, из какого ввода он поступил. Так что это необратимо. Так что это односторонняя функция
fgrieu avatar
флаг ng
@user93353: с другой стороны, если $y$ такой, что $\exists x_0$ с $y=f(x_0)$, то тривиально показать $x_1$ с $y=f(x_1)$. Так что он не устойчив к столкновениям.Итак... Может быть, простое указание [определения OWF](https://en.wikipedia.org/wiki/One-way_function#Theoretical_definition) позволит решить вопрос?
флаг et
@fgrieu - он соответствует определению «Функция f : {0,1}* {0,1}* является однонаправленной, если f может быть вычислена с помощью алгоритма с полиномиальным временем, но любой рандомизированный алгоритм с полиномиальным временем F, который попытки вычислить псевдоинверсию для f увенчаются успехом с незначительной вероятностью». Определение не включает сопротивление столкновению. Ниже они определяют: «Хэш-функция без коллизий f является односторонней функцией, которая ** также ** устойчива к коллизиям».
флаг cn
@ user93353 вы неправильно понимаете определение OWF. Чтобы быть OWF, требуется, чтобы поиск *любого* прообраза был трудным. Это не тот случай здесь. Вывод буквально *любой* битовой строки $\kappa$ достаточен, чтобы нарушить односторонность константной функции. Это неудивительно, учитывая, что мы даже не знаем, существуют ли односторонние функции, и их существование означало бы крупный прорыв в теории сложности.
флаг cn
Был ли удален ответ, к которому относится этот вопрос? (Неверное) утверждение, что постоянная функция является односторонней, не появляется ни в одном из ответов, которые я вижу.
флаг et
@Maeher получил это сейчас. Все входы являются прообразами постоянного выхода
fgrieu avatar
флаг ng
@Maeher: единственный удаленный ответ на [связанный вопрос] (https://crypto.stackexchange.com/q/24348/555) не содержит ничего отдаленно похожего на неверное утверждение в настоящем вопросе.
Рейтинг:6
флаг cn

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

Функция $f : \{0,1\}^* \к \{0,1\}^*$ является односторонним, если

  1. Существует полиномиальный алгоритм времени $M_f$ такой, что $M_f(x) = f(x)$ для всех $х\в\{0,1\}^*$.
  2. Для каждого алгоритма PPT $\mathcal{А}$ существует пренебрежимо малая функция $\mathsf{negl}$ такой, что для всех $\каппа\в\mathbb{N}$ он считает, что $$\Pr[x\gets\{0,1\}^\каппа, y:=f(x)\;:\;f(\mathcal{A}(1^\kappa,y))=y] \leq \mathsf{negl}(\каппа)$$

Однако для любой постоянной функции легко указать алгоритм PPT $\mathcal{А}$ для которого $$\Pr_{x\gets\{0,1\}^\каппа}\bigl[f\bigl(\mathcal{A}(1^\kappa,f(x))\bigr)=f(x) \bigr] = 1$$ для всех $\каппа\в\mathbb{N}$. Например, мы можем определить $\mathcal{А}$ как алгоритм, который всегда выводит $1^\каппа$. то есть для всех $x\in\{0,1\}^\каппа$ у нас есть $f\bigl(\mathcal{A}(1^\каппа,f(x))\bigr) = f(1^\каппа)$ а так как функция $f$ постоянна, она выполняется для всех $x\in\{0,1\}^\каппа$ что $f(1^\каппа) = f(x)$. Таким образом $\mathcal{А}$ ломает односторонность $f$ с вероятностью $1$ и $f$ не является односторонним.

kelalaka avatar
флаг in
Есть ли явная причина не говорить, что $f$ имеет полиномиальное время?
флаг cn
$f$ не является алгоритмом, поэтому у него нет четко определенной среды выполнения, которая могла бы быть полиномиальной.
amlearn369 avatar
флаг mx
Спасибо. Вот что я подумал. В связанном вопросе был комментарий к правильному ответу, в котором говорилось, что "Если вам действительно нужны две отдельные односторонние функции, вы всегда можете, скажем, использовать $1^{/2}$ вместо $0^{/2}$ для одной из них.
флаг cn
Этот комментарий предлагал использовать две функции: $f_1(x_1\Vert x_2) = 0^{n/2}\Vert h(x_1)$ и $f_2(x_1\Vert x_2) = 1^{n/2} \Vert h(x_1)$, просто чтобы получить две *разные* функции, если это как-то потребуется. (В этом случае есть более простые решения.)

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

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