8 июн. 2012 г.

Простая шифровка коротких чисел

Что обычный сознательный анонимус делает, когда у него появляется кредитка с 4-х символьным пин-кодом? Запоминает код. Что он делает, когда появляется вторая кредитка? Пытается запомнить код и не спутать его с предыдущим. А когда пятая кредитка? И 2 сим-карты с пинкодами. Записывает! Имхо, это нормально. В жизни много вещей, которые нужно запомнить. И с десяток-другой вариаций чисел запомнить можно. Но не сразу, а после нескольких раз использования. А ежели забудешь через час? Лучше все-таки записать.

Но записанное может попасть другому анонимусу на глаза. Блокнот останется на столе, потеряется, смартфон с записями украдут, файло с компа стырят... Полно вариантов распространения этих записей. Есть решение - использовать сервисы или программки для хранения паролей и, в том числе, ПИН-кодов. Программки ровно так же подвержены пропаже с кражей/потерей гаджета. Онлайн-сервисы находятся в сети под пристальным надзором гипотетических взломщиков. То бишь, шансов на публикацию записей тоже немало.

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

Один из вариантов

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

Случайным образом формируем последовательность цифр:
3654388932
Каждая 2-я цифра будет соответствовать каждой следующей цифре пинкода:
3151318132
В этом случае нужно запомнить только 1 число - периодичность цифр пинкода.

Чуть более сложный вариант

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

Например, случайным образом формируем последовательность цифр - чем длинее, тем лучше:
6781324590

С позиции 3 каждая 2-я цифра будет соответствовать каждой следующей цифре пинкода:
6781314191

Сложность шифровки можно наращивать. Например, использовать многострочный шифр:
запоминаем те же цифры 3 и 2, которые означают, что в строке 3 следующего массива на 2-й позиции будет указана позиция, начиная с которой в следующей строке каждая третья цифра будет соответствовать каждой следующей цифре пинкода
315657862154614
115648769321475
245467987321332 - 3-я строка, содержащая в позиции 2 номер символа в следующей строке, начиная с которой каждая третья цифра соответствует цифре пинкода
15449176154125145

Приведенные методы довольно ограничены в применении и не являются вселенски-устойчивыми к дешифровке. Однако для хранения пин-кодов они вполне подойдут. Вариант брутфорса не подойдет, ибо обычно на третьей-четвертой попытке объект взлома заблокируется. И для хранения в голове двух цифр и алгоритма расшифровки не нужно ни IQ > 50, ни специального программно-аппаратного обеспечения. А при определенном уровне овладения алгоритмом его можно использовать и для записи паролей.

Комментариев нет:

Отправить комментарий