Вход

Разработка методики установки защиты на основе электронного ключа на исполняемый файл

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 173398
Дата создания 2013
Страниц 76
Источников 10
Мы сможем обработать ваш заказ (!) 26 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 580руб.
КУПИТЬ

Содержание

Оглавление
1 Электронные ключи для защиты программ
1.1 Методы защиты программ
1.2 Что такое электронный ключ
1.3 Какие бывают электронные ключи
1.4 Защита программ с помощью ключа
1.4.2Программирование электронного ключа
1.4.3 Способы защиты
1.4.4 Автоматическая защита
1.4.5 Защита при помощи функций API
1.5 Работа
1.6 Противодействие взлому
1.7 Отделение модуля автоматической защиты
1.8 Удаление вызовов функций API
1.9 Стойкость
1.10 Автоматическая защита
1.11 Возможности электронного ключа
1.11.1Демо-версии
1.11.2Аренда и лизинг
1.12 Продажа программы по частям
1.13 Обновление защищенной программы
1.14 Лицензирование в локальных вычислительных сетях
1.15 Будущее электронного ключа
2 Актуальность
2.1 Нужность создания средств защиты данных и информации
2.2 Основные методы логического криптоанализа
2.3 Методы аппаратного взлома
3 Системы защиты данных и информации
3.1Программные методы защиты
3.2 Распределенные системы защиты ПО
3.3 Шифрование исполняемого кода
3.4 Аппаратные ключи
4 Описание системы
4.1 Описание идеи
4.2 Постановка задачи
4.3 Подбор и обоснование элементной базы
4.4 Схемотехническое решение
4.5 Проектирование печатной платы изделия
4.6 Алгоритм программного обеспечения
Заключение
Список литературы
Приложение 1 - Принципиальная схема изделия
Приложение 2 - Трассировка печатной платы
Приложение 4 - Один раунд DES алгоритма

Фрагмент работы для ознакомления

Ключи, сделанные на базе PIC или ASIC-чипов, имеют на порядок большую устойчивость к взлому и “прозрачность” для штатных протоколов обмена. Обе эти микросхемы представляют собой контроллеры, содержащие в себе процессор, некоторое количество оперативной памяти, FLASH-память команд и память для хранения микропрограммы. Микропрограмма и внутренняя память чаще всего защищается от внешнего считывания, так что сделать аппаратную копию ключа довольно проблематично. Такие комплексы содержат в аппаратной части не только ключ дешифрации, но и блоки шифрации/дешифрации данных, таким образом при работе защиты в электронный ключ передаются блоки зашифрованной данных и данных и информации, а принимаются оттуда расшифрованные данные. В системах этого типа довольно сложно перехватить ключ дешифрации, так как все процедуры выполняются аппаратной частью, но остается возможность принудительного сохранения защищенной программы в открытом виде после отработки системы защиты. Кроме того, к ним применимы методы криптоанализа.Основное отличие PIC-ключей от ASIC-ключей в том, что PIC-чипы программируются разработчиком ключей (то есть он имеет возможность относительно легко изменить алгоритмы работы), а ASIC-чипы являются заказными микросхемами (алгоритмы жестко задаются на этапе производства микросхем). Из-за этого ASIC-ключи получаются более дешевыми, чем собранные на базе PIC-чипов, но по этой же причине защита на их базе менее надежна (определив алгоритм обработки данных в одном из ASIC-чипов, имеется возможность написать эмулятор ключа для всей партии, которая - в силу особенностей производства - чаще всего бывает довольно большой). Программная часть защитного комплекса:На стороне персонального ПК навесная защита разделяется на двоичный код, внедряемый в защищаемый файл (файлы) и модуль ядра операционной (драйвер) взаимодействующий с аппаратной частью комплекса.Двоичный код уровня приложений операционной системы размещает в защищаемом файле (файлах) метки начала и окончания защищаемых элементов и после запуска программного обеспечения с установленной навесной защитой, при обнаружении меток производит обмен с аппаратной частью посредством драйвера.Драйвер необходим для взаимодействия с устройством, предоставления интерфейса взаимодействия на уровень приложений и реализации защищенного обмена с аппаратурой.4 Описание системы4.1Описание идеиДанный комплекс представляет собой комбинированную систему, предназначенную для защиты, в первую очередь, коммерческого программного обеспечения или конфиденциальной данных и данных и информации пользователя от несанкционированного применения. Основная идея состоит в создании распределенной защиты с совместным применением методов шифрования исполняемого кода и хранением, дешифрацией и исполнением защищаемых элементов программы во внешнем устройстве. Программно-аппаратный комплекс защиты программного обеспечения физически и логически разделен на две составляющих, которые могу разрабатываться и применяться как совместно, так и, с небольшими изменениями, как отдельные продукты: внешнее устройство, осуществляющее выполнение основных алгоритмов защиты данных и данных и информации и программного обеспечения персонального ПК, реализующего связь с аппаратной частью защиты и шифрование исполняемого кода. Аппаратное устройство подключается и взаимодействует с персональным ПК посредством интерфейса USB 2.0. Это последовательный, высокоскоростной аппаратный интерфейс, рассчитанный на скорость обмена до 480 Мбит/сек. И присутствующий практически на любом ПК. Мы совмещаем аппаратную защиту и методику шифрования исполняемого кода. Как и в случае шифрования исполняемого кода в него вносятся маркеры начала и конца защищаемых элементов. Часть кода, находящегося между маркерами, шифруют ключом. Далее эти зашифрованные участки кода переносятся во внешнее устройство. Там же хранится ключевая информация, необходимая для дешифровки. В исполняемый код вместо защищаемых элементов вносят «мусор» такого же объема.На этапе выполнения программы, при достижении маркера, происходит обращение к внешнему устройству, на стороне которого происходит дешифрация и «встраивание» дешифрованного блока кода в программу. Так же устройство перехватывает запросы на чтение памяти процесса (чтобы избежать дампинга) и, после выхода за границы защищаемого блока, удаляет дешифрованный код из памяти. Далее, программа заменяет адресное пространство между маркерами «мусором».Абстрактно, внешнее устройство имеет возможность выполнять всякие функции, связанные с защитой данных и данных и информации:Хранение ключевой данных и информации. Это наиболее простой в реализации метод защиты. В общем случае информация, расположенная на ПК, кодируется и для декодирования применяется ключ, хранимый на внешнем носителе. Подобные системы довольно просты в реализации, но имеет недовольной надежностью. Предположим, что таким методом защищена программа. Внутри программы есть зашифрованные блоки, которые дешифруются с помощью ключа, считываемого в процессе запуска или работы программы. Ключ хранится на внешнем USB устройстве. Требуется обеспечить защиту данной программы от несанкционированного копирования. В том случае, если производится попытка взлома данной программы без наличия лицензии, то данный метод позволит защитить программу от взлома и копирования в связи с отсутствием ключевой данных и информации, так как пока программа не куплена у потенциального взломщика нет аппаратного ключа, то есть нет возможности просто дешифровать защищенные блоки. Взлом же криптографических алгоритмов с высокой криптостойкостью (к примеру AES или DES) практически невозможен. Данный вид защит уязвим, если взломщик покупает лицензионную версию программы. В этом случае он имеет возможность перехватить ключевую информацию и вручную дешифровать блоки кода или после дешифровки в процессе работы программы получить дамп памяти соответствующего процесса и на его базе сделать незаконную копию всей программы. Естьвсякие приемы антидампинга, но учитывая, что взлом дорогостоящего программного обеспечения приносит большую прибыль, данную задачу будут выполнять высококвалифицированные взломщики, которые с большой вероятностью найдут средство их обхода.Хранение части исполняемого кода. В этом случае в программу вводятся метки начала и окончания элементов, код которых находится во внешнем устройстве. В процессе работы программа вырабатывает запрос к внешнему устройству и выполняет в адресном пространстве процесса код, полученный от внешнего USB устройства. Недостатки данного метода аналогичны предыдущему, поскольку в любом случае дешифрованные блоки будут развернуты в оперативную память ПК и могут быть подвергнуты дампингу.Исполнение защищаемых элементов вне программного обеспечения персонального ПК. В нашем случае — это исполнение части защищаемой программы во внешнем устройстве и передача по каналу связи только результата выполнения этих операций. Рассмотрим данный вариант подробнее. При разработке программного обеспечения после завершения финального полнофункционального тестирования в программе выделяются часть элементов, которые шифруются. Эти блоки хранятся в составе программы в зашифрованном виде. Помимо этого, эти блоки отмечаются маркерами, и в программу вводится функционал для приема-передачи данных от USB устройства. Функции дешифровки и ключевая информация располагаются только во внешнем USB устройстве. Помимо этого, в состав аппаратной части защиты вводится Вычислитель, в задачу которого входит исполнение элементов кода, переданных от персонального ПК. Таким образом, в системе отсутствует передача дешифрованных элементов (открытого текста), ключевой данных и информации или какой-либо данных и информации, по которой имеется возможность восстановить работу программы в целом. Этим мы избавляемся от недостатков двух предыдущих методов защиты, так как дамп памяти процесса не предоставит никакой данных и информации, а перехват потока данных даст только результат работы защищенного блока. Для подобной реализации возможен только так называемый аппаратный взлом, то есть взлом и исследование алгоритма работы аппаратной части защиты, что намного сложнее, чем исследование программ и имеет необходимость наличия специализированной аппаратуры и навыков схемотехники и анализа битовых потоков программирования МК или ПЛИС. Таким образом, стойкость данной системы защиты данных и информации целиком определяется стойкостью к взлому аппаратной части защиты.Достоинства разрабатываемой защитыКомплекс защиты есть «навесной», то есть в исходный код программы не требуется внесение изменений.Максимально уменьшить себестоимость изготовления аппаратуры за счет применения менее мощных (и более дешевых) компонент и математически оптимизированных алгоритмов защиты. Таким образом в результате мы разрабатываем собственный, максимально оптимизированный, криптопроцессор.Реализация нескольких криптографических алгоритмов с возможностью пользовательского выбора.Стоимость опытного образца не превышает $150. Сегмент защищаемого ПО по стоимости $1K-$100K. Оптимальное решение проблемы несанкционированного применения дорогостоящего ПО.4.2Постановка задачиЗадача данной курсовой работы есть проектированиеаппаратной части комплекса защиты ПО, которая должна удовлетворять условиям таблицы 4.1Таблица 4.1-ТребованияяНаименование параметраЗначение1. Себестоимость разработкиНе более 4 800 руб. ($150)2. Форм-факторFLASH — устройство (USB - Flash-drive) 3. Габариты10х50х10 мм4. Интерфейс связи с ПКUSB 2.05. Задержка, вносимая в работу ПОНе более 300 мсТакже в задачу входит реализация функционала, с помощью которого имеется возможность осуществлять обмен с ПК по интерфейсу USB, и дешифровать полученные блоки. В первоначальном варианте нужно реализовать криптографический алгоритм DES.Таким образом в данную задачу входят:1) Аппаратная реализация,2) ПроектированиеПО для МК3) Проектирование конструктива (проектирование печатной платы)Аппаратная реализация состоит из:1) Разработки архитектуры на базе наложенных ограничений2) Выбор и обоснование элементной базы3) Проектированиесхемотехники (принципиальной схемы устройства на базе архитектуры)4) Моделирование схемы5) Проектирование печатной платыВ разработку ПО для МК входит:1) Проектирование инициализации контроллера и периферии2) Проектирование взаимодействия с ПК по порту USB3) Проектирование модуля дешифрации получаемых элементов.4.3 Подбор и обоснование элементной базыВ связи с наложенными ограничениями на поставленную задачу выбор был остановлен на примененииМК с интерфейсом USB. Существует довольно большое количество подобных МК. Есть несколько фирм, которые их делают: Microchip, Atmel и CyrrusLogic.В таблице приведены некоторые из МК.Таблица 4.2 -МКМКгабаритРазрядность АЛУ (bit)Ток (mA)Диапазон напряжения (V)Мощность (mW)ценаST7SCR1R4TQFP 64 16x16x1.6 mm8154.0 - 5.5 40 – 82.5$12.7AT90USB82QFN32 5x5x0.8 - 5x5x1 mmTQFP32 9x9x1.2 mm3225-302.7 - 5.567.5 - 165$1.95, $ 2.04PIC18F2450QFN 28 6x6х0.8 - 6x6х1 mm8250 - 3002.0 - 5.5 500 - 1650$3.32, $3.35PIC18F4550TQFP44 12x12x1.2mmQFN44 8x8x0.8 - 8x8x1 mm8250 - 3002.0- 5.5 500 - 1650$4.38-4.64ATmega16U4/ATmega32U4QFN44 7x7x1 mm TQFP44 12x12x1.20mm32182.7 - 5.548.6 - 99$2.48, $3.57ATmega32U6/AT90USB128TQFP64 16x16x1.20 mm QFN64 9x9x0.8 – 9x9x1.0 mm32302.7 - 5.581 - 165$3.43, $3.37/ $2.7, $3.5 Сравнение микроконтроллеров(МК):По параметрам (быстродействие, USB).По наличию доступных средств разработки.Поддержка со стороны фирмы-производителя.Популярность, то есть наличие открытых сообществ разработчиков.После оценки существующих МК в качестве элементной базы был выбран МКPIC18F4550 фирмы Microchip. Данный МК имеет следующими характеристиками:содержит высокоскоростной интерфейс USB2.0 в составе периферии,имеет необходимое быстродействиемалое время разработки устройства на его базевозможность изменения микрокода программы на этапе выпуска изделийподдержка разработок со стороны фирмы Microchip, в том числе, в обученииОписание МКPIC18F4550PIC18F4550 - 8-разрядный МК со встроенной Flash-памятью и высокоскоростным USB-интерфейсом для экономичных (nanoWatt) и взаимосвязанных применений. Три последовательных порта - FS-USB (12 Мбит/сек), I2C, SPI (до 10 Мбит/сек), и асинхронный последовательный порт EUSART. Микросхема содержит 13-канальный 10-разрядный АЦП, два аналоговых компаратора, два 10-разрядных контроллера ШИМ, три 16-разрядных и один 8-разрядный таймер, сторожевой таймер, детектор напряжения и схему сброса по провалам питания. Модуль USB полностью интегрирован с ядром МК, что позволило добиться максимальной пропускной способности при меньшей загрузке процессора. Производительность PIC18F4550 достигает 12 MIPS. В базеМК лежит технология Enhanced FLASH (1 000 000 циклов перезаписи, 40 лет гарантированного хранения), что позволяет применять их в устройствах, эксплуатируемых в жестких условиях и требующих периодического обмена информацией с ПК.PIC18F4550 содержит высокоскоростной интерфейс USB 2.0. Модуль передачи USB поддерживает как низкоскоростную, так и предельно-скоростную передачу для всех поддерживаемых типов передачи данных. Он также имеет встроенный трансивер и стабилизатор напряжения, а также поддерживает применение внешних приемопередатчиков и регуляторов напряжения. МК предлагает двенадцать всяких опций тактового генератора, предоставляя пользователям широкий выбор в разработке приложений уровня ядра. Опции следующие:Четыре режима, использующие кварцевые или керамические регуляторы напряженияЧетыре внешних тактовых режима, предлагающие вариант применения двух ножек (вход генератора и деленный на четыре выход тактовой частоты) или единственной ножки (вход генератора со второй ножкой, назначенной как обычный I/O)Внутренний тактовый генератор, который реализует тактовую частоту 8 МГц (± точность 2%), и внутренний RC генератор (приблизительно 31 Мгц, устойчивый к температуре и VDD), а также диапазон шести выбираемых пользователем тактовых частот, между 125 кГц до 4МГц, итого 8 тактовых частот. Эта опция освобождает порт генератора для применения как добавочный порт ввода вывода общего назначенияУмножитель частоты системы фазовой автоподстройки частоты (ФАПС), доступный как кварцу, так и режимам внешнего генератора, который дает широкий диапазон тактовых частот от 4 МГц до 48 МГцРежим асинхронного двойного тактирования, позволяющий USB модулю выполняться от высокочастотного генератора, пока остальной МК подает тактовые импульсы от внутреннего энергосберегающего тактового генератора Кроме его пригодности как источника тактовых импульсов, внутренний тактовый генератор дает устойчивый опорный источник, который дает возможность еще двум дополнительным особенностям:Устойчивый к отказам диспетчер тактовой частоты. Он непрерывно контролирует главный источник тактового импульса от опорного сигнала, установленного внутренним генератором.Двухскоростной запуск. Эта опция позволяет внутреннему генератору служить источником тактового импульса от сброса по включению питания или пробуждение от спящего режима.Еще одна особенностьМК PIC18F4550 -это выносливость памяти. В его базе лежит технология EnhancedFlash, которая дает возможность до 100 000 циклов стирания/записи для программируемой памяти и 1 млн. циклов для EEPROM. Сохранность данных без восстановления предполагается больше сорока лет.Также имеетсамопрограммируемостью. Это устройство имеет возможность записывать в собственную область памяти программы под внутренним программным управлением. Используя процедуру загрузчика операционной системы, располагаемую в защищенном блоке начальной загрузки, становится возможным создавать приложения, которые могут обновлять себя в устройстве нижнего уровня.МК PIC18F4550 имеет расширенную систему команд, а именно дает возможность дополнительного расширения к системе команд МК с ядром PIC18, которое добавляет 8 новых команд и индексированный литеральный режим адресации со смещением (при котором значение операнда указывается непосредственно в поле адреса команды). Это расширение, доступное как свойство конфигурации устройства, было специально разработано для оптимизации реентерабельного кода приложений изначального разработанного на языках высокого уровня такого как С.Расширенный CCP модуль. В режиме широтно-импульсного модулятора (ШИМ) этот модуль дает возможность одному, двум или четырем модулируемым выходам для управления драйвером полумоста и мостовым драйвером. Другие свойства включают автоматическое выключение для блокирования выходов ШИМ при прерывании или других выбранных состояний и автоматический перезапуск для восстановления выходов как только состояние сброшено.МК также имеет расширенный адресуемый универсальный синхронно-асинхронный последовательный приемопередатчик (USART). Этот модуль дает стандартные RS-232 операции и дает поддержку для протокола шины LIN. Сигналы TX/CK и RX/DT могут быть инвертированы, исключая нужность инвертирования буферов. Другие расширения включают в себя автоматический определитель скорости передачи и шестнадцатибитный контроллер скорости передачи для разрешения более высокого качества. Когда МК использует внутренний тактовый генератор, EUSART дает стабильную работу для приложений, которые общаются с внешним миром.МКимеет специализированными портами ICD/ICSP. Эти устройства вводят применение отладчика и программируемых ножек, которые не разделяются с другими свойствами МК. Предложенные как свойство в выбранном пакете, эта особенность позволяет пользователям разрабатывать приложения для устройства ввода вывода, сохраняя возможность программировать и отлаживать в канале.Таблица 4.3 Основные параметры:ЯдроPIC18 F,МГцот 0 до 48 Память: Flash,кБ32 Память: RAM,кБ2 Память: EEPROM,кБ0.25 I/O (макс.),шт.35 Таймеры: 8-бит,шт1 Таймеры: 16-бит,шт3 Таймеры: Каналов ШИМ,шт1 Таймеры: RTCНет Интерфейсы: SPI,шт1 Интерфейсы: USB,шт1 Аналоговые входы: Разрядов АЦП,бит10 Аналоговые входы: Каналов АЦП,шт13 Аналоговые входы: Аналоговый компаратор,шт2 VCC,Вот 2 до 5.5 ICC,мА25 TA,°Cот -40 до 125 КорпусDIP-40 QFN-44 SOIC-44 4.4 Схемотехническое решениеНа базе архитектуры системы и выбранной элементной базы была разработана принципиальная схема устройства с применением САПР Pulsonix 6. Для этого была изучена проектированиесхемотехники и печатных плат в данной системе автоматизированной разработки.МК выбран в корпусе TQFP44, так как его габариты составляют 11,8х11,8 мм, что позволяет применять его в составе данной платы.Микросхема LM3940 осуществляет преобразование напряжения USB 4,5-5В в напряжении питания МК и внешней памяти 3,3В.USB разъем содержит плавкий предохранитель, Из-за этого установка дополнительного не нужна.Принципиальная схема устройства находится в приложении 1.САПР Pulsonix (Система разработки печатных плат)Описание: Программа Pulsonix рекомендуется для плат среднего уровня сложности и включает редактор схем многолистовых проектов, редактор печатных плат, средства автоматической и полуавтоматической трассировки, смешанного аналого-цифрового моделирования.Программа имеет мощный набор трансляторов файлов данных из всяких популярных систем разработки, благодаря чему позволяет сохранить все сделанные ранее наработки. Имеются интерфейсы связи с программами трассировки Specctra и Electra.Для автоматической трассировки использовался встроенный автотрассировщик системы Pulsonix, поскольку плата не имеет высокой плотностью монтажа (количество проводников и элементов на участок платы).4.5Проектирование печатной платы изделия Поскольку данное устройство есть экспериментальный образец, и на его базе будут производиться дальнейшие анализа и доработки, габариты печатной платы больше чем у рабочего образца и на ней присутствуют доп. разъемы для подключения периферийного оборудования (напр. доп. памяти).Расстановка компонент, верхняя сторона и нижняя сторона печатной платы изображены в Приложении 2.Описание используемых компонентТаблица 4.4- Перечень элементов.НазваниеЗначениеКол-воЭлементОписаниеfootprintС1С222pF2C1812Бескорпусный конденсаторC1812C1812C30.47uf1C Polarised4Полярный конденсаторCPOLC40.33uF1C Polarised4Полярный конденсаторCPOLC547 nF1C3518Бескорпусный конденсаторC3518 C6C722pf2C Polarised4Полярный конденсаторCPOLCPOLC8100nF1C 100nFКонденсаторCDD11PIC18F4550-X_PTTQFP44_MCIC1124AA64SNSOIC8R11 МОм1R 0.1W SMTF 1MThick Film Surface Mount ResistorSM0805U11LM3940IMP-3.3MP04AU2 1USB-25-2H4USB-25-2H4U31SLW10S-1C7LFCONN FPC/FFC 10POS 1MM VERT PCBCON10_1X10_UB_58JFU41SLW16R-1C7LFCONN FPC/FFC 16POS 1MM R/A PCBCON16_1X16_RB_58JFU51SLW8R-1C7LFCONN FPC/FFC 8POS 1MM R/A PCBCON8_1X8_RB_58JFX11XtalGenericCrystalHC18U 4.6Алгоритм программного обеспеченияДанная система предполагает, что она расширяемая и модифицируема. То есть можем взять другой контроллер и изменить алгоритм, расширить ее несколькими алгоритмами и т.п. У меня курсовой реализован первоначальный вариант системы. По заданию научного руководителя в рамках дипломного проекта я реализовала алгоритм шифрования DES с ключом 64 бита. Выбор был обусловлен относительной простотой алгоритма и наличием большого числа описаний его реализации для однокристальных МК. Описание алгоритма DES можно найти по ссылке 4.Реализация DES алгоритмаАлгоритм шифрования DES адаптирован для корректной работы в составе микрокода для ядра PIC18F.При разработке алгоритма DES для МКPIC18F4550 я использовала наработки Эрика Смита и исходные тексты примеров фирмы Microchip для МК PIC16. Из них в свою программу я включила часть модуля реализации DES, осуществляющую генерацию ключей алгоритма. В приложении 4 приведен код, описывающий один раунд DES алгоритма, а также код для генерации ключа.ЗаключениеРезультатыКак результат моей работы в данном проекте выделить следующее:Произведен анализ существующих МКИзучена проектированиесхемотехники и печатных плат в САПР PulsonixРазработана принципиальная схема устройства. Разработана печатная плата.Низкоуровневая адаптация алгоритма DES для ядра PIC18. Разработан модуль связи с ПК по интерфейсу USB.Фотография одного из первых вариантов платы находится в Приложении3.Возможности развития системыДальнейшие работы предполагают разработку нескольких вариантов ПО для данной платы с различными алгоритмами шифрования и алгоритмами защиты и разработку более сложного устройства на базе FPGA для применения в защите дорогостоящего ПО.Списоклитературы1. Jean-Jacques Quisquater, Francois Koeune, Side Channel Attacks2. Datasheet микросхемы PIC18F45503. http://www.pcweek.ru/themes/detail.php?ID=639244. http://ru.wikipedia.org/wiki/DES - описание DES алгоритма5. Джеффри Рихтер, Windows для профессионалов6. http://www.woweb.ru/publ/49-1-0-6367. Сидельников В.М., Криптография и теория кодирования8. Dorthy Elizabeth Robling Denning, Cryptography and Data Security9. Брюс Шнайер, Прикладная криптография 2-е изданиеПротоколы, алгоритмы и исходные тексты на языке С10. http://www.pdfgeni.com/book/software-security-pdf.htmlПриложение 1 - ПринципиальнаясхемаизделияПриложение 2- Трассировка печатной платыРасстановка компонентВерхняя сторона печатной платыНижняя сторона печатной платыПриложение 3 - ПлатаПриложение 4- Один раунд DES алгоритма; roundr2 = 344 cycles; roundr = 324 cyclesroundr2:callroundcallkeyrotr; 20 cyclesgotokeyrotr; 20 cyclesroundr:callround; 302 cyclesgotokeyrotr; 20 cycles; roundl2 = 338 cycles including call; roundl = 320 cycles including callroundl2:callkeyrotl; 18 cyclesroundl:callkeyrotl; 18 cycles; fall into round; xxx cycles including call; call = 2 cycles; clearnewr = 4 cycles; 2 sboxes @ 33 cycles = 66 cycles; 6 sboxes @ 34 cycles = 204 cycles; xor = 8 cycles; swap = 16 cycles; return = 2 cycles; ----------; total = 302 cyclesround:; clearnewr to make it easy to do the P-box permutation (by simply setting; bits)clrfnewr+0clrfnewr+1clrfnewr+2clrfnewr+3; do s-box 1gethiright+0,r32,r05; 6 cyclesxorkeyk14,k05,k17,k11,k24,k01; 12 cyclescorehisbox12,nr09,nr17,nr23,nr31; 15 cycles; do s-box 2getloright+0,r04,r09; 6 cyclesxorkeyk03,k10,k28,k15,k06,k21; 12 cyclescorelosbox12,nr13,nr28,nr02,nr18; 15 cycles; do s-box 3gethiright+1,r08,r13; 6 cyclesxorkeyk23,k08,k19,k12,k04,k26; 12 cyclescorehisbox34,nr24,nr16,nr30,nr06; 16 cycles; do s-box 4getloright+1,r12,r17; 6 cyclesxorkeyk16,k02,k07,k27,k20,k13; 12 cyclescorelosbox34,nr26,nr20,nr10,nr01; 16 cycles; do s-box 5gethiright+2,r16,r21; 6 cyclesxorkeyk41,k55,k52,k31,k37,k47; 12 cyclescorehisbox56,nr08,nr14,nr25,nr03; 16 cycles; do s-box 6getloright+2,r20,r25; 6 cyclesxorkeyk30,k48,k40,k51,k45,k33; 12 cyclescorelosbox56,nr04,nr29,nr11,nr19; 16 cycles; do s-box 7gethiright+3,r24,r29; 6 cyclesxorkeyk44,k53,k49,k39,k56,k34; 12 cyclescorehisbox78,nr32,nr12,nr22,nr07; 16 cycles; do s-box 8getloright+3,r28,r01; 6 cyclesxorkeyk46,k32,k42,k50,k36,k29; 12 cyclescorelosbox78,nr05,nr27,nr15,nr21; 16 cycles; now exclusive-or the old left with the new right to complete the; computationmovf left+0,Wxorwfnewr+0movf left+1,Wxorwfnewr+1movf left+2,Wxorwfnewr+2movf left+3,Wxorwfnewr+3; now swap the stuff aroundmovf right+0,Wmovwfleft+0movf right+1,Wmovwfleft+1movf right+2,Wmovwfleft+2movf right+3,Wmovwfleft+3movf newr+0,Wmovwfright+0movf newr+1,Wmovwfright+1movf newr+2,Wmovwfright+2movf newr+3,Wmovwfright+3returnДля реализации раунда понадобились следующие макросы:; The gethi and getlo macros implement six bit sections of the Expansion; Permutation.; 6 cyclesgethi macro rbyte,b20r,b20b,b10r,b10bswapfrbyte,Wandlw 0x0fbtfsc b20r,b20biorlw 0x20btfsc b10r,b10biorlw 0x10endm; 6 cyclesgetlo macro rbyte,b20r,b20b,b10r,b10bmovfrbyte,Wandlw 0x0fbtfsc b20r,b20biorlw 0x20btfsc b10r,b10biorlw 0x10endm; The xorkey macro is used to exclusive-or the 6-bit result of the Expansion; Permuation in the W register (as generated by the gethi or getlo macros; above) with the appropriate 6 bits of the current subkey (as defined by; Permuted Choice 2). The arguments are the six subkey bits to be used.; 12 cyclesxorkey macro b20r,b20b,b10r,b10b,b08r,b08b,b04r,b04b,b02r,b02b,b01r,b01bbtfsc b20r,b20bxorlw 0x20btfsc b10r,b10bxorlw 0x10btfsc b08r,b08bxorlw 0x08btfsc b04r,b04bxorlw 0x04btfsc b02r,b02bxorlw 0x02btfsc b01r,b01bxorlw 0x01endm; The corehi and corelo macros are used to perform the S-box lookup and; the P-box permutation. The only difference between the two macros is; which half of the sbox table value is used. The corehi macro must be; used for S-boxes 1, 3, 5, and 7, while the corelo macro must be used for; S-boxes 2, 4, 6, and 8.; The first argument to the macro is the entry point of the S-box table to; be used.; The second through fifth arguments to the macro are the bits that the; P-box permutes the S-box outputs into, in order from the most to the least; significant.; 15 cycles for sbox12; 16 cycles for otherscorehi macro sbox,b7r,b7b,b6r,b6b,b5r,b5b,b4r,b4bcallsbox; 6 cycles for sbox12,; 7 cycles for othersmovwftempbtfsctemp,7bsf b7r,b7bbtfsctemp,6bsf b6r,b6bbtfsctemp,5bsf b5r,b5bbtfsctemp,4bsf b4r,b4bendm; 15 cycles for sbox12; 16 cycles for otherscorelo macro sbox,b3r,b3b,b2r,b2b,b1r,b1b,b0r,b0bcallsbox; 6 cycles for sbox12,; 7 cycles for othersmovwftempbtfsctemp,3bsf b3r,b3bbtfsctemp,2bsf b2r,b2bbtfsctemp,1bsf b1r,b1bbtfsctemp,0bsf b0r,b0bendmГенерация ключаsetkey:movlwkeylenmovwftempsetkey0:rlf INDFrrfkeyl+0rlf INDFrrfkeyl+1rlf INDFrrfkeyl+2rlf INDFrrfkeyl+3rlf INDFrrfkeyr+2rlf INDFrrfkeyr+1rlf INDFrrfkeyr+0incf FSRdecfsztempgotosetkey0swapf keyl+3,W ; move low 4 bits of keyl+3movwfkeyr+3; into high 4 bits of keyr+3movlw0f0h; mask off extra bitsandwfkeyl+3andwfkeyr+3movlw - keylen ; restore FSR to original valueaddlw FSRreturn

Список литературы [ всего 10]

Списоклитературы
1. Jean-Jacques Quisquater, Francois Koeune, Side Channel Attacks
2. Datasheet микросхемы PIC18F4550
3. http://www.pcweek.ru/themes/detail.php?ID=63924
4. http://ru.wikipedia.org/wiki/DES - описание DES алгоритма
5. Джеффри Рихтер, Windows для профессионалов
6. http://www.woweb.ru/publ/49-1-0-636
7. Сидельников В.М., Криптография и теория кодирования
8. Dorthy Elizabeth Robling Denning, Cryptography and Data Security
9. Брюс Шнайер, Прикладная криптография 2-е издание
Протоколы, алгоритмы и исходные тексты на языке С
10. http://www.pdfgeni.com/book/software-security-pdf.html
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00542
© Рефератбанк, 2002 - 2024