Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Криптография    >>    cf
   
 
 Кодировщик файлов CF  Роман Потапкин 17.06.1994

Программа-кодировщик, которая кодирует-раскодирует файлы с паролем.



2k 
 

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. Невозможность обмана программы кодирования-раскодирования каким-нибудь дебаггером (даже если она будет думать, что пароль правильный, она раскодирует, но неверно). Если мои доводы показались Вам убедительными, можете свободно пользоваться этим алгоритмом для своих целей (желательно с указанием моего авторства в смысле метода), а если нет, попробуйте доказать, что я слишком самоуверен и что любая защита может быть сломана. Счастливой работы !