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 курса института энергетики и автоматизированных систем ФГБОУ ВПО «МГТУ им. Г.И. Носова»,
РФ, г. Магнитогорск