Расшифровка текста методом символьных замен

Автор работы: Пользователь скрыл имя, 18 Декабря 2011 в 10:10, лабораторная работа

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

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

Содержимое работы - 1 файл

Министерство образования РФ_В2.docx

— 46.39 Кб (Скачать файл)

Министерство образования РФ

Институт  Технологии и Бизнеса 
 

      Кафедра ПО ВТ и АС

Технологический факультет 
 

Отчет по лабораторной работе

по дисциплине «Методы защиты информации»

«Расшифровка  текста методом символьных замен» 
 
 
 
 

      Выполнил: студент гр. ПО-4

      ***

                                         Проверил: *** 
 
 
 
 
 
 
 
 
 

Находка 2011 

Тема: расшифровка фразы (из античной философии) с помощью замены символьных знаков зашифрованного текста на буквенные знаки ключевого (русского) алфавита по известным ключевым словам («философии», «большой»), используя прикладной пакет «Математика».

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

Порядок работы:

Зашифрованный текст:

{[?>[;1[{[}@<+&{>)+[$]@%&}@+|)>@$%|@(@4$]);@>&|8][%[)<>[})+@2)|[<[2))[>]=^8]&!$|!&><!>@+[:1*#[|87[:]&<[[#}@(][<>8=>1>5>[>[&<>8[5&]8%|1#[+[&4[>!;[*&>#0>8]&<[$<&;>[5>[4[>&|)$)^&>8$%&}@+|)>&<+&{>)+)${}[5&;[>@#<[|=>)<>@%&}@+|)>@^[>&4&%[15&])+[$+[>[}0&1*&$<&}8&(^&|@|))(]&%[)}}@3)[]@|8]0&$0$[^0;[*][<+@(@>8}1+[:{[^@>8>@+[$]@{});&}+}@>)|+[>[}0:)($<&[#6&:>&+15&<>)^&|@|#&(1<|[$][@%][<>)5&<+)&$0$[^0}&|!>)$)<><+[&15&])&+}@>)|@#0|[]@<>[|8+[$]17)>&|8][)}@<{[<>}@]&][5>[(@4$@>)|[^@*&;[|[^[%[{|@>[]@

     Известно, что в данном тексте содержится слово  «философии», в этом слове 9 букв, поэтому полученный список надо разбить на подсписки “кандидатов на это слово”, причем кандидатами могут быть и пересекающиеся блоки, т.е. разбиваем с 1 по 9, со 2 по 10 и т.д.

С помощью команды:

 

разбиваем текст  на слова по 9 букв в каждом.

       В слове «философии» 1 буква равна 7, 2 = 8 и 9, 4 = 6, следовательно, с помощью соответствующей команды:

 

в находим шаблон слова соответствующий условию, и получаем: 

     По  полученному шаблону можно сделать  подстановку: 

     Получаем  текст: 
 
 
 
 
 
 
 

     Известно, что в данном тексте содержится слово  «большой», в этом слове 7 букв, поэтому полученный список надо разбить на подсписки “кандидатов на это слово”, причем кандидатами могут быть и пересекающиеся блоки, т.е. разбиваем с 1 по 7, со 2 по 8 и т.д.

     С помощью команды:

 

разбиваем текст  на слова по 7 букв в каждом.

       В слове «большой» 2 буква равна 6, так как ранее была найдена буква “л” и “о” из слова «философии», следует, что с помощью соответствующей команды:

в находим шаблон слова соответствующий условию, и получаем: 
 

     Так как в последнем найденном  слове после “л” идет “о”, то оно не относится к слову «большой», а в двух первых после “л” идет “8”, значит, подставляем на его место “ь”.

     Возьмем первое слово и сделаем подстановку:

 

     Получаем  текст:

{о?>о;1о{о}@c+&{>и+о$]@%&}@+ли>@$%л@(@4$]и;@>&ль]о%оиc>о}и+@филоcофиио>]=^ь]&!$л!&>c!>@+ой1*большой]&cооб}@(]оc>ь=>1>5>о>о&c>ьо5&]ь%л1бо+о&4о>!;о*&>б0>ь]&cо$c&;>о5>о4о>&ли$и^&>ь$%&}@+ли>&c+&{>и+и${}о5&;о>@бcол=>иc>@%&}@+ли>@^о>&4&%о15&]и+о$+о>о}0&1*&$c&}ь&(^&л@лии(]&%ои}}@3ио]@ль]0&$0$о^0;о*]оc+@(@>ь}1+ой{о^@>ь>@+о$]@{}и;&}+}@>ил+о>о}0йи($c&об6&й>&+15&c>и^&л@лб&(1cло$]о@%]оc>и5&c+и&$0$о^0}&л!>и$иc>c+о&15&]и&+}@>ил@б0ло]@c>оль+о$]1ши>&ль]ои}@c{оc>}@]&]о5>о(@4$@>ило^@*&;оло^о%о{л@>о]@

     В этом тексте видим отрывок: cло$]о. Можно сделать вывод, что это слово «словно», делаем подстановку: 

     Получаем  текст:

{о?>о;1о{о}@c+&{>и+овн@%&}@+ли>@в%л@(@4вни;@>&льно%оиc>о}и+@филоcофиио>н=^ьн&!вл!&>c!>@+ой1*большойн&cооб}@(ноc>ь=>1>5>о>о&c>ьо5&нь%л1бо+о&4о>!;о*&>б0>ьн&cовc&;>о5>о4о>&ливи^&>ьв%&}@+ли>&c+&{>и+ив{}о5&;о>@бcол=>иc>@%&}@+ли>@^о>&4&%о15&ни+ов+о>о}0&1*&вc&}ь&(^&л@лии(н&%ои}}@3ион@льн0&в0во^0;о*ноc+@(@>ь}1+ой{о^@>ь>@+овн@{}и;&}+}@>ил+о>о}0йи(вc&об6&й>&+15&c>и^&л@лб&(1cловно@%ноc>и5&c+и&в0во^0}&л!>ивиc>c+о&15&ни&+}@>ил@б0лон@c>оль+овн1ши>&льнои}@c{оc>}@н&но5>о(@4в@>ило^@*&;оло^о%о{л@>он@

     В этом тексте видим отрывок: вни;@>&льно. Можно сделать вывод, что это слово «внимательно», делаем подстановку: 
 

     Получаем  текст:

{о?том1о{о}аc+е{ти+овна%е}а+литав%ла(а4внимательно%оиcто}и+афилоcофииотн=^ьне!вл!етc!та+ой1*большойнеcооб}а(ноcть=т1т5тотоеcтьо5ень%л1бо+ое4от!мо*етб0тьнеcовcемто5то4отеливи^етьв%е}а+литеc+е{ти+ив{}о5емотабcол=тиcта%е}а+лита^оте4е%о15ени+ов+ото}0е1*евcе}ье(^елалии(не%ои}}а3иональн0ев0во^0мо*ноc+а(ать}1+ой{о^атьта+овна{}име}+}атил+ото}0йи(вcеоб6ейте+15еcти^елалбе(1cловноа%ноcти5еc+иев0во^0}ел!тивиcтc+ое15ение+}атилаб0лонаcтоль+овн1шительнои}аc{оcт}анено5то(а4ватило^а*емоло^о%о{латона

     В этом тексте видим отрывок: бе(1cловно. Можно сделать вывод, что это слово «безусловно», делаем подстановку: 

 

     Получаем  текст:

{о?томуо{о}аc+е{ти+овна%е}а+литав%лаза4внимательно%оиcто}и+афилоcофииотн=^ьне!вл!етc!та+ойу*большойнеcооб}азноcть=тут5тотоеcтьо5ень%лубо+ое4от!мо*етб0тьнеcовcемто5то4отеливи^етьв%е}а+литеc+е{ти+ив{}о5емотабcол=тиcта%е}а+лита^оте4е%оу5ени+ов+ото}0еу*евcе}ьез^елалиизне%ои}}а3иональн0ев0во^0мо*ноc+азать}у+ой{о^атьта+овна{}име}+}атил+ото}0йизвcеоб6ейте+у5еcти^елалбезуcловноа%ноcти5еc+иев0во^0}ел!тивиcтc+оеу5ение+}атилаб0лонаcтоль+овнушительнои}аc{оcт}анено5тоза4ватило^а*емоло^о%о{латона

     В этом тексте видим отрывок: {о?тому. Можно сделать вывод, что это слово «поэтому», делаем подстановку: 
 

     Получаем  текст:

поэтомуопо}аc+епти+овна%е}а+литав%лаза4внимательно%оиcто}и+афилоcофииотн=^ьне!вл!етc!та+ойу*большойнеcооб}азноcть=тут5тотоеcтьо5ень%лубо+ое4от!мо*етб0тьнеcовcемто5то4отеливи^етьв%е}а+литеc+епти+ивп}о5емотабcол=тиcта%е}а+лита^оте4е%оу5ени+ов+ото}0еу*евcе}ьез^елалиизне%ои}}а3иональн0ев0во^0мо*ноc+азать}у+ойпо^атьта+овнап}име}+}атил+ото}0йизвcеоб6ейте+у5еcти^елалбезуcловноа%ноcти5еc+иев0во^0}ел!тивиcтc+оеу5ение+}атилаб0лонаcтоль+овнушительнои}аcпоcт}анено5тоза4ватило^а*емоло^о%оплатона

     В этом тексте видим отрывок: у5ени+ов. Можно сделать вывод, что это слово «учеников», делаем подстановку: 
 

     Получаем  текст:

поэтомуопо}аcкептиковна%е}аклитав%лаза4внимательно%оиcто}икафилоcофииотн=^ьне!вл!етc!такойу*большойнеcооб}азноcть=тутчтотоеcтьочень%лубокое4от!мо*етб0тьнеcовcемточто4отеливи^етьв%е}аклитеcкептикивп}очемотабcол=тиcта%е}аклита^оте4е%оучениковкото}0еу*евcе}ьез^елалиизне%ои}}а3иональн0ев0во^0мо*ноcказать}укойпо^атьтаковнап}име}к}атилкото}0йизвcеоб6ейтекучеcти^елалбезуcловноа%ноcтичеcкиев0во^0}ел!тивиcтcкоеучениек}атилаб0лонаcтольковнушительнои}аcпоcт}аненочтоза4ватило^а*емоло^о%оплатона

     В этом тексте видим отрывок: и}}а3иональн0е. Можно сделать вывод, что это слово «иррациональные», делаем подстановку: 
 
 

     Получаем  текст:

поэтомуопораcкептиковна%ераклитав%лаза4внимательно%\оиcторикафилоcофииотн=^ьне!вл!етc!такойу*большойнеcообразноcть=тутчтотоеcтьочень%лубокое4от!мо*етбытьнеcовcемточто4отеливи^етьв%ераклитеcкептикивпрочемотабcол=тиcта%ераклита^оте4е%оучениковкоторыеу*евcерьез^елалиизне%оиррациональныевыво^ымо*ноcказатьрукойпо^атьтаковнапримеркратилкоторыйизвcеоб6ейтекучеcти^елалбезуcловноа%ноcтичеcкиевыво^ырел!\тивиcтcкоеучениекратилабылонаcтольковнушительноираcпоcтраненочтоза4ватило^а*емоло^о%оплатона

     В этом тексте видим отрывоки: %ераклита, отн=^ь, !вл!етc!, у*, за4ватило, вcеоб6ей. Можно сделать вывод, что это слова: «гераклита», «отнюдь», «является», «уж», «захватило», «всеобщей», делаем подстановку: 
 
 

     Получаем  текст:

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

Расставляя  пробелы и знаки  препинания, получаем окончательный текст:

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

 

Текст (код) программы:

Public Class Form1 ' класс Form1

    Dim slovo As String, texxt As String, sl As String  

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

'Private Sub Button1_Click - процедура нажатия кнопки Button1 (поиск шаблона ключевого слова)

        Dim slovo1 As String, slovo2 As String

        Dim dl As Byte, dl1 As Integer, k As Byte

        slovo = TextBox1.Text 'присваиваем переменной slovo значение текстовой строки TextBox1

        dl = Len(slovo) 'переменной dl присваиваем значение длины строковой переменной slovo

        Dim shablon(2, dl) As String 'объявляем строковый массив размером 2 строки и dl столбцов

      '-----------------------------------

        'Шаблон слова, по которому будем искать

        '-----------------------------------

        For i = 1 To dl

            shablon(1, i) = Mid(slovo, i, 1) ' функция Mid(slovo, i, j) возвращает подстроку строковой переменной slovo с позиции i длиной j; массиву shablon: на первой строке присваиваем все символы строки от 1 до dl

            shablon(2, i) = "0" 'второй строке присваиваем “0”.

        Next

        k = 0

        For i = 1 To dl

            If shablon(2, i) = "0" Then k = k + 1 : shablon(2, i) = Str(k) 'Если на второй строке текущей позиции столбца i массив shablon(2, i)=0, то увеличиваем k на 1 и присваиваем shablon(2, i) = Str(k) (функция Str(k) преобразует значение числовой переменной k в символьное значение)

            For j = i + 1 To dl

                If (shablon(1, i) = shablon(1, j)) And (shablon(2, j) = "0") Then shablon(2, j) = Str(k) 'Если текущий символ на первой строке массива shablon(1, i) равен последующему символу в этом массиве shablon(1, j) и на второй строке этого массива shablon(2, j) = "0" , то shablon(2, j) присваиваем значение переменной k

            Next

        Next

        slovo1 = ""

        For i = 1 To dl

            slovo1 = slovo1 + Trim(shablon(2, i)) 'Строковой переменной slovo1 добавляем справа значение массива 2-ой строки столбцов i Trim(shablon(2, i)) (функция Trim(a) удаляет начальные и конечные пробелы).

        Next

        '-----------------------------------

Информация о работе Расшифровка текста методом символьных замен