Дипломная работа: Устройство аппаратного шифрования данных с интерфейсом USB
Рис. 1.3 – Структура устройства криптографической защиты данных "Криптон-9"
Блок управления, служит для управления работой всего шифратора. Обычно он реализован на базе микроконтроллера. Шифропроцессор представляет собой специализированную микросхему или микросхему программируемой логики (PLD - Programmable Logic Device), которая выполняет шифрование данных. Для генерации ключей шифрования в устройстве предусмотрен аппаратный датчик случайных чисел (ДСЧ), вырабатывающий статистически случайный и непредсказуемый сигнал, преобразуемый затем в цифровую форму. Обмен командами и данными между шифратором и компьютером обеспечивается контроллером. Для хранения программного обеспечения микроконтроллера необходима энергонезависимая память, реализованная на одной или нескольких микросхемах. Это же внутреннее ПЗУ используется для записи журнала операций и других целей.
При хранении ключевой информации на дискете ее считывание производится через системную шину компьютера и существует возможность перехвата. Поэтому аппаратные шифраторы обычно снабжают интерфейсом для непосредственного подключения устройств хранения ключей. Наиболее распространенные среди них - разъемы для подключения считывателей смарт-карт (рис. 1.4) и разъемов для работы с электронными таблетками Touch Memory.
Рис. 1.4 – Устройство для считывания смарт-карт SR-210
Помимо функций шифрования информации, каждый шифратор должен обеспечивать:
· выполнение различных операций с ключами шифрования: их загрузку в шифропроцессор и выгрузку из него, а также взаимное шифрование ключей;
· расчет имитоприставки для данных и ключей (имитоприставка представляет собой криптографическую контрольную сумму, вычисленную на определенном ключе);
· генерацию случайных чисел по запросу.
1.3.2 Ключевые схемы и процесс шифрования файлов
Аппаратные шифраторы должны поддерживать несколько уровней ключей шифрования. Обычно реализуется трехуровневая иерархия ключей. Большее количество уровней, не дает заметного улучшения качества защиты, а меньшего может не хватить для ряда ключевых схем. Трехуровневая иерархия предусматривает использование сеансовых или пакетных ключей (1-й уровень), долговременных пользовательских или сетевых ключей (2-й уровень) и главных ключей (3-й уровень).
Каждому уровню ключей соответствует ключевая ячейка памяти шифропроцессора. Подразумевается, что шифрование данных выполняется только на ключах первого уровня, остальные предназначены для шифрования самих ключей при построении различных ключевых схем.
Трехуровневую схему лучше всего иллюстрирует упрощенный пример процесса шифрования файла (рис. 1.5). На этапе начальной загрузки в ключевую ячейку № 3 заносится главный ключ. Сеансовый ключ генерируется в результате запроса к ДСЧ шифратора на получение случайного числа, которое загружается в ключевую ячейку № 1, соответствующую сеансовому ключу. С его помощью шифруется содержимое файла и создается новый файл, хранящий зашифрованную информацию.
Далее у пользователя запрашивается долговременный ключ, который загружается в ключевую ячейку № 2 с расшифровкой посредством главного ключа, находящегося в ячейке № 3. Шифратор должен иметь режим расшифровки одного ключа с помощью другого внутри шифропроцессора. В этом случае ключ в открытом виде никогда не покидает устройство. Сеансовый ключ зашифровывается при помощи долговременного ключа, находящегося в ячейке № 2, выгружается из шифратора и записывается в заголовок зашифрованного файла.
Рис. 1.5 – Шифрование файла
При расшифровке файла сначала с помощью долговременного ключа пользователя расшифровывается сеансовый ключ, а затем с его помощью восстанавливается информация.
Преимущества многоуровневой ключевой схемы:
· снижается нагрузка на долговременный ключ - он используется только для шифрования коротких сеансовых ключей; это усложняет потенциальному злоумышленнику криптоанализ зашифрованной информации с целью получения долговременного ключа.
· при смене долговременного ключа можно быстро перешифровать файл: достаточно перешифровать сеансовый ключ со старого долговременного на новый.
· разгружается ключевой носитель - на нем хранится только главный ключ, а все долговременные ключи могут храниться в зашифрованном с помощью главного ключа виде даже на жестком диске ПК.
1.3.3 Хэширование паролей
При разработке любого криптоалгоритма следует учитывать, что в половине случаев конечным пользователем системы является человек, а не автоматическая система. Необходимо принимать во внимание тот факт, что пользователю придется запоминать ключ длиной до 4096 битов (512 ASCII символов), а предел запоминаемости чисел человеческим мозгом лежит на границе 12-15 символов [1].
Для решения этой проблемы были разработаны методы, преобразующие осмысленную строку произвольной длины – пароль, в указанный ключ заранее заданной длины. Для этой операции используются хэш-функции (от англ. hashing – мелкая нарезка и перемешивание).
Хэш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами:
· бесконечная область определения;
· конечная область значений;
· необратимость;
· лавинный эффект (изменение входного потока информации на один бит меняет около половины всех бит выходного потока);
Эти свойства позволяют подавать на вход хэш-функции пароли произвольной длины и, ограничив область значений функции диапазоном 0..2N -1, где N – длина ключа в битах, получать на выходе достаточно равномерно распределенные по области значения блоки информации – ключи.