Kryptosysteemi ElGamal , tai salauksen El Gamal (tai El Gamal järjestelmä ) on protokolla epäsymmetrinen keksi Taher ELGAMAL 1984 ja rakennettu ongelma diskreetin logaritmin .
Tätä protokollaa käyttää ilmainen ohjelmisto GNU Privacy Guard, jonka viimeisimmät versiot toteuttavat jopa sen version elliptisillä käyrillä . Toisin kuin RSA- salaus , se ei ole koskaan ollut patenttisuojan alla .
Taher Elgamalin perustamisartikkeli esittelee salausprotokollan , mutta myös digitaalisen allekirjoituksen , jota yhtäläisyydistään huolimatta (ne molemmat rakentuvat erillisen logaritmin ongelmaan ) ei pidä sekoittaa. Tämä artikkeli käsittelee vain kanssa salauksen protokollan .
Algoritmi on kuvattu rajalliselle sykliselle ryhmälle , jonka sisällä Diffie-Hellmanin päätösongelma (DDH) on vaikeaa. Tarkempia tietoja on kohdassa Resistanssi CPA-hyökkäyksille .
Voimme huomata, että DDH on vahvempi työhypoteesi kuin diskreetin logaritmin, koska se pitää paikkansa, jos koskaan, diskreetin logaritmin ongelma on vaikea. On myös ryhmiä, joissa DDH- ongelma on helppo, mutta joissa ei ole tehokasta algoritmia erillisen logaritmin ratkaisemiseksi .
Koska kyseessä on epäsymmetrinen salausmenetelmä , salausjärjestelmä koostuu kolmesta ( todennäköisyysperusteisesta ) algoritmista : GenClefs , Encrypt ja Decrypt .
Oletuksena on, että Bob haluaa lähettää viestin Alicelle . Mutta tämä viesti sisältää arkaluontoisia tietoja, joten Bob ei halua, että kukaan muu kuin Alice ymmärtää sen. Joten Bob salaa viestinsä.
Koska epäsymmetriset salausmenetelmät ovat yleensä hitaampia kuin niiden symmetriset analogit, ElGamalin salausta käytetään käytännössä usein osana hybridisalausta , kuten sen PGP-spesifikaatiota.
Yksi tapa tarkastella tätä salausjärjestelmää on vetää rinnakkain Diffie-Hellman- avaimenvaihtoprotokollan kanssa . Salausalgoritmin muodostuu tällöin lähettämällä viestin salattu jonka kertakäyttöinen maski alle jaetun avaimen , joka voidaan laskea Alice koska hän on (katso kuva viereisellä sivulla).
Salausjärjestelmän ensimmäinen vaihe on tuottaa avainpari: julkinen avain ja salainen avain . Ensimmäistä käytetään viestien salaamiseen ja toista niiden salauksen purkamiseen.
Joten Bobilla on pääsy Alicen julkiseen avaimeen . Salataksesi ryhmän elementtinä koodatun viestin Bob aloittaa piirtämällä satunnaisluvun ja käyttää sitä peittämään viestin laskennan aikana . Sallimaan Alice purkaa viestin, Bob lisäävät tätä osa viestiä tietoa tuotteen aiheuttamasta vaarasta: .
Lopuksi salaus koostuu näistä kahdesta kappaleesta : ja Bob lähettää Alicelle.
Pääsy ja Alice voi siten laskea:
Ja pystyy siis löytämään viestin .
Tarkastellaan julkista tietoa ; Ymmärrämme, että vain osan elementit tehdään näkyviksi eikä eksponentteja (tässä x ja s vastaavasti). Epävirallisesti voimme huomata, että erillisen logaritmin ongelma voidaan tulkita siten, että on vaikea löytää salaisia tietoja ( esimerkiksi), jotka mahdollistaisivat viestin löytämisen.
Tarkemmin sanottuna Diffie-Hellmannin (tai DDH ) päätösongelma mahdollistaa järjestelmän semanttisen turvallisuuden takaamisen .
Esittely VähennysOlettaen, että meillä on vastustaja ElGamal-salauksen semanttista turvallisuutta vastaan, joka voittaa ei vähäpätöisellä todennäköisyydellä ε . Sitten on mahdollista rakentaa vastustaja DDH: ta vastaan, mikä olisi ristiriidassa tämän ongelman oletetun vaikeuden kanssa. Tämä juuri kuvailema pienennys muodostaa kaavion turvatodistuksen.
Tämän vastustajan rakentamiseksi, jota jäljempänä kutsutaan " pelkistykseksi ", oletetaan olevan kolminkertainen DDH : n tarkoitus on sitten päättää, onko todennäköisyys vähäpätöinen vai ei. Tätä varten sillä on käyttöliittymä edellä kuvatun vastustajan kanssa ElGamalin krypto-järjestelmän semanttisen turvallisuuden edessä.
Vähennys lähettää sen vuoksi julkisen avaimen vastustajalle ElGamalia vastaan . Tuottaessaan haaste vastustaja vastaan semanttinen turvallisuus on salausjärjestelmä, vähennys lähettää salatun: sillä hänen valintansa. Jos tripletti on koskaan DDH- tripletti , toisin sanoen jos , niin se muodostettaisiin kelvolliseksi salaukseksi ElGamalille julkisen avaimen suhteen . Toisaalta, jos eksponentti on satunnainen, niin vastustaja ElGamalia vastaan ei pysty erottamaan haasteen kahta viestiä muuten kuin vastaamalla satunnaisesti.
Meidän on vain vastattava "1" (vastaa sitä, että DDH: n haastaja lähetti DDH-tripletin), jos vastustajamme koskaan onnistuu, ja "0" (vastaa sitä, että DDH: n haastaja lähetti kolminkertaisen satunnaisuuden) muuten.
AnalyysiTulemme nyt rajoittaa etu voittaa meidän vähennystä etu ε oletetun vastustajan vastoin järjestelmän.
Aloitamme huomauttamalla, että meillä on kaksi tapausta: joko haastajamme lähettämä haaste on todellinen DDH- tripletti tai se on tasaisesti piirretty tripletti.
Siten meillä on etu, joka on edelleen merkittävä: saman turvallisuuden saavuttamiseksi DDH: n ja kryptojärjestelmämme välillä riittää, että DDH- ongelma pysyy turvassa ylimääräisellä suojausbitillä.
Malleissa, joissa on enemmän voimaa käyttävä hyökkääjä, kuten valittujen salaushyökkäysten alla, ElGamal-salausjärjestelmä ei ole turvallinen sen muovattavuuden vuoksi ; todellakin, kun salaus viestille , voimme rakentaa salauksen , joka on voimassa viestille .
Tämä muovattavuus (se on moninkertaistuva homomorfismi ) toisaalta mahdollistaa sen käytön esimerkiksi sähköisessä äänestyksessä .
On kuitenkin olemassa variantteja, jotka saavuttavat turvallisuuden valittuja salaushyökkäyksiä vastaan, kuten Cramer-Shoup-salausjärjestelmä, joka voidaan nähdä ElGamal-salauksen laajennuksena.
Esimerkiksi voidaan ottaa ryhmä generaattorilla g = 5 ( Varoitus : tämä ei ole turvallinen ryhmä, nämä arvot otettiin vain yksinkertaisen esimerkin tuottamiseksi).
Mahdollinen julkinen avain voisi siis olla :, ja salainen avain .
Huomaa, että koska salaus on todennäköisyysalgoritmi , samalle viestille on olemassa erilaisia mahdollisia lähtöjä. Mahdollinen salaus viestille 42 voisi siis olla (58086963, 94768547) , mutta myös (83036959, 79165157) riskeille r yhtä suuri kuin 6689644 ja 83573058 .
Siitä huolimatta, jos teemme laskun kahdelle luvullemme, saamme tuloksen 42 .