Az információ története IV.

Aki utalt már valaha pénzt valamilyen bankszámlaszámra, biztosan elgondolkodott legalább egyszer azon, hogy vajon mi is történik akkor, ha véletlenül eltéveszt egy számjegyet és rossz számlaszámot ad meg. Nos, hamarosan megtudhatjuk, hogy nem is olyan könnyű feladat ily módon gazdagítani ismeretleneket, ugyanis az információkat a továbbításuk során mindenféle fortélyos trükkök védik attól, hogy a véletlen vagy az ügyetlen kezek eltorzítsák őket.

A kardfogú tigris közeledtét jelző ütemes dobolástól a ma használt 4G-s mobilhálózatok megjelenéséig hosszú és izgalmas út vezetett az információ továbbításának történetében. Az előzőekben eljutottunk ezen az úton egészen az 1900-as évek elejéig, amikor már nem okozott gondot két ember közti beszélgetésben egy olyan apró körülmény, hogy a beszélgetés résztvevői más-más kontinensen élnek. A Morse által megalkotott távíró, majd a Bell által feltalált telefon a Földet behálózó kábelek segítségével lehetővé tette, hogy az információ végre bárhonnan bárhova eljusson. A telefonnak volt azért kezdetben némi hátránya a távíróval szemben, az emberek ugyanis inkább érdekes játékot láttak benne, nem pedig az információ továbbításának egyik legkényelmesebb módját. Amikor a Bell kutatásait finanszírozó Hubbard 1876-ban fölkereste William Ortont, az amerikai távíróvonalakat működtető Western Union elnökét, hogy 100 ezer dollárért eladja neki a telefonnal kapcsolatos minden jogot, Orton durván elutasította őt. Ez nem egy találmány, hanem egy játék – jelentette ki röviden. Így aztán Hubbard és Bell két további alapítóval kiegészülve saját céget hozott létre a telefonban rejlő üzleti lehetőségek kiaknázására. A cég működésének első két évében összesen 600 előfizetőt sikerült beszervezniük a telefon-bizniszbe, a döntő fordulat azonban akkor következett be, amikor William Orton rádöbbent arra, mekkorát tévedett, amikor nem vette elég komolyan Bell találmányát, ami idővel a Western Union riválisává válhat. A problémára meglehetősen egyedi megoldást talált, amikor felkérte Edisont, hogy fejlessze ki saját telefonját és így fölvegyék a versenyt Bell telefontársaságával. Hosszas szabadalmi viták következtek, majd Hubbard pert indított a Western Union ellen. A vita végül 1879-ben egy közös megállapodással ért véget. A Western Union elismerte Bell elsőbbségét és egyúttal kivonult a telefonpiacról, ugyanakkor kötelezte Bell cégét, hogy vegyék meg tőlük az addigra Edison által tökéletesített telefon üzletágat, az előfizetők után pedig jutalékot fizessenek. Az alku megkötését követően szépen fejlődni kezdett a telefon-biznisz, sorra jelentek meg a telefonkészülékek az amerikai otthonokban és a vállalatok íróasztalain. A fejlődésnek az a kis kellemetlenség sem vetett gátat, hogy Bell társasága úgy építette ki a telefonkábeleket, hogy bármelyik két készülék, amely egymással beszélni szeretett volna kapott egy saját összeköttetést. Ennek hatására szép lassan mindenfelé telefonkábelek cikáztak az amerikai nagyvárosok utcái felett. A háztetőkre szerelt fából ácsolt tartószerkezeteken és az utak mentén elhelyezett 10-20 méter magas telefonpóznákon több száz fémhuzal lógott kusza összevisszaságban. Viszonylag alacsony esztétikai értéke mellett a hatékonysága sem volt túl jó a rendszernek, a rengeteg szabadon futó vezetéket a szél rendre összekuszálta, ami komoly zavarokat okozott a beszélgetésekben.

PUSKÁS TIVADAR TELEFONKÖZPONTJA

A probléma megoldása egy Budapesten született mérnöknek, Puskás Tivadarnak köszönhető, aki a távíróhálózatra kitalált rendszerét továbbfejlesztve olyan központot talált ki, amely minden telefonnal összeköttetésben áll és így bármely két készülék közt a központon át vezet a beszélgetés. Ezáltal pedig elegendő minden készüléket csak a központtal összekötni. Puskás először Bellt kereste meg ötletével, majd Edison laborjában Menlo Parkban kezdett dolgozni ötlete megvalósításán. Menlo Park egyfajta innovációs központként működött, ahol mérnökök és feltalálók egymás munkáját segítve közösen alkották meg találmányaikat. Ez lehet a magyarázata annak is, hogy a telefonközpont szabadalmának bejegyzésénél végül nem Puskás neve – és nem is Edisoné – szerepel. 1887-re készültek el az első telefonközponttal, amely 21 előfizető kiszolgálására volt képes. Kezdetben még név szerint kellett kérni a telefonközpontostól, hogy kivel szeretnénk beszélni, aztán a neveket fölváltották a számok, később pedig a telefonközpontost is fölváltotta az automata központ. A világ első automata telefonközpontját 1892-ben avatták föl Chicagotól nem mesze. A hívni kívánt számot eleinte nyomógombok segítségével lehetett megadni, de kissé komplikáltabban, mint ahogyan mai nyomógombjaink segítségével. Az első gomb megnyomásával a telefonszám első számjegye volt megadható. Annyiszor kellett lenyomni a gombot, amennyi az első szám. A második gomb segítségével a telefonszám második jegye volt hasonló elven megadható, míg a harmadik gombbal a harmadik szám – de ezt a gombot végül sohasem kellett használni, mert a központnak összesen 91 ügyfele volt, vagyis sohasem jutottak el a háromjegyű számokig. A körülményes gombnyomogatós megoldást váltotta le az 1900-as évek elején a számtárcsa. Ez egy rugós szerkezet, amely minden egyes szám tárcsázásakor 1 és 10 közötti impulzust küld a központ felé. A tárcsa felhúzásakor egy rugó feszül meg, a tárcsa elengedésekor pedig, miközben az visszaperdül az alaphelyzetbe, a tárcsázott számjegynek megfelelő számú impulzust küld a vonalon az áramkör megszakításával és zárásával. A központ ezek alapján az impulzusok alapján keresi meg a kívánt számot. Vagy épp egy másik számot. Sajnos ugyanis abban az időben még a kábelek nem voltak olyan tökéletesek, és a tárcsázáskor kiinduló apró elektromos impulzusok könnyen elvesztek valahol. Vagy éppen valamilyen külső körülmény – például egy vihar – miatt újakkal egészültek ki. Az így tévesen továbbított jel pedig a rendeltetési helyére megérkezve már egy másik számot jelentett. Ezért aztán nem voltak ritkák a téves kapcsolások. A problémát csak 1963-ra sikerült megoldani egy zseniális ötlettel. Az ötlet lényege az volt, hogy ha egyszer a telefonkábelek úgyis hanghullámok által keltett elektromos hullámok továbbítására lettek kifejlesztve, akkor magukat a tárcsázandó számokat is hangként érdemes továbbítani. Így jött létre az úgynevezett DTMF rendszer (Dual-tone multi-frequency signaling) vagyis a Tone-tárcsázás. Elsőként az USA-ban terjedtek el a nyomógombos telefonok, amelyek a DTMF rendszert használták a hívni kívánt szám továbbítására. A gombok 0-tól 9-ig voltak számozva és minden gomb lenyomása más-más frekvenciájú hangot szólaltatott meg. A számok továbbítására használt jelek tehát egyszerű hallható hangok a beszéd hangfrekvenciás tartományában. Ezek a hangok továbbították a tárcsázandó számot a telefonközpontnak és mellesleg ezeket a hangokat halljuk a mai napig a telefonban tárcsázás közben.

MEGSZÜLETIK AZ INFORMÁCIÓELMÉLET

Ez a tárcsázással kapcsolatos történet rávilágít egy igen érdekes problémakörre, amivel az 1900-as évek közepétől egyre többen kezdtek el különböző okok által vezérelve foglalkozni. A telefonszámoknak elektromos impulzusokkal történő kódolása ugyanis mindjárt két nagyobb problémát is fölvet. Az egyik az, hogy a jelek hajlamosak elveszni, vagyis az információ továbbítására szolgáló csatorna zajforrása a kódolt információhoz képest túl magas. Ez a tény önmagában is jelentős probléma, hiszen megakadályozza az információ biztonságos célba érkezését. Van azonban egy másik probléma is, ami talán még az előzőnél is nagyobb, ez pedig az, hogy a zaj hatására eltorzult információ általában nem használhatatlanná válik, hanem továbbra is használható információ marad, csak megváltozik a jelentése. Ha például eredetileg 8-ast tárcsázunk, ami 8 egymás utáni impulzusként továbbítódik a vezetékben, akkor a kábel hibái miatt megeshet, hogy elvész valamelyik jel, vagy éppen egy közeli vihar zavaró hatása miatt menet közben kiegészül egy kilencedikkel. Ekkor a tárcsázott 8-as szám máris 7-esként vagy 9-esként érkezik meg a telefonközpontba. Ez a hiba pedig meglehetősen aggasztó, hiszen emiatt állandó kételyek gyötörhetnek minket, hogy vajon a küldött üzenet valóban azt jelent-e, amit a feladója gondolt. Az 1900-as évek első felében számos olyan esemény zajlott az emberiség történetében, ahol nem igen lehetett hibázni az üzenetek továbbításánál, ugyanis a tét jóval nagyobb volt, mint, hogy Piroska néni helyett Kovács úr van-e a vonal túlsó végén. Az 1914 és ’18 között zajló Első Világháború, majd az 1939 és ’42 közötti Második Világháború meglehetősen kedvezett az elküldeni kívánt információkat jelekké alakító technológiák fejlődésének. A Második Világháború idején egy bizonyos Claude Shannon amerikai matematikus, elektromérnök és kódfejtő a Nemzeti Védelmi és Kutatási Bizottságnál kezdett el komolyabban érdeklődni az információ továbbításának elmélete iránt, beleértve a jelekké alakítás problémáját és a kódolást is. Kutatásait a háború után is folytatta és eredményeit 1948-ban két részletben publikálta. Ez a két cikk jelentette az alapját egy újonnan születő tudományágnak, az információelméletnek, amelyet azóta is főként Shannon nevéhez kötnek. Shanon vezeti be először az információ továbbításának általános sémáját. Az információforrásból származó üzenetet az adó jellé alakítja, ez a jel pedig az információs csatornán át igyekszik eljutni a vevőhöz. A csatornában különböző zajoknak van kitéve, aminek következtében az adó által leadott jel nem mindig egyezik meg a vevő által vett jellel. A vevő aztán visszaalakítja a jelet üzenetté, amely így megérkezik a rendeltetési helyre. A visszaalakítás során általában három lehetőség fordulhat elő. Szerencsés esetben a visszaalakított üzenet megegyezik az eredeti üzenettel és ilyenkor mindenki örül. Kevésbé szerencsés esetben a visszaalakítás során kiderülhet, hogy a jel nem alakítható vissza, mert a továbbítás során megsérült, és értelmetlen jellé alakult át. Végül még ennél is szerencsétlenebb esetben a jel úgy sérül, hogy egy teljesen más, de értelmes üzenetnek megfelelő jellé alakul át, amit így a vevő oldalon – mintha minden rendben volna – képesek ugyan visszafejteni, csak éppen nem azt kapják, hogy sajkák dokkolása hanem, hogy dajkák sokkolás. Shannon részletesen foglalkozott elméletében azzal, hogy a különböző kódolási eljárások által előállított jelsorozatok mennyire hajlamosak téves üzenetekké alakulni. Egy kódolás annál jobb, minél ritkábban keletkeznek téves vagy használhatatlan üzenetek. Ilyen szempontból a telefonszámok tárcsázással történő továbbítása nem számít jónak, ugyanis szinte bármilyen hiba továbbra is értelmes, de téves jelet eredményez. A gondot az okozza, hogy ezek a jelek valahogy túl közel vannak egymáshoz. A jelek közti távolságok mérésére Shannon egyik kollégája, Richard Hamming vezette be a Hamming-távolság fogalmát. A dolog megértéséhez a tárcsázott számokat nullákból és egyesekből álló sorozatokkal fogjuk leírni a következő nagyon egyszerű módon. Ha 1-est tárcsázunk, akkor mindössze egy impulzus indul útnak, így az 1-es jele <1000000000>. A kilenc darab nulla itt azt jelenti, hogy azokon a helyeken is küldhettünk volna impulzust, de nem tettük. Ha 2-est tárcsázunk, akkor az első két helyen megy impulzus, a többi helyen nem, így a jele <1100000000>. Ha 9-est tárcsázunk, akkor az első kilenc helyen, vagyis <1111111110>, míg a nulla estében mind a 10 helyen: <1111111111>.

Ha most összehasonlítjuk mondjuk a 3-as és a 4-es kódjelét:

<1110000000>

<1111000000>

akkor azt látjuk, hogy ezek mindössze egyetlen karakterben térnek el egymástól, vagyis a két jel Hamming távolsága 1. Mivel a jelek közvetítésére használt csatornák általában zajosak, a kódolás során minél nagyobb Hamming távolságra kell törekedni. Ha például a Hamming távolság 2, az azt jelenti, hogy legalább két hibának kell keletkeznie a jelsorozatban ahhoz, hogy egy másik értelmes üzenetté alakuljon át. A telefonszámok esetében ez például úgy érhető el, ha egy paritást ellenőrző karaktert illesztünk a jelsorozat végére, ami 0, ha a kódban páros sok 1-es van és 1, ha páratlan sok. Vegyük például a 3-as szám kódját: <1110000000>. Ebben az egyesek száma páratlan, így a kód végére egy 1-est illesztünk: <11100000001>. Ha most újra megnézzük a 3-as és a 4-es számok kódjelét:

<1110000001>

<1111000000>

nos, akkor látszik, hogy a kódok Hamming-távolsága így már 2, vagyis egyszerre legalább két hibának kell történnie a továbbítás során ahhoz, hogy a 3-asból 4-es legyen. Egy kódrendszerben az előforduló jelsorozatok közül a két legközelebbinek a távolságát kódtávolságnak nevezzük. A tárcsázott számok estében a kódtávolság kezdetben 1 volt, a paritást ellenőrző számjeggyel kiegészítve pedig 2 lett. Kérdés, hogy vajon mennyire növelhető meg egy adott kódban ez a kódtávolság. Erről szól az úgynevezett Singleton-korlát, amely a kódban lévő jelsorozatok hossza, a kódolni kívánt információk száma és a jelsorozatban előforduló jelek száma alapján ad egy felső korlátot a maximálisan elérhető kódtávolságra.

ÖNJAVÍTÓ KÓDOK

A kódtávolság növelésével azonban csak azt a problémát vagyunk képesek orvosolni, hogy a jelek továbbítása során azok ne alakuljanak át más értelmes jellé. Vagyis értesülünk arról, hogy hiba történt – hiszen a kapott jel nem értelmes – de azt már nem tudjuk, hogy mi a hiba. Ha azt is szeretnénk tudni, hogy mi lehetett az eredeti hibátlan üzenet, akkor olyan kódolást kell használnunk, amely arra is képes, hogy a hibákat kijavítsa.

Erre az egyik legkézenfekvőbb megoldás a bitek többszörözésének módszere. A bitkettőzés például azt jelenti, hogy minden bitet kétszer küldenek el, vagyis ha szeretnénk a 3-as szám kódját elküldeni, ami az, hogy <1110000000> akkor bitkettőzéssel küldve a kétszer olyan hosszú <11111100000000000000> jelsorozatot küldjük. Kicsit leegyszerűsítve a dolgot és csak egy bitet vizsgálva 0→<00> és 1→<11>. A bitkettőzéssel minden olyan hiba észrevehető, ahol egy jel továbbításával gond volt, például a <01> üzenet biztosan hibás, csak éppen azt nem tudjuk, hogy hol van a hiba: a 0 helyett van-e tévesen 1-es vagy az 1-es helyett 0. A bitkettőzés tehát nem képes a hibát javítani, viszont bármely két kód Hamming-távolsága legalább 2, így egy hibát képes jelezni. Nézzük, mi történik akkor, ha a biteket háromszorozzuk, vagyis 0→<000> és 1→<111>. Ha a kapott üzenet az, hogy <101> akkor biztosak lehetünk benne, hogy hiba történt, ugyanakkor az is gyanítható, hogy mi volt a hiba. Persze megeshet, hogy az eredeti üzenet a 0→<000> volt és a két szélső 1-es szerepel hibásan, de jóval nagyobb valószínűsége van annak, hogy a középső 0 a hibás és az eredeti üzenet az volt, hogy 1→<111>. Ha mondjuk a jelsorozat továbbítása során 0,01 valószínűsége annak, hogy az egyik jel hibásan továbbítódik, vagyis 100 esetből egyszer fordul elő, akkor annak valószínűsége, hogy két jel is hibás 0,0001 tehát tízezer esetből egy, és annak esélye, hogy mindhárom hibás 0,000001 ami egymillió estből egy. Ez azt jelenti, hogy ha megjön az üzenet azzal, hogy <111> akkor vagy az 1→<111> érkezett meg helyesen vagy a 0→<000> három hibával, ám utóbbi egymillió esetből csak egyszer fordul elő, így szinte biztos, hogy nem ez történt. Hasonló a helyzet akkor is, ha megérkezik az <101> jel. Megeshet persze, hogy a 0→<000> érkezett meg két hibával, de esélyesebb, hogy inkább az 1→<111> egy hibával, mert az előbbi 10 ezer esetből egyszer, míg az utóbbi száz esetből egyszer fordul elő.

Ez a módszer tehát már nem csak a hiba jelenlétét képes kimutatni, hanem képes a hibát ki is javítani. Valahányszor olyan üzenet érkezik, amiben nem csupa 0 vagy csupa 1-es szerepel, egyrészt értesülünk róla, hogy hiba van, másrészt képesek vagyunk rekonstruálni az üzenetet.

A dolog fokozható a bitek négyszerezésével vagy ötszörözésével, ám léteznek ennél jóval kifinomultabb módszerek is. Hamming-kódnak nevezzük azokat a kódokat, amelyek egy hibát képesek kijavítani. Az 1940-es évek végén nagy verseny kezdődött a minél rövidebb jelsorozatból álló Hamming-kódok kifejlesztésében. Olyan kódot azonban nem sikerült előállítani, ami nagy biztonsággal 2 hibajavításra is képes lett volna. Több mint 10 évnek kellett eltelnie mire R. C. Bose, valamint tanítványa D. K. Ray-Chaudhuri és tőlük függetlenül A. Hocquenghem megtalálta azt a kódolási eljárást, amelyet neveik kezdőbetűi alapján BCH-kódnak neveztek el, és amely két hibát is képes javítani.

HIBAJELZŐ BANKSZÁMLASZÁMOK

A bankszámlaszámok kialakításánál is arra törekedtek, hogy azok minél jobban képesek legyenek jelezni az esteleges elírásokat vagy felcseréléseket. Minden számlaszám 8 számjegyből álló egységekre tagolódik, és minden ilyen egységben az utolsó számjegy az első hét ellenőrzésére szolgál. Vagyis bármelyik számlaszám 8-adik számjegyét az előző hét alapján mi magunk is képesek vagyunk kiszámolni. Az ellenőrző számjegy képzése elsőre kissé furfangosnak tűnik, de hamarosan az is kiderül, hogy miért. A képzési algoritmus a következő: A 8-as számjegycsoport első hét elemét balról jobbra haladva megszorozzuk a 9, 7, 3, 1, 9, 7, 3 számokkal és az így kapott szorzatot összeadjuk. A kapott eredmény utolsó számjegyét 10-ből levonva kapjuk az ellenőrző számjegyet. Mindez sokkal egyszerűbbnek fog tűnni, ha nézünk rá egy példát. Legyen a bankszámlaszám egyik 8-as blokkja az, hogy 8175400? ahol a kérdőjel jelöli a keresett ellenőrző számjegyet. Most kezdjük el megszorozgatni a számjegyeket a recept szerint a 9, 7, 3, 1, 9, 7, 3 számokkal, majd adjuk ezeket össze: 8*9+1*7+7*3+5*1+4*9+0*7+0*3=141

A kapott eredmény utolsó számjegye 1-es, azt kell 10-ből levonnunk és így az ellenőrző számjegy a 9, vagyis a számlaszám 81754009. Ezt a kis trükköt bárki kipróbálhatja a saját bankszámlaszámán. Ellenőrző jegyet természetesen egyszerűbben is kreálhatnánk a számlaszám végére. Például úgy, ha összeadjuk az első hét számjegyet: 8+1+7+5+4+0+0=25 és mondjuk ennek vesszük az utolsó számjegyét. Az így kreált ellenőrző jegy szintén képes lenne kimutatni, ha valamelyik számot elírjuk. Egy másik gyakori hibára azonban nem figyelmeztetne. Nem jelezné azt, ha véletlenül két számjegyet fölcserélünk a számlaszámon belül. A számjegyek fölcserélésénél ugyanis az összegük továbbra is 25 marad és az ellenőrző jegy így megint az lenne, hogy 5. Azáltal viszont, hogy a számjegyeket a 9, 7, 3, 1 számokkal megszorozzuk, különböző számokkal címkézzük fel őket, vagyis figyelembe vesszük a sorrendjüket. Az esetleges felcserélés során a címkézés is megváltoznak és így a kapott ellenőrző számjegy eltérne az eredetitől. Ezzel a módszerrel tehát – legalábbis az esetek nagy részében – az ellenőrző számjegy nem csak a szemjegyek elírását, hanem felcserélését is képes kimutatni.

MÉG TÖBB ILYEN

Visszajelzés