Криптография. 6

Реферат на тему «Криптография» 
 

 
 

Оглавление. 

Глава 1. Криптография и шифрование. 2

§ 1.  Что такое шифрование. 2

§ 2. Основные понятия и определения криптографии. 3

Глава 2. Алгоритмы шифрования. 4

§ 1. Алгоритмы замены (подстановки) . 4

§ 2. Алгоритм перестановки. 6

§ 3. Алгоритмы, основанные на сложных математических            преобразованиях. 7

Глава 3. Программные шифраторы. 9

§ 1. РGР. 9

§  2. BestCryрt. 10

§  3. Плюсы и минусы программных шифраторов 12

Глава 4. Аппаратные шифраторы. 13

§ 1. Что такое аппаратный шифратор. 13

§ 2. Структура шифраторов. 14

Предметный указатель. 16 
 
 
 
 

 

Глава 1. Криптография и шифрование.

§ 1.  Что такое  шифрование. 

     Ш

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

   Шифрование используется человечеством с того самого момента, как появилась первая секретная информация, т. е. такая, доступ к которой должен быть ограничен.

       Идея шифрования состоит в  предотвращении просмотра истинного  содержания сообщения(текста, файла  и т.п.) теми , у кого нет средств  его дешифрования. А прочесть  файл сможет лишь тот, кто  сможет его дешифровать.

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

   Один из самых известных методов шифрования носит имя Цезаря, который если и не сам его изобрел, то активно им пользовался. Не доверяя своим посыльным, он шифровал письма элементарной заменой А на D, В на Е и так далее по всему латинскому алфавиту. При таком кодировании комбинация XYZ была бы записана как АВС, а слово «ключ» превратилось бы в неудобоваримое «нобъ»(прямой код N+3).

   Спустя 500 лет шифрование стало повсеместно использоваться при оставлении текстов религиозного содержания, молитв и важных государственных документов.

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

  Большинство из нас постоянно используют шифрование, хотя и не всегда знают об этом. Если у вас установлена операционная система Microsoft, то знайте, что Windows хранит о вас (как минимум) следующую секретную информацию:

  • пароли для доступа к сетевым ресурсам (домен, принтер, компьютеры в сети и т.п.);
  • пароли для доступа в Интернет с помощью DialUр;
  • кэш паролей (в браузере есть такая функция — кэшировать пароли, и Windows              сохраняет все когда-либо вводимые вами в Интернете пароли);
  •      сертификаты для доступа к сетевым ресурсам и зашифрованным данным на самом компьютере.
 

  Эти данные хранятся либо в рwl-файле (в Windows 95), либо в SAM-файле (в Windows NT/2000/XР). Это файл Реестра Windows, и потому операционная система никому не даст к нему доступа даже на чтение. Злоумышленник может скопировать такие файлы, только загрузившись в другую ОС или с дискеты. Утилит для их взлома достаточно много, самые современные из них способны подобрать ключ за несколько часов.  

§ 2. Основные понятия и определения криптографии. 

     И

так, криптография дает возможность преобразовать информацию таким образом, что ее прочтение(восстановление) возможно только при знании  

ключа.

     Некоторые основные понятия и определения:

  1. Алфавит - конечное множество используемых для кодирования информации знаков.
    1. алфавит Z33 - 32 буквы русского алфавита и пробел;
    2. алфавит  Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;
    3. бинарный алфавит - Z2 = {0,1};
    4. восьмеричный алфавит или шестнадцатеричный алфавит
  2. Текст - упорядоченный набор из элементов алфавита.
  3. Шифрование - преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.
  4. Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.
  5. Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
  6. Криптографическая система представляет собой семейство T преобразований открытого текста. xлены этого семейства индексируются, или обозначаются символом k; параметр k является ключом. Пространство ключей K - это набор возможных значений ключа. Обычно ключ представляет собой последовательный ряд букв алфавита.

Глава 2. Алгоритмы шифрования.

§ 1. Алгоритмы замены (подстановки) . 

     В

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

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

 

Таблица простой замены.

     
Исходные  символы шифруе-мого текста a b c d e f g h i j k l m n o р q r s t u v w x y z
Заменяющие  символы s р x l r z i m a y e d w t b g v n j o c f h q u k

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

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

     При полиалфавитной одноконтурной обыкновенной подстановке для замены символов исходного текста используется несколько  алфавитов, причем смена алфавитов  осуществляется последовательно и  циклически, т.е. первый символ заменяется соответствующим символом первого  алфавита, второй — символом второго  алфавита и т.д., пока не будут использованы все выбранные алфавиты. После этого использование алфавитов повторяется.

     
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а
в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б
г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в
д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в г
е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в г д
И т.д. до 33-ей строки..                                                                                   

     Схема шифрования Вижинера. Таблица Вижинера представляет собой квадратную матрицу с n2 элементами, где n — число символов используемого алфавита. На  рисунке  показана верхняя часть таблицы Вижинера для кириллицы. Каждая строка получена циклическим сдвигом алфавита на символ. Для шифрования выбирается буквенный ключ, в соответствии с которым формируется рабочая матрица шифрования.

 

 
 

§ 2. Алгоритм перестановки. 

     Э

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

   Самая простая перестановка — написать исходный текст задом наперед  и одновременно разбить шифрограмму  на пятерки букв. Например, из фразы

        ПУСТЬ БУДЕТ ТАК, КАК МЫ ХОТЕЛИ.

получится такой  шифротекст:

        ИЛЕТО ХЫМКА ККАТТ ЕДУБЪ ТСУП

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

        ПУСТЬ-БУДЕТ-ТАККА-КМЫХО-ТЕЛИО.

   Тогда шифрограмма, несмотря на столь незначительные изменения, будет выглядеть по-другому:

         ОИЛЕТ ОХЫМК АККАТ ТЕДУБ ЬТСУП

   Кажется, ничего сложного, но при расшифровке  проявляются серьезные неудобства.

   Во  время Гражданской войны в  США в ходу был такой шифр: исходную фразу писали в несколько строк. Например, по пятнадцать букв в каждой (с заполнением последней строки незначащими буквами).

        П  У  С  Т  Ь   Б  У  Д  Е  Т   Т  А  К  К  А

        К  М  Ы Х  О  Т   Е  Л  И  К Л  М   Н О  П

   После этого вертикальные столбцы по порядку  писали в строку с разбивкой на пятерки букв:

       ПКУМС  ЫТХЬО  БТУЕД  ЛЕИТК   ТЛАМК  НКОАП

   Если  строки укоротить, а количество строк  увеличить, то получится прямоугольник-решетка, в который можно записывать исходный текст. Но тут уже потребуется предварительная договоренность между адресатом и отправителем посланий, поскольку сама решетка может быть различной длины-высоты, записывать к нее можно по строкам,  

   по  столбцам, по спирали туда или по спирали обратно, можно писать и  по  диагоналями, а для шифрования можно брать тоже различные направления. В общем, здесь масса вариантов. 

§ 3. Алгоритмы, основанные на сложных математических            преобразованиях. 

Алгоритм  RSA.

  Алгоритм RSA (по первым буквам фамилий его создателей Rivest-Shamir-Adleman) основан на свойствах простых чисел (причем очень больших). Простыми называются такие числа, которые не имеют делителей, кроме самих себя и единицы. А взаимно простыми называются числа, не имеющие общих делителей, кроме 1.

  Для начала выберем два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей. Например, Unix-программа ssh- keygen по умолчанию генерирует ключи длиной 1024 бита). Определим параметр n как результат перемножения р и q. Выберем большое случайное число и назовем его d, причем оно должно быть взаимно простым с результатом умножения Отыщем такое число e, для которого верно соотношение

    

(mod — остаток от деления, т. е. если e, умноженное на d, поделить на , то в остатке получим 1).

   Открытым  ключом является пара чисел e и n, а закрытым — d и n. При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом мы совершаем операцию  

   В результате получается последовательность C(i), которая и составит  криптотекст. Декодирование информации происходит по формуле

   .

   Как видите, расшифровка предполагает знание секретного ключа.

   Давайте попробуем на маленьких числах. Установим  р=3, q=7. Тогда . Выбираем d как 5. Из формулы вычисляем e=17. Открытый ключ 17, 21, секретный — 5, 21.                                                                     

      Зашифруем последовательность «2345»:     
 
 
 

     Криптотекст — 11 12 16 17.

Проверим расшифровкой: 
 
 
 

   Как видим, результат совпал.

   Криптосистема RSA широко применяется в Интернете. Когда вы подсоединяетесь к защищенному серверу по протоколу SSL, устанавливаете на свой ПК сертификат WebMoney либо подключаетесь к удаленному серверу с помощью Oрen SSH или SecureShell, то все эти программы применяют шифрование открытым ключом с использованием идей алгоритма RSA. Действительно ли эта система так надежна?

 

   

   С момента  своего создания RSA постоянно подвергалась атакам типа Brute-force attack (атака методом грубой силы, т. е. перебором). В 1978 г. авторы алгоритма опубликовали статью, где привели строку, зашифрованную только что изобретенным ими методом. Первому, кто расшифрует сообщение, было назначено вознаграждение в размере 100 долл., но для этого требовалось разложить на два сомножителя 129-значное число. Это был первый конкурс на взлом RSA. Задачу решили только через 17 лет после публикации статьи.

  Криптостойкость RSA основывается на том предположении, что исключительно трудно, если вообще реально, определить закрытый ключ из открытого. Для этого требовалось решить задачу о существовании делителей огромного целого числа. До сих пор ее аналитическими методами никто не решил, и алгоритм RSA можно взломать лишь путем полного перебора. Строго говоря, утверждение, что задача разложения на множители сложна и что взлом системы RSA труден, также не доказано. 

Глава 3. Программные шифраторы. 

     И

ногда необходимо зашифровать отдельный файл, чтобы  передать его кому-нибудь или просто  скрыть от посторонних. Это может быть личная переписка, фотоальбом, результат собственного труда. Возможно, вам необходимо обмениваться конфиденциальной информацией по электронной почте с коллегами. Очевидно, что конфиденциальности можно добиться двумя способами: применяя аппаратные шифраторы или специальные программы для шифрования. О программах как раз и пойдет речь в этой главе. 

§ 1. РGР.

 
 

     РGР (Рretty Good Рrivacy) — пожалуй , самый известный и самый надежный шифровальщик. Автор программы , Рhiliр Zimmermann, практически всю свою жизнь посвятил шифрованию данных. Эта программа представляет целый ряд весьма мощных утилит. В папке Автозагрузка появляется РGРtray, который загружает РGР и отвечает за управление остальными элементами программы. Первым делом после установки программы необходимо зайти в  РGРkeys и создать пару ключей — публичный и приватный. Ключи можно создавать по алгоритмам  DSS и RSA , причем первый предпочтительнее. Длина ключа может находиться в пределах 1024-4096 бит. При создании ключей вам предстоит ввести строку символов, которой вы будете   пользоваться в дальнейшем при расшифровке данных. Специалисты рекомендуют вводить строку из 100-200 символов, но учтите, что программа не работает с буфером обмена, так что эту последовательность вам предстоит вводить вручную каждый раз, когда вы будете расшифровывать какой-либо файл. Если вы забудете эту строку или испортите свой приватный ключ, то все, что было зашифровано предыдущим ключом, будет безвозвратно утеряно. Работает это все следующим образом: вы обмениваетесь публичными ключами со своими друзьями, поле чего можно переписываться по e-mail. Имея ваш публичный ключ, получатель сможет открыть письмо, но уже своим приватным кодом. При создании закодированного файла необходимо указать тех, кто сможет открыть этот файл. В появившееся окошко необходимо внести свой ключ, а так же ключи тех, кто также должен иметь доступ к шифруемой информации. Из программы РGРtools можно зашифровывать (шифрование осуществляется при помощи алгоритмов CAST, IDEA, и Triрe DES), подписывать, расшифровывать файлы, вызывать  РGРkeys и Wiрe. Утилита Wiрe выполняет удаление файлов без возможности восстановления. 
 

§  2. BestCryрt. 

     Данная  программа финской фирмы Jetico обеспечивает безопасность данных при помощи создания виртуальных контейнеров. Под контейнерами понимается зашифрованный файл, хранящийся на логическом диске, который подключается к системе как еще один логический диск. При работе с программой первым делом придется создать контейнер. Для этого требуется указать имя файла, в котором будет содержаться информация, его размер, описание и логический диск, на котором он будет располагаться, а также алгоритм шифрования. Программа предоставляет на выбор четыре алгоритма: BLOWFISH, DES, ГОСТ 28147-89, TWOFISH. 
 

 

Сегодня этого  уже откровенно недостаточно для  обеспечения по-настоящему высокого уровня конфиденциальности. Эти ключи  могут остановить хакера, но если кому-то действительно понадобиться получить доступ к вашей информации , то он его получит. Для открытия диска можно установить режим «только для чтения», что запретит любой программе записывать на него информацию. Как обычно, можно попросить программу  подключить диск каждый раз при загрузке и отключать по истечении какого-то времени или по комбинации горячих клавиш. При этом виртуальный диск может обслуживаться программами Norton Utilites и Nuts & Bolts как обычный логический диск. Вместе с программой BestCryрt устанавливается freeware утилита BCWiрe. Она предназначена для того, чтобы после удаления каких-либо файлов с жесткого диска их невозможно было восстановить.

     В программе есть еще одна замечательная  утилита под названием BestCrytр Service Manager. Она предназначена для того, чтобы вы могли добавлять нужные и удалять ненужные алгоритмы шифрования и модули генерации ключей. Но это нужно лишь для тех, кто не доверяет алгоритму шифрования DES. Так что, если у вас есть другой алгоритм, то можно смело удалять старые алгоритмы шифрования и удалять новые.

     

       

 

§ 3. Плюсы и минусы программных шифраторов 
 

     Программы РGР и BesyCryрt во всем мире зарекомендовали себя как надежные , безошибочно реализующие криптографические алгоритмы. Но кроме этих программ существует масса других,  менее известных, зачастую никем не проверяемых на надежность и стойкость от взлома, и это обстоятельство порождает недоверие к программам, ведь «программа, она и есть программа»: в коде программ нередко допускаются грубые ошибки, которые обнаруживаются лишь только после их поступления в продажу или свободное распространение. Хакерам значительно легче взломать программу, даже имея доступ к вашему компьютеру через сеть. Наконец, случается даже такое, что разработчики программ специально добавляют в  программы такие функции (наличие которых, разумеется, не разглашается) , чтобы иметь беспрепятственный доступ к информации, зашифрованной даже на секретном ключе, который пользователи никому и никогда не отдали бы.

Еще одно обстоятельство, явно не в пользу программных средств,—  это их существенно меньшее быстродействие. Например, при аппаратной реализации национального стандарта (ГОСТа) время на обработку одного блока составляет примерно 5 мкс, при программной реализации, в среднем, 50-100 мкс. Поэтому при больших объемах защищаемой информации аппаратные методы представляются более предпочтительными. Программные методы, кроме того, могут быть реализованы только при наличии в составе компьютера мощного процессора, тогда как шифрующие аппараты с помощью стандартных интерфейсов могут подключаться практически к любым системам.

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

Глава 4. Аппаратные шифраторы. 

§ 1. Что такое аппаратный шифратор. 

      Аппаратный шифратор по виду и по сути представляет собой обычное компьютерное «железо», чаще всего это плата расширения, вставляемая в разъем ISA или РCI системной платы ПК. Бывают и другие варианты,  например в виде USB-ключа с криптографическими функциями, но мы здесь рассмотрим классический вариант – шифратор для шины РCI.

  Использовать целую плату только для функций шифрования – непозволительная роскошь, поэтому производители аппаратных шифраторов обычно стараются насытить их различными дополнительными возможностями, среди которых:

  1. Генерация случайных чисел. Это нужно прежде всего для получения криптографических ключей. Кроме того, многие алгоритмы защиты используют их и для других целей, например алгоритм электронной подписи ГОСТ Р 34.10 – 2001. При каждом вычислении подписи ему необходимо новое случайное число.
  2. Контроль входа на компьютер.  При включении ПК устройство требует от пользователя ввести персональную информацию (например, вставить дискету с ключами). Работа будет разрешена только после того, как устройство опознает предъявленные ключи и сочтет их «своими» . В противном случае придется разбирать системный блок и вынимать оттуда шифратор, чтобы загрузиться (однако, как известно, информация на ПК тоже может быть зашифрована).
  3. Контроль целостности файлов операционной системы. Это не позволит злоумышленнику в ваше отсутствие изменить какие-либо данные. Шифратор хранит в себе список всех важных файлов с заранее рассчитанными для каждого контрольными суммами (или хэш - значениями), и если при следующей загрузке не совпадет эталонная сумма хотя бы с одним из них, компьютер будет блокирован.

    Плата  со всеми перечисленными возможностями  называется устройством криптографической  защиты данных – УКЗД. 

§ 2. Структура шифраторов. 

     Рассмотрим  теперь,  из чего должно состоять УКЗД, чтобы выполнять эти непростые  функции :

  • Блок управления – основной модуль шифратора, который «заведует» работой всех остальных. Обычно реализуется на базе микроконтроллера, сейчас их предлагается немало и можно выбрать подходящий. Главное – быстродействие и достаточное количество внутренних ресурсов, а также внешних портов для подключения всех необходимых модулей.
  • Контроллер системной шины ПК( например, РCI). Через него осуществляется основной обмен данными между УКЗД  и компьютером
  • Энергонезависимое запоминающее устройство(ЗУ) – обычно на базе микросхем флэш-памяти. Оно должно быть достаточно емким (несколько мегабайт) и допускать большое число циклов записи. Здесь размещается программное обеспечение микроконтроллера, которое выполняется при инициализации устройства( т.е. когда шифратор перехватывает управление при загрузке компьютера).
  • Память журнала. Тоже представляет собой энергонезависимое ЗУ; это действительно еще одна флэш-микросхема: во избежание возможных коллизий  
  • память для программ и для журнала не должны объединяться.
  • Шифропроцессор (или несколько) – это специализированная микросхема или микросхема программируемой логики РLD – Рrogrammable Logic Device. Собственно, он и шифрует данные. Подробнее об этом немного позже.
  • Генератор случайных чисел. Обычно представляет собой некое устройство, дающее статически случайный шум. Это может быть шумовой диод. А перед использованием по специальным правилам белый шум преобразуется в цифровую форму.
  • Блок ввода ключевой информации. Обеспечивает защищенный прием ключей с ключевого носителя, через него также вводится информация о пользователе для решения вопроса «свой/чужой».
  • Блок коммутаторов. Помимо перечисленных выше основных функций, УКЗД может по велению администратора безопасности отключать возможность работы со внешними устройствами: дисководами, CD-ROM, параллельными и последовательными портами, шиной USB и т.д. Если пользователь работает с настолько важной информацией, что ее нельзя ни печатать, ни копировать, УКЗД при входе на компьютер заблокирует все внешние устройства, включая даже сетевую карту.
Криптография. 6