Vissza

8. labor

I.
  1. Generáljunk véletlenszerűen egy k számjegyből álló prímszámot (k >=150). Módosítsuk a Miller-Rabin prímtesztelő algoritmust úgy, hogy a 3, 5, 7-el való oszthatóságot külön teszteljük. Javul-e az algoritmus futási ideje? Számoljunk átlag futási időt 10 generált szám esetében.
  2. Vizsgáljuk meg, hogy egy állományban levő számok közül melyek a prímszámok, ahol az állomány tartalma innen letölthető.
  3. Határozzuk meg az x-nél kisebb biztonságos prímeket.
  4. Adott p prímszám esetében határozzuk meg azokat a p-nél kisebb számokat, amelyeknek rendje egyenlő p-1-el, azaz határozzuk meg a generátor elemeket.
  5. Generáljunk véletlenszerűen több n (1024 >= n >= 256) bites biztonságos prímszámot, és határozzuk meg mindegyik prímszám egy generátor elemét. Alakítsuk át őket 256-os számrendszerbe, határozzuk meg a base64-es alakjukat és az eredményt írjuk ki egy állományba. Írjuk meg a visszaalakító műveletsort is: olvassuk ki az állományból a kódolt értékeket, dekódoljuk, majd a kapott 256-os számrendszerbeli "számokat" alakítsuk vissza 10-es számrendszerbe.
  6. Válasszunk véletlenszerűen egy legalább 512 bites prímszámot, majd határozzuk meg egy generátor elemét. Alakítsuk át őket 256-os számrendszerbe, határozzuk meg a base64-es alakjukat és az eredményt írjuk ki egy állományba. Alkalmazva a Diffie-Hellman kulcscserét valamely állományba kimentett prímszám és generator elemét alkalmazva határozzunk meg egy lehetséges közös titkot, amelyben két egymással kommunikáló eszköz megtudna eggyzeni. A közös titok hexadecimális alakját írjuk ki a képernyőre.
II.
  1. Egészítsük ki a linkekben megadott kliens-szerver alkalmazást, úgy hogy az az előadáson tárgyalt Diffie-Hellman kulcscsere protokoll szerint határozzon meg egy közös kulcsértéket, azaz egészítsük ki a bAlg modult a következő függvényekkel:
szerver-kód, kliens-kód, bAlg-kód.

Megoldott feladat:
Kliens-szerver alkalmazás: Diffie-Hellman kulcscsere szerint, konstans p és gen értékekkel.
Szerver-kód, kliens-kód, segéd file.