Научная статья на тему 'Разработка и исследование параллельного алгоритма муравьиных колоний для криптоанализа блочных криптосистем'

Разработка и исследование параллельного алгоритма муравьиных колоний для криптоанализа блочных криптосистем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
578
112
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
криптоанализ / муравьиный алгоритм / матрица логической несовместимости / матрица незави-симости / множества взаимно независимых операторов / cryptanalysis / ant algorithm / matrix of logical incompatibility / matrix of independence / mutually independent operators maximal set

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ю.О. Чернышев, А.С. Сергеев, A.H. Рязанов, C.А. Капустин

В статье рассматривается возможность параллельной реализации алгоритмов муравьиных колоний для криптоана-лиза блочных криптосистем. Отмечена актуальность нового научного направления «природные вычисления», приве-дена структурная схема криптоанализа стандарта DES с использованием метода муравьиных колоний. Приводится описание параллельной версии алгоритма криптоанализа на основе информационно-логической граф-схемы, матриц следования, логической несовместимости и независимости. На основе методики определения числа процессоров, сущ-ность которой заключается в нахождении максимального множества взаимно независимых операторов в матрице не-зависимости, последовательном проведении фиктивных связей в информационно-логическом графе, не увеличиваю-щих длину критического пути, определено минимальное число процессоров, необходимых для реализации алгоритма криптоанализа. Отмечается, что отличительной особенностью применения биоинспирированных методов криптоана-лиза является возможность использования самого алгоритма шифрования (или расшифрования) в качестве целевой функции для оценки пригодности ключа, определенного с помощью генетических операций. Вследствие этого при использовании биоинспирированных методов криптоанализа процесс определения секретного ключа (например, при криптоанализе 2-го типа) зависит не столько от сложности шифрующих преобразований, сколько от самого био-инспирированного метода, который должен обеспечивать достаточное разнообразие генерации ключей, что свиде-тельствует об актуальности задачи исследования возможности применения биоинспирированных алгоритмов (в част-ности, методов генетического поиска) для криптоанализа блочных криптосистем.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ю.О. Чернышев, А.С. Сергеев, A.H. Рязанов, C.А. Капустин

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

DEVELOPMENT AND RESEARCH OF A PARALLEL ANT COLONY ALGORITHM FOR A BLOCK CRYPTOSYSTEM CRYPTANALYSIS

The article considers the possibility of parallel implementation of ant colonies algorithms for block cryptosys-tems cryptanalysis. The authors specify that a new scientific direction “natural calculations” is relevant, provide the block diagram of DES standard cryptanalysis using a method of ant colonies. The parallel version of cryptanalysis algorithm is de-scribed on the basis of a data-logical flow graph, sequence matrices, logical incompatibility and independence. The minimum number of the processors for a cryptanalysisis algorithm is defined on the basis of a technique of defining the number of processors. This technique includes finding of a mutually independent operators maximal set in an independence matrix, con-secutive fictive linking in a data-logical graph provided that these links don't increase a critical way length. A bioinspired cryptanalysis method application is distinguished by the possibility of using an encryption (decryption) algorithm as an objec-tive function of key assessment defined by genetic operations. Therefore, when using the bioinspired cryptanalysis methods the process of private key definition (for example, at type 2 cryptanalysis) depends not on encryption complexity, but on the bioinspired method itself that provides a sufficient variety of key generation. This proves the relevance of the problem con-nected with a research on the bioinspired algorithms application possibility for block cryptosystems cryptanalysis.

Текст научной работы на тему «Разработка и исследование параллельного алгоритма муравьиных колоний для криптоанализа блочных криптосистем»

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

УДК 004.056.55 Дата подачи статьи: 24.06.15

DOI: 10.15827/0236-235X.112.148-157

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

(Работа выполнена при финансовой поддержке РФФИ, проекты №№ 14-01-00634, 15-05-00129)

Ю.О. Чернышев, д.т.н., профессор, myvnn@list.ru;

А.С. Сергеев, к.т.н., докторант, sergeev00765@mail.ru;

A.H. Рязанов, аспирант, alexandr_r89@mail.ru (Донской государственный технический университет, пл. Гагарина, 1, г. Ростов-на-Дону, 344000, Россия);

C.А. Капустин, к.т.н., доцент, skappa@yandex.ru (Филиал Военной академии связи, ул. Красина, 4, г. Краснодар, 350035, Россия)

В статье рассматривается возможность параллельной реализации алгоритмов муравьиных колоний для криптоанализа блочных криптосистем. Отмечена актуальность нового научного направления «природные вычисления», приведена структурная схема криптоанализа стандарта DES с использованием метода муравьиных колоний. Приводится описание параллельной версии алгоритма криптоанализа на основе информационно-логической граф-схемы, матриц следования, логической несовместимости и независимости. На основе методики определения числа процессоров, сущность которой заключается в нахождении максимального множества взаимно независимых операторов в матрице независимости, последовательном проведении фиктивных связей в информационно-логическом графе, не увеличивающих длину критического пути, определено минимальное число процессоров, необходимых для реализации алгоритма криптоанализа. Отмечается, что отличительной особенностью применения биоинспирированных методов криптоанализа является возможность использования самого алгоритма шифрования (или расшифрования) в качестве целевой функции для оценки пригодности ключа, определенного с помощью генетических операций. Вследствие этого при использовании биоинспирированных методов криптоанализа процесс определения секретного ключа (например, при криптоанализе 2-го типа) зависит не столько от сложности шифрующих преобразований, сколько от самого биоинспирированного метода, который должен обеспечивать достаточное разнообразие генерации ключей, что свидетельствует об актуальности задачи исследования возможности применения биоинспирированных алгоритмов (в частности, методов генетического поиска) для криптоанализа блочных криптосистем.

Ключевые слова: криптоанализ, муравьиный алгоритм, матрица логической несовместимости, матрица независимости, множества взаимно независимых операторов.

В последние годы интенсивно разрабатывается новое научное направление «природные вычисления», объединяющее математические методы, в которых заложен принцип природных механизмов принятия решений. К таким методам относятся методы моделирования отжига, эволюционного моделирования, генетические алгоритмы, методы эволюционной адаптации, алгоритмы роевого интеллекта, муравьиные алгоритмы. В моделях и алгоритмах эволюционных вычислений ключевым элементом является построение начальной модели и правил, по которым она может изменяться (эволюционировать). Были предложены разнообразные схемы эволюционных вычислений, в том числе генетический алгоритм, генетическое программирование, эволюционные стратегии, эволюционное программирование. Общие концепции и методологический подход к построению эволюционных вычислений, основанных на природных системах, а также основные гипотезы, закономерности и положения концепции эволюционных вычислений отмечены в [1, 2]. В настоящее время известно применение генетических алгоритмов для оптимизации широкого круга задач, в том числе задач криптоанализа. В [3-10] рассматривались методы организации криптографических атак на традиционные симметричные криптосистемы, использующие

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

Недостатком генетических алгоритмов является наличие «слепого» поиска. Это в общем случае приводит к генерации решений с нарушениями, что увеличивает время поиска и требует дополнительного контроля, к генерации большого количества одинаковых решений, генерации большого количества плохо приспособленных решений, что в общем случае может привести к попаданию в локальный оптимум [11]. Поэтому представляет интерес применение эвристических методов, инспирированных природными системами, в которых осуществляется поэтапное построение решения задачи (то есть добавление нового оптимального частичного решения к уже построенному частичному оптимальному решению). К методам данного вида относят и муравьиные алгоритмы, идея которых состоит в моделировании поведения муравьев, связанного с их способностью быстро находить кратчайший путь от муравейника к источнику пищи. Как отмечено в [12], колония муравьев рассматривается как многоагентная система, в которой каждый муравей-агент функционирует автономно на основе простых правил. Однако в противоположность примитивному поведению отдельных аген-

148

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

тов поведение всей колонии оказывается достаточно разумным. Исследования в этой области проводятся с середины 90-х годов, и на сегодняшний день известно их применение к задаче о коммивояжере, квадратичной задаче о назначениях, к задачам о раскраске графа, определения оптимальных маршрутов в коммутационных сетях, маршрутизации транспортных средств, борьбы с вредоносным ПО. В [13] рассмотрен возможный подход к реализации криптоанализа блочных алгоритмов шифрования и показано сведение криптоанализа к классической задаче о назначении, решаемой с помощью алгоритма муравьиных колоний.

В настоящее время актуальной является задача криптоанализа блочных криптосистем, так как переход к блочному шифрованию открывает дополнительные возможности для повышения стойкости криптоалгоритмов. Сведения по криптостойкости ряда блочных алгоритмов, в частности, к линейному и дифференциальному криптоанализу, а также результаты его применения к алгоритму DES приведены в [14, 15]. Описание некоторых блочных стандартов шифрования (в том числе стандарта DES) с введенными терминами и обозначениями дано в [15-17].

Отличительной особенностью применения биоинспирированных методов криптоанализа является возможность использования самого алгоритма шифрования (или расшифрования) в качестве целевой функции для оценки пригодности ключа, определенного с помощью генетических операций. Это особенно существенно при реализации криптоанализа блочных алгоритмов шифрования, в которых применяется многократная обработка блоков текста и на каждом цикле данные преобразуются при участии вспомогательного ключа, сформированного из секретного ключа. Как отмечено в [15], выбор числа циклов определяется требованиями криптостойкости, то есть чем больше циклов, тем выше криптостойкость и больше времени требуется на шифрование (расшифрование). В связи с этим процесс криптоанализа, связанный с какими-либо преобразованиями самого алгоритма шифрования, может оказаться затруднительным и актуальной становится задача исследования возможности применения биоинспирированных алгоритмов для криптоанализа блочных криптосистем, поскольку при использовании данных алгоритмов процесс определения секретного ключа (например при криптоанализе 2-го типа) зависит не столько от сложности шифрующих преобразований, сколько от самого биоинспирированного метода, который должен обеспечивать достаточное разнообразие генерации ключей.

Увеличение производительности «природных» алгоритмов наряду с параллельной реализацией на «низшем» уровне (то есть при параллельной реализации самого алгоритма криптоанализа, используемого для оценки целевой функции пригодности

ключа) возможно также при распараллеливании на «высшем» уровне (то есть при реализации самого «природного» алгоритма, используемого для формирования популяции решений, их оценки и проведения множества операций, имитирующих эволюцию живой природы).

Чрезвычайно важным свойством эволюционных стратегий является их естественный внутренний параллелизм. При этом по сравнению с градиентными методами различие во времени расчета целевой функции при различных значениях параметров не оказывает влияния на эффективность распараллеливания [18]. Основные технологии распараллеливания алгоритмов (глобальные параллельные алгоритмы, островная модель, клеточный алгоритм) описаны в [18, 19], методы разработки параллельных программ - в [20, 21].

Разработку параллельной версии алгоритма рассмотрим на примере стандарта DES. Структурная схема криптоанализа с использованием метода муравьиных колоний и структурная схема цикла алгоритма DES приведены на рисунках 1, 2 и в работе [13].

На основе структурной схемы алгоритма муравьиных колоний и информационно-логической граф-схемы алгоритма DES, приведенных в [5, 6], получим информационно-логическую граф-схему алгоритма криптоанализа (рис. 3). Связи по управлению показаны на рисунке двойной линией, по информации - одинарной. Для упрощения будем предполагать, что число ключей К равно 2 (блоки 1, 2), вычисление целевой функции R для ключей К1, К2 производится на одной группе процессоров, реализующих блоки 3-23, число комбинаций ikkk и число m*d маршрутов, образующих расширенную популяцию, равны 2, оценка их целевой функции пригодности проводится в одном блоке. Применительно к структурной схеме алгоритма DES будем предполагать, что в выходном блоке формируется блок исходного текста, на входной блок поступает блок шифртекста (поскольку процессы шифрования и расшифрования выполняются аналогично за исключением порядка использования ключа и матриц перестановок IP и IP-1).

Для данного графа введем в рассмотрение матрицу следования S. Элемент S/ =*, если существует связь по управлению (/^0, и S/ =1, если существует связь по информации (j i). Данная матрица будет содержать следующие ненулевые элементы:

S(3, 1) = S(3, 2)= S(5, 3) = S(6, 5) = S(7, 5) = S(8,

1) = S(8, 2) = S(9, 8) = S(10, 8) = S(11, 8) = S(12, 8) = S(13, 8) = S(14, 8) = S(15, 8) = S(16, 8) = 1; S(9, 4) = S(10, 4) = S(11, 4) = S(12, 4) = S(13, 4) = S(14, 4) = S(15, 4) = S(16 ,4)=*;

S(17, 7) = S(17, 9) = S(17, 10) = S(17, 11) = S(17, 12) = S(17, 13) = S(17, 14) = S(17, 15) = S(17, 16) = S(18, 17) = S(19, 18) = S(20, 5) = S(20, 19) = S(21, 6) = S(21, 20) = S(24, 22) = S(28, 26) = S(27, 29) = S(28, 30) = S(29, 31) = S(32, 1) = S(32, 2) = S(32, 30) =

149

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

S(32, 31) = S(33, 1) = S(33, 2) = S(33, 30) = S(33, 31) S(22, 21) = S(23, 21) = S(25, 24) = S(26, 24) =

= S(34, 32) = S(34, 33) = S(35, 34) =1; S(27, 24)=*.

Рис. 1. Структурная схема криптоанализа алгоритма DES с использованием метода муравьиных колоний

Fig. 1. A flow chart of DES algorithm cryptoanalysis using ant colony method

150

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

Разбиение текста на N 64-битовых блоков

Определение номера итерации i

Получение последовательности Li-i и Ri-i

7

Li-Ri-i

Расширение Ri-i до 48 бит

17

Сложение по модулю 2 с ключом Ki

Получение блока Получение блока Получение блока

Bi. Подстановка B2. Подстановка Bs. Подстановка

в блоке S1 в блоке S2 в блоке Ss

Функция P перестановок битов в блоке Si (Bi) ...Ss (Bs)

Сложение по модулю 2 C Li-i. Получение Ri.

64-битовый блок 1 64-битовый блок N

Г 3

Начальная перестановка IP в блоке

8

Применение функции G, формирование Со Do

Да Конечная

перестановка IP’1.

Получе ние

шифртекста

Нет

23

Переход к следующей итерации

Рис. 2. Структурная схема цикла алгоритма DES Fig. 2. A flow chart of DES algorithm cycle

16 ^ ’

Циклический сдвиг влево, Циклический сдвиг влево,

получение Ci и D1, С2 и D2. получение Ci6 и Di6

Примене ние функции H, Примене ние функции H,

получение ключей K1, K2 получение ключей K15, K16

Ключ K

4

5

9

6

19

20

22

Используя алгоритм нахождения транзитивных связей [20, 21] и вводя для элементов 1 и * матрицы S обозначения 1, получим матрицу ST (матрицу следования, дополненную транзитивными связями), представленную по адресу http://www.swsys.ru/up-loaded/image/2015-4-dop/1.jpg.

Далее введем в рассмотрение матрицу L логической несовместимости операторов, используя алгоритм, составленный для треугольной матрицы S и

описанный в [21]. Данная матрица будет содержать следующие ненулевые элементы:

L(9, 10) = L(9, 11) = L(9, 12) = L(9, 13) = L(9, 14) = L(9, 15) = L(9, 16) = L(10, 9) = L(10, 11) = L(10, 12) = L(10, 13) = L(10, 14) = L(10, 15) = L(10, 16) = L(11, 9) = L(11, 10) = L(11, 12) = L(11, 13) = L(11,

14) = Lii, 15) = L(11, 16) = L(12, 9) = L(12, 10) = L(12, 11) = L(12, 13) = L(12, 14) = L(12, 15) = L(12, 16) = L(13, 9) = L(13, 10) = L(13, 11) = L(13, 12) =

151

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

L(13, 14) = L(13, 15) = L(13, 16) = L(14, 9) = L(14, 10) = L(14, 11) = L(14, 12) = L(14, 13) = L(14, 15) = L(14, 16) = L(15, 9) = L(15, 10) = L(15, 11) = L(15, 12) = L(15, 13) = L(15, 14) = L(15, 16) = L(16, 9) = L(16, 10) = L(16, 11) = L(16, 12) = L(16, 13) = L(16, 14) = L(16, 15) = L(22, 23) = L(23, 22) = L(23, 24) = L(23, 25) = L(23, 26) = L(23, 27) = L(23, 28) = L(23, 29) = L(23, 30) = L(23, 31) = L(23, 32) = L(23, 33) = L(23, 34) = L(23, 35) = L(24, 23) = L(25, 23) = L(25, 26) = L(25, 27) = L(25, 28) = L(25, 29) = L(25, 30) = L(25, 31) = L(25, 32) = L(25, 33) = L(25, 34) = L(25, 35) = L(26, 23) = L(26, 25) = L(27, 23) = L(27, 25) = L(28, 23) = L(28, 25) = L(29, 23) = L(29, 25) = L(30, 23) = L(30, 25) = L(31, 23) = L(31, 25) = L(32, 23) = L(32, 25) = L(33, 23) = L(33, 25) = L(34, 23) = L(34, 25) = L(35, 23) = L(35, 25) = 1.

Откажемся от свойства ориентированности граф-схемы и в матрице следования ST положим (i, j)=(j, i)=1. На полученную матрицу следования S' наложим матрицу логической несовместимости L, дополненную транзитивными связями. Получим матрицу независимости М, по нулевым элементам которой можно указать множество операторов, каждый из которых может быть выполнен одновременно с оператором, соответствующим номеру строки. Данная матрица будет содержать следующие элементы, равные нулю:

М(1, 1) = М(1, 2) = М(1, 4) = М(2, 1) = М(2, 2) = М(2, 4) = М(3, 3) = М(3, 4) = М(3, 8) = М(3, 9) = М(3, 10) = М(3, 11) = М(3, 12) = М(3, 13) = М(3, 14) = М(3, 15) = М(3, 16) = М(4, 1) = М(4, 2) = М(4, 3) = М(4, 4) = М(4, 5) = М(4, 6) = М(4, 7) = М(4, 8) = М(5, 4) = М(5, 5) = М(5, 8) = М(5, 9) = М(5, 10) = М(5, 11) = М(5, 12) = М(5, 13) = М(5, 14) = М(5, 15)

= М(5, 16) = М(6, 4) = М(6, 6) = М(6, 7) = М(6, 8) = М(6, 9) = М(6, 10) = М(6, 11) = М(6, 12) = М(6, 13) = М(6, 14) = М(6, 15) = М(6, 16) = М(6, 17) = М(6, 18) = М(6, 19) = М(6, 20) = М(7, 4) = М(7, 6) = М(7,

7) = М(7, 8) = М(7, 9) = М(7, 10) = М(7, 11) = М(7, 12) = М(7, 13) = М(7, 14) = М(7, 15) = М(7, 16) = М(8, 3) = М(8, 4) = М(8, 5) = М(8, 6) = М(8, 7) = М(8, 8) = М(9, 3) = М(9, 5) = М(9, 6) = М(9, 7) = М(9, 9) = М(10, 3) = М(10, 5) = М(10, 6) = М(10, 7) = М(10, 10) = М(11, 3) = М(11, 5) = М(11, 6) = М(11, 7) = М(11, 11) = М(12, 3) = М(12, 5) = М(12, 6) = М(12, 7) = М(12, 12) = М(13, 3) = М(13, 5) = М(13, 6) = М(13, 7) = М(13, 13) = М(14, 3) = М(14, 5) = М(14, 6) = М(14, 7) = М(14, 14) = М(15, 3) = М(15,

5) = М(15, 6) = М(15, 7) = М(15, 15) = М(16, 3) = М(16, 5) = М(16, 6) = М(16, 7) = М(16, 16) = М(17,

6) = М(17, 17) = М(18, 6) = М(18, 18) = М(19, 6) =

М(19, 19) = М(20, 6) = М(20, 20) = М(21, 21) = М(22, 22) = М(23, 23) = М(24, 24) = М(25, 25) =

М(26, 26) = М(26, 27) = М(26, 29) = М(26, 31) =

М(27, 26) = М(27, 27) = М(27, 28) = М(27, 30) =

М(28, 27) = М(28, 28) = М(28, 29) = М(28, 31) = М(29, 26) = М(29, 28) = М(29, 29) = М(29, 30) = М(30, 27) = М(30, 29) = М(30, 30) = М(30, 31) = М(31, 26) = М(31, 28) = М(31, 30) = М(31, 31) =

М(32, 32) = М(32, 33) = М(33, 32) = М(33, 33) =

М(34, 34) = М(35, 35) = 0.

Таким образом, на основе данной матрицы М можно определить семейство всех внутренне устойчивых множеств. Максимальное внутренне устойчивое множество даст оценку максимального числа процессоров, требуемых для реализации алгоритма [20]. По матрице М можно определить, что число внутренней устойчивости Х=4.

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

Отсюда с учетом принятых ранее допущений следуют утверждения.

1. При реализации реального алгоритма криптоанализа, использующего множество решений, содержащее n ключей, требуемое число процессоров (P) составит n.

2. Поскольку число процессоров для оценки функции R пригодности ключей составляет 4 (блоки 3-23), при параллельной реализации алгоритмов оценки n ключей число процессоров составит не более 4*n.

3. Аналогично при параллельной обработке результирующих концентраций феромона, его испарения и определения вероятности размещения l символов в k позиций число процессоров составит не более l*k.

4. При параллельном формировании m*d ключей, образующих расширенную популяцию решений и оценки их целевой функции R, число процессоров составит не более n=4*m*d.

Очевидно, что при параллельной реализации алгоритма криптоанализа необходимое число процессоров не превысит максимального из отмеченных в пунктах 1-4 величин, то есть P=max(4*n, l*k, 4*m*d).

152

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

Для определения точной оценки числа процессоров, необходимых для реализации алгоритма при заданных временных ограничениях, воспользуемся методами, описанными в [20, 21]. Рассмотрим следующую задачу: для алгоритма криптоанализа на основе построенного информационно-логического графа и для заданного времени Тзад найти необходимое наименьшее число процессоров однородной вычислительной системы и план выполнения на них операторов.

Данная задача рассматривалась применительно к информационно-логической схеме криптоанализа алгоритма DES с помощью генетического алгоритма в [22]. Аналогичным образом рассмотрим метод решения задачи на примере алгоритма криптоанализа стандарта DES с помощью метода муравьиных колоний, представленного информационно-логическим графом на рисунке 3. На первоначальном этапе определим скалярные веса вершин, отражающих время выполнения операций. Для определения данного времени воспользуемся основными правилами анализа программ, описанными в [23], которые определяют время выполнения операторов присваивания, чтения записи (О(1)), выполнения последовательности операторов (правило сумм), условных операторов, цикла.

Время выполнения операторов присваивания и элементарных логических операций примем равным О(1) (блоки 6, 4, 5, 21, 23, 24, 25, 35), время перестановки с помощью матриц IP и IP'1 - О(32) (блоки 3, 22), время перестановки с помощью матрицы Р - О(16) (блок 19), время выполнения функции G - 0(28) (блок 8), время операции циклического сдвига влево на 1 и 2 бита примем равным О(2) (блоки 9-16), время выполнения функции Н и побитового сложения по модулю 2 Ri-1 c ключом Ki примем равным О(48) (блок 17), время выполнения функции расширения Е - О(16) (блок 7), время параллельного поиска в блоках S1...S8 - О(6) (блок 18), время сложения 32-битового блока S1.S8 с Li-1 примем равным О(32) (блок 20).

Далее для упрощения изложения аналогично [22] примем трудоемкость формирования ключей равной О(6) (блоки 1, 2), трудоемкость определения результирующей концентрации феромона, его испарения, определения вероятности размещения символов в позиции - О(36) (блоки 26-31), трудоемкость формирования маршрутов, составляющих расширенное множество решений, и оценку их целевой функции - О(28) (с учетом длины критического пути Ткр=24 в информационно-логической схеме алгоритма DES) (блоки 32, 33), трудоемкость выбора оптимальных вариантов из расширенной популяции - О(6) (блок 34).

На рисунке 3 веса вершин указаны рядом с их номерами, промасштабированы путем деления на 10 и округлены до ближайшего целого сверху.

По данному графу определим критический путь максимальной длины Ткр=43, проходящий, напри-

мер, через вершины 1-3-5-7-17-18-19-20-21-22-2426-28-30-33-34-35. При решении задачи определения минимального числа процессоров примем заданное время Тзад=Ткр.

Далее по инфомационно-логическому графу со скалярными весами вершин определим ранние (хр1) и поздние (тш) сроки окончания выполнения операторов с помощью алгоритмов, описанных в [21].

Эти значения следующие:

Хр1 1 Хр2 1 Хр3 5 Хр4 1^ Тр5 6 Хрб 7 Хр7 8 Хр8 4 Хр9 Хр10 Хр11 Хр12 Хр13 Хр14 Хр15 Хр16 5 Хр17=13, Хр18=14, Хр19=16, Хр20=20, Хр21=21, Хр22=25, Хр23=22, Хр24=26, Хр25=27, Хр26=Хр27=30, Хр28=Хр29=34,

Хр30=Хр31=38, Хр32=Хр33 = 41, Хр34=42, Хр35=43;

Хп35=43, Хп34=42, Хп33=41, Хп32=41, Хп31=Хп30=38, Хп29=Хп28=34, Хп27=Хп26=30, Хп25=43, Хп24=26, Хп23=43, Хп22=25, Хп21 =21, Хп20=20, Хп19=16, Хп18=14, Хп17=13, Хп16=Хп15=Хп14=Хп13=Хп12=Хп11=Хп10=Хп9=8, Хп8=7, Хп7=8, Хп6=20, Хп5=6, Хп4=7, Хп3=5, Хп2=Хп1=11.

Используя значения хр,- и хп,- и методику, описанную в [21], можно найти оценку минимального числа процессоров, необходимых для выполнения операторов, входящих в каждое множество взаимно независимых операторов (ВНО) матрицы независимости М. Выпишем все множества ВНО, определяемые по матрице М:

{1, 2, 4}, {3, 4, 8}, {3, 9}, {3, 10}, {3, 11}, {3, 12}, {3, 13}, {3, 14}, {3, 15}, {3, 16}, {4, 5, 8}, {4, 6, 7, 8}, {5, 9}, {5, 10}, {5, 11}, {5, 12}, {5, 13}, {5, 14}, {5, 15}, {5, 16}, {6, 9, 7}, {6, 10, 7}, {6, 11, 7}, {6, 12, 7}, {6, 13, 7}, {6, 14, 7}, {6, 15, 7}, {6, 16, 7}, {6, 17}, {6, 18}, {6, 19}, {6, 20}, {26, 27}, {27, 28}, {28, 29}, {29, 26}, {29, 30}, {30, 27}, {30, 31}, {31, 26}, {31, 28}.

Построим диаграммы ранних и поздних сроков окончания выполнения операторов и произведем такое распределение временных границ операторов, при котором число используемых процессоров минимально. Рассмотрим максимальное множество ВНО {4, 6, 7, 8}. Диаграммы ранних и поздних сроков выполнения операторов имеют вид, показанный на рисунке 4.

Таким образом, возможно такое распределение выполнения операторов данного множества ВНО, при котором число процессоров равно 1.

Рассмотрим множества ВНО, содержащие 3 элемента. Для множества {3, 4, 8} диаграммы ранних и поздних сроков выполнения показаны на рисунке 5.

Таким образом, для данного множества ВНО минимальное число процессоров составит 2. Для множества ВНО {4, 5, 8} диаграммы будут иметь вид, показанный на рисунке 6.

Для данного множества ВНО требуемое число процессоров составит 1.

Рассмотрим множество ВНО {1, 2, 4} (рис. 7).

Для данного множества ВНО оценка минимального числа процессоров составит 2.

153

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

I 4 | | 8 1 |______|____I_______________i_____i_____i____i____i_____i__i_____i____i______i_____i____i

О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

a)

Рис. 4. Диаграммы ранних (а) и поздних (б) сроков окончания выполнения операторов для множества ВНО {4, 6, 7, 8}

Fig. 4. Diagrams of early (а) and late (б) end dates of executing statements for ВНО set {4, 6, 7, 8}

а)

10 11 12 13 14 15 16 17 18 19 20

6)

Рис. 5. Диаграммы ранних (а) и поздних (б) сроков окончания выполнения операторов для множества ВНО {3, 4, 8}

Fig. 5. Diagrams of early (а) and late (б) end dates of executing statements for ВНО set {3, 4, 8}

4| i 8 | Г 5 | i i i i i i i i i i i i i

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

a)

б)

Рис. 6. Диаграммы ранних (а) и поздних (б) сроков окончания выполнения операторов для множества ВНО {4, 5, 8}

а)

б)

Рис. 7. Диаграммы ранних (а) и поздних (б) сроков окончания выполнения операторов для множества ВНО {1, 2, 4}

Fig. 7. Diagrams of early (а) and late (б) end dates of executing statements for ВНО set {1, 2, 4}

Поскольку остальные множества ВНО содержат операторы с равными ранними и поздними сроками окончания, рассмотрим диаграммы для одного из них, например {6, 9, 7} (рис. 8).

Для данного множества ВНО требуемое число процессоров также составит 1.

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

Докажем, что эта оценка является минимальной, и определим план выполнения операторов с помощью алгоритма, представленного в [21]. Сущность данного алгоритма заключается в нахождении максимального множества взаимно независимых операторов в матрице независимости, последовательном проведении фиктивных связей в информационно-логическом графе, не увеличивающих длину критического пути. В матрице независимости М определим произвольное множество ВНО, содержащее r элементов, для которого r > Р. Пусть выбрано множество ВНО {3, 4, 8}. Между вершинами этого множества проведем г-Р=1 фиктивных связей в информационно-логическом графе так, чтобы выполнялось соотношение Ткр < Тзад. Связи 4^3 и 8^4 увеличивают Ткр, связь 3^4 не изменяет его. Отразим данную связь в матрице следования S и сформируем новую матрицу независимости М'.

В матрице M определим следующее множество ВНО, содержащее более 2 операторов. Выберем множество {4, 5, 8}. Между вершинами этого множества проведем фиктивную связь

154

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

а)

| | | | | [ | | | |

О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

б)

Рис. 8. Диаграммы ранних (а) и поздних (б) сроков окончания выполнения операторов для множества

ВНО {6, 9, 7}

Fig. 8. Diagrams of early (а) and late (б) end dates of executing statements for ВНО set {6, 9, 7}

2 1 8 4 S-16 б| 23] 27 29 31 32 25

1 1 3 1 I5 ,7 1 |17| |18 |19 | 1 |Ю| 21 1 |И| 24 |И| 1 1281 1301 ,33 34 35

О 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

Рис. 9. План выполнения операторов муравьиного алгоритма криптоанализа за время Ткр=43

при использовании 2 процессоров

Fig. 9. An executing statements plan of ant cryptoanalysis algorithm in a time Ткр=43 when using 2 processors

5^4, не приводящую к увеличению Ткр. Получим матрицу независимости M'.

В матрице M' определим следующее множество ВНО, содержащее г>Р операторов. Это множество {4, 6, 7, 8}. Между вершинами этого множества проведем r-P=2 фиктивных связей, не приводящих к увеличению Ткр. Допустимая комбинация связей 8^4^6. После ее проведения получим матрицу независимости М''.

В матрице M"' найдем множество ВНО {6, 7, 9}. Проведем допустимую фиктивную связь 7^6. После проведения данной связи матрица независимости М"" будет иметь вид, представленный в таблице (см. http://www.swsys.ru/uploaded/image/ 2015-4-dop/2.jpg).

Поскольку матрица М"" не содержит полных множеств ВНО с числом элементов, большим 2, Р=2 - решение задачи.

Таким образом, на основе фиктивных связей, проведенных в информационно-логическом графе и определяющих порядок выполнения операторов, можно представить план выполнения операторов при заданном времени Ткр =43, показанный на рисунке 9.

Отсюда следует, что сформулированные выше утверждения 1-4 можно обобщить следующим образом.

При реализации реального алгоритма криптоанализа необходимое число процессоров составит max(2*m, l*k, 2*m*d), где m - число используемых ключей; l и k - l символов, размещенных в k позициях; m*d - число ключей, составляющих расширенное множество решений.

Таким образом, рассмотрен подход к реализации криптоанализа путем применения параллельной версии алгоритма муравьиных колоний на основе построения матрицы независимости и определения множеств ВНО. Приведена оценка необходимого минимального числа процессоров при минимальном времени реализации алгоритма. Представленный в работе алгоритм наиболее эффективен при реализации криптоанализа 2-го типа, то есть при определении ключа на основе известных однозначно определенных блоков исходного текста и шифртекста [13]. При реализации криптоанализа 1-го типа в случае неоднозначного получения блоков оптимального текста из заданного блока шифртекста также возможно (как и в случае генетического алгоритма) получение некоторого множества ключей, соответствующих оптимальным вариантам исходного текста. Для каждого варианта ключа в этом случае требуется проверить, является ли он оптимальным для криптоанализа всего текста.

Литература

1. Родзин С.И. Интеллектуальные системы. О некоторых алгоритмах, инспирированных природными системами: коллектив. монография; [под ред. В.М. Курейчика]. М.: Физматлит, 2009. C. 34-45.

2. Курейчик В.В., Курейчик В.М., Родзин С.И. Концепция природных вычислений, инспирированных природными системами // Изв. ЮФУ. 2009. № 4. С. 16-24.

3. Чернышев Ю.О., Сергеев Е.О., Дубров Е.О., Крупе-нин А.В., Третьяков О.П. Криптографические методы и генетические алгоритмы решения задач криптоанализа: монография. Краснодар: Изд-во ФВАС, 2013. 138 с.

4. Сергеев А.С., Крупенин А.В., Третьяков О.П., Василь-

155

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

ев А.Е., Чернышев Ю.О. Биоинспирированные алгоритмы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел // Информационная безопасность - актуальная проблема современности. Совершенствование образовательных технологий подготовки специалистов в области информационной безопасности: сб. тр. Краснодар: Изд-во Военной академии связи, 2011. С. 41-47.

5. Сергеев А.С. Исследование и разработка методов генетического поиска для организации криптоанализа блочных криптосистем в системах управления безопасностью и защиты информации на примере стандарта шифрования DES // Третья Междунар. конф. по проблемам управления: пленар. докл. и избран. тр. М.: Изд-во ИПУ, 2006. С. 328-335.

6. Сергеев А.С. Применение методов генетического поиска для организации криптоанализа блочных криптосистем на примере стандарта DES // Науч. мысль Кавказа (приложение). 2006. № 15. С. 185-193.

7. Сергеев А.С., Третьяков О.П., Васильев А.Е., Чернышев Ю.О. Биоинспирированные методы криптоанализа асимметричных алгоритмов шифрования на основе факторизации составных чисел // Вестн. ДГТУ. 2011. Т. 11. № 9 (60). С. 1544-1554.

8. Чернышев Ю.О., Сергеев А.С., Венцов Н.Н. Исследование и разработка методов генетического поиска для реализации криптоанализа алгоритма IDEA и решения основных теоретикочисловых задач криптографии // Вестн. РГУПС. 2009. № 3 (35). C. 70-79.

9. Сергеев А.С. Исследование и разработка информационных технологий криптоанализа в системах защиты информации на основе генетического поиска и эволюционной оптимизации на примере стандартов шифрования России // Фундаментальные прикладные проблемы приборостроения, информации и экономики: тр. 10 Междунар. науч.-практич. конф. М.: Изд-во МГУПИ, 2007. Кн. 2. С. 161-167.

10. Сергеев А.С. Разработка методов криптоанализа на основе генетического поиска при реализации стратегий и технологий информационной защиты на примере стандартов шифрования России // Коммуникативные стратегии информационного общества: тр. Междунар. науч.-технич. конф. СПб: Изд-во политех. ун-та, 2007. С. 56-65.

11. Лебедев О.Б. Трассировка в канале методом муравьи-

ной колонии // Изв. ЮФУ. Сер. Интеллектуальные САПР. 2009. № 4. С. 46-52.

12. Муравьиные алгоритмы. URL: http://rain.ifmo.ru/cat/da-ta/theory/unsorted/ant-algo-2006/article.pdf (дата обращения: 15.05.2015).

13. Чернышев Ю.О., Сергеев А.С., Дубров Е.О., Рязанов А.Н. Применение метода муравьиных колоний для реализации криптоанализа блочных криптосистем // Программные продукты и системы. 2014. № 1 (105). С. 10-19.

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

14. Куликов А.Л., Петрова И.Ю. Выбор оптимального

блочного алгоритма шифрования трафика в информационной системе вуза. URL: http://systech.miem.edu.ru/2004/n2/Kuli-

kov2.htm (дата обращения: 15.05.2015).

15. Бабенко Л.К., Ищукова Е.А. Современные алгоритмы блочного шифрования и методы их анализа. М.: Гелиос АРВ, 2006. 376 c.

16. Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. М.: Радио и связь, 2001. 376 c.

17. Шнайер Б. Прикладная криптография. М.: Триумф, 2002. 816 c.

18. Тимченко С.В. Сравнение трех подходов к построению

параллельных генетических алгоритмов на примере некоторых задач функциональной оптимизации и генетического программирования. URL: http://www.botik.ru/PSI/RCMS/publications/

publ-texts/2005/grishagine.pdf (дата обращения: 15.05.2015).

19. Дискретная математика: алгоритмы. URL: http://rain.if-mo.ru/cat/view.php/theory/unsorted/genetic-2005 (дата обращения: 15.05.2015).

20. Барский А.Б. Планирование параллельных вычислительных процессов. М.: Машиностроение, 1980. 191 с.

21. Сергеев А.С. Параллельное программирование. Р-н-Д: Издат. центр ДГТУ, 2002. 77 с.

22. Сергеев А.С. Разработка генетического метода криптоанализа блочных криптосистем и исследование возможности их параллельной реализации в системах защиты информации на примере стандарта DES // Системный анализ в проектировании и управлении: тр. 10 Междунар. науч.-практич. конф. СПб: Изд-во политехн. ун-та, 2006. С. 258-265.

23. Ахо Альфред В., Джон Ульман Джеффри Д. Структуры данных и алгоритмы. М.: Вильямс, 2003. 384 с.

DOI: 10.15827/0236-235X.112.148-157 Received 24.06.15

DEVELOPMENT AND RESEARCH OF A PARALLEL ANT COLONY ALGORITHM FOR A BLOCK CRYPTOSYSTEM CRYPTANALYSIS

Chernyshev Yu.O., Dr.Sc. (Engineering), Professor, myvnn@list.ru;

Sergeev A.S., Ph.D. (Engineering), Doctoral Student, sergeev00765@mail.ru;

Ryazanov A.N., Postgraduate Student, alexandr_r89@mail.ru (Don State Technical University, Gagarin Sq. 1, Rostov-on-Don, 344000, Russian Federation);

Kapustin S.A., Ph.D. (Engineering), Associate Professor, skappa@yandex.ru (Military Academy of Communications, Krasnodar Branch, Krasina St. 4, Krasnodr, 350035, Russian Federation) Abstract. The article considers the possibility of parallel implementation of ant colonies algorithms for block cryptosystems cryptanalysis. The authors specify that a new scientific direction “natural calculations” is relevant, provide the block diagram of DES standard cryptanalysis using a method of ant colonies. The parallel version of cryptanalysis algorithm is described on the basis of a data-logical flow graph, sequence matrices, logical incompatibility and independence. The minimum number of the processors for a cryptanalysisis algorithm is defined on the basis of a technique of defining the number of processors. This technique includes finding of a mutually independent operators maximal set in an independence matrix, consecutive fictive linking in a data-logical graph provided that these links don't increase a critical way length. A bioinspired cryptanalysis method application is distinguished by the possibility of using an encryption (decryption) algorithm as an objective function of key assessment defined by genetic operations. Therefore, when using the bioinspired cryptanalysis methods the process of private key definition (for example, at type 2 cryptanalysis) depends not on encryption complexity, but on the bioinspired method itself that provides a sufficient variety of key generation. This proves the relevance of the problem connected with a research on the bioinspired algorithms application possibility for block cryptosystems cryptanalysis.

Keywords: cryptanalysis, ant algorithm, matrix of logical incompatibility, matrix of independence, mutually independent operators maximal set.

156

Программные продукты и системы /Software & Systems

№ 4 (112), 2015

References

1. Rodzin S.I. Intellektualnye sistemy. O nekotorykh algoritmakh, inspirirovannykh prirodnymi sistemami [Intelligent Systems. On Some Algorithms that are Inspired by Natural Systems]. Collective monograph. V.M. Kureychik (Ed.). Moscow, Fizmatlit Publ., 2009, pp. 34-45.

2. Kureychik V.V., Kureychik V.M., Rodzin S.I. Concept evolutionary computation is inspired by natural systems. Izvestiya YuFU[Izvestiya SFedU. Engineering Sciences]. 2009, no. 4, pp. 16-24 (in Russ).

3. Chernyshev Yu.O. Sergeev E.O. Dubrov E.O., Krupenin A.V., Tretyakov O.P. Kriptograficheskie metody i geneti-cheskie algoritmy resheniya zadach kriptoanaliza [Cryptographical Methods and Genetic Algorithms for Cryptanalysisis Problems]. Monograph. Krasnodar, 2013, 138 p.

4. Sergeev A.S., Krupenin A.V., Tretyakov O.P., Vasilyev A.E., Chernyshev Yu.O. Cryptanalysisis bioinspired algorithms for asymmetric encryption algorithms based on composite numbers factorization. Sb. trudov "Informatsionnaja be-zopasnost - aktualnaya problema sovremennosti. Sovershenstvovanie obrazovatelnykh tekhnology podgotovki spetsialistov v oblasti informatsionnoy bezopasnosti” [Proc. “Information security is an important problem of modem times. Improvement of specialist training technologies in information security”]. Krasnodar, 2011, pp. 41-47 (in Russ.).

5. Sergeev A.S. Research and development of genetic search to organize block cryptosystems cryptanalysisis in security management system in case of DES encryption. Materialy 3 Mezhdunar. konf. po problemam upravleniya: plenarnye doklady i izbrannye trudy [Proc. of the 3rd Int. Conf. on Management Problems]. Moscow, Institute of Control Sciences Publ., 2006, pp. 328-335 (in Russ.).

6. Sergeev A.S. Using genetic search methods to organize block cryptosystems cryptanalysisis in case of DES encryption. Nauchnaya myslKavkaza (prilozhenie) [Scientific Thought of Caucasus (supplement)]. 2006, no. 15, pp. 185-193 (in Russ.).

7. Sergeev A.S., Tretyakov O.P., Vasilev A.E., Chernyshev Yu.O. Bioinspired cryptanalysisis methods of asymmetric encryption algorithms based on composite factorization. Vestnik DGTU [Bulletin of DSTU]. 2011, vol. 11, no. 9 (60), pp. 1544-1554 (in Russ.).

8. Chernyshev Yu.O., Sergeev A.S., Ventsov N.N. Research and development of genetic search to organize IDEA algorithm cryptanalysisis and solve main number-theoretic cryptography problems. VestnikRGUPS [Bulletin of RSTU]. 2009, no. 3 (35), pp. 70-79 (in Russ.).

9. Sergeev A.S. Research and development of cryptanalysisis IT in information security systems based on genetic search and evolution optimization in case of Russian encryption standards. Nauch. tr. Yubileynoy 10 Mezhdunar. nauchno-praktich. konf. "Fundamentalnyeprikladnyeproblemypriborostroeniya, informatsii i ekonomiki” [Proc. of the 10th Anniv. Int. Science and Practice Conf. “Fundamental Applied Problems of Instrumentation, Information and Economics”]. Moscow, 2007, vol. 2, pp. 161-167 (in Russ.).

10. Sergeev A.S. Development of cryptanalysisis methods based on genetic search when implementing information security strategies and technologies in case of Russian encryption standards. Trudy mezhdunar. nauchno-tekhnich. konf. "Kommunikativnye strategii informatsionnogo obshchestva” [Proc. of the Int. Science and Tech. Conf. “Communicative strategies of information society”]. St.-Petersburg, 2007, pp. 56-65 (in Russ.).

11. Lebedev O.B. Chanel routing bases on method of ant colony optimization. Izvestiya YuFU. Tekhnicheskie nauki [Izvestiya SFedU. Engineering Sciences]. 2009, no. 4, pp. 46-52 (in Russ.).

12. Muravyinye algoritmy [Ant algorithms]. Available at: http://rain.ifmo.ru/cat/data/theory/unsorted/ant-algo-

2006/article.pdf (accepted May 15, 2015).

13. Chernyshev Yu.O., Sergeev A.S., Dubrov E.O., Ryazanov A.N. Ant colony method application to implement cryptanalysis of block cryptosystems. Programmnyeprodukty i sistemy [Software & Systems]. 2014, no. 1 (105), pp. 10-19 (in Russ).

14. Kulikov A.L., Petrova I.Yu. Vybor optimalnogo blochnogo algoritma shifrovaniya trafika v informatsionnoy sisteme vuza [Choosing Optimal Block Algorithm for Traffic Encryption in a University Information System]. Available at: http://systech.miem.edu.ru/2004/n2/Kulikov2.htm (accepted May 15, 2015).

15. Babenko L.K., Ishchukova E.A. Sovremennye algoritmy blochnogo shifrovaniya i metody ikh analiza [Modern Block Encryption Algorithms and their Analysis]. Moscow, Gelios ARV Publ., 2006, 376 p.

16. Romanets Yu.V., Timofeev P.A., Shangin V.F. Zashchita informatsii v kompyuternykh sistemakh i setyakh [Information Security in Computer Systems and Networks]. Moscow, 2001, 376 p.

17. Shnayer B. Prikladnaya kriptografiya [Applied cryptography]. Moscow, 2002, 816 p.

18. Timchenko S.V. Sravnenie trekh podkhodov k postroeniyu parallelnykh geneticheskikh algoritmov na primere nekotorykh zadach funktsionalnoy optimizatsii i geneticheskogo programmirovaniya [Comparing 3 Approaches to Building Parallel Genetic Algorithms in Case of Some Functional Optimization Problems and Genetic Programming]. Available at: http://www.botik.ru/PSI/RCMS/publications/publ-texts/2005/grishagine.pdf (accepted May 15, 2015).

19. Diskretnaya matematika: algoritmy [Discrete Mathematics: Algorithms]. Available at: http://rain.ifmo.ru/cat/view. php/theory/unsorted/genetic-2005 (accepted May 15, 2015).

20. Barsky A.B. Planirovanieparallelnykh vychislitelnykhprotsessov [Planning Parallel Computing Processes]. Moscow, 1980, 191 p.

21. Sergeev A.S. Parallelnoeprogrammirovanie [Parallel Programming]. Rostov-on-Don, 2002, 77 p.

22. Sergeev A.S. Development of block cryptosystems cryptanalysisis genetic method and research on the possibility of their parallel implementation in information security systems in case of DES. Sistemny analiz v proektirovanii i upravlenii: Trudy 10 Mezhdunar. nauch.-praktich. konf. [System analysis in design and management: proc. of the 10th Int. Science and Practice Conf.] St.-Petersburg, 2006, рр. 258-265 (in Russ.).

23. Aho A.V., Ullman J.D., Hopcroft J.E. Data Structures and Algorithms. Pearson Publ., 1983, 427 p.(Russ. ed.: Moscow, 2003, 384 p.).

157

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