Заранее извиняюсь, если этот вопрос слишком прост.
По сути, я хочу знать, есть ли какие-либо функции со следующими свойствами:
Возьмем как когда домен и кодомен ограничены битными строками. потомf ( x ) n
- инъективен
- сюръективен
- требует строго меньше ресурсов (либо пространство / время / глубина контура / количество вентилей) для вычисления по некоторой разумной модели, чем , где .y = f n ( x )
- Разница в ресурсах для против масштабируется как некоторая строго возрастающая функция .
Я могу привести примеры, когда функция является либо сюръективной, либо инъективной, но не обоими, если только я не прибегаю к надуманной вычислительной модели. Если я выберу вычислительную модель, которая допускает сдвиги влево в единицу времени на каком-то кольце, но не сдвиги вправо, то, конечно, можно придумать линейную надстройку (или выше, если вы рассматриваете более сложную перестановку как примитив) , По этой причине меня интересуют только разумные модели, под которыми я в основном имею в виду машины Тьюринга, схемы NAND или аналогичные.
Очевидно, что это должно быть верно, если , но может показаться, что это также возможно, если , и поэтому не должно равняться решению этого вопроса.
Вполне возможно, что этот вопрос имеет очевидный ответ или явное препятствие для ответа, который я пропустил.
источник
Ответы:
Меня попросили перепостить мой комментарий. Я указал на эту статью Hastad, которая показывает, что в существуют перестановки , которые P-трудно инвертировать:NС0
http://dx.doi.org/10.1016/0020-0190(87)90053-6 (PS)
источник
Для логических цепей на основе полного двоичного кода (с мерой сложности представляющей собой число затворов в минимальной схеме) наилучшее известное соотношение для перестановок C ( f - 1 )С( ф) . Насколько я знаю, лучшая константа была получена вэтой работеХильтгеном и равна 2.С( ф- 1)С( ф)= В г ö н сек т
Редактировать. Поскольку вы хотите, чтобы отношение росло с ростом , это не отвечает на ваш вопрос. Тем не менее, для булевых схем на полной двоичной основе ничего лучше не известно.n
источник
Прежде всего, я хотел бы отметить, что сюръективность не является четко определенной без предварительного определения кодомена функции. Итак, в моем описании ниже я буду явно ссылаться на кодомен, над которым функция сюръективна.
Обе функции дискретного логарифма или RSA являются перестановками, которые, как предполагается, трудно инвертировать. Ниже я опишу функцию дискретного логарифма.
Пусть - n- битное простое число, а g - генератор мультипликативной группы Z ∗ p n . Определите f n : Z p n → Z p n как f n ( x ) = g xpn n g Z∗pn fn:Zpn→Zpn .fn(x)=gx(modpn)
источник