Добавлен: 31.03.2023
Просмотров: 694
Скачиваний: 3
1.1 Основные понятия
Рассмотрим ряд терминов:
Криптография – наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним), целостности данных (невозможности незаметного изменения информации) и аутентификации (проверки подлинности авторства или иных свойств объекта), а также невозможности отказа от авторства.[2]
Изначально криптография изучала методы шифрования информации – обратимого преобразования открытого (исходного) текста на основе секретного алгоритма и/или ключа в шифрованный текст (шифротекст). Традиционная криптография образует раздел симметричных криптосистем, в которых шифрование и расшифровывание проводится с использованием одного и того же секретного ключа. Помимо этого раздела современная криптография включает в себя асимметричные криптосистемы, использующие два ключа, системы электронной подписи (ЭП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию.[4]
Шифр – это совокупность условных знаков (условная азбука из цифр или букв) для секретной переписки, для передачи текста секретных документов, в том числе по техническим средствам связи. В общем случае понятие шифр идентично понятию криптосистема и означает семейство обратимых преобразований открытого текста в шифрованный. Шифр состоит, по меньшей мере, из четырех элементов[2]:
- открытый текст X;
- функция шифрования f(X);
- ключ К;
- закрытый текст Y.
Открытый (исходный) текст – данные (текстовые или иного вида), представляемые и/или передаваемые без использования криптографии.
Шифротекст, шифрованный (закрытый) текст – данные, полученные после применения криптосистемы (обычно с некоторым указанным ключом).
Код – это алгоритм криптографических преобразований (шифрования) множества возможных открытых данных во множество возможных зашифрованных данных, и обратных им преобразований.[2]
Ключ – это параметр криптографического алгоритма, обеспечивающий выбор одного преобразования из совокупности преобразований, возможных для этого алгоритма. В современной криптографии предполагается, что вся секретность криптографического алгоритма сосредоточена в ключе, но не деталях самого алгоритма (принцип Керкгоффса).[2]
Шифры могут использовать один ключ для шифрования и дешифрования или два различных ключа. По этому признаку различают симметричный и асимметричный шифры.
Симметричный шифр – это шифр, который использует один ключ для шифрования и расшифровывания.[2]
Асимметричный (несимметричный) шифр – это шифр, который для шифрования и расшифровывания использует два различных ключа, определенным образом связанных между собой.[2]
Шифрование – процесс нормального применения криптографического преобразования открытого текста на основе алгоритма и ключа, в результате которого возникает шифрованный текст.[2]
Расшифровывание (расшифровка) – процесс нормального применения криптографического преобразования шифрованного текста в открытый (то есть, на основе известного алгоритма и ключа).[2]
Криптоанализ – наука, изучающая математические методы нарушения конфиденциальности и целостности информации. В то же время криптоанализ занимается не только разработкой методов, позволяющих взламывать криптосистемы, но и оценкой сильных и слабых сторон методов шифрования.[4]
Криптоаналитик – человек, создающий и применяющий методы криптоанализа.
Криптография и криптоанализ составляют криптологию как единую науку о создании и взломе шифров (такое деление привнесено с Запада, ранее в СССР и России не применялось специального деления).
Дешифрование (дешифровка) – процесс извлечения открытого текста без знания криптографического ключа на основе известного шифрованного текста. Термин «дешифрование» обычно применяют по отношению к процессу криптоанализа шифротекста. В некоторых источниках понятия дешифрования и расшифровывания объединяют вместе под термином дешифрование.[4]
Криптографическая стойкость – способность криптографического алгоритма противостоять криптоанализу, то есть к дешифрованию без знания ключа.
Алфавит – конечное множество используемых для кодирования информации знаков. В качестве примеров алфавитов можно привести следующие[3]:
- алфавит Z33 - 32 буквы русского алфавита и пробел;
- алфавит Z27 - 26 букв латинского алфавита и пробел;
- алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;
- бинарный алфавит – Z2 = {0,1};
- восьмеричный или шестнадцатеричный алфавит.
Если указанные алфавиты используют расположение символов в соответствии с установленными правилами или стандартами для естественных языков, то их можно рассматривать как естественные алфавиты открытых текстов. Изменение порядка расположения символов может преобразовать их в специальные алфавиты шифротекстов, которые используются в некоторых алгоритмах криптографических преобразований (например, в шифрах замены).
В данном пункте были рассмотрены основные понятия криптографии, которые необходимо изучить перед написанием последующих пунктов курсовой работы.
1.2. Классификация криптографических алгоритмов шифрования
Криптографические алгоритмы шифрования информации можно разделить на[2]:
- симметричные;
- несимметричные;
- гибридные.
Также, алгоритмы делят по типу преобразования и по способу обработки информации (рис. 1).
В симметричных криптографических алгоритмах шифрование и расшифровывание производятся с помощью одного и того же ключа. И соответственно этот ключ необходимо хранить в секрете (отсюда другое название симметричных криптоалгоритмов – криптоалгоритмы с секретным ключом).
В несимметричных криптографических алгоритмах существуют два разных ключа – один используется для шифрования, который еще называют открытым, другой – для расшифровывания, который называют закрытым. Главное отличие асимметричных криптоалгоритмов заключается в том, что даже тот, кто с помощью открытого ключа зашифровал сообщение, не сможет его самостоятельно расшифровать без знания закрытого ключа. Поэтому эти криптоалгоритмы называются несимметричными (асимметричными), или алгоритмами с открытым ключом.[3]
Если криптоалгоритм использует индивидуальное сообщение и индивидуальный открытый ключ, то он называется криптоалгоритмом с одним открытым ключом.
Если криптоалгоритм использует одно сообщение и п ключей (в схеме с п агентами), то он называется криптоалгоритмом с несколькими открытыми ключами.
Гибридными принято называть криптоалгоритмы, сочетающие оба типа, в них, как правило, текст сообщения шифруется с использованием симметричного криптоалгоритма, а секретный ключ использованного симметричного криптоалгоритма шифруется с использованием асимметричного криптоалгоритма.[4]
По типу обработки входящей информационной последовательности криптоалгоритмы делятся на поточные, в которых преобразуется всё сообщение сразу, и блочные, в которых сообщение обрабатывается в виде блоков определенной длины. Комбинированные криптоалгоритмы сочетают в себе элементы поточного и блочного шифрования.
По типу шифрующего преобразования криптосистемы делятся на:
- шифры замены (подстановки);
- шифры перестановок;
- шифры гаммирования;
- шифры, основанные на аналитических преобразованиях шифруемых данных;
- композиционные шифры.
Шифрование заменой (подстановкой) заключается в том, что символы шифруемого текста заменяются символами того же или другого естественного алфавита в соответствии с заранее обусловленной схемой замены. Этот тезис можно сформулировать по-другому: символы шифруемого текста на естественном языке заменяются символами специального алфавита для записи шифротекста, сконструированного на базе естественного языка по заранее обусловленному правилу. [3]
Шифрование перестановкой заключается в том, что символы шифруемого текста переставляются по определенному правилу в пределах некоторого блока этого текста. При достаточной длине блока, в пределах которого осуществляется перестановка, и сложном неповторяющемся порядке перестановки можно достигнуть приемлемой для простых практических приложений стойкости шифра.[4]
По сути дела, шифры перестановки и замены являются кирпичиками, из которых строятся различные более стойкие шифры.
Шифрование гаммированием заключается в том, что символы шифруемого текста складываются с символами некоторой случайной последовательности, именуемой гаммой шифра. Стойкость шифрования определяется в основном длиной (периодом) неповторяющейся части гаммы шифра. Поскольку с помощью ЭВМ можно генерировать практически бесконечную гамму шифра, то данный способ является одним из основных для шифрования информации в автоматизированных системах.[4]
Шифрование аналитическим преобразованием заключается в том, что шифруемый текст преобразуется по некоторому аналитическому правилу (формуле). Например, можно использовать правило умножения вектора на матрицу, причем умножаемая матрица является ключом шифрования (поэтому ее размер и содержание должны храниться в секрете), а символами умножаемого вектора последовательно служат символы шифруемого текста.
Идея, лежащая в основе составных, или композиционных, шифров, состоит в построении криптостойкой системы путем многократного применения относительно простых криптографических преобразований, в качестве которых К. Шеннон предложил использовать преобразования подстановки (substitution) и транспозиции (permutation) . Многократное использование этих преобразований позволяет обеспечить два свойства, которые должны быть присущи стойким шифрам: рассеивание (diffusion) и перемешивание (confusion).[2]
Рассеивание предполагает распространение влияния одного знака открытого текста, а также одного знака ключа на значительное количество знаков шифротекста.
Наличие у шифра этого свойства, с одной стороны, позволяет скрывать статистическую зависимость между знаками открытого текста, иначе говоря, перераспределить избыточность исходного языка посредством распространения ее на весь текст; а с другой – не позволяет восстановить неизвестный ключ по частям. Например, обычная перестановка символов позволяет скрыть частоты появления биграмм (комбинации из 2-х букв), триграмм и т.д.[4]
Цель перемешивания – сделать как можно более сложной зависимость между ключом и шифротекстом. Криптоаналитик на основе статистического анализа перемешанного текста не должен получить сколь-нибудь значительного количества информации об использованном ключе. Обычно перемешивание осуществляется при помощи подстановок. Применение рассеивания и перемешивания порознь не обеспечивает необходимую стойкость, стойкая криптосистема получается только в результате их совместного использования.[3]
В этом пункте достаточно емко рассмотрена классификация криптографических алгоритмов шифрования. Они делятся на симметричные, несимметричные, гибридные. А также, их делят по типу преобразования и по способу обработки информации.
Далее, некоторые из упомянутых алгоритмов шифрования рассматриваются более подробно.
1.3. Шифры моноалфавитной подстановки
Шифры моноалфавитной (одноалфавитной) подстановки относятся к категории шифров замены (подстановки). Другое их название – шифры простой замены. В шифре простой замены каждый символ исходного текста заменяется по определенному правилу символами одного и того же специального алфавита шифротекста на всем протяжении текста.
1.3.1 Шифр Цезаря
Историческим примером шифра замены является шифр Цезаря (I век до н.э.), описанный историком Древнего Рима Светонием. Гай Юлий Цезарь использовал в своей переписке шифр собственного изобретения. Применительно к современному русскому языку он состоял в следующем. Выписывался алфавит: А, Б, В, Г, Д, Е, ...; затем под ним выписывался тот же алфавит, но со сдвигом на 3 буквы влево (табл. 1). Можно сказать, что осуществился переход к специальному алфавиту, на котором будет записываться шифротекст.[5]
Алфавит считается “циклическим”, поэтому после Я идет А. При шифровке буква А заменялась буквой Г, Б заменялась на Д, В – на Е и т.д. Так, например, слово “РИМ” превращалось в слово “УЛП”. Получатель сообщения “УЛП” искал эти буквы в нижней строке и по буквам над ними восстанавливал исходное слово “РИМ”. Ключом в шифре Цезаря является величина сдвига 3 алфавита открытого текста. Преемник Юлия Цезаря – цезарь Август – использовал тот же шифр, но с ключом-сдвигом 4. Слово “РИМ” он в этом случае зашифровал бы в буквосочетание “ФМР”.[5]