Общие сведения о криптографических системах
Обобщенная схема криптографической системы, обеспечивающей шифрование передаваемой информации, показана на рис. 12.
![]() |
Рис. 12. Обобщенная схема криптосистемы
Отправитель генерирует открытый текст исходного сообщения М, которое должно быть передано законному получателю по незащищенному каналу. За каналом следит перехватчик с целью перехватить и раскрыть передаваемое сообщение. Для того чтобы перехватчик не смог узнать содержание сообщения М, отправитель шифрует его с помощью обратимого преобразования ЕК и получает шифротекст (или криптограмму) С= ЕК(М), который отправляет получателю.
Законный получатель, приняв шифротекст С, расшифровывает его с помощью обратного преобразования D = ЕК-1 и получает исходное сообщение в виде открытого текста М:
DK (C) = EK-1(EK (M)) = M
Преобразование ЕК выбирается из семейства криптографических преобразований, называемых криптоалгоритмами. Параметр, с помощью которого выбирается отдельное используемое преобразование, называется криптографическим ключом К. Криптосистема имеет разные варианты реализации: набор инструкций, аппаратные средства, комплекс программ компьютера, которые позволяют зашифровать открытый текст и расшифровать шифртекст различными способами, один из которых выбирается с помощью конкретного ключа К.
Таким образом, криптографическая система – это однопараметрическое семейство обратимых преобразований
из пространства
сообщений открытого текста в пространство
шифрованных текстов. Параметр К (ключ) выбирается из конечного множества
, называемого пространством ключей.
Преобразование шифрования может быть симметричным или асимметричным относительно преобразования расшифрования. Это важное свойство функции преобразования определяет два класса криптосистем: симметричные (одноключевые) криптосистемы; асимметричные (двухключевые) криптосистемы (с открытым ключом).
Схема симметричной криптосистемы с одним секретным ключом была показана на рис. 12. В ней используются одинаковые секретные ключи в блоке шифрования и блоке расшифрования.
Обобщенная схема асимметричной криптосистемы с двумя разными ключами К1 и К2 показана на рис. 13. В этой криптосистеме один ключей является открытым а другой - секретным.
В симметричной криптосистеме секретный ключ надо передавать отправителю и получателю по защищенному каналу распространения ключей, например, такому, как курьерская служба. На рис. 14 этот канал показан «экранированной» линией. Существуют и другие способы распределения секретных ключей. В асимметричной криптосистеме передают по незащищенному каналу только открытый ключ, а секретный ключ сохраняют на месте его генерации.
Рис.13. Обобщенная схема асимметричной криптосистемы
с открытым ключом
На рис. 14 показан поток информации в криптосистеме в случае активных действий перехватчика. Активный перехватчик не только считывает все шифротексты, передаваемые по каналу, но может также пытаться изменять их по своему усмотрению.
Любая попытка со стороны перехватчика расшифровать шифротекст С для получения открытого текста М или зашифровать свой собственный текст М1 для получения правдоподобного шифротекста С1, не имея подлинного ключа, называется криптоаналитической атакой.
Если предпринятые криптоаналитические атаки не достигают поставленной цели и криптоаналитик не может, не имея подлинного ключа, вывести М из С или С1 из М1, то полагают, что такая криптосистема является криптостойкой.
![]() |
Рис. 14. Поток информации в криптосистеме при активном
перехвате сообщений
Фундаментальное правило построения криптосистем, впервые сформулированное голландцем А. Керкхоффом еще в XIX веке, заключается в том, что стойкость шифра (криптосистемы) должна определяться только секретностью ключа. Иными словами, правило Керкхоффа состоит в том, что весь алгоритм шифрования, кроме значения секретного ключа, известен криптоаналитику противника. Это обусловлено тем, что криптосистема, реализующая семейство криптографических преобразований, обычно рассматривается как открытая система. Такой подход отражает очень важный принцип технологии защиты информации: защищенность системы не должна зависеть от секретности чего-либо такого, что невозможно быстро изменить в случае утечки секретной информации. Обычно криптосистема представляет собой совокупность аппаратных и программных средств, которую можно изменить только при значительных затратах времени и средств, тогда как ключ является легко изменяемым объектом. Именно поэтому стойкость криптосистемы определяется только секретностью ключа.
Другое общепринятое допущение в криптоанализе состоит в том, что криптоаналитик имеет в своем распоряжении шифротексты сообщений.
Таким образом, основные требования, предъявляемые к методам защитного преобразования информации следующие:
1) применяемый метод должен быть достаточно устойчивым к попыткам раскрыть исходный текст, имея только зашифрованный текст;
2) объем ключа не должен затруднять его запоминание и пересылку;
3) алгоритм преобразования информации и ключ, используемые для шифрования и дешифрования, не должны быть очень сложными: затраты на защитные преобразования должны быть приемлемы при заданном уровне сохранности информации;
4) ошибки в шифровании не должны вызывать потерю информации. Из-за появления ошибок передачи шифрованного сообщения по каналам связи не должна исключаться возможность надежной расшифровки текста на приемном конце;
5) длина зашифрованного текста не должна превышать длину исходного текста;
6) необходимые временные и стоимостные ресурсы на шифрование и дешифрование информации определяются требуемой степенью защиты информации.
Методы шифрования
Методы замены.Шифрование методом замены (подстановки) основано на алгебраической операции, называемой подстановкой.
Подстановкой называется взаимно однозначное отображение некоторого конечного множества М на себя. Число N элементов этого множества называется степенью подстановки. Природа множества M роли не играет, поэтому можно считать, что M={1,2,...,N}.
В криптографии рассматриваются четыре типа подстановки (замены): моноалфавитная, гомофоническая, полиалфавитная и полиграммная.
Далее в примерах, где необходимо, будет использовано кодирование букв русского алфавита, приведенное в табл. 3.1. Знак "_" означает пробел.
Таблица 3.1
Кодирование букв русского алфавита
Буквы | А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я _ |
Коды |
При моноалфавитной замене каждой букве алфавита открытого текста ставится в соответствие одна буква шифротекста из этого же алфавита.
Пример 1. Открытый текст: "ШИФРОВАНИЕ_ЗАМЕНОЙ".
Подстановка задана табл. 3.2.
Таблица 3.2