Научная статья на тему 'РЕАЛИЗАЦИЯ И ИССЛЕДОВАНИЕ КРИПТОГРАФИЧЕСКИ СТОЙКОГО ГЕНЕРАТОРА BLUM-BLUM-SHUB'

РЕАЛИЗАЦИЯ И ИССЛЕДОВАНИЕ КРИПТОГРАФИЧЕСКИ СТОЙКОГО ГЕНЕРАТОРА BLUM-BLUM-SHUB Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
101
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПСЕВДОСЛУЧАЙНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ / ГЕНЕРАТОР БИНАРНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ / PSEUDORANDOM NUMBER GENERATOR / BINARY SEQUENCES / БОЛЬШИЕ ЧИСЛА / СКОРОСТЬ АЛГОРИТМА / ALGORITHM SPEED / ПОТРЕБЛЕНИЕ ПАМЯТИ / MEMORY CONSUMPTION / BIG INTEGERS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Выборнова Юлия Дмитриевна

Объектом исследования является криптографически стойкий генератор псевдослучайных последовательностей Blum-Blum-Shub. Цель работы - реализация генератора псевдослучайных последовательностей с помощью двух различных прикладных криптографических библиотек языка программирования C++ и сравнение основных характеристик полученных программных модулей. В работе проведен анализ основных характеристик полученного генератора: производительности и потребления оперативной памяти при генерации последовательностей большой длины. Сформированы выводы о границах применения полученных реализаций генератора.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

RESEARCH AND IMPLEMENTATION OF CRYPTOGRAPHICALLY SECURE PSEUDORANDOM BLUM-BLUM-SHUB GENERATOR

The object of this research is a cryptographically secure pseudorandom number generator called Blum-Blum-Shub generator. The main objective is implementation of pseudorandom number generator using two different C++ applied cryptography libraries and comparison of software modules characteristics. The paper analyzes the main characteristics of the resulting generator: performance and memory consumption in case of generating long sequences. Application area of both implementations was defined.

Текст научной работы на тему «РЕАЛИЗАЦИЯ И ИССЛЕДОВАНИЕ КРИПТОГРАФИЧЕСКИ СТОЙКОГО ГЕНЕРАТОРА BLUM-BLUM-SHUB»

www.sibac.info

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

Список литературы:

1. Балановский А.Е. Плазменное поверхностное упрочнение металлов. Иркутск: Изд-во ИрГТУ, 2006. - 180 с.

2. Болховитинов Н.Ф. Металловедение и термическая обработка.М.: Машиностроение, 1965, - 505 с.

3. Бердников А.А, Филиппов М.А. Студенок Е.С. Структура закаленных углеродистых сталей после плазменного поверхностного нагрева // Металловедение и термического обработка металлов, - 1997. - № 6. -С. 2-4.

4. Чудина О.В. Комбинированные методы поверхностного упрочнения сталей с применением лазерного нагрева. Теория и технология. М.: МАДИ (ГТУ), 2003, - 248 с.

5. Shigehiro Shimbara, Takayuki Watanabe. Water Plasma Generation under Atmospheric Pressure for Waste Treatment // Ref. Proceedings of Regional Symposium on Chemical Engineering - 2003. - Vol. 7. - P. 1-6.

РЕАЛИЗАЦИЯ И ИССЛЕДОВАНИЕ КРИПТОГРАФИЧЕСКИ СТОЙКОГО ГЕНЕРАТОРА BLUM-BLUM- SHUB

Выборнова Юлия Дмитриевна

аспирант Самарского государственного аэрокосмического университета имени академика С.П. Королева,

РФ, г. Самара Email: vybornovamail@smail.com

www.sibacinfo

RESEARCH AND IMPLEMENTATION OF CRYPTOGRAPHICALLY SECURE PSEUDORANDOM BLUM-BLUM-SHUB GENERATOR

Yuliya Vybornova

post-graduate student, Samara State Aerospace University,

Russia, Samara

АННОТАЦИЯ

Объектом исследования является криптографически стойкий генератор псевдослучайных последовательностей Blum-Blum-Shub. Цель работы - реализация генератора псевдослучайных последовательностей с помощью двух различных прикладных криптографических библиотек языка программирования C++ и сравнение основных характеристик полученных программных модулей. В работе проведен анализ основных характеристик полученного генератора: производительности и потребления оперативной памяти при генерации последовательностей большой длины. Сформированы выводы о границах применения полученных реализаций генератора.

ABSTRACT

The object of this research is a cryptographically secure pseudorandom number generator called Blum-Blum-Shub generator. The main objective is implementation of pseudorandom number generator using two different C++ applied cryptography libraries and comparison of software modules characteristics. The paper analyzes the main characteristics of the resulting generator: performance and memory consumption in case of generating long sequences. Application area of both implementations was defined.

Ключевые слова: псевдослучайные последовательности; генератор бинарных последовательностей; большие числа; скорость алгоритма; потребление памяти.

Keywords: binary sequences; pseudorandom number generator; big integers; algorithm speed; memory consumption.

Реализация генератора.

Генераторы псевдослучайных последовательностей - это алгоритмы, которые используют математические формулы или предварительно вычисленные таблицы, чтобы порождать последовательности псевдослучайных чисел [1, с. 815-816].

В 1986 году Ленор Блюм, Мануель Блюм и Майкл Шуб опубликовали алгоритм, который впоследствии получил название

www.sibac.info

генератора Blum-Blum-Shub. Генератор основан на операции возведения в квадрат в кольце вычетов по модулю большого числа N, где N = P х Q, при условии, что P и Q - простые числа равной длины, сравнимые с 3 по модулю 4 [2, с. 367-368].

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

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

Для реализации первой версии программного генератора Blum-Blum-Shub было решено использовать библиотеку Crypto++ [3].

Для реализации второй версии программного генератора Blum-Blum-Shub использовалась библиотека MPIR (The Multiple Precision Integers and Rationals Library) [4].

Также для детального рассмотрения была выбрана одна из существующих реализаций исследуемого генератора - реализация Ника Галбрета 2005 года [5]. Реализация представляет собой библиотеку на языке программирования Java.

Исследование характеристик генератора Blum-Blum-Shub

Три реализации исследуемого генератора были протестированы на трех различных операционных системах семейства Windows: Windows 7 Home Basic (64-битная), Windows 8 Professional (32-битная), Windows Vista Ultimate (32-битная). Windows 7 является основной операционной системой персонального компьютера, на котором проводилось исследование, а Windows 8 и Windows Vista запускались с помощью виртуальной машины Oracle VM VirtualBox. Основные характеристики персонального компьютера: двухядерный процессор Intel Pentium P6100, тактовая частота каждого ядра 2 ГГц, объем оперативной памяти 3 Гб.

Результаты представлены в таблицах 1-3.

Таблица 1.

Среднее время выполнения программы при генерации 1 миллиона бит псевдослучайной последовательности, [с]

Реализация

Операционная^~^^ система Java C++, Crypto++ C++, MPIR

Windows 7 5,656 87,442 35,642

Windows 8 27,437 151,862 47,264

Windows Vista 21,374 94,424 38,399

Таблица 2.

Средняя скорость потока при генерации 1 миллиона бит псевдослучайной последовательности, [бит/с]

Реализация

ОперационнаЯ"^^^ Java C++, Crypto++ C++, MPIR

система

Windows 7 188279,631 11461,812 28226,993

Windows 8 37118,510 6594,147 21251,284

Windows Vista 47831,430 10615,840 26182,505

Таблица 3.

Средний объем потребляемой оперативной памяти при генерации 1 миллиона бит псевдослучайной последовательности, [Кбайт]

^^^^^ Реализация

Java C++, Crypto++ C++, MPIR

система ^^^^

Windows 7 42149,6 3298,0 51313,6

Windows 8 1461,8 2412,0 50728,0

Windows Vista 1195,6 352,8 47595,2

Исходя из результатов тестирования двух рассмотренных генераторов, можно сделать вывод, что самой быстрой является реализация генератора Blum-Blum-Shub на языке программирования Java. Однако следует обратить внимание на наличие внешней зависимости и ненормированное потребление памяти. В данном случае преимущество по скорости не играет роли, так как для того чтобы

www.sibac.info

изменить границы применения генератора, необходимо увеличить его скорость в 1000 раз и более, а в данном случае реализация на языке программирования Java быстрее других реализаций не более, чем в 16 раз.

Реализация на основе библиотеки MPIR также обладает высокой скоростью, но как и реализация на языке программирования Java имеет ненормированное потребление памяти, поэтому трудно предсказать поведение данной программы при генерации очень больших последовательностей (1 гигабайт и более). Для запуска данной реализации требуется наличие динамической библиотеки mpir.dll. Данная библиотека не требует установки и почти не занимает места на диске, поэтому такая зависимость не является недостатком.

Реализация на основе библиотеки Crypto++ является самой медленной и для генерации очень больших последовательностей потребуется колоссальное количество времени. Но зато данная программа отличается стабильным потреблением памяти и отсутствием каких-либо внешних зависимостей.

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

Заключение.

Таким образом, если стоит вопрос об экономии времени, необходимо применять программную реализацию на основе теоретико-числовой библиотеки MPIR. Если же приоритетным требованием является экономия памяти, то следует выбрать программную реализацию на основе криптографической библиотеки Crypto++.

Список литературы:

1 Neil J. Salkind. Encyclopedia of Measurement and Statistics. Sage Publications, 2007.

2 Blum L., M. Blum and M. Shub. A Simple Unpredictable Pseudo-Random Number Generator. Proceedings, SIAM Journal on Computing, May 1986.

3 Crypto++. [Электронный ресурс]. - Режим доступа. - URL: http://www.cryptopp.com/ (дата обращения: 21.09.2015).

4 The Multiple Precision Integers and Rationals Library. [Электронный ресурс]. -Режим доступа. - URL: http://mpir.org/ (дата обращения: 16.10.2015).

5 A collection of random number generators in java. [Электронный ресурс]. -Режим доступа. - URL: https://code.google.com/p/javarng/ (дата обращения: 19.10.2015).

АНАЛИЗ И СРАВНЕНИЕ СУЩЕСТВУЮЩИХ ПРОГРАММНЫХ ПРОДУКТОВ ПРИ РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ ДЛЯ ВЫБОРА КАБЕЛЬНЫХ ЛИНИЙ ПРОМЫШЛЕННЫХ ПРЕДПРИЯТИЙ

Гладышева Мария Михайловна

доцент каф. вычислительной техники и программирования института энергетики и автоматизированных систем ФГБОУВПО «МГТУ им. Г.И. Носова», РФ, г. Магнитогорск E-mail: mar.ser.ksuh@gmail. com

Сухачева Евгения Константиновна

студент 2 курса института энергетики и автоматизированных систем ФГБОУ ВПО «МГТУ им. Г.И. Носова»,

РФ, г. Магнитогорск

Хатюшина Татьяна Владимировна

студент 2 курса института энергетики и автоматизированных систем ФГБОУ ВПО «МГТУ им. Г.И. Носова»,

РФ, г. Магнитогорск

i Надоели баннеры? Вы всегда можете отключить рекламу.