Глава 18. Начальная криптография

Содержание

18.1. Классификация
18.2. Криптосистемы ограниченного использования
18.3. Криптосистемы с секретным ключом
18.4. Схема шифрования с секретным ключом
18.5. Криптосистемы с открытым ключом
18.6. Схема шифрования с открытым ключом
18.7. Алгоритм шифрования RSA
18.8. Цифровая подпись
18.9. Алгоритм цифровой подписи
 

Наташа не возразила ни слова. Мысль, что тайна ее сердца известна отцу ее, сильно подействовала на ее воображение. Одна надежда ей оставалась: умереть прежде совершения ненавистного брака. Эта мысль ее утешила. Слабой и печальной душой покорилась она своему жребию.

 
 --А.С. Пушкин. Арап Петра Великого

18.1. Классификация

В основе большинства механизмов защиты информации лежат методы криптографии. Криптография — это наука о том, как обеспечить секретность сообщения. А криптоанализ — наука о том, как вскрыть шифрованное сообщение, то есть как извлечь открытый текст не зная ключа. Криптографией занимаются криптографы, а криптоанализом занимаются криптоаналитики [CRYP12].

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

Цель криптографической системы заключается в том, чтобы зашифровать (encryption) осмысленный исходный текст (также называемый открытым текстом, plaintext), получив в результате совершенно бессмысленный на взгляд шифрованный текст или шифротекст (называемый также криптограммой, ciphertext). Получатель, которому он предназначен, должен быть способен расшифровать (decryption) этот шифротекст, восстановив, таким образом, соответствующий ему открытый текст. При этом противник (называемый также криптоаналитиком) должен быть неспособен раскрыть исходный текст. Метод шифровки/расшифровки называют шифром (cipher).

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

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

Системы подразделяются на криптосистемы ограниченного и общего использования [CRYP11]. В первом случае — используются алгоритмы шифрования основанные на том, что сам метод шифрования (алгоритм) является секретным. Сейчас такие методы представляют лишь исторический интерес и не имеют практического значения. Во втором случае — алгоритмы используют ключ для управления шифровкой и расшифровкой, то есть сообщение может быть успешно расшифровано только если известен ключ. Все современные алгоритмы относятся именно к этому классу.

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

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

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