Дипломная работа: Устройство аппаратного шифрования данных с интерфейсом USB
Любой шифровальный алгоритм с использованием ключа, может быть вскрыт методом перебора всех значений ключа. Если ключ подбирается методом грубой силы (brute force), требуемая мощность компьютера растет экспоненциально с увеличением длины ключа. Ключ длиной в 32 бита требует для вскрытия шагов. Системы с 40-битным ключом требуют шагов. Системы с 56-битными ключами могут быть легко вскрыты с помощью специальной аппаратуры (используя суперкомпьютер стоимостью 250 тыс. долларов, сотрудники RSA Laboratory "взломали" утвержденный правительством США алгоритм шифрования данных DES менее чем за три дня - рис.1.6). Полный перебор ключа длиной 64 бита для RC5 в настоящее время продолжается. Ключи длиной 80 бит могут в будущем стать уязвимыми. Ключи длиной 128 бит вероятно останутся недоступными для вскрытия методом грубой силы в обозримом будущем. Можно использовать и более длинные ключи.
Рис. 1.6 – Микропроцессор и плата суперкомпьютера DES Cracker
Длины ключей, используемых в криптографии с открытым ключом обычно значительно больше, чем в симметричных алгоритмах. Здесь проблема заключается не в подборе ключа, а в воссоздании секретного ключа по открытому. В алгоритме RSA проблема эквивалентна разложению на множители большого целого числа, которое является произведением пары неизвестных простых чисел. В случае других криптосистем (DSA, Эльгамаль), проблема эквивалентна вычислению дискретного логарифма по модулю большого целого числа (такая задача считается примерно аналогичной по трудности задаче разложения на множители).
В 2007 году, группа Швейцарских ученых под руководством Арьена Ленстра осуществила факторизацию 700 битного ключа. Арьен Ленстра считает, что взлом 1024 битного RSA шифра станет возможным через 5-10 лет. Ключи длиной в 2048 и 4096 бит, криптоаналитики считают надежными на десятилетия.
Для создания надежной криптосистемы, специалисты в области криптографии, в частности Брюс Шнайер [1], рекомендуют использовать 256 битный ключ для симметричных алгоритмов и 2048 бит для алгоритмов с открытым ключом.
1.3.5 Проблемы, возникающие при шифровании файлов
Особенности шифрования файлов, о которых необходимо помнить вне зависимости от применяемого криптографического алгоритма:
· после шифрования файла его незашифрованная копия может остаться на магнитном диске, другом компьютере или в виде распечатки;
· размер блока в блочном алгоритме шифрования может значительно превышать размер отдельной порции данных в структурированном файле, в результате чего зашифрованный файл окажется намного длиннее исходного;
· если пользователь использует один и тот же ключ для шифрования всех файлов, то в результате у криптоаналитика будет много шифротекста, полученного на одном ключе, что существенно облегчит вскрытие этого ключа.
Лучше шифровать каждый файл на отдельном ключе, а затем зашифровать ключи при помощи мастер ключа. Пользователи будут избавлены от суеты, связанной с организацией надежного хранения множества ключей, т.к. разграничение доступа к различным файлам будет осуществляться путем деления множества всех сеансовых ключей на подмножества и шифрования этих подмножеств на различных мастер-ключах.
Ключи, применяемые для шифрования файлов, необходимо генерировать случайным образом. Это увеличит защищенность криптосистемы.
1.4 Выбор алгоритма шифрования
Криптографический алгоритм, также называемый шифром или алгоритмом шифрования, представляет собой математическую функцию, используемую для шифрования и расшифровки.
Алгоритм шифрования называется ограниченным, если надежность криптографического алгоритма обеспечивается за счет сохранения в тайне сути самого алгоритма.
Ограниченные алгоритмы непригодны при современных требованиях, предъявляемых к шифрованию, потому что:
· каждая группа пользователей, желающих обмениваться секретными сообщениями, должна разработать оригинальный алгоритм шифрования;
· невозможно применение готового оборудования и стандартных программ;
· необходимо разрабатывать собственный криптографический алгоритм, каждый раз, когда кто-то из пользователей группы захочет ее покинуть или когда детали алгоритма случайно станут известны посторонним.
В криптографии, описанные проблемы решаются при помощи использования ключа, который обозначается буквой «К» (от английского слова key). Ключ должен выбираться среди значений, принадлежащих множеству, которое называется ключевым пространством. И функция шифрования «Е», и функция расшифровки «D» зависят от ключа. Этот факт выражается присутствием «К» в качестве подстрочного индекса у функций «Е» и «D»:
Е к (Р) = С (1.1)
D к (С) = Р (1.2)
Справедливо следующее тождество:
D k (E k (P)) = P (1.3)
Некоторые алгоритмы шифрования используют различные ключи для шифрования и расшифровки. Это означает, что ключ шифрования «К1 » отличается от ключа расшифровки «К2 ». В этом случае справедливы следующие соотношения:
Е k1 ( P ) = С (1.4)
D k2 (С) = Р (1.5)
D k2 (E k1 (Р) ) = Р (1.6)
Надежность алгоритма шифрования с использованием ключей достигается за счет их надлежащего выбора и последующего хранения в секрете. Это означает, что такой алгоритм не требуется держать в тайне. Знание криптографического алгоритма не позволит злоумышленнику прочесть зашифрованные сообщения, поскольку он не знает секретный ключ, использованный для их шифрования.
Под криптосистемой понимается алгоритм шифрования, а также можно всевозможных ключей, открытых и шифрованных текстов.