Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дипломный проект. А.В. Шпак.docx
Скачиваний:
146
Добавлен:
24.02.2016
Размер:
3.35 Mб
Скачать

3.6.6 Блок-схема алгоритма модуля генератора случайных чисел.Блок схема конечного алгоритма модуля генератора случайных чисел изображена на рисунке 3.8.

Рисунок 3.8 – Блок-схема алгоритма модуля генератора случайных чисел

Микроконтроллер начинает свою работу с инициализации периферийных модулей и разрешения прерываний, далее он входит в цикл, ожидания накопления данных в пуле, как только в пул накопится достаточное количество данных, микроконтроллере инициализирует состояние ГПСЧ данными из пула, перемешанными с состоянием, считанным из памяти и входит в основной цикл работы. Результаты тестов dieharder генератора случайных чисел представлены на схеме.

В основном цикле микроконтроллер проверяет глобальную переменную bytesToSend, если она не равна нулю, то по интерфейсу USART отправляются случайные числа, сгенерированные генератором псевдослучайных чисел в количестве, которое записано в переменную bytesToSend. На время отправки данный останавливаются все прерывания, чтобы микроконтроллер мог максимально быстро ответить на запрос главного модуля. Далее проверяется не заполнился ли снова пул и, если пул полон, то с помощью него обновляется состояние ГПСЧ.

Прежде чем закончить цикл генерируется одно случайное число впустую, это опять-таки вносит в работу системы долю случайности, потому что выдаваемые случайные числа будут зависеть ещё и от времени обращения к модулю генератора. Так же в системе работают два обработчика прерываний. По событию окончания преобразования АЦП вычисляется случайный бит и добавляется в пул, помимо этого обновляется глобальная переменная, хранящая количество битов в пуле. И по событию приёма данных по интерфейсу USART обновляется глобальная переменная bytesToSend, отвечающая за количество случайных байтов, которое необходимо переслать в главный модуль.

3.6 Вывод

Имея спроектированные блок-схемы алгоритмов и, выбрав подходящую библиотеку для работы с эллиптическими кривыми, был разработан программный код системы на языке Си. Размер файла прошивки для микроконтроллера автомобильного брелока составил 42 килобайта, что позволяет использовать микроконтроллеры младшего семейства, например Atmega 8. Размер прошивки для микроконтроллера системы автомобиля составил 44 килобайта, что так же позволяет использовать микроконтроллеры младшего семейства. В частности можно использовать вычислительное устройство с 32-битной шиной данных, что позволит уменьшить время выполнения программы со стороны автомобиля и уменьшить так же дискомфорт со стороны пользователя транспортного средства.

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

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

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