Блокировка данных на x дней

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

Это, вероятно, не очень полезно, но как будет называться эта схема шифрования и есть ли для нее инструменты?

редактировать:

Чтобы получить одинаковые результаты для времени перерыва грубой силы, не должен ли я использовать много раундов с обратной связью 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% за желаемое количество процессорных часов.

Я предполагаю, что должен существовать аналогичный алгоритм.


person weirdo    schedule 29.04.2011    source источник
comment
Поскольку есть облачные вычисления, я должен был сказать, что данные блокируются, поэтому потребуется определенная сумма денег, чтобы взломать их грубой силой.   -  person weirdo    schedule 29.04.2011


Ответы (6)


Эта концепция называется обязательство по времени, как определено Бонехом и Наором. Говорят, что данные, которые вы хотите зашифровать, зафиксированы одной стороной (которую я называю отправителем), так что другая сторона (получатель ) может с настраиваемой стоимостью восстановить данные.

Метод, описанный Бонехом и Наором, гораздо более продвинут, чем то, что вы предлагаете. Их схема временных обязательств имеет три следующих свойства:

  • Поддающееся проверке восстановление: отправитель может убедить получателя в том, что он действительно совершил фиксацию правильного значения, которое получатель сможет восстановить, применив существенное, но возможное количество процессорных мышц.

  • Восстановление с подтверждением: после того, как восстановление было выполнено, его можно эффективно проверить: третья сторона, желающая убедиться, что восстановленное значение действительно является тем, которое было зафиксировано, может сделать это эффективно (без затрат часов процессор к нему).

  • Иммунитет против параллельных атак: процесс восстановления не может выиграть от доступа к тысяче ПК: нельзя работать намного быстрее, чем то, что можно сделать с одним процессором.

Благодаря этим свойствам обязательство по времени становится полезным инструментом в некоторых ситуациях; Боне и Наор в основном обсуждают подписание контрактов, а также аукционы по сохранению честности и несколько других приложений.

Я не знаю о какой-либо фактической реализации или даже определенном протоколе для временных обязательств, кроме математического описания Бонеха и Наора.

person Thomas Pornin    schedule 29.04.2011

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

person SLaks    schedule 29.04.2011

Нет, вы не можете сделать это надежно, потому что

  • Злоумышленник может арендовать мощный компьютер (например, вычислительное облако) и использовать его для высокопараллельной, гораздо более быстрой атаки.
  • до сих пор компьютеры становятся все быстрее и быстрее с течением времени - то, что вчера занимало день, через два года может занять одну минуту
person sharptooth    schedule 29.04.2011
comment
Я предполагаю, что он знает об этом, и именно поэтому он сказал часы процессора. - person SLaks; 29.04.2011
comment
@SLacks: Ну, может быть, но вы никогда не знали наверняка, насколько мощным является процессор в час процессора. - person sharptooth; 29.04.2011

Ну, чтобы знать количество процессорных часов для любого вида расшифровки, на самом деле не имеет значения, как происходит шифрование. Вместо этого вы должны убедиться,

  • какой алгоритм расшифровки будет использовать расшифровщик (возможно, еще не изобретенный?)
  • какую реализацию этого алгоритма он будет использовать
  • какой процессор / оборудование он будет использовать.

Каждый из этих трех параметров может повлиять на скорость как минимум в 1000 раз и более.

person Doc Brown    schedule 29.04.2011

Алгоритм шифрования считается взломанным, если кто-то нашел способ получить пароль быстрее, чем атака грубой силы (в среднем).

Это относится к некоторым алгоритмам, таким как MD5, поэтому убедитесь, что вы выбрали один алгоритм, который еще не взломан (пока).

Для других алгоритмов, даже если они не взломаны, они по-прежнему уязвимы для атак грубой силы... это может занять некоторое время, но все, что зашифровано, может быть расшифровано... это только вопрос времени и ресурсов.

Если у парня есть огромная компьютерная ферма-зомби, работающая на него по всему миру, может потребоваться несколько часов, чтобы взломать что-то, на что у парня с одним ноутбуком ушли бы годы.

Если вам нужна максимальная безопасность, вы можете смешать пару существующих алгоритмов шифрования с вашим собственным алгоритмом. Кто-то все еще может попытаться взломать ваши данные, но, скорее всего, если вы не имеете дело с национальными сверхсекретными данными, он, вероятно, никогда не будет добавлен.

person The_Black_Smurf    schedule 29.04.2011

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

вот что я могу сказать об этом.

person Alvaro Castro    schedule 29.04.2011