VYSOK ´
E U ˇ
CEN´I TECHNICK ´
E V BRN ˇ
E
BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA INFORMA ˇ
CN´ICH TECHNOLOGI´I
´
USTAV INTELIGENTN´ICH SYST ´
EM ˚
U
FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INTELLIGENT SYSTEMS
HLED ´
AN´I S-BOX ˚
U POMOC´I EVOLU ˇ
CN´ICH ALGORITM ˚
U
DESIGN OF S-BOXES USING GENETIC ALGORITHMS
DIPLOMOV ´
A PR ´
ACE
MASTER’S THESIS
AUTOR PR ´
ACE
Bc. BED ˇ
RICH HOVORKA
AUTHOR
VEDOUC´I PR ´
ACE
Doc. Dr. Ing. PETR HAN ´
A ˇ
CEK
SUPERVISOR
Zad´
an´ı
1. Prostudujte problematiku S-box˚u v kryptografii. D´ale prostudujte evoluˇcn´ı v´ypoˇcetn´ı techniky jako genetick´e algoritmy, EDA algoritmy a Kart´ezsk´e genetick´e progra-mov´an´ı.
2. Navrhnˇete program pro evoluˇcn´ı n´avrh S-box˚u pomoc´ı jednotliv´ych metod. 3. Navrˇzen´y program implementujte ve vhodn´em jazyce a prostˇred´ı.
4. Na zvolen´ych pˇr´ıkladech porovnejte jednotliv´e pˇr´ıstupy a zhodnot’te dosaˇzen´e v´ysledky.
Kategorie: Bezpeˇcnost Datum zad´an´ı: 21. z´aˇr´ı 2009
Abstrakt
Pˇredloˇzen´a pr´ace se zab´yv´a ˇc´ast´ı ˇsifrovac´ıho algoritmu zvanou substituˇcn´ı box a jeho evoluˇcn´ım n´avrhem. K jeho v´yvoji jsou pouˇzity evoluˇcn´ı v´ypoˇcetn´ı techniky, jako jsou klasick´y genetick´y algoritmus, Estimation of Distribution Algorithm, Kart´ezsk´e genetick´e programov´an´ı a multikriteri´aln´ı algoritmy VEGA a SPEA. C´ılem pr´ace je prozkouˇset vlast-nosti substituˇcn´ıch box˚u k jejich evoluˇcn´ımu v´yvoji. Pr´ace se nejprve zab´yv´a kryptografi´ı a problematikou s-box˚u. Zde budou vysvˇetleny z´akladn´ı pojmy a pops´ana vybran´a krit´eria jejich bezpeˇcnosti. D´ale budou vyloˇzeny pouˇzit´e evoluˇcn´ı algoritmy a z´aklady multikri-teri´aln´ı optimalizace. Tˇechto poznatk˚u je vyuˇzito, k n´avrhu a implementaci programu, kter´e jsou pops´any d´ale. Nakonec diskutuje pouˇzit´ı studovan´ych krit´eri´ı. Je zde diskutov´ano pro-hled´av´an´ı s-box˚u jak pˇri jednokriteri´aln´ım, tak pˇredevˇs´ım v multikriteri´aln´ım genetick´em prohled´av´an´ı.
Abstract
This work deals with part of the encryption algorithm, called S-box and its development. For its development is used evolutionary computing, such as classical genetic algorithm, Estimation of Distribution Algorithm, Cartesian genetic programming and multi-criteria VEGA and SPEA algorithms. This thesis aims to test the properties of substitution boxes to its evolutionary development. Firstly, the work deals with cryptography and issues of s-boxes. There are explained basic concepts and describes the selected criteria of safety. Next chapter explains evolutionary algorithms and multi-criteria optimization. This knowledge is used to design and program implementation, which are described below. Finally discusses the application of the criteria studied. Discussed here is searching S-boxes in both single-criteria, and especially in multi-criteria genetic search.
Kl´ıˇcov´
a slova
s-box, genetick´y algoritmus, EDA, UMDA, BMDA, VEGA, SPEA, Kart´ezsk´e genetick´e programov´an´ı, Pareto optimum, line´arn´ı a diferenci´aln´ı kryptoanal´yza, Python, C++
Keywords
S-box, Genetic algorithm, EDA, UMDA, BMDA, VEGA, SPEA, Cartesian genetic progra-mming, Pareto optimum, linear a differential cryptoanalysis, Python, C++
Citace
Bedˇrich Hovorka: Hled´an´ı S-box˚u pomoc´ı evoluˇcn´ıch algoritm˚u, diplomov´a pr´ace, Brno, FIT VUT v Brnˇe, 2010
Hled´
an´ı S-box˚
u pomoc´ı evoluˇcn´ıch algoritm˚
u
Prohl´
aˇsen´ı
Prohlaˇsuji, ˇze jsem tuto diplomovou pr´aci vypracoval samostatnˇe pod veden´ım doc. Petra Han´aˇcka. Dalˇs´ı informace mi poskytl Dipl.-Inform. Martin Grajcar. Uvedl jsem vˇsechny liter´arn´ı prameny a publikace, ze kter´ych jsem ˇcerpal.
. . . . Bedˇrich Hovorka
23. kvˇetna 2010
Podˇekov´
an´ı
T´ımto bych chtˇel podˇekovat pˇredevˇs´ım sv´emu vedouc´ımu doc. Petru Han´aˇckovi a Martinu Grajcarovi za poskytnut´e rady. D´ale bych chtˇel podˇekovat vˇsem, kteˇr´ı mˇe podporovali bˇehem cel´eho studia, zejm´ena rodiˇc˚um a pˇr´atel˚um.
Obsah
Obsah 1
1 Uvod´ 3
2 Uvod do kryptografie´ 4
2.1 Symetrick´a kryptografie . . . 6
2.2 Vnitˇrn´ı struktura ˇsifruj´ıc´ıho bloku . . . 8
2.3 Dosahovan´ı bezpeˇcnosti . . . 10
2.4 Line´arn´ı kryptoanal´yza. . . 11
2.5 Diferenci´aln´ı kryptoanal´yza . . . 12
3 Problematika S-box˚u 13 3.1 Definice s-box˚u . . . 13
3.2 Krit´eria bezpeˇcnosti s-box˚u . . . 14
3.2.1 SAC . . . 14
3.2.2 Bent funkce . . . 15
3.2.3 Nejvˇetˇs´ı odchylka z line´arn´ıch v´yraz˚u. . . 16
3.2.4 Nejvˇetˇs´ı pravdˇepodobnost z diferenci´al˚u . . . 17
3.2.5 Faktor vˇetven´ı . . . 17
3.2.6 R´ˇad algebraick´eho polynomu . . . 17
3.2.7 Bijektivita. . . 18
3.2.8 Dalˇs´ı krit´eria . . . 18
3.3 Pˇr´ıklady dalˇs´ıho uˇzit´ı s-box˚u . . . 19
3.3.1 S-box v DES . . . 19
3.3.2 S-box v AES . . . 20
4 Evoluˇcn´ı algoritmy 21 4.1 Genetick´y algoritmus . . . 21
4.2 Genetick´e programov´an´ı . . . 22
4.2.1 Kart´ezsk´e genetick´e programov´an´ı . . . 23
4.3 EDA . . . 24
4.3.1 Cinnost EDA algoritmuˇ . . . 24
4.3.2 UMDA . . . 25
4.3.3 BMDA . . . 25
4.4 Multikriteri´aln´ı optimalizace. . . 26
4.4.1 Pareto optimum . . . 26
4.4.2 Algoritmus VEGA . . . 27
4.5 Dalˇs´ı metody k hled´an´ı s-box˚u . . . 29
4.6 Hled´an´ı s-box˚u vs. symbolick´a regrese . . . 30
5 N´avrh programu pro experimenty 31 5.1 Shrnut´ı technick´ych a funkˇcn´ıch poˇzadavk˚u . . . 31
5.2 Prototypov´y n´avrh aplikace . . . 32
5.3 R˚uzn´e typy reprezentace s-boxu . . . 32
5.3.1 Seznam v´ystup˚u . . . 32
5.3.2 Bin´arn´ı reprezentace . . . 33
5.3.3 Acyklick´y graf hradel . . . 33
5.3.4 Posloupnost trojinstrukc´ı platformy i686 . . . 33
5.4 Pouˇzit´e jazyky a platforma . . . 35
6 Popis implementace 37 6.1 Implementace evoluˇcn´ıch algoritm˚u . . . 37
6.2 Implementace reprezentac´ı s-box˚u. . . 39
6.3 Naimplementovan´a krit´eria a jejich vyhodnocen´ı . . . 40
6.4 Rozhran´ı komunikace z Pythonem . . . 41
6.5 Diskuze moˇznost´ı paralelizace v´ypoˇct˚u . . . 41
7 Proveden´e experimenty a zhodnocen´ı v´ysledku 43 7.1 Stanoven´ı pravdˇepodobnost´ı mutace a kˇr´ıˇzen´ı pro jednotliv´a krit´eria . . . . 43
7.2 Porovn´an´ı v´ysledk˚u EDA algoritm˚u s Genetick´ym algoritmem . . . 46
7.3 Parametry paraleln´ıho n´ahodn´eho prohled´av´an´ı. . . 48
7.4 Parametry multikriteri´aln´ıho vyhled´av´an´ı . . . 51
7.5 Hled´an´ı sloˇzitˇejˇs´ıch s-box˚u . . . 53
7.6 Dvouf´azov´e hled´an´ı. . . 54
7.7 Celkov´e zhodnocen´ı v´ysledku . . . 54
8 Z´avˇer 55
Seznam pouˇzit´ych zkratek 58
A Chromoz´om v Kart´ezsk´em genetick´em programov´an´ı 61
B Pˇrehled pˇr´ıkaz˚u pro skriptov´an´ı experiment˚u 62
Kapitola 1
´
Uvod
Rostouc´ı v´ykon poˇc´ıtaˇc˚u a n´ar˚ust jejich pouˇzit´ı ˇsirokou masou uˇzivatel˚u v celosvˇetov´e poˇ c´ı-taˇcov´e s´ıti si ˇz´adaj´ı vyˇsˇs´ı nutnost zaob´ırat se bezpeˇcnost´ı tˇechto uˇzivatel˚u. Nebot’ souˇc´ast´ı t´eto s´ıtˇe nejsou jen sam´ı lid´e a organizace s dobr´ymi ´umysly, ale i tac´ı, kteˇr´ı se snaˇz´ı poruˇsit pr´avo na soukrom´ı odposlechnut´ım d˚uvˇern´ych informac´ı jin´e osoby a vyuˇz´ıt je ve sv˚uj prospˇech ˇci tu osobu zkompromitovat jin´ym zp˚usobem, napˇr´ıklad se za n´ı vyd´avat. Proto je d˚uleˇzit´e tˇemto z´aˇskodn´ık˚um tyto ˇcinnosti prakticky znemoˇznit pˇrevodem d˚uvˇern´e informace do podoby, kterou budou schopny pˇreˇc´ıst jen vybran´e osoby a nebude schopna pˇreˇc´ıst ˇz´adn´a neˇz´adouc´ı osoba – d˚uvˇernost. D´ale mus´ı b´yt souˇc´ast´ı tohoto pˇrevodu ovˇeˇren´ı identity p˚uvodce pˇren´aˇsen´e informace – autentizace. Algoritmy, kter´e zajiˇst’uj´ı d˚uvˇernost a autentizaci pˇren´aˇsen´ych dat, se zab´yv´a kryptografie. Tˇemto algoritm˚um se t´eˇz ˇr´ık´a ˇsifra. D´ıky ˇc´ım d´al t´ım jejich vˇetˇs´ım pouˇz´ıv´an´ım a objevov´an´ım novˇejˇs´ıch druh˚u kryptoanal´yzy ˇ
zivotnost ˇsifer kles´a. Pouˇcen´ı z historie ˇsifer ˇr´ık´a, ˇze ˇsifra byla neprolomiteln´a do t´e doby, neˇz nˇekdo objevil jej´ı slabinu. Proto musela b´yt vz´apˇet´ı vˇzdy vytvoˇrena ˇsifra nov´a. V dneˇsn´ı dobˇe prob´ıh´a neust´al´y v´yzkum a v´yvoj nov´ych ˇsifer, kter´e by mˇeli b´yt odolnˇejˇs´ı v˚uˇci st´ale pˇrib´yvaj´ıc´ım novˇejˇs´ım druh˚um ´utok˚u.
Tato pr´ace se zab´yv´a ˇc´ast´ıˇsifrovac´ıho algoritmu zvanou substituˇcn´ı box (zkr´acenˇe s-box) a jeho v´yvojem. K jejich konstrukci se vyuˇz´ıvaj´ı jak ˇcistˇe matematick´e pˇr´ıstupy s vyuˇzit´ım teorie Galois pol´ı, tak i r˚uzn´e stochastick´e zp˚usoby n´avrhu, ke kter´ym se ˇrad´ı napˇr´ıklad evoluce, kter´a je pouˇzita v t´eto pr´aci. Evoluˇcn´ı v´ypoˇcetn´ı techniky jsou, jak jiˇz n´azev napov´ıd´a, inspirov´any evoluˇcn´ı teori´ı z biologie. C´ılem pr´ace je pouˇz´ıt nˇekter´e vlastnosti substituˇcn´ıch box˚u jako objektivn´ı funkce k jejich evoluˇcn´ımu v´yvoji. Pˇrestoˇze jiˇz bylo mnoho vlastnost´ı studov´ano, relativnˇe m´alo pr´ace bylo uskuteˇcnˇeno pˇri hled´an´ı s-box˚u pˇredevˇs´ım v multikriteri´aln´ım genetick´em prohled´av´an´ı.
Nejprve vˇsak bylo nutn´e navrhnout a naimplementovat kolekci algoritm˚u, kter´a tyto vlastnosti umoˇzn´ı experiment´alnˇe zjistit. Tato implementace mus´ı pˇredevˇs´ım umoˇznit rychle zad´avat r˚uzn´e evoluˇcn´ı experimenty a, pokud moˇzno, prov´est je co nejrychleji.
Kapitola 2
´
Uvod do kryptografie
Kryptografie [8,5] se zab´yv´a pˇredevˇs´ım utajov´an´ım informace a ovˇeˇrov´an´ım jej´ıho p˚uvodu tj. pˇrevodem dat do podoby, kter´a je nepouˇziteln´a neˇz´adouc´ım osob´am, kter´e budou d´ale v textu pro zjednoduˇsen´ı souhrnnˇe nazv´any slovem
”utoˇ´ cn´ık“, pˇrestoˇze nemus´ı ´utoˇcit pˇr´ımo a m˚uˇze jich b´yt v´ıce. ˇZ´adouc´ı osoby maj´ı narozd´ıl od tˇech neˇz´adouc´ıch speci´aln´ı znalost. Tou znalost´ı byl v minulosti i postup zaˇsifrov´an´ı, od toho se v dneˇsn´ı dobˇe upouˇst´ı a tou znalost´ı je pouze kl´ıˇc. Pˇredpokl´ad´a se, ˇze algoritmus zn´a i ´utoˇcn´ık. D´ale m˚uˇze i k neutajovan´e informaci pˇridat dodateˇcnou informaci o jej´ım p˚uvodu, tzv. elektronick´y podpis ˇci ˇcasov´e raz´ıtko, a to takov´ym zp˚usobem, ˇze je prakticky nemoˇzn´e ovˇeˇrit t´ımto podpisem jinou informaci neˇz v tu, kter´a identicky odpov´ıd´a t´e pˇri podpisu. Takov´y pˇrevod by mˇel ˇreˇsit hlavn´ı probl´emy v bezpeˇcnosti:
d˚uvˇernost ´utoˇcn´ık nesm´ı z´ıskat ˇz´adnou uˇziteˇcnou informaci ze zaˇsifrovan´eho komunikaˇ cn´ı-ho kan´alu
autentizaci ovˇeˇren´ı identity odes´ılatele zpr´avy
integritu utoˇ´ cn´ık nem˚uˇze podvrhnout data ˇci jejich ˇc´ast a vyd´avat je pˇr´ıjemci za takov´a, jakoby poch´azela od urˇcit´eho odes´ılatele – tj. i zmˇenit ˇci upravit data poch´azej´ıc´ı od prav´eho odes´ılatele
nepopiratelnost odes´ılatel nem˚uˇze popˇr´ıt u j´ım vytvoˇren´e a podepsan´e zpr´avy, ˇze ji ode-slal on
Tato transformace se d´a zjednoduˇsit do matematick´eho v´yrazu C = F(K1, P), kde P je prost´y text (angl.
”plaintext“),C je ˇsifrov´y text (angl. ”ciphertext“) a K je kl´ıˇc, kter´y pˇredstavuje moˇznost nastavit, jak´ym zp˚usobem ˇsifra pˇrevede text. K opaˇcn´emu procesu zvan´emu deˇsifrov´an´ıP = F−1(K2, C) nemus´ı b´yt stejn´y kl´ıˇc. Proces je t´eˇz zn´azornˇen na obr´azku2.1. ˇC´ım delˇs´ı kl´ıˇc, t´ım je sloˇzitˇejˇs´ı prov´est ´utok hrubou silou k jeho z´ısk´an´ı. Funkce F se d´ale v textu naz´yv´a ˇsifra ˇci tak´e kryptosyst´em.
Modern´ı kryptografie se dˇel´ı na dvˇe hlavn´ı kategorie (dle poˇctu kl´ıˇc˚u):
symetrick´a Za symetrick´y kryptosyst´em je oznaˇcov´an takov´y, kdyˇz lze deˇsifrovac´ı kl´ıˇc snadno odvodit z kl´ıˇce ˇsifrovac´ıho. Vˇetˇsinou existuje jen jeden kl´ıˇc tzv.
Šifrovací algoritmus
Dešifrovací algoritmus
Zpráva Šifrový text Zpráva
Šifrovací klíč Dešifrovací klíč
Odesílatel
Příjemce
Obr´azek 2.1: Zn´azornˇen´ı procesu utajov´an´ı informace
pˇr´ıjemce, jeden kl´ıˇc˚u v p´aru je
”veˇrejn´y“ a v procesu utajov´an´ı informace jej odes´ılatel pouˇzije k zaˇsifrov´an´ı. Druh´y kl´ıˇc je
”soukrom´y“ (kromˇe pˇr´ıjemce jej nikdo nesm´ı zn´at), kter´ym pˇr´ıjemce pˇrijatou zpr´avu deˇsifruje. Veˇrejn´y kl´ıˇc m˚uˇze d´ıky tomu, ˇze z nˇeho nelze snadno odvodit soukrom´y, b´yt kdekoliv vystaven. Distribuce kl´ıˇce je vyˇreˇsena za cenu v´ypoˇcetn´ı n´aroˇcnosti ˇsifrov´an´ı.
Oba pˇr´ıstupy se v praxi vˇetˇsinou kombinuj´ı tak, ˇze odes´ılatel nejprve vygeneruje n´ahodn´y tajn´y kl´ıˇc Krand, ten zaˇsifruje asymetrickou ˇsifrou veˇrejn´ym kl´ıˇcem pˇr´ıjemce
C1=Fasym(Kpublicrecv, Krand)
Vlastn´ı zpr´avu P pak zaˇsifruje symetricky kl´ıˇcem Krand: C2 = Fsym(Krand, P), protoˇze
zaˇsifrovat symetricky je o dost rychlejˇs´ı. Nakonec pˇr´ıjemci odeˇsle data ve tvaru C1, C2 (zjednoduˇsenˇe vyj´adˇreno). Blokem je d´ale myˇslena jak´akoliv posloupnost po sobˇe jdouc´ıch bit˚u. ˇSifruj´ıc´ım blokem
”krabiˇcka“, kter´a pˇrevede blok prost´eho textu na blok ˇsifrov´eho. Jednotliv´e bloky budou d´ale zn´azornˇeny jako sign´aly, kter´e vyznaˇcuj´ı propojen´ı mezi jed-notliv´ymi ˇc´astmi algoritmu a tok informace.
V pˇredeˇsl´ych odstavc´ıch byl ilustrov´an postup pˇri utajov´an´ı informace. Pro elektronick´y podpis, se pouˇz´ıv´a asymetrick´a ˇsifra s opaˇcn´ymi kl´ıˇci odes´ılatele. Pˇri podpisu odes´ılatel pouˇzije sv˚uj soukrom´y kl´ıˇc a pˇr´ıjemce jej deˇsifruje pomoc´ı veˇrejn´eho kl´ıˇce odes´ılatele a t´ım u zpr´avy ovˇeˇr´ı p˚uvod. Odes´ılatel mus´ı m´ıt dva r˚uzn´e p´ary kl´ıˇc˚u, jeden p´ar pro ˇsifrov´an´ı a druh´y p´ar pro podpis, aby mu ´utoˇcn´ık nemohl podstrˇcit k podpisu jinou informaci, kter´a je urˇcen´a pro odes´ılatele a kterou by t´ım p´adem deˇsifroval. A nav´ıc, protoˇze je asymetrick´e ˇsifrov´an´ı v´ypoˇcetnˇe n´aroˇcn´a operace, je pˇri podpisu zpr´avy nejprve vypoˇc´ıt´an otisk (tzv. ”hash“), a ten je pot´e asymetricky zaˇsifrov´an soukrom´ym kl´ıˇcem odes´ılatele a pˇripojen ke zpr´avˇe. Pˇr´ıjemce zpr´avu ovˇeˇr´ı tak, ˇze nejprve spoˇc´ıt´a
”hash“ pˇrijat´e vlastn´ı zpr´avy a z´aroveˇn pomoc´ı veˇrejn´eho kl´ıˇce odes´ılatele deˇsifruje
”hash“ pˇrijat´y, pot´e oba ”hashe“ porovn´a. Hashovac´ı algoritmy jsou dalˇs´ı skupinou kryptografick´ych algoritm˚u. Hashovac´ı algoritmus tedy prov´ad´ı transformaci libovolnˇe dlouh´e zpr´avy do pevnˇe zvolen´e d´elky tzv. ”hashe“. Tento ”hash“ by mˇel b´yt k dan´e zpr´avˇe unik´atn´ı. Dvˇe r˚uzn´e zpr´avy, byt’ by se liˇsily v jednom bitu, nesm´ı m´ıt stejn´y
”hash“.
V tabulce 2.1je uvedeno nˇekolik nejpouˇz´ıvanˇejˇs´ıch kryptografick´ych algoritm˚u a jejich nejpouˇz´ıvanˇejˇs´ıch d´elek kl´ıˇc˚u. U asymetrick´ych algoritm˚u se d´elka kl´ıˇce bˇehem let zvyˇsuje mnohem v´ıce neˇz symetrick´ych a hashovac´ıch. Vyvinout novou symetrickou ˇsifru je mnohem
Druh Zkratka poˇcet bit˚u kl´ıˇce symetrick´y AES 128, 192, 256 DES 56, 168 RC4 40 aˇz 256 asymetrick´y RSA . . . , 1024, 2048, 4096, . . . DSA 1024, 2048, 3072 hashovac´ı MD5 128 SHA1 160 SHA2 224, 256, 384, 512
Tabulka 2.1: Pˇr´ıklady nejzn´amˇejˇs´ıch kryptografick´ych algoritm˚u
jednoduˇsˇs´ı neˇz vyvinout asymetrickou. U asymetrick´e je nutn´e nejprve naj´ıt matematick´y princip, proto se jejich bezpeˇcnost v´ıce odr´aˇz´ı ve velikosti kl´ıˇce. Symetrick´e ˇsifry s kl´ıˇcem menˇs´ım neˇz 80 bit˚u jsou povaˇzov´any za slab´e. U asymetrick´ych je ta hranice jiˇz na 1024 bitech. Hashovac´ı algoritmy MD5 a SHA1 jsou t´eˇz povaˇzov´any za slab´e. 168-bitov´y kl´ıˇc u DESu se naz´yv´a TripleDES, tento kl´ıˇc se rozdˇel´ı na tˇri 56-bitov´e a pˇri ˇsifrov´an´ı se projde tˇremi f´azemi DESu C = F(K3,(F−1(K2(F(K1, P))), prostˇredn´ı je deˇsifrov´an´ı. Z hasho-vac´ıch jsou uvedeny pouze bezkl´ıˇcov´e. NIST1 vypsal soutˇeˇz na nov´y standard SHA3, kter´a se nyn´ı nach´az´ı ve 2.kole, mezi postupuj´ıc´ımi kandid´aty jsou napˇr´ıklad ˇsifry CubeHash ˇci Luffa([2]).
2.1
Symetrick´
a kryptografie
Symetrick´e ˇsifry se dˇel´ı na blokov´e a proudov´e. Proudov´e ˇsifry berou zpr´avu po bajtech, pˇr´ıpadnˇe bitech ˇci znac´ıch. Blokov´a ˇsifra bere zpr´avu po vˇetˇs´ıch bloc´ıch (64 aˇz 256 bit˚u). Vetˇs´ı velikost bloku zabraˇnuje statistick´ym a slovn´ıkov´ym ´utok˚um. Pron-bitov´y blok je 2n
moˇzn´ych vstupn´ıch i v´ystupn´ıch kombinac´ı a existuje 2n! moˇzn´ych zobrazen´ı. Pˇr´ıkladem blokov´e ˇsifry je napˇr´ıklad DES kter´y ˇsifruje po 64 bitov´ych bloc´ıch. Pˇr´ıkladem proudov´e ˇsifry je RC4. Proudovou ˇsifrou se m˚uˇze b´yt i blokov´a, pokud je zapojena v urˇcit´em reˇzimu (viz d´ale).
Reˇzimy blokov´ych ˇsifer
Rozdˇelen´e bloky zpr´avy mohou b´yt jakoukoliv blokovou symetrickou ˇsifrou zpracov´any tˇemito n´asleduj´ıc´ımi zp˚usoby. Pokud m´a ´utoˇcn´ık k dispozici odpov´ıdaj´ıc´ı dvojice blok˚u prost´eho a ˇsifrov´eho textu, mohou b´yt nˇekter´e reˇzimy slabˇs´ı. U nˇekter´ych reˇzim˚u pˇrib´yv´a ke kl´ıˇci jeˇstˇe inicializaˇcn´ı vektor, kter´y je pouˇzit pro inicializaci ˇsifrov´an´ı prvn´ıho bloku, jako dalˇs´ı znalost nutn´a k deˇsifrov´an´ı.
Electronic Codebook (ECB) Nejjednoduˇsˇs´ı, kaˇzd´yi-t´y blok zpr´avy je pˇr´ımo vstupem ˇsifrovac´ıho bloku a v´ystup je pˇr´ımo i-t´ym blokem ˇsifrov´eho textu. Kryptoanal´yza
T´ım je poruˇsena i integrita dat, nebot’ ´utoˇcn´ık m˚uˇze podstrˇcit jin´y blok ˇsifrov´eho textu.
Cipher Block Chaining (CBC) Bloky jsou zˇretˇezeny. Na rozd´ıl od ECB je kaˇzd´y blok xorov´an s pˇredchoz´ım v´ystupn´ım blokem pˇredt´ım, neˇz bude pouˇzit jako vstup ˇ sif-rovac´ıho bloku. Blok prvn´ıho je xorov´an s inicializaˇcn´ım vektorem. Zn´azornˇen je na obr´azku2.2.
Cipher Feedback (CFB) Narozd´ıl od CBC reˇzimu je blok prost´eho textu xorov´an aˇz s v´ystupem bloku ˇsifry a v´ysledek tak´e pˇriveden na vstup n´asleduj´ıc´ıho ˇsifruj´ıc´ıho bloku. Vstupem prvn´ıho bloku je inicializaˇcn´ı vektor.
Output Feedback (OFB) Narozd´ıl do CFB reˇzimu je na vstup n´asleduj´ıc´ıho bloku posl´an v´ystup pˇredchoz´ıho jeˇstˇe pˇred xorov´an´ım s plaintextem.
E
E
K
K
P
1P
2C
1C
2Obr´azek 2.2: CBC m´od [23]
Mimo toho jeˇstˇe existuje tzv.
”counter m´od“, kdy je blokov´a ˇsifra pouˇzita k generov´an´ı pseudon´ahodn´e posloupnosti, tak ˇze jsou na vstup blokov´e ˇsifry pˇriv´adˇeny hodnoty ˇc´ıtaˇce. V´yhodou je, ˇze kaˇzd´y blok m˚uˇze b´yt ˇsifrov´an nez´avisle na ostatn´ıch. Prost´y text se xoruje s v´ystupem blokov´e ˇsifry. Hodnota ˇc´ıtaˇce se samozˇrejmˇe nesm´ı opakovat pro stejn´y kl´ıˇc. I u reˇzimu OFB se d´a hovoˇrit jako o proudov´e ˇsifˇre a o reˇzimu CFB o proudov´e samosyn-chrozuj´ıc´ı.
2.2
Vnitˇ
rn´ı struktura ˇ
sifruj´ıc´ıho bloku
Zaˇsifrov´an´ı jednoho bloku se rozdˇeluje na r˚uzn´e f´aze podle druhu algoritmu. Mnoho mo-dern´ıch ˇsifer je zaloˇzeno na Feistelovˇe substituˇcn´ı/permutaˇcn´ı s´ıti, tj. jsou kombinac´ı tˇechto transformac´ı, prob´ıhaj´ıc´ıch v nˇekolika kolech za sebou:
substituce Urˇcit´y blok k´odu je nahrazen jin´ym z mnoˇziny moˇzn´ych kombinac´ı transpozice/permutace Pracuje s nˇekolika bloky, tˇem je zmˇenˇeno poˇrad´ı
m´ıchan´ı se subkl´ıˇcem z kl´ıˇce jsou vygenerov´any subkl´ıˇce pro jednotliv´a kola, ty jsou pak ”pˇrim´ıch´any“, nejˇcastˇeji XORem
míchání podklíče K1 prostý text . . . C16 . . . P16 P1 . . . S21 S22 S23 S24 S11 S12 S13 S14 S31 S32 S33 S34 1. kolo C 2. kolo 3. kolo 1 . . . šifrový text míchání podklíče K2 míchání podklíče K3 míchání podklíče K4
zn´azornˇeny jako jako
”krabiˇcky“ Skn, do kter´ych vstupuj´ı, a ze kter´ych vystupuj´ı sign´aly. Permutace je zn´azornˇena pomoc´ı sign´al˚u. V kaˇzd´em kole a na kaˇzd´e pozici jsou uˇzity s-boxy s r˚uzn´ymi zobrazen´ımi. Na uveden´em obr´azku se jedn´a o s-boxy typu 4×4. V t´eto pr´aci n´as bude zaj´ımat jejich vnitˇrek a v´ystupy. Principy s-box˚u jsou nejl´epe popisov´any na symetrick´ych ˇsifr´ach, aˇc se nevyluˇcuje jejich pouˇzit´ı i v jin´ych druz´ıch algoritm˚u. Jejich problematika lze uk´azat nejl´epe pr´avˇe na symetrick´ych ˇsifr´ach, protoˇze sami maj´ı charakter symetrick´e blokov´e ˇsifry, i kdyˇz v menˇs´ı podobˇe.
Tato jednoduch´a s´ıt’ sama o sobˇe vˇsak nezaruˇcuje moˇznost jak ˇsifrov´an´ı tak deˇsifrov´an´ı pomoc´ı t´e sam´e struktury. Aby proces mohl b´yt reverzibiln´ı, ˇci-li aby bylo moˇzn´e ˇ sifrovat/de-ˇsifrovat ve v´ıce kolech pomoc´ı t´e sam´e struktury, navrhl Feistel [24] strukturu na obr´azku 2.4.
Obr´azek 2.4: Struktura jednoho kola Feistelovy ˇsifry [24]
Vstupn´ı text se rozdˇel´ı na dvˇe poloviny. V kaˇzd´em kole je prav´a polovina vstupem jak ˇsifruj´ıc´ı funkceF, tak levou polovinou v´ystupu kola. Lev´a polovina vstupu je xornuta s v´ystupem ˇsifruj´ıc´ı funkce a v´ysledek je pravou polovinou v´ystupu. ˇSifruj´ıc´ı funkce je nastavena pˇr´ısluˇsn´ym subkl´ıˇcem. Pro deˇsifrov´an´ı se pouˇzij´ı subkl´ıˇce v opaˇcn´em poˇrad´ı. Na funkciF se pˇren´aˇs´ı odpovˇednost za bezpeˇcnost, o reverzibilitu se postar´a Feistel struktura. Kdyˇz pro ˇsifrov´an´ı v kaˇzd´em kole plat´ı (v´ypoˇcet kola n´asleduj´ıc´ıho):
Li+1 = Ri (2.1)
Ri+1 = Li⊕F(Ki, Ri) (2.2)
pro deˇsifrov´an´ı v tom pˇr´ıpadˇe plat´ı v kaˇzd´em kole :
Ri = Li+1 (2.3)
Li = Ri+1⊕F(Ki+1, Ri+1) (2.4) Li resp.Ri resp.Ki je lev´y vstup resp. prav´y vstup resp. subkl´ıˇc kola. Ve funkciF se m˚uˇze
prov´adˇet substituce, permutace a transpozice. V n´ı m˚uˇze b´yt obsaˇzeno nˇekolik s-box˚u. Tuto strukturu pˇrejalo mnoho ˇsifer, napˇr. DES ˇci Twofish. Liˇs´ı se pˇredevˇs´ım ve funkci F, generov´an´ı subkl´ıˇc˚u a velikosti zpracov´avan´eho bloku. Na obr´azku 2.5 je zn´azornˇena funkce v ˇsifˇre DES.E je expanze z 32 bit˚u na 48 bit˚u. Pak n´asleduje m´ıchan´ı se 48 bitov´ym subkl´ıˇcem. V´ysledek je rozdˇelen mezi 8 s-box˚u typu 6×4. Jejich hlavn´ım ´ukolem je neline´arn´ı
i? 1 ? E ? p rd K i ? S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 ? P
E
P
S1
S2
S3
S4
S5
S6
S7
S8
R
K
i i i? 1 ? E ? p rd K i ? S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 ? PE
P
S1
S2
S3
S4
S5
S6
S7
S8
R
K
i i i? 1 ? E ? p rd K i ? S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 ? PE
P
S1
S2
S3
S4
S5
S6
S7
S8
R
K
i i i? 1 ? E ? p rd K i ? S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 ? PE
P
S1
S2
S3
S4
S5
S6
S7
S8
R
K
i iObr´azek 2.5: Struktura Feistelovy funkce v DESu [8]
zobrazen´ı jejich vstupu na v´ystup (vysvˇetleno d´ale). V´ystupy s-box˚u jsou slouˇceny do 32 bit˚u a permutov´any funkc´ıP.
V podkapitole 3.3 (po vysvˇetlen´ı n´asleduj´ıc´ı pojm˚u) jsou nˇekter´e s-boxy pops´any po-drobnˇeji.
2.3
Dosahovan´ı bezpeˇ
cnosti
Pˇri n´avrhu kryptosyst´emu, by mˇely b´yt poloˇzeny tyto ot´azky:
• Jak m˚uˇze kryptolog dok´azat bezpeˇcnost kryptosyst´emu?
• Jak´e statistick´e vlastnosti m´a struktura kryptosyst´emu?
• Jak zjist´ı tyto vlastnosti efektivnˇe?
Na prvn´ı ot´azku nelze odpovˇedˇet plnˇe uspokojivˇe, protoˇze s rostouc´ım v´ykonem poˇc´ıtaˇc˚u a ´usil´ım kryptoanalytik˚u nen´ı vylouˇceno objeven´ı slabiny ˇsifry a vyuˇzit´ı tohoto objevu k ´utoku. Proto lze ˇsifru navrhovat s c´ılem odolnosti proti vˇsem zn´am´ym ´utok˚um, pˇriˇcemˇz nen´ı prakticky moˇzn´e celou ˇsifru ´uplnˇe zvalidovat. Lze mˇeˇrit s´ılu ˇc´ast´ı ˇsifer pomoc´ı r˚uzn´ych krit´eri´ı.
Odpovˇed´ı na druhou ot´azku je, ˇze [8] ˇsifra nesm´ı m´ıt mal´e mnoˇzstv´ı moˇzn´ych p´ar˚u prost´ych text˚u a pˇr´ısluˇsn´ych ˇsifrov´ych pro r˚uzn´e d´elky z cel´eho textu. Jak´akoliv mnoˇzina v´ystupn´ıch bit˚u by nemˇela z´aviset na jak´ekoliv vlastn´ı podmnoˇzinˇe mnoˇziny vˇsech vstupn´ıch bit˚u pro pevn´y kl´ıˇc. Jak´akoliv mnoˇzina v´ystupn´ıch bit˚u by nemˇela z´aviset na jak´ekoliv vlastn´ı podmnoˇzinˇe mnoˇziny vˇsech bit˚u kl´ıˇce pro pevn´y vstupn´ı text. Z pouˇziteln´ych
r˚uzn´ych pozic´ıch a jejich z´avislosti. Je jasn´e ˇze ide´alnˇe n´ahodn´y v´ystup nelze prakticky vytvoˇrit.
Bezpeˇcn´ym vlastnostem mus´ı nejprve odpov´ıdat jednotliv´e prvky ˇsifry. R˚uzn´e prvky jsou odpovˇedn´e za r˚uzn´e vlastnosti cel´e ˇsifry. Pˇri konstrukci jednotliv´ych prvk˚u m˚uˇze b´yt d´ıky mal´emu mnoˇzstv´ı vstup˚u a v´ystup˚u nen´aroˇcn´e provˇeˇrit vˇsechny tyto vlastnosti pro vˇsechny moˇzn´e kombinace. Moˇznostmi jak ovˇeˇrit odolnost prvku je i proveden´ı zn´am´eho ´
utoku, kter´y tˇeˇz´ı ze slabin zp˚usoben´ych ˇspatn´ymi charakteristikami prvku ˇsifry. Dva nej-d˚uleˇzitˇejˇs´ı ´utoky na ˇsifrovac´ı algoritmy, jeˇz se pouˇz´ıvaj´ı mj. i k ovˇeˇren´ı n´ahodnosti v´ystupu s-box˚u byly vytvoˇreny k ´utoku na algoritmus DES.
2.4
Line´
arn´ı kryptoanal´
yza
Line´arn´ı kryptoanal´yza [7] zkouˇs´ı tˇeˇzit z vych´ylen´e pravdˇepodobnosti v´yskytu line´arn´ıch v´yraz˚u zahrnuj´ıc´ıch jak bity prost´eho textu, ˇsifrov´eho textu a (pod)kl´ıˇce (to v obecn´em pˇr´ıpadˇe, v t´eto pr´aci d´ale neuvaˇzov´ano). Jedn´a se o tzv.
”known plaintext attack“: to zna-men´a, ˇze se pˇredpokl´ad´a, ˇze ´utoˇcn´ık m´a k dispozici sadu prost´ych text˚u a k nim pˇr´ısluˇsn´ych ˇsifrov´ych. Pˇresto nem´a ´utoˇcn´ık moˇznost vybrat, kter´y prost´y text (a pˇr´ısluˇsn´y ˇsifrov´y) je dostupn´y. V mnoha aplikac´ıch a sc´en´aˇr´ıch se povaˇzuje za dostateˇcn´e, ˇze ta sada text˚u je n´ahodn´a. Jin´ymi slovy shrnuto se line´arn´ı kryptoanal´yza snaˇz´ı z n´ahodn´e sady prost´ych text˚u a pˇr´ısluˇsn´ych ˇsifrov´ych text˚u aproximovat ˇsifrovac´ı algoritmus r˚uzn´ymi line´arn´ımi v´yrazy a nej(ne)pravdˇepodobnˇejˇs´ı z nich pouˇz´ıt k postupn´emu z´ısk´an´ı kl´ıˇce.
Linearita je vztaˇzena v˚uˇci mod-2 bitov´e operaci (napˇr., exkluzivn´ı souˇcet oznaˇcen´y pomoc´ı
”⊕“). A line´arn´ı v´yraz je ve formˇe:
a1·Xi1⊕a2·Xi2 ⊕ · · · ⊕au·Xiu⊕b1·Yj1 ⊕a2·Yj2 ⊕ · · · ⊕av·Yjv = 0 (2.5)
kde Xi reprezentuje i-t´y vstupn´ı prost´y textXi = [Xi1, Xi2, . . .] a Yj reprezentuje j-t´y
v´ystupn´ı ˇsifrov´y text Yi = [Yj1, Yj2, . . .].
2 Tato rovnice reprezentuje
”sumu“ exkluzivn´ıch souˇct˚u vstupn´ıch a v´ystupn´ıch bit˚u, kter´e jsou vybr´any3 bitov´ymi vektorya(pro vstupn´ı) a b(pro v´ystupn´ı).
Konceptem line´arn´ı kryptoanal´yzy je urˇcit v´yrazy ve formˇe rovnice2.5, kter´e maj´ı vyso-kou nebo naopak n´ızvyso-kou pravdˇepodobnost. Pokud m´a k takov´ym pravdˇepodobnostem ten-denci, znamen´a to evidentnˇe slabou schopnost ˇsifry produkovat v´ystup s charakteristikami n´ahodnˇe vygenerovan´eho. Mˇejme n´ahodnˇe vygenerovan´e bityu+v a pokud je pouˇzijeme v rovnici 2.5, pravdˇepodobnost pL by mˇela b´yt pˇresnˇe 12. Odchylku od pravdˇepodobnosti
pL= 12 naz´yv´ame ”bias“ znaˇcenoi, kde ise vztahuje k v´yrazu. ˇC´ım je vyˇsˇs´ı velikost t´eto
odchylky,|i =pL−12|, t´ım snazˇs´ı je ˇsifru rozlousknout.
Poznamenejme, ˇzepL= 1 znamen´a, ˇze line´arn´ı v´yraz2.5je pˇresnou reprezentac´ı ˇsifry a
t´ım p´adem je ˇsifra katastrof´alnˇe slab´a. PokudpL= 0, potom v´yraz reprezentuje afinn´ı vztah,
tak´e znak velik´e slabosti. Pro aritmetiku mod-2 je afinn´ı funkce jednoduˇse komplementem line´arn´ı. Obˇe line´arn´ı resp. afinn´ı aproximace, indikovan´e pravdˇepodobnostmipL> 12 resp.
pL< 12, maj´ı v line´arn´ı kryptoanal´yze stejnou v´ahu a d´ale se v tomto textu budou pojmem
”line´arn´ı“ myˇsleny oba dva vztahy.
2
Vstupn´ı i v´ystupn´ı text jsou definov´any jako vektory bit˚u.
3
2.5
Diferenci´
aln´ı kryptoanal´
yza
Diferenci´aln´ı kryptoanal´yza [7] vyuˇz´ıv´a vysokou pravdˇepodobnost spoleˇcn´eho v´yskytu roz-d´ıl˚u mezi dvˇema ˇsifrov´ymi texty na v´ystupu s rozd´ıly mezi dvˇema prost´ymi texty na vstupu. Napˇr´ıklad mˇejme syst´em se vstupem X = [X1X2. . . Xn] a v´ystupem Y = [Y1Y2. . . Yn].
Necht’ dva vstupy syst´emu jsouX0 aX00 s odpov´ıdaj´ıc´ımi v´ystupyY0 aY00. Vstupn´ı rozd´ıl je d´an ∆X=X0⊕X00 kde
”⊕“ reprezentuje bitov´y exkluzivn´ı souˇcet n-bitov´ych vektor˚u, a odtud ∆X= [∆X1∆X2. . .∆Xn] (2.6) kde ∆Xi =Xi0⊕X 00 i kdeX 0 i resp. X 00
i reprezentuje i-t´y bit X
0 resp. X00. Obdobnˇe pro
v´ystupy.
V ide´aln´ı ˇsifˇre4 je pravdˇepodobnost, ˇze se vyskytuje ˇc´asteˇcn´y rozd´ıl v´ystup˚u ∆Y pˇri dan´em ˇc´asteˇcn´em rozd´ılu vstup˚u ∆X, pD = 12
n
, kde n je poˇcet bit˚u v X. Diferenci´aln´ı kryptoanal´yza je pouˇziteln´a v pˇr´ıpadech, kde se ∆Y vyskytuje spoleˇcnˇe s ∆X s velmi velkou pD (napˇr., o hodnˇe vˇetˇs´ı neˇz 12
n
). Dvojice (∆X,∆Y) je naz´yv´ana jako diferenci´al. Diferenci´aln´ı kryptoanal´yza je tzv.
”chosen plaintext attack“, to znamen´a, ˇze si ´utoˇcn´ık m˚uˇze vybrat vstup a provˇeˇrit v´ystup v pokusu odvodit kl´ıˇc. V diferenci´aln´ı kryptoanal´yze, ´
utoˇcn´ık m˚uˇze vybrat dvojici vstup˚u X00 a X00 patˇr´ıc´ı k ∆X pˇri znalosti, ˇze se pˇri ∆Y s nejvˇetˇs´ı pravdˇepodobnost´ı vyskytuje ∆X.
Kapitola 3
Problematika S-box˚
u
3.1
Definice s-box˚
u
Substituˇcn´ı box (s-box) je ˇc´ast ˇsifry takov´a, ˇze jej´ım v´ystupem, jak jiˇz s´am n´azev n´azev napov´ıd´a, je substituovan´y vstup. Pr´avˇe na s-boxy b´yv´a pˇrenesena vˇetˇsina odpovˇednosti za neline´arnost a n´ahodnost v´ystupu cel´e ˇsifry. Bezpeˇcnost vˇetˇsiny blokov´ych ˇsifer (pˇredevˇs´ım tˇech na Feistelovˇe s´ıti) z´avis´ı na vlastnostech s-box˚u pouˇzit´ych v jednotliv´ych kolech. Ty budou pops´any n´ıˇze. Vˇetˇsinou se s-box zn´azorˇnuje jako
”krabiˇcka“ s jednotliv´ymi vstupy a v´ystupy, kde jsou vˇetˇsinou zn´azornˇeny jednotliv´e bity v poˇrad´ı a ˇc´ıslov´an´ı, jak je vidˇet na obr3.1.
x0 x1 x2 x3
y0 y1 y2 y3
s-box
4 x 4
Obr´azek 3.1: Sch´ema s-boxu
Form´alnˇe se s-box d´a definovat takto:
Definice 3.1. [12] n×m s-box S je zobrazen´ıS:{0,1}n→ {0,1}m. S m˚uˇze b´yt
reprezen-tov´an jako 2n m-bitov´a ˇc´ısla, oznaˇcen´a r0, . . . , r2n−1, v tom pˇr´ıpadˇeS(x) =rx ,0≤x <2n
a ri jsou ˇr´adky s-boxu. Alternativnˇe, S(x) = [cm1(x)cm2(x). . . c0(x)] kde ci je pevn´a
Boo-leovsk´a funkce ci:{0,1}n→ {0,1} ∀i; to jsou sloupce s-boxu.
Velikost s-box˚u se ˇcasto zapisuje jako n×m. Velk´e s-boxy [6] jsou obecnˇe pokl´ad´any za bezpeˇcnˇejˇs´ı neˇz mal´e, ale za cenu vˇetˇs´ı sloˇzitosti realizace a validace. S-boxy s mal´ym vstupem a velk´ym v´ystupem maj´ı velmi dobrou line´arn´ı aproximaci. U s-box˚u s dostateˇcnˇe vˇetˇs´ım v´ystupem neˇz vstupem je garantov´ana nejm´enˇe jedna perfektn´ı line´arn´ı aproximace.
3.2
Krit´
eria bezpeˇ
cnosti s-box˚
u
Krit´eria, jeˇz se daj´ı pouˇz´ıt jako1 heuristick´e ˇci hodnot´ıc´ı funkce, mohou b´yt pouˇzita k pro-hled´av´an´ı stavov´eho prostoru. T´emˇeˇr vˇsechny vych´azej´ı (ˇci maj´ı nˇejak´y vztah) z line´arn´ı a diferenci´aln´ı kryptoanal´yzy. Vych´azej´ı z moˇzn´ych ´utok˚u na ˇsifru, mohou b´yt r˚uznˇe mate-maticky dok´az´any odolnosti v˚uˇci tˇemto ´utok˚um, jin´ym se sp´ıˇse vˇeˇr´ı, ˇze funguj´ı.
3.2.1 SAC
Strict Avalanche Criterion [8] je zaloˇzen na tzv.
”lavinov´em efektu“. U s-box˚u se zkoum´a, kolik bit˚u v´ystupu se zmˇen´ı pˇri zmˇenˇe jednoho bitu vstupu. Pˇri vyzkouˇsen´ı zmˇeny jed-noho bitu u vˇsech moˇzn´ych vstup˚u, by pr˚umˇer zmˇen na v´ystupu mˇel b´yt polovina poˇctu v´ystupn´ıch bit˚u.
Definice 3.2(Avalanche efekt). Funkcef :{0,1}n→ {0,1}m ukazuje lavinov´y efekt pokud
a jen tehdy:
X
x∈{0,1}n
wt(f(x)⊕f(x⊕ci(n))) =m2n−1 (3.1)
pro ∀i : 1 ≤ i ≤ n, kde wt(x) je Hammingova v´aha2 a c(in) je n-dimenzion´aln´ı vektor s wt(c(in)) = 1 s nastavenou pozic´ıi.
Z Avalanche efektu je definov´ano SAC:
Definice 3.3 (SAC, SAC 0. ˇr´adu). Funkce f :{0,1}n → {0,1}m splˇnuje SAC, pokud pro
∀i: 1≤i≤nplat´ı tyto rovnice:
X
x∈{0,1}n
f(x)⊕f(x⊕c(in)) = (2n−1,2n−1, . . . ,2n−1) (3.2)
Kaˇzd´a funkce f splˇnuj´ıc´ı SAC je naz´yv´ana
”siln´y s-box“
Pokud funkce splˇnuje SAC, kaˇzd´y jej´ı v´ystupn´ı bit by se mˇel zmˇenit s poloviˇcn´ı pravdˇ e-podobnost´ı, pokaˇzd´e co je zmˇenˇen jeden vstupn´ı bit. Pokud nˇejak´y v´ystup z´avis´ı na pouze nˇekolika m´alo vstupn´ıch bitech, potom m˚uˇze ´utoˇcn´ık tˇechto vztah˚u vyuˇz´ıt k nalezen´ı kl´ıˇce. SAC bylo d´ale rozˇs´ıˇreno:
Definice 3.4 (SAC 1. ˇr´adu). Funkce f :{0,1}n → {0,1}m splˇnuje SAC 1. ˇr´adu pokud a
jen tehdy:
• f splˇnuje SAC 0. ˇr´adu
• kaˇzd´a funkce z´ıskan´a z f, tak ˇze zachov´av´a jedeni-t´y bit konstantn´ı a rovn´y c splˇnuje SAC pro kaˇzd´ei∈ {1,2, . . . , n} a c= 0 nebo c= 1.
Obecnˇe lze rozˇs´ıˇren´ı definovat rekurzivnˇe, a to aˇz do ˇr´aduk≤n−2:
Definice 3.5 (SAC k-t´eho ˇr´adu). Funkce f :{0,1}n → {0,1}m splˇnuje SAC k-t´eho ˇr´adu
ˇ C´ıslo funkce 00 01 10 11 1 0 0 0 1 2 0 0 1 0 3 0 1 0 0 4 1 0 0 0 5 0 1 1 1 6 1 0 1 1 7 1 1 0 1 8 1 1 1 0
Tabulka 3.1: Z´akladn´ı funkce splˇnuj´ıc´ı MOSAC [8]
SAC nejvyˇsˇs´ıho moˇzn´eho ˇr´adu k = n−2 m´a zvl´aˇstn´ı oznaˇcen´ı MOSAC3. V tabulce 3.1jsou v ˇr´adc´ıch uvedeny z´akladn´ı booleovsk´e funkce splˇnuj´ıc´ı MOSAC. Tyto funkce maj´ı 2-bitov´y vstup uveden´y ve sloupc´ıch a splˇnuj´ı SAC 0. ˇr´adu. Sloupce reprezentuj´ı vˇsechny kombinace vstup˚u. Jak je patrn´e, v´ystupy jsou u kaˇzd´e funkce u tˇrech bit˚u jsou stejn´e a jeden se liˇs´ı.
Vˇeta 3.1. Siln´y s-box nen´ı line´arn´ı ani afinn´ı. D˚ukaz. D˚ukaz je uveden v [8] na str. 25
3.2.2 Bent funkce
V [22] kombinatorice, je
”bent funkce“ zvl´aˇstn´ı typ booleovsk´e funkce.”Bent
4 funkce“ jsou
tak pojmenov´any protoˇze jsou odliˇsn´e od line´arn´ıch a afinn´ıch funkc´ı. Proto byly obs´ahle studov´any pˇredevˇs´ım pro jejich uplatnˇen´ı v kryptografii, aˇckoliv jejich spektrum aplikac´ı je ˇsirok´e i v teorii k´odov´an´ı a n´avrhu kombinaˇcn´ıch obvod˚u. Definice m˚uˇze b´yt rozˇs´ıˇrena v mnoha moˇznostech.
Definice 3.6. [8] Booleovsk´a funkce g(w) :{0,1}n → {0,1}, n= 2l, l∈ N je bent funkc´ı,
pokud kaˇzd´y koeficient Fourierovy transformace5 G(w)Walshovy funkce(−1)g(w)definovan´e pro vˇsechna w∈ {0,1}n G(w) = √1 2n X x∈{0,1}n (−1)g(x)+x·w (3.3) m´a jednotkovou velikost |G(w)|= 1 (3.4)
Vˇeta 3.2 (Vztah mezi bent funkcemi a funkcemi splˇnuj´ıc´ımi SAC). Necht’ An oznaˇcuje
mnoˇzinu vˇsech n-bitov´ych booleovsk´ych funkc´ı, Bn mnoˇzinu n-bitov´ych bent funkc´ı a Sn
mnoˇzinun-bitov´ych booleovsk´ych funkc´ı splˇnuj´ıc´ıch SAC. A obzvl´aˇst’ m˚uˇzeme oznaˇcit mno-ˇzinu n-bitov´ych booleovsk´ych funkc´ı splˇnuj´ıc´ıch MOSAC jako Smax
n . Vztah mezi tˇemito
mnoˇzinami pro sud´a n lze vyj´adˇrit jako
Snmax⊆ Bn⊆ Sn⊂ An (3.5)
1nebo podle nichˇz se daj´ı sestavit 2
poˇcet jedniˇckov´ych bit˚u
3z anglick´eho
”maximal order“
4
ˇcesky: kˇriv´e
5
n 2 3 4 5 6 |An| 16 256 65536 232 264 |Sn| 8 64 4128 ? ? |Bn| 8 – 896 – 232.3 |Smax n | 8 16 32 64 128
Tabulka 3.2: Velikost mnoˇzin z vˇety3.2[8]
D˚ukaz. D˚ukaz je uveden v [8] na str. 31
Toho lze vyuˇz´ıt k z´uˇzen´ı prohled´avac´ıho prostoru, pˇri hled´an´ı funkc´ı splˇnuj´ıc´ıch SAC. Pro s-boxy s v´ıce v´ystupy lze z definice 3.1 pˇredpokl´adat, ˇze kaˇzd´y v´ystup je booleovsk´a funkce a podle toho sestavit hodnot´ıc´ı funkci. Pro pˇredstavu jsou v tabulce 3.2 uvedeny velikost´ı nˇekter´ych mnoˇzin.
3.2.3 Nejvˇetˇs´ı odchylka z line´arn´ıch v´yraz˚u
K v´ypoˇctu nelinearity boolovsk´e funkce f m˚uˇzeme pouˇz´ıt vzorec z [8], zaloˇzen´y na Ha-mmingovˇe vzd´alenosti od mnoˇziny afinn´ıch funkc´ı a na Walshovˇe transformaci ˆF funkce
ˆ
f :{0,1}n→ {1,−1}, obdobnˇe jak u SAC:
ˆ f(x) = (−1)f(x) (3.6) ˆ F(w) = X x∈{0,1} f(x)·(−1)x·w (3.7) δ(f) = 2n−1−1 2wmax∈{0,1}| ˆ F(w)| (3.8)
Ale pro v´ıce v´ystup˚u bude jednoduˇsˇs´ı spoˇc´ıtat nejvˇetˇs´ı v´ychylku s-boxuq podle vzorce z [16] :
LPmax(q) = max
a,b6=0(2P rX[X·a=q(X)·b]−1) 2
(3.9) Tento vzorec je zaloˇzen na postupu, ˇze se nejprve vytvoˇr´ı se kompletn´ı tabulka ˇcetnost´ı vˇsech line´arn´ıch aproximac´ı odpov´ıdaj´ıc´ı tvaru rovnice2.5. ˇR´adky resp. sloupce odpov´ıdaj´ı jednotliv´ym parametr˚um a resp. b, ∀a, b kde 0 ≤ a < n a 0 ≤ b < m6, Kaˇzd´a buˇnka tabulky [7] reprezentuje pravdˇepodobnost v´yskytu (ˇci poˇcet shod) z line´arn´ım v´yrazem odpov´ıdaj´ıc´ımu parametr˚umaa b. A z nich se vybere nejvˇetˇs´ı linearita a ta se pak pouˇzije pˇri hled´an´ı s-boxu, kter´y m´a tuto maxim´aln´ı linearitu nejmenˇs´ı. Odchylka je ve vzorci normalizovan´a do intervalu h0,1i. Jak vypl´yv´a z textu uveden´eho v´yˇse, zaj´ımav´a je jej´ı velikost, ne znam´enko.
6
3.2.4 Nejvˇetˇs´ı pravdˇepodobnost z diferenci´al˚u
Pro v´ypoˇcet nejvˇetˇs´ı pravdˇepodobnosti diferenci´alu s-boxu q pouˇzijeme tento vzorec [16], vych´azej´ıc´ı z diferenci´aln´ı kryptoanal´yzy:
DPmax(q) = max
a6=0,bP rX[q(X⊕a)⊕q(X) =b] (3.10)
Tento vzorec je opˇet zaloˇzen na tabulce [7] poˇctu v´yskyt˚u (rozloˇzen´ı pravdˇepodobnosti) rozd´ıl˚u, ve kter´e kaˇzd´y ˇr´adek reprezentuje hodnoty ∆X =aa sloupce reprezentuj´ı hodnoty ∆Y =b. Kaˇzd´a buˇnka tabulky reprezentuje poˇcet pˇr´ıpad˚u, kdy je v´ystupn´ı rozd´ıl roven b, pokud je vstupn´ı rozd´ıla. Poznamenejme, ˇze napˇr´ıklad pˇr´ıpad vylouˇcen´y z v´ypoˇctu maj´ıc´ı parametry (a= 0,b= 0), m´a vˇzdy nejvˇetˇs´ı pravdˇepodobnost v tabulce, kter´a vˇsak nepatˇr´ı ke skuteˇcn´emu rozd´ılu. Obdobnˇe jako u krit´eriaLPmaxje nejvˇetˇs´ı pravdˇepodobnost pouˇzita z tabulky k minimalizaci. V [12] je toto krit´erium naz´yv´ano
”tabulka XOR“.
3.2.5 Faktor vˇetven´ı
Proces ˇsifrov´an´ı by mˇel k´odovanou informaci pokud moˇzno rozpt´ylit tak, aby prohled´avac´ı prostor byl pro ´utoˇcn´ıka co nejsloˇzitˇejˇs´ı. Pˇredstavme si prohled´avac´ı prostor ve tvaru stromu. Minim´aln´ı poˇcet n´asledovn´ık˚u kaˇzd´eho uzlu urˇcuje spodn´ı odhad sloˇzitosti prohled´av´an´ı, kter´y je na nˇem z´avisl´y exponenci´alnˇe.
Faktor vˇetven´ı (Branching Factor, Branch Number) pouˇz´ıvaj´ı v [4] jako hlavn´ı krit´erium v line´arn´ım kroku ˇsifry pojmenovan´em
”MixColumn“ po bajtech. Avˇsak nic nebr´an´ı tomu ji vyzkouˇset i na neline´arn´ı prvek po bitech. Necht’f je s-box dle3.1,wt(x) znaˇc´ı Hammingovu v´ahu. Faktor vˇetven´ı je m´ıra mocnosti rozpt´ylen´ı:
Definice 3.7. Faktor vˇetven´ı funkcef je
min
∆x6=0,x(wt(∆x) +wt(∆f(x))) (3.11)
∆f(x) =f(x)⊕f(x⊕∆x) (3.12)
Na vstupu a v´ystupu jsou ve skuteˇcnosti rozd´ıly, poˇc´ıt´a se minim´aln´ı souˇcet poˇctu zmˇen ve vstupu a v´ystupu dohromady. Toto krit´erium se pouˇzije k maximalizaci.
3.2.6 R´ˇad algebraick´eho polynomu
Funkci, jeˇz popisuje s-box, je moˇzn´e aproximovat nejen line´arn´ımi v´yrazy v GF(2) aritme-tice, ale i interpolovat polynomy v t´eto aritmetice pro kaˇzd´y v´ystupn´ı bit. Polynom pro jeden z bit˚u v´ystupuyi lze definovat pomoc´ı vzorce:
yi(x) = X a∈A n Y j=0 aj·zj (3.13)
Kde z0 pˇredstavuje 1, zj = xj−1 jsou jednotliv´e bity vstupu7, A je mnoˇzina parametr˚u urˇcuj´ıc´ıch (zap´ınaj´ıc´ıch jednotliv´e bity) polynomu. ˇR´adem polynomu pro jeden v´ystupn´ı bit je maxim´aln´ı Hammingova v´aha z mnoˇzinyA(bit pro jedniˇcku se nezahrnuje). Pro cel´y s-box je pak jako krit´erium pouˇziteln´y minim´aln´ı ˇr´ad z polynom˚u pro v´ystupy:
min 0≤i<mmaxa∈Ai
wt(a[1···n])
(3.14)
7
S-box 4×4 dan´y posloupnost´ı
[ 7 11 15 2 8 4 1 3 6 9 14 5 12 0 13 10 ] vyjadˇruj´ı tyto polynomy tˇret´ıho stupnˇe:
y0 = 1 +a∗b+c+b∗c+a∗b∗c+d+a∗d+a∗b∗d+c∗d+a∗c∗d(3.15)
y1 = 1 +c+a∗b∗c+a∗d+a∗c∗d (3.16)
y2 = 1 +a+c+a∗b∗c+a∗b∗d+c∗d (3.17)
y3 = a+b+c+a∗b∗c+b∗c∗d (3.18)
kde a = x0 je prvn´ı vstupn´ı bit atd., operace + a ∗ jsou definov´any v mod-2 aritmetice. A vyjadˇruj´ı jak moc jsou bity v´ystupu z´avisl´e na vstupn´ıch bitech. Pokud m´a polynom nejvyˇsˇs´ı moˇzn´y ˇr´ad, z´avis´ı v´ystupn´ı bit na vˇsech vstupech. Pro cel´y s-box je proto zvolen minim´aln´ı ˇr´ad ze vˇsech polynom˚u vyjadˇruj´ıc´ı v´ystupy. Jinou moˇznost´ı by mohl b´yt i poˇcet pouˇzit´ych promˇenn´ych, sˇc´ıt´an´ı vˇsak vypov´ıd´a o linearitˇe.
3.2.7 Bijektivita
Nˇekter´e kryptosyst´emy8 vyˇzaduj´ı, aby funkce, kterou reprezentuje s-box byla bijektivn´ı – tj. kaˇzd´y vstup byl zobrazen na unik´atn´ı v´ystup. ˇCehoˇz lze sice jednoduˇse dos´ahnout zak´odov´an´ım probl´emu jako permutace (viz d´ale), avˇsak pokud je chceme pouˇz´ıt jin´y typ re-prezentace, mus´ıme napˇr´ıklad bijektivitu stanovit jako dalˇs´ı krit´erium. V [8] je d´ale zm´ınˇeno omezen´ı skl´ad´an´ı bijektivn´ıho s-boxu z booleovsk´ych funkc´ı splˇnuj´ıc´ıch MOSAC. Mˇejme bi-jektivn´ı funkcif :{0,1}n→ {0,1}n, kaˇzd´a line´arn´ı kombinace booleovsk´ych funkc´ı z nichˇz
je sloˇzena mus´ı m´ıt Hammingovu v´ahu rovnu polovinˇe moˇzn´ych v´ystupn´ıch kombinac´ı: wt(
n
X
i=1
aifi) = 2n−1 (3.19)
Jin´ymi slovy ˇreˇceno: vˇsechny line´arn´ı odchylky, dle v´yrazu 2.5 neobsahuj´ıc´ı vstupn´ı bity, mus´ı b´yt nulov´e.
3.2.8 Dalˇs´ı krit´eria
Mezi dalˇs´ı krit´eria, kter´a nebyla d´ale pouˇzita, patˇr´ı napˇr´ıklad invertibilita funkce f. Nebo napˇr´ıklad krit´erium BIC (nez´avislost bit˚u) z [12] ˇci
”Cross Correlation of Avalanchne Vari-ables“ z [8]. Obˇe vych´azej´ı z avalanche efektu.
V tabulce3.4jsou jednotliv´a pouˇzit´a krit´eria srovn´ana. Jsou zde uvedeny mezn´ı hodnoty jednotliv´ych krit´eri´ı. Nˇekter´e z nich jsou z´avisl´e od poˇctu vstup˚u a v´ystup˚u. U dvou z nich je hled´ana minim´aln´ı hodnota. Hvˇezdiˇckou jsou oznaˇceny teoretick´e hodnoty, kter´e nelze prakticky dos´ahnout.
Krit´erium uprava´ minim´aln´ı hodnota maxim´aln´ı hodnota druh opti- mali-zace bent sk´ore poˇcet w jejichˇz
|G(w)|= 1
0 m·2n max
ˇr´ad SAC -1 n−2 max
diferencial probability * 21n 1 min
linear bias probability * 0 1 min
ˇr´ad algebraick´eho polynomu 0 n max
branch faktor 0 m+ 1 max
bijektivn´ı sk´ore obdobn´e bent sk´ore
0 m·2n max
Tabulka 3.4: Srovn´an´ı jednotliv´ych krit´eri´ı bezpeˇcnosti Vnˇejˇs´ı bity Vnitˇrn´ı 4 bity vstupu
0000 0001 0010 0011 0100 0101 0110 0111 00 0010 1100 0100 0001 0111 1010 1011 0110 01 1110 1011 0010 1100 0100 0111 1101 0001 10 0100 0010 0001 1011 1010 1101 0111 1000 11 1011 1000 1100 0111 0001 1110 0010 1101 1000 1001 1010 1011 1100 1101 1110 1111 00 1000 0101 0011 1111 1101 0000 1110 1001 01 0101 0000 1111 1010 0011 1001 1000 0110 10 1111 1001 1100 0101 0110 0011 0000 1110 11 0110 1111 0000 1001 1010 0100 0101 0011
Tabulka 3.5: DES s-boxS5
3.3
Pˇ
r´ıklady dalˇ
s´ıho uˇ
zit´ı s-box˚
u
S-boxy jsou pops´any pro mnoho ˇsifer. N´asleduj´ı pˇr´ıklady nejzn´amˇejˇs´ıch z nich:
3.3.1 S-box v DES
U DESu [26] se pouˇz´ıvaj´ı s-boxy 6×4. Dobr´ym pˇr´ıkladem je s-boxS5uveden´y v tabulce3.5: Pro 6-bitov´y vstup je 4-bitov´y v´ystup urˇcen vybr´an´ım ˇr´adku pouˇzit´ım dvou vnˇejˇs´ıch bit˚u (prvn´ı a posledn´ı), sloupec je urˇcen vnitˇrn´ımi ˇctyˇrmi bity. Napˇr. vstup
”011011“ m´a vnˇejˇs´ı bity
”01“ a vnitˇrn´ı”1101“. Odpov´ıdaj´ıc´ı v´ystup je”1001“. Osm s-box˚u algoritmu DES bylo pˇred mnoha lety pˇredmˇetem intenzivn´ıho studia s podezˇren´ım na zadn´ı vr´atka, zranitelnost zn´am´a pouze jeho tv˚urc˚um, kter´a by mohla b´yt um´ıstˇena v ˇsifˇre. Krit´eria n´avrhu s-box˚u byla nakonec zveˇrejnˇena (Don Coppersmith, 1994), po znovuobjeven´ı diferenci´aln´ı krypto-anal´yzy, pˇriˇcemˇz byly peˇclivˇe vylepˇseny v odolnosti v˚uˇci tomuto ´utoku. Pozdˇejˇs´ı v´yzkum uk´azal, ˇze pr´avˇe tyto mal´e zmˇeny mohly znaˇcnˇe zeslabit DES.
3.3.2 S-box v AES
ˇ
Sifra Rijndeal[4,25] pouˇz´ıv´a s-boxy ve f´azi zvan´e
”ByteSub“. Zde se jedn´a o s-boxy 8×8, tj. bajt na bajt. Byl navrˇzen s ohledem na odolnost v˚uˇci line´arn´ı a diferenci´aln´ı kryptoanal´yze, aby mˇel nejvyˇsˇs´ı stupeˇn polynomu byl invertibiln´ı a jednoduˇse popsateln´y. Proto vybrali n´asleduj´ıc´ı afinn´ı transformaci, modul´arn´ı n´asoben´ı n´asledovan´e sˇc´ıt´an´ım:
b(x) = (x7+x6+x2+x) +a(x)(x7+x6+x5+x4+ 1) modx8+ 1 (3.20) Pˇriˇcemˇz (b(a)6=a) a (b(a)6= ¯a).
S-boxy v Twofish
Zde [16] pouˇz´ıvaj´ı 8×8 ke konstrukci 8×32. Tyto mal´e s-boxy urˇceny pomoc´ı n´ahodn´eho prohled´av´an´ı, pˇri kter´em hledali permutace s LPmax≤ 161 a DPmax≤ 25610.
Kapitola 4
Evoluˇ
cn´ı algoritmy
Evoluˇcn´ı algoritmy jsou informovan´e metody prohled´av´an´ı stavov´eho prostoru, kter´e [17] jsou zaloˇzeny na metafoˇre evoluce v pˇr´ırodˇe. ˇReˇsen´ı nˇejak´e ´ulohy je pˇrevedeno na proces evoluce populace n´ahodnˇe vygenerovan´ych ˇreˇsen´ı. Kaˇzd´e ˇreˇsen´ı je zak´odov´ano do ˇretˇezce symbol˚u (parametr˚u) a ohodnoceno tzv. fitness funkc´ı, kter´a vyjadˇruje kvalitu ˇreˇsen´ı – ˇ
c´ım je hodnota vˇetˇs´ı t´ım je dan´e ˇreˇsen´ı perspektivnˇejˇs´ı a ˇcastˇeji vstupuje do reprodukˇcn´ıho procesu bˇehem nˇehoˇz jsou generov´ana nov´a ˇreˇsen´ı. Populace ˇreˇsen´ı se bˇeˇznˇe naz´yv´a populac´ı individu´ı nebo chromoz´om˚u. Reprodukˇcn´ı proces je zaloˇzen na dvou hnac´ıch sil´ach:
• variaˇcn´ı oper´atory kˇr´ıˇzen´ı a mutace, kter´e pˇrin´aˇsej´ı rozmanitost populace/diverzitu
• selekce, kter´a upˇrednostˇnuje kvalitn´ı jedince
Kombinace variace a selekce pˇrisp´ıv´a obecnˇe ke zlepˇsen´ı fitness funkce jedinc˚u v novˇe se tvoˇr´ıc´ı populaci. V procesu kˇr´ıˇzen´ı jedinc˚u, tak jako v ˇziv´e pˇr´ırodˇe jsou nov´a indivi-dua/potomci z´ısk´av´ana kˇr´ıˇzen´ım vˇetˇsinou dvojic rodiˇcovsk´ych individu´ı. Vˇsechny kompo-nenty evoluˇcn´ıho procesu jsou stochastick´e ˇcastˇeji napˇr. vstupuj´ı do reprodukˇcn´ıho procesu p´ary s lepˇs´ı fitness funkc´ı, ale i slabˇs´ı jedinci maj´ı ˇsanci vstoupit do reprodukˇcn´ıho procesu. Nejprve jsou na nejrozˇs´ıˇrenˇejˇs´ım typu evoluˇcn´ıho algoritmu uk´az´any z´akladn´ı pojmy. U dalˇs´ıch algoritm˚u jsou uvedeny jiˇz jen odliˇsnosti.
4.1
Genetick´
y algoritmus
Chromoz´om (jedinec/individuum) k´oduj´ıc´ı ˇreˇsen´ı je reprezentov´an bin´arn´ım vektorem (ˇ re-tˇezcem) konstantn´ı d´elkyn:
~
X = (X0, X1, . . . , Xn−1), kde Xi je i- tou promˇennou ˇretˇezce
~
x= (x0, x1, . . . , xn−1) je ˇretˇezec konkr´etn´ıch instanc´ı promˇenn´ych Xi=xi, xi∈ {0,1}
D= (X1, X2, . . . , XN), Xj ∈Dje mnoˇzinaN ˇretˇezc˚u, kter´a specifikuje populaciD D⊆ {0,1}n.
Necht’ f je ´uˇcelov´a/cenov´a funkce definovan´a nad mnoˇzinou bin´arn´ıch vektor˚u d´elky n
kter´a ohodnot´ı kaˇzd´y bin´arn´ı vektor ~x re´aln´ym ˇc´ıslem. C´ılem je nal´ezt glob´aln´ı extr´em funkcef. V pˇr´ıpadˇe minimalizaˇcn´ı ´ulohy jde o nalezen´ı vektoru
~
xopt = arg min ~ x∈{0,1}n
f(~x) (4.2)
Funkcef se zpravidla transformuje na funkci v´yhodnostiF(fitness funkci) tak, aby p˚uvodn´ı optimalizaˇcn´ı ´uloha byla pˇrevedena na maximalizaˇcn´ı ´ulohu a bylo dosaˇzeno vhodn´eho mˇeˇr´ıtka fitness funkce. Uˇzit´ı t´eto transformace usnadˇnuje tak´e zmˇenu selekˇcn´ıho tlaku, kter´y v´yraznˇe ovlivˇnuje konvergenci evoluˇcn´ıho procesu. ˇCinnost standardn´ıho GA algo-ritmu popisuje algoalgo-ritmus4.1.
Algoritmus 4.1(Pseudok´od genetick´eho algoritmu).
Nastavt= 0, n´ahodnˇe generuj poˇc´ateˇcn´ı populaci D(0) s mohutnost´ıN,
whilenen´ı splnˇena podm´ınka pro ukonˇcen´ı algoritmu do
Proved’ ohodnocen´ı jedinc˚u populace D(t) fitness funkc´ıF(X),
Generuj populaci potomk˚u O(t) s mohutnost´ı M ≤ N pouˇzit´ım oper´ator˚u kˇr´ıˇzen´ı a mutace,
Vytvoˇr novou populaciD(t+ 1) nahrazen´ım ˇc´asti populace D(t) jedinci z O(t), Nastavt←t+ 1,
end while
V procesu reprodukce jsou vˇetˇsinou kvazin´ahodnˇe vyb´ır´any dvojice rodiˇcovsk´ych je-dinc˚u pro n´asledn´e kˇr´ıˇzen´ı a mutaci. ˇC´ast jedinc˚u z populace potomk˚u se potom pouˇzije pro nahrazen´ı jedinc˚u p˚uvodn´ı populace D(t) a takto z´ısk´ame novou populaci D(t+ 1). Ukonˇcen´ı evoluˇcn´ıho procesu je bud’ d´ano maxim´aln´ım poˇctem generac´ı nebo detekc´ı stag-nace v´yvojov´eho procesu. Genetick´y algoritmus m˚uˇze m´ıt nˇekolik typ˚u kˇr´ıˇzen´ı a mutace. Nˇekter´e oper´atory b´yvaj´ı navrˇzeny podle typu ˇreˇsen´e ´ulohy. Mutace je vˇetˇsinou prove-dena inverz´ı bitu/˚u na n´ahodn´ych pozic´ıch. Kˇr´ıˇzen´ı m˚uˇze b´yt napˇr´ıklad jednobodov´e ˇci dvoubodov´e. Po vybr´an´ı dvou rodiˇc˚u se nejprve se zvol´ı bod(y), ve kter´em se chromoz´om obou rodiˇc˚u rozdˇel´ı na dvˇe ˇc´asti. Vznikaj´ı dva potomci. Prvn´ı z nich je sloˇzen z prvn´ı ˇc´asti prvn´ıho rodiˇce a z druh´e ˇc´asti druh´eho rodiˇce. A chromoz´om druh´eho potomka je poskl´ad´an ze zb´yvaj´ıc´ıch ˇc´ast´ı. Selekce m˚uˇze prob´ıhat:
• turnajem meziN n´ahodnˇe vybran´ymi jedinci,
• proporcion´alnˇe (pod´ıl fitness jedince na souˇctu fitness vˇsech jedinc˚u) neboli tzv. ruleta
• line´arn´ım uspoˇr´ad´an´ım (pravdˇepodobnost v´ybˇeru je line´arn´ı funkc´ı pozice po seˇrazen´ı populace podle fitness)
• exponenci´aln´ım uspoˇr´ad´an´ım (jako line´arn´ı, leˇc pravdˇepodobnost je z´avisl´a expo-nenci´alnˇe)
4.2
Genetick´
e programov´
an´ı
Nej-Genetick´e oper´atory pracuj´ı nad spustiteln´ymi strukturami. Kromˇe bˇeˇzn´ych oper´ator˚u (jako jsou kˇr´ıˇzen´ı a mutace) existuje ˇrada pokroˇcil´ych oper´ator˚u umoˇzˇnuj´ıc´ıch gene-rovat programy s podprogramy, moduly atd.
Evaluace V r´amci zjiˇstˇen´ı fitness hodnoty je proveden k´od kandid´atn´ıho programu (obecnˇe spustiteln´e struktury) pro definovanou mnoˇzinu vstup˚u a jsou vyhodnoceny z´ıskan´e v´ysledky.
Zat´ımco v obecn´em genetick´em programov´an´ı doch´az´ı k prohled´av´an´ı v prostoru ˇreˇsen´ı, kter´y se v pr˚ubˇehu evoluce mˇen´ı, v tomto textu se budeme zab´yvat pouze statick´ym stavov´ym prostorem. V genetick´em programov´an´ı lze navrhnout libovolnou spustitelnou strukturu, kter´a nejl´epe vystihuje ˇreˇsen´y probl´em. A k t´eto struktuˇre navrhnout vlastn´ı oper´atory.
4.2.1 Kart´ezsk´e genetick´e programov´an´ı
Kart´ezsk´e genetick´e programov´an´ı (CGP) [20] lze ch´apat jako variantu genetick´eho progra-mov´an´ı, kter´a v reprezentaci ˇreˇsen´eho probl´emu pouˇz´ıv´a acyklick´y graf s pevn´ym poˇctem uzl˚u. Kaˇzd´y z uzl˚u m˚uˇze realizovat jednu z nˇekolika pevnˇe dan´ych funkc´ı a m˚uˇze b´yt spojen na v´ystup nˇekter´eho z pˇredeˇsl´ych uzl˚u. Konektivitu ovlivˇnuje tzv. l-back parametr. Chro-mozom je urˇcit´a posloupnost celoˇc´ıseln´ych hodnot maj´ıc´ı fixn´ı d´elku. V tom lze spatˇrovat dˇelen´ı na genotyp a fenotyp jako u klasick´ych GA. Algoritmus pouˇz´ıvan´y v CGP odpov´ıd´a evoluˇcn´ı strategii (1 +L), kde hodnota L se pohybuje ˇr´adovˇe v jednotk´ach. Pouˇz´ıv´a se pouze oper´ator mutace.
K´odov´an´ı ˇreˇsen´eho probl´emu
Chromozom je sloˇzen zm·ntrojic (m- poˇcet sloupc˚u,n- poˇcet ˇrad) celoˇc´ıseln´ych hodnot, kde prvn´ı dvˇe hodnoty ud´avaj´ı ˇc´ıslo v´ystupu, na kter´y je pˇripojen prvn´ı a druh´y vstup trojici pˇr´ısluˇsej´ıc´ıho elementu, tˇret´ı hodnota ud´av´a jakou logickou funkci element realizuje. Na konci chromozomu je o-tice o velikosti shodn´e s poˇctem v´ystup˚u hledan´eho obvodu. Kaˇzd´y prvek o-tice urˇcuje index elementu (jeho v´ystupu), na kter´y bude prim´arn´ı v´ystup obvodu pˇripojen. Dalˇs´ımi parametry jsoui- poˇcet vstup˚u,l- l-back,F - mnoˇzina funkc´ı.
Uvaˇzujme n´asleduj´ıc´ı tvar chromozomu, odpov´ıdaj´ıc´ı jednoduch´e booleovsk´e funkci1, splˇnuj´ıc´ı SAC:
{2,1,2,2,2,1,3}([2]1,1,8)([3]0,0,7)([4]1,3,0)([5]3,2,8)(5)
Tvar chromoz´omu je vysvˇetlen v pˇr´ılozeA. Na obr´azku 4.1je tento chromoz´om zn´azornˇen v grafov´e podobˇe.
Programov´a implementace
Bˇehem [11] generov´an´ı nov´ych jedinc˚u nebo pˇri mutaci mus´ı b´yt splnˇeno nˇekolik podm´ınek, aby chromoz´om reprezentoval spr´avn´y program. Necht’cnkj reprezentuje genk-t´eho vstupu
0 4 8 2 7 3 8 5 0 1 0
Obr´azek 4.1: Pˇr´ıklad jednoduch´e Booleovsk´e funkce splˇnuj´ıc´ı SAC nalezen´e kart´ezsk´ym genetick´ym programov´an´ım
ve sloupcij (nejlevˇejˇs´ı sloupec m´a j= 0), potom mus´ı splˇnovat tato omezen´ı:
ckj < emax pokud j < l (4.3) emin ≤ckj < emax pokud j ≥l (4.4)
emin=i+ (j−l)n (4.5)
emax=i+jn (4.6)
Necht’ cok reprezentuje genk-t´eho v´ystupu cel´eho obvodu, pak pro nˇej plat´ı tato omezen´ı:
hmin ≤cok< hmax (4.7)
hmin=i+ (m−l)n (4.8)
hmax=i+ (m−1)n (4.9)
Necht’ cfk reprezentuje gen funkcek-t´eho uzlu, pak:
cfk∈F (4.10)
Z tˇechto podm´ınek je patrn´a i skuteˇcnost, ˇze realizace kˇr´ıˇzen´ı, pˇri, kter´em by bylo nutn´e dodrˇzet tyto podm´ınky, by byla komplikovanˇejˇs´ı a i proto se radˇeji nepouˇz´ıv´a.
4.3
EDA
[17] Bˇehem operace kˇr´ıˇzen´ı klasick´eho genetick´eho algoritmu doch´az´ı k rozb´ıjen´ı stavebn´ıch blok˚u. Tato skuteˇcnost je ˇcastou pˇr´ıˇcinou ˇspatn´e konvergence optimalizaˇcn´ıho procesu. Proto byly navrˇzeny algoritmy, kter´e se tento probl´em snaˇz´ı vyˇreˇsit pomoc´ı glob´aln´ıho pohledu na celou populaci. V cel´e populaci jsou spoˇcteny statistiky v´yskyt˚u a z´avislost´ı alel na jednotliv´ych pozic´ıch. Podle tˇechto statistik jsou n´aslednˇe generov´ani jedinci nov´ı. Tyto algoritmy jsou souhrnnˇe naz´yv´any EDA – Estimation of Distribution Algorithm.
mnoˇzina potomk˚u O(t) s mohutnost´ı M < N (vzorkov´an´ım z´ıskan´eho rozloˇzen´ı). Nov´a populace D(t+ 1) je vytvoˇrena nahrazen´ım ˇc´asti populaceD(t) jedinci z O(t).
Fundament´aln´ım probl´emem je odhad pravdˇepodobnostn´ıho rozloˇzen´ıp(X|Ds(t)). Z te-orie je zn´am vztah pro sdruˇzen´e rozloˇzen´ı pravdˇepodobnosti n´ahodn´eho vektoru pomoc´ı lok´aln´ıch pravdˇepodobnostn´ıch rozloˇzen´ı s vyuˇzit´ım podm´ınˇen´ych pravdˇepodobnost´ı:
p(X) =
n−1
Y
i=0
p(Xi|X0, X1, . . . , Xi−1) (4.11)
A pr´avˇe v tomto v´ypoˇctu (sloˇzitosti pravdˇepodobnostn´ıho modelu) se EDA algoritmy dˇel´ı na v´ıce druh˚u, kter´e jsou uvedeny n´ıˇze.
4.3.2 UMDA
UMDA (Univariate Marginal Distribution Algorithm) pouˇz´ıv´a nejjednoduˇsˇs´ı statistick´y mo-del. Pˇredpokl´ad´a, ˇze lokusy jsou navz´ajem nez´avisl´e, v´yskyt allel na kaˇzd´e pozici je ˇr´ızen distribuˇcn´ı funkc´ı. Necht’ se populace P o velikosti N skl´ad´a z chromozom˚u d´elky n. Pro kaˇzd´y lokus i∈ {0..n−1}a kaˇzdou alleluxi∈ {0, . . . , ri−1} definujemepi(xi) jako ˇcetnost
v´yskytu ˇretˇezc˚u, kter´e maj´ıxi na i-t´e pozici v mnoˇzinˇe P.
pi(xi) =
ni(xi)
N (4.12)
Pravdˇepodobnost, se kterou bude vygenerov´an algoritmem UMDA nov´y jedinec X = a1a2. . . an−1 pak mus´ı b´yt p(X) = n−1 Y i=0 pi(ai) (4.13)
Tedy nejprve jsou z populace slibn´ych ˇreˇsen´ı na kaˇzd´e pozici vypoˇc´ıt´any ˇcetnosti r˚uzn´ych allel, pot´e je pro kaˇzd´e nov´e individuum bit na i-t´e pozici nastaven na hodnotu a s prav-dˇepodobnost´ıpi(a). Graf z´avislosti odpov´ıdaj´ıc´ı UMDA algoritmu neobsahuje ˇz´adn´e hrany
(E =∅).
4.3.3 BMDA
Kromˇe nez´avisl´ych lokus˚u algoritmus BMDA (Bivariate Marginal Distribution Algorithm) pˇripouˇst´ı i podvojn´e z´avislosti mezi lokusy, kter´e jsou zjiˇst’ov´any statistick´ymi testy. Pro generov´an´ı hodnot na z´avisl´ych pozic´ıch je vyuˇz´ıv´an apar´at podm´ınˇen´e pravdˇepodobnosti. Opˇet uvaˇzujeme populaci P o velikosti N s chromozomy d´elky n. Pro kaˇzd´e dvˇe pozice i6=j ∈ {0..n−1}a kaˇzd´e dvˇe moˇzn´e allely xi ∈ {0, . . . , ri−1},xj ∈ {0, . . . , rj−1}na tˇechto pozic´ıch definujemepi,j(xi, xj) jako ˇcetnost v´yskytu ˇretˇezc˚u s hodnotamixiaxjna pozic´ıch
ia j:
pi,j =
ni,j(i, j)
N (4.14)
Podm´ınˇen´a pravdˇepodobnost
pi,j(xi|xj) =
pi,j(xi, xj)
pj(xj)
(4.15) je pak odhadov´ana z ˇcetnosti v´yskytu allely xi na pozici i v pˇr´ıpadech, kdy je xj na
gen je z´avisl´y maxim´alnˇe na jednom jin´em genu. Nˇekter´e skupiny gen˚u mohou b´yt zcela nez´avisl´e, pak m´a graf podobu mnoˇziny strom˚u. Pravdˇepodobnost generov´an´ı jedinceX = a1a2. . . an−1 pak je p(X) = Y j∈R p(aj) Y (i,j)∈E p(aj|ai) (4.16)
kdeR resp. E je mnoˇzina koˇrenov´ych uzl˚u (tedy nez´avisl´e promˇenn´e) resp. hran grafu G. K testov´an´ı nez´avislosti kvalitativn´ıch znak˚u se ve statistice pouˇz´ıv´a rozdˇelen´ıχ2
χ2 =Xreal value−expected value
expected value (4.17)
V naˇsem pˇr´ıpadˇe se jedn´a o testov´an´ı nez´avislosti obsah˚u dvou lokus˚u:
χ2i,j = ri−1 X xi=0 rj−1 X xj=0 (N pi,j(xi, xj)−N pi(xi)pj(xj))2 N pi(xi)pj(xj) (4.18)
kde ri je poˇcet r˚uzn´ych allel na lokusu i, rj poˇcet r˚uzn´ych allel na lokusu j (u bin´arn´ıch
chromozom˚u r = s = 2). Tento vzorec vych´az´ı z pˇredpokladu, ˇze pro v´yskyt hodnot na nez´avisl´ych pozic´ıch mus´ı podle teorie pravdˇepodobnosti platit pi,j(xi, xj) = pi(xi)pj(xj).
Pro vˇsechny dvojice lokus˚u jsou pˇri pr˚uchodu populac´ı sestaveny kontingenˇcn´ı tabulky. S pomoc´ı tˇechto tabulek je pak pomoc´ıχ2-testu vytvoˇrena mnoˇzina z´avisl´ych dvojic, kter´a je uspoˇr´ad´ana podle hodnoty χ2. Dva bin´arn´ı lokusy jsou z´avisl´e na 95%, pokud hodnota χ2 je vˇetˇs´ı neˇz 3,84. Z mnoˇziny z´avisl´ych dvojic je utvoˇren strom z´avislost´ı, kter´y je pak pouˇzit ke generov´an´ı nov´ych jedinc˚u.
Dalˇs´ı varianty EDA algoritm˚u (napˇr. BOA) z d˚uvod˚u uveden´ych n´ıˇze nebyly pouˇzity.
4.4
Multikriteri´
aln´ı optimalizace
´
Uloha hled´an´ı s-box˚u m˚uˇze b´yt zaloˇzena na v´ıce krit´eri´ıch, kter´e mohou j´ıt proti sobˇe. V mul-tikriteri´aln´ı optimalizaci nehled´ame prost´e optimum jako v jednokriteri´aln´ı, ale snaˇz´ıme se naj´ıt vhodn´y kompromis pˇri optimalizaci jednotliv´ych krit´eri´ı. Form´alnˇe tedy hled´ame vek-tor parametr˚u~x∗= [x∗1, x∗2, . . . , x∗n]T kter´y:
• splˇnuje m omezen´ı:gi(~x)≤0, i= 1,2, . . . , m
• splˇnuje p omezen´ı:hi(~x) = 0, i= 1,2, . . . , p
• bude optimalizovat funkci:f(~x) = (f1(~x), f2(~x), . . . , fp(~x))
Z toho d˚uvodu bylo tˇreba tento probl´em zahrnout do evoluˇcn´ıch algoritm˚u. K tomuto ´uˇcelu bylo navrˇzeno nˇekolik postup˚u.
4.4.1 Pareto optimum
• Vektor~apak slabˇe dominuje nad~b, kdyˇz plat´ı pouze prvn´ı podm´ınka
• Na z´akladˇe Pareto dominance lze definovat pojem
”Pareto Optimum“: Vektor~a je Pareto optim´aln´ı pokud neexistuje ˇz´adn´y vektor~btakov´y, kter´y dominuje vektoru~a. Jin´ymi slovy: vektor~aje Pareto optim´aln´ı, pokud v rozhodovac´ım prostoru neexistuje ˇz´adn´y vektor~b, kter´y by sn´ıˇzil nˇejak´e krit´erium bez toho, aniˇz by zp˚usobil soubˇeˇzn´e zv´yˇsen´ı alespoˇn jednoho dalˇs´ıho krit´eria.
• Tento koncept n´am ale ned´av´a jen jedin´e ˇreˇsen´ı, ale vˇetˇsinou celou mnoˇzinu ˇreˇsen´ı, tzv. Pareto optim´aln´ı mnoˇzinu ˇreˇsen´ı (Pareto optimalset).
• Vektory ~a, kter´e jsou i v Pareto optim´aln´ı mnoˇzinˇe (POS) jsou naz´yv´any nedo-minantn´ımi. Kˇrivka/hyperplocha veden´a tˇemito nedominantn´ımi vektory z POS se naz´yv´a Paretova fronta.
• Reˇˇ sen´ım MOP je pak libovoln´y bod z Paretovy fronty
4.4.2 Algoritmus VEGA
VEGA je nejjednoduˇsˇs´ı moˇzn´y multikriteri´aln´ı GA. Pro nˇekolik krit´eri´ı (znaˇc´ımeM) mus´ı b´yt ˇr´ızeno dˇelen´ı GA populace v kaˇzd´e generaci doM stejn´ych podskupin n´ahodnˇe. Kaˇzd´e podskupinˇe je pˇridˇelena fitness funkce zaloˇzen´a na kriteri´aln´ı funkci, odliˇsn´e pro kaˇzdou podskupinu. Populace je v kaˇzd´e generaci rozdˇelena na M stejn´ych d´ıl˚u. Kaˇzd´emu jedinci v prvn´ı podskupinˇe je pˇridˇelena fitness funkce zaloˇzen´a jen na prvn´ı kriteri´aln´ı funkci, zat´ımco kaˇzd´emu jedinci ve druh´e podskupinˇe je pˇridˇelena fitness funkce podle druh´e kri-teri´aln´ı funkce, a tak d´ale. Je lepˇs´ı prom´ıchat populac´ı pˇredt´ım, neˇz je rozdˇelena do pod-skupin. Pro kaˇzd´e ˇreˇsen´ı je pˇridˇelen´a fitness funkce, v´ybˇerov´y oper´ator, vyhrazen´y mezi ˇreˇsen´ımi kaˇzd´e podskupiny. V´ybˇerov´y oper´ator je aplikov´an do t´e doby, neˇz je kompletn´ı podskupina naplnˇena. Od t´e chv´ıle maj´ı vˇsichni jedinci v podskupinˇe pˇridˇelen´e fitness funkce zaloˇzen´e na jednotliv´e kriteri´aln´ı funkci. Ta omezuje operaci v´ybˇeru jen uvnitˇr podskupiny a zd˚urazˇnuje dobr´a ˇreˇsen´ı odpov´ıdaj´ıc´ı t´e kter´e jednotliv´e kriteri´aln´ı funkci. Ve VEGA je v podpopulac´ıch vyuˇz´ıv´an proporcion´aln´ı v´ybˇerov´y oper´ator.
4.4.3 Algoritmus SPEA
Tento algoritmus [17,19] udrˇzuje extern´ı elitn´ı populaciPe. Tato populace obsahuje pevn´e
mnoˇzstv´ı nedominovan´ych ˇreˇsen´ı, kter´e byli nalezeny od zaˇc´atku evoluce. V kaˇzd´e generaci jsou novˇe nalezen´a nedominovan´a ˇreˇsen´ı srovn´av´ana s existuj´ıc´ı extern´ı populac´ı a v´ysledn´e nedominuj´ıc´ı ˇreˇsen´ı jsou uchov´ana. SPEA dˇel´a v´ıce, neˇz jen uchov´av´a elitu. Tak´e uˇz´ıv´a tuto elitu k ´uˇcasti na genetick´ych operac´ıch spolu s nynˇejˇs´ı populac´ı.
Tento algoritmus zaˇc´ın´a s n´ahodnˇe vytvoˇrenou populac´ıP0velikostiNa pr´azdn´a extern´ı populace P0e s maxim´aln´ı kapacitou Ne. V kaˇzd´e generaci t, jsou nejlepˇs´ı nedominovan´a
ˇreˇsen´ı (patˇr´ıc´ı prvn´ı nedominovan´e frontˇe) z populace Pt kop´ırov´ana do extern´ı populace
Pte. Dominovan´a ˇreˇsen´ı v upraven´e extern´ı populaci jsou nalezena a odstranˇena z t´eto
po-pulace. V extern´ı populaci z˚ust´avaj´ı nejlepˇs´ı nedominovan´a ˇreˇsen´ı kombinovan´e populace obsahuj´ıc´ı star´e a nov´e elity. Za ´uˇcelem omezen´ı pˇrer˚ust´an´ı populace, je velikost extern´ı po-pulace v´az´ana na limitNe. Pokud velikost populace je rovn´a velikosti extern´ı populace, jsou
vˇsechna ˇreˇsen´ı obsaˇzena i v extern´ı populaci. Nicm´enˇe, pokud velikost populace pˇrekraˇcuje Ne, ne vˇsechny elity mohou b´yt um´ıstˇeny v extern´ı populaci. Elitn´ı jedinci, kteˇr´ı jsou v m´enˇe
pˇreplnˇen´ych regionech v nedominovan´e frontˇe, jsou uloˇzeni. Jakmile jsou nov´e elity ucho-van´e pro dalˇs´ı generaci, algoritmus se obr´at´ı na nynˇejˇs´ı populaci a za vyuˇzit´ı genetick´ych oper´ator˚u, nalezne populaci novou. Prvn´ı krok je pˇriˇradit fitness ke kaˇzd´emu ˇreˇsen´ı v po-pulaci (i extern´ı). Ve skuteˇcnosti se v algoritmu SPEA nejprve pˇridˇeluje fitness (s´ıla)Si ke
kaˇzd´emu ˇclenuiz extern´ı populace. S´ılaSi je ´umˇern´a poˇctu nynˇejˇs´ıch ˇclen˚u populace (ni),
kteˇr´ı extern´ımu ˇreˇsen´ıi dominuj´ı:
Si =
ni
N + 1 (4.19)
T´ım je zajiˇstˇeno, ˇze vˇetˇs´ı s´ılu m´a elita, kter´a ovl´ad´a v´ıce ˇreˇsen´ı v aktu´aln´ı populaci. Dˇelen´ı hodnotou (N+ 1) zabezpeˇc´ı, ˇze maxim´aln´ı hodnota s´ıly libovoln´eho ˇclenu extern´ı populace bude vˇzdy menˇs´ı neˇzli 1. Nav´ıc, nedominovan´e ˇreˇsen´ı dominuj´ıc´ı nad menˇs´ımi ˇreˇsen´ımi m´a lepˇs´ı fitness. Fitness nynˇejˇs´ıho ˇclena populace j je urˇcena jako suma sil vˇsech extern´ıch ˇ
clen˚u, kter´e silnˇe2 dominuj´ı ˇreˇsen´ıj:
Fj = 1 +
X
i∈Pte∧i≤j
Si (4.20)
Pˇrid´an´ı jedniˇcky dˇel´a hodnotu fitness libovoln´eho nynˇejˇs´ıho ˇclena populace Pt vˇetˇs´ı neˇz
hodnotu fitness jak´ehokoliv extern´ıho ˇclena populacePte. Extern´ı ˇclenov´e populace z´ısk´avaj´ı
menˇs´ı fitness hodnoty neˇz ˇclenov´e nov´e populace. ˇClenov´e populace, kteˇr´ı jsou dominov´ani mnoha extern´ımi ˇcleny, dostanou velkou fitness hodnotu. Proto se pˇri selekci nad obˇema populacemi se preferuj´ı menˇs´ı hodnoty (tzv. minimalizace). Obˇe populace jsou pak pouˇzity jako celek pˇri kˇr´ıˇzen´ı a mutaci.
Shlukov´an´ı
Algoritmus seskupov´an´ı redukuje velikost extern´ı populace Pte velikosti z N0e na Ne (kde
N0e> Ne). Zpoˇc´atku je kaˇzd´e ˇreˇsen´ı vPte povaˇzovan´e za jedno ˇreˇsen´ı v jednom oddˇelen´em
shluku. Takˇze je v extern´ı populaci zpoˇc´atkuN0eshluk˚u. N´aslednˇe jsou vypoˇc´ıt´any vzd´
ale-nosti mezi jednotliv´ymi p´ary shluk˚u. Obvykle, vzd´alenost d12 mezi dvˇema shluky C1 aC2 je definov´ana jako pr˚umˇer euklidovsk´e vzd´alenosti vˇsech p´ar˚u ˇreˇsen´ı :
d12= P i∈C1,j∈C2 d(i, j) |C1||C2| (4.21) Jakmile jsou vypoˇc´ıt´any vˇsechny shluky, jsou dva shluky s minim´aln´ı vzd´alenost´ı sdruˇzen´e dohromady a spoleˇcnˇe tvoˇr´ı jeden vˇetˇs´ı shluk. Tento proces sluˇcov´an´ı pokraˇcuje dokud poˇcet shluk˚u v extern´ı populaci nen´ı sn´ıˇzen na velikostNe. Potom se v kaˇzd´em shluku ponech´a
jen ˇreˇsen´ı s minim´aln´ı pr˚umˇernou vzd´alenost´ı od dalˇs´ıch ˇreˇsen´ı v shluku, a vˇsechna dalˇs´ı ˇreˇsen´ı jsou vymaz´ana.
V tabulce 4.2jsou oba algoritmy shrnuty. Zat´ımco VEGA v´ıce stran´ı jednomu krit´eriu, SPEA se snaˇz´ı naj´ıt ˇsirˇs´ı spektrum ˇreˇsen´ı.
2