БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Каляев AM, Левин ИМ. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. - М.: ООО «Изд-во Янус-К», 2003.
2. Каляев И.А., Левин ИМ., Семерников КА., Шмойлов ВМ. Реконфигурируемые мульти-конвейерные вычислительные структуры. - 2-е изд. перераб. и доп. / Под общ. ред. И.А. Каляева. - Ростов на-Дону: Изд-во ЮНЦ РАН, 2009. - 344 с.
3. Гудков В.А., Левин ИМ. Расширение языка высокого уровня COLAMO для программирования реконфигурируемых вычислительных систем на уровне логических ячеек
// . - .: -ние, 2010. - № 12. - С. 10-17.
4. . .
// 9- -
ции-семинара «Высокопроизводительные параллельные вычисления на кластерных системах». - Владимир: Изд-во ВГУ, 2009. - С. 329-331.
5. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: ТРИУМФ, 2003 - 816 с.
Статью рекомендовал к опубликованию д.т.н., профессор Я.Е. Ромм.
Коваленко Алексей Геннадьевич - Научно-исследовательский институт многопроцессорных вычислительных систем им. А.В. Каляева Южного федерального университета; e-mail: [email protected]; 347928, г. Таганрог, ул. Чехова, 2, тел.: 88634315491; младший научный со.
Kovalenko Alexey Genad’evich - Scientific-Research Institute Multiprocessing Computing Systems after Kalyaev of South Federal University; e-mail: [email protected]; 2, Chekhov street, Taganrog, 347928, Russia; phone: +78634315491; research assistant.
УДК 004.421.6
E.E. Семерникова
РАЗРАБОТКА МАСШТАБИРУЕМЫХ РЕАЛИЗАЦИЙ АЛГОРИТМОВ СИМВОЛЬНОЙ ОБРАБОТКИ ДЛЯ РЕКОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ*
Рассмотрена масштабируемая реализация алгоритма на реконфигурируемой вычислительной системе с динамически перестраиваемой архитектурой типовых, для задач аутен-, . -фичесжого хеширования SHA1 на языке высокого уровня с неявным описанием параллелизма COLAMO. Полученная параллельная программа обладает свойством переносимости с одной реконфигурируемой вычислительной системы на другую, рассмотрены способы ее масшта-, .
Безопасность; масштабируемость; хэш-функция; язык высокого уровня COLAMO; распараллеливание по конвейерам.
E.E. Semernikova
DEVELOPMENT OF SCALABLE REALISATIONS SYMBOLIC PROCESSING ALGORITHMS FOR RECONFIGURABLE COMPUTER SYSTEMS
The paper describes scalable realization of typical symbolic processing algorithms from authentication tasks for reconfigurable computer system with dynamically reconfigurable architecture. The author suggests description of cryptographic hashing algorithm SHA1 realization with
*
Исследования выполнены при финансовой поддержке Министерства образования и науки РФ, госконтракт № 14.527.12.0004 от 03 октября 2011 г.
the help of a high-level language COLAMO. The developed parallel program in possession of portability, considered ways of scalability for this program, presented description of achieved performance.
Safety; scalability; hash function, high-level language COLAMO; pipeline parallelization.
Бурное развитие методов и средств обработки данных в последней четверти XX в. привело к созданию новых алгоритмов обработки символьной информации, применяемых в различных областях безопасности больших систем, таких как криптография, защищенный электронный документооборот, системы идентификации и аутентификации, сигнатурный анализ и другое. Современные реализации таких алгоритмов требуют от вычислительных систем скоростей обработки порядка 1010-1013 наборов данных в секунду.
В этой связи высокие показатели удельной производительности и энергоэффективности реконфигурируемых вычислительных систем (РВС) [1-2] по сравнению с многопроцессорными вычислительными системами (МВС) кластерной архитектуры обуславливают целесообразность их применения для решения задач , .
Одной из наиболее часто используемых реализаций криптографических алгоритмов при сетевых коммуникациях в Интернете являются хэш-функции, позволяющие создавать цифровые подписи отправляемых сообщений, беспечивающие необходимый уровень конфиденциальности передаваемой информации. Известные на сегодняшний день реализации хэш-функций для РВС разработаны схемо, -мость с одной РВС на другую. Преобразовать подобную вычислительную схему , -чить количество вычислительных конвейеров, - трудоемкая задача и требует временных затрат порядка нескольких недель.
Язык высокого уровня COLAMO [3] является платформонезависимым, что достигается за счет использования в процессе синтеза задачи файла описания архитектуры текущей РВС, в котором отображается информация о типе ПЛИС, их , . COLAMO
максимально просто описывать различные виды параллелизма в достаточно сжа-, . -ковые средства представлены в виде конструкций операторов условий, циклов и
,
. COLAMO -
циями, позволяющими осуществлять битовую обработку данных, дает возможность программисту значительно сократить время разработки реализаций задач .
распараллеливание по конвейерам, изменяя лишь параметр цикла. Таким образом,
COLAMO -
вольной обработки, а в частности, хэш-функций, позволяет создавать столь же эффективные вычислительные структуры, как и в случае схемотехнического ре, ,
, .
Рассмотрим масштабируемую реализацию алгоритма цифровой подписи SHA1 [4] на языке COLAMO. Задача разбита на несколько смысловых блоков,
( ). , нелинейные функции, а также шаг главного цикла, входят в состав подкадров, реализующих каждый из четырех раундов. Основной же подкадр ScSha включает в себя блок расширения исходного сообщения до восьмидесяти 32-р^рядных слов и последовательный вызов всех раундов, таким образом, осуществляются вычисления по заданному алгоритму.
21б
В основном теле программы (кадре) описывается распределение потоков данных при помощи регистрового интерфейса (InterfaceRG). Интерфейс обеспечивает информационный обмен между вычислительной схемой в пределах одного кристалла ПЛИС и управляющей ЭВМ. Также в кадре происходит вызов основного подкадра ScSha.
Загрузка данных (дайна сообщения в битах, эталонные значения, а также стартовые и конечные адреса для каждой из блочной памяти) осуществляется через пользовательскую шину интерфейса путем заполнения цепочки регистров. В схеме задействовано 16 блоков двухпортовой внутренней памяти шириной 32 бита и глу-256 . (
) 512 . ,
, 512 ,
так как алгоритм работает с блоками данных длиной, кратной этому числу разрядов. Расширение происходит следующим образом: вначале добавляется 1, затем нули, а в 64 .
Для выработки входной последовательности, загружаемой в вычислительную схему описанной реализации SHA1, на основе множеств значений, хранящихся в , : Generator,
, Connect,
адресами. То есть изменение адреса чтения каждой памяти на каждом такте задается однозначно и обеспечивает полный перебор данных. Пример использования функций приведен ниже:
for iConv := 0 to Count_Conv -1 for i := 0 to 15 do
for j := begin_addr[iConv,i] to end_addr[iConv, i] do addr[ iConv, i] := Generator(j); for k := 1 to 15 do
Connect(addr[iConv, k-1] , addr[ iConv, k]).
COLAMO- , -
мерными, где первое измерение - параметр цикла, отвечающий за распараллеливание по конвейерам.
После этого формируется массив из шестнадцати 32-р^рядных слов, кото-ScSha.
160-битное хэш-значение входной последовательности в виде набора пяти 32.
в регистре эталонным значением. В случае, когда хэш-значение полностью совпадает с эталонным, формируется так называемый бит совпадения, который далее передается в интерфейс и выставляется на соответствующую шину статуса вместе с индексом совпавшего сообщения, само же значение не выгружается, что позволяет сократить объем информационного потока, а значит, сократить оборудование и увеличить скорость обмена данными. Статус схемы обрабатывается управляю,
реализации. Линейная схема полученной реализации представлена на рис. 1.
Рис. 1. Конвейер SHA1
I , G - -
, .
показывает возможность распараллеливания за счет использования большего чис-.
Полученная в результате трансляции и синтеза текста программы вычислительная структура представляет собой конвейер. Программные средства языка позволяют параллельно подключать несколько конвейеров, что ведет к увеличению производительности пропорционально их количеству. Число конвейеров задается параметром цикла и может принимать любые значения, ограниченные лишь , , также обуславливает масштабируемость.
Параллельная программа, решающая задачу символьной обработки, была реализована на языке COLAMO для реконфигурируемого вычислителя, содержащего 8 ПЛИС Vertex 6 фирмы Xilinx c 24 млн элементарных вентилей и позволила разместить 6 конвейеров на кристалле (48 конвейеров всего). Работая на частоте 250МГц, программа показала реальную производительность 1,2х1010 наборов данных/с.
COLAMO -
лелизма позволяет создавать эффективные масштабируемые реализации прикладных задач символьной обработки, при этом время их разработки составляет всего , , -чивающих к тому же масштабируемость и переносимость с одной РВС на другую.
БИБЛИОГРАФИНСКИЙ СПИСОК 1. . , . . -
структурно-процедурной организацией вычислений. - М.: ООО «Изд-во Янус-К», 2003.
2. . ., . ., . ., . . -
. - 2- . . . / . . И.А. Каляева. - Ростов на-Дону: Изд-во ЮНЦ РАН, 2009. - 344 с.
3. . . , , -
ке Си. - М.: ТРИУМФ, 2003. - 816 с.
4. . ., . ., . . -
COLAMO // . - :
i освка, 2006. - № 4. - С. 211-219.
Статью рекомендовал к опубликованию д.т.н., профессор Я.Е. Ромм.
Семерникова Евгения Евгеньевна - Научно-исследовательский институт многопроцессорных вычислительных систем им. А.В. Каляева Южного федерального университета; e-mail: [email protected]; 347928, г. Таганрог, ул. Чехова, 2; тел.: 88634315491; про.
Semernikova Eugenia Evgen’evna - Scientific-Research Institute Multiprocessing Computing Systems after Kalyaev of South Federal University; e-mail: [email protected]; 2, Chekhov street, Taganrog, 347928, Russia; phone: +78634315491; programmer.