Научная статья на тему 'Застосування генетичних алгоритмів у задачі про укладання ранця'

Застосування генетичних алгоритмів у задачі про укладання ранця Текст научной статьи по специальности «Математика»

CC BY
569
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
генетичні алгоритми / genetic algorithms

Аннотация научной статьи по математике, автор научной работы — Кожухівський Андрій Дмитрович, Намофілова Ольга Олексіївна

Розглядається застосування генетичних алгоритмів у криптології. Описуються основні поняття генетичного алгоритму, представляється його цикл у вигляді блок-схеми та приведена послідовність етапів роботи алгоритму. Формулюється задача про укладання ранця та загальний алгоритм її розв’язання. На прикладі задачі про укладання ранця розглядається можливість застосування генетичних алгоритмів при шифруванні. Показується, що застосування генетичних алгоритмів – один із найкращих методів для пошуку «прийнятних» рішень.

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

Application of genetic algorithms in the problem of concluding backpack

The use of genetic algorithms in cryptology is discussed in the article. The article describes the basic concepts of genetic algorithm, presents the cycle of a genetic algorithm in the form of a block diagram, which includes stages of selection, crossing and mutation. The sequence of steps of the procedure is performed. The transmission of genetic information from “parent” to “descendants” is shown. The problem of packing the knapsack and the General algorithm of its solution is formulated in the article. For example, the task about placing the container describes the application of genetic algorithms for encryption. It is shown that genetic algorithms are an effective tool for solving problems of cryptanalysis. The article shown that the use of genetic algorithms is one of the best methods for finding “acceptable” solutions.

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

УДК 004.056.5:519.8

А.Д. КОЖУХ1ВСЬКИЙ, О.О. НАМОФ1ЛОВА

ЗАСТОСУВАННЯ ГЕНЕТИЧНИХ АЛГОРИТМ1В У ЗАДАЧ1 ПРО УКЛАДАННЯ РАНЦЯ

Розглядаеться застосування генетичних алгоритмiв у криптологи. Описуються основнi поняття генетичного алгоритму, представляеться його цикл у виглядi блок-схеми та приведена послщовтсть еташв роботи алгоритму. Формулюеться задача про укладання ранця та загальний алгоритм И розв'язання. На прикладi задачi про укладання ранця розглядаеться можливють застосування генетичних алгоригмiв при шифруванш. Показуеться, що застосування генетичних алгоршадв - один iз найкращих мегодiв для пошуку «прийнятних» ршень.

1. Вступ

1дея генетичних алгоршмв запозичена з живо! природи. Вона полягае в машиннш оргашзаци еволюцшного процесу створення, модифшаци 1 вщбору кращих розв'язюв. У загальному значенш генетичт алгоритми - це тип алгоршмв, шсшрованих мехашзмами еволюцп живо! природи, яю застосовуються до задач глобально! оптим1зацп, для комбшу-вання шаблошв з правил 1ндукцп, що були вщкрит до цього, навчання нейромереж, пошуку зразюв у даних, вщкриття шаблошв у текст тощо. Методолопчна основа генетичних алгорштшв грунтуеться на гшотез1 селекци, яка в загальному вид1 може бути сформульова-на так: чим вища пристосованють особини, тим вища ймов1рнють того, що в потомству отриманому з !! участю, ознаки, яю визначають пристосованють, будуть виражеш ще сильшше. Генетичш алгоритми застосувуються в багатьох задачах, в тому числ1 1 в задачах криптологи.

Шифрування шформаци в наш час стало чи не основним методом !! захисту. Доступшсть обчислювально! техшки й стр1мкий прогрес у !! розвитку привели до вдосконалювання давно вщомих шифр1в { застосування в масовому масштаб! нових високонадшних схем шифрування. Однак цей прогрес мае й шший бж збшьшеш можливост обчислювально! техшки усшшно застосовуються не тшьки для шифрування, але й для дешифрування тих шифр1в, яю ще зовшм недавно гарантували повний захист шформаци.

Основними завданнями криптологи е розробка надшних схем шифрування (завдання криптографа) 1 знаходження ефективних метод1в дешифрування юнуючих схем (завдання криптоанал1зу). Криптограф1чний спос1б захисту шформаци передбачае таке !! перетворен-ня, при якому вона стае доступною для прочитання лише власников1 секретного ключа. Надшшсть цього способу захисту визначаеться стшкютю використовувано! схеми шифрування до криптоанал1зу. При криптоанал1з1 конкретного шифру передбачаеться, що сама схема шифрування вщома, а невщомим е тшьки секретний ключ ¡/або його довжина. 1ншими словами, завдання розкриття шифру полягае в знаходженш единого справжнього секретного ключа серед безл1ч1 вс1х можливих ключ1в, тобто е завданням пошуку. При цьому прост1р пошуку великий, а критерш «якостЬ» знайденого розв'язку, як правило, не тддаеться строгш формал1зацп. В наш час у криптоанал1з1 усшшним е застосування генетичних алгорштшв.

Метою дослщження е розробка альтернативного способу розв'язання задач! про укла-дання ранця.

2. Основш поняття генетичного алгоритму

Застосування генетичних алгоршмв вперше запропоновано Джоном Холландом. Ц алгоритми являють собою модифшащю так званого «еволюцшного програмування». 1дея Холланда полягала в тому, щоб розробити алгоритми на основ! «спрямованого» випадково-го пошуку або на основ! мехашзм1в природного вщбору, вщомого з бюлоги. На еташ шщ1ал1заци ще! процедури створюеться популящя можливих розв'язюв. У результат з ще! популяци виводиться нове поколшня розв'язюв, яке, у свою чергу, служить «вихщним

матерiалом» для чергового поколшня [1]. Представимо цикл генетичного алгоритму у виглядi блок-схеми (рис. 1), який включае стади вiдбору, схрещування й мутацн. Аналiзую-чи представлену блок-схему, вiдмiтимо, що кращi представники поколiння вщбираються для вiдтворення популяцп. Таким чином, можна припустити, що кожне нове поколшня повинне мютити кращi розв'язки, шж попередне.

Рис. 1. Блок-схема еволюци популяци

Розглянемо принцип роботи блок-схеми, представлено! на рис. 1.

Стара популящя складаеться з набору бшарних рядкiв. Кожний бтарний рядок пред-ставляе розв'язок проблеми й називаеться хромосомою. Першою стадiею генетичного алгоритму е вiдбiр. У процес вiдбору визначаються рядки, якi будуть використовуватися при створенш ново! популяцп (нового поколiння). «Батьки» вибираються довшьно, однак «кращi особини» популяци мають бшьший шанс виявитися обраними. Таким чином, алгоритм «просуваеться» в перспективному напрямку пошуку.

Наступна стадiя - схрещування, яке полягае в тому, що для «батьюв» (пари вщбраних рядюв - пари хромосом) довжини г (г - кiлькiсть бтв у хромосомi) кожна наступна пара «нащадюв» вибираеться довiльним чином. «Нащадки» формуються з частини бiтiв s , де

8 е {1,...,г}, i бiтiв 8' та 8я, де 8' i в" - це частина бiтiв вщ 8 +1 до г, якими обмшюються «батьки» (рис. 2).

яг /

Батько №1: 10 10 11 1001

Батько №2: 110 0 11 0 0 1 С

Нащадок №1:10 10 11 00 10

Нащадок №2:110011 100 1

Рис. 2. Передача генетично! шформаци в1д «батьшв» до «нащадов» Заключна стадiя - мутащя. При шщiалiзащ! алгоритму встановлюеться ймовiрнiсть мутацп, яко! зазнають новоутворенi хромосоми. Для прикладу, наведеного на рис. 2, розглянемо таку мутащю: «нащадок №1» отримав мутащю 8-го бга, а «нащадок №2» отримав мутащю 2-го i 10-го бгга (рис. 3).

Рис. 3. Процес мутацп серед «нащадшв»

Схема еволюцп популяци (див. рис. 1) буде виконана як мшмум один раз. Стади еволюцп повторюються до досягнення умови виходу iз циклу (такою умовою може бути, наприклад, перевищення максимально! кiлькостi популяцiй).

3. Шифрування за допомогою задачi про укладання ранця

Один iз перших шифрiв на основi задачi про укладання ранця був запропонований Меркт й Хеллманом в 1978 [2]. Це була одна з перших спроб створення системи шифрування з

вщкритим ключем. Незважаючи на те, що проблема укладання ранця вiдноситься до класу NP-повних [3], було показано, що бшьшють версiй алгоритму е нестiйкими. В 1983 р. Бршел запропонував спосiб злому криптосистеми на основi ранця низько! щiльностi [4]. Рш по тому Шамiр розробив полiномiальний алгоритм для атаки на вихщну «рюкзачну» криптосистему [5]. Пюля цього було запропоновано безлiч iнших систем на основi алгоритму укладання ранця: кшька послiдовних рюкзаюв, рюкзаки Грем-Шамiра [6]. Для вшх цих систем були розробленi методи розкриття. У статтi [7] пропонуеться ще один метод криптоаналiзу шифрiв на основi алгоритму укладання ранця; вщмшною рисою такого пiдходу е його ушверсальшсть, тобто можливiсть застосування до будь-яко! верси «рюкзачно!» криптосистеми, а також простота роботи. Метод базуеться на використанш генетичних алгоритмiв.

Розглянемо формулювання задачi про укладання ранця. Задана множина предмета рiзноl ваги; запитуеться, чи можна покласти деяю iз цих предмета у ранець так, щоб його вага стала дорiвнювати певному значенню? Бiльш формально задача формулюеться так: даний набiр значень М1,М 2 ,...,МП i сумарне значення S, потрiбно обчислити значення Ь;

(1 = 0,п) ■

I таю, що: 8 = Ь1М1 + Ь2М2 +... + ЬпМп .

Тут Ь; може бути або нулем, або одиницею. Значення Ь; = 1 означае, що 1-й предмет

кладуть у рюкзак, а Ь; = 0 - не кладуть. Звщси випливае уявлення про вмют рюкзака у

виглядi хромосом, бгги яких вiдповiдають значенням Ь;. Функцiя вибору «кращих хромосом» оцiнюе близькiсть ваги конкретного рюкзака до заданого числа. Значення функци розташовуються в дiапазонi [0, 1], де 1 означае точний збш iз шуканою вагою. Якщо вага одного рюкзака перевищуе цiльове значення S на деяке число х, а вага шшого, навпаки, менша за потрiбну на те ж число х, то «кращим» вважаеться останнiй рюкзак. Опишемо цю задачу бiльш формально:

1. Потрiбно обчислити максимальну розбiжнiсть, яка може виникнути мiж довiльною

хромосомою й цшьовим значенням 8 : Атах = тах(8,8 - 8), де 8 - сума всiх компонентiв, якi можна використовувати при укладаннi рюкзака.

2. Обчислити вагу рюкзака, вщповщного до поточно! хромосоми, i позначити 8'.

3. Якщо Б' < Б, то «яюсть» хромосоми оцшюеться значенням: а = 1 -, -

4. Якщо 8' > 8, то «яюсть» хромосоми оцiнюеться значенням:

а = 1 -

8'-8

Атах

Загальний алгоритм задачi про укладання ранця можна представити так:

1. Створюеться випадкова популяцiя двшкових хромосом.

2. Для кожно! хромосоми обчислюеться значення а (функщя оцшки).

3. На основi отриманих коефщента вiдбуваеться природний вiдбiр.

4. До обраних на 3-му еташ особин застосовуеться схрещування.

5. Нащадки зазнають мутаци.

6. Нова популяцiя аналiзуеться, видiляються «кращi хромосоми».

Процес перерветься, коли кшьюсть поколiнь перевищить певне задане число. «Кращi хромосоми» нового поколшня будуть використанi для «злому» шифру [8, 9].

Розглянемо приклад шифрування за допомогою задачi про ранець.

Рюкзачний вектор А = (а1,а2, . ,ап) - впорядкований набiр iз п предмета. Повщом-лення шифруеться як розв'язок набору задач про ранець. Для шифрування вщкритого тексту у двшковому представлены його розбивають на блоки довжини п (наприклад, (1 1 1 0 0) вщповщае 5-ти предметам у рюкзаку). Вважаеться, що одиниця вказуе на наявшсть предмета в рюкзаку, а нуль - на його вщсутшсть. Якщо для заданого рюкзачного вектора А = (3,4,5,6,7,8) довжини п = 6 за даним алгоритмом шукати шифротекст, то ус криптосистеми не перевищуватимуть 33 - сумарну вагу вшх предмета у рюкзачному векторi (таблиця).

Шифрyвaння тeкстy у двiйковомy прeдстaвлeннi

Вщкритий тeкст Peчi в рюкзaкy Шифротeкст

о о о 0 о о 03 + 04 + 03 + 0^6 + 0^ + 0^ о

о о о 0 о l 0-З + 04 + 0 -5 + 0-6 + 0 ^ + PS S

о о о 0 l о 03 + 04 + 0 3 + 0^6 + 1 •V + 0^S 1

о о о 0 l l 03 + 04 + 0 3 + 0^6 + 0 •V + 0^S l5

о о о 1 о о 03 + 04 + 03 + 0^6 + W + 1S 6

о о о 1 о l 03 + 04 + 03 + Ь6 + 0^ + bS l4

о о о 1 l о 03 + 04 + 03 + Ь6 + W + 0^S 1З

о о о 1 l l 03 + 04 + 03 + Ь6 + M + bS 21

о о l 0 о о 03 + 04 + 13 + 0^6 + 0^ + 0^S 5

о о l 0 о l 03 + 04 + 13 + 0^6 + 0^ + 1S 1З

о о l 0 l о 03 + 04 + 13 + 0^6 + M + 0^S l2

о о l 0 l l 03 + 04 + 13 + 0^6 + W + 1S 2о

о о l 1 о о 03 + 04 + 13 + Ь6 + 0^ + 0^S ll

о о l 1 о l 03 + 04 + 13 + Ь6 + 0^ + 1S 19

о о l 1 l о 03 + 04 + 13 + Ь6 + M + 0^S lS

о о l 1 l l 03 + 04 + 13 + Ь6 + W + 1S 26

о l о 0 о о 03 + 14 + 03 + 0^6 + 0^ + 0^S 4

о l о 0 о l 03 + 14 + 03 + 0^6 + 0^ + 1S l2

о l о 0 l о 03 + 14 + 03 + 0^6 + W + 0^S ll

о l о 0 l l 03 + 14 + 03 + 0^6 + M + bS l9

о l о 1 о о 03 + 14 + 03 + Ь6 + 0^ + 0^S 10

о l о 1 о l 03 + 14 + 03 + Ь6 + 0^ + bS lS

о l о 1 l о 03 + 14 + 03 + Ь6 + W + 0^S lV

о l о 1 l l 03 + 14 + 03 + Ь6 + W + 1S 25

о l l 0 о о 03 + 14 + 13 + 0^6 + 0 ^ + 0^S 9

о l l 0 о l 03 + 14 + 13 + 0^6 + 0 •V + 1S lV

о l l 0 l о 03 + 14 + 13 + 0^6 + M + 0^S l6

о l l 0 l l 03 + 14 + 13 + 0^6 + W + 1S 24

о l l 1 о о 03 + 14 + 13 + Ь6 + 0^ + 0^S l5

о l l 1 о l 03 + 14 + 13 + Ь6 + 0^ + 1S 2З

о l l 1 l о 03 + 14 + 13 + Ь6 + W + 0^S 22

о l l 1 l l 03 + 14 + 13 + Ь6 + M + bS Зо

l о о 0 о о 13 + 04 + 03 + 0^6 + 0^ + 0^S З

l о о 0 о l 13 + 04 + 03 + 0^6 + 0^ + bS ll

l о о 0 l о 13 + 04 + 03 + 0^6 + W + 0^S 10

l о о 0 l l 13 + 04 + 03 + 0^6 + W + 1S lS

l о о 1 о о 13 + 04 + 03 + Ь6 + 0^ + 0^ 9

l о о 1 о l 13 + 04 + 03 + Ь6 + 0^ + 1S lV

l о о 1 l о 13 + 04 + 03 + Ь6 + M + 0^S l6

l о о 1 l l 13 + 04 + 03 + Ь6 + W + 1S 24

l о l 0 о о 13 + 04 + 13 + 0^6 + 0^ + 0^S S

l о l 0 о l 13 + 04 + 13 + 0^6 + 0^ + 1S l6

l о l 0 l о 13 + 04 + 13 + 0^6 + M + 0^S l5

1 о l 0 l l 13 + 04 + 13 + 0^6 + W + 1S 2З

Для кожного вихщного тексту юнуе единий унiкальний криптотекст.

Задача про ранець вщноситься до класу NP-повних задач [3], для не! немае полiномiаль-ного алгоритму, що вирiшуе li за розумний час. Тому при розв'язуванш задачi про ранець завжди потрiбно вибирати мiж точними алгоритмами, як не застосовнi для «великих» рюкзаюв, i наближеними, якi працюють швидко, але не забезпечують оптимального розв'-язку задачi. Природно, створення швидкого й достатньо точного алгоритму становить великий штерес.

4. Висновки

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

Наведет вище основнi особливостi застосування генетичних алгоритмiв, якi iмiтують процеси еволюцп живо! природи, свiдчать про ефектившсть !х застосування для розв'язу-вання задач криптологп. «Сила» генетичного алгоритму полягае в його здатносп оперувати одночасно багатьма параметрами, яю використовуеться в сотнях прикладних програм. У деяких випадках потрiбно знайти параметри, при яких досягаеться точне значення результату. В шших випадках точний оптимум не по^бний - ршенням може бути будь-яке значення, краще за певну задану величину. У цьому випадку генетичш алгоритми -найкращий метод для пошуку «прийнятних» рiшень.

Список лггератури: 1. Holland J.H. Adaptation in Natural and Artificial Systems / J.H. Holland. Ann Arbor, MI: The University of Michigan Press, 1975. 2nd edn. Boston, MA: MIT Press, 1992. 2. Merkle R.C. Hiding Information and Signatures in Trapdoor Knapsacks / R.C. Merkle, M.E. Hellman // IEEE transactions on Information Theory. Sep 1978. V. 24. N. 5. P. 525-530. 3. Axo А. Построение и анализ вычислительных алгоритмов / А. Ахо, Д. Хопкрофт, Д. Ульман. М.: Мир, 1979. С. 404-446. 4. Brickell E. Solving Low Density Knapsacks / E. Brickell // Advances in Cryptology: Proceedings of crypto. New York: Plenum Press, 1984. P. 25-37. 5. Shamir A. A Polynomial - Time Algorithm for Breaking the Basic Merkle - Hellman Cryptosystem / A. Shamir // Proceedings of the 23rd IEEE Symposium on the Foundations of Computer Science. 1982. P. 145-152. 6. Schneier B. Applied Cryptography Second Edition: protocols, algorithms and source code in C. John Wiley & Sons Inc., 1996. (Русский перевод: Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2002). 7. Cryptanalysis of knapsack ciphers using genetic algorithms / R. Spillman // Cryptologia. 1993. V. 17. N. 4. P. 367-377. 8. Matthews R. The use of genetic algorithms in cryptanalysts / R. Matthews // Cryptologia. 1993. V. 17. N. 2. P. 187-201. 9. Use of a Genetic Algorithm in the Cryptanalysis of Simple Substitution Ciphers / [R. Spillman, M. Janssen, B. Nelson, M. Kepner] // Cryptologia. 1993. V. 17. N. 1. P. 31-44.

Надшшла до редколегИ 23.12.2015

Кожухiвський Андрш Дмитрович, д-р техн. наук, професор кафедри шформатики та шформацшно! безпеки Черкаського державного технолопчного утверситету. Науков1 ште-реси: аналiз i моделювання складних систем. Адреса: Укра!на, 18006, Черкаси, бульвар Шевченка, 460, тел. 0472730217. E-mail: andrejdk@mail.ru

Намофшова Ольга Олексйвна, астрантка кафедри шформатики та шформацшно! безпеки Черкаського державного технолопчного ушверситету. Науковi штереси: математичне моделювання, генетичш алгоритми. Адреса: Укра!на, 18006, Черкаси, бульвар Шевченка, 460, тел. 0472730217. E-mail: olga_namofilova@rambler.ru

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