Вход

Защита информации в ПЭВМ. Шифр Плейфера

Реферат по программированию
Дата добавления: 08 декабря 2002
Язык реферата: Русский
Word, rtf, 558 кб (архив zip, 55 кб)
Реферат можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
10 Московский государственный Авиаци онный институт (технический унив ерситет ) Кафедра 403 “алгоритмические языки и про граммирование” Расчетно графическая работа на тему Защита информации в ПЭВМ Шифр Плэйфера студент гр . 04-109 Дмитрий Гу ренков Научный руководит ель Кошелькова Л.В. Москва 2015 год Оглавление Защита информации в ПЭВМ Криптографические методы защиты и нформации Модель одноключевой криптосистемы для передачи сообщений Шифр простой подстановки. Ши фр перестановки (транспозиции ) с фиксированным d (блок d -груп па символов ). Шифр Вижинера Шифрование с помощью датчика случайных чисел (ПСЧ ) ШИФР ПЛЭЙФЕРА Блок схемы ПП SHIFR _ PLEYFER ПФ SHIFR _ TXT ПФ DESHIFR _ TXT ОСНОВНАЯ ПРОГРАММА Програ мма Результаты СПИСОК ЛИТЕРАТУР Ы Защита инфор мации в ПЭВМ Усложнение методов и средств орг анизации машинной обработки информации , а так же широкое использование вычислительных сетей приводит к тому , что информация становится все более уязвимой. В связи с этим защита информации в процессе ее сбора , хранения и обработки приобретает исключительно важное значение (особенно в коммерческих и военных областях ). Под защи той информации понимается совоку пность мероприятий , методов и средств , обеспеч ивающих решение следующих основных задач : - проверк а целостности информации ; -исключение несанкционированного доступа к ресурсам ПЭВМ и хранящимся в ней прогр аммам и данным (с целью сохранения трех основных свойств защищаемой информации : целостн ости , конфи денциальности , готовности ); - исключение несанкцио нированного исполь зования хранящихся в ПЭВМ программ (т.е . за щита программ от копирования ). Возможные каналы утечки информации , позво ляющие нарушителю получить доступ к обрабатыв аемой или хранящейся в ПЭВМ информации , пр инято классифицировать на три группы , в зависимости от типа средства , являющегося основным при получении информации . Различают 3 типа средств : человек , аппаратура , программа. С первой группой , в которой основным средством является человек, связаны следующие основные возм ожные утечки : - чтени е информации с экрана пос торонним лицом ; - расшифровка программой зашифрованной инфор мации ; - хищение носителей информации (магнитных дисков , дискет , лент и т . д .). Ко второй группе каналов , в которых основным средством является а ппаратура, относятся следу ющи е возможные каналы утечки : - подключение к ПЭВМ специально разработ анных аппаратных средств , обеспечивающих доступ к информации ; - использование специальных технических сред ств для перехвата электромагнитных излучений технических средс тв ПЭВМ . В группе каналов , в которых основным средством является програм ма , можно выделить следующие возможные каналы утечки : - несанкционированный доступ программы к информации ; - расшифровка программой зашифрованной инфор мации ; - копирование программой информации с но сит елей. Будем рассматривать средства защиты , обес печивающие закрытие возможных каналов утечки , в которых основным средством является програ мма . Заметим , что такие средства в ряде случаев позволяют доста точно надежно закрыть некоторые возможные каналы утечк и из других групп . Так , криптографические средства позволяют надежно закрыть канал , связанный с хищением носителей информации. Обзор методов защиты информации Проблемы защиты информации программного обеспечения имеют ши рокий диапазон : от законодательных а спект ов защиты интеллектуаль ной собственности (прав автора ) до конкретных технических устройств. Средства защиты можно подразделить на следующие категории : 1 - средства собственной защиты ; 2 - средства защиты в составе вычислительной системы ; 3 - средства защиты с запросом информации ; 4 - средства активной за щиты ; 5 - средства пассивной з ащиты. Классификация ср едств защиты информации Средства защиты информации Собственн ой защиты В составе ВС С запросо м информации Актив ные Пассивные - докумен тация - машинный код - сопровождение - авторское право - заказное проектирование - защита маг нитных дисков - специальная аппаратура - замки защиты - изменения функций - пароли - шифры - сигнатура - аппаратура защиты (ПЗУ , преобразователи ) генератор случайн ых чисел - замки з ащиты (время , данные ) - искаженные программы (программы вирусы , искажение функций ) - сигнал тревоги - запуск по ключам - авторская эстетика - идентификация п рограмм - частотный анализ - корреляционный анализ - «родимые пятна» - устройство контроля Наиболее надежными являются криптографически е методы защиты информации , относящиеся к классу средств защиты с запросом информа ции. Криптографиче ские методы защиты информации 1. Основные определения Криптология (от гре ческих корней : cryptos-тайный и logos-слово ) как научная дисциплина оформилась в 1949 г . с появлением работы Шеннона , в которой устанавливалась связь криптологии с теорией информации . Криптология включает два направлени я : криптографию и криптоанализ . Зада ч а криптографа - обеспечить как можно б ольшие секретность и аутентичность (подлинность ) передаваемой информации . Криптоаналитик , напротив , "взламывает " систему защиты , пытаясь раскрыть зашифрован ный текст или выдать поддельное сообщение за настоящее. Крип тографическая защита - это защита данных с помощью крипто графического преобра зования , под которым понимается преобразование данных шифрованием и (или ) выработкой имитов ставки. Чтобы скрыть смысл передаваемых сообщений применяются два ти па преобразований : кодирование и шифрование . Для кодирования и споль зуется кодировочные книги и таблицы , сод ержащие наборы часто исполь зуемых фраз , каждо й из которых соответствует кодовое слово . Для деко дирования используется такая же книг а. Второй тип криптографического преобразо вания - шифрование -представляет собой процедуру (алгоритм ) преобразования символов исходного те кста в форму , недоступную для распознанная (зашифрован ный текст ). Под шифром понимается совокупность обрати мых преобразований множества открытых данны х на множество зашифрованных данных , з аданных алгоритмом криптографического преобразования . В шифре всегда различают два элемента : алгоритм и ключ. Процесс передачи сообщений использует 2 ал горитма : шифрования E-Encipherment и дешифрования D-Decipherment, в которых для преобра зования используется клю ч К. Ключ - конкретное секретное состояние неко торых параметров ал горитма криптографического пр еобразования данных , обеспечивающее выбор одного варианта из совокупности всевозможных для данного алгоритма. Имит овставка - это последовательность данных фиксированной длины , полученная по опр еделенному правилу из открытых данных и к люча , которая используется для защиты от н авязывания ложных данных. Криптостойкостью называется характеристика ш ифра , определяю щая его стойкость к деши фрованию , которая обычно определяется необхо димым для этого периодом времени. Криптосистемы с закрытым ключом (одноключе вые ) Модель одно ключевой криптосистемы для передачи сообщений санкци онированный получатель Х У = Ек (Х ) Х = D к (У ) исходный текст R К К защищенный канал связи для передачи ключа. Источник сообще ния передает "открытый текст " X, а рандомиз атор формирует рандомизируюшую последовательность R. Задача рандомизатора состоит в том , чтобы выровнять частоты появления символов источ н ика сообщения путем перехода к алфавиту б ольшего объема . Источник ключа генерирует нек оторый ключ К , а шиф р атор прео бразует открытый текст Х в шифротекст (кри птограмму ), который является некоторой функцией X, а конкретный вид криптограммы определяется секретным ключом и рандомизирующей последовате льностью. Шифротекст передается по незащищенному ка налу связи , и несанк ционированный получател ь имеет все технические возможности для е е перехвата . В соответствии с известным в криптологии "правилом Керхкоффа " предполагается , что алгоритм преобразования известен против ни ку , и надежность шифра определяется только ключ о м. Дешифратор санкционированного получателя , зна я секретный ключ , восстанавливает открытый те кст. При разработке практических шифров исполь зуются два принципа , которые выделил Шеннон : рассеивание и перемешивание . Рассеиванием он назвал распространение влия ния одного знака открытого текста на множество знаков шифротекста , что позволяет скрыть статистически е свойства открытого текста . Под перемешивани ем Шеннон понимал ис пользование таких шифрую щих преобразований , которые усложняют восстановле ние взаимосвязи статистических свойств открытого и шифро ванного текста . Однако ши фр должен не только затруднять раскрытие , но и обеспечивать легкость шифрования и д ешифрования при известном секретном ключе . По этому была принята идея использовать произвед ение простых шиф р ов , каждый из которых вносит небольшой вклад в значи тель ное суммарное рассеивание и перемешивание . Ра ссмотрим примеры шифрования. Шифр просто й подстановки. Это простейший метод шифрования , его называют также моноалфа витной подст а новкой . Ключом является переставленный алфавит , буквами которого заменяют буквы нормального алфавита . Например , каждая буква заменяется на букву , стоящую на 3 позиции впереди : A D , B E и т.д . Тог да текст АВС заменяется на DEF . Все мон оалфавитные подстановки можно представить в в иде : Y , = а х i + b ( mod g ), а - некоторый постоянный десяти чный коэффициент ; b - коэффициент сдвига ; g - длина используемого алфавита ; х i -i-й символ открытого текста (ном ер буквы в алфавите ). Основным недоста тком рассмотренного метода является то , что статистические свойства открытого текста (часто ты повторения букв ) сохраняются и в шифрот ексте. Шифр перест ановки (транспозиции ) с фиксированным d (блок d -групп а си мволов ). Это блочный метод . Текст делят на блоки и в каждом производится перес тановка символов открытого текста . Правило пе рестановки задается секретным ключом . Пусть п ерестановка задается таблицей : 123456 316524 Тогда открытый текст прео бразуется в закодированный так : первый символ станови тся вторым , второй - пятым и так далее MICROC OMPUTE R - открытый текст CMCOIR POETMU R - закодированный текст В случае перестановки переставляются не буквы алфавита , а буквы в сообщении о ткрытого те кста . Распределение частот отд ельных символов оказывается в шифрованном тек сте таким же , что и в открытом тексте , однако распределения более высоких порядков оказываются перемешан ными , что улучшает крип тостойкость данного шифра по сравнению с простой под с тановкой. Шифр Вижине ра Шифр , задаваемый формулой у i = х i + ki ( mod g ), где ki - i -я буква ключ а , в качестве которого используется слово или фраза , называется шифром Вижинера . Воспользуемся таблицей кодирования букв русского алфави та : Буква А Б В Г Д Е Ж 3 И И К Л Код 01 02 03 04 05 06 07 08 09 10 11 12 Буква М Н О П Р С Т У Ф X Ц Ч Код 13 14 15 16 17 18 19 20 21 22 23 24 Буква Ш Щ Ъ Ы Ь Э Ю Я (пробел ) Код 25 26 27 28 29 30 31 32 33 Пусть имеется открытый текст "ЗАМЕНА " и подстановка шифра Вижинера задана т аблицей : 3 А М Е Н А К Л Ю Ч К Л По формуле шифра Вижинера находим : Y1= 8 + ll (mod33) = 19 T; Y2= l + 12 (mod33) = 13 M; Y3= 13 + 31 (mod 33) = 11 К ; Y4= 6 + 24 (mod 33) = 30 Ю ; Y5= 14 + 11 (mod 33) = 25 Ш ; Y6 = 1 + 12 (mod 33) = 13 М . Шифротекст : "ТМК ЭШМ ". Шифры Бофора ис пользуют формулы : yi = ki - xi(mod g) и yi = Xi - ki(mod g). Гомофоническая замена одному символу открытого текста ставит в соответствие несколько символов шифротекст а . Этот метод применяется для искажения ст атистических свойств текста. Шифр ова ние с помощью датчика случайных чисел (ПСЧ ) Это довольно распространенный крипто графический метод , прин цип которого заключается в генерации гаммы шифра с помощью да тчика ПСЧ и наложении полученной гаммы на открытые данные обратимым образом (напр имер , при использовании логической операции "и сключающее ПЛИ "). Процесс расшифрования данных сводится к повторной генерации гаммы шифра при изве стном ключе и наложению такой гаммы на зашиф рованные данные . Полученный зашифрованный текст достаточно тр уден для раскрытия в том случае , когда гамма шифра не содержит повторяю щихся битовых последовательносте й . Фактически если период гаммы превышает длину всего зашифрованного текста и неизвестн а никакая часть исходного текста , то шифр можно раскрыть только п рямым п еребором (подбором ключа ). На основе теории групп разработано не сколько типов датчиков ПСЧ . Наиболее доступны и эффективны конгруэнтные генераторы ПСЧ . Напри мер , линейный конгруэнтный датчик ПСЧ вырабатывает последовательно сти псевдослучайных ч ис ел T(i), описываемые соотношением T(i+l) = [AT(i) + C]mod M, Где А и С - константы ; Т (0) - исходная величина , выбранная в качестве порождающего числа. Такой датчик ПСЧ генерирует псевдослучайн ые числа с определен ным периодом повторения , зависящим от выбра нных значений А и С . Значение М обычно устанавливается равным 25, где b - длинна слова ЭВМ в битах. Одноключевая модель использует для шифров ания и дешифрования один и тот же сек ретный ключ , который должен быть неизвестен криптоаналитику противника . Поэтом у такая система называется одноключевой криптосистемой с секретными ключами . Проблема распространен ия этих секретных ключей является одной и з главных трудностей при практиче ском исполь зовании такой криптосистемы . Для распространения секрет ных ключей тре б уются защи тные каналы связи . Стоимость и сложность р аспространения этих ключей оказываются очень большими. ШИФР ПЛ ЭЙФЕРА Блок схем ы ПП SHIFR_PLEYFER ПП SHIFR_PLEYFER для определения координат символов матрицы Плэйфера. SHIFR_PLEYFER(Alfavit, INDEX) Список формальных параметров : Alfavit, INDEX Входные параметры : INDEX - матрица символов Плэйфера , величина символьная. Выходные параметры : Alfavit - хранит координаты символов матрицы Плэйфера , величины целого типа. Алгори тм Начало ПП SHIFR_PLEYFER (Alfavit, INDEX) Описание массивов : Alfavit[255], INDEX[6, 6] I = 1 нет I <= 6 J = 1 нет J <= 6 Alfavit[Ord(INDEX[I, J])].Strok = I Alfavit[Ord(INDEX[I, J])].Stolb = J J = J + 1 I = I + 1 Конец ПП SHIFR_PLEYFER Обозначения 1. Описание массивов Alfavit, INDEX 2 .. 5, 7, 8 Организация цикла заполнения массива Alfavit типа запись 6. Определение строк и столбов дл я символов матрицы INDEX ПФ SHIFR_TXT ПФ SHIFR_TXT производит шифрование строки открыт ого текста. SHIFR_TXT(Str, Alfavit, INDEX) Список формальных параметров : Str, Alfavit, INDEX Входные параметры : Str - строка открытого текста , величина строка. Alfavit - хранит координаты символов матрицы Плэйфера , величины целого типа. INDEX - матрица символов Плэйфера , величина символьная. Выходные параметры : SHIFR_TX T - принимает значение зашифрованной строки , величины строка. Обозначения 1. Описание массивов Alfavit, INDEX. 2 .. 7 В открытом тексте вставляется “-”меж ду одинаковыми символами. 8 .. 9 Добавление “-” в конец открытого текста , в случае нечет . кол-ва символов в строке . 10 .. 13 Организация по парного перебора сим волов строки открытого текста. 14 .. 15 Пара символов находится в одной строке матрицы алфавита Плэйфкра. 16 .. 17 Пара символов находится в одном столбце матрицы алфавита Плэйфера. 18. П ара символов находится в раз ных строках и столбцах матрицы алфавита П лэйфера. 19. Присваивание ПФ SHIFR_TXT значения новой стр оки Продолжение следует Алгоритм Начало ПФ SHIFR_TXT (Str, Alfavit, INDEX) Описан ие массивов : Alfavit[255], INDEX[6, 6] New = “ , Dlina_str = Length(Str), I = 1 нет I <= Dlina_str да нет Str[I] = Str[I + 1] New = ( New + Str[I] + ‘ -’ ) New = ( New + Str[I] ) I = I + 1 нет Odd(Length(Str)) = TRUE New = New + ‘ -’ Str = “ , Dlina_new = Length(New)div 2, I = 1 нет I <= Dlina_new SIM1 = New[2*I - 1], SIM2 = New[2*I] SHIFR_TXT = Str I = I + 1 Конец ПФ SHIFR_TXT нет ALFAVIT[Ord(SIM1)].STROK = ALFAVIT[Ord(SIM2)].STROK Str = Str + INDEX[(ALFAVIT[Ord(SIM1)].STROK), ((ALFAVIT[Ord(SIM1)].STOLB mod 6) + 1)] + INDEX[(ALFAVIT[Ord(SIM2)].STROK), ((ALFAVIT[Ord(SIM2)].STOLB mod 6) + 1)] нет ALFAVIT[Ord(SIM1)].STOLB = ALFAVIT[Ord(SIM2)].STOLB Str = Str + INDEX[((ALFAVIT[Ord(SIM1)].STROK mod 6) + 1), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[((ALFAVIT[Ord(SIM2)].STROK mod 6) + 1), (ALFAVIT[Ord(SIM2)].STOLB)] Str = Str + INDEX[(ALFAVIT[Ord( SIM2)].STROK), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[(ALFAVIT[Ord(SIM1)].STROK), (ALFAVIT[Ord(SIM2)].STOLB)] ПФ DESHIFR_TXT ПФ DESHIFR_TXT производит расшифрацию строки откры того текста. DESHIFR_TXT( Str, Alfavit, INDEX) Список формальных параметров : Str, Alfavit, INDEX Входные параметры : Str - строка открытого текста , величина строка. Alfavit - хранит координаты символов матрицы Плэйфера , величины целого типа. INDEX - матрица символов Плэйф ера , вел ичина символьная. Выходные параметры : DESHIFR_TXT- принимает значение расшифрованной стро ки , величины строка. Обозначения 1. Описание массивов Alfavit, INDEX. 2 .. 5 Организация по парного перебора симв олов строки открытого текста. 6 .. 7 Пар а символов находится в од ной строке матрицы алфавита Плэйфкра. 8 .. 9 Пара символов находится в одном столбце матрицы алфавита Плэйфера. 10. Пара символов находится в разных строках и столбцах матрицы алфавита Плэйфера. 11 .. 15 Из расшифрованной строки созда ется новая строка без спец . знак “-”. 16. Присваивание ПФ DESHIFR_TXT значения новой ст роки Продолжение следует Алгоритм Начало ПФ DESHIFR_TXT (Str, Alfavit, INDEX) Описание массивов : Alfavit[255], INDEX[6, 6] New = “ , Dlina_str = Length(Str)div 2, I = 1 нет I <= Dlina_str SIM1 = Str[2*I - 1], SIM2 = Str[2*I] I = I + 1 нет ALFAVIT[Ord(SIM1)].STROK = ALFAVIT[Ord(SIM2)].STROK New = New + INDEX[(ALFAVIT[Ord(SIM1)].STROK), (((ALFAVIT[Ord(SIM1)].STOLB + 4)mod 6) + 1)] + INDEX[(ALFAVIT[Ord(SIM2)].STROK), (((ALFAVIT[Ord(SIM2)].STOLB + 4)mod 6) + 1)] нет ALFAVIT[Ord(SIM1)].STOLB = ALFAVIT[Ord(SIM2)].STOLB New = New + INDEX[(((ALFAVIT[Ord(SIM1)].STROK + 4)mod 6) + 1), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[(((ALFAVIT[Ord(SIM2)].STROK + 4)mod 6) + 1), (ALFAVIT[Ord(SIM2)].STOLB)] New = New + INDEX[(ALFAVIT[Ord(SIM2)].STROK), (ALFAVIT[Ord(SIM1)].STOLB)] + I NDEX[(ALFAVIT[Ord(SIM1)].STROK), (ALFAVIT[Ord(SIM2)].STOLB)] Str = “ , Dlina_new = Length(New), I = 1 нет I <= Dlina_new нет New[I] ‘ -’ Str = Str + New[I] I = I + 1 DESHIFR_TXT = Str Конец ПФ DESHIFR_TXT ОСНОВНАЯ ПР ОГРАММА Алгоритм Начало основного блока программы Описан ие массивов : Alfavit[255], INDEX[6, 6] Вывод : “Выберите (S)ШИФРОВАТЬ или (D)ДЕШИФРОВА ТЬ” нет Ввод : K нет UpCase(K) = ‘ S ’ UpCase(K) = ‘ D ’ Вывод : “Путь к файлу : ” Ввод : Name1 Assign (Var_file1, Name1) Reset (Var_file1) нет IOResult = 0 Вывод : “Сохранить как : ” Ввод : Name2 нет Length(Name2) 0 Assign (Var_file2, Name2) ReWrite (Var_file2) SHIFR_PLEYFER(ALFAVIT, INDEX) нет NOT EOF(Var_file1) Ввод из файла Var_file1: Str нет да UpCase(K) = ‘ S ’ Str = DESHIFR_TXT(Str, ALFAVIT, INDEX) Str = SHIFR_TXT(Str, ALFAVIT, INDEX) Вывод в файл Var_file2: Str Close (Var_file1) Close (Var_file2) Конец основного блока программы Обозначения 1. Описание массивов Alfavit, INDEX. 2 .. 5 Выбор шифрование или расшифрация фай ла. 6 .. 9 Определе ние файла ввода данных. 10 .. 13 Определение файла вывода полученных результатов. 14. Обра щение к ПП SHIFR_PLEYFER(ALFAVIT, INDEX). 15 .. 16 Перебор строк из файла Var_file1. 17. Выбор действий шифрование либо расши фрация строки . 18. Обра щение к ПФ D ESHIFR_TXT(Str, ALFAVIT, INDEX). 19. Обращение к ПФ SHIFR_TXT(Str, ALFAVIT, INDEX). 20. Вывод результата в файл Var_file2. 21. Закрытие файлов ввода и вывода. Программа PROGRAM SHIFR_PLEYFERA ; USES Crt; TYPE pat h = STRING[14]; Stroca = STRING[255]; Simvol = array [1..6, 1..6] of CHAR; MATR = array [1..255] of RECORD STROK, STOLB: Byte; END; CONST INDEX: Simvol = ((' А ', ' Ж ', ' Б ', ' М ', ' Ц ', ' В '), типизированн ые конс танты д ля матр ицы Плэ йфера (' Ч ', ' Г ', ' Н ', ' Ш ', ' Д ', ' О '), (' Е ', ' Щ ', ' , ', ' Х ', ' У ', ' П '), (' . ', ' З ', ' Ъ ', ' Р ', ' И ', ' Й '), (' С ', ' Ь ', ' К ', ' Э ', ' Т ', ' Л '), (' Ю ', ' Я ', ' ', ' Ы ', ' Ф ', '-')); VAR Var_file1 ,Var_file2: Text; Name1, Name2: path; ALFAVIT: MATR; Str: Stroca; K: Char; Определение координат символов матрицы Плэйфера PROCEDURE SHIFR_PLEYFER(Var ALFAVIT: MATR; INDEX: Simvol); VAR I, J: Byte; I, J - сч етчики циклов BEGIN Начало основного блока ПП SHIFR_PLEYFER FOR I:= 1 TO 6 DO for J:= 1 to 6 do WITH ALFAVIT[Ord(INDEX[I, J])] DO begin STROK:= I; строка символа STOLB:= J; столбец символа end; END ; Конец основного блока ПП SHIFR_PLEYFER Производится шифрование строки открытого текста FUNCTION SHIFR_TXT(Str: Stroca; Alfavit: MATR; INDEX: Simvol): Stroca; VAR Объявление переменных SIM1, SIM2: Char; New: STRING; I, Dlina_str, Dlina_new: Byte; I - счетчик цикла BEGIN Начало основного блок а ПФ SHIFR_TXT В открытом тексте вставляет ся спец . знак “-” между одинаковыми символ ами New:= ''; Dlina_str:= Length(Str); FOR I:= 1 TO Dlina_str DO IF (Str[I] = Str[I+1]) THEN New:= (New + Str[I] + '-') ELSE New:= (New + Str[I]); Добавление спец . знака “-” в конец открытого текста в случае нечетного количества симво лов в строке IF Odd(Length(Str)) = TRUE THEN New:= New + '-'; Шифрование открытого текста по матрице алфавита Плэ йфера Str:= ''; Dlina_new:= Length(New)div 2; FOR I:= 1 TO Dlina_new DO begin SIM1:= New[2*I - 1]; SIM2:= New[2*I]; IF (ALFAVIT[Ord(SIM1)].STROK = ALFAVIT[Ord(SIM2)].STROK) THEN Пара символов находятся в одной строке матрицы Str:= Str + INDEX[(ALFAVIT[Ord(SIM1)].STROK), ((ALFAVIT[Ord (SIM1)].STOLB mod 6) + 1)] + INDEX[(ALFAVIT[Ord(SIM2)].STROK), ((ALFAVIT[Ord(SIM2)].STOLB mod 6) + 1)] ELSE IF (ALFAVIT[Ord(SIM1)].STOLB = ALFAVIT[Ord(SIM2)].STOLB) THEN Пара символов находятся в одном столбце матрицы Str:= Str + INDEX[((ALFAVIT[Ord(SIM1)].STROK mod 6) + 1), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[((ALFAVIT[Ord(SIM2)].STROK mod 6) + 1), (ALFAVIT[Ord(SIM2)].STOLB)] ELSE Пара символов находятся в разных строках и столбцах матрицы Str:= Str + INDEX [(ALFAVIT[Ord(SIM2)].STROK), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[(ALFAVIT[Ord(SIM1)].STROK), (ALFAVIT[Ord(SIM2)].STOLB)]; end; SHIFR_TXT:= Str; END ; Конец основно го блок а ПФ SHIFR_TXT Производится расшифрац ия строки FUNCTION DESHIFR_TXT(Str: Stroca; Alfavit: MATR; INDEX: Simvol): Stroca; VAR Объявление переменных SIM1, SIM2: Char; NEW: STRING; I, Dlina_str, Dlina_new: Byte; I - счетчик цикла BEGIN Начало основного блок а ПФ DESHIFR_TXT Дешифрование открытого текста по матрице алфавита Плэйфера New:= ''; Dlina_str:= Length(Str)div 2; FOR I:= 1 TO Dlina_str DO begin SIM1:= Str[2*I - 1]; SIM2:= Str[2*I]; IF (ALFAVIT[Ord(SIM1)].STROK = ALFAVIT[Ord(SIM2)]. STROK) THEN Пара символов находятся в одной строке матрицы New:= New + INDEX[(ALFAVIT[Ord(SIM1)].STROK), (((ALFAVIT[Ord(SIM1)].STOLB + 4) mod 6) + 1)] + INDEX[(ALFAVIT[Ord(SIM2)].STROK), (((ALFAVIT[Ord(SIM2)].STOLB + 4) mod 6) + 1)] ELS E IF (ALFAVIT[Ord(SIM1)].STOLB = ALFAVIT[Ord(SIM2)].STOLB) THEN Пара символов находятся в одном столбце матрицы New:= New + INDEX[(((ALFAVIT[Ord(SIM1)].STROK + 4) mod 6) + 1), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[(((ALFAVIT[Ord(SIM2)].STROK + 4) mod 6) + 1), (ALFAVIT[Ord(SIM2)].STOLB)] ELSE Пара символов находятся в разных строках и столбцах матрицы New:= New + INDEX[(ALFAVIT[Ord(SIM2)].STROK), (ALFAVIT[Ord(SIM1)].STOLB)] + INDEX[(AL FAVIT[Ord(SIM1)].STROK), (ALFAVIT[Ord(SIM2)].STOLB)]; end; В открытом тексте убирается спец . знак “-” Str:= ''; Dlina_new:= Length(New); FOR I:= 1 TO Dlina_new DO IF (New[I] <> '-') THEN Str:= (Str + New[I]); DESHIFR_TXT:= Str; END ; Конец основно го блок а ПФ DESHIFR_TXT Начало осн овного блока программы BEGIN ClrScr; Выбор шифрование или дешифр ование файла WriteLn ('Выбери : (S)ШИФРОВАТЬ или (D)ДЕШИФРОВАТЬ ?'); REPEAT K:= ReadKey; UNTIL (UpCase(K ) = 'S') OR (UpCase(K) = 'D'); Определени е фай ла вв ода $I- REPEAT Write (' Путь к файлу : '); ReadLn (Name1); Assign (Var_file1, Name1); Reset (Var_file1); UNTIL (IOResult = 0); $I+ Определение файла вывода REPEAT Write ('Сохранить как : '); ReadLn (Name2); UNTIL (Length(Name2) <> 0); Assign (Var_file2, Name2); Rewrite(Var_file2); Обращен ие к ПП SHIFR_PLEYFER SHIFR_PLEYFER (ALFAVIT, INDEX); Цикл перебора строк открыто го текста WHILE NOT EOF(Var_file1) DO begin ReadLn (Var_file1, Str); Обраще ние к ПФ SHIFR_TXT либо ПФ DESHIFR_TXT IF UpCase(K) = 'S' THEN Str:= SHIFR_TXT (Str, Alfavit, INDEX) ELSE Str:= DESHIFR_TXT (Str, Alfavit, INDEX); WriteLn (Var_file2, Str); end; Close (Var_file2); Закрытие файла Name2 Close (Var_file1); Закрытие файла Name1 END . Конец основного блока программы Результаты test.txt - исходный отк рытый текст. ШИФР ПЛЭЙФЕРА МАЛ ЬЧИК НА КУХНЕ УКСУС НАШЕЛ. С ЧАЙНОЙ ЧАШКОЙ К ДЕДУ ПРИШЕЛ. ДЕДУШКА , МИЛЕНЬКИЙ , СДЕЛАЙ ГЛОТОК... СТАРЕНЬКИЙ ДЕДУШКА НА ПОЛ ПОТЕК. test.plf - зашифрованный файл (test.txt) РДИЫ,-СТ-И.ХЮВ БЫСВГСТЪБ,ЮБ,ТШ,Ю,Т,ЕТЮКБЧХЧЙС КЮНЮ.ВШЧ-ЪЕЧЭНПЛБ НФЧУФ,ЙХДРСПЮЙ НФЧУДХБСЪБРЦПСКГЪТПЪКЮУЧВС-ЪЬОЛДЛНЮЙЮЙЮЙ КЮЦСХ.КГЪТ-ЪУЧУИЭНЮББЧ,-П-,-ЛДС,ЮЙ test.new - расшифрованный файл (test.plf) ШИФР ПЛЭЙФЕРА МАЛЬЧИК НА КУХНЕ УКСУС НАШЕЛ. С ЧАЙНОЙ ЧАШКОЙ К ДЕДУ ПРИШЕЛ. ДЕДУШКА , МИЛЕНЬКИЙ , СДЕЛАЙ ГЛОТОК... СТАРЕНЬКИЙ ДЕДУ ШКА НА ПОЛ ПОТЕ К. СПИСОК ЛИТЕРАТУРЫ 1. Защита информации в персональных ЭВМ / А.В.Спесивцев , В.А.Вегнер , А.Ю.Крутяков и др . - М .: Радио и связь , МП 'Веста ',1993. 2. 3ащита программного об еспечения : Перевод с английского ./ Под ре дакцией Д.Гроувера . - М .: Мир 1992. 3. Рощин Б.В.Элементы крипто защиты информации : Учебное пособие . - М .: Издател ьство МАИ , 1995. 4. А.В.Петраков . Защита и охрана личности , собственности , информации : Спра вное пособие . - М .: Радио и свя зь , 1997.
© Рефератбанк, 2002 - 2017