top of page

Криптография
Цифровые данные можно сделать некопируемыми настолько, насколько воду можно сделать сухой.
Брюс Шнайер
Для удобства дальнейшего изложения обозначим буквой А открытое сообщение, В — шифрованное сообщение, f — правило шифрования, g — правило расшифрования. В этом случае зашифрование открытого сообщения А в шифрованное сообщение В можно записать в виде f(А) = В. Обратное преобразование, то есть получение открытого сообщения А путем расшифрования В, запишется в виде g(B) = А.
Правило зашифрования f не может быть произвольным. Оно должно быть таким, чтобы по шифртексту В с помощью правила расшифрования g можно было однозначно восстановить открытое сообщение А. Однотипные правила зашифрования можно объединить в классы. Внутри класса правила различаются между собой по значениям некоторого параметра, который может быть числом, таблицей и т.д. В криптографии конкретное значение такого параметра обычно называют ключом. По сути дела, ключ выбирает конкретное правило зашифрования из данного класса правил.
Зачем понадобилось вводить понятие ключа? Есть по крайней мере два обстоятельства, которые позволяют понять необходимость этого. Во-первых, обычно шифрование производится с использованием специальных устройств. У вас должна быть возможность изменять значение параметров устройства, чтобы зашифрованное сообщение не смогли расшифровать даже лица, имеющие точно такое же устройство, но не знающие выбранного вами значения параметра. Во-вторых, длительное использование одного и того же шифрующего преобразования, как правило, приводит к вскрытию открытого сообщения. Поэтому необходимо периодически менять правило зашифрования.
С учетом понятия ключа процесс зашифрования можно описать так:
fa(A)=B,
где а — выбранный ключ, известный отправителю и адресату.
Для каждого ключа а преобразование fa должно быть обратимым, то есть должно существовать обратное преобразование ga, которое при выбранном ключе а однозначно определяет открытое сообщение А по шифрованному сообщению В:
ga(B)=A,
Совокупность преобразований fa и соответствующий им набор ключей будем называть шифром.
Получение открытого сообщения по шифрованному без заранее известного ключа называется вскрытием шифра (или дешифрованием), в отличие от расшифрования — когда ключ известен. Под надежностью шифра понимается способность противостоять попыткам провести его вскрытие.
При анализе надежности шифра обычно исходят из принципа, сформулированного голландцем Огюстом Керкхоффом (1835—1903). Согласно этому принципу предполагают, что при дешифровании криптограммы "противнику" известно о шифре все, кроме используемого ключа. То есть надежность шифра определяется только секретностью ключа. Одной из естественных оценок надежности шифра является число его возможных ключей. Ведь вскрытие шифра можно осуществлять перебором всех возможных его ключей.
Как правило, шифр известен, но неизвестен выбранный ключ, что соответствует принципу Керкхоффа. Так, в задачах все дело сводится к перебору большого количества различных вариантов ключа, из которых только один дает читаемый текст.
Подчас смешивают два понятия: шифрование и кодирование. Мы уже договорились, что для шифрования надо знать шифр и секретный ключ. При кодировании нет ничего секретного, есть только определенная замена букв или слов на заранее определенные символы. Методы кодирования направлены, как правило, не на то, чтобы сделать тайным открытое сообщение, а на то, чтобы представить его в более удобном виде для передачи по техническим средствам связи, для уменьшения длины сообщения и т.д. В принципе кодирование, конечно же, можно рассматривать как шифр замены, для которого "набор" возможных ключей состоит только из одного ключа (например, все знают, что буква "а" в азбуке Морзе всегда кодируется знаками • — ).
Криптологию делят на две части: криптографию (создание шифров) и криптоанализ (вскрытие шифров). Криптограф пытается найти методы обеспечения секретности сообщений, криптоаналитик пытается при неизвестном ключе выполнить обратную задачу. При этом часто говорят, что криптоаналитик вскрыл шифр, хотя чаще он вскрывает ключ заранее известного шифра. Термины криптография и криптология мы используем как синонимы.

bottom of page