- •Создание и проверка криптографической защиты текстовой информации макросами языка vba в среде Word ms Office.
- •Объекты, свойства и методы vba.
- •Типы данных.
- •Встроенные типы данных.
- •Переменные и их объявление.
- •Объявление и присваивание объектных переменных.
- •Использование встроенных функций Visual Basic.
- •Математические функции
- •Строковые функции:
- •2.Логически прерываемые
- •Встроенные диалоговые окна.
- •Диалоговые окна приложения.
- •Порядок выполнения программы Шифрование/Дешифрование текстовых фрагментов документа Word по парольной фразе (симметричный ключ).
- •1.2 Создать код для отображения диалогового окна:
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образовании
“Ижевский государственный технический университет имени М.Т.Калашникова” (ИжГТУ)
С.Н.Селивановский,
В.П. Тарануха ,
О.Я. Шамсиахметов
МЕТОДИЧЕСКое руководство
к лабораторной работе по курсу ” Информатика”
направления 211000 “Конструирование и технология электронных средств” профиля ”Проектирование и технология радиоэлектронных средств”
Лабораторная работа № 2
Создание и проверка криптографической защиты текстовой информации макросами языка vba в среде Word ms Office.
Ижевск 2014
СоставителИ: С.Н.селивановский,доцент
в.п.Тарануха, канд.техн.наук, доцент
шАМСИАХМЕТОВ о.я.
Рецензенты - канд. физ.-мат. наук, доцент Клишин С.В.,
доктор техн. наук, профессор ушаков П.А.
МЕТОДИЧЕСКОЕ РУКОВОДСТВО к лабораторной работе № “ Создание и проверка криптографической защиты текстовой информации макросами языка VBA в среде Word MS Office.”
пО курсу ” ИНФОРМАТИКА” профиля ”Проектирование и технология радиоэлектронных средств”/ сЕЛИВАНОВСКИЙ с.н.,Тарануха В.П.,ШАМСИАХМЕТОВ О.Я.-: Ижевск: Издательство ИжГТУ, 2014.- 76 с.
Настоящие методические указания определяют последовательность выполнения лабораторной работы по дисциплине «ИНФОРМАТИКА» и включают в себя рекомендации ПО СОЗДАНИЮ ПРИКЛАДНЫХ ПРОГРАММ КРИПТОЗАЩИТЫ, АНАЛИЗ СТОЙКОСТИ КРИПТОГРАФИЧЕСКИХ КЛЮЧЕЙ И МЕТОДЫ ПРЕДОТВРАЩЕНИЯ НЕСАНКЦИОННИРОВАННОГО ДОСТУПА К ЦЕННОЙ ИНФОРМАЦИИ.
© СЕЛИВАНОВСКИЙ С.Н.,Тарануха В.П.,шамсиахметов О.Я.
© ИжГТУ, 2014
Краткая теория.
Защита информации паролями.
Утилиты для подбора паролей к различным файлам (программы для восстановления забытых паролей) существуют давно.
Программы по подбору паролей стали поддерживать возможность использования графических процессоров при переборе паролей, что позволило в несколько раз повысить общую скорость перебора паролей.
С точки зрения пользователя, единственный способ обеспечить защиту документа — это установить на него пароль. Это может быть пароль на открытие документа или на совершение различных действий с ним. Однако способы парольной защиты документа могут быть разными.
Самый простой способ заключается в том, чтобы сохранить установленный пользователем пароль в файле документа. В этом случае доступ к документу (или к его редактированию) пользователь получит только при совпадении вводимого пароля с установленным. Однако данный способ парольной защиты легко преодолеть, так как пароль в открытом виде сохраняется в самом документе. Такой пароль можно подсмотреть с помощью любого HEX-редактора. Данный способ парольной защиты применяется, в частности в документах MS Office (Word, Excel).Программно предусмотрено использование пароля защиты документа от записи, который сохраняется в самом документе в чистом виде.
Чтобы исключить возможность несанкционированного просмотра пароля, сохраняемого в самом документе или в файле, чаще применяется защита с помощью хэшфункций (hash) паролей. Хэшфункция получается в результате одностороннего преобразования пароля по специальному алгоритму, при помощи которого для исходного блока данных произвольной длины вычисляется уникальный идентификатор фиксированной длины. Особенность алгоритма хэширования паролей заключается в том, что, зная хэш пароля (результат преобразования), в принципе нельзя вычислить исходный блок данных, то есть сам пароль. Невозможность расшифровки пароля по его хэшфункции (реализации обратного преобразования) и заложена в понятие одностороннего (то есть только в одну сторону) преобразования.
Независимо от длины пароля его хэшфункция имеет фиксированную длину. Алгоритмов одностороннего преобразования (хэширования) пароля существует огромное множество. Возможна самостоятельная разработка такого алгоритма.
Применение хэшей паролей избавляет от необходимости сохранять пароль в защищаемом документе. Там сохраняется лишь хэш пароля, но не сам пароль. Когда пользователю нужно получить доступ к документу, он вводит пароль, а программа вычисляет его хэшфункцию — если она совпадает с хэшфункцией, сохраненной в файле, то пароль считается правильным и доступ к файлу разрешается. Данный способ защиты несложно обойти.
Во-первых, в самом документе с помощью соответствующих утилит можно подменить исходную хэшфункцию на другую, пароль для которой известен. Тогда можно использовать этот пароль для получения доступа к документу.
Во-вторых, при применении данного метода защиты документ остается незашифрованным и текст документа можно извлечь, минуя открытие документа в той программе, в которой он был создан.
В-третьих, можно попытаться подобрать пароль. При этом стойкость защиты зависит от длины хэшфункции. К примеру, если длина хэшфункции составляет 32 бита, то количество возможных хэшфункций равно 232 = 4 294 967 296, что не так уж много. Естественно, что одной и той же хэшфункции может соответствовать несколько паролей, поэтому при такой длине хэша подобрать подходящий пароль несложно, причем совсем необязательно, что найденный пароль будет таким же, какой изначально установлен пользователем.
Еще один тип часто используемой парольной защиты — это симметричное шифрование всего содержимого файла, которое подразумевает применение одного и того же секретного ключа как для шифрования, так и для расшифровки данных. При этом секретный ключ вычисляется на основе пароля.
Алгоритм защиты в данном случае следующий. В каждом зашифрованном документе (файле) сохраняются две контрольные последовательности:
Первая — это произвольная случайная последовательность,
вторая — последовательность, полученная в результате смешивания (хэширования) первой контрольной последовательности и ключа шифрования, вычисляемого на основе пароля.
То есть вторая контрольная последовательность представляет собой хэш первой последовательности на основе ключа шифрования. При проверке пароля определяются ключ шифрования и соответствие друг другу контрольных последовательностей. Таким образом, в самом документе в явном виде не сохраняются ни пароль, ни секретный ключ. Контрольные последовательности, хранимые в документе, можно изъять или даже подменить, но это не позволит определить секретный ключ, а следовательно, расшифровать весь документ.
Алгоритм парольной защиты с шифрованием является достаточно стойким.
В документах MS Word и Excel применяется несколько типов защиты. Так, можно установить пароль на редактирование документов, то есть пользователь сможет открыть документ для чтения, а для внесения в него изменений потребуется ввести пароль. Кроме того, можно реализовать защиту на доступ к документу, когда пароль вводится при его открытии.
В случае защиты документов Word от редактирования применяется сохранение хэшфункций пароля в заголовке самого документа. Длина хэша в этом случае составляет 32 бита (4 байта).
Абсолютно такой же способ парольной защиты с помощью хэшфункций используется при защите документов Excel, когда посредством пароля документ защищается от изменения. Правда, в документах Excel существуют и другие специфические пароли, которые устанавливаются на книгу или на отдельный лист (пароль защиты от видоизменения структуры книги, пароль защиты на редактирование листа). Принцип парольной защиты от редактирования листа примерно такой же, как и от изменений в документе. Отличие лишь в том, что в данном случае длина хэша еще меньше — всего 16 бит (2 байта) — и существует всего 216 = 65 536 различных вариантов хэшей, поэтому подобрать такой пароль не составит особого труда.
Парольная защита с шифрованием применяется для защиты от доступа (открытия) к документам Word и Excel. При установке такой защиты документ шифруется по определенному алгоритму, причем в документе сохраняется уже зашифрованный хэш пароля.
Длина пароля на открытие документов MS Office Word 2003 и Excel 2003 ограничивается 15 символами (для документов MS Office 2003 длину пароля можно сделать неограниченной, но для этого нужно выбрать шифрование с 128-битным ключом).
Рассчитаем, сколько возможных паролей при этом может существовать, учитывая, что в качестве символа можно использовать спецсимволы (30 символов), цифры (10 символов), а также заглавные и строчные буквы как английского (52 символа), так и локализованного алфавита (66 символов). Итого, количество возможных символов — 30 + 10 + 52 + 66 = 158. При максимальной длине пароля в 15 символов получим возможных комбинаций 15815. Число это просто огромно, и с задачей перебора всех возможных паролей за приемлемое время не справится ни один суперкомпьютер.
В документах MS Word 2007/2013 и Excel 2007/2013 длина пароля на открытие документов вообще ничем не ограничивается, то есть пароль может быть любым, а количество возможных паролей бесконечно велико.
Однако в ранних версиях MS Office 2003 и Excel 2003 для шифрования документов использовался алгоритм симметричного шифрования RC4. В данном алгоритме ключ шифрования мог иметь длину до 128 бит, однако экспортные ограничения на криптоалгоритмы не допускали применения секретного ключа такой длины. Поэтому ключ, применяемый при шифровании RC4 в документах MS Office, имел длину только 40 бит, что существенно снижало стойкость этого алгоритма. Реализовать перебор всех возможных секретных ключей можно на обычном ПК за приемлемое время. Действительно, при длине секретного ключа 40 бит количество возможных секретных ключей составляет 240 = 1 099 511 627 776. Перебор всех этих комбинаций на современном ПК займет менее одного месяца.
Впоследствии в пакете MS Office 2003 стали использовать ключ шифрования длиной 128 бит. Соответственно количество возможных секретных ключей составило 2128. С перебором такого количества ключей за приемлемое время (хотя бы за несколько лет) уже не справится ни один, даже самый мощный компьютер. Отметим, что по умолчанию в документах MS Office 2003 применяется 40-битный ключ шифрования и для использования 128-битного ключа необходимо выбрать соответствующий алгоритм шифрования.
В приложениях MS Office 2007/2013 для шифрования применяется алгоритм AES, а не RC4, и алгоритм хэширования SHA-1. В сравнении с предыдущими версиями пакета MS Office в пакетах MS Office 2007/2010 изменился и алгоритм преобразования пароля в ключ шифрования. Если ранее пароль просто хэшировался вместе со случайным набором байтов, уникальных для каждого документа (SHA-1 преобразование), то в пакетах MS Office 2007/2013 для преобразования пароля в ключ нужно выполнить последовательно 50 тысяч SHA-1-преобразований. При открытии документа это незаметно — операция выполняется за доли секунды. Однако когда мы начинаем последовательно перебирать пароли, то скорость перебора катастрофически падает. Поэтому если использовать вычислительную мощность только одного компьютера, то реально можно найти пароль длиной лишь до 4-5 символов, не более.
В MS Office 2007/2013 существенно изменился и алгоритм проверки паролей Read only (открытие в режиме чтения), защиты документа, а также книг и листов Excel. Раньше в документе хранился хэш пароля, состоящий из 2 байт. Соответственно было возможно его реверсирование в первый подходящий пароль. В MS Office 2007/2013 в алгоритме хэширования используются 50 тыс. итераций хэша SHA-1, а следовательно, этот пароль мгновенно найти уже не представляется возможным.
Нужно отметить, что пакет MS Office 2007/2013 позволяет сохранять документы в режиме совместимости с предыдущими версиями пакета. В этом случае для обеспечения совместимости применяются режимы защиты, которые характерны для предыдущих версий пакета.
Сегодня можно найти достаточно много как платных, так и бесплатных программ для подбора паролей к офисным документам. Более того, некоторые компании предлагают даже онлайн-сервис по подбору пароля к документу.
Принцип работы всех программ, позволяющих взламывать пароли, практически одинаковый — различия лишь в деталях. Существуют два базовых алгоритма взлома паролей. Первый заключается в том, чтобы подбирать не сам пароль к документу, а именно секретный ключ и соответственно расшифровывать документ без знания его пароля. Такой тип атаки по ключу называется keyspace attack.
Второй алгоритм — это подбор пароля. Различные утилиты обеспечивают разную скорость перебора пробных паролей, в них могут быть реализованы различные алгоритмы генерации пробных паролей (типы атак).
Традиционно выделяют три типа атак на пароли:
атака по словарю;
атака методом последовательного перебора;
атака по маске.
При атаке по словарю в утилитах используется внешний словарь и для каждого из содержащихся в нем слов последовательно вычисляются хэши, которые затем сравниваются с хэшем пароля. Преимуществом данного метода является его высокая скорость, а недостатком — большая вероятность отсутствия пароля в словаре.
Для увеличения эффективности атаки по словарю в некоторых утилитах предусмотрена возможность производить дополнительные настройки такой атаки. В частности, к словарю можно добавлять сочетания соседних клавиш (типа последовательностей qwert и др.), проверять дважды записанное слово (например, useruser), обратный порядок символов в словах (например, resu), конкатенацию с обратным порядком символов (в частности, userresu), усеченные слова, слова без гласных, транслитерацию букв (типа parol). Кроме того, можно проверять замену локализованной раскладки латинской (слово «пароль» в латинской раскладке будет выглядеть как «gfhjkm») и замену латинской раскладки локализованной (слово «password» в русской раскладке — «зфыыцщкв»). Помимо этого при атаке по словарю возможно подключение нескольких словарей.
Кроме того, в некоторых утилитах может быть реализована так называемая гибридная атака, которую можно рассматривать как вариант атаки по словарю. При подборе пароля методом гибридной атаки к каждому слову или к модификации слова словаря добавляется по нескольку символов из предопределенного набора справа и/или слева. Для каждой получившейся комбинации вычисляется хэш, который сравнивается с хэшем пароля.
При атаке методом последовательного перебора сгенерированные пробные пароли представляют собой случайные комбинации символов (типа 6F7drts78). При данном типе атаки можно задать набор символов, из которых будут составляться пробные пароли, а также задать минимальную и максимальную длину пароля.
Методом последовательного перебора подобрать пароль можно всегда — это лишь вопрос времени, которое может исчисляться годами, столетиями или даже тысячелетиями. Поэтому эффективность такого метода весьма низкая. Естественно, если заранее известен набор символов, используемый для пароля (например, только английские буквы и цифры, или только русские буквы, или только цифры), а также приблизительная длина пароля, то это существенно упрощает задачу его подбора и делает ее вполне решаемой. Если же заранее о пароле ничего не известно, то подобрать его методом последовательного перебора практически невозможно.
Атака по маске представляет собой модифицированную атаку методом последовательного перебора и используется в том случае, если о пароле имеется определенная предварительная информация. Например, если известны некоторые символы пароля, то можно дополнительно указывать, какие символы должны присутствовать в пароле (и их местоположение), то есть настраивать маску пароля.
Утилиты подбора паролей можно условно разбить на два класса: многоцелевые программные пакеты, позволяющие подбирать пароли к различному типу файлов, и специализированные утилиты, которые ориентированы на подбор паролей к файлам, созданным каким-либо одним приложением. Фактически многоцелевые программные пакеты представляют собой сборник отдельных утилит (иногда такие пакеты предусматривают использование единой программной оболочки для доступа к отдельным утилитам).
Среди многоцелевых программных пакетов можно выделить:
Accent Office Password Recovery от компании AccentSoft (www.passwordrecoverytools.com);
Passware Kit от компании Passware (www.lostpassword.com);
Advanced Office Password Recovery от компании ElcomSoft (www.elcomsoft.com, www.passwords.ru);
Они обеспечивают примерно одинаковую производительность при переборе паролей и могут загружать все ядра процессоров, а также задействовать графические процессоры. Данные программы поддерживают одни и те же типы атак и различаются лишь возможностями по их тонкой настройке. Кроме того, эти программы теоретически способны подбирать пароли к документам MS Office всех версий.
Подбирать пароли имеет смысл только в том случае, если документы созданы в MS Office 2003 или более ранних версиях. Подбор паролей для документов MS Office 2007/2013 фактически невозможен, несмотря на возросшие скорости перебора. Действительно, даже на самых производительных рабочих станциях с многоядерными процессорами и несколькими графическими картами скорость перебора составляет всего лишь десятки тысяч паролей в секунду. Даже если известно, что максимальная длина пароля не более семи символов и в нем используются только латинские буквы (большие и маленькие) и не применяются ни цифры, ни специальные символы, то количество возможных комбинаций составит 1 048 229 971 204 штук — на перебор всех этих комбинаций при скорости в 10 000 паролей в секунду потребуется почти три года! Если же о пароле неизвестно ничего, то задачу по его подбору можно смело отнести к разряду нерешаемых.
Пожалуй, единственная уязвимость в защите документов связана с человеческим фактором. В большинстве случаев пароль — это осмысленное слово, а не произвольный набор символов: так его легче запомнить. А в таком случае подобрать его несложно, поскольку все программы взлома предусматривают атаку по словарю.
Кроме того, зачастую о пароле имеется определенная информация, что в некоторых случаях существенно уменьшает количество возможных комбинаций и делает задачу его подбора вполне решаемой.
Если вы хотите надежно защитить документ, не применяйте в качестве пароля слова. При этом вовсе не обязательно, чтобы пароль был трудно запоминаемым набором символов. Достаточно использовать в качестве пароля не одно слово, а фразу, написанную без пробелов. Еще лучше, когда слово или фраза на русском языке пишется на латинской раскладке клавиатуры.
Защита информации криптологическими методами.
Проблемой защиты информации путем ее преобразования занимается криптология (kryptos - тайный, logos - наука). Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих направлений прямо противоположны.
Криптография занимается поиском и исследованием математических методов преобразования информации. Сфера интересов криптоанализа - исследование возможности расшифровывания информации без знания ключей. Криптография дает возможность преобразовать информацию так, что ее прочтение (восстановление) возможно только при знании ключа.
В качестве информации, подлежащей шифрованию и дешифрованию, выступают тексты, построенные на некотором алфавите. Алфавит - конечное множество используемых для кодирования информации знаков. Текст - упорядоченный набор из элементов алфавита.
В качестве примеров алфавитов можно привести следующие:
алфавит Z33 - 33 буквы русского алфавита;
алфавит Z32 - 32 буквы русского алфавита (исключается одна из трех букв - ё, й или ь);
алфавит Z30 - 30 буквы русского алфавита (исключаются все три буквы - ё, й или ь).
Шифрование - преобразование исходного текста (открытый) в шифрованный текст. Дешифрование - процесс обратный шифрованию при котором на основе ключа шифротекст преобразуется в исходный.
Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов. Криптографическая система представляет собой семейство T преобразований открытого текста. Члены этого семейства индексируются, или обозначаются символом k; параметр k является ключом. Пространство ключей K - это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита.
Криптосистемы делятся на симметричные и с открытым ключом.
В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.
В системах с открытым ключом используются два ключа - открытый и закрытый, которые математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения.
Термины распределение ключей и управление ключами относятся к процессам системы обработки информации, содержанием которых является составление и распределение ключей между пользователями.
Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:
количество всех возможных ключей;
среднее время, необходимое для криптоанализа.
Эффективность шифрования с целью защиты информации зависит от сохранения тайны ключа и криптостойкости шифра.
Классификация методов шифрования информации.
Все криптографические системы по типу алгоритма шифрования подразделяются на две большие группы: симметричные и ассиметричные.
В симметричных криптосистемах зашифрование и расшифрование производятся с помощью одного и того же ключа. И соответственно этот ключ необходимо хранить в секрете (отсюда другое название симметричных криптосистем - криптосистемы с секретным ключом ).
В асимметричных криптосистемах существуют два разных ключа - один используется для зашифровывания, который еще называют открытым, другой - для расшифровывания, который называют закрытым. Главное отличие асимметричных криптосистем заключается в том, что даже тот, кто с помощью открытого ключа зашифровал сообщение, не сможет его самостоятельно расшифровать без знания закрытого ключа. Поэтому эти системы называются асимметричными, или системами с открытым ключом.
Гибридными принято называть криптосистемы, сочетающие оба типа криптографических систем, в них, как правило, текст сообщения шифруется с использованием симметричной криптосистемы, а секретный ключ использованной симметричной криптосистемы шифруется с использованием асимметричной криптосистемы.
По типу обработки входящей информационной последовательности криптосистемы делятся на поточные, в которых преобразуется все сообщение сразу, и блочные, в которых сообщение обрабатывается в виде блоков определенной длины.
По типу шифрующего преобразования криптосистемы делятся:
на шифры перестановок;
на шифры замены;
на шифры гаммирования;
на шифры, основанные на аналитических преобразованиях шифруемых данных;
на композиционные шифры.
Шифрование перестановкой заключается в том, что символы шифруемого текста переставляются по определенному правилу в пределах некоторого блока этого текста. При достаточной длине блока, в пределах которого осуществляется перестановка, и сложном неповторяющемся порядке перестановки можно достигнуть приемлемой для простых практических приложений стойкости шифра.
Шифрование заменой (подстановкой) заключается в том, что символы шифруемого текста заменяются символами того же или другого алфавита в соответствии с заранее обусловленной схемой замены.
По сути дела шифры перестановки и замены являются кирпичиками, из которых строятся различные более стойкие шифры.
Идея, лежащая в основе составных, или композиционных шифров, состоит в построении криптостойкой системы путем многократного применения относительно простых криптографических преобразований, в качестве которых К. Шеннон предложил использовать преобразования подстановки (substitution) и транспозиции (permutation). Многократное использование этих преобразований позволяет обеспечить два свойства, которые должны быть присущи стойким шифрам: рассеивание(diffusion) и перемешивание (confusion)
Рассеивание предполагает распространение влияния одного знака открытого текста, а также одного знака ключа на значительное количество знаков шифртекста. Наличие у шифра этого свойства, с одной стороны, позволяет скрывать статистическую зависимость между знаками открытого текста, а с другой - не позволяет восстановить неизвестный ключ по частям. Например, обычная перестановка символов позволяет скрыть частоты появления биграмм, триграмм и пр.
Цель перемешивания - сделать как можно более сложной зависимость между ключом и шифртекстом. Криптоаналитик на основе статистического анализа перемешанного текста не должен получить сколь-нибудь значительного количества информации об использованном ключе. Обычно перемешивание осуществляется при помощи подстановок. Применение рассеивания и перемешивания порознь не обеспечивает необходимую стойкость, стойкая криптосистема получается только в результате их совместного использования.
Шифрование гаммированием заключается в том, что символы шифруемого текста складываются с символами некоторой случайной последовательности, именуемой гаммой шифра. Стойкость шифрования определяется в основном длиной (периодом) неповторяющейся части гаммы шифра. Поскольку с помощью ЭВМ можно генерировать практически бесконечную гамму шифра, то этот способ является одним из основных для шифрования в автоматизированных системах.
Шифрование аналитическим преобразованием заключается в том, что шифруемый текст преобразуется по некоторому аналитическому правилу (формуле).
Например, можно использовать правило умножения вектора на матрицу, причем умножаемая матрица является ключом шифрования (поэтому ее размер и содержание должны храниться в секрете), а символами умножаемого вектора последовательно служат символы шифруемого текста. Другим примером может служить использование так называемых однонаправленных функций для построения криптосистем с открытым ключом.
При шифровании перестановкой символы шифруемого текста переставляются по определенному правилу в пределах блока этого текста. Шифры перестановки являются самыми простыми и, вероятно, самыми древними шифрами.
Одним из первых шифров простой замены считается так называемый полибианский квадрат. За два века до нашей эры греческий писатель и историк Полибий изобрел шифровальную таблицу, представляющую собой квадрат с пятью столбцами и пятью строками. В каждую клетку такого квадрата записывалась одна буква открытого алфавита.
Для получения шифрованного текста можно воспользоваться 2 способами.
1-й способ заключается в последовательной замене каждой буквы открытого текста на пару (биграмму) чисел, соответствующих номерам строки и столбца этой буквы в шифровальной таблице с алфавитом.
2-й способ заключается в последовательной замене каждой буквы открытого текста на букву шифртекста, расположенную ниже ее в том же столбце квадрата. Если буква текста оказывалась в нижней строке таблицы, то для шифртекста брали самую верхнюю букву из того же столбца.
Рассмотрим пример использования шифра Полибия и зашифруем слово УСИЛИТЕЛЬ выше рассмотренными способами (таблицы 1 и 2).
1 способ |
||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
2 |
И |
Й |
К |
Л |
М |
Н |
О |
П |
3 |
Р |
С |
Т |
У |
Ф |
Х |
Ц |
Ч |
4 |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
34 32 21 24 21 33 16 24 45 |
||||||||
Таблица
1. Кодирование слова УСИЛИТЕЛЬ шифром
Полибия 1-м способом
2 способ |
|||||||
А |
Б |
В |
Г |
Д |
Е |
Ж |
З |
И |
Й |
К |
Л |
М |
Н |
О |
П |
Р |
С |
Т |
У |
Ф |
Х |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
Ы Щ Р У Р Ъ Н Д |
|||||||
Таблица
2. Кодирование слова УСИЛИТЕЛЬ шифром
Полибия 2-м способом
Шифр Цезаря является частным случаем шифра простой замены (одноалфавитной подстановки). Свое название этот шифр получил по имени римского императора Гая Юлия Цезаря, который использовал этот шифр при переписке с Цицероном (около 50 г. до н.э.).
В шифре Цезаря каждая буква исходного сообщения сдвигается в алфавите на фиксированное число позиций (К) вперед, при необходимости переходя циклически на начало алфавита. Цезарь использовал шифр замены при К = 3.
Достоинством системы шифрования Цезаря является простота шифрования и расшифрования. К недостаткам системы Цезаря следует отнести следующие:
подстановки, выполняемые в соответствии с системой Цезаря, не маскируют частот появления различных букв исходного текста;
сохраняется алфавитный порядок в последовательности заменяющих букв; при изменении значения К изменяются только начальные позиции такой последовательности;
число возможных ключей К мало;
шифр Цезаря легко вскрывается на основе анализа частот появления букв в шифртексте.
Шифр простой замены Атбаш, использованный для еврейского алфавита и получивший оттуда свое название. Шифрование происходит заменой первой буквы алфавита на последнюю, второй на предпоследнюю и т.д.
В 1508 г. аббат из Германии Иоганн Трисемус написал печатную работу по криптологии под названием "Полиграфия". В этой книге он впервые систематически описал применение шифрующих таблиц, заполненных алфавитом в случайном порядке.
Для получения такого шифра замены обычно использовались таблица для записи букв алфавита и ключевое слово (или фраза). В таблицу сначала вписывалось по строкам ключевое слово, причем повторяющиеся буквы отбрасывались. Затем эта таблица дополнялась не вошедшими в нее буквами алфавита по порядку.
Поскольку ключевое слово или фразу легко хранить в памяти, то такой подход упрощал процессы шифрования и расшифрования.
Такие табличные шифры называются монограммными, так как шифрование выполняется по одной букве. Трисемус первым заметил, что шифрующие таблицы позволяют шифровать сразу по две буквы. Такие шифры называются биграммными.
Шифр Плейфейра, изобретенный в 1854 г., является наиболее известным биграммным шифром замены. Он применялся Великобританией во время Первой мировой войны. Основой шифра Плейфейра является шифрующая таблица со случайно расположенными буквами алфавита исходных сообщений.
Для удобства запоминания шифрующей таблицы отправителем и получателем сообщений можно использовать ключевое слово (или фразу) при заполнении начальных строк таблицы. В целом структура шифрующей таблицы системы Плейфейра полностью аналогична структуре шифрующей таблицы Трисемуса.
Алгоритм шифрования включает следующие шаги:
1. Составить алфавитную таблицу.
2. Разбить открытый текст исходного сообщения на пары букв (биграммы).
3. Мысленно построить прямоугольник таким образом, чтобы 2 буквы лежали в противоположных углах, тогда две другие буквы прямоугольника дадут две буквы шифротекста.
Последовательность букв в биграмме шифртекста должна быть зеркально расположенной по отношению к последовательности букв в биграмме открытого текста).
Зашифруем текст на примере использование шифра Плейфера :
ВСЕ ТАЙНОЕ СТАНЕТ ЯВНЫМ.
Алгоритм шифрования:
разбить текст на биграммы: ВС ЕТ АЙ НО ЕС ТА НЕ ТЯ ВН ЫМ
составить шифровальную таблицу (таблица 3):
Б |
А |
Н |
Д |
Е |
Р |
О |
Л |
Ь |
В |
Г |
З |
Ж |
И |
Й |
К |
М |
П |
С |
Т |
У |
Ф |
Х |
Ц |
Ч |
Ш |
Щ |
Ы |
Ъ |
Э |
Ю |
Я |
Таблица
3. Шифр Плейфера.
найти в таблице две буквы открытого текста;
достроить прямоугольник, включающий эти две буквы и определить пару зашифрованных букв.
Полученное шифрованное сообщение имеет вид:
ГП ДУ ОВ ДЛ НУ ПД ДР ЦЫ ГА ЧТ
При расшифровывании применяется обратный порядок действий.
Следует отметить, что шифрование биграммами резко повышает стойкость шифров к вскрытию. Хотя книга И.Трисемуса "Полиграфия" была относительно доступной, описанные в ней идеи получили признание лишь спустя три столетия. По всей вероятности это было обусловлено плохой осведомленностью криптографов о работах богослова и библиофила Трисемуса в области криптографии.
Шифр перестановки "скитала"-известно, что в V веке до нашей эры правители Спарты, наиболее воинственного из греческих государств, имели хорошо отработанную систему секретной военной связи и шифровали свои послания с помощью скитала, первого простейшего криптографического устройства, реализующего метод простой перестановки.
Шифрование выполнялось следующим образом. На стержень цилиндрической формы, который назывался скитала, наматывали спиралью (виток к витку) полоску пергамента и писали на ней вдоль стержня несколько строк текста сообщения (рис.1.). Затем снимали со стержня полоску пергамента с написанным текстом. Буквы на этой полоске оказывались расположенными хаотично. Такой же результат можно получить, если буквы сообщения писать по кольцу не подряд, а через определенное число позиций до тех пор, пока не будет исчерпан весь текст.
Рис.1.Шифр "скитала"
Сообщение “НАСТУПАЙТЕ” при размещении его по окружности стержня по три буквы дает шифртекст
НУТАПЕСАТЙ
Для расшифрования такого шифртекста нужно не только знать правило шифрования, но и обладать ключом в виде стержня определенного диаметра. Зная только вид шифра, но не имея ключа, расшифровать сообщение было непросто. Шифр скитала многократно совершенствовался в последующие времена.
Шифрующие таблицы:
С начала эпохи Возрождения (конец XIV столетия) начала возрождаться и криптография. Наряду с традиционными применениями криптографии в политике, дипломатии и военном деле появляются и другие задачи - защита интеллектуальной собственности от преследований инквизиции или заимствований злоумышленников. В разработанных шифрах перестановки того времени применяются шифрующие таблицы, которые в сущности задают правила перестановки букв в сообщении.
В качестве ключа в шифрующих таблицах используются:
• размер таблицы;
• слово или фраза, задающие перестановку;
• особенности структуры таблицы.
Одним из самых примитивных табличных шифров перестановки является простая перестановка, для которой ключом служит размер таблицы. Этот метод шифрования сходен с шифром скитала. Например, сообщение
ТЕРМИНАТОР ПРИБЫВАЕТ СЕДЬМОГО В ПОЛНОЧЬ
записывается в таблицу поочередно по столбцам. Результат заполнения таблицы из 5 строк и 7 столбцов показан на рис. 2.
После заполнения таблицы текстом сообщения по столбцам для формирования шифртекста считывают содержимое таблицы по строкам.
Т |
Н |
П |
В |
Е |
Г |
Л |
Е |
А |
Р |
А |
Д |
О |
Н |
Р |
Т |
И |
Е |
Ь |
В |
О |
М |
О |
Б |
Т |
М |
П |
Ч |
И |
Р |
Ы |
С |
О |
О |
Ь |
Рис.2.Заполнение таблицы из 5 строк и 7 столбцов
Если шифртекст записывать группами по пять букв, получим такое шифрованное сообщение:
ТНПВЕ ГЛЕАР АДОНР ТИЕЬВ ОМОБТ МПЧИР ЫСООЬ
При этом отправитель и получатель сообщения должны заранее условиться об общем ключе в виде размера таблицы. Следует заметить, что объединение букв шифртекста в 5-буквенные группы не входит в ключ шифра и осуществляется для удобства записи несмыслового текста. При расшифровании действия выполняют в обратном порядке.
Одиночная перестановка по ключу:
Несколько большей стойкостью к раскрытию обладает метод шифрования одиночной перестановкой по ключу. Этот метод отличается от предыдущего тем, что столбцы таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы.
Применим в качестве ключа, например, слово
ПЕЛИКАН,
Рис.3.Таблицы, заполненные ключевым словом и текстом сообщения
а текст сообщения возьмем из предыдущего примера. На рис.3 показаны две таблицы, заполненные текстом сообщения и ключевым словом, при этом левая таблица соответствует заполнению до перестановки, а правая таблица - заполнению после перестановки.
В верхней строке левой таблицы записан ключ, а номера под буквами ключа определены в соответствии с естественным порядком соответствующих букв ключа в алфавите. Если бы в ключе встретились одинаковые буквы, они бы были понумерованы слева направо. В правой таблице столбцы переставлены в соответствии с упорядоченными номерами букв ключа.
При считывании содержимого правой таблицы по строкам и записи шифртекста группами по пять букв получим шифрованное сообщение:
ГНВЕП ЛТООА ДРНЕВ ТЕЬИО РПОТМ БЧМОР СОЫЬИ
Шифрования двойной перестановкой:
Для обеспечения дополнительной скрытности можно повторно зашифровать сообщение, которое уже прошло шифрование. В случае двойной перестановки столбцов и строк таблицы перестановки определяются отдельно для столбцов и отдельно для строк. Сначала в таблицу записывается текст сообщения, а потом поочередно переставляются столбцы, а затем строки. При расшифровании порядок перестановок должен быть обратным.
Пример выполнения шифрования методом двойной перестановки показан на рис. 4. Если считывать шифртекст из правой таблицы построчно блоками по четыре буквы, то получится следующее:
ТЮАЕ ООГМ РЛИП ОЬСВ
Ключом к шифру двойной перестановки служит последовательность номеров столбцов и номеров строк исходной таблицы (в нашем примере последовательности 4132 и 3142 соответственно).
Рис. 4. Пример выполнения шифрования методом двойной перестановки
Число вариантов двойной перестановки быстро возрастает при увеличении размера таблицы:
• для таблицы 3х3 36 вариантов;
• для таблицы 4х4 576 вариантов;
• для таблицы 5х5 14400 вариантов.
Однако двойная перестановка не отличается высокой стойкостью и сравнительно просто "взламывается" при любом размере таблицы шифрования.
5. Магические квадраты:
В средние века для шифрования перестановкой применялись и магические квадраты.
Магическими квадратами называют квадратные таблицы с вписанными в их клетки последовательными натуральными числами, начиная от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число.
Шифруемый текст вписывали в магические квадраты в соответствии с нумерацией их клеток. Если затем выписать содержимое такой таблицы по строкам, то получится шифртекст, сформированный благодаря перестановке букв исходного сообщения. В те времена считалось, что созданные с помощью магических квадратов шифртексты охраняет не только ключ, но и магическая сила.
Пример магического квадрата и его заполнения сообщением
ПРИЛЕТАЮ ВОСЬМОГО
показан на рис. 5.
Рис. 5. Пример магического квадрата 4х4 и его заполнения сообщением
ПРИЛЕТАЮ ВОСЬМОГО
Шифртекст, получаемый при считывании содержимого правой таблицы по строкам, имеет вполне загадочный вид:
ОИРМ ЕОСЮ ВТАЬ ЛГОП
Число магических квадратов быстро возрастает с увеличением размера квадрата. Существует только один магический квадрат размером 3х3 (если не учитывать его повороты). Количество магических квадратов 4х4 составляет уже 880, а количество магических квадратов 5х5 - около 250000.
Система омофонов (частотный анализ) обеспечивает простейшую защиту от криптоаналитических атак, основанных на подсчете частот появления букв в шифртексте. Система омофонов является одноалфавитной, хотя при этом буквы исходного сообщения имеют несколько замен. Число замен берется пропорциональным вероятности появления буквы в открытом тексте.
Например, русская буква Е встречается в 36 раз чаще, чем буква Ф.
При шифровании букву исходного сообщения заменяют на другую букву, выбранную из алфавита случайным образом. Если омофоны (замены) присваиваются случайным образом различным появлениям одной и той же буквы, тогда каждый омофон появляется в шифртексте равновероятно.
Для усложнения шифров простой замены можно использовать шифр гаммирования.
Шифры сложной замены называют многоалфавитными, так как для шифрования каждого символа исходного сообщения применяют свой шифр простой замены.
Многоалфавитная подстановка последовательно и циклически меняет используемые алфавиты.
Многоалфавитные шифры замены предложил и ввел в практику криптографии Леон Батист Альберти, который также был известным архитектором и теоретиком искусства. Его книга "Трактат о шифре", написанная в 1566 г., представляла собой первый в Европе научный труд по криптологии. Кроме шифра многоалфавитной замены, Альберти также подробно описал устройства из вращающихся колес для его реализации. Криптологи всего мира почитают Л.Альберти основоположником криптологии.
Эффект использования многоалфавитной подстановки заключается в том, что обеспечивается маскировка естественной статистики исходного языка, так как конкретный символ из исходного алфавита А может быть преобразован в несколько различных символов шифровальных алфавитов bj. Степень обеспечиваемой защиты теоретически пропорциональна длине периода г в последовательности используемых алфавитов bj.
В 1854 г. англичанин Чарльз Уитстон разработал новый метод шифрования биграммами, который называют "двойным квадратом". Свое название этот шифр получил по аналогии с полибианским квадратом. Шифр Уитстона открыл новый этап в истории развития криптографии. В отличие от полибианского шифр "двойной квадрат" использует сразу две таблицы, размещенные по одной горизонтали, а шифрование идет биграммами, как в шифре Плейфейра. Эти не столь сложные модификации привели к появлению на свет качественно новой криптографической системы ручного шифрования. Шифр "двойной квадрат" оказался очень надежным и удобным и применялся Германией даже в годы Второй мировой войны.
Данный шифр состоит в модификации шифра Цезаря с использованием числового ключа. Процедура шифрования начинается с того, что под буквами открытого текста записывают цифры числового ключа. В случае, если ключ короче сообщения, то его запись циклически повторяют. Шифротекст получают примерно также, как в шифре Цезаря, но сдвиг букв осуществляют не три позиции вправо по алфавиту (как в шифре Цезаря), а на то количество, которое указано в цифре ключа.
Основы языка Visual Basic For Applications.
Visual Basic For Applications – это сочетание одного из самых простых языков программирования. С помощью VBA вы сможете легко и быстро создавать разнообразные приложения, даже не являясь специалистом в области программирования. VBA содержит графическую среду, позволяющую наглядно конструировать экранные формы и управляющие элементы.
