Elgamal - malli on julkisen avaimen salausjärjestelmä , joka perustuu vaikeuteen laskea diskreettejä logaritmeja äärellisessä kentässä . Salausjärjestelmä sisältää salausalgoritmin ja digitaalisen allekirjoitusalgoritmin. ElGamal-järjestelmä on Yhdysvaltojen ( DSA ) ja Venäjän ( GOST R 34.10-94 ) aiempien digitaalisten allekirjoitusstandardien taustalla .
Järjestelmän ehdotti Taher El-Gamal vuonna 1985 . [1] ElGamal kehitti muunnelman Diffie-Hellman-algoritmista . Hän paransi Diffie-Hellman-järjestelmää ja sai kaksi algoritmia, joita käytettiin salaukseen ja todentamiseen. Toisin kuin RSA, ElGamal-algoritmia ei patentoitu, joten siitä tuli halvempi vaihtoehto, koska lisenssimaksuja ei vaadittu. Algoritmin uskotaan kuuluvan Diffie-Hellmanin patenttiin.
ElGamalin salausjärjestelmä on itse asiassa yksi tavoista luoda Diffie-Hellmanin julkisia avaimia . ElGamal-salausta ei pidä sekoittaa ElGamalin digitaaliseen allekirjoitusalgoritmiin.
Viestin on oltava pienempi kuin . Viesti on salattu seuraavasti:
On helppo nähdä, että salatekstin pituus ElGamal-skeemassa on kaksi kertaa alkuperäisen viestin pituus .
Kun tiedät yksityisen avaimen , alkuperäinen viesti voidaan laskea salatekstistä kaavalla:
Samalla se on helppo tarkistaa
ja siksi
.Käytännön laskelmia varten seuraava kaava on sopivampi:
Koska satunnaismuuttuja sisällytetään ElGamal-malliin , ElGamal-salausta voidaan kutsua moniarvoiseksi korvaussalaukseksi. Numeron valinnan satunnaisuuden vuoksi tällaista järjestelmää kutsutaan myös todennäköisyyspohjaiseksi salausmenetelmäksi. Salauksen todennäköisyyspohjainen luonne on etu ElGamal-menetelmälle, koska todennäköisyyspohjaiset salausmenetelmät ovat vahvempia verrattuna menetelmiin, joissa on tietty salausprosessi. ElGamal-salausmenetelmän haittana on, että salateksti on kaksi kertaa selkeän tekstin pituus. Todennäköisyyspohjaisessa salausmenetelmässä itse viesti ja avain eivät määritä salatekstiä yksiselitteisesti. ElGamal-järjestelmässä on tarpeen käyttää satunnaismuuttujan eri arvoja erilaisten viestien salaamiseen ja . Jos käytät samaa , niin vastaaville salateksteille ja relaatio täyttyy . Tästä lausekkeesta voidaan helposti laskea , jos tietää .
Digitaalinen allekirjoitus mahdollistaa tietojen muutosten tunnistamisen ja allekirjoittajan henkilöllisyyden selvittämisen. Allekirjoitetun viestin vastaanottaja voi käyttää digitaalista allekirjoitusta todistaakseen kolmannelle osapuolelle, että allekirjoitus on todella lähettäjän tekemä. Allekirjoitustilassa työskennellessä oletetaan, että on olemassa kiinteä hash-funktio , jonka arvot ovat välissä .
Allekirjoittaaksesi viestin , suoritetaan seuraavat toiminnot:
Tietäen julkisen avaimen viestin allekirjoitus varmistetaan seuraavasti:
Tarkasteltu algoritmi on oikea siinä mielessä, että yllä olevien sääntöjen mukaan laskettu allekirjoitus hyväksytään, kun se varmistetaan.
Muuttaa määritelmää , meillä on
Lisäksi Fermatin pienestä lauseesta seuraa, että
Numeron on oltava satunnainen, eikä sitä saa kopioida eri allekirjoituksille, jotka on saatu samalla salaisen avaimen arvolla.
on helppo varmistaa, että pari on oikea digitaalinen allekirjoitus viestille .
Tällä hetkellä julkisen avaimen salausjärjestelmiä pidetään lupaavimpana. Näitä ovat ElGamal-kaavio, jonka kryptografinen vahvuus perustuu diskreetin logaritmiongelman laskennalliseen monimutkaisuuteen , jossa p , g ja y on laskettava vertailua tyydyttävä x :
Venäjän federaatiossa vuonna 1994 hyväksytty GOST R34.10-1994 , joka säänteli sähköisen digitaalisen allekirjoituksen luomis- ja todentamismenettelyjä, perustui ElGamal-järjestelmään. Vuodesta 2001 lähtien uusi GOST R 34.10-2001 on ollut käytössä käyttämällä yksinkertaisten Galois-kenttien yli määriteltyjen elliptisten käyrien aritmetiikkaa . ElGamal-skeemaan perustuvia algoritmeja on suuri määrä: nämä ovat DSA , ECDSA , KCDSA-algoritmit ja Schnorr-malli .
Joidenkin algoritmien vertailu:
Algoritmi | Avain | Tarkoitus | Kryptografinen vastustuskyky, MIPS | Huomautuksia |
RSA | Jopa 4096 bittiä | Salaus ja allekirjoitus | 2.7•10 28 1300-bittiselle avaimelle | Perustuu vaikeussuurten tekijöiden jakaminen ongelma ; yksi ensimmäisistä epäsymmetrisistä algoritmeista. Sisältyy moniin standardeihin |
ElGamal | Jopa 4096 bittiä | Salaus ja allekirjoitus | Samalla avaimen pituudella kryptografinen vahvuus on yhtä suuri kuin RSA, ts. 2.7•10 28 1300-bittiselle avaimelle | Perustuu vaikeaan ongelmaan diskreettien logaritmien laskemisesta äärellisessä kentässä; avulla voit luoda nopeasti avaimia turvallisuudesta tinkimättä. Käytetään DSA-standardin DSS:n digitaalisessa allekirjoitusalgoritmissa |
DSA | Jopa 1024 bittiä | Vain allekirjoitus | Perustuu diskreetin logaritmitehtävän vaikeuteen äärellisessä kentässä ; hyväksytty valtioksi Yhdysvaltain standardi; käytetään salaiseen ja luokittelemattomaan viestintään; Kehittäjä on NSA. | |
ECDSA | Jopa 4096 bittiä | Salaus ja allekirjoitus | Kryptovastus ja toimintanopeus ovat korkeammat kuin RSA:ssa | Moderni suunta. Monien johtavien matemaatikoiden kehittämä |