Рис. 4. Отображение здоровья персонажей
В данной статье автором был описан рабочий интерфейс программы, изложен процесс разработки игры. В ходе написания статьи создана готовая версия игры на платформе Unity 3d, к которой могут подключиться другие пользователи.
Список литературы
1. Игровой Ассет. [Электронный ресурс] // Википедия: свободная энцикл., 2017. Режим доступа: https://ru.wikipedia.org/wiki/Игровой_ассет/ (дата обращения 01.06.2018).
2. Руководство пользователя Unity. [Электронный ресурс]. Режим доступа: https://docs.unity3d.com/ (дата обращения: 01.06.2018).
3. Русскоязычное сообщество Unity3d.ru. [Электронный ресурс]. Режим доступа: http://unity3d.ru/ (дата обращения: 01.06.2018).
4. Официальный сайт Unity3d. [Электронный ресурс]. Режим доступа: https://unity3d.com/ru/ (дата обращения: 01.06.2018).
5. Джозеф Х. Unity в действии. Мультиплатформенная разработка на C#. Спб: Питер, 2016. 336 с.
ВЫБОР ОПТИМАЛЬНОЙ КОНФИГУРАЦИИ ДРЕВОВИДНЫХ МАШИН ЧЕТНОСТИ ПРИ ИХ ИСПОЛЬЗОВАНИИ ДЛЯ ГЕНЕРАЦИИ СЕКРЕТНОГО КЛЮЧА ШИФРОВАНИЯ Ушаков А.К.
Ушаков Андрей Константинович — студент магистратуры,
кафедра информационных технологий и системы, Институт управления, автоматизации и телекоммуникаций Дальневосточный государственный университет путей сообщения, г. Хабаровск
Аннотация: в статье рассматривается протокол обмена ключами по незащищенному каналу связи с использованием древовидных машин четности. Приводится краткое описание ДМЧ, их структуры и порядка синхронизации их состояний для генерации общего секретного ключа шифрования. Осуществляется выбор оптимальной конфигурации древовидных машин четности для повышения эффективности двунаправленного обучения, а также для обеспечения приемлемого уровня защищенности от вероятностных криптоаналитических атак.
Ключевые слова: протокол обмена ключами, древовидная машина четности, синхронизация состояний, оптимальная структура.
ДРЕВОВИДНАЯ МАШИНА ЧЕТНОСТИ (ДМЧ)
Древовидная машина четности (ДМЧ) — это особый вид многоуровневой искусственной нейронной сети прямого распространения. Структура ДМЧ представлена на рисунке 1.
А
/ Т N
/ | Л
"
ч.
Ог / I <7[ \ о К
у I 1 V
$ О, Р, / * \ / * \ / * \
/ \ / \ / \
|/ мг.-j VVIN Щг/ ш "Ъ/ .
/ I 1 \ I Г \ / \
ООО ООО ФФФ
III III III
III III III
xn Xjj X/il ^KN
Рис. 1. Структура древовидной машины четности
Такая сеть состоит из трех нейронных слоев. В скрытом (среднем) слое содержится К нейронов. Входной слой включает в себя К ■ N нейронов, каждый из которых связан с одним из нейронов скрытого слоя. Выходной же слой состоит из единственного нейрона, который связан со всеми нейронами скрытого слоя.
Связи между нейронами входного и скрытого слоев имеют числовые весовые коэффициенты w£j- ( ie[ 1,. . .,К] , j е [ 1,. . .,N] ). Именно эти коэффициенты, а точнее их числовые значения после синхронизации двух древовидных машин четности, будут являться искомым секретным ключом, который будет использоваться абонентами сети для шифрования сообщений. Исходными данными для инициализации древовидных машин четности на сторонах двух абонентов являются числа К — число нейронов в скрытом слое, N — число входных нейронов, связанных с каждым скрытым нейроном и L (синаптическая длина) — диапазон значений, которые смогут принимать весовые коэффициенты связей между входными и скрытыми нейронами ( ). Исходя из этих данных, каждый абонент
сможет построить на своей стороне ДМЧ нужной структуры. Далее последует процесс синхронизации созданных древовидных машин четности.
СИНХРОНИЗАЦИЯ ДВУХ ДМЧ
Синхронизация ДМЧ двух абонентов сети будет осуществляться в ходе их двунаправленного обучения. На каждой итерации обучения обеим сетям на вход будет подан один и тот же входной вектор. Результаты, полученные на выходе обеих ДМЧ в ходе прямого распространения, будут сравниваться, и, в зависимости от результата этого сравнения, весовые коэффициенты связей между нейронами входного и скрытого слоев обеих сетей будут корректироваться по выбранному правилу.
Процесс прямого распространения сигнала в ДМЧ начинается с того, что каждый из нейронов входного слоя принимает на вход биполярное значение из вектора
( | X| = К ■ N) и передает его соответствующему нейрону скрытого слоя. Каждый скрытый нейрон, получив значения каждого из связанных с ним входных нейронов, вычисляет собственное выходное биполярное значение <г; ( <г; е [—1 , + 1 ] ) по формуле 1:
<7; = s,gn (££= i^jWy) , (1)
где
, ч Г—1, при х < О s,n «=[+1, при х > О ,
и передает его единственному нейрону выходного слоя. Тот, в свою очередь, вычисляет свое выходное значение г (г е [—1, + 1 ] ) по формуле 3:
т = ПГ= i<Ji (3)
Далее значения гл и rs, полученные на выходах ДМЧ двух абонентов, сравниваются. Если выходы оказываются разными, то коррекция весовых коэффициентов не выполняется, и процесс прямого распространения выполняется вновь, уже с другим входным вектором. В случае же, если выходы ДМЧ обоих абонентов совпадают, то весовые коэффициенты связей между входными и скрытыми слоями этих машин четности будут обновлены в соответствии с
выбранным правилом. Такой процесс будет повторяться до тех пор, пока ДМЧ двух абонентов не синхронизируются.
Для обновления весовых коэффициентов в ДМЧ могут использоваться следующие правила:
_ правило Хебба (формула 4):
Wij = 9 (wij + Xij ' Tcurrent ' F(Oi,Tcurrent) ' F(Oi,Tother)) , (2)
где t curre nt — выходное значение ДМЧ, у которой изменяются веса;
т 01 h er —выходное значение ДМЧ, с которой происходит синхронизация;
xij — это значение -го входного сигнала i -го скрытого нейрона;
F(х,у) = \+]'при Х = У■ (3) 4 (—1, при х фу v '
п(и _ í s9n(х) ■ I, при | х \>L _
9(Х) = {х, при \х\<L' (4)
— анти-правило Хебба (формула 7):
wij = 9 (щ — xij ■ т current ■ F(ai,T current) ■ F(ai,T other)) ' (5)
— случайное блуждание (формула 8):
Wij = 9 (Wij + Xij ■ F (Oi, T curre nt) ■ F(Ou To t h er) ) ■ (6)
При рассмотрении процесса обучения двух ДМЧ возникает вопрос о том, когда следует прекращать его выполнение. Иными словами, требуется найти критерий синхронизации, удовлетворив который, можно будет остановить алгоритм обучения. Возможны следующие подходы:
Полный перебор — обеим ДМЧ подаются на входы все возможные входные векторы, а их вычисленные выходные значения сравниваются. При достижении синхронизации при всех входных векторах все соответствующие выходы должны совпадать. Такой подход является самым неэффективным ввиду слишком большого количества эпох двунаправленного обучения. В случае увеличения числа сравнений результатов работы ДМЧ двух абонентов криптоаналитик с высокой вероятностью успеет обучить собственную ДМЧ нужной структуры, и тем самым получить генерируемый секретный ключ шифрования;
Итеративный подход — заключается в эмпирическом оценивании необходимого числа итераций. Также является не самым лучшим вариантом. В зависимости от начальных состояний ДМЧ абонентов требуемое количество итераций может сильно варьироваться. Результатом может стать как недостаточное количество эпох обучения ДМЧ, так и превышение необходимого их количества, что повысит шансы криптоаналитика на получение секретного ключа;
— Явное сравнение (применение дайджестов) — возможно при использовании хеш-функции для хеширования текущих состояний ДМЧ двух абонентов и их сравнения с определенной периодичностью (как правило, после каждого обновления весовых коэффициентов). Это самый простой и эффективный способ проверки синхронизации состояний двух ДМЧ. Единственным нюансом является выбор надежной и быстрой хеш-функции с минимальным шансом коллизий;
Подход с использованием дайджестов можно усложнить для того, чтобы минимизировать число пересылаемых сообщений. Для этого каждым из абонентов А и В будут использованы по две вспомогательные ДМЧ. Так, например, абонент А будет иметь не только машину четности, которая будет непосредственно участвовать во взаимодействии с абонентом при генерации общего ключа, но и ее копию, начальные весовые коэффициенты которой совпадают с начальными весами оригинала, а также ДМЧ, начальные значения весовых коэффициентов которой инициализированы случайно. Абонент А будет наблюдать за своими вспомогательными машинами четности и определит, когда наступит их синхронизация. Далее, в процессе генерации общего секретного ключа, абонент будет пересылать дайджест набора весов абоненту после числа итераций, которое потребовалось для достижения синхронизации вспомогательных ДМЧ абонента . Аналогично, абонент может наблюдать за процессом синхронизации своих вспомогательных ДМЧ и использовать полученное при этом число
37
итераций при взаимодействии с абонентом Л. Участники протокола также могут согласовать перед началом взаимодействия число итераций, после которых начнется обмен дайджестами.
После синхронизации древовидных машин четности двумя абонентами сети, у каждого из них будет последовательность из К ■ N чисел в диапазоне от — I до I. Эти числа можно будет, по договоренности, перевести в двоичный вид, представить их как коды символов Юникода или другой символьной кодировки, и вообще привести их к любому удобному виду.
ВЫБОР ОПТИМАЛЬНОЙ КОНФИГУРАЦИИ ДМЧ
Главным параметром конфигурации древовидной машины четности является количество связей между нейронами ее входного и скрытого слоев. Число таких связей вычисляется как , то есть произведение количества скрытых нейронов и количества входных нейронов, связанных с каждым скрытым нейроном.
Интересной особенностью таких нейросетей является то, что для одного и того же числа связей, а значит одной и той же длины генерируемого ключа, можно подобрать несколько различных конфигураций ДМЧ. Например, представим две машины четности, которые в процессе синхронизации друг с другом генерируют секретный ключ длиной в чисел, то есть число весовых коэффициентов связей в каждой из них равно 1 0. В таком случае может существовать несколько подходящих вариантов структуры этих ДМЧ. Можно принять значения параметров К = 2 , N = 5 , или К = 5 , N = 2 , или вовсе К = 1 0, N = 1. Как различные конфигурации таких нейронных сетей повлияют на скорость их синхронизации, то есть на эффективность работы? Для того чтобы выяснить это, проведем эксперимент.
Примем в качестве длины искомого секретного ключа непростое целое число , желательно с наибольшим числом целых делителей. Далее разложим О на все возможные комбинации сомножителей и присвоим их значения параметрам и древовидных машин четности. При одинаковой синаптической длине и единственном правиле коррекции весовых коэффициентов поставим несколько опытов по синхронизации ДМЧ для каждой возможной конфигурации. В процессе эксперимента для каждой структуры ДМЧ будем оценивать следующие характеристики:
- общее количество ц итераций, необходимое для синхронизации двух нейронных сетей;
- число р итераций, на которых выходы ДМЧ совпали, что повлекло за собой коррекцию весовых коэффициентов;
- отношение V среднего арифметического р числа итераций, на которых выполнялась коррекция весов, к среднему арифметическому общего количества итераций.
На каждой итерации обеим ДМЧ на вход будет подаваться один и тот же случайный биполярный вектор , в котором , , . Обе ДМЧ, приняв
его, будут последовательно вычислять свои выходные сигналы, которые впоследствии будут сравниваться. В случае совпадения выходных сигналов двух ДМЧ, в них будет происходить коррекция весовых коэффициентов.
В качестве искомой длины ключа выберем число , которое имеет различных
комбинаций сомножителей: и , и , и , и , и . Во время эксперимента будем присваивать эти значения соответственно параметрам и . Примем значение синаптической длины , а в качестве правила коррекции весовых коэффициентов нейронных связей в ДМЧ примем правило Хебба.
Результаты проведенного эксперимента представим в виде таблицы (таблица 1):
Исходные данные Номер опыта Р V = — Я
1 2 3 4 5 6 7 8 9 10
II " Итерации ( ()
Коррекции весов (р)
К = 8 N = 2 Итерации(() 196 117 - 221 - - 194 146 167 138 -0,411
Коррекции весов (р ) 140 64 124 118 86 102 66
К = 4 N = 4 Итерации(() 95 172 272 179 171 131 158 165 144 150 0,693
Коррекции весов (р ) 67 119 213 140 118 90 112 105 92 91
К =2 N = 8 Итерации(() 234 139 140 225 245 119 96 203 83 161 0,745
Коррекции весов (р ) 164 108 113 153 194 83 68 155 60 129
** И II Итерации(() 66 53 92 86 106 54 96 76 47 89 0,870
Коррекции весов (р ) 57 47 82 71 100 49 86 70 37 69
Прочерками в таблице отмечены результаты опытов, не приведших к синхронизации весовых коэффициентов в двух ДМЧ. Подобные результаты связаны с тем, что при выбранной конфигурации машин четности функция вычисления выходного значения в их скрытых нейронах принимает слишком малое количество аргументов, что влечет за собой очень невыраженную способность к обучению, то есть к коррекции весовых коэффициентов.
Такие исходы были получены во всех 1 0 опытах с параметрами К = 1 6, N = 1 ив нескольких опытах с параметрами К = 8 , N = 2 . Как было сказано ранее, это связано с тем, что в такой конфигурации с каждым скрытым нейроном связаны всего один или два нейрона входного слоя. При увеличении числа входов у нейронов скрытого слоя отмечается явный результат. При значениях параметров К = 4, N = 4 и К = 2 , N = 8 общее число итераций, необходимых для синхронизации двух ДМЧ, примерно одинаково, однако число итераций, в которых выполняется коррекция весов, во втором случае конфигурации в среднем выше, что дает большее значение коэффициента V.
При значениях параметров , число итераций, необходимых для
синхронизации ДМЧ резко сокращается, при этом коррекция весов происходит на подавляющем их большинстве, что дает самый высокий показатель коэффициента .
Однако, несмотря на лучший из представленных результатов, такой вариант структуры ДМЧ не является оптимальным. Дело в том, что при такой конфигурации нейронных сетей выходной нейрон не несет никакой функциональной нагрузки, а просто возвращает значение, вычисленное единственным нейроном скрытого слоя. Такое поведение значительно уменьшает устойчивость к криптоаналитическим атакам, основанным на вероятностном подходе, а значит, не удовлетворяет требованиям безопасности.
На основании вышесказанного можно сделать вывод, что для принятой целевой длины ключа предпочтительными значениями параметров ДМЧ будут , или , .
Однако, взяв во внимание тот факт, что при обеих этих конфигурациях скорость синхронизации нейросетей абонентов примерно одинакова, а при значениях ,
сложность вероятностных криптоаналитических атак значительно выше, чем при других значениях параметров, оптимальной конфигурацией ДМЧ, содержащей взвешенных связей, будет , .
Из данного частного случая можно вывести общую закономерность. Увеличение входов у каждого скрытого нейрона древовидной машины четности приводит к увеличению способности этой ДМЧ к обучению, то есть к более быстрому обновлению весовых коэффициентов связей с этими входами. Увеличение же количества самих скрытых нейронов усложняет процесс выявления зависимостей между вектором входных сигналов и значением, полученным на выходе ДМЧ и, следовательно, повышает ее надежность.
В итоге можно сделать вывод о том, что наилучшей конфигурацией ДМЧ является та, в которой число скрытых нейронов пропорционально числу входов у каждого из них. Такая структура даст оптимальное соотношение надежности и скорости синхронизации машин четности. При этом незначительные сдвиги в ту или иную сторону допустимы и не повлекут за собой серьезных последствий.
Список литературы
Ruttor A. «Neural Synchronization and Cryptography», dissertation zur Erlangung des naturwissenschaftlichen Doktorgrades der Bayerischen Julius-Maximilians-Universität Würzburg, 2006, 122 p.
Volna E., Kotyrba M., Kocian V., Janosek M., «Cryptography based on neural network», Proceedings 6th European Conference on Modelling and Simulation, 2012, 6 p. Klein E., Mislovaty R., Kanter I., Ruttor A., Kinzel W., «Synchronization of neural network by mutual learning and its application to cryptography», International Proceeding of: Advances in Neural Information Processing Systems 17 (NIPS), 2004, 8 p.
РАЗРАБОТКА СТОХАСТИЧЕСКОГО ОСЦИЛЛЯТОРА Гаскарова Е.А.
Гаскарова Елена Айдаровна — бакалавр, направление: информатика и вычислительная техника, Национальный исследовательский университет Высшей школы экономики, г. Москва
Аннотация: целью данной работы является разработка стохастического осциллятора на языке C++, а значит, создать программу, которая будет выводить график в виде двух линий зависимости стоимости акций в процентном соотношении, с помощью стохастических формул.
Задачами является изучение основных понятий стохастики на работе финансового рынка, повышения навыка программирования в C++, такой как научиться работать с библиотеками CURL, которая позволяет брать данные с сайта, выявление способа как загружать котировки, определение эффективного метода решения для данной задачи. Полученные результаты помогают идентифицировать отношение текущей цены закрытия к минимуму или максимуму за установленный период. Основные данные загружаются с сайта finam, а, следовательно, этот стохастический осциллятор при построении графика получает обновленные данные об акциях и курсах валют. Ключевые слова: анализ, маркетинг.
Теоретическое введение
Стохастический осциллятор - это индикатор, который применяется в техническом анализе, показывающий положение текущей цены сравнительно диапазона цен за установленный период в прошлом. Основной смысл этого индикатора заключается в нахождении тех ситуаций, когда необходимо покинуть рынок до трансформаций тренда, либо когда нужно войти в рынок с зарождением нового тренда. Осуществляется с помощью сигналов перекупленности и перепроданности соответствующего актива.
Стохастический осциллятор представляет из себя график из двух линий: %K (быстрый стохастик) и %D (усредненный стохастик, медленный), которые рассчитываются по формуле(1):
% К = О О (1)
Hn-Ln у '
Ct - цена закрытия текущего периода
Ln- самая низкая цена за конечные n периодов
Hn- самая высокая цена за конечные n периодов.
%D - скользящая средней относительно быстрой стохастики с небольшим периодом усреднения.
Актуальность разработки стохастического осциллятора состоит в том, что проанализировав данные, можно интерпретировать для действий на рынке:
• Можно ожидать падение цен, когда цены создадут последовательность новых пиков, а стохастическому индикатору не получается взмыть больше своих предыдущих максимумов, то есть можно продавать.