Есть ли (простой) способ зашифровать данные, чтобы для их расшифровки требовалось определенное количество часов процессора? Может быть, серия шифровок с короткими ключами, переменная односторонняя функция или что-то в этом роде?
Это, вероятно, не очень полезно, но как будет называться эта схема шифрования и есть ли для нее инструменты?
редактировать:
Чтобы получить одинаковые результаты для времени перерыва грубой силы, не должен ли я использовать много раундов с обратной связью xor?
Я только что придумал этот алгоритм (для симметричного блочного шифра с одинаковым значением и длиной ключа)... может быть, это бессмысленно
round 1 create a zero-block create a random-block-1 encipher value:zero-block with key:random-block1 => gives lock-output-1 round 2 create a zero-block create a random-block-2 encipher value:zero-block with key:random-block2 => gives temp xor temp with random-block-1 => gives lock-output-2 and so on
Операция xor со случайным блоком-1 должна быть там, так что процедура разблокировки должна будет найти случайный блок-1, прежде чем она сможет начать перебор с блокировкой-выход-2.
lock-output-1 + lock-output-2 .. lock-output-N будет полным блокирующим выходом. Когда процедура разблокировки находит N блоков ключей, каждый из которых дает ноль во всех блоках вывода блокировки, она может использовать N блоков ключей в целом для расшифровки фактических данных.
Тогда мне также понадобится формула для расчета, сколько раундов даст максимальную вариацию, например. 10% за желаемое количество процессорных часов.
Я предполагаю, что должен существовать аналогичный алгоритм.