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.
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ő.
Határozzuk meg az x-nél kisebb biztonságos prímeket.
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.
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.
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.
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:
DHKeyWrite: meghatároz egy k bites biztonságos prímet, és meghatározza ennek egy gen generátor elemét. Mindekettő base64-es alakját, kiírja a nev szövegállományba
DHKeyRead: a paraméterként megadott nev szövegállományból kiolvassa és visszatéríti a p és gen base64 formában eltárolt értékeket.