Скачать Кодировщик файлов CF

17.06.1994
Скачать файл (2,80 Кб)

CF - кодировщик файлов
Автор - Потапкин Роман Сергеевич
Телефон (домашний) (095) 408-77-21 (с 21:00 до 23:00)

  Эта программа для тех, кто любит и жаждет поломать голову над
какой-нибудь задачкой. Я предлагаю программу-кодировщик,
которая кодирует-раскодирует файлы с паролем.
До сих пор никто не смог узнать пароль из закодированного файла,
хотя они знали, где лежит пароль.
  Далее я опишу, как происходит закодирование и раскодирование файла.
  В начале файла имеется заголовок, который имеет следующую структуру:
  - строка 'Закодированный файл'^M^J^Z;
  - восемь знаков вопроса;
  - пять байт - закодированный пароль.

Смысл кодирования пароля заключается в следующем :

1. Запрашиваем пароль любой длины.
2. Из символов пароля создаем пять последовательностей по следующим
   формулам (хотя возможно другое количество и качество) :
   a1 = a1 + n;
   a2 = a2 - n;
   a3 = a3 xor n;
   a4 = a4 + a1 + n;
   a5 = a5 + a2 + n,
   где a1..a5 - последовательность (это и есть закодированный пароль),
   n - очередной символ пароля. Для большей путаницы можно брать не
   только ASCII-код символа, но и скан-код (можно вообще только его).
   Таким образом получаем пять последовательностей, причем вероятность
   восстановления исходника пароля по закодированным пяти байтам невоз-
   можно (точнее, из одного и того же закодированного можно наштамповать
   множество оригиналов пароля, а если пользоваться перебором, то на
   это занятие может уйти полжизни (Вашей или Вашего компьютера),
   поскольку существует миллиарды вариантов).
3. Опять же из символов пароля создаем одну или несколько последователь-
   ностей, с помощью которой кодируем файл методом XOR (или подобным
   "реверсивным" методом, позволяющим по одному и тому же алгоритму
   закодировать или раскодировать данные).

Для раскодирования идем следующими шагами :

1. Запрашиваем пароль для проверки.
2. Кодируем введенный пароль по тем же пяти формулам.
3. Лезем в закодированный файл и сравниваем введенный пароль с тем,
   который лежит в заголовке файла. Если не совпадает, либо выходим,
   либо идем на п.1.
4. Из введенного пароля создаем вторую последовательность,
   с помощью которой и приводим файл в первоначальное состояние.

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

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