В зависимости от используемой криптографической функции $я$-times для заданного ввода может быть вычислено в разных классах сложности (в зависимости от их размера ввода).
$$f^i(m_0) = c_i$$
Например, для большинства блочных шифров требуется (даже при знании секретного ключа) около $я$ раз больше времени, чем применяя его только один раз (по крайней мере, насколько я знаю). То же самое для $я$ шаги назад. Нахождение $m_0$ для данного $c_i$ также занимает около $я$ умножает время на одну операцию (давайте пропустим здесь некоторые небольшие оптимизации).
Вычисление мощности числа/генератора, например. для эллиптических кривых или RSA занимает всего около $\log_2(i)$ умножает время применения одиночного умножения (карусель). То же самое для $я$ шаги назад. Нахождение $m_0$ для данного $c_i$ только занимает около $\sqrt{N}$ шагов (или даже быстрее) (с $N$ размер домена $ м, с $). Так что это не сработает.
Вопрос: Помимо блочного шифра, есть еще какие-то криптографические методы:
- $f^i(м)$ берет $я$ раз время $f^1(м)$
- $f^{-i}(c)$ берет $я$ раз время $f^{-1}(с)$
- $f^{-1}(с)$ такое же время вычисления, как $f^1(м)$
- вычисления $я$ для данного $m_0$ и $c_i$ занимает около $N$ шаги вычисления или хуже, с $N$ размер домена $ м, с $
(постоянный фактор или что-то вроде $\frac{1}{log{N}} N$ все еще в порядке. Просто нет $N^p$ с $р<0,9$)
- (если есть какой-то секрет, необходимый для вычисления $f,f^{-1}$ (как ключи для блочного шифра) фактор $я$ не должно становиться меньше, если этот секрет известен противнику)
- ($f,f^{-1}$ никаких методов грубой силы, таких как блокчейн)