Устройство аппаратного шифрования данных с интерфейсом USB
В устройстве используется хэш-функция
SHA2-384, так как:
·
это одна из
немногих криптостойких функций хэширования на сегодняшний день;
·
длина выходного
сообщения функции равняется 384 бита. SHA2 будет использоваться для хэширования
паролей. Полученный, с помощью SHA2-384, ключ к Blowfish полностью
соответствует требованиям, предъявляемым к длине ключей.
Основным требованием, предъявляемым к
разрабатываемому устройству, является высокая криптостойкость системы
шифрования. Поэтому для генерации сеансовых ключей шифрования необходимо
использовать генератор случайных чисел.
1.7.1 Методы
получения случайных чисел
При использовании как симметричных,
так и асимметричных криптосистем необходимо иметь хороший источник случайных
чисел для создания ключей. Главная особенность такого источника состоит в том,
что создаваемые числа должны быть неизвестными и непредсказуемыми для
криптоаналитика.
Лучшим вариантом является создание
случайных чисел на основе некоторого физического процесса, так как многие
физические процессы действительно случайны. Например, для этого можно
использовать аппаратные средства типа “шумящего” диода. Можно использовать
какие-либо физические движения пользователя, например, скорость печати в
микросекундах, перемещения мыши и т.д.
Практически все методы генерации
случайных чисел имеют некоторую корреляцию и не позволяют обеспечить
достаточную статистическую хаотичность. Поэтому перед использованием,
полученные ключи следует обрабатывать надежной хэш-функцией. (См. пункт 1.6.)
Другой подход состоит в том, чтобы
использовать генератор псевдослучайных чисел, запускаемый случайным числом.
Главное различие между случайными и псевдослучайными числами в том, что
последние обязательно являются периодическими, а действительно случайные числа
нет.
Так как генераторы псевдослучайных
чисел являются детерминированными алгоритмами, то важно найти среди них
криптографически защищенный, а кроме этого использовать хорошее случайное число
для запуска генерации.
Линейные конгруэнтные
генераторы являются генераторами псевдослучайных чисел, которые вычисляются по
формуле:
Xn =
(a∙Xn-1 + b) mod m, (1.16)
в которых Xn -
это n-ый член последовательности, а Xn-1 - предыдущий член
последовательности. Переменные a>0, b>0 и m>0 целочисленные константы: a - множитель, b-
инкремент, и m - модуль.
Получаемая последовательность зависит
от выбора стартового числа X0 и при
разных его значениях получаются различные последовательности случайных чисел.
Период такого генератора
не больше, чем m. Если a, b и m выбраны правильно, то генератор будет генератором
с максимальным периодом и его период будет равен m.
Преимуществом линейных
конгруэнтных генераторов является их быстрота за счет малого количества
операций на бит.
Линейные конгруэнтные
генераторы нельзя использовать в криптографии, так как они предсказуемы.
Впервые линейные конгруэнтные генераторы были взломаны Джимом Ридсом (Jim
Reeds), а затем Джоан Бояр (Joan Boyar).
Другие исследователи
расширили идеи Джоан Бояр, разработав способы вскрытия любого полиномиального
генератора. Таким образом была доказана бесполезность конгруэнтных генераторов
для криптографии.
1.7.3 Алгоритм
Блюма-Блюма-Шуба (Blum Blum Shub, BBS)
Алгоритм
представляет собой генератор псевдослучайных чисел, предложенный в 1986 году Ленор
Блюм, Мануэлем Блюм и Майклом Шубом.
Алгоритм BBS
выглядит так:
xn+1 = (xn)2 mod M,
(1.17)
где M=p∙q
является произведением двух больших простых чисел p и q. На каждом шаге
алгоритма выходные данные получаются из xn путем взятия либо бита
четности, либо нескольких наименее значимых бит из xn .
Алгоритм Блюма-Блюма-Шуба
рекомендуется использовать только в криптографии. Этот метод имеет необычно
высокую стойкость, которая обеспечивается качеством генератора исходя из
вычислительной сложности задачи факторизации чисел. Вычисление выходных бит
настолько же трудно, как и факторизация M [1].
Генератор Блюма-Блюма-Шуба
нецелесообразно использовать в разрабатываемом устройстве из-за низкого
быстродействия алгоритма. В этом генераторе используются арифметические
операции над большими числами, реализация которых на микроконтроллере займет
значительное время.
В устройстве будут использоваться
случайные числа, полученные от аппаратуры микроконтроллера и преобразовываться
в 384 – битное число с помощью хэш-функции SHA2-384. Это необходимо делать для
улучшения равномерности распределения случайных чисел.
Для получения случайных чисел, в
устройстве используются 32-х разрядный счетчик, на вход которого подается
максимально возможная частота. При включении устройства, счетчик
инициализируется значением сохраненным ранее в EEPROM. Поскольку операции
шифрования файлов инициируются пользователем в случайные промежутки времени, в
начале каждой такой операции содержимое счетчика подается на вход функции хэширования.
Полученное значение используется в качестве сеансового ключа, а его младшие 32 бита
служат для задания нового значения счетчика.
Проанализировав техническое задание, составим
структурную схему устройства:
·
Устройство
предназначено для аппаратного шифрования компьютерных файлов. Поэтому
устройство будет использоваться в составе с персональным компьютером.
·
Устройство будет
производить шифрование данных с большой скоростью (до 12 Мбит/сек). Поэтому
основой устройства должен быть высокопроизводительный 32-х разрядный
микроконтроллер.
·
Устройство
связано с компьютером через интерфейс USB на скорости 12 Мбит/сек. Поэтому
микроконтроллер, используемый в устройстве, должен быть оснащен full-speed USB
контроллером.
·
Для
предотвращения влияния на устройство высокочастотных помех из линии связи USB
интерфейса, в состав устройства необходимо включить фильтр USB сигнала.
·
Питание
устройства обеспечивается интерфейсом USB. Для обеспечения надежной работы
аппаратного шифратора, необходимо предусмотреть стабилизацию и, если
необходимо, преобразование полученного от USB напряжения.
·
Необходимо
предусмотреть индикацию подачи питания на устройство и индикацию нормальной
работы устройства.
·
Для генерации
сеансовых ключей шифрования в устройстве реализован аппаратно-программный
генератор случайных чисел.
·
В устройстве
должна присутствовать энергонезависимая EEPROM память данных для хранения
мастер ключей.
Структурная схема устройства для
аппаратного шифрования информации, которая соответствует приведенным выше
требованиям, изображена на рисунке 1.9.
Рис. 1.9 – Структурная схема
устройства аппаратного шифрования
2.
РАЗРАБОТКА СХЕМОТЕХНИЧЕСКОЙ
РЕАЛИЗАЦИИ АППАРАТНОГО ШИФРАТОРА
2.1
Выбор элементной
базы для шифратора
Согласно техническому заданию,
элементная база для аппаратного шифратора должна состоять из компонентов
доступных в Украине.
2.1.1
Выбор микроконтроллера
2.1.1.1
Обоснование
выбора
Согласно техническому заданию,
устройство должно поддерживать USB. Следовательно, нужен контроллер с поддержкой
этого интерфейса.
Устройство должно шифровать файлы с
максимально возможной скоростью, поэтому контроллер должен быть быстрым.
Наиболее подходящими контроллерами
являются Atmel AT91SAM7S64, Atmel AT89C5131, Philips LPC2141, Philips LPC2142.
Таблица 2.1 – Параметры
микроконтроллеров
Микроконтроллер |
Быстродействие,
MIPS |
Объем
flash, Кб |
Объем
ОЗУ, Кб |
Цена,
USD |
AT91SAM7S64 |
50 |
64 |
16 |
5 |
AT89C5131 |
4 |
32 |
1 |
8 |
LPC2141 |
55 |
32 |
8 |
5 |
LPC2142 |
55 |
64 |
16 |
7 |
Коэф.
важности |
0,2 |
0,15 |
0,15 |
0,5 |
Выберем один из них по матрице
параметров:
1)
;
2)
Составим матрицу
приведенных параметров:
-
если большее
значение параметра соответствует
лучшему качеству ИМС, то ;
-
если параметр не
удовлетворяет этому условию, то .
;
3)
Составим матрицу
нормированных параметров A:
, где –
максимальное значение j-го параметра.
;
4)
Вычислим
оценочную функцию :
;
Т.к. наименьшее,
то AT91SAM7S64 будет оптимальным выбором.
2.1.1.2
Технические
характеристики микроконтроллера AT91SAM7S64.
Характеристики микроконтроллера [2]:
·
Содержит ядро
процессора ARM7TDMI® ARM® Thumb® ;
·
Высокопроизводительная
32-разр. RISC-архитектура;
·
Обширный набор
16-разр. инструкций;
·
Лидер по
соотношению производительность/энергопотребление;
·
Встроенное ядро
внутрисхемной эмуляции с отладочным коммуникационным каналом;
·
Внутренняя
высокоскоростная флэш-память размером 64 кбайт и организацией 512 страниц по
128 байт в каждой
- Однотактный доступ при частотах до 30
МГц. Упреждающий буфер оптимизирует выполнение Thumb-инструкций при
максимальном быстродействии;
- Время программирования страниц: 4 мс,
в т.ч. автоматическое стирание страницы; время полного стирания: 10 мс;
- 10,000 циклов записи, 10-летний срок хранения
данных, функции защиты секторов, бит защиты флэш-памяти;
- Интерфейс быстрого программирования
флэш-памяти для серийного производства;
- 16 кбайт внутреннего
высокоскоростного СОЗУ, однотактный доступ при максимальном быстродействии;
·
Контроллер памяти
(MC)
- Встроенный контроллер флэш-памяти,
определение некорректного доступа и формирование статуса ошибки;
·
Контроллер сброса
(RSTC)
- Состоит из схемы сброса при подаче
питания и схемы детектора снижения напряжения питания с откалиброванным в заводских
условиях порогом;
- Выполняет обработку внешнего сигнала
сброса и формирует информацию об источнике сброса;
·
Тактовый
генератор (CKGR)
- Маломощный RC-генератор, встроенный
генератор частот от 3 до 20 МГц;
- Одна схема ФАПЧ;
·
Контроллер управления
энергопотреблением (PMC)
- Возможность программной оптимизации
энергопотребления, в т.ч. с использованием режимов пониженного быстродействия
(Slow Clock), возможно снижение частоты до 500 Гц) и режим холостого хода
(Idle);
- Три программируемых внешних тактовых
сигнала;
·
Усовершенствованный
контроллер прерываний (AIC)
- Индивидуальное маскирование, восемь
уровней приоритетов, векторизованные источники прерываний;
- Два внешних источника прерывания +
один внешний источник прерывания с быстрым реагированием, защита от ложных
прерываний;
·
Блок отладки
(DBGU);
- 2-пров. УАПП + поддержка прерывания
по отладочному коммуникационному каналу, программируемое предотвращение доступа
со стороны внутрисхемного эмулятора;
·
Интервальный
таймер (PIT);
- 20-разр. программируемый счетчик + 12
разр. счетчик интервалов;
·
Сторожевой таймер
(WDT)
- 12-разр. программируемый счетчик с
защитой ключом;
- Выполняет сброс или генерирует запрос
на прерывание системы;
- Счетчик может быть остановлен, когда
процессор находится в состоянии отладки или в режиме холостого хода;
·
Таймер реального
времени (RTT)
- 32-разр. циклический счетчик с
сигнализатором;
- Работает от внутреннего RC-генератора;
·
Один контроллер
параллельного ввода/вывода (PIOA)
- 42 программируемые линии ввода-вывода,
мультиплексированные с двумя встроенными периферийными модулями;
- Возможность генерации прерывания по
изменению на входе любой линии ввода-вывода;
- Индивидуально программируемые
открытый сток, подтягивающий резистор и синхронизированный выход;
- 11 канальный контроллер периферийных
данных (PDC);
- Один полноскоростной контроллер USB
2.0 (12 Мбит/сек), режим устройства;
- Встроенный трансивер, встроенные
конфигурируемые буферы FIFO емкостью 328 байт каждый;
- Один синхронный последовательный
контроллер (SSC);
- Отдельные синхронизация и сигналы
синхронизации кадра у каждого приемника и передатчика;
- Поддержка аналогового интерфейса I2S,
поддержка временного уплотнения;
- Возможность высокоскоростной
непрерывной передачи потока данных в 32-разр. формате;
·
Два универсальных
синхронных/асинхронных приемопередатчика (УСАПП)
- Раздельные генераторы скорости связи,
инфракрасная модуляция/демодуляция (IrDA);
- Поддержка смарт-карт ISO7816 T0/T1,
аппаратное подтверждение связи, поддержка RS485;
- Полный интерфейс модема на УСАПП1;
·
Последовательный
периферийный интерфейс SPI с режимами ведущий/подчиненный
- Программируемая длина данных от 8 до
16 бит, четыре внешних выхода выбора микросхем;
- Один трехканальный 16-разр.
таймер-счетчик (TC);
- Три внешних тактовых входа, две линии
универсального ввода-вывода на каждый канал;
- Два ШИМ-генератора, режим захвата и
генерации импульсов, возможность реверсирования счета;
- Один четырехканальный 16-разр.
ШИМ-контроллер (PWMC);
- Один двухпроводной интерфейс (TWI);
- Работает только в режиме ведущего,
поддерживаются все двухпроводные ЭСППЗУ фирмы Atmel;
·
Один 8-канальный
10-разр. аналогово-цифровой преобразователь, четыре канала мультиплексированы с
линиями цифрового ввода-вывода;
·
Граничное сканирование
всех цифровых линий в соответствии со стандартом IEEE 1149.1 через интерфейс
JTAG;
·
Линии
ввода-вывода совместимы 5В уровнями и обладают повышенной нагрузочной
способностью, до 16 мА каждая;
·
Источники питания
- Встроенный стабилизатор напряжения 1,8
В с нагрузочной способностью до 100 мА для питания ядра и внешних компонентов;
- Напряжение питания ввода-вывода VDDIO
= 1,8В или 3,3В, отдельное питание флэш-памяти VDDFLASH = 3,3В;
- Напряжение питания ядра VDDCORE = 1,8В
(с детектором понижения напряжения);
- Напряжение питании аналоговой схемы
VDDANA = 3,3В;
·
Статическая
работа на частотах до 55 МГц при наихудших условиях работы: напряжение питания
1,65 В, температура 85°С.
2.1.2
Выбор
стабилизатора напряжения
Согласно техническому заданию размеры
устройства не должны превышать 55х30х15 мм. Из этого следует, что стабилизатор
нужно выбирать в миниатюрном корпусе. Немаловажный параметр стабилизатора –
падение напряжения на нем. Чем оно меньше - тем лучше. Важным критерием
является цена устройства.
На украинском рынке представлены
такие стабилизаторы напряжения: LM1117, IRU1117, MC33269.
Выберем один из них по матрице
параметров (Таблица 2.2).
Таблица 2.2 – Параметры стабилизаторов
напряжения
Стабилизатор |
Падение напряжения, В |
Макс. размер, мм |
Цена, USD |
LM1117 |
1 |
7 |
0.9 |
IRU1117 |
1.2 |
7 |
0.6 |
MC33269 |
1 |
9 |
0.9 |
Коэф. важности |
0.4 |
0.4 |
0.2 |
1)
;
2)
Составим матрицу
приведенных параметров:
-
если большее
значение параметра соответствует лучшему качеству
ИМС, то ;
-
если параметр не
удовлетворяет этому условию, то .
;
3)
Составим матрицу
нормированных параметров A:
,
где – максимальное
значение j-го параметра.
;
4)
Вычислим
оценочную функцию :
;
Т.к. наименьшее,
то LM1117 будет оптимальным выбором.
2.2 Описание работы схемы
Питание +5 В и сигнал интерфейса USB
поступает с разъема XS1. Резистор R1 подтягивает линию USB D+ на +3,3 В (для
автоматического определения скорости устройства хостом). Дроссели L1-L5
используются для подавления высокочастотных помех. Конденсаторы С3, С5, С6 и
резисторы R2, R3 представляют собой стандартную схему фильтрации сигналов USB. После
фильтров сигнал USB поступает в микроконтроллер AT91SAM7S64 DD1.
Схема питания, генерирующая +3,3 В, собрана
на линейном стабилизаторе напряжения LM1117-3.3 DA1, диоде Шотки VD1,
предотвращающем обратные токи, и блокировочных конденсаторах С1, С2, С4.
Конденсаторы С7, С9 и резистор R4 это
цепочка, необходимая для работы ФАПЧ (PLL) микроконтроллера.
Конденсаторы C12, C13 совместно с
кварцевым резонатором ZQ1 представляют собой колебательный контур, задающий
частоту генератора, встроенного в микроконтроллер.
C8, C10, C11, C14, С15, С16, С17,
С18, С19, С20, С21, С22 – это блокировочные конденсаторы по питанию
микроконтроллера.
При включении устройства в порт USB,
микроконтроллер инициализирует внутренние регистры, настраивает ФАПЧ и проводит
процесс энумерации USB устройства. Далее проходит процедура инициализации
алгоритма Blowfish и программа микроконтроллера входит в цикл ожидания команд
от хоста.
Для
моделирования в системе OrCad была выбрана схема стабилизации напряжения
питания +3,3 В. Схема питания состоит из: стабилизатора питания LM1117, диода Шотки
MBRS130T3 и блокировочных конденсаторов. На рис. 2.8 представлена схема для
моделирования в редакторе Schematics.
Рис. 2.8 – Схема для моделирования DC
Sweep
Для
моделирования были использованы специальные библиотеки моделей от
производителей, чтобы получить максимально достоверные результаты. Так как на
вход этой схемы напряжение подается от USB, то промоделируем ее по напряжению
питания от 0 до 6 В с шагом 0,1 В. Для этого в меню Analysis/Setup выбираем вид
анализа DC Sweep и проводим анализ схемы по Voltage Source от 0 В до 6 В с
шагом 0,1 В.
В
результате как показано на рис. 2.9, данная схема стабилизирует напряжение 3,3
В начиная с 4,5 В источника, т.е. подходит для нашего устройства.
Рис. 2.9 – DC Sweep анализ
Чтобы
проверить как стабилизатор справляется с низкочастотной помехой, промоделируем
схему, подключив на вход источник синусоидального напряжения 50 Гц со смещением
в 5 В и амплитудой колебаний 0,1 В. Для этого вместо источника постоянного
напряжения VDC установим источник типа VSIN, как показано на рис. 2.10.
Рис. 2.10 – Схема питания с
источником синусоидального сигнала
На
рис. 2.11 показан сигнал, подаваемый на вход, а на рис. 2.12 – сигнал
получаемый на выходе стабилизатора.
Рис.
2.11 – Входной синусоидальный сигнал
Рис.
2.12 – Выходной сигнал стабилизатора
Как видно из рис. 2.12 амплитуда
колебаний составляет 0,00006 В, при входной амплитуде 0,1 В.
Т.е. коэффициент подавления будет:
(Дб);
3. РАЗРАБОТКА ПЕЧАТНОГО УЗЛА АППАРАТНОГО ШИФРАТОРА
3.1
Выбор и
обоснование типа печатной платы
Существует 4 типа печатных плат
(ПП) [4]:
-
односторонние
(ОПП);
-
двухсторонние
(ДПП);
-
многослойные
(МПП);
-
гибкие (ГПП).
ОПП просты в конструировании и экономичны в изготовлении. Они
характеризуются: возможностью обеспечить повышенные требования к точности
выполнения проводящего рисунка; установки навесных элементов на поверхность
платы со стороны, противоположной пайке, без дополнительной изоляции;
возможностью использования перемычек из проводникового материала. Монтажная и
трассировочная возможности этих плат низкие. Надежность и механическая прочность крепления элементов
низкие. Для повышения прочности крепления элементов возможно изготовление ОПП с
металлизацией отверстий. Обычно, ОПП применяют для монтажа бытовой ЭВА, в
силовой электронике, в НЧ устройствах.
ДПП имеют высокую плотность монтажа и хорошую механическую прочность
крепления.
МПП – это совокупность слоев диэлектрика и слоев печатного монтажа,
имеющие межслойные соединения или открытый доступ к внутренним слоям. По
сравнению с ОПП и ДПП они характеризируются повышенной плотностью монтажа,
устойчивостью к климатическим и механическим воздействиям, уменьшением размеров
и числа внешних выводов.
Преимущества ГПП:
– толщина d=0,1…0,28 мм → значительное уменьшение веса;
– высокая ударопрочность (удары практически не влияют).
Для своего устройства я решил использовать ДПП, т.к.:
·
Применение
двухсторонней печатной платы позволяет облегчить трассировку соединений, компактнее
разместить элементы, рационально использовать площадь печатной платы, следовательно,
уменьшить ее размер и расход материала.
·
ДПП с
металлизированными монтажными и переходными отверстиями характеризуются:
высокими коммутационными свойствами; повышенной прочностью соединения вывода
навесного элемента с проводящим рисунком платы; повышенной плотностью монтажа.
3.2
Выбор и
обоснование материала печатной платы
Основными материалами для изготовления двухсторонних печатных
плат являются гетинакс и стеклотекстолит. Гетинакс – спрессованные слои
электроизоляционной бумаги, пропитанные фенольной смолой. Стеклотекстолиты –
прессование слои стеклотканей пропитанные эпоксидной смолой. Оба материала
имеют малую водопроницаемость (0,2-0,8 % при Т = 260 ºС), большое поверхностное сопротивление
(104 МОм), термостойкость
материала в течении 1000 часов. Но по остальным электромеханическим параметрам
стеклотекстолит превосходит гетинакс. Поэтому я выбрал стеклотекстолит
фольгированный марки СФ-2-35-1,5 ГОСТ 10316-78. Как видно из обозначения,
толщина фольги – 35 мкм, толщина основания – 1,5 мм.
3.3
Выбор и
обоснование класса точности печатной платы
По точности изготовления элементов печатного монтажа ПП делят
на 5 классов.
Таблица 3.1 – Классы точности печатных плат [4]
Класс точности |
Плотность монтажа |
Мин. ширина проводника |
Расстояние между краями соседних эл-тов |
Разрешающая способность |
Предельные размеры |
1 |
малая |
0,75 |
0,75 |
0,6 |
без огр. |
2 |
средняя |
0,45 |
0,45 |
1,2 |
240 |
3 |
средняя |
0,25 |
0,25 |
2 |
170-240 |
4 |
высокая |
0,15 |
0,15 |
3,3 |
170 |
5 |
высокая |
0,1 |
0,1 |
5 |
100-170 |
Для своего устройства я решил использовать четвертый класс
точности, потому
что:
·
Это самый низкий
класс, который позволяет провести печатный проводник к выводам ИМС (шаг 0,5мм);
·
Он имеет
достаточно высокую плотность монтажа, что позволяет уменьшить габариты.
Таблица 3.2 – Параметры 4-го класса
точности печатной платы [4]
Параметр |
Значение |
Минимальная ширина печатного проводника, , мм
|
0,15 |
Минимальное расстояние между проводниками, s, мм |
0,15 |
Допуск на диаметр отверстий с металлизацией, Æ<1, мм
|
+0,05; -0,1 |
, Æ>1,
мм
|
+0,1; -0,15 |
Допуск на размещение отверстий, , мм
|
0,05 |
Допуск на размещение КП, , мм
|
0,05 |
Допуск на размещение проводников, , мм
|
0,03 |
Минимальная ширина пояска КП, , мм
|
0,025 |
Страницы: 1, 2, 3
|