Методы шифрования делятся на

Методы шифрования делятся на

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

  1. Бесключевые, в которых не используются какие-либо ключи.
  2. Одноключевые — в них используется некий дополнительный ключевой параметр — обычно это секретный ключ.
  3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

Шифрование является основным методом защиты; рассмотрим его подробно далее.

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

  1. Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.
    Алгоритмы электронной подписи используют два вида ключей:
    • секретный ключ используется для вычисления электронной подписи;
    • открытый ключ используется для ее проверки.
    • При использовании криптографически сильного алгоритма электронной подписи и при грамотном хранении и использовании секретного ключа (то есть при невозможности использования ключа никем, кроме его владельца) никто другой не в состоянии вычислить верную электронную подпись какого-либо электронного документа.

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

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

        Шифрование

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

        Можно представить зашифрование в виде следующей формулы:

        где:
        M (message) — открытая информация,
        С (cipher text) — полученный в результате зашифрования шифртекст,
        E (encryption) — функция зашифрования, выполняющая криптографические преобразования над M,
        k1 (key) — параметр функции E, называемый ключом зашифрования.

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

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

        Аналогичным образом можно представить и расшифрование:

        где:
        M’— сообщение, полученное в результате расшифрования,
        D (decryption) — функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,
        k2 — ключ расшифрования.

        Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M’ = M), необходимо одновременное выполнение следующих условий:

        1. Функция расшифрования должна соответствовать функции зашифрования.
        2. Ключ расшифрования должен соответствовать ключу зашифрования.

        При отсутствии верного ключа k2 получить исходное сообщение M’ = M с помощью правильной функции D невозможно. Под словом "невозможно" в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.

        Алгоритмы шифрования можно разделить на две категории (см. рис. 1):

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

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

        В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:

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

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

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

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

        Симметричное шифрование бывает двух видов:

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

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

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

          Алгоритмы на основе сети Фейстеля.

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

        Дополнительный аргумент функции f(), обозначенный на рис. 2 как Ki, называется ключом раунда. Ключ раунда является результатом обработки ключа шифрования процедурой расширения ключа, задача которой — получение необходимого количества ключей Ki из исходного ключа шифрования относительно небольшого размера (в настоящее время достаточным для ключа симметричного шифрования считается размер 128 бит). В простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования; существенно чаще процедура расширения ключа является достаточно сложной, а ключи Ki зависят от значений большинства бит исходного ключа шифрования.

        Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции "исключающее или" — XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2 n , где n — размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

        Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) — одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) — бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

        На сети Фейстеля основано большинство современных алгоритмов шифрования — благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:

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

        Алгоритмы на основе сети Фейстеля являются наиболее изученными — таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

        Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.

        Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.
        Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть — Substitution-permutation network).

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

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

        SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.
        Алгоритмы со структурой "квадрат" (Square).

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

        Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) — будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой "квадрат" является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

        На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.

        Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

        Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример — алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.

        Что такое шифрование?

        Шифрование используется человечеством с того самого момента, как появилась первая секретная информация, т. е. такая, доступ к которой должен быть ограничен. Это было очень давно — так, один из самых известных методов шифрования носит имя Цезаря, который если и не сам его изобрел, то активно им пользовался (см. врезку «Система шифрования Цезаря»).

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

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

        Основные современные методы шифрования

        Среди разнообразнейших способов шифровании можно выделить следующие основные методы:

        • Алгоритмы замены или подстановки — символы исходного текста заменяются на символы другого (или того же) алфавита в соответствии с заранее определенной схемой, которая и будет ключом данного шифра. Отдельно этот метод в современных криптосистемах практически не используется из-за чрезвычайно низкой криптостойкости.
        • Алгоритмы перестановки — символы оригинального текста меняются местами по определенному принципу, являющемуся секретным ключом. Алгоритм перестановки сам по себе обладает низкой криптостойкостью, но входит в качестве элемента в очень многие современные криптосистемы.
        • Алгоритмы гаммирования — символы исходного текста складываются с символами некой случайной последовательности. Самым распространенным примером считается шифрование файлов "имя пользователя.pwl", в которых операционная система Microsoft Windows 95 хранит пароли к сетевым ресурсам данного пользователя (пароли на вход в NT-серверы, пароли для DialUp-доступа в Интернет и т.д.).

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

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

        Симметричные и асимметричные криптосистемы

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

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

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

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

        Алгоритм RSA

        Алгоритм RSA (по первым буквам фамилий его создателей Rivest-Shamir-Adleman) основан на свойствах простых чисел (причем очень больших). Простыми называются такие числа, которые не имеют делителей, кроме самих себя и единицы. А взаимно простыми называются числа, не имеющие общих делителей, кроме 1.

        Для начала выберем два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей. Например, Unix-программа ssh-keygen по умолчанию генерирует ключи длиной 1024 бита).

        Определим параметр n как результат перемножения p и q. Выберем большое случайное число и назовем его d, причем оно должно быть взаимно простым с результатом умножения (p -1)*(q -1).

        Отыщем такое число e, для которого верно соотношение

        (e*d) mod ((p -1)*(q -1)) = 1

        (mod — остаток от деления, т. е. если e, умноженное на d, поделить на ((p -1)*(q -1)), то в остатке получим 1).

        Открытым ключом является пара чисел e и n, а закрытым — d и n.

        При шифровании исходный текст рассматривается как числовой ряд, и над каждым его числом мы совершаем операцию

        В результате получается последовательность C(i), которая и составит криптотекст. Декодирование информации происходит по формуле

        M(i) = (C(i) d ) mod n.

        Как видите, расшифровка предполагает знание секретного ключа.

        Давайте попробуем на маленьких числах.

        Установим p=3, q=7. Тогда n=p*q=21. Выбираем d как 5. Из формулы (e*5) mod 12=1 вычисляем e=17. Открытый ключ 17, 21, секретный — 5, 21.

        Зашифруем последовательность «12345»:

        C(1)= 1 17 mod 21= 1
        C(2)= 2 17 mod 21 =11
        C(3)= 3 17 mod 21= 12
        C(4)= 4 17 mod 21= 16
        C(5)= 5 17 mod 21= 17

        Криптотекст — 1 11 12 16 17.

        M(1)= 1 5 mod 21= 1
        M(2)= 11 5 mod 21= 2
        M(3)= 12 5 mod 21= 3
        M(4)= 16 5 mod 21= 4
        M(5)= 17 5 mod 21= 5

        Как видим, результат совпал.

        Криптосистема RSA широко применяется в Интернете. Когда вы подсоединяетесь к защищенному серверу по протоколу SSL, устанавливаете на свой ПК сертификат WebMoney либо подключаетесь к удаленному серверу с помощью Open SSH или SecureShell, то все эти программы применяют шифрование открытым ключом с использованием идей алгоритма RSA. Действительно ли эта система так надежна?

        Конкурсы по взлому RSA

        С момента своего создания RSA постоянно подвергалась атакам типа Brute-force attack (атака методом грубой силы, т. е. перебором). В 1978 г. авторы алгоритма опубликовали статью, где привели строку, зашифрованную только что изобретенным ими методом. Первому, кто расшифрует сообщение, было назначено вознаграждение в размере 100 долл., но для этого требовалось разложить на два сомножителя 129-значное число. Это был первый конкурс на взлом RSA. Задачу решили только через 17 лет после публикации статьи.

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

        Компания RSA (http://www.rsa.ru) регулярно проводит конкурсы на взлом собственных (и не только собственных) шифров. Предыдущие конкурсы выиграла организация Distributed.net (http://www.distributed.net/), являющаяся Интернет-сообществом добровольцев. Участники Distributed.net загружают к себе на ПК небольшую программу-клиент, которая подсоединяется к центральному серверу и получает кусочек данных для вычислений. Затем все данные загружаются на центральный сервер, и клиент получает следующий блок исходной информации. И так происходит до тех пор, пока все комбинации не будут перебраны. Пользователи, участники системы, объединяются в команды, а на сайте ведется рейтинг как команд, так и стран.

        Например, участвующей в конкурсе по взлому RC5-64 (блочный шифр компании RSA, использующий ключ длиной 64 бита) организации Distributed.net удалось осуществить взлом через пять лет (1757 дней) работы. За это время в проекте участвовали 327 856 пользователей и было перебрано 15 268 315 356 922 380 288 вариантов ключа. Выяснилось, что была (не без юмора) зашифрована фраза «some things are better left unread» («некоторые вещи лучше оставлять непрочтенными»). Общие рекомендации по шифру RC5-64 таковы: алгоритм достаточно стоек для повседневных нужд, но шифровать им данные, остающиеся секретными на протяжении более пяти лет, не рекомендуется».

        Сейчас организация Distributed.net взламывает шифр RC5-72 (ключ 72 бита длиной). Что интересно, добавление всего 8 бит в длину ключа привело к тому, что за 172 дня существования очередного конкурса по взлому было перебрано всего лишь 0,023% от всех ключей. Что ж, подождем.

        Шифрование в Windows

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

        • пароли для доступа к сетевым ресурсам (домен, принтер, машины в сети и т.д.);
        • пароли для доступа в Интернет с помощью DialUp;
        • кэш паролей (в браузере есть такая функция — кэшировать пароли, и Windows сохраняет все когда-либо вводимые вами в Интернете пароли);
        • сертификаты для доступа к сетевым ресурсам и зашифрованным данным на самой машине.

        Эти данные хранятся либо в pwl-файле (в Windows 95), либо в SAM-файле (в Windows NT/2000/ XP). Это файл Реестра Windows, и потому операционная система никому не даст к нему доступа даже на чтение. Злоумышленник может скопировать такие файлы, только загрузившись в другую ОС или с дискеты. Утилит для их взлома достаточно много, самые современные из них способны подобрать ключ за несколько часов.

        Это является одной из причин, по которым в любой курс по обеспечению безопасности предприятия введены лекции о неинформационных средствах, а именно об охране, пропускном режиме, ограничении доступа посторонних лиц к компьютерам и т. д. Например, ограничения NTFS (файловая система Windows NT/2000) на доступ к данным не действуют в другой ОС. Если же злоумышленник сможет загрузить c дискеты MS-DOS, то любая информация из разделов NTFS может быть считана при наличии соответствующего драйвера, а такие драйверы уже существуют и для MS-DOS, и для Unix.

        В операционную систему Windows 2000 встроена система шифрования EFS (Encrypting File System), позволяющая хранить некоторые блоки файловой системы NTFS в зашифрованном виде. Эта технология очень удобна, потому что работает как встроенный системный сервис. Для того чтобы зашифровать файл или каталог, нажмите на кнопку Advanced в свойствах файла или директории. В появившемся окне (рис. 1) отметьте галочкой Encrypt contents to secure data.

        Рис. 1

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

        Программы-шифраторы

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

        Например, CryptoForge (http://www.cryptoforge.com/) позволяет зашифровать файл любым из четырех алгоритмов (Blowfish, TripleDES, Gost и даже Rijndael — см. врезку «Конкурс AES»). Встраиваясь в систему, программа добавляет в контекстное меню проводника Explorer пункт Encrypt. Нажав на него, вы получите предложение ввести пароль (рис. 2).

        Рис. 2

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

        Цифровая подпись

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

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

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

        Один из самых распространенных в России почтовых клиентов, программа The Bat!, обладает встроенными возможностями добавлять цифровые подписи к письмам (обратите внимание на пункт меню Privacy при редактировании письма). Подробнее об этой методике читайте в статье «Электронная цифровая подпись» (см. «Мир ПК», № 3/02).

        Рис. 3

        Криптография

        Криптография — наука о принципах, средствах и методах преобразования информации для защиты ее от несанкционированного доступа и искажения. В последнее время она развивается очень и очень бурно. Это бесконечная увлекательная гонка, требующая много времени и сил: криптоаналитики взламывают алгоритмы, которые еще недавно были стандартами и повсеместно использовались. Кстати, недавно математики Дэн Голдстон (США) и Кем Илдирим (Турция) доказали первую закономерность в распределении простых чисел (до сих пор таких закономерностей не замечали). Простые числа располагаются на числовой оси некоторыми скоплениями, что несколько облегчает их поиск.

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

        Об авторе
        Олег Бунин — специалист по разработке ПО для крупных Интернет-проектов, сотрудник компании «Рамблер», vbob@aha.ru.

        Литература
        1. Лукашов И. В. Криптография? Железно! // Мир ПК. 2003. № 3 (http://www.osp.ru/pcworld/2003/03/100.htm).
        2. Панасенко С. П., Ракитин В.В. Аппаратные шифраторы // Мир ПК. 2002. № 8 (http://www.osp.ru/pcworld/2002/08/077.htm).
        3. Панасенко С. П. Чтобы понять язык криптографов // Мир ПК. 2002. № 5 (http://www.osp.ru/pcworld/2002/05/086.htm).
        4. Панасенко С. П. Чтобы понять язык криптографов // Мир ПК. 2002. № 6 (http://www.osp.ru/pcworld/2002/06/091.htm).
        5. Панасенко С. П. Электронная цифровая подпись // Мир ПК. 2002. № 3 (http://www.osp.ru/pcworld/2002/03/078.htm).
        6. Панасенко С. П. Защита информации в компьютерных сетях: шифрование // Мир ПК. 2002. № 2 (http://www.osp.ru/pcworld/2002/02/070.htm).
        7. Дмитриев А. Системы защиты информации // Мир ПК. 2001. № 5 (http://www.osp.ru/pcworld/2001/05/010.htm).
        8. Введение в криптографию / Под ред. В.В. Ященко. М.: МЦНМО, 2000.
        9. Носов В. А. Краткий исторический очерк развития криптографии // Материалы конференции "Московский университет и развитие криптографии в России", МГУ, 17-18 октября 2002 г.
        10. Саломаа А. Криптография с открытым ключом. М., 1996 .
        11. Циммерман Ф. PGP — кодирование с открытым ключом для всех.

        Система шифрования Цезаря

        Пример алгоритма замены — система шифрования Цезаря. Этот метод основан на замене каждой буквы сообщения на другую путем смещения от исходной на фиксированное количество символов. Попробуйте расшифровать четверостишие Омара Хайяма (время выполнения — 10 минут).

        РЛЗЬ ЁМЭЙЗ АВБЖУ ИЙЗАВЛУ, БЖЩЛУ ЖЩЭЗЬЖЗ ЖЮЁЩЕЗ, ЭЫЩ ЫЩАЖФО ИЙЩЫВЕЩ БЩИЗЁЖВ ЭЕШ ЖЩРЩЕЩ: ЛФ ЕМРСЮ ЪЗЕЗЭЩГ, РЮЁ РЛЗ ИЗИЩЕЗ ЮКЛУ, В ЕМРСЮ ЬМЭУ ЗЭВЖ, РЮЁ ЫЁЮКЛЮ К ДЮЁ ИЗИЩЕЗ.

        Успели? Привожу «отгадку»:

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

        Ключ для расшифровки: сдвигаем на семь символов (берем седьмой) влево по алфавиту. Алфавит закольцован. Регистр символов не учитывается.

        Windows и пароли

        Как Windows шифрует пароли?

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

        Конкурс AES (Advanced Encryption Standard)

        В 80-х гг. в США приняли стандарт симметричного шифрования для внутреннего применения — DES ((Data Encryption Standard, подобный стандарт есть и в России). Но в 1997 г., когда стало понятно, что 56-битового ключа DES недостаточно для надежной криптосистемы, Американский институт стандартизации объявил конкурс на новый стандартный алгоритм. Из 15 вариантов был выбран лучший: бельгийский алгоритм Rijndael (его название составлено из фамилий авторов — Rijmen и Daemen, читается как «Рэйндал». Этот алгоритм уже встроен в различные криптографические средства, поставляемые на рынок). Другими финалистами конкурса стали MARS, RC6, Serpent, TwoFish. Все эти алгоритмы были признаны достаточно стойкими и успешно противостоящими всем широко известным методам криптоанализа.

        Криптографические хэш-функции

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

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

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

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

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

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

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

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

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

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

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

        Число вариантов двойной перестановки быстро возрастает при увеличении размера таблицы: для таблицы 3×3 — 36 вариантов, для таблицы 4×4 — 576 вариантов, для таблицы 5×5 — 14400 вариантов. Однако двойная перестановка не отличается высокой стойкостью и сравнительно просто "взламывается" при любом размере таблицы шифрования.

        Шифры простой замены. При шифровании заменой (подстановкой) символы шифруемого текста заменяются символами того же или другого алфавита с заранее установленным правилом замены. В шифре простой замены каждый символ исходного текста заменяется символами того же алфавита по одному правилу на всем протяжении текста. Часто шифры простой замены называют шифрами одноалфавитной подстановки.

        Система шифрования Цезаря. Шифр Цезаря является частным случаем шифра простой замены (одноалфавитной подстановки). Свое название этот шифр получил по имени римского императора Гая Юлия Цезаря, который использовал этот шифр при переписке.

        При шифровании исходного текста каждая буква заменялась на другую букву того же алфавита по следующему правилу. Заменяющая буква определялась путем смещения по алфавиту m от исходной буквы на k букв. При достижении конца алфавита выполнялся циклический переход к его началу. Цезарь использовал латинский алфавит m = 26 и шифр замены при смещении k = 3. Такой шифр замены можно задать таблицей подстановок, содержащей соответствующие пары букв открытого текста и шифротекста. Совокупность возможных подстановок для k = 3 показана в таблице 6.1.

        Таблица 6.1 – Одноалфавитные подстановки (k = 3, m = 26)

        A ® D E ® H I ® L M ® P Q ® T U ® X Y ® B
        B ® E F ® I J ® M N ® Q R ® U V ® Y Z ® C
        C ® F G ® J K ® N O ® R S ® V W ® Z
        D ® G H ® K L ® O P ® S T ® W X ® A

        Система шифрования Цезаря образует, по существу, семейство одноалфавитных подстановок для выбираемых значений ключа k, причем 0 £ k

        Читайте также:  Адрес microsoft в москве
        Ссылка на основную публикацию
        Мегафон опции за рубежом
        Всем абонентам мобильной связи известно, что оплата услуг в роуминге достаточно высокая. Кроме того, нужно платить за входящие звонки. И...
        Люстра с пультом управления светодиодная инструкция
        Идея установить и подключить люстру с пультом замечательна тем, что хозяева квартиры получают возможность управлять освещением, не привязываясь к выключателю....
        Ля рош позе скидки
        12 актуальных предложений март 2020 Сэкономьте 10% с промокодом при покупке более 3000 рублей Приобретите в интернет-магазине La Roche Posay...
        Мегафон отправить деньги с телефона на телефон
        Каждый клиент компании Мегафон при необходимости может со своего счёта пополнить баланс близкого, который также пользуется услугами данного оператора. Для...
        Adblock detector