Краудсорсинг перебора паролей

Revision ru3, by AlexanderBolshakov, 2016-07-22 15:23:36

Всем добрый день!

Примерно полтора месяца назад я откликнулся на вакансию в одной московской компании. Мне дали "небольшое тестовое задание", в котором требовалось сбрутить пароль от небольшого (2 килобайта) зашифрованного файла. Идея была такая: пароль может состоять из не более, чем 7 латинских букв различного регистра и цифр. Пароль хешируется, и его хеш вместе с исходным файлом кормится алгоритму симметричного шифрования. Правильность расшифровки можно проверить, прогнав полученный plaintext через хеш-функцию и сравнив результат с хешом в зашифрованном файле.

В чем проблема? 62^7 — это примерно 3.5 триллиона различных паролей. Если перебирать миллион паролей в секунду, то понадобится потратить на это порядка тысячи машинных часов, что абсолютно неприемлемо делать ни на своей машине (слишком долго), ни на амазоновском инстансе (слишком дорого).

Собственно говоря, на тестовое задание я забил (хоть там и было сказано, что если вы не сможете подобрать пароль, то всё равно стоит прислать код). Однако, бугурт до сих пор остался. Теперь мне хочется таки написать брутфорс, чтобы узнать: что же господа спрятали внутрь файла?

Во-первых, хочу узнать общественное мнение: насколько этично выкладывать непосредственно материалы тестового задания и работающий код?

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

P.S. Если кто готов использовать для такой цели что-то ну совсем мощное (например, стоечный сервер с десятками ядер) — напишите, пожалуйста, в комментариях.

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru4 Russian AlexanderBolshakov 2016-07-22 17:52:28 128
ru3 Russian AlexanderBolshakov 2016-07-22 15:23:36 166
ru2 Russian AlexanderBolshakov 2016-07-22 15:19:17 0 (опубликовано)
ru1 Russian AlexanderBolshakov 2016-07-22 15:15:10 1557 Первая редакция (сохранено в черновиках)