скачать рефераты

скачать рефераты

 
 
скачать рефераты скачать рефераты

Меню

Устройство аппаратного шифрования данных с интерфейсом USB скачать рефераты

-массив состоит из 18-ти 32-битовых подключей:

Каждый из четырех 32-битовых S-блоков содержит 256 элементов:

Метод, используемый при вычислении этих подключей, описан в этом разделе ниже.

Рис. 1.7 - Алгоритм Blowfish

Blowfish является сетью Фейстела (Feistel), состоящей из 16 этапов. На вход подается 64-битовый элемент данных x.

Алгоритм шифрования:

· Элемент x разбивается на две 32-битовых половины: и ;

· Для этапов с первого по шестнадцатый, выполняется:

(1.11)

(1.12)

Переставить и (кроме последнего этапа);

· В последнем этапе, производится:

(1.13)

(1.14)

· Объединяются элементы и ;

Рис. 1.8 - Функция F

Функция F (рис.1.8) представляет собой последовательность следующих действий:

· Разделить на четыре 8-битовых части: a, b, c и d;

· Выполнить над a,b,c,d :

(1.15)

Дешифрирование выполняется также, как и шифрование, но используются в обратном порядке.

В реализациях Blowfish, для которых требуется очень большая скорость, цикл должен быть развернут, а все ключи должны храниться в КЭШе данных.

Подключи рассчитываются с помощью специального алгоритма. Вот какова точная последовательность действий.

1. Сначала P-массив, а затем четыре S-блока по порядку инициализируются фиксированной строкой. Эта строка состоит из шестнадцатеричных цифр .

2. Выполняется XOR P1 с первыми 32 битами ключа, XOR P2 со следующими 32 битами ключа, и так далее для всех битов ключа (до P18). Используется циклически, пока для всего P-массива не будет выполнена операция XOR с битами ключа.

3. Используя подключи, полученные на этапах (1) и (2), алгоритмом Blowfish шифруется строка из одних нулей.

4. P1 и P2 заменяются результатом этапа (3).

5. Результат этапа (3) шифруется с помощью алгоритма Blowfish и измененных подключей.

6. P3 и P4 заменяются результатом этапа (5).

7. Далее в ходе процесса все элементы P-массива и затем по порядку все четыре S-блока заменяются выходом постоянно меняющегося алгоритма Blowfish.

Серж Воденэ (Serge Vaudenay) исследовал Blowfish с известными S-блоками и r этапами. Дифференциальный криптоанализ может раскрыть P-массив с помощью 28r+1 выбранных открытых текстов. Для некоторых слабых ключей, которые генерируют плохие S-блоки (вероятность выбора такого ключа составляет 1 к 214), это же вскрытие раскрывает P-массив с помощью всего 24r+1. При неизвестных S-блоках это вскрытие может обнаружить использование слабого ключа, но не может определить сам ключ (ни S-блоки, ни P-массив). Это вскрытие эффективно только против вариантов с уменьшенным числом этапов и совершенно бесполезно против 16-этапного Blowfish.

Слабым является ключ, для которого два элемента данного S-блока идентичны. До выполнения развертывания ключа невозможно определить, является ли он слабым.

В устройстве осуществляется проверка ключей на принадлежность к классу слабых. Слабые ключи не используются.

В устройстве реализован Blowfish c количеством этапов, равным 16.

До сих пор неизвестно об успешном криптоанализе Blowfish.

1.6 Выбор функции для хэширования паролей

Целесообразность хэширования паролей была показана в пункте 1.3.3. Ниже приведены используемые на сегодняшний день функции хэширования.

1.6.1 MD4

MD4 - это однонаправленная хэш-функция. MD обозначает Message Digest (краткое изложение сообщения). Алгоритм для входного сообщения выдает 128-битовое хэш-значение. MD4 подходит для высокоскоростных программных реализаций. Она основана на простом наборе битовых манипуляций с 32-битовыми операндами.

После первого появления алгоритма Берт Боер и Антон Босселаерс (Antoon Bosselaers) осуществили криптоанализ последних двух из трех этапов алгоритма. Эли Бихам рассмотрел использование дифференциального криптоанализа против первых двух этапов MD4.

1.6.2 MD5

MD5 - это улучшенная версия MD4. Алгоритм хэш-функции сложнее чем в MD4, но их схемы похожи. Результатом MD5 является 128-битовое хэш-значение. Группа китайских ученых показала, что существует простой и быстрый алгоритм подбора коллизий этой хэш-функции.

Алгоритмы MD4 и MD5 в проектах лучше не использовать. Существует возможность вычисления коллизий этих функций.

1.6.3 SHA

Алгоритм безопасного хэширования (Secure Hash Algorithm, SHA), разработан для стандарта цифровой подписи (Digital Signature Standard).

Для любого входного сообщения длиной меньше 264 битов SHA выдает 160-битовый результат, называемый кратким содержанием сообщения. SHA является криптостойким алгоритмом и разработан так, чтобы было невозможно найти сообщение, соответствующее данному краткому содержанию сообщения. Любые изменения, произошедшие при передаче сообщения, с очень высокой вероятностью приведут к изменению краткого содержания сообщения.

12.08.2004 найдена полная коллизия SHA-0. На это потребовалось 50 000 часов машинного времени [1].

1.6.4 SHA1

Алгоритм разработан в 1995 году в качестве замены более слабого SHA. Длина результата 160 бит.

Группе китайских ученых удалось найти коллизии в SHA1 меньше чем за 269 операций хеширования (для вскрытия грубой силой не обходимо произвести 280 операций). В связи с этим NIST рекомендует пока пользоваться SHA2 - алгоритм, похожий на тот, что используется в SHA1, но с длиной выходного сообщения 256, 384 и 512 бит. Это делает SHA2 более устойчивым к вскрытию полным перебором.

1.6.5 SHA2

Алгоритм представляет собой вариант SHA1, с большей длиной выходного сообщения. Существуют варианты SHA-256, SHA-384, SHA-512. Об успешных атаках на SHA2 пока неизвестно.

В устройстве используется хэш-функция SHA2-384, так как:

· это одна из немногих криптостойких функций хэширования на сегодняшний день;

· длина выходного сообщения функции равняется 384 бита. SHA2 будет использоваться для хэширования паролей. Полученный, с помощью SHA2-384, ключ к Blowfish полностью соответствует требованиям, предъявляемым к длине ключей.

1.7 Выбор генератора случайных чисел

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

1.7.1 Методы получения случайных чисел

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

Лучшим вариантом является создание случайных чисел на основе некоторого физического процесса, так как многие физические процессы действительно случайны. Например, для этого можно использовать аппаратные средства типа “шумящего” диода. Можно использовать какие-либо физические движения пользователя, например, скорость печати в микросекундах, перемещения мыши и т.д.

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

Другой подход состоит в том, чтобы использовать генератор псевдослучайных чисел, запускаемый случайным числом. Главное различие между случайными и псевдослучайными числами в том, что последние обязательно являются периодическими, а действительно случайные числа нет.

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

1.7.2 Линейные конгруэнтные генераторы

Линейные конгруэнтные генераторы являются генераторами псевдослучайных чисел, которые вычисляются по формуле:

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].

Генератор Блюма-Блюма-Шуба нецелесообразно использовать в разрабатываемом устройстве из-за низкого быстродействия алгоритма. В этом генераторе используются арифметические операции над большими числами, реализация которых на микроконтроллере займет значительное время.

1.7.4 Генератор, используемый в разрабатываемом устройстве

В устройстве будут использоваться случайные числа, полученные от аппаратуры микроконтроллера и преобразовываться в 384 - битное число с помощью хэш-функции SHA2-384. Это необходимо делать для улучшения равномерности распределения случайных чисел.

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

1.8 Структурная схема разрабатываемого устройства

Проанализировав техническое задание, составим структурную схему устройства:

· Устройство предназначено для аппаратного шифрования компьютерных файлов. Поэтому устройство будет использоваться в составе с персональным компьютером.

· Устройство будет производить шифрование данных с большой скоростью (до 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);

Страницы: 1, 2, 3, 4, 5, 6