Сайт о телевидении

Сайт о телевидении

» » Как работает шифрование. Что такое шифрование данных

Как работает шифрование. Что такое шифрование данных

Сергей Панасенко ,
начальник отдела разработки программного обеспечения фирмы «Анкад»,
[email protected]

Основные понятия

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

С = Ek1(M)

M" = Dk2(C),

где M (message) - открытая информация (в литературе по защите информации часто носит название "исходный текст");
C (cipher text) - полученный в результате зашифрования шифртекст (или криптограмма);
E (encryption) - функция зашифрования, выполняющая криптографические преобразования над исходным текстом;
k1 (key) - параметр функции E, называемый ключом зашифрования;
M" - информация, полученная в результате расшифрования;
D (decryption) - функция расшифрования, выполняющая обратные зашифрованию криптографические преобразования над шифртекстом;
k2 - ключ, с помощью которого выполняется расшифрование информации.

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

Для того, чтобы результат расшифрования совпал с исходным сообщением (т. е. чтобы M" = M), необходимо одновременное выполнение двух условий. Во-первых, функция расшифрования D должна соответствовать функции зашифрования E. Во-вторых, ключ расшифрования k2 должен соответствовать ключу зашифрования k1.

Если для зашифрования использовался криптостойкий алгоритм шифрования, то при отсутствии правильного ключа k2 получить M" = M невозможно. Криптостойкость - основная характеристика алгоритмов шифрования и указывает прежде всего на степень сложности получения исходного текста из зашифрованного без ключа k2.

Алгоритмы шифрования можно разделить на две категории: симметричного и асимметричного шифрования. Для первых соотношение ключей зашифрования и расшифрования определяется как k1 = k2 = k (т. е. функции E и D используют один и тот же ключ шифрования). При асимметричном шифровании ключ зашифрования k1 вычисляется по ключу k2 таким образом, что обратное преобразование невозможно, например, по формуле k1 = ak2 mod p (a и p - параметры используемого алгоритма).

Симметричное шифрование

Свою историю алгоритмы симметричного шифрования ведут с древности: именно этим способом сокрытия информации пользовался римский император Гай Юлий Цезарь в I веке до н. э., а изобретенный им алгоритм известен как "криптосистема Цезаря".

В настоящее время наиболее известен алгоритм симметричного шифрования DES (Data Encryption Standard), разработанный в 1977 г. До недавнего времени он был "стандартом США", поскольку правительство этой страны рекомендовало применять его для реализации различных систем шифрования данных. Несмотря на то, что изначально DES планировалось использовать не более 10-15 лет, попытки его замены начались только в 1997 г.

Мы не будем рассматривать DES подробно (почти во всех книгах из списка дополнительных материалов есть его подробнейшее описание), а обратимся к более современным алгоритмам шифрования. Стоит только отметить, что основная причина изменения стандарта шифрования - его относительно слабая криптостойкость, причина которой в том, что длина ключа DES составляет всего 56 значащих бит. Известно, что любой криптостойкий алгоритм можно взломать, перебрав все возможные варианты ключей шифрования (так называемый метод грубой силы - brute force attack). Легко подсчитать, что кластер из 1 млн процессоров, каждый из которых вычисляет 1 млн ключей в секунду, проверит 256 вариантов ключей DES почти за 20 ч. А поскольку по нынешним меркам такие вычислительные мощности вполне реальны, ясно, что 56-бит ключ слишком короток и алгоритм DES необходимо заменить на более "сильный".

Сегодня все шире используются два современных криптостойких алгоритма шифрования: отечественный стандарт ГОСТ 28147-89 и новый криптостандарт США - AES (Advanced Encryption Standard).

Стандарт ГОСТ 28147-89

Алгоритм, определяемый ГОСТ 28147-89 (рис. 1), имеет длину ключа шифрования 256 бит. Он шифрует информацию блоками по 64 бит (такие алгоритмы называются блочными), которые затем разбиваются на два субблока по 32 бит (N1 и N2). Субблок N1 обрабатывается определенным образом, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2, т. е. применяется логическая операция XOR - "исключающее или"), а затем субблоки меняются местами. Данное преобразование выполняется определенное число раз ("раундов"): 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются две операции.

Первая - наложение ключа. Содержимое субблока N1 складывается по модулю 2 с 32-бит частью ключа Kx. Полный ключ шифрования представляется в виде конкатенации 32-бит подключей: K0, K1, K2, K3, K4, K5, K6, K7. В процессе шифрования используется один из этих подключей - в зависимости от номера раунда и режима работы алгоритма.

Вторая операция - табличная замена. После наложения ключа субблок N1 разбивается на 8 частей по 4 бит, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

Табличные замены (Substitution box - S-box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция. В таблицу записываются выходные значения блоков. Блок данных определенной размерности (в нашем случае - 4-бит) имеет свое числовое представление, которое определяет номер выходного значения. Например, если S-box имеет вид 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 и на вход пришел 4-бит блок "0100" (значение 4), то, согласно таблице, выходное значение будет равно 15, т. е. "1111" (0 а 4, 1 а 11, 2 а 2 ...).

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

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

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 и т. д. - в раундах с 1-го по 24-й;

K7, K6, K5, K4, K3, K2, K1, K0 - в раундах с 25-го по 32-й.

Расшифрование в данном режиме проводится точно так же, но с несколько другой последовательностью применения подключей:

K0, K1, K2, K3, K4, K5, K6, K7 - в раундах с 1-го по 8-й;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 и т. д. - в раундах с 9-го по 32-й.

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

В режиме гаммирования каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бит. Гамма шифра - это специальная последовательность, которая получается в результате определенных операций с регистрами N1 и N2 (см. рис. 1).

1. В регистры N1 и N2 записывается их начальное заполнение - 64-бит величина, называемая синхропосылкой.

2. Выполняется зашифрование содержимого регистров N1 и N2 (в данном случае - синхропосылки) в режиме простой замены.

3. Содержимое регистра N1 складывается по модулю (232 - 1) с константой C1 = 224 + 216 + 28 + 24, а результат сложения записывается в регистр N1.

4. Содержимое регистра N2 складывается по модулю 232 с константой C2 = 224 + 216 + 28 + 1, а результат сложения записывается в регистр N2.

5. Содержимое регистров N1 и N2 подается на выход в качестве 64-бит блока гаммы шифра (в данном случае N1 и N2 образуют первый блок гаммы).

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

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

Зашифрование и расшифрование в режиме гаммирования

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

В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка не секретна, однако есть системы, где синхропосылка - такой же секретный элемент, как и ключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит) увеличивается еще на 64 бит секретной синхропосылки, которую также можно рассматривать как ключевой элемент.

В режиме гаммирования с обратной связью для заполнения регистров N1 и N2, начиная со 2-го блока, используется не предыдущий блок гаммы, а результат зашифрования предыдущего блока открытого текста (рис. 2). Первый же блок в данном режиме генерируется полностью аналогично предыдущему.

Рис. 2. Выработка гаммы шифра в режиме гаммирования с обратной связью.

Рассматривая режим генерации имитоприставок , следует определить понятие предмета генерации. Имитоприставка - это криптографическая контрольная сумма, вычисляемая с использованием ключа шифрования и предназначенная для проверки целостности сообщений. При генерации имитоприставки выполняются следующие операции: первый 64-бит блок массива информации, для которого вычисляется имитоприставка, записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простой замены (выполняются первые 16 раундов из 32). Полученный результат суммируется по модулю 2 со следующим блоком информации с сохранением результата в N1 и N2.

Цикл повторяется до последнего блока информации. Получившееся в результате этих преобразований 64-бит содержимое регистров N1 и N2 или его часть и называется имитоприставкой. Размер имитоприставки выбирается, исходя из требуемой достоверности сообщений: при длине имитоприставки r бит вероятность, что изменение сообщения останется незамеченным, равна 2-r.Чаще всего используется 32-бит имитоприставка, т. е. половина содержимого регистров. Этого достаточно, поскольку, как любая контрольная сумма, имитоприставка предназначена прежде всего для защиты от случайных искажений информации. Для защиты же от преднамеренной модификации данных применяются другие криптографические методы - в первую очередь электронная цифровая подпись.

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

Алгоритм ГОСТ 28147-89 считается очень сильным алгоритмом - в настоящее время для его раскрытия не предложено более эффективных методов, чем упомянутый выше метод "грубой силы". Его высокая стойкость достигается в первую очередь за счет большой длины ключа - 256 бит. При использовании секретной синхропосылки эффективная длина ключа увеличивается до 320 бит, а засекречивание таблицы замен прибавляет дополнительные биты. Кроме того, криптостойкость зависит от количества раундов преобразований, которых по ГОСТ 28147-89 должно быть 32 (полный эффект рассеивания входных данных достигается уже после 8 раундов).

Стандарт AES

В отличие от алгоритма ГОСТ 28147-89, который долгое время оставался секретным, американский стандарт шифрования AES, призванный заменить DES, выбирался на открытом конкурсе, где все заинтересованные организации и частные лица могли изучать и комментировать алгоритмы-претенденты.

Конкурс на замену DES был объявлен в 1997 г. Национальным институтом стандартов и технологий США (NIST - National Institute of Standards and Technology). На конкурс было представлено 15 алгоритмов-претендентов, разработанных как известными в области криптографии организациями (RSA Security, Counterpane и т. д.), так и частными лицами. Итоги конкурса были подведены в октябре 2000 г.: победителем был объявлен алгоритм Rijndael, разработанный двумя криптографами из Бельгии, Винсентом Риджменом (Vincent Rijmen) и Джоан Даймен (Joan Daemen).

Алгоритм Rijndael не похож на большинство известных алгоритмов симметричного шифрования, структура которых носит название "сеть Фейстеля" и аналогична российскому ГОСТ 28147-89. Особенность сети Фейстеля состоит в том, что входное значение разбивается на два и более субблоков, часть из которых в каждом раунде обрабатывается по определенному закону, после чего накладывается на необрабатываемые субблоки (см. рис. 1).

В отличие от отечественного стандарта шифрования, алгоритм Rijndael представляет блок данных в виде двухмерного байтового массива размером 4X4, 4X6 или 4X8 (допускается использование нескольких фиксированных размеров шифруемого блока информации). Все операции выполняются с отдельными байтами массива, а также с независимыми столбцами и строками.

Алгоритм Rijndael выполняет четыре преобразования: BS (ByteSub) - табличная замена каждого байта массива (рис. 3); SR (ShiftRow) - сдвиг строк массива (рис. 4). При этой операции первая строка остается без изменений, а остальные циклически побайтно сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например, для массива размером 4X4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3 байта. Далее идет MC (MixColumn) - операция над независимыми столбцами массива (рис. 5), когда каждый столбец по определенному правилу умножается на фиксированную матрицу c(x). И, наконец, AK (AddRoundKey) - добавление ключа. Каждый бит массива складывается по модулю 2 с соответствующим битом ключа раунда, который, в свою очередь, определенным образом вычисляется из ключа шифрования (рис. 6).


Рис. 3. Операция BS.

Рис. 4. Операция SR.

Рис. 5. Операция MC.

Количество раундов шифрования (R) в алгоритме Rijndael переменное (10, 12 или 14 раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотрено несколько фиксированных размеров).

Расшифрование выполняется с помощью следующих обратных операций. Выполняется обращение таблицы и табличная замена на инверсной таблице (относительно применяемой при зашифровании). Обратная операция к SR - это циклический сдвиг строк вправо, а не влево. Обратная операция для MC - умножение по тем же правилам на другую матрицу d(x), удовлетворяющую условию: c(x) * d(x) = 1. Добавление ключа AK является обратным самому себе, поскольку в нем используется только операция XOR. Эти обратные операции применяются при расшифровании в последовательности, обратной той, что использовалась при зашифровании.

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

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

Асимметричное шифрование

Алгоритмы асимметричного шифрования, как уже отмечалось, используют два ключа: k1 - ключ зашифрования, или открытый, и k2 - ключ расшифрования, или секретный. Открытый ключ вычисляется из секретного: k1 = f(k2).

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

Примером однонаправленной функции может служить умножение двух больших чисел: N = P*Q. Само по себе такое умножение - простая операция. Однако обратная функция (разложение N на два больших множителя), называемая факторизацией, по современным временным оценкам представляет собой достаточно сложную математическую задачу. Например, разложение на множители N размерностью 664 бит при P ? Q потребует выполнения примерно 1023 операций, а для обратного вычисления х для модульной экспоненты y = ax mod p при известных a, p и y (при такой же размерности a и p) нужно выполнить примерно 1026 операций. Последний из приведенных примеров носит название - "Проблема дискретного логарифма" (DLP - Discrete Logarithm Problem), и такого рода функции часто используются в алгоритмах асимметричного шифрования, а также в алгоритмах, используемых для создания электронной цифровой подписи.

Еще один важный класс функций, используемых в асимметричном шифровании, - однонаправленные функции с потайным ходом. Их определение гласит, что функция является однонаправленной с потайным ходом, если она является однонаправленной и существует возможность эффективного вычисления обратной функции x = f-1(y), т. е. если известен "потайной ход" (некое секретное число, в применении к алгоритмам асимметричного шифрования - значение секретного ключа).

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

Алгоритм RSA

Разработанный в 1978 г. тремя авторами (Rivest, Shamir, Adleman), он получил свое название по первым буквам фамилий разработчиков. Надежность алгоритма основывается на сложности факторизации больших чисел и вычисления дискретных логарифмов. Основной параметр алгоритма RSA - модуль системы N, по которому проводятся все вычисления в системе, а N = P*Q (P и Q - секретные случайные простые большие числа, обычно одинаковой размерности).

Секретный ключ k2 выбирается случайным образом и должен соответствовать следующим условиям:

1

где НОД - наибольший общий делитель, т. е. k1 должен быть взаимно простым со значением функции Эйлера F(N), причем последнее равно количеству положительных целых чисел в диапазоне от 1 до N, взаимно простых с N, и вычисляется как F(N) = (P - 1)*(Q - 1) .

Открытый ключ k1 вычисляется из соотношения (k2*k1) = 1 mod F(N) , и для этого используется обобщенный алгоритм Евклида (алгоритм вычисления наибольшего общего делителя). Зашифрование блока данных M по алгоритму RSA выполняется следующим образом: C = M[в степени k1] mod N . Заметим, что, поскольку в реальной криптосистеме с использованием RSA число k1 весьма велико (в настоящее время его размерность может доходить до 2048 бит), прямое вычисление M[в степени k1] нереально. Для его получения применяется комбинация многократного возведения M в квадрат с перемножением результатов.

Обращение данной функции при больших размерностях неосуществимо; иными словами, невозможно найти M по известным C, N и k1. Однако, имея секретный ключ k2, при помощи несложных преобразований можно вычислить M = Ck2 mod N. Очевидно, что, помимо собственно секретного ключа, необходимо обеспечивать секретность параметров P и Q. Если злоумышленник добудет их значения, то сможет вычислить и секретный ключ k2.

Какое шифрование лучше?

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

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

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

Дополнительные источники информации

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

  1. Брассар Ж. "Современная криптология".
  2. Петров А. А. "Компьютерная безопасность: криптографические методы защиты".
  3. Романец Ю. В., Тимофеев П. А., Шаньгин В. Ф. "Защита информации в современных компьютерных системах".
  4. Соколов А. В., Шаньгин В. Ф. "Защита информации в распределенных корпоративных сетях и системах".

Полное описание алгоритмов шифрования можно найти в следующих документах:

  1. ГОСТ 28147-89. Система обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. - М.: Госстандарт СССР, 1989.
  2. Алгоритм AES: http://www.nist.gov/ae .
  3. Алгоритм RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1 .

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

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

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

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

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

Алгоритм же асимметричного шифрования рассматривает текст как одно очень большое число. Он возводит это число в степень, которая также является очень большим числом, делит результат на еще одно очень большое число и вычисляет остаток, после чего преобразует этот остаток обратно в текст. Шифровальные программы могут по-разному использовать один и тот же алгоритм, поэтому чтобы получатель мог прочесть сообщение, у него должна быть такая же программа, как и у отправителя.

И наконец, последний фрагмент головоломки - это ключи. Они различаются по длине и, следовательно, по силе: ведь чем длиннее ключ, тем больше число возможных комбинаций. Скажем, если программа шифрования использует 128-битовые ключи, то ваш конкретный ключ будет одной из 3,4 триллиона миллиардов миллиардов миллиардов, или 2128 возможных комбинаций нулей и единиц. Хакер с большей вероятностью выиграет в лотерею, чем взломает такой уровень шифрования методом «грубой силы» (т. е. планомерно пробуя ключи, пока не встретится нужный). Для сравнения: чтобы подобрать на стандартном ПК симметричный 40-битовый ключ, специалисту по шифрованию потребуется около 6 часов. Однако даже шифры со 128-битовым ключом до некоторой степени уязвимы; у профессионалов имеются изощренные методы, которые позволяют взламывать даже самые сложные коды.

Незримые защитники

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

Так, Microsoft Internet Explorer и Netscape Communicator содержат встроенные средства шифрования для операций электронной торговли. Без каких бы то ни было указаний со стороны пользователя номера кредитных карточек передаются с компьютера пользователя на Web-сервер зашифрованными по симметричному протоколу SSL (Secure Sockets Layer). По умолчанию используются 40-битовые ключи, но для обоих браузеров доступна также версия со 128-битовыми ключами.

Можно сыграть в защите своих данных и более активную роль. Популярные почтовые программы, в том числе Microsoft Outlook и Lotus Notes, в настоящее время позволяют шифровать письма. Многие «почтальоны» поддерживают протокол асимметричного шифрования S/MIME (Secure MIME, защищенный MIME), хотя лишь немногие пользователи его применяют. Для работы с S/MIME требуется цифровой идентификатор - «сертификат», который нужно покупать у компаний, таких как VeriSign, за 15 долл. в год.

Дополнительную защиту могут обеспечить автономные утилиты, которые шифруют не только почтовые сообщения, но и файлы с изображениями, документы, папки на жестком диске и т. д. Наиболее популярной из них является PGP. Ее бесплатную версию для некоммерческого использования можно получить по адресу web.mit.edu/network/pgp.html.

Аналитики предполагают, что применение систем сильного шифрования расширится благодаря недавним изменениям в регулировании экспорта криптографических систем Министерством торговли США. До 13 января большинство программ шифрования проходили по категории вооружений и подпадали под те же экспортные ограничения, что ручные гранаты или ракеты. Экспорт шифровальных программ с ключами длиннее 40 бит запрещался под страхом высокого штрафа или тюрьмы. Новые правила разрешают вывоз из США некоторых систем шифрования. По словам аналитиков, поначалу это не будет иметь серьезного эффекта, поскольку большинство шифровальных программ созданы за пределами Штатов, а импорт ПО этого типа уже был разрешен. Выгоду из изменений в законодательстве должны извлечь производители ПО, которым больше не нужно будет разрабатывать криптографические средства за границей.

Эндрю Брандт, Александра Красне

Об авторах

Эндрю Брандт - внештатный редактор PC World, Александра Красне - редактор и корреспондент PC World.

Симметричное шифрование

1 Чтобы послать зашифрованное сообщение, отправитель сочиняет его и придумывает шифровальный ключ. 2 Он пересылает ключ получателю по каналу, отличному от того, которым пойдет сообщение. 3 Программа шифрования превращает открытый текст в зашифрованный. 4 Зашифрованный текст пересылается получателю. 5 Получатель прочитывает его, используя имеющийся у него ключ.

Асимметричное шифрование

У отправителя и получателя одна и та же программа шифрования. 1 Чтобы кто-либо мог послать вам зашифрованное сообщение, вы заранее генерируете с помощью своей шифровальной программы открытый и закрытый ключи, после чего посылаете соответствующему человеку открытый. 2 Используя алгоритм шифрования и ваш открытый ключ, он получает зашифрованное сообщение. 3 Сообщение пересылается вам. 4 Вы расшифровываете сообщение, используя алгоритм расшифровки и свой закрытый ключ. Чтобы послать ответ, вам понадобится открытый ключ адресата.

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

В чем суть шифрования на секретном ключе ?

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


Рис. 12.2.

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

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

Подстановочные шифры

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

Юлий Цезарь использовал подстановочный шифр , который так и назывался - шифр Цезаря. Этот шифр заключался в замещении каждой буквы другой буквой, расположенной в алфавите на три буквы дальше от шифруемой. Таким образом, буква A преобразовывалась в D, B преобразовывалась в E, а Z преобразовывалась в C.

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

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

Одноразовые блокноты

Одноразовые блокноты (One- time Pad , OTP ) являются единственной теоретически невзламываемой системой шифрования. Одноразовый блокнот представляет собой список чисел в случайном порядке, используемый для кодирования сообщения (см. табл. 12.1). Как видно из названия системы, OTP может использоваться только один раз. Если числа в OTP являются действительно случайными, OTP имеет большую длину, чем сообщение, и используется только один раз, то шифрованный текст не предоставляет какого-либо механизма для восстановления исходного ключа (т. е. самого OTP ) и, следовательно, сообщений.

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

Таблица 12.1. Функционирование одноразового блокнота
Сообщение S E N D H E L P
Буквы, замененные соответствующими числами 19 5 14 4 8 5 12 16
Одноразовый блокнот 7 9 5 2 12 1 0 6
Добавление

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

«Криптография» с древнегреческого означает «тайнопись».

Как раньше прятали слова?

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

выбирали раба. Брили его голову наголо и наносили на неё текст сообщения водостойкой растительной краской. Когда волосы отрастали, его отправляли к адресату.

Шифр — это какая-либо система преобразования текста с секретом (ключом) для обеспечения секретности передаваемой информации.

АиФ.ru сделал подборку интересных фактов из истории шифрования.

Все тайнописи имеют системы

1. Акростих — осмысленный текст (слово, словосочетание или предложение), сложенный из начальных букв каждой строки стихотворения.

Вот, например, стихотворение-загадка с разгадкой в первых буквах:

Д овольно именем известна я своим;
Р авно клянётся плут и непорочный им,
У техой в бедствиях всего бываю боле,
Ж изнь сладостней при мне и в самой лучшей доле.
Б лаженству чистых душ могу служить одна,
А меж злодеями — не быть я создана.
Юрий Нелединский-Мелецкий
Сергей Есенин, Анна Ахматова, Валентин Загорянский часто пользовались акростихами.

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

употребляют в письме верхние буквы вместо нижних и наоборот, причём гласные остаются без перемены; так, например, токепот = котёнок и т. п.

Мудрая литорея предполагает более сложные правила подстановки.

3. «ROT1» — шифр для детишек?

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

А заменяется на Б, Б заменяется на В и так далее. «ROT1» буквально означает «вращать на 1 букву вперёд по алфавиту». Фраза «Я люблю борщ» превратится в секретную фразу «А мявмя впсъ» . Этот шифр предназначен для развлечения, его легко понять и расшифровать, даже если ключ используется в обратном направлении.

4. От перестановки слагаемых...

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

Например, слова могут быть записаны в обратном направлении, так что фраза «мама мыла раму» превращается во фразу «амам алым умар» . Другой перестановочный ключ заключается в перестановке каждой пары букв, так что предыдущее сообщение становится «ам ам ым ал ар ум» .

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

5. Сдвижной шифр Цезаря

Он состоит из 33 различных шифров, по одному на каждую букву алфавита (количество шифров меняется в зависимости от алфавита используемого языка). Человек должен был знать, какой шифр Юлия Цезаря использовать для того, чтобы расшифровать сообщение. Например, если используется шифр Ё, то А становится Ё, Б становится Ж, В становится З и так далее по алфавиту. Если используется шифр Ю, то А становится Ю, Б становится Я, В становится А и так далее. Данный алгоритм является основой для многих более сложных шифров, но сам по себе не обеспечивает надёжную защиту тайны сообщений, поскольку проверка 33-х различных ключей шифра займёт относительно небольшое время.

Никто не смог. Попробуйте вы

Зашифрованные публичные послания дразнят нас своей интригой. Некоторые из них до сих пор остаются неразгаданными. Вот они:

Криптос . Скульптура, созданная художником Джимом Санборном, которая расположена перед штаб-квартирой Центрального разведывательного управления в Лэнгли, Вирджиния. Скульптура содержит в себе четыре шифровки, вскрыть код четвёртой не удаётся до сих пор. В 2010 году было раскрыто, что символы 64-69 NYPVTT в четвёртой части означают слово БЕРЛИН.

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

Свои варианты оставляйте в комментариях к этой статье. Ответ появится в 13:00 13 мая 2014 года.

Ответ:

1) Блюдечко

2) Слоненку все надоело

3) Хорошая погода

Нередко возникает вопрос: какой тип шифрования Wi-Fi выбрать для домашнего маршрутизатора. Казалось бы мелочь, но при некорректных параметрах, к сети , да и c передачей информации по Ethernet-кабелю могут возникнуть проблемы.

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

Тип шифрования беспроводной сети: как выбрать способ защиты?

Итак, всего существует 3 типа шифрования:

  1. 1. WEP шифрование

Тип шифрования WEP появился ещё в далеких 90-х и был первым вариантом защиты Wi-Fi сетей: позиционировался он как аналог шифрования в проводных сетях и применял шифр RC4. Существовало три распространенных алгоритма шифровки передаваемых данных - Neesus, Apple и MD5 - но каждый из них не обеспечивал должного уровня безопасности. В 2004 году IEEE объявили стандарт устаревшим ввиду того, что он окончательно перестал обеспечивать безопасность подключения к сети. В данный момент такой тип шифрования для wifi использовать не рекомендуется, т.к. он не является криптостойким.

  1. 2. WPS - это стандарт, не предусматривающий использование . Для подключения к роутеру достаточно просто нажать на соответствующую кнопку, о которой мы подробно рассказывали в статье .

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

Этим фактом преспокойно пользуются многочисленные хакеры, которые достаточно быстро (за 3 - 15 часов) взламывают сети wifi, поэтому использовать данное соединение также не рекомендуется.

  1. 3. Тип шифрования WPA/WPA2

Куда лучше обстоят дела с шифрованием WPA. Вместо уязвимого шифра RC4 здесь используется шифрование AES, где длина пароля – величина произвольная (8 – 63 бита). Данный тип шифрования обеспечивает нормальный уровень безопасности безопасность, и вполне подходит для простых wifi маршрутизаторов. При этом существует две его разновидности:

Тип PSK (Pre-Shared Key) – подключение к точке доступа осуществляется с помощью заранее заданного пароля.
- Enterprise – пароль для каждого узла генерируется автоматически с проверкой на серверах RADIUS.

Тип шифрования WPA2 является продолжением WPA с улучшениями безопасности. В данном протоколе применяется RSN, в основе которого лежит шифрование AES.

Как и у шифрования WPA, тип WPA2 имеет два режима работы: PSK и Enterprise.

С 2006 года тип шифрования WPA2 поддерживается всем Wi-Fi оборудованием, соответственное гео можно выбрать для любого маршрутизатора.

Преимущества шифрования WPA2 перед WPA:

Генерация ключей шифрования происходит в процессе подключения к роутеру (взамен статических);
- Использование алгоритма Michael для контроля целостности передаваемых сообщений
- Использование вектора инициализации существенно большей длины.
Кроме того, тип шифрования Wi-Fi выбирать стоит в зависимости от того, где используется ваш роутер:

Шифрование WEP, TKIP и CKIP вообще не стоит использовать;

Для домашней точки доступа вполне подойдет WPA/WPA2 PSK;

Для стоит выбрать WPA/WPA2 Enterprise.