Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

Исследование алгоритмов шифрования на примере подстановочно-перестановочного метода

#12 декабрь 2005

РАЗРАБОТКА КОМПЬЮТЕРНОЙ МОДЕЛИ КРОНШТЕЙНА

Исследование алгоритмов шифрования

на примере

подстановочно-перестановочного метода

 

УДК 004.056:061.68

 

Федосеев Григорий Геннадьевич

гимназия № 4, г. Дзержинский, 10 класс

 

Научный руководитель:

Аюшев Циден Гатапович,

старший преподаватель кафедры

«Информационная безопасность»

МГТУ им. Н.Э.Баумана

 

 

Цель работы

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

 

Введение

Криптография – наиболее мощный способ защиты информации. Существуют альтернативные подходы к защите: физическая защита материального носителя информации, стеганография. Наибольший эффект достигается при комплексном использовании всех подходов, однако криптография и в этом случае играет ведущую роль. На протяжении тысячелетий криптография была искусством засекречивания важной государственной информации при передаче ее по незащищенным каналам связи.

Криптография возникла вместе с письменностью. В исторических документах древних цивилизаций Индии, Египта, Месопотамии имеются сведения о системах и способах составления шифрованного письма. Так, в древнеиндийских рукописях содержится изложение 64-х способов преобразования текста. Среди них написание знаков не по порядку, а вразброс по некоторому правилу.

Более достоверные сведения о применяемых системах шифров относятся к периоду возникновения государств Древней Греции. В Спарте в V–VI веках до нашей эры существовала хорошо развитая система защиты информации. К этому времени относятся описания двух известных приборов для шифрования – Сцитала и таблицы Энея, которые осуществляют перестановку букв в тексте и замену букв открытого текста отрезками на прямой. Эней в сочинении «Об обороне укрепленных мест» описывает так называемый «книжный шифр». Полибий описывает систему шифра, называемую «квадрат Полибия», представляющую собой замену каждой буквы парой чисел – координатами буквы в квадрате 5x5, в котором написаны буквы алфавита.

Юлий Цезарь в книге «Записки о галльской войне» описывает шифр, в котором буквы заменяются в соответствии с подстановкой, в которой каждая буква сдвинута на три позиции вправо. Потребителями криптографии в этот период являются структуры административной и религиозной власти. Плутарх сообщает, что жрецы хранили тексты прорицателей в зашифрованном виде.

В период расцвета арабских государств (VIII век н.э.) криптография получила новое развитие. В 855 году появляется «Книга о большом стремлении человека разгадать загадки древней письменности», в которой приводятся описания систем шифров, в том числе и с применением нескольких шифралфавитов.

В 1412 году издается 14-томная энциклопедия, содержащая обзор всех научных сведений – «Шауба аль-Аша». В данной энциклопедии содержится раздел о криптографии, в котором приводятся описания всех известных способов шифрования. В этом разделе имеется упоминание о криптоанализе системы шифра, который основан на частотных характеристиках открытого и шифрованного текста. Приводится частота встречаемости букв арабского языка на основе изучения текста Корана.

До эпохи Возрождения имеется мало сведений о применяемых шифрах. Известен ряд значковых шифров, при котором буквы открытого текста заменяются на специальные знаки. Таким является шифр Карла Великого (780–814). Известен так называемый "еврейский шифр", в котором замена букв осуществляется по подстановке, в которой нижняя строка образуется так: алфавит разбивается на две половины. Буквы второй половины пишутся под буквами первой половины в обратном порядке. Аналогично поступают с остальными буквами.

 

1. Алгоритмы

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

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

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

Следовательно, на пути от одного законного пользователя к другому информация должна защищаться различными способами, противостоящими различным угрозам. Возникает ситуация цепи из разнотипных звеньев, которая защищает информацию.

Естественно, противник будет стремиться найти самое слабое звено, чтобы с наименьшими затратами добраться до информации. А значит, и законные пользователи должны учитывать это обстоятельство в своей стратегии защиты: бессмысленно делать какое-то звено очень прочным, если есть заведомо более слабые звенья («принцип равнопрочности защиты»).

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

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

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

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

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

Методы шифрования подразделяются на симметричную (секретную) методологию и асимметричную (открытую) методологию.

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

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

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

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

Для того чтобы избежать низкой скорости алгоритмов асимметричного шифрования, генерируется временный симметричный ключ для каждого сообщения, и только он шифруется асимметричными алгоритмами. Само сообщение шифруется с использованием этого временного сеансового ключа и алгоритма шифрования/расшифровки. Затем этот сеансовый ключ шифруется с помощью открытого асимметричного ключа получателя и асимметричного алгоритма шифрования. После этого этот зашифрованный сеансовый ключ вместе с зашифрованным сообщением передается получателю. Получатель использует тот же самый асимметричный алгоритм шифрования и свой секретный ключ для расшифровки сеансового ключа, а полученный сеансовый ключ используется для расшифровки самого сообщения.

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

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

1.1 Симметричные алгоритмы

Для шифрования и расшифровки используются одни и те же алгоритмы. Один и тот же секретный ключ используется для шифрования и расшифровки. Этот тип алгоритмов используется как симметричными, так и асимметричными криптосистемами.

Примером симметричных алгоритмов шифрования может служить алгоритм DES (Data Encryption Standard) – популярный алгоритм шифрования, используемый как стандарт шифрования данных правительством США. Шифруется блок из 64 бит, используется 64-битовый ключ (требуется только 56 бит), 16 проходов.

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

IDEA (международный алгоритм шифрования) – 64-битный блочный шифратор, 128-битовый ключ, 8 проходов. Предложен недавно; хотя до сих пор не прошел полной проверки, чтобы считаться надежным, считается более надежным, чем DES.

 

1.2 Асимметричные алгоритмы

Асимметричные алгоритмы используются в асимметричных криптосистемах для шифрования симметричных сеансовых ключей (которые используются для шифрования самих данных).

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

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

 

2. Реализация алгоритма шифрования

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

 

Схема 1. Шифрование алгоритмом подстановки перестановки

 

 

 

 

 

 

 

2.1 Выбор языка программирования

Сейчас существует множество языков программирования, наиболее популярными из которых являются такие, как С++, Delphi, и некоторые другие.

Компания Microsoft известна как монополист на рынке ПО, поэтому ее продукция широко распространена и пользуется популярностью.

Язык программирования Microsoft Visual Basic прост и удобен в использовании, при этом он очень функционален, а интерфейс приложений, выполненных на этом языке, привычен для пользователя. Программа написана на модульном принципе. Дизайн и интерфейс программы разработаны при помощи встроенного редактора Visual Basic, что позволило сделать ее наиболее удобной и функциональной.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 1. Рабочее окно программы

 

2.2 Интерфейс программы

Рабочее окно программы разделено на 3 логические части:

1.         Управление общим ходом программы. Эта часть включает в себя клавиши:

 

 

 


И строку для работы с ключом.

2.         Область для работы с текстом. Она состоит из поля для ввода/вывода текста, меню для работы с текстовым файлом и кнопки для очистки текстового поля.

3.         Область для работы с шифром. Эта область построена аналогично текстовой области. Она включает в себя поле для ввода/вывода шифра, интерфейс для загрузки/сохранения шифра и кнопки, очищающей поле с шифром. Дополнительно запускается модуль «Быстрое шифрование» для работы с большими файлами. Его структура аналогична. Процесс работы программы можно разделить на 2 этапа: шифрование текста и расшифрование текста.

 

2.3 Алгоритмы работы программы

 

Схема 2. Шифрование текста

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Схема 3. Расшифрование текста

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Шифрование

Рассмотрим процесс шифрования текста: (см. схему 1).

1.      Исходный текст вводится с клавиатуры или загружается из текстового файла, после чего он помещается в переменную Textin.text.

2.      При нажатии соответствующей клавиши происходит генерация случайного ключа. Для этого вводится переменная abc, содержащая в себе латинские строчные (a-z), латинские прописные (A-Z), русские строчные (а-я), русские прописные буквы (А-Я), цифры (0-9), знаки препинания и другие специальные символы (,.+-><():;!?*#@&%$/=).

Длина переменной abc - 146 символов.

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

Далее происходит шифрование текста.

В поле для ввода/вывода шифра добавляется символ из переменной ключа, порядковый номер которого аналогичен порядковому номеру исходного символа в алфавите. Если в исходном алфавите данный символ не найден, то он без изменения попадает в шифр.

Сокрытие ключа в зашифрованном файле

Чтобы впоследствии расшифровать текст, ключ, использовавшийся при шифровании, смешивается с шифром и записывается в файл, для этого выясняется шаг чередования символов текста и ключа (a). Для большей криптоустойчивости запрашивается пароль, который добавляется к переменной ключа при сохранении, и проверяется при открытии шифра. Для выяснения шага смешивания длина шифра делится на длину ключа. Если полученное число меньше единицы (это говорит о том, что длина шифра меньше длины ключа), то производится деление длины ключа на длину шифра. При этом переменной PrimText$ присваивается значение меньшего из двух смешиваемых текстов, а переменной DoubleText$ - большего. После чего от переменной a отбрасывается дробная часть.

Далее происходит цикл столько раз, сколько символов в меньшей из двух смешиваемых переменных. В этом цикле к переменной textoute$ (переменная для сохранения в файл) на a символов из DoubleText$ приходится 1 символ из PrimText$. После этого цикла к textoute$ добавляются оставшиеся символы из DoubleText$, если такие есть. По завершении этой операции полученный шифр сохраняется в файл.

 

Процесс расшифрования

Этот процесс происходит по такому алгоритму: (см. схему 2).

Шифр и ключ вводятся с клавиатуры или загружаются из файла. При загрузке шифра из файла содержимое этого файла записывается в переменную Textoute$. В этой переменной находится шифр, смешанный с ключом. Для его разделения вычисляется шаг чередования символов текста с символами ключа. Разность длины загруженного шифра и 154 (длина ключа и пароля) делится на 154. Получаем шаг смешивания. Если полученное число меньше 1, то делим 154 на разность длины шифра и 154 Отбрасываем от полученного коэффициента а дробную часть. Далее переходим в один из двух модулей: в первый, если шифр больше ключа, во второй – если меньше. В первом модуле каждый символ, порядковый номер которого кратен a+1, добавляется в переменную ключа, а все остальные символы – в переменную шифра. Как только длина ключа становится равной 154, цикл прекращается, а оставшиеся символы переходят в переменную шифра.

Во втором модуле, наоборот, каждый символ, порядковый номер которого кратен a+1, добавляется в переменную шифра, а все остальные символы – в переменную ключа. Как только длина шифра становится равной разности длины исходного шифра и 154, цикл прекращается, а оставшиеся символы переходят в переменную ключа. После этого 146 символов присваиваются переменной ключа, а оставшиеся 8 – пароль. Запрашивается пароль, и если он совпадает с паролем из файла, то шифр становится доступным. Иначе все данные, считанные из файла, удаляются.

После этого шифр расшифровывается: в переменную для ввода/вывода текста добавляются символы из переменной с исходным алфавитом, порядковый номер которых соответствует порядковому номеру исходных символов в ключе.

 

Генерация ключа

Рассмотрим процесс генерации ключа более подробно.

Вводим текстовый массив Neversim (146), в который будут записываться порядковые номера в исходном алфавите ранее сгенерированных символов, для исключения повтора символов в ключе.

Далее генерируется случайное целое число от 0 до 146 (a$), и проходит проверка на наличие этого числа в массиве Neversim. Если массив уже содержит это число, то генерируется другое, и снова проходит проверка. Если это число сгенерировано впервые, то в переменную ключа (Key$) добавляется символ из переменной abc с порядковым номером a%.

 

Модуль «Быстрое шифрование»

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

Прежде всего, при шифровании открывается файл с исходным текстом и временный файл «C:\Temp.txt». Текст посимвольно шифруется с записью во временный файл. Шифрование происходит по алгоритму, подобному алгоритму шифрования в основном модуле. После завершения шифрования запрашивается пароль. На сохранение пароля в файле отводится 8 байт.

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

При расшифровании сначала открывается файл шифра, и временный файл. Из шифра выделяется ключ, пароль и шифр. Шифр записывается во временный файл. Далее открывается файл для текста, в который расшифровывается шифр. По завершении расшифрования, файлы с шифром и текстом закрываются, а временный файл удаляется.

 

3. Экспериментальная обработка текста

Допустим, необходимый для шифрования текст представлен в следующем виде:

«Дизайн и интерфейс программы разработаны при помощи встроенного редактора Visual Basic, что позволило сделать ее наиболее удобной и придать ей привычный для пользователя вид».

Случайной перестановкой символов исходного алфавита

 

«abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789,.+-><():;!?*#@&%$/=»

 

получили ключ для шифровки:

 

«7ИуУдX1ЬгlПwчrSUжzпЧГВЮTЦd*Gс;5xeЗАеHаЪuен!<YcЯ0шЭ-ьХ@МIt>яKCК2э(yN #mOмfapiRЕЫЩБ)n8&A+Йsщ4НBр,:jVLфFMзДvbФц3Р9лJтъP.юЖDвоWoыкхqgСЛОиб?ZEЕQШ6hТй%».

 

В нем нет повторяющихся символов.

После шифрования текст стал иметь вид:

 

«sCKьКyqCqCyOt#ftКmq#NМ#ь((Щq#ьK#ьХNOьyЩq#CqN(NЕCq@mO#NtyyNМNq#tIь2ON#ьq0гпГ7wqG7пгуgqiONqNK@NэCэNqmItэьOБqt>qyьCХNэttqмINХyNКqCq#CIьOБqtКq#C@ЩiyЩКqIэ8q NэБKN@ьOtэ8q@CIС».

 

Так, например, буква «Д» первого слова текста, имеющая в исходном алфавите порядковый номер 89, заменена символом «s», стоящим в ключе на 89-й позиции.

И все слово «дизайн» стало иметь вид «sCKьКy».

В слове «удобной» третья и шестая буквы повторяются. Поэтому в шифре третий и шестой символы одинаковы: «мINХyNК».

Теперь сохраним этот шифр в файл. При сохранении происходит смешивание символов ключа и шифра, и добавляется 8 символов пароля. Пускай пароль для этого шифра: «Password». Длина текста – 174 символа. Длина ключа и пароля – 154 символа. Значит, шаг смешивания равен 174/154=1,113, отбросив дробную часть, получим 1, это означает, что на один символ шифра приходится один символ ключа:

 

«s7CИKуьУКдyXq1CЬqгClyПOwtч#rfStUКжmzqп Ч#ГNВМЮ#TьЦ(d(*ЩGqс#;ь5Kx#eьЗХАNеOHьаyЪЩuqе н#!C<qY cNЯ(0NшЕЭC-qkmХO@#МNItty>yяNKМCNКq2#эt(IyьN2 O#Nm#Oьмqf0aгpпiГRwЫqЩGБ7)пnг8у&gAq+iЙOsNщq4 НNBKр@,NjCVэLNфqFmMIзtДэvьbOФБцq3tР>9qлyJьтCъХPN.эюtЖtDqвмоIWNoХыyкNхКqqgCСqЛ О#иCбIZOEБЕqQtШК6qh Т#йC%@PЩaisysЩwКoqrIdэ8q NэБKNOtэ8q@CIС».

Длина такого шифра равна сумме длины текста ключа и пароля. 174+146+8=340 байт.

Попытаемся обнаружить информацию о пароле в данном файле. Нам известен пароль и шаг смешивания, просмотрев шифр, нетрудно обнаружить запись:

 

«@PщaisysЩwКoqrIdэ»,

 

в которой каждый второй символ – символ пароля. Но в нашем случае шифр длиннее ключа на 20 символов, эти 20 символов дописываются в файл, когда весь ключ уже смешан с шифром.

Т.е. часть шифра:

 

«э8q NэБKN@ьOtэ8q@CIС»

 

остается неизменной после сокрытия в ней ключа.

Теперь откроем этот файл для расшифровки. Программа определит шаг смешивания, поделив разность длины файла и 154, на 154, и разложит текст на шифр, ключ и пароль. Пароль будет запрошен с клавиатуры, и если он совпадет с паролем из файла, то доступ к шифру и ключу будет открыт. Извлеченный ключ будет иметь первоначальный вид, так же как и шифр. А после расшифрования получим исходный текст.

 

4. Руководство пользователю

 

Системные требования

Аппаратные: Pentium 166, 32 Mb RAM, CD-ROM, 100-300 Кб свободного дискового пространства, клавиатура, мышь.

Операционная система: Ms Windows 95 и выше, наличие библиотек MsVb60.dll.

Состав программного обеспечения: программа ShifrFinal.EXE, текст пояснительной записки, код в текстовом формате, папка Setup, содержащая файлы установки драйверов.

 

Запуск

1.      Загрузите программу ShifrFinal.exe.

2.      В случае возникновения системных ошибок запустите setup.exe.

3.      Необходимые драйвера будут установлены.

 

Шифрование

1.      Откройте текстовый файл клавишей «открыть». Программа открывает ТХТ-файлы, при открытии других файлов откроется напрямую их код. Или введите текст с клавиатуры вручную.

2.      Сгенерируйте ключ, нажав на клавишу «сгенерировать ключ», или введите его вручную с клавиатуры, предварительно разрешив изменение ключа вручную клавишей «изменить ключ». При введении ключа с клавиатуры важно сохранить формат ключа – ключ должен содержать 146 символов формата:

 

«abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ0123456789,.+-><():;!?*#@&%$/=»

 

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

3.      После нажатия клавиши «Шифровать» произойдет шифрование текста, при этом ранее введенные данные в поле для ввода текста будут утрачены. В окне для ввода шифра появится текст, символы которого будут заменены символами из ключа.

4.      Готовый шифр можно сохранить в файл «C:\output.txt», нажав клавишу «сохранить», или в любой другой файл с помощью команды «сохранить как...». Будет запрошен пароль для данного шифра, который будет проверяться для его открытия. При этом размер файла будет на 154 байт больше размера шифра за счет добавления в него ключа и пароля.

5.      После шифрования текста он может быть расшифрован с помощью этой же программы.

 

Расшифрование

1.      Откройте файл, содержащий в себе шифр и ключ, или введите их с клавиатуры. Для открытия шифра из файла, нужно ввести пароль, запрошенный при сохранении. При этом ключ должен удовлетворять требованиям формата ключа (см. раздел «Шифрование», пункт 2, руководства пользователю). Учтите, что при открытии файла информация из полей для ввода шифра и ключа будет утеряна.

2.      Нажмите кнопку «Расшифровать», после чего текст будет расшифрован. Информация поля для ввода текста будет заменена новым, расшифрованным текстом.

3.      Сохраните получившийся текст, используя команду «Сохранить» для сохранения в файл «C:\ Output.txt» или «Сохранить как…» для сохранения в произвольный файл.

 

Работа с большими файлами

Для шифрования файлов, длина которых больше 30 Кбайт используйте функцию «Быстрое шифрование».

1.      Для шифрования выберите файл исходного текста и файл, для записи шифра.

2.      Сгенерируйте ключ, нажмите «Шифровать», в появившемся окне введите пароль, который будет запрошен при расшифровании.

3.      Для расшифрования выберите файл с шифром и файл для записи полученного текста. Нажмите «Расшифровать», введите пароль, для данного шифра.

4.      По завершении расшифрования программа выведет соответствующее сообщение.

 

Заключение

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

 

Список литературы и используемых источников

1.      Брассар Ж. Современная криптология. – М.: ПОЛИМЕД, 1999.

2.      Бобровский С. Программирование на языке Qbasic для школьников и студентов. – М.: Инком-Пресс, 2000.

3.      Алиев В.К. Языки Basic. – М.: Салон-Р, 2000.

4.      Ананьев А., Федоров А. Visual Basic 6.0. – СПб.: БХВ-Петербург, 2004.

5.      http://www.cryptography.ru/db/msg.html?mid=1169240

 

 

 


Тематические рубрики:
Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2024 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)