Ugrás a tartalomhoz

discrete logarithm

A Wikiszótárból, a nyitott szótárból


Főnév

discrete logarithm (tsz. discrete logarithms)

  1. (informatika) diszkrét logaritmus

A discrete logarithm (diszkrét logaritmus) a klasszikus logaritmus moduláris aritmetikai megfelelője – egy központi fogalom a kriptográfiában, különösen nyilvános kulcsú titkosítási rendszerek (mint a Diffie–Hellman, ElGamal, DSA) alapjául szolgál. A diszkrét logaritmus problémája nehezen megoldható, így kriptográfiai biztonságot nyújt.



🧠 1. Alapdefiníció

Adott egy prím p, egy moduláris alaprendszer ℤp∗ (vagy más néven ciklikus csoport), egy generátor g, és egy érték y, akkor a diszkrét logaritmus x az alábbi egyenlet megoldása:

gx≡ymodp

Azt mondjuk:

„A diszkrét logaritmus loggymodp az az egész szám x, amelyre gx≡ymodp.”



📌 2. Összehasonlítás a szokásos logaritmussal

Klasszikus logaritmus Diszkrét logaritmus
bx=y⇒x=logby gx≡ymodp⇒x=loggymodp
Folytonos számhalmazon Egész számokon, modulóval
Könnyen kiszámolható Nehéz visszafelé



🔒 3. Miért fontos?

A diszkrét logaritmus problémára nincs ismert hatékony (polinomiális idejű) algoritmus, ha a prím p elég nagy (pl. 2048 bites). Ezért kriptográfiai biztonságot nyújt.



🧮 4. Példa

Legyen p=23, g=5, y=8. Keressük azt az x-et, amelyre:

5x≡8mod23

Próbálgatással:

  • 51=5
  • Értelmezés sikertelen (formai hiba): {\textstyle 5^2 = 25 ≡ 2 \mod 23}
  • 53=10
  • 54=4
  • 55=20
  • 56=8

✅ Megvan: x=6, mert Értelmezés sikertelen (formai hiba): {\textstyle 5^6 ≡ 8 \mod 23}



📊 5. Megoldási algoritmusok

Naiv keresés

  • Próbáld ki gxmodp minden x=1,2,...,p−1-re
  • Időkomplexitás: O(p)

Baby-step Giant-step (BSGS)

  • Téridő kompromisszum
  • Idő és memória: O(p)

Pohlig–Hellman algoritmus

  • Ha p−1 faktorizálható kis prímekre, akkor gyors

Index calculus

  • Nagy prímekre gyorsabb, de nem működik kis csoportokban
  • Nem alkalmazható pl. elliptikus görbéknél



🧰 6. Python példa – diszkrét logaritmus keresése (naiv mód)

def discrete_log(g, y, p):
    for x in range(1, p):
        if pow(g, x, p) == y:
            return x
    return None

print(discrete_log(5, 8, 23))  # → 6

🧪 7. Kriptográfiai alkalmazások

Algoritmus Felhasználás
Diffie–Hellman Kulcscsere protokoll
ElGamal Nyilvános kulcsú titkosítás
DSA Digitális aláírás
Elliptikus görbéken EC-DH, ECDSA → még nehezebb DLOG-probléma



⛰️ 8. DLOG vs. ECDLOG

Tulajdonság Diszkrét logaritmus (DLOG) Elliptikus DLOG (ECDLOG)
Strukturált csoport ℤp∗ Elliptikus görbe pontjai
Index calculus hatékony ✅ Igen ❌ Nem működik
Biztonság bitméretenként Kevésbé kompakt Sokkal erősebb



🧾 9. Összefoglalás

Fogalom Leírás
Diszkrét logaritmus gx≡ymodp probléma megoldása
Nehézségi szint NP-intermediális (nincs ismert gyors algoritmus)
Alkalmazások Kriptográfia, digitális aláírás, kulcscsere
Algoritmusok Naiv, BSGS, Pohlig–Hellman, Index calculus
Védelem Nagy p, jól választott generátor