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

Автор работы: Пользователь скрыл имя, 03 Мая 2012 в 19:21, курсовая работа

Краткое описание

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

Содержание

ЗАЩИТА ИНФОРМАЦИИ В ПЭВМ 3
КРИПТОГРАФИЧЕСКИЕ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ 4
Модель одноключевой криптосистемы для передачи сообщений 5
Шифр простой подстановки. 6
Шифр перестановки (транспозиции) с фиксированным d (блок d -группа символов). 6
Шифр Вижинера 6
Шифрование с помощью датчика случайных чисел (ПСЧ) 7
ШИФР ПЛЭЙФЕРА 8
БЛОК СХЕМЫ 8
ПП SHIFR_PLEYFER 8
ПФ SHIFR_TXT 9
ПФ DESHIFR_TXT 11
ОСНОВНАЯ ПРОГРАММА 13
ПРОГРАММА 14
РЕЗУЛЬТАТЫ 18
СПИСОК ЛИТЕРАТУРЫ 19

Прикрепленные файлы: 1 файл

курсовая информатика.doc

— 555.00 Кб (Скачать документ)

{Производится расшифрация строки <Str>}

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)]

            ELSE

                  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[(ALFAVIT[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.

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