Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Принципы создания программ кодирования




Криптографическая защита информации домашнего компьютера от несанкционированного доступа при работе в сети internet: принципы разработки собственных программ

Почуев Сергей Иванович

Введение

“Как защитить конфиденциальные данные, хранящиеся на несъемных носителях информации моего персонального компьютера (например, письма к любимой девушке, адреса, домашнюю бухгалтерию, фотоальбом и т.п.), от посторонних глаз?” Этот вопрос все чаще задают себе т.н. “продвинутые” пользователи сети INTERNET, отчетливо понимая, что любые способы защиты, кроме исключения непосредственного физического контакта компьютера с сетью, не дают 100 % гарантии...

В настоящее время, в соответствии с действующим российским законодательством в области информации, гражданам РФ доступны для свободного приобретения и легитимного применения в личных целях компьютерные программы защиты информации, не имеющие официально установленного государственного грифа секретности. Ввиду многочисленности их легко можно “скачать” в сети, купить на СD, позаимствовать у друзей, самостоятельно разработать и т.п. Ряд программ защиты информации штатно входят в состав средств операционной системы (ОС) домашнего компьютера.

Вместе с тем известно, что любая “чужая” и тем более не сертифицированная “публичная” программа такого класса, применяемая Вами в виде исполняемого модуля, является “черным ящиком”. Это может таить в себе неприятные неожиданности, несмотря на возможную широкую рекламу и искренние заверения авторов, в том числе зарубежных, в эффективности и безопасности распространяемого ими программного продукта… Поэтому у людей, знакомых с основами программирования, возникает искушение написать собственную программу для защиты информации - простую, надежную, прозрачную для себя и недоступную для посторонних.

Некоторым принципам создания подобных программ посвящен настоящий очерк.

Принципы создания программ кодирования

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

По мнению автора, эффективное кодирование/декодирование информации может осуществляться, штатными средствами операционной системы Windows любых версий, установленной на большинстве домашних персональных компьютеров. Такими средствами являются встроенные в операционную систему датчики псевдослучайных (RND) чисел.

Рассмотрим принципы шифрования информации с использованием RND датчика на примере файла часто используемого *.rtf формата (международная ASCII кодировка алфавита из 256 символов, имеющих собственные уникальные номера).

1). Автором предлагаются два базовых подхода (для каждой конкретной программы, в зависимости от фантазии и опыта разработчика-программиста, возможны любые их ad hoc модификации и комбинации, вплоть до “вкрапления“ алгоритма быстрого преобразования Фурье и.т. п.) к кодированию/декодированию информации:

псевдослучайное (с помощью RND датчика) изменение значений символов исходного файла на фиксированных позициях;

псевдослучайное (с помощью RND датчика) изменение позиций символов исходного файла без изменения их значений.

В первом случае, например, исходный символ “Х”, находящийся на i-той позиции кодируемого файла, становится символом “Y” (или любым другим из 256 возможных, за счет псевдослучайного приращения значения ASCII кода) на той же позиции.

Во втором случае, меняются местами символы “X” и “Y”, находящиеся соответственно на i-той и на j-той псевдослучайных позициях в пределах кодируемого файла.

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

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

Начальные значения для каждой из использованных последовательностей могут формироваться на основе задания и запоминания пользователем ключевого слова-пароля. При этом пароль в компьютере, в программе кодирования и в создаваемых ею файлах не хранится!

Например, задав (и запомнив!!!) с клавиатуры компьютера пароль из 6-ти символов, мы получаем 18-ти значное (как максимум) или 6-ти значное (как минимум) целое число в строковом представлении: каждому символу пароля соответствует в ASCII кодировке 3-х значное (как максимум) или однозначное (как минимум) целое число. Затем на основе данного целого числа формируется начальное значение (первое число) псевдослучайной RND последовательности. Последующие числа данной последовательности автоматически генерируются ОС Windows по некоторому детерминированному алгоритму (не важно, по какому именно!) на основе предыдущего значения.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...