Вход

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

Реферат* по программированию
Дата добавления: 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 - 2024