03.07.2013 Views

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.5. Gedistribueerde algoritm<strong>en</strong> 33<br />

door AES, de “Advanced Encryption Standard”. De aanval was niet gebaseerd op gesofisticeerde<br />

wiskundige eig<strong>en</strong>schapp<strong>en</strong> van het DES-coderingsschema, maar wel op brute kracht. DES<br />

gebruikt e<strong>en</strong> sleutel van 56 bits, m.a.w. er zijn slechts 2 56 mogelijke sleutels om te controler<strong>en</strong>.<br />

E<strong>en</strong> typische PC op dat mom<strong>en</strong>t kon zo’n 2 miljo<strong>en</strong> sleutels in één seconde uitprober<strong>en</strong>, zodat<br />

één PC ongeveer 2 56 /(2 × 10 2 ) second<strong>en</strong>, of ongeveer 1000 jaar, nodig zou gehad hebb<strong>en</strong> om<br />

alle sleutels te prober<strong>en</strong>. Wanneer 100 000 PCs in parallel op dit probleem werk<strong>en</strong>, wordt deze<br />

tijd gereduceerd tot ongeveer 4 dag<strong>en</strong>.<br />

Gelijkaardige gedistribueerde project<strong>en</strong> zijn inmiddels opgezet voor tak<strong>en</strong> zoals het factoriser<strong>en</strong><br />

van grote getall<strong>en</strong> (e<strong>en</strong> andere bezigheid die interessant is voor crypto-analyst<strong>en</strong>), het zoek<strong>en</strong><br />

van grote priemtweeling<strong>en</strong>, <strong>en</strong> zelfs voor het zoek<strong>en</strong> naar buit<strong>en</strong>aardse intellig<strong>en</strong>tie (het SETI<br />

project).<br />

Al deze project<strong>en</strong> verton<strong>en</strong> e<strong>en</strong> typische eig<strong>en</strong>schap van gedistribueerde berek<strong>en</strong>ing: de taak die<br />

moet uitgevoerd word<strong>en</strong>, parallelliseert goed. De taak is op te brek<strong>en</strong> in zeer onafhankelijke<br />

deeltak<strong>en</strong>, waarbij weinig communicatie tuss<strong>en</strong> de deeltak<strong>en</strong> nodig is. Bijvoorbeeld, in het DESproject<br />

werd<strong>en</strong> de sleutels opgesplitst in grote blokk<strong>en</strong>, die uitgedeeld werd<strong>en</strong> aan verschill<strong>en</strong>de<br />

processor<strong>en</strong>.<br />

De belangrijkste vraag in gedistribueerde berek<strong>en</strong>ing<strong>en</strong> is niet zozeer of, <strong>en</strong> hoe, e<strong>en</strong> probleem<br />

parallelliseert, maar wel hoe de grote hoeveelheid processor<strong>en</strong> e<strong>en</strong> gedistribueerde berek<strong>en</strong>ing<br />

kan opzett<strong>en</strong> <strong>en</strong> handhav<strong>en</strong> in e<strong>en</strong> onbetrouwbare <strong>en</strong> soms zelfs vijandige omgeving. Wat moet<br />

er gebeur<strong>en</strong> wanneer e<strong>en</strong> PC die gewerkt heeft op e<strong>en</strong> bepaald blok sleutels, ge<strong>en</strong> resultaat teruggeeft?<br />

Is de communicatie verlor<strong>en</strong> gegaan of is de computer afgeslot<strong>en</strong>? Gev<strong>en</strong> we het blok<br />

sleutels aan e<strong>en</strong> andere processor, of wacht<strong>en</strong> we? Wat wanneer één van de PCs gekraakt werd<br />

<strong>en</strong> nu opzettelijk verkeerde resultat<strong>en</strong> teruggeeft? Kunn<strong>en</strong> we herk<strong>en</strong>n<strong>en</strong> wanneer dit gebeurt?<br />

En wie is “we”?<br />

In alle voorbeeld<strong>en</strong> die we tot nu toe vermeld hebb<strong>en</strong>, is er één c<strong>en</strong>trale processor die de tak<strong>en</strong><br />

uitbesteedt (ook “farming” g<strong>en</strong>oemd) aan beschikbare werkers <strong>en</strong> die de ganse berek<strong>en</strong>ing beheert.<br />

In het algeme<strong>en</strong> will<strong>en</strong> we echter niet veronderstell<strong>en</strong> dat er noodzakelijk e<strong>en</strong> aangestelde<br />

leider is. Bijvoorbeeld, ARPANET, de voorganger van het Internet, was door het US Departm<strong>en</strong>t<br />

of Def<strong>en</strong>se in 1969 opgericht als e<strong>en</strong> gedec<strong>en</strong>traliseerd communicati<strong>en</strong>etwerk teg<strong>en</strong> mogelijke<br />

nucleaire aanvall<strong>en</strong>. Zelfs wanneer sommige servers in het Internet uitvall<strong>en</strong>, is er nog steeds<br />

communicatie mogelijk. Wanneer de hoofdcomputer in e<strong>en</strong> gec<strong>en</strong>traliseerd netwerk uitvalt, stort<br />

het hele netwerk in elkaar.<br />

We zi<strong>en</strong> dus dat de studie van gedistribueerde algoritm<strong>en</strong> gestuurd wordt door vrag<strong>en</strong> die betrekking<br />

hebb<strong>en</strong> op basiscommunicatie tuss<strong>en</strong> de processor<strong>en</strong> die het gedistribueerde netwerk<br />

vorm<strong>en</strong>.<br />

Er zijn meerdere modell<strong>en</strong> van gedistribueerd berek<strong>en</strong><strong>en</strong>. Meestal wordt verondersteld dat de<br />

processor<strong>en</strong> slechts losweg gekoppeld (“loosely coupled”) zijn, m.a.w. er is informatie over kanal<strong>en</strong><br />

tuss<strong>en</strong> par<strong>en</strong> processor<strong>en</strong>, maar verder wordt ge<strong>en</strong> informatie gedeeld. In het bijzonder is<br />

er ge<strong>en</strong> sprake van e<strong>en</strong> globale toestand, zoals in e<strong>en</strong> gec<strong>en</strong>traliseerd algoritme. Occasioneel kan<br />

het echter zinvol zijn om te veronderstell<strong>en</strong> dat alle processor<strong>en</strong> synchroon kunn<strong>en</strong> werk<strong>en</strong>, via<br />

<strong>Algoritm<strong>en</strong></strong> <strong>en</strong> Datastructur<strong>en</strong> <strong>III</strong> Veerle.Fack@UG<strong>en</strong>t.be

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!