|
|
|
SpaceHawks'
WorldNews
Issue #16
Az Amiga és
az RC5
|
Bizonyára
hallottál már az RC5 projektről, és bizonyára ugyanúgy vonogattad a vállad,
mint eleinte én. (Tisztelet a kivételnek!) Mi is ez a projekt, és mi köze
van egyáltalán az Amigához? Erre, meg még néhány érdekes kérdésre kaphatsz
most választ rövid, de velős cikkemben. (sic!)
Egyszer
volt, hol nem volt (sőt, még van is) egy RSA Data Security, INC. nevű
cég, aki unatkozó programozóit azért fizeti, hogy ravaszabbnál-ravaszabb
kódolási eljárásokat fejlesszenek ki a csúnya, rossz, gonosz hacker és
cracker bácsik dolgának megnehezítésére.
Nos, mikor az RSA úgy gondolta, hogy most aztán már nagyon tökös kódolást
találtak ki, meghirdettek egy versenyt, melyben 10.000 USD üti annak a
markát, aki elsőnek visszakódol egy általuk megadott adatcsomagot, melynek
csak a kezdetét ismerjük. (Így kezdődik: "The unknown message is:".)
Erre okos bácsik kitalálták, hogy remekül meg lehet ezt törni az un. "brutal
force" módszerrel, ami nem más, mint egy egyszerű próbálgatás. Addig megy
a próbálgatás, amíg sikerül visszafejteni a dolgot. A ügy azon áll vagy
bukik, hogy mikor sikerül azt a bizonyos egyetlen kódolókulcsot fellelni,
amellyel az üzenetet kódolták.
Tulajonképpen ha lenne egy nagyon izom gépünk (értsd: valami mainframe
célgép, például egy Cray), akkor már egyedül is nekiállhatnánk, de mostanában
nem igazán hemzsegnek a 10.000 dolláros kategóriában a mainframe gépek.
Ezért kitalálták, hogy miért nem használunk inkább sok, viszonylag kis
teljesítményű gépet erre? Ez az, amit általában az RC5 kifejezés alatt
értenek.
A próbálgatásnak egyetlen nagy hátránya van, mégpedig az, hogy a 64 bites
kulcsú kódolás legrosszabb esetben 2^64 (18.446.744.073.709.551.616) darab
kulcs átvizsgálásával jár, ugyanis ezek közül pontosan egyetlen egy felel
meg nekünk. Ez a szám már milliméterből is szép távolságot ad, nemhogy
még számításkapacitásból. Szerencsére nem valószínű, hogy tényleg végig
kell nyálazni az összes kulcsot, ahogy az 56 bites kódolásnál sem volt
szükséges.
Több
különböző projekt létezik a kódolás megtörésére, ezek egymástól függetlenek.
A legismertebb, és egyben az egyetlen, amelynek Amigára is van kliense,
a Bovine RC5-64 Projekt. (Ők készítették a klienseket, és a kiszolgáló
szervereket, jelképük egy aranyos kis bocika.)
Hogyan
működik az RC5?
Tulajdonképpen
ebben az esetben a projektben résztvevő összes számítógép egyetlen megagéppé
áll össze, és így már komoly esélye van a megfejtésnek.
Ahhoz, hogy egy gép bekapcsolódjon, és felesleges idejét kódtöréssel töltse,
a következő dolgokra van szükség:
* a kliens program, ami a tényleges törést végzi,
* egy akármilyen számítógép (persze minél izmosabb, annál jobb),
* egy e-mail cím, amin esetleg majd értesítenek, és ami alapján nyilvántartanak
* Internet kapcsolat, bár ez nem feltétlenül szükséges. (Elég, ha néha
fér Internethez a tulaj, és az sem muszáj feltétlenül az ő saját gépéről.)
A kliens
csatlakozik a kulcs-szerverhez (valójában ez nem egyetlen gép), letölt
egy adag kulcsot, aztán nekilát törögetni. Ha végzett a letöltött kulcsok
végigvizsgálásával, visszaküldi a szervernek, és újra letölt egy adagot.
Ha nincs Internet kapcsolat, akkor egy Internetre csatlakozó gépről el
kell hozni egy (nagyobb adag) letöltött kulcsot, majd a végeredményt visszavinni
az ottani kliensnek, és az visszaküldi a szerverre. A kliens addig sem
vár, amíg nem jut újabb kulcshoz, akkor véletlen kulcsokat generál, és
azokat próbálgatja. (Persze a végpróbált véletlen kulcsokat is visszaküldi
a szervernek, hogy azzal is haladjon a projekt.)
A kulcsokat un. blokkokba csoportosítják. Egy blokkban 2^28 (268.435.456)
darab kulcs található, a kulcsszervernek ez a legkisebb adag.
A már
kiosztott, de hosszú ideje (min. 90 nap) vissza nem érkezett blokkokat
természetesen újra kiosztják, nehogy egy is elvesszen. Azért ilyen hosszú
az idő, hogy ha valaki egy lassabb géppel töröget, és ráadásul ritkán
fér Internethez, annak se kelljen felhagynia a töréssel.
És mi
értelme ennek az egésznek?
Hát ez
egy ravasz kérdés. Mindenki másért csinálja. Van aki csak úgy heccből
(mint én is: nehogy már unatkozzon szegény procim), van aki azért, hogy
jól megmutassa a politikusoknak (lásd még: 128 bites tikosító szoftverek
export tilalma az USA-ban), van aki a pénzért (olyan, mint a lottó, csak
kisebb az esélyed...), van aki menőzésből ("látod milyen izom is a gépem?!"),
van aki a statisztikák miatt ("Megint előbbre jutottam a toplistán!"),
van aki a boci miatt (mert olyan kis cuki).
Tulajdonképpen úgysem ez a lényeg, csak hogy törj te is! (Persze azért
a pénzt se utasítsd vissza, ha mégis te nyered meg!)
Mi történik,
ha megvan a kulcs?
Nos,
ezt azonnal nem fogod észrevenni, ugyanis a kliens semmilyen formában
nem fog figyelmeztetni. Ennek több oka is van: elméletileg lehet vaklárma
(bár ennek elég kevés az esélye), meg a készítők szeretnék kézben tartani
az eseményeket. (Pl. hogy nehogy véletlenül beállíts nélkülük az RSA-hoz
a kulccsal...)
Azt,
hogy te voltál a szerencsés, akkor fogod megtudni, amikor a kliensnek
általad megadott e-mail címre megérkezik a gratuláció. Ekkor már biztos
lehetsz benne, hogy megnő az éves adód.
Az e-mail cím kódolva szerepel az általad visszaküldött blokkban, ezért
nagyon fontos, hogy beállítsd a kliensben!
A díjat
nem teljes egészében te kapod ha nyersz, hanem a következőképp osztják
meg: 2.000 dollárt eltesz a Bovine projekt szervező csapata, 1.000 dollárt
kap aki megtörte a kódot, 1.000 dollárt a csapat, ha volt neki (egyébként
a versenyzőé), a maradék 6.000 dollárt pedig egy non-profit szervezetnek
ajándékozzák, hogy melyiknek, az egyelőre még nincs eldöntve, de te is
javasolhatsz szervezeteket a Bovine honlapján. (Gutenberg Project, Free
Software Foundation, stb.)
A sebességről
Tulajdonképpen
a sebesség nem a legfontosabb tényező az egészben, inkább a szerencse
meghatározó, de van egyfajta verseny a személyek és bizonyos csapatok
között is. A visszaküldött kulcsok számából egy ranglistát készít a projekt
szerver-rendszere minden nap éjfélkor (Greenwich-i középidő szerint).
Egy gép törési sebességét kilokulcs/másodpercben (KKeys/sec) mérik. Tulajdonképpen
nem igazán van pontos összefüggés a gép valós teljesítménye és a törési
teljesítménye között, mert inkább bizonyos utasítások sebességtől függ
a teljesítmény (32 bites forgatási műveletek). Ezért van az, hogy a PowerAmigák
odazúznak a hasonló teljesítményű Intelvackoknak, a PowerPC nagyon jó
törési teljesítményt ad.
A kliensben a -benchmark vagy a -benchmark2 opcióval mérheted meg a sebességet.
(A második egy rövidebb és pontatlanabb teszt.)
Néhány
processzor teljesítménye:
68030-50Mhz AmigaDos 14.430 keys/s
68040-40Mhz AmigaDos 33.414 keys/s
68060-50Mhz AmigaDos 105.971 keys/s
PowerPC603e-160Mhz
AmigaDos 597.805 keys/s
PowerPC604e-233Mhz AmigaDos 750.623 keys/s
PowerPC750-333Mhz MacOS 8 1.180.000 keys/s
5x86-133Mhz
Win95 126.167 keys/s
Pentium-166Mhz Win95 236.730 keys/s
PentiumII-233Mhz NT4.0 627.467 keys/s
Celeron-500Mhz NT4.0 1.375.000 keys/s
Alpha
21164-333Mhz NT 4.0 377.169
Mips R10000-200Mhz Irix 6.4 2.218.939 keys/s
Sparc2-248MHz Solaris 2.6 6.094.913 keys/s
HP PA-200 Mhz HPUX 10 295.962 keys/s
(Több
infót találhatsz a http://www.distributed.net/speed
oldalon!)
A csapatokról
Az egésznek
a lényege (számomra legalább is) mégis az, hogy megmutassuk: az Amigák
sem olyan kis fika gépek mostanában, léteznek ugyanis bizonyos csapatok
az RC5 versenyben. Csapatot bárki alapíthat, de igazából inkább érdemes
egy már létező szimpatikus csapathoz csatlakozni. És ki is lehetne szimpatikusabb
egy Amigásnak, mint az Amiga RC5 Team Effort, azaz az Amigásokat tömörítő
csapat!
Ha veszed magadnak a fáradtságot, és a Bovine Projekt szerverén beállítod
a kedvenc csapatodnak az Amigást, akkor minden egyes általad megvizsgált
blokk ennek a csapatnak és neked is jóvá lesz írva. (Elsősorban Amigásokat
várnak, de szabad a pálya, én felraktam a munkahelyemre is a klienst az
izom kis PC-re, aki persze így az Amigás csapatot erősíti...)
A csapatversenyt
toronymagasan a Team EvangeLista nevű csapat vezeti, ők ugyanis a Mac-esek...
(A G3 kicsit jó eredményt biztosít...)
Az Amiga RC5 Team Effort is szép helyen áll, pillanatnyilag a 6., de volt
már 5. is. A magyarokat tömörítő csapat (STB+) pedig a 13.
Hogyan
állj neki
Ha megtetszett
a dolog, és szeretnéd te is megmutatni, hogy az Amigád milyen kis izomgolyó,
akkor első lépésként szerezz be egy megfelelő klienst. Ezt megteheted
mind a hivatalos Bovine oldalakon, mind pedig az Amiga RC5 Team Effort
oldalán.
Amigára van külön M68K és PowerPC kliens is, ezek ráadásul egyszerre is
futhatnak, azaz a két proci paralel dolgozik egymástól függetlenül! (De
ha ezt ki akarod használni, ügyelj arra, hogy külön állományokba dolgozzanak,
mert nagy probléma lehet belőle!)
A konfigurálás tulajdonképpen gyerekjáték, a kliens első indításkor automatikusan
is belép a konfigurálásba, de a -config paraméterrel is ráveheted erre.
Szerintem
a következőket célszerű beállítani (amit kihagyok, az maradjon alapbeállításon):
1. Required options
1. Your e-mail:
feltétlenül meg kell adni, ahogy azt már írtam!
2. RC5 Blocks to Buffer: nem muszáj megváltoztatni, egyszerre ennyi
blokkot akar letölteni majd a szerverről. Ha offline törögetsz (Internet
nélküli gépen), akkor ez az érték teljesen mellékes.
2. Logging options
1. File to log
to: ha akarod a törés folyamatát logolni, akkor ide kell a logfile
nevét megadni. Inkább akkor van jelentősége, ha nem lehetsz ott állandóan
a gép mellett, mert pl. a titkárnőé a gép, és te vagy a rendszergazdi.
Igazából Amigán nem sok jelentőségét látom.
3. Communication
Options
1. Firewall Communications
mode: ha esetleg tűzfal mögött lenne a géped, ez sem túl valószínű.
9. Offline operation mode: amikor nincs Internet kapcsolatod, akkor
ezt az Offline Always vagy Finish Buffers and exit módba kell kapcsolni.
Ekkor nem próbál meg csatlakozni a szerverekhez. A második lehetőség
beállításakor nem kezd el véletlen kulcsokat probálgatni, ha végzett
a letöltött blokkokkal. (Miért ne? Úgyis ráér...)
4. Performance Options
1. Level of niceness
to run at: mikor foglaljon processzoridőt, azaz hogyan állítsa be
a taszk prioritását. Célszerű Extremely Nice-ra állítani (alap), így
elvileg csak akkor fog futni, ha a procinak tényleg nem kell más taszkokkal
foglalkozni. A PowerPC-s kliensben ez nem működik rendesen, ahogy
észrevettem, de erről majd később.
5. Miscellaneous
Options
10. Interval between
saving of checkpoints (minutes): mivel a rendszer Amigán könnyebben
fejreáll, ezért elég könnyen el lehetne veszíteni az éppen ellenőrzött
blokk egy részét. Szerencsére lehet checkpoint-ot beállítani, ami
mindig tárolja a blokk aktuális állását, még mielőtt a kliens befejezné
a blokkot. Célszerű ezt legalább 2 percre állítani, hogy minél kevesebb
vesszen el. (A tárolás egy pillanat alatt megvan, így nem fogja a
rendszert.)
Itt lehet letiltani
az outputokat, de valószínűleg ez megint nem annyira fontos.
6. Filenames & Path
Options
1. RC5 Checkpoint
Path/Name: állítsd "ckpoint.cp"-re, a legtöbb kliens ezt használja.
Valójában akkor van nagyobb jelentősége a checkpoint nevének, ha offline
működik a kliens, de erről majd később.
Hát ennyi, még el
kell menteni a beállításokat, és már mehet is a törés. (0. menüpont a
főmenüben.)
Sajnos a PowerPC-s
kliensből csak PowerUp-os van (és ez miért baj?-Emeric
SH), de szerencsére működik a PPCLibEmu legújabb (0.6a) verziójával.
Célszerű a PowerPC-s kliens indítása előtt beállítani a taszkprioritásokat.
A legjobb kombináció, ha annak a taszknak az M68K prioritása magas, a
PPC prioritása viszont alacsony. Nagyrészt úgyis a PPC dolgozik, de célszerűen
a másik oldalról gyors kiszolgálást kaphat.
A következőképp lehet
ezt WarpOS alatt megtenni:
changetaskpri 2
niceppc 20
Hogyan lehet offline
törni?
Kicsit nehezebb az
eset, ha nincs Internet hozzáférésed az Amigádról. Ekkor kell egy gép,
ahol viszont van, meg kell még az azon a gépen futó kliens. Majd a következő
lépéseket kell megtenni:
Konfiguráld be úgy a klienst, hogy egy nagyobb adagot töltsön le egyszerre.
(Főmenü 1.-es pontjának 2.-es alpontja, pl. 200 blokk.) Indítsd el a klienst
a -fetch vagy az -update paraméterrel. Ekkor -ha minden jól megy- kapcsolódik
a szerverhez, és letölti a megfelelő blokkmennyiséget, majd kiszáll. Ha
nem száll ki, akkor állítsd le! (Pl. a Win32-es GUI-s kliens nem áll le,
hanem azonnal elkezd törni.)
Fogd a buff-in.rc5 állományt és mozgasd át (ne csak másold) a saját lemezedre!
(Nem nagy, 200 blokk kb. 26 Kbyte.) Vidd haza az állományt, konfiguráld
be a kliensed, ahogy előzőleg leírtam, majd másold mellé az állományod
ckpoint.cp néven.
A következő indításkor automatikusan létrehozza a buff-in.rc5 állományt
a checkpoint állományból.
Amikor végzett az összes blokkal (200 blokk egy 603e-160-asnak kb. 80
órányi munkát ad), akkor mozgasd ki a buff-out.rc5 állományt lemezre,
cipeld el az Internetes géphez, másold a klienssel egy könyvtárba a kész
állományt azonos néven, majd indítsd el a klienst egy -update paraméterrel.
Ekkor a kész blokkokat visszaküldi, és helyette újakat tölt le, amiket
megint boldogan hazacipelhetsz. (És így megy ez az idők végezetéig...)
Vigyázz arra, hogy ha az ottani kliens is aktív, akkor mielőtt felülírod
a buff-out.rc5 állományát, csinálj egy frissítést (-flush paraméter)!
Fontosabb Internet
oldalak
distributed.net (A
cég, aki a Bovine projektet kezelgeti) http://www.distributed.net/rc5/
RC5-64 Overall Project
Stats
http://tally.distributed.net/rc5-64/
The Amiga RC5 Team
effort
http://distributed.amiga.org/
STB+ Team Hungary
(Jó kis FAQ van az oldalukon, innen okosodtam ki én is.)
http://www.elte.hu/~rc5/
RSA Data Security,
INC.
http://www.rsa.com/
"Egy újabb érdekes
adat"
Amíg ezt a szöveget
megírtam, az unatkozó PowerPC proci kb. 5 és fél blokkot nézett végig,
ami kb. 1.476.395.000 (2^28x5,5) kulcs átvizsgálását jelenti. (Ez az összes
kulcs 0,00000000800355%-a...)
Rachy
of Bi0Hazard
PS.: Na, Emeric, megírtam.
Akkor most visszamehetek Hexen-ezni végre? :) (Na, menjél...-Emeric
SH :)
|