ElGamal
Tähän artikkeliin tai osioon ei ole merkitty lähteitä, joten tiedot kannattaa tarkistaa muista tietolähteistä. Voit auttaa Wikipediaa lisäämällä artikkeliin tarkistettavissa olevia lähteitä ja merkitsemällä ne ohjeen mukaan. |
ElGamal on julkisen avaimen salausmenetelmä, joka perustuu Diffie-Hellman avaimenvaihtojärjestelmään. Menetelmä perustuu logaritmien laskentaan ja sen on esittänyt Taher Elgamal vuonna 1985.[1]
ElGamal-menetelmää käyttävät mm. GNU Privacy Guard -ohjelmisto, PGP:n uudemmat versiot ja monet muut salausjärjestelmät. DSA (Digital Signature Algorithm) on ElGamal-allekirjoitusmenetelmän variantti, mutta sitä ei tule sekoittaa ElGamal-algoritmiin.lähde?
ElGamal voidaan määrittää missä tahansa syklisessä ryhmässä G. Sen turvallisuus riippuu diskreetin logaritmin laskemisesta ryhmässä G.
Algoritmi
[muokkaa | muokkaa wikitekstiä]ElGamal koostuu kolmesta komponentista: avainten generointi, salausalgoritmi ja salauksen purkualgoritmi.
Avainten generointi tapahtuu seuraavasti:
Liisa valitsee jonkin syklisen ryhmän . Olkoon ryhmän kertaluku eli alkioiden lukumäärä. Tämä kertaluku määrää Liisan käyttämän salakirjoitusjärjestelmän avaimen pituuden.
Seuraavaksi Liisa etsii jonkin ryhmän primitiivisen alkion . Primitiivisen alkion ominaisuus on se, että jokainen syklisen ryhmän alkio voidaan esittää tämän alkion potenssina. Tämän eksponentin laskemista kutsutaan ryhmän diskreetin logaritmin probleemaksi.
Liisa valitsee satunnaisen luvun joukosta .
Liisa laskee ryhmän alkion .
Liisa julkaisee käyttämänsä syklisen ryhmän , sen kertaluvun , primitiivisen alkion ja laskemansa alkion . Nämä muodostavat hänen julkisen avaimensa. Luvun Liisa pitää salaisena avaimenaan.
Salausalgoritmi toimii seuraavasti:
Oletetaan, että Roope haluaa lähettää Liisalle salaisen viestin käyttäen Liisan julkistamaa salakirjoitusjärjestelmää.
Roope konvertoi aluksi viestinsä ryhmän alkioksi käyttäen jotain yksinkertaista ja tunnettua koodausta (vaikkapa ASCII-koodia).
Roope valitsee satunnaisen alkion lukujoukosta .
Tämän jälkeen hän laskee ryhmän alkiot ja .
Roope lähettää Liisalle salakielisen viestin .
Salauksen purku toimii seuraavasti:
Liisa laskee ryhmän alkion .
Nyt .
Ryhmän kertaluvun määräämää avaimen pituutta pitemmät viestit joudutaan pilkkomaan avaimen pituutta pienempiin osiin.
ElGamal-järjestelmää käytetään kuitenkin varsinaisten viestien salaamisen sijasta yleensä ns. avaimenvaihtojärjestelmänä. Tällöin lyhyt symmetrisen salauksen salakirjoitusjärjestelmän avain vaihdetaan ElGamal-järjestelmää käyttäen ja näin vaihdettua avainta käytetään sitten varsinaisten pitempien viestien salaamiseen.
Tehokkuus
[muokkaa | muokkaa wikitekstiä]Viestin salaamiseen ElGamal-järjestelmää käyttäen tarvitaan kaksi potenssiinkorotusta. Nämä potenssiinkorotukset voidaan kuitenkin laskea toisistaan riippumatta. Viestin purkamiseen tarvitaan kuitenkin vain yksi potenssiinkorotus. Desiferoinnissa käytetty laskukaava voidaan nimittäin kirjoittaa muotoon .
Toisin kuin RSA-menetelmässä, laskentaa ei voida nopeuttaa kiinalaista jäännöslausetta käyttäen.
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ Taher Elgamal: A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms (PDF) caislab.kaist.ac.kr. heinäkuu 1985. Viitattu 13.5.2024. (englanniksi)