2.5. A lineáris kongruencia egyenlet.

Hasonló dokumentumok
SZÁMELMÉLET. Vasile Berinde, Filippo Spagnolo

10.M ALGEBRA < <

Nevezetes sorozat-határértékek

(A TÁMOP /2/A/KMR számú projekt keretében írt egyetemi jegyzetrészlet):

RSA algoritmus. P(M) = M e mod n. S(C) = C d mod n. A helyesség igazoláshoz szükséges számelméleti háttér. a φ(n) = 1 mod n, a (a 1,a 2,...

1. Írd fel hatványalakban a következõ szorzatokat!

Számsorozatok. 1. Alapfeladatok december 22. sorozat határértékét, ha. 1. Feladat: Határozzuk meg az a n = 3n2 + 7n 5n létezik.

3. Számelmélet. 1-nek pedig pontosan három. Hány pozitív osztója van az n számnak? OKTV 2012/2013; I. kategória, 1. forduló

3. SOROZATOK. ( n N) a n+1 < a n. Egy sorozatot (szigorúan) monotonnak mondunk, ha (szigorúan) monoton növekvő vagy csökkenő.

ALGEBRA. egyenlet megoldásait, ha tudjuk, hogy egész számok, továbbá p + q = 198.

1. A KOMPLEX SZÁMTEST A természetes, az egész, a racionális és a valós számok ismeretét feltételezzük:

A figurális számokról (IV.)

Minden egész szám osztója önmagának, azaz a a minden egész a-ra.

Diszkrét matematika II., 3. előadás. Komplex számok

Gyakorló feladatok II.

2. fejezet. Számsorozatok, számsorok

Számelméleti alapfogalmak

1 k < n(1 + log n) C 1n log n, d n. (1 1 r k + 1 ) = 1. = 0 és lim. lim n. f(n) < C 3

VII. A határozatlan esetek kiküszöbölése

Elsőbbségi (prioritásos) sor

Más szavakkal formálisan:, ahol olyan egész szám, hogy. Más szavakkal formálisan:, ahol olyan egész szám, hogy.

Prímszámok a Fibonacci sorozatban

Számelméleti alapfogalmak

EGYENLETEK ÉS EGYENLETRENDSZEREK MEGOLDÁSA A Z n HALMAZON. egyenletrendszer megoldása a

24. tétel A valószínűségszámítás elemei. A valószínűség kiszámításának kombinatorikus modellje.

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli beugró kérdések. Készítette: Szántó Ádám Tavaszi félév

Sorozatok A.: Sorozatok általában

Feladatok megoldása. Diszkrét matematika I. Beadandó feladatok. Bujtás Ferenc (CZU7KZ) December 14, feladat: (A B A A \ C = B)

Hiba! Nincs ilyen stílusú szöveg a dokumentumban.-86. ábra: A példa-feladat kódolási változatai

Kalkulus I. Első zárthelyi dolgozat szeptember 16. MINTA. és q = k 2. k 2. = k 1l 2 k 2 l 1. l 1 l n 6n + 8

Komplex számok (el adásvázlat, február 12.) Maróti Miklós

(d) x 6 3x 2 2 = 0, (e) x + x 2 = 1 x, (f) 2x x 1 = 8, 2(x 1) a 1

4. Test feletti egyhatározatlanú polinomok. Klasszikus algebra előadás NE KEVERJÜK A POLINOMOT A POLINOMFÜGGVÉNNYEL!!!

Lineáris kódok. u esetén u oszlopvektor, u T ( n, k ) május 31. Hibajavító kódok 2. 1

Waldhauser Tamás december 1.

16. Az AVL-fa. (Adelszon-Velszkij és Landisz, 1962) Definíció: t kiegyensúlyozott (AVL-tulajdonságú) t minden x csúcsára: Pl.:

MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA)

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

Komplex számok. d) Re(z 4 ) = 0, Im(z 4 ) = 1 e) Re(z 5 ) = 0, Im(z 5 ) = 2 f) Re(z 6 ) = 1, Im(z 6 ) = 0

VÉLETLENÍTETT ALGORITMUSOK. 1.ea.

194 Műveletek II. MŰVELETEK A művelet fogalma

Kvantum párhuzamosság Deutsch algoritmus Deutsch-Jozsa algoritmus

1.1 Példa. Polinomok és egyenletek. Jaroslav Zhouf. Első rész. Lineáris egyenletek. 1 A lineáris egyenlet definíciója

Matematika I. 9. előadás

I. rész. Valós számok

Rudas Tamás: A hibahatár a becsült mennyiség függvényében a mért pártpreferenciák téves értelmezésének egyik forrása

1. A radioaktivitás statisztikus jellege

2. Hatványsorok. A végtelen soroknál tanultuk, hogy az. végtelen sort adja: 1 + x + x x n +...

A tárgy címe: ANALÍZIS 1 A-B-C (2+2). 1. gyakorlat

EGYENLETEK ÉS EGYENLETRENDSZEREK MEGOLDÁSA A Z n HALMAZON. egyenletrendszer megoldása a Z

V. Deriválható függvények

OSZTHATÓSÁG. Osztók és többszörösök : a 3 többszörösei : a 4 többszörösei Ahol mindkét jel megtalálható a 12 többszöröseit találjuk.

6. Számsorozat fogalma és tulajdonságai

Matematikai játékok. Svetoslav Bilchev, Emiliya Velikova

Dr. Tóth László, Kombinatorika (PTE TTK, 2007) nem vagyunk tekintettel a kiválasztott elemek sorrendjére. Mennyi a lehetőségek száma?

Sorozatok október 15. Határozza meg a következ sorozatok határértékeit!

Pályázat címe: Pályázati azonosító: Kedvezményezett: Szegedi Tudományegyetem Cím: 6720 Szeged, Dugonics tér

Pl.: hányféleképpen lehet egy n elemű halmazból k elemű részhalmazt kiválasztani, n tárgyat hányféleképpen lehet szétosztani k személy között stb.?

f (M (ξ)) M (f (ξ)) Bizonyítás: Megjegyezzük, hogy konvex függvényekre mindig létezik a ± ben

= λ valós megoldása van.

A függvénysorozatok olyanok, mint a valós számsorozatok, csak éppen a tagjai nem valós számok,

18. Differenciálszámítás

Általános taggal megadott sorozatok összegzési képletei

1. Gyökvonás komplex számból

Nagy Gábor compalg.inf.elte.hu/ nagy

7. Számelmélet. 1. Lehet-e négyzetszám az a pozitív egész szám, amelynek tízes számrendszerbeli alakjában 510 darab 1-es és valahány 0 szerepel?

Kongruenciák. Waldhauser Tamás

Diszkrét matematika I.

Sorozatok, határérték fogalma. Függvények határértéke, folytonossága

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Data Security: Public key

Függvényhatárérték-számítás

Mőbiusz Nemzetközi Meghívásos Matematika Verseny Makó, március 26. MEGOLDÁSOK

Bevezetés az algebrába komplex számok

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Matematika B4 I. gyakorlat

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

A G miatt (3tagra) Az egyenlőtlenségek két végét továbbvizsgálva, ha mindkét oldalt hatványozzuk:

1. Gyökvonás komplex számból

Kidolgozott feladatok a nemparaméteres statisztika témaköréből

Eseme nyalgebra e s kombinatorika feladatok, megolda sok

Sapientia Egyetem, Matematika-Informatika Tanszék.

6. Elsőbbségi (prioritásos) sor

Az új építőipari termelőiár-index részletes módszertani leírása

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Diszkrét matematika I.

Kombinatorika. Variáció, permutáció, kombináció. Binomiális tétel, szita formula.

INJEKTIVITÁS ÉS EGYÉB TULAJDONSÁGOK MEGOLDOTT FELADATOK

Kalkulus II., második házi feladat

Kétoldali hibás Monte Carlo algoritmus: mindkét válasz esetén hibázhat az algoritmus, de adott alsó korlát a hibázás valószínűségére.

2018, Diszkre t matematika. 10. elo ada s

megtalálásának hihetetlen nehéz voltán alapszik. Az eljárás matematikai alapja a kis FERMAT-tétel egy következménye:

1. Adatok közelítése. Bevezetés. 1-1 A közelítő függvény

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Eötvös Loránd Tudományegyetem Informatikai Kar. Analízis 1. Írásbeli tételek. Készítette: Szántó Ádám Tavaszi félév

Lineáris kódok. sorvektor. W q az n dimenziós s altere. 3. tétel. t tel. Legyen K [n,k,d] kód k d (k 1). Ekkor d(k)=w(k)

Bevezetés az algebrába az egész számok 2

Kis Mihály. Prímtesztek és prímfaktorizáció

Matematikai statisztika

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Átírás:

2.5. A lieáris kogruecia egyelet. Defiíció: Kogruecia Az a és b egész számokat kogruesek modjuk az modulus szerit, ha az szeriti osztás utái maradékaik megegyezek, vagy ami ugyaaz: ha. Jelölésbe: a bmod. 1. Tétel: A kogrueciáko végezhető műveletek tétele Legye a bmod és c d mod! Akkor igazak az alábbi állítások: ( a b) 1. a c b d mod, 2. a c bd mod, b 3. mod, k k 4. a b modm, a ha k a, k b és l ko k, 1 ha m (1) (2) (3) (4) A tétel bizoyítását az olvasóra bízzuk. Defiíció: A lieáris kogruecia egyelet Az a x bmod, a, b Z, Z (5) egyeletet, melybe evezzük. x Z az ismeretle, lieáris kogruecia egyeletek Tétel: A lieáris kogruecia egyelet megoldhatósági tétele Legye az (5) egyeletre d lkoa, a x y. Az (5) lieáris kogruecia egyeletek akkor és csak akkor va megoldása, ha d b. Ha va megoldás, akkor végtele sok va, de ezeket egy számú megoldást tartalmazó úgyevezett megoldás alapredszerből megkaphatjuk az egész számú többszöröseiek a hozzáadásával. Az alapredszer elemeit a 0 x itervallumból választjuk ki. Az alapredszer megoldásai az alábbi módo írhatók fel: d x 0 x i b / d mod i / d mod, i 1,2,, d 1 x, x 0 (6) (7) Bizoyítás ax b Legye q 1, q 2, q q 2 q1. Akkor a lieáris kogruecia egyelet ax q1 b q2 alakra írható át, amiből az ax q b egyelet adódik, vagyis hogy a b az a és az lieáris kombiációja. Ha azt akarjuk, hogy legye megoldás, akkor b La, fe kell álljo, ahol L a, az a és lieáris kombiációiak a halmaza. Ha ez em áll fe, akkor ics megoldás.

A lieáris kombiációba lévő elemeket viszot a d lkoa, legagyobb közös osztó osztja, és csak azokat osztja a lieáris kombiációk halmazáak jellemzési tétele szerit. Legye most b olya, hogy. Akkor va olya k b k d egész szám, hogy. A legagyobb közös osztó viszot az a és az lieáris kombiációja, azaz va olya és egész, hogy d a x y. x Ez a formula viszot egyeértékű az a x d mod lieáris kogruecia egyelettel, ha az szeriti maradékokat ézzük. Beszorozva itt k -val a x k d k mod adódik, amiből azoal látható, hogy az x b / d mod x k x megoldás. További megoldásokat kapuk, hogyha 0 x i képezzük az x0 i / d mod, i 1,2,, d 1 számokat, ugyais a lieáris kogruecia egyeletbe törtéő behelyettesítés utá az ax0 a i / d, i 1,2,, d 1 jeleik meg a baloldalo, ahol a második tag osztható -el, mert a az a -t osztja, így az megmarad, tehát ez a tag em módosítja az első tag általi maradékot. Ezeket a megoldásokat alapmegoldásokak evezzük. Nyílvávaló, hogy ha egész többszörösét hozzáadom az alapmegoldásokhoz, akkor újra megoldást kapok, csak az már em lesz alapmegoldás (em viselkedik maradékkét.) d y d b A lieáris kogruecia egyelet megoldására algoritmus kostruálható, ugyais a kívát kibővített euklideszi algoritmusból megkapható. 2.5.1. algoritmus Lieáris kogruecia megoldó 1 Lieáris_kogruecia_megoldó (a, b,, X) 2 // Iput paraméterek: a,b,z, >0 3 // Output paraméter : X egyidexes tömb 4 // idexelés 0-tól 5 Kibővített_Euklidesz (a,, d, x, y ) 6 Hossz[X] 0 7 IF d b 8 THEN x x b / d mod 0 9 Hossz[X] d 10 FOR i 1 TO d 1 DO x i / d mod 11 x i 0 12 RETURN (X) 13 // Hossz[X]=0 jeleti, hogy ics megoldás x a

1. Példa: 3604 x 136 mod 3332 Láttuk, hogy l ko3604,3332 68 123604 133332. 136 osztható 68-cal, így az egyeletek va megoldása. Az alapredszer 68 külöböző elemet tartalmaz. Most b / d 136/ 68 2, / d 3332 / 68 49, x 12 68 56. A megoldások: x 56 2 112, x 112 49 161, x 112 2 49 210,, 0 x 112 67 49 3395 63 mod 3332. 67 1 Defiíció: A multiplikatív iverz Legye a lieáris kogruecia egyelet 2 ax 1 mod, a Z, Z, koa, 1 l (8) a alakú (azaz és legyeek relatív prímek). Az egyelet egyetle alapmegoldását az a szám szeriti multiplikatív iverzéek evezzük. Jelölése: 1 x a mod. (9) A multiplikatív iverz meghatározása törtéhet a lieáris kogruecia megoldó 2.5.1. algoritmus segítségével. Természetese a FOR ciklus alkalmazására az eljárásba em lesz szükség. 2. Példa: 5 1? mod 8 5x 1 mod 8 megoldását keressük. Lépésszám a q r d x y 0 8 5 1 3 1 2-1-12 = -3 1 5 3 1 2 1-1 1-1(-1) = 2 2 3 2 1 1 1 1 0-11 = -1 3 2 1 2 0 1 0 1-20 = 1 4 1 0-1 1 1 0 Láthatóa lko(5,8)=1, tehát va multiplikatív iverz. 1=28+(-3)5=16-15. Az a együtthatója 3, amiek a 8 szeriti maradéka 3+8=5. Tehát az 5 multiplikatív iverze 8-ra ézve éppe saját maga. Elleőrzés: 55=25=38+1.

2.6. RSA Sok esetbe többek között a majd ismertetésre kerülő RSA algoritmusba szükség va egészek hatváya valamely modulus szeriti maradékáak meghatározására. Legye a, b, Z. A feladat c a mod meghatározása lehetőleg elfogadható idő alatt. Ilyeek bizoyul a moduláris hatváyozás algoritmusa. Ötlete a szám biáris felírásából jö. Legyeek a b bitjei: bk, bk 1,, b1, b0. A legmagasabb helyiértékű bit 1-es. Ha b -ek ki akarjuk számítai az értékét, akkor ezt megtehetjük a 2 hatváyaival törtéő számítással, k k1 1 0 b bk 2 bk 1 2 b1 2 b0 2. Ugyaezt az eredméyt megkaphatjuk a gazdaságosabb Horer séma szerit: b k 2 bk 1 2 b1 2 b0 b. (1) Itt láthatóa csak kettővel való szorzást és egy ulla vagy egy hozzáadását kell végezi, melyek számítástechikailag hatékoy műveletek. Ez aál ikább haszos, mivel még a b értékét sem kell kiszámítai az algoritmusba, hisze az adott, haem csak az egyes bitjeit kell eléri, ami eltolásokkal hatékoya megvalósítható. A b szám a kitevőbe va, ezért a hatváyozás sorá a kettővel való szorzásak a égyzetreemelés az egy hozzáadásáak pedig az alappal törtéő szorzás felel meg. Mide lépés utá vehető a modulo szeriti maradék, így a haszált számtartomáy mérete mérsékelt marad. (Mekkora?) A megfelelő algoritmus pszeudokódja: 2.6.1. algoritmus Moduláris hatváyozó 1 Moduláris_hatváyozó (a, b,, c) 2 // Iput paraméterek: a,b,z, a,b,>0 3 // Output paraméter: cz, c0 4 p 0 5 c 1 6 FOR i k DOWNTO 0 DO 7 p 2p 8 2 c c mod 9 IF b i 1 10 THEN p p 1 11 c c amod 12 RETURN c b Az algoritmusba téylegese a p értékét em kell kiszámítai, mert az végül a b majd. értékét adja

1. Példa: 118 2005 mod 137 b =200510= (111 1101 01012), a=118, =137. k b k 2 c mod c amod 10 1 1 2 = 1 1 1 118 = 118 118 9 1 118 2 = 13924 87 87 118 = 10266 128 8 1 128 2 = 16384 81 81 118 = 9558 105 7 1 105 2 = 11025 65 65 118 = 7670 135 6 1 135 2 = 18225 4 4 118 = 472 61 5 0 61 2 = 3721 22 4 1 22 2 = 484 73 73 118 = 8614 120 3 0 120 2 = 14400 15 2 1 15 2 = 225 88 88 118 = 10384 109 1 0 109 2 = 11881 99 0 1 99 2 = 9801 74 74 118 = 8732 101 Az RSA algoritmus fel fogja tételezi, hogy agy prímszámaik vaak. Ilyeek keresésére egy eszköz lehet (em a leghatékoyabb és em abszolút biztos) az alábbi tétele alapuló algoritmus. 1. Tétel: A Fermat tétel Ha prím, akkor p A tételt em bizoyítjuk.. a p1 1 mod p, a 1,2,, p 1. (2) A tételre épülő prímszám elleőrzési algoritmus egy egyszerű, de em teljese megbízható változatáak a pszeudokódja: 2.6.2. algoritmus Fermat féle álprímteszt 1 Fermat_teszt (, p) 2 // Iput paraméter: Z, >1 3 // Output paraméter: p logikai érték 4 // igaz lehet prím 5 // hamis em prím 6 7 Moduláris_hatváyozó (2, -1,, c) 3 p( c =1) 4 RETURN (p) Ha ez az algoritmus azt modja, hogy a szám összetett, akkor az biztosa em lesz prím. Ha azt modja, hogy lehet, hogy prím, akkor agy eséllyel valóba prímet vizsgált, ugyais 10000- ig terjedőe a számok között csak 22 olya va, amely em prím és a teszt esetlegese prímek miősíti. Ilyeek a 341, 561, 645, 1105,. Ötve bites számok eseté már csak a számok egy

milliomod része lehet ilye, 100 bitesekél pedig ez az aráy 1:10 13. Eze hibák egy része kiszűrhető azzal, hogy a 2 helyett más alapot is beveszük a moduláris hatváyozásba, például a 3-at, stb. Sajos azoba vaak olya számok, amelyek midegyik alap eseté prímek maszkírozzák magukat eél az algoritmusál. Ezek az úgyevezett Carmichael számok. A Carmichael számok relatíve agyo kevese vaak. (Valójába végtele sok ilye szám va. Ilyeek: 561, 1105, 1729, Az első egy milliárd szám között csak 255 ilye va.) 2. Példa: Dötsük el, hogy a 11 és a 12 prímek-e? 2 10 =? mod 11, 10 = (1010) 2 11 =? mod 12, 11=(1011) 3 1 1 2 = 1 1 2 = 2 2 0 2 2 = 4 1 1 4 2 = 16 5 5 2 = 10 0 0 10 2 = 100 1 3 1 1 2 = 1 1 2 = 2 2 0 2 2 = 4 1 1 4 2 = 16 4 4 2 = 8 0 1 8 2 = 64 4 4 2 = 8 2 10 1 mod 11 Tehát a 11 agy eséllyel prím. 2 11 8 mod 12 Tehát a 12 em prím. Eze előkészületek utá térjük rá a fejezet céljára a yilváos kulcsú titkosításra A titkosítás alapja az eredeti szöveg átalakítása, kódolása. A yílváos kulcsok haszálata azt jeleti, hogy mide résztvevőek va egy yílváos, mideki számára hozzáférhető kulcsa (P, személyes, Private) és egy titkos, más által em ismert kulcsa (S, titkos, Secret). Legye M az üzeet. Legye a két résztvevő A és B. A küldi B-ek az M üzeetet titkosítva. Az elküldött titkosított szöveg C=PB(M), B megkapja a C üzeetet és a titkos kulcsával dekódolja M=SB(C). A kulcsok egymás iverzei, és úgy vaak kialakítva, hogy a P kulcs révé köyű legye titkosítai, de a kulcs ismeretébe agyo eheze lehesse - praktikusa lehetetle legye - az S kulcsot meghatározi. A digitális aláírás ilyekor törtéhet úgy, hogy a küldő a titkosított C szöveg mellé akár yílta odaírja a saját Q azoosítóját (aláírását), majd aak az R=SA(Q) titkosítottját. Ezutá B a Q alapjá tudva, hogy kit evez meg az aláírás, aak privát kulcsával dekódolja R-et. Q =PA(R). Ha Q =Q, akkor em törtét átviteli hiba, vagy hamisítás, egyébkét ige. Persze Q az M-mel együtt is kódolható. Ez aak felel meg, mitha az első esetbe yílt levelezőlapo lee az aláírásuk, a másodikba pedig mitha borítékba tettük vola. Alább közöljük az RSA (Rivest Shamir - Adlema) yílváos kulcsú titkosítás algoritmusát. Az algoritmus feltételez két agy prímszámot. (A gyakorlatba legalább 100-200 jegyűekre va szükség, hogy a titkosítás praktikusa feltörhetetle legye.) A P kulcs felépítése P e,, ahol a két prím szorzata, e pedig egy kis páratla szám. Az S S d,. kulcs

2.6.3. algoritmus RSA kulcsok meghatározása 1 RSA_kulcsok_meghatározása (p, q, e, P, S) 2 // Iput paraméterek: p, q, e 3 // Output paraméterek: P, S 4 IF p vagy q em prím vagy e<3 vagy e páros 5 THEN RETURN ( Nics kulcs ) 6 f p 1 q 1 pq 7 8 IF l koe, f 1 9 THEN RETURN ( Nics kulcs ) 10 1 d e mod f 11 RETURN P e,, S d, A szöveg titkosítása a C PM M e mod M SC C d mod alapjá törtéik. Dekódolása pedig az alapjá. A szöveg darabolásáak bitméretét az Az eljárás helyességét em bizoyítjuk. 3. Példa: Számpélda RSA algoritmusra (em életszerű, mivel a prímek kicsik) Legye a titkos választás: p 11, q 29, p q 11 29 319, 3 f A kibővített euklideszi algoritmust alkalmazzuk. e p 1 q 1 10 28 szabja meg. e, 280 f f / e f mod e 280 3 93 1 1 1-93 3 1 3 1 1 0 1 1 0-1 1 1 0 Láthatóa Lko f, e 1 és e multiplikatív iverze d e 1 93. Ez utóbbi helyett 280-at hozzáadva vesszük a 187-et. Ezek utá akkor P 3;319 közölhető kulcs 3 PM M mod 319 S 187;319 titkos kulcs 187 SC C mod 319 Legye az üzeetük 100. Egy darabba titkosítható, mivel ez kisebb, mit 319. Titkosítsuk, majd fejtsük meg az üzeetet. Titkosítás: C= 100 3 mod 319 310=112 1 1 1 2 = 1 1 1 100 = 100 100 0 1 100 2 = 10000 111 111 100 = 11100 254 Tehát a titkosított érték: C PM 254 d x y

Megfejtés: M= 254 187 mod 319 187 10 =10111011 2 Tehát a megfejtés: M SC 100 7 1 1 2 = 1 1 1 254 = 254 254 6 0 254 2 = 64516 78 5 1 78 2 = 6084 23 23 254 = 5842 100 4 1 100 2 = 10000 111 111 254 = 28194 122 3 1 122 2 = 14884 210 210 254 = 53340 67 2 0 67 2 = 4489 23 1 1 23 2 = 529 210 210 254 = 53340 67 0 1 67 2 = 4489 23 23 254 = 5842 100 FELADATOK 1. Bizoyítsuk be, hogy ha a bmod és k közös osztója a és b-ek, akkor a b mod! k k l kok, 2. Oldjuk meg az alábbi lieáris kogruecia egyeleteket! Adjuk meg a megoldások alapredszerét! Írjuk fel a teljes megoldásredszert! a. 2x 6 mod8 b. 4x 4 mod4 c. 18x 24 mod60 d. 63x 81 mod72 e. 2006x 2005 mod 2007 3. Határozzuk meg az alábbi számokat, ha értelmezve vaak! Az alapértelmezett megoldást adjuk meg! x 5 mod 9 a. b. x 2006 mod 2007 c. x 511 mod 1023 4. Számítsuk ki az alábbi számokat! 100 100 mod 101 a. b. 123 2006 mod 2007 c. 2 65536 mod 255 5. Mit mod a Fermat féle álprímteszt az alábbi számok eseté? 123, 234, 345, 511, 1023, 1105, 2047, 65535 6. A üze B-ek. RSA kódolással kódoljuk, majd dekódoljuk az alábbi üzeeteket és a hozzátartozó aláírást! Maximum háy bites egységekre lehet tördeli az üzeetet? a. pa=29, qa=31, ea=11, pb=97, qb=101, eb=7, M= x, Q= A

3. Elemi diamikus halmazok 3.1. A tömb adatstruktúra Egy adastruktúra számtala adatot tartalmazhat. Modhatjuk, hogy egy adathalmazt tároluk egy struktúrába. Számukra a diamikus halmazok leszek fotosak. Defiíció: Diamikus halmaz Az olya halmazt, amely az őt felhaszáló algoritmus sorá változik (bővül, szűkül, módosul) diamikus halmazak evezzük. A diamikus halmazok elemei tartalmazhatak az iformációs adatmezőike felül kulcsmezőt, és mutatókat (poitereket), amelyek a diamikus halmaz más elemeire mutatak. (pl: a következő elemre). Felsoroluk a diamikus halmazoko éháy általáosságba értelmezett műveletet. Kokrét esetekbe ezek közül egyesek el is maradhatak, vagy továbbiak is megjelehetek. Az S jelöli a szóba forgó halmazt, k kulcsot ad meg és x mutató a halmaz valamely elemére. Feltételezzük, hogy a kulcsok között értelmezett a kisebb, agyobb, egyelő reláció. Lekérdező műveletek KERES ( S, k, x ) adott k kulcsú elem x mutatóját adja vissza, vagy NIL, ha ics. MINIMUM ( S, x ) A legkisebb kulcsú elem mutatóját adja vissza MAXIMUM ( S, x ) A legagyobb kulcsú elem mutatóját adja vissza KÖVETKEZŐ ( S, x, y ) az x elem kulcsa utái kulcsú elem mutatóját adja vissza, NIL, ha x utá ics elem ELŐZŐ ( S, x, y ) az x elem kulcsa előtti kulcsú elem mutatóját adja vissza, NIL, ha x előtt ics elem BESZÚR ( S, x ) TÖRÖL ( S, x ) Módosító műveletek az S bővítése az x mutatójú elemmel az x mutatójú elemet eltávolítja S-ből Az egyes műveletek végrehajtásukat tekitve lehetek statikusak (passzívak), vagy diamikusak (aktívak) aszerit, hogy a struktúrát változatlaak hagyják-e vagy sem. A módosító műveletek alapvetőe diamikusak, a lekérdezők általába statikusak, de em ritká lehetek szité diamikusak. (A diamikus lekérdezés olya szempotból érdekes és fotos, hogy ha egy elemet a többitől gyakrabba keresek, akkor azt a struktúrába a keresés folyamá a megtalálási útvoalo közelebbi helyre helyezi át a művelet, ezzel megrövidíti a későbbi keresési időt erre az elemre, vagyis a művelet változást eredméyez a struktúrába.) Defiíció: A sorozat adatstruktúra Sorozatak evezzük az objektumok (elemek) olya tárolási módját (adatstruktúráját), amikor az elemek a műveletek által kijelölt lieáris sorredbe követik egymást. Tipikus műveletek: keresés, beszúrás, törlés. A sorozat egyik lehetséges implemetációja - gyakorlati megvalósítása, megvalósítási eszköze a tömb. A tömb azoos felépítésű (típusú) egymást fizikailag követő memóriarekeszeket jelet. Egy rekeszbe egy elemet, adatrekordot helyezük el. Az egyes tömbelemek helyét az idexük határozza meg. Az elemek fotos része a kulcsmező, melyet kulcs[ax] révé kérdezhetük le az A tömb x idexű eleme eseté. Számukra léyegtele lesz, de a gyakorlat szempotjából alapvetőe fotos része az adatrekordak az iformációs (adat) mezőkből álló

rész. A tömböt szokás vektorak is evezi. Ha a lieáris elhelyezése kívül egyéb szempotokat is figyelembe veszük, akkor ezt az egyszerű szerkezetet el lehet boyolítai. Ha például az elemek azoosítására idexpárt haszáluk, akkor mátrixról vagy táblázatról beszélük. Ilye esetbe az első idex a sort, a második az oszlopot adja meg. (Itt tulajdoképpe olya vektorról va szó, amelyek elemei maguk is vektorok.) A struktúráak és így az implemetációak is lehetek attributumai jellemzői, hozzákapcsolt tulajdoságai. A tömb esetébe ezeket az alábbi táblázatba adjuk meg. Attributum Leírás fej[a] A tömb első eleméek idexe. NIL, ha a tömbek ics eleme. vége[a], A tömb utolsó eleméek idexe. NIL, ha a tömbek ics eleme. hossz[a] A tömbelemek száma. Zérus, ha a tömbek ics eleme. tömbméret[a] aak a memóriaterületek a agysága tömbelem egységbe mérve, ahová a tömböt elhelyezhetjük. A tömb eze terület elejé kezdődik. Vizsgáljuk meg most a műveletek algoritmusait! A keresési algoritmus. Az A tömbbe egy k kulcsú elem keresési algoritmusa pszeudokóddal lejegyezve következik alább. Az algoritmus NIL-t ad vissza, ha a tömb üres, vagy a tömbbe ics bee a keresett kulcsú elem. A tömb elejétől idul a keresés. Ha a vizsgált elem egyezik a keresett elemmel, akkor azoal viszatérük az idexével. (Realizáció szempotjából úgy is elképzelhetjük a dolgot, hogy a tömb elemeiek idexelése 1-gyel kezdődik és a NIL eredméyt a 0 idexszel jelezzük.) Ha em egyezik, akkor az INC függvéyel öveljük eggyel az idex értékét (rátérük a következő elemre) és újra vizsgáluk. Addig öveljük az idexet, míg az érvéyes idextartomáyból ki em lépük vagy meg em találjuk a keresett kulcsú elemet. A legrosszabb eset az, ha az elem ics bee a tömbbe, ekkor ugyais az összes elemet meg kell vizsgáli így az algoritmus időigéye: T()=(), ahol =hossz[a], a tömbelemek száma. 3.1.1. algoritmus Keresés tömbbe // T 1 KERESÉS_TÖMBBEN (A, k, x ) 2 // Iput paraméter: A - a tömb 3 // k a keresett kulcs 4 // Output paraméter: x - a k kulcsú elem poitere (idexe), ha va ilye elem vagy NIL, ha ics 5 // Lieárisa keresi a k kulcsot. 6 // 7 x fej[a] 8 IF hossz[a] 0 9 THEN WHILE x vége[a] és kulcs[ax] k DO 10 INC(x) 11 IF x> vége[a] 12 THEN x NIL 13 RETURN (x)

Az új elem beszúrásáak algoritmusa az A tömb adott x idexű helyére szúrja be az új elemet. Az ott lévőt és a mögötte állókat egy hellyel hátrább kell toli. Emiatt az időigéy T()=(). 3.1.2. algoritmus Beszúrás tömbbe // T 1 BESZÚRÁS_TÖMBBE ( A, x, r, hibajelzés) 2 // Iput paraméter: A - a tömb 3 // x a tömbelem idexe, amely elé törtéik a beszúrás, ha a tömb em üres és az x idex létező elemre mutat. Üres tömb eseté az x idexek ics szerepe, a beszúradó elem az első helyre kerül. 4 // r a beszúradó elem (rekord) 5 // Output paraméter: hibajelzés - a beszúrás eredméyességét jelzi 6 // 7 IF hossz[a] 0 8 THEN IF (fej[a] x vége[a]) és (tömbméret[a] > hossz[a]) 9 THEN FOR i vége[a] DOWNTO x DO Ai+1 Ai Ax r INC(hossz[A]) INC(vége[A]) hibajelzés: sikeres beszúrás ELSE hibajelzés: em létező elem,vagy ics az új elemek hely 16 ELSE fej[a] vége[a] hossz[a] 1 17 A1 r 18 RETURN ( hibajelzés ) Ezzel az algoritmussal em tuduk az utolsó elem utá beszúri. A problémát egy erre a célra megírt külö algoritmussal is megoldhatjuk. Legye eek CSATOL_TÖMBHÖZ a eve. Az olvasóra bízzuk pszeudokódjáak megírását. Írjuk pszeudokódot arra az esetre, amikor a beszúrás az adott idexű elem mögé törtéik! Eek is va egy szépséghibája! Micsoda? Hogya korrigálható?