Блокировка данных за х дней - PullRequest
2 голосов
/ 29 апреля 2011

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

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

edit:

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

lock-output-1 + lock-output-2 .. lock-output-N будет полным выходом блокировки.Когда процедура разблокировки обнаружила N блоков ключей, каждый из которых дает ноль во всех блоках вывода блокировки, она может использовать N блоков ключей в целом для расшифровки фактических данных.

Тогда мне также потребуетсяформула для расчета количества раундов, дающих максимальное отклонение, например, 10% для требуемого количества процессорных часов.

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

Ответы [ 6 ]

1 голос
/ 29 апреля 2011

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

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

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

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

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

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

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

1 голос
/ 29 апреля 2011

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

  • злоумышленник может арендовать мощный компьютер (например, вычислительное облако) и использовать его для более быстрой атаки намного быстрее
  • пока что со временем компьютеры становятся все быстрее и быстрее - то, что было вчера, может занять одну минуту через два года
1 голос
/ 29 апреля 2011

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

0 голосов
/ 29 апреля 2011

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

вот что я могу сказать по этому поводу .-

0 голосов
/ 29 апреля 2011

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

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

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

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

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

0 голосов
/ 29 апреля 2011

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

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

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

...