Homomorfe encryptie

Homomorfe encryptie is een vorm van encryptie die het mogelijk maakt (bepaalde) berekeningen te maken op versleutelde tekst. Het resultaat van deze berekening is ook versleuteld, maar komt na ontsleuteling overeen met het resultaat als dezelfde berekening was uitgevoerd op de oorspronkelijke klare tekst. Om de berekening uit te voeren, hoeft de versleutelde data niet eerst ontsleuteld te worden. Hierdoor kan de versleutelde data ook door een mogelijk onbetrouwbare derde partij beheerd worden.

Daar waar andere vormen van encryptie tot doel hebben voor iedereen zonder de juiste sleutel gegevens verborgen te houden, kan bij homomorfe encryptie voorkomen worden dat zelfs met de juiste sleutel iemand de klare tekst in kan zien. Vooral voor gegevens waarbij privacy of geheimhouding een rol speelt, kan zo voorkomen worden dat verkregen informatie bij decryptie terug te herleiden is naar een enkele individu of entiteit. Voorbeelden hiervan zijn beveiliging van patiëntgegevens (onderzoekers kunnen bijvoorbeeld wel het aantal patiënten of het aantal beddagen per ziekte uit de data herleiden, maar niet wie deze patiënten zijn), financiële data, en verkiezingen (het is niet te herleiden wat iemand heeft gestemd, maar de kiezer kan wel nagaan dat zijn of haar stem is meegenomen in het uiteindelijke resultaat).

Gedeeltelijke homomorfe encryptiesystemen

In onderstaande voorbeelden is de notatie E ( x ) {\displaystyle {\mathcal {E}}(x)} gebruikt als zijnde het coderen van bericht x.

Ongepade RSA

Wanneer de publieke RSA-sleutel modulo m {\displaystyle m} en exponent e {\displaystyle e} is, wordt de encryptie van bericht x {\displaystyle x} verkregen door E ( x ) = x e mod m {\displaystyle {\mathcal {E}}(x)=x^{e}\;{\bmod {\;}}m} . De homomorfe eigenschap is dan

E ( x 1 ) E ( x 2 ) = x 1 e x 2 e mod m = ( x 1 x 2 ) e mod m = E ( x 1 x 2 ) {\displaystyle {\mathcal {E}}(x_{1})\cdot {\mathcal {E}}(x_{2})=x_{1}^{e}x_{2}^{e}\;{\bmod {\;}}m=(x_{1}x_{2})^{e}\;{\bmod {\;}}m={\mathcal {E}}(x_{1}\cdot x_{2})}

ElGamal

In het ElGamal encryptiesysteem, in een cyclische groep G {\displaystyle G} van volgorde q {\displaystyle q} met generator g {\displaystyle g} , als de publieke sleutel ( G , q , g , h ) {\displaystyle (G,q,g,h)} is, met h = g x {\displaystyle h=g^{x}} , en x {\displaystyle x} als geheime sleutel, is het coderen van bericht m {\displaystyle m} gedaan door E ( m ) = ( g r , m h r ) {\displaystyle {\mathcal {E}}(m)=(g^{r},m\cdot h^{r})} , met een willekeurige r { 0 , , q 1 } {\displaystyle r\in \{0,\ldots ,q-1\}} . The homomorfe eigenschap is dan

E ( m 1 ) E ( m 2 ) = ( g r 1 , m 1 h r 1 ) ( g r 2 , m 2 h r 2 ) = ( g r 1 + r 2 , ( m 1 m 2 ) h r 1 + r 2 ) = E ( m 1 m 2 ) {\displaystyle {\begin{aligned}&{\mathcal {E}}(m_{1})\cdot {\mathcal {E}}(m_{2})=(g^{r_{1}},m_{1}\cdot h^{r_{1}})(g^{r_{2}},m_{2}\cdot h^{r_{2}})\\[6pt]={}&(g^{r_{1}+r_{2}},(m_{1}\cdot m_{2})h^{r_{1}+r_{2}})={\mathcal {E}}(m_{1}\cdot m_{2})\end{aligned}}}

Andere gedeeltelijk homomorfe encryptiesystemen

  • Goldwasser–Micali cryptosystem
  • Benaloh cryptosystem
  • Paillier cryptosystem
  • Okamoto–Uchiyama cryptosystem
  • Naccache–Stern cryptosystem
  • Damgård–Jurik cryptosystem
  • Boneh–Goh–Nissim cryptosystem
  • Ishai-Paskin cryptosystem

Gedeeltelijke homomorfe encryptiesystemen

Een encryptie die op een compacte wijze alle circuits evalueert.[1]

Bronnen, noten en/of referenties