
- •Возможные нарушения безопасности.
- •Мобильные ботнеты.
- •Другие атаки.
- •Объекты риска.
- •Направления защиты информации. Конфиденциальность, целостность сообщения, аутентичность, аппелируемость.
- •Пирамида безопасности.
- •Программные средства обеспечения безопасности. Средства шифрования.
- •Методы и алгоритмы шифрования.
- •Симметричные алгоритмы шифрования.
- •Потоковые шифры.
- •Аcимметричные алгоритмы шифрования
- •Сравнение cимметричных и аcимметричных алгоритмов шифрования
- •Реализация алгоритмов шифрования
- •Литература:
- •Содержание.
Методы и алгоритмы шифрования.
Шифрование — наиболее общий и надежный, при достаточном качестве программной или аппаратной системы, способ защиты информации, обеспечивающий практически все его аспекты, включая разграничение прав доступа и идентификацию подлинности («электронную подпись»). Однако существуют два обстоятельства, которые необходимо учитывать при использовании программных средств, реализующих данное направление. Во-первых, любое зашифрованное сообщение в принципе всегда может быть расшифровано (хотя время, затрачиваемое на это, подчас делает результат расшифровки практически бесполезным). Во-вторых, перед непосредственной обработкой информации и выдачей ее пользователю производится расшифровка —при этом информация становится открытой для перехвата.
С точки зрения качества защиты информации шифрование можно условно разделить на«сильное», или «абсолютное», практически не вскрываемое без знания пароля, и«слабое», затрудняющее доступ к данным, но практически (при использовании современных ЭВМ) вскрываемое тем или иным способом за реальное время без знания исходного пароля.
Шифровальные методы подразделяются на два принципиальных направления:
симметричные классические методы с секретным ключом, в которых для зашифровки и дешифрации требуется предъявление одного и того же ключа (пароля);
Потоковые (шифрование потока данных):
с одноразовым или бесконечным ключом (infinite-key cipher);
с конечным ключом (система Вернама - Vernam);
на основе генератора псевдослучайных чисел (ПСЧ).
В потоковых шифрах, т. е. при шифровании потока данных, каждый бит исходной информации шифруется независимо от других с помощью гаммирования. Гаммирование - наложение на открытые данные гаммы шифра (случайной или псевдослучайной последовательности единиц и нулей) по определенному правилу. Обычно используется "исключающее ИЛИ", называемое также сложением по модулю 2 и реализуемое в ассемблерных программах командой XOR. Для расшифровывания та же гамма накладывается на зашифрованные данные. При однократном использовании случайной гаммы одинакового размера с зашифровываемыми данными взлом кода невозможен (так называемые криптосистемы с одноразовым или бесконечным ключом). В данном случае "бесконечный" означает, что гамма не повторяется. В некоторых потоковых шифрах ключ короче сообщения. Так, в системе Вернама для телеграфа используется бумажное кольцо, содержащее гамму. Конечно, стойкость такого шифра не идеальна. Понятно, что обмен ключами размером с шифруемую информацию не всегда уместен. Поэтому чаще используют гамму, получаемую с помощью генератора псевдослучайных чисел (ПСЧ). В этом случае ключ - порождающее число (начальное значение, вектор инициализации, initializing value, IV) для запуска генератора ПСЧ. Каждый генератор ПСЧ имеет период, после которого генерируемая последовательность повторяется. Очевидно, что период псевдослучайной гаммы должен превышать длину шифруемой информации. Генератор ПСЧ считается корректным, если наблюдение фрагментов его выхода не позволяет восстановить пропущенные части или всю последовательность при известном алгоритме, но неизвестном начальном значении [ При использовании генератора ПСЧ возможны несколько вариантов:
Побитовое шифрование потока данных. Цифровой ключ используется в качестве начального значения генератора ПСЧ, а выходной поток битов суммируется по модулю 2 с исходной информацией. В таких системах отсутствует свойство распространения ошибок. 2. Побитовое шифрование потока данных с обратной связью (ОС) по шифртексту. Такая система аналогична предыдущей, за исключением того, что шифртекст возвращается в качестве параметра в генератор ПСЧ. Характерно свойство распространения ошибок. Область распространения ошибки зависит от структуры генератора ПСЧ. 3. Побитовое шифрование потока данных с ОС по исходному тексту. Базой генератора ПСЧ является исходная информация. Характерно свойство неограниченного распространения ошибки. 4. Побитовое шифрование потока данных с ОС по шифртексту и по исходному тексту.
Блочные (шифрование данных поблочно):
Шифры перестановки (permutation, P-блоки);
Шифры замены (подстановки, substitution, S-блоки):
моноалфавитные (код Цезаря);
полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma);
5) составные
Lucipher (фирма IBM, США);
DES (Data Encryption Standard, США);
FEAL-1 (Fast Enciphering Algoritm, Япония);
IDEA/IPES (International Data Encryption Algorithm/
Improved Proposed Encryption Standard, фирма Ascom-Tech AG, Швейцария);
B-Crypt (фирма British Telecom, Великобритания);
ГОСТ 28147-89 (СССР); * Skipjack (США).
асимметричные методы с открытым ключом, в которых для зашифровки и дешифрации требуется предъявление двух различных ключей (один объявляется секретным (приватным), а второй — открытым(публичным)), причем пара ключей всегда такова, что по публичному невозможно восстановить приватный, и ни один из них не подходит для решения обратной задачи.
Диффи-Хеллман DH (Diffie, Hellman);
Райвест-Шамир-Адлeман RSA (Rivest, Shamir, Adleman);
Эль-Гамаль ElGamal.
Кроме того, есть разделение алгоритмов шифрования на собственно шифры (ciphers) и коды (codes). Шифры работают с отдельными битами, буквами, символами. Коды оперируют лингвистическими элементами (слоги, слова, фразы).
Шифрование производится путем выполнения некоторой математической (или логической) операции (серии операций) над каждым блоком битов исходных данных (так называемая криптографическая обработка). Применяются также методы рассеивания информации, например обыкновенное разделение данных на нетривиально собираемые части, или стеганография, при которой исходные открытые данные размещаются определенным алгоритмом в массиве случайных данных, как бы растворяясь в нем. От произвольной трансформации данных шифрование отличается тем, что выполняемое им преобразование всегда обратимо при наличии симметричного или асимметричного ключа дешифрации.
Идентификация подлинности и контроль целостности основываются на том, что дешифрация данных с определенным ключом возможна только в случае, если они были зашифрованы с соответствующим (тем же или парным) ключом и не подверглись изменению в зашифрованном виде. Таким образом, если в случае симметричного метода обеспечена секретность (уникальность) двух копий одного ключа, а в случае асимметричного метода — секретность (уникальность) одного из пары ключей, успех операции дешифрации данных гарантирует их подлинность и целостность (разумеется, при условии надежности используемого метода и чистоты его программной или аппаратной реализации).