Рекомендуем

Введение в защиту информации в автоматизированных системахМалюк А. А., Пaзизин С. В., Погожин Н. С. Введение в защиту информации в автоматизированных системах
Информационная безопасность открытых систем. Том 1. Угрозы, уязвимости, атаки и подходы к защитеЗапечников С.В., Милославская Н.Г., Толстой А.И., Ушаков Д.В. Информационная безопасность открытых систем. Том 1. Угрозы, уязвимости, атаки и подходы к защите
Аутентификация. Теория и практика обеспечения безопасного доступа к информационным ресурсамАфанасьев А. А., Веденьев Л. Т., Воронцов А. А. и др. Аутентификация. Теория и практика обеспечения безопасного доступа к информационным ресурсам

Книга

Параллельные алгоритмы для решения задач защиты информации

2-е изд., стереотип.
2014 г.
304 стр.
Тираж 300 экз.
Формат 60х90/16 (145x215 мм)
Исполнение: в мягкой обложке
ISBN 978-5-9912-0439-2
ББК 32.973.2-018.2
УДК 004.056.5:519.688
Аннотация

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

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

Оглавление

Введение

1. Задачи защиты информации, для решения которых требуются параллельные вычисления
1.1. Введение в криптографию
1.2. Симметричные алгоритмы шифрования
1.2.1. Алгоритм шифрования DES
1.2.2. Алгоритм ГОСТ 28147-89
1.2.3. Стандарт AES
1.3. Анализ симметричных алгоритмов шифрования
1.3.1. Метод полного перебора
1.3.2. Метод встречи посередине
1.3.3. Линейный криптоанализ
1.3.4. Дифференциальный криптоанализ
1.3.5. Алгебраический анализ
1.3.6. Анализ стандарта AES
1.3.7. Слайдовая атака
1.3.8. Парадокс дней рождений и его роль в задачах криптоанализа
1.4. Асимметричные алгоритмы шифрования
1.4.1. Алгоритм RSA
1.5. Методы анализа асимметричных криптосистем
1.5.1. Метод базы разложения
1.5.2. Логарифмирование в простом поле методом решета числового поля
1.6. Функции хэширования
1.6.1. Функция хэширования SHA
1.6.2. Функция хэширования нового поколения Skein
1.7. Методы анализа современных функций хэширования
1.7.1. Методы, не зависящие от алгоритма преобразования
1.7.2. Методы, основанные на уязвимости алгоритма преобразования хэш-функции

2. Основы параллельного программирования. Основные технологии параллельного программирования
2.1. Основные типы архитектур высокопроизводительных вычислительных систем
2.1.1. Классификация Флинна
2.1.2. Классификация многопроцессорных систем
2.2. Особенности программирования параллельных вычислений
2.2.1. Основные модели параллельного программирования
2.2.2. Распределение данных при решении задач защиты информации
2.3. Оценка эффективности разработанных параллельных программ
2.3.1. Теоретические основы оценки эффективности параллельных алгоритмов
2.3.2. Закон Амдала
2.4. Современные технологии параллельного программирования

3. Введение в параллельное программирование с использованием MPI
3.1. Общие сведения об «Интерфейсе передачи данных»
3.2. Обзор пакетов программ для работы с MPI
3.3. Основные функции обмена данными с помощью MPI
3.3.1. Базовые функции
3.3.2. Двухточечный обмен
3.3.3. Функции для глобального взаимодействия и синхронизации

4. Технология CUDA
4.1. История вычислений на графических ускорителях
4.2. Архитектура CUDA. Мультипроцессоры
4.3. CUDA Runtime API и CUDA Driver API
4.4. Вычислительная модель. Потоки, блоки, варпы
4.5. Модель памяти
4.6. Расширения языка
4.7. Схема программы на CUDA
4.8. Пример программы на CUDA
4.9. Набор инструментов разработчика — CUDA Toolkit, CUDA SDK
4.9.1. Отладчик Parallel Nsight
4.9.2. Ресурсы для разработчиков CUDA

5. Параллельные алгоритмы в современных задачах защиты информации
5.1. Задача нахождения простых чисел в заданном диапазоне
5.2. Задача разложения произведения на простые сомножители
5.2.1. Первый вариант решения
5.2.2. Второй вариант решения
5.3. Параллельные алгоритмы решета числового поля для решения задачи дискретного логарифмирования
5.3.1. Алгоритм параллельного просеивания
5.3.2. Разработка алгоритма параллельного гауссова исключения
5.3.3. Гауссово исключение
5.3.4. Реализация метода базы разложения с помощью разработанных алгоритмов
5.3.5. Реализация метода решета числового поля с помощью разработанных алгоритмов
5.3.6. Ускорение решения задачи дискретного логарифмирования с помощью предвычислений
5.4. Параллельные алгоритмы дискретного логарифмирования в группе точек эллиптической кривой
5.4.1. Метод «Встреча посредине»
5.4.2. Метод «встреча на случайном дереве»
5.4.3. Анализ методов дискретного логарифмирования на эллиптической кривой
5.4.4. Распределение базы точек между процессами
5.4.5. Планирование взаимодействия процессов в топологии «полносвязный граф»
5.4.6. Разработка параллельного алгоритма дискретного логарифмирования методом встречи посередине
5.4.7. Разработка параллельного алгоритма дискретного логарифмирования методом встречи на случайном дереве
5.4.8. Возможность предвычислений
5.5. Дифференциальный криптоанализ алгоритма шифрования DES
5.6. Алгоритм поиска наиболее вероятных характеристик для проведения дифференциального криптоанализа алгоритма ГОСТ 28147-89
5.6.1. Трудоемкость перебора
5.6.2. Организация межпроцессных взаимодействий
5.7. Пример генерации радужных таблиц на CUDA
5.7.1. Описание метода радужных таблиц
5.7.2. Вероятность успешного поиска с помощью радужной таблицы
5.7.3. Описание используемой обратной функции
5.7.4. Формат данных для хранения хеш-таблиц
5.7.5. Листинг основных модулей программы, предназначенной для запуска на архитектуре CUDA

Литература

Приложение А. Руководство по использованию MPICH

Приложение Б. Основные функции, используемые в стандарте MPI

Список основных сокращений и обозначений