Алгоритмы шифрования данных. Симметричные алгоритмы шифрования. Алгоритм шифрования RSA. Алгоритм шифрования DES. Выбор алгоритма шифрования. Типы алгоритмов шифрования

Сергей Панасенко ,
начальник отдела разработки программного обеспечения фирмы «Анкад»,
[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 .

Время жизни информации

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

§ Наличие вероятных слов. Это слова или выражения, появление которых можно ожидать в перехваченном сообщении (например, для английского текста – «and», «the», «аrе» и др.).

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

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

§ Запутывание. Развитие принципа рассеивания. В нём влияние одного символа ключа распространяется на множество символов зашифрованного

сообщения.

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

Примерами изложенных методов служат стандарты шифрования DES и ГОСТ 28147-89.

Существует два основных типа алгоритмов шифрования:

§ алгоритмы симметричного шифрования;

§ алгоритмы асимметричного шифрования.

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

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

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



Неизбежно возникаем проблема: как передать ключ и при этом не позволить злоумышленникам перехватить его.

Преимущества криптографии с симметричными ключами:

· Высокая производительность.

· Высокая стойкость. При прочих равных условиях стойкость криптографического алгоритма определяется длиной ключа. При длине ключа 256 бит необходимо произвести 10 77 переборов для его определения.

Недостатки криптографии с симметричными ключами.

§ Проблема распределения ключей. Так как для шифрования и расшифровки используется один и тот же ключ, требуются очень надёжные механизмы для их распределения (передачи).

§ Масштабируемость. Так как и отправитель, и получатель используют единый ключ, количество необходимых ключей возрастает в геометрической прогрессии в зависимости от числа участников коммуникации. Для обмена сообщениями между 10 пользователями необходимо иметь 45 ключей, а для 1000 пользователей – уже 499 500.

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

неотрекаемостъ.

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

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

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

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

Асимметричная схема идеально сочетается с использованием общедоступных сетей передачи сообщений (например, Интернет). Любой абонент сети может совершенно свободно переслать открытый ключ своему партнеру по переговорам, а последний, в роли отправителя сообщения, будет использовать этот ключ при шифровании отсылаемого сообщения (рис. 2). Это сообщение сможет расшифровать своим личным ключом только получатель сообщения, который отсылал раньше соответствующий открытый ключ. Злоумышленник, перехвативший такой ключ, сможет воспользоваться им только с единственной целью – передавать законному владельцу ключа какие-нибудь зашифрованные сообщения.

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



Рис. 2. Асимметричная схема шифрования

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

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

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

По меткому определению аналитиков CNews, год 2005-й в России прошел под девизом «защищаемся от внутренних угроз». Те же тенденции отчетливо наблюдались и в прошедшем году. Учитывая недавние инциденты, связанные с кражей баз данных и их последующей свободной продажей, многие компании стали серьезнее задумываться о проблеме безопасности своих информационных ресурсов и разграничении доступа к конфиденциальным данным. Как известно, 100%-ная гарантия сохранности ценной информации практически невозможна, но технологически свести такие риски к минимуму можно и нужно. Для этих целей большинство разработчиков средств информационной безопасности предлагают комплексные решения, сочетающие шифрование данных с контролем сетевого доступа. Попробуем рассмотреть такие системы более детально.

На рынке средств защиты от несанкционированного доступа представлено достаточно много разработчиков программно-аппаратных комплексов шифрования для серверов, хранящих и обрабатывающих конфиденциальную информацию (Aladdin, SecurIT, "Физтехсофт" и т. д.). Разобраться в тонкостях каждого предлагаемого решения и выбрать наиболее подходящее подчас непросто. К сожалению, зачастую авторы сравнительных статей, посвященных шифросредствам, не учитывая специфики этой категории продуктов, проводят сравнение по удобству использования, богатству настроек, дружелюбности интерфейса и т. п. Такое сравнение оправдано, когда речь идет о тестировании Интернет-пейджеров или менеджеров закачек, но вряд ли приемлемо при выборе решения для защиты конфиденциальной информации.

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

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

Штирлиц, вам шифровка!

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

По мнению специалистов, любой современной криптографической системе вполне достаточно 128-битового уровня безопасности. Это означает, что для успешной атаки на такую систему потребуется как минимум 2128 шагов. Согласно закону Мура, адаптированному к криптографии, достаточно даже 110 или 100 бит, однако криптографических алгоритмов, рассчитанных на такие ключи, не существует.

Сам алгоритм должен быть максимально широко распространен. Никому не известные «самописные» алгоритмы не проанализированы специалистами в области криптографии и могут содержать опасные уязвимости. С учетом этого достаточно надежными могут быть признаны алгоритмы ГОСТ, AES, Twofish, Serpent с длиной ключа 128, 192 или 256 бит.

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

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

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

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

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

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

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

Ключ от квартиры, где деньги лежат

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

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

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

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

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

Вариант первый: парольный

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

Рис. 1. Шифрование мастер-ключа с использованием пароля.

Вариант второй: внешнее хранение

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

Рис. 2. Шифрование мастер-ключа с использованием данных с внешнего носителя.

В принципе ключевой файл можно разместить и на жестком диске компьютера, но значительно безопасней хранить его отдельно от данных. Не рекомендуется в качестве ключевых файлов использовать файлы, создаваемые какими-либо общеизвестными приложениями (*.doc, *xls, *.pdf и т. д.) Их внутренняя структурированность может дать злоумышленнику дополнительную информацию. Например, все файлы, созданные архиватором WinRAR, начинаются с символов «Rar!» - это целых четыре байта.

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

Вариант третий: защищенное внешнее хранение

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

Рис. 3. Шифрование мастер-ключа с использованием защищенного внешнего носителя.

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

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

Вариант четвертый: смешанный

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

Рис. 4. Шифрование мастер-ключа с использованием нескольких компонентов.

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

Вариант пятый: с асимметричным шифрованием

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

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

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

Рис. 6. Шифрование мастер-ключа с использованием асимметричного алгоритма шифрования.

Мастер-ключ шифруется с помощью открытого ключа пользователя. Для получения доступа к данным пользователь предъявляет свою смарт-карту (или USB-ключ, являющийся полнофункциональной смарт-картой) и вводит ее PIN-код. Затем мастер-ключ аппаратно расшифровывается с помощью закрытого ключа, хранящегося на смарт-карте, и пользователь получает доступ к данным. Такой подход сочетает в себе безопасность и удобство использования.

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

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

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

Техподдержку вызывали?

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

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

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

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

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

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

Выхожу один я на дорогу...

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

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

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

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

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

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

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

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

И наконец, последний фрагмент головоломки - это ключи. Они различаются по длине и, следовательно, по силе: ведь чем длиннее ключ, тем больше число возможных комбинаций. Скажем, если программа шифрования использует 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 Вы расшифровываете сообщение, используя алгоритм расшифровки и свой закрытый ключ. Чтобы послать ответ, вам понадобится открытый ключ адресата.

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

Основная функция

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

Метод хеширования

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

Метод хеширования отличается от других методов кодирования тем, что после кодирования хеш не может быть расшифрован или изменен. Это значит, что если злоумышленник получит хеш код, он не сможет его декодировать и получить исходное сообщение. Распространенные методы хеширования: Message Digest 5 (MD5) и Secure Hashing Algorithm (SHA).

Симметрические методы

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

Этот метод кодирования используется для кодирования потока данных или блоков данных. В зависимости от объема данных, которые нужно зашифровать или расшифровать за одни раз. В потоковом режиме кодируется каждая отдельная единица информации, тогда как при блочном методе кодируются отдельные блоки информации. Распространенные методы симметрического кодирования: Data Encryption Standard (DES), Advanced Encryption Standard (AES) и International Data Encryption Algorithm (IDEA).

Асимметричные методы

Асимметричный метод шифрования или метод кодирования с открытым ключом, более безопасен, чем симметрический метод шифрования. Это тип кодирования использует два ключа, частный или закрытый ключ, и открытый ключ. Открытый ключ используется для кодирования информации и передается в открытом канале, а частный ключ, используемый для расшифровки данных, имеется только у получателя. Распространенные алгоритмы, использующие асимметричный метод шифрования RSA и Diffie-Hellman.

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