Merkle-Hellman kriptosistema

Iš testwiki.
Pereiti į navigaciją Jump to search

Merkle-Hellman kriptosistema – viena pirmųjų viešo rakto kriptosistemų, sukurta 1978 metais Ralph Merkle ir Martin Hellman. Sistema paprastesnė už RSA, tačiau nepatikima – nepatikimumą įrodė Adi Shamir 9-o dešimtmečio pradžioje.

Aibės poaibio sumos problema

Ši kriptosistema remiasi taip vadinamos aibės poaibio sumos problemos sprendimo sudėtingumu. Šios problemos esmė yra tokia: turint aibę skaičių A={a1,a2,...,an},nNir kitą skaičių x, nustatyti, ar kurio nors poaibio elementų suma lygi duotajam skaičiui, t. y. ar

A^A: iIai=x, aiA^

čia I – indeksų aibė. Bendru atveju problema priklauso NPC problemų klasei, tačiau tam tikri „paprasti“ atvejai lengvai išsprendžiami.

Merkle-Hellman kriptosistema išnaudoja tą faktą, kad poaibio problemą galima iš išsprendžiamos per polinominį laiką, t. y. iš atskiro išsprendžiamo atvejo, paversti į problemą, kurią sunku išspręsti.

Kuprinės problema

Kuprinės problema (ang. knapsack problem) yra aibės poaibio sumos problemos atskiras atvejis.

Raktų parinkimo algoritmas

Skaičiai wi sudaro sparčiai didėjančią seką (SDS), jeigu visiem i>1 tesinga nelygybė:

w1+w2++wi1<wi

Šiuo atveju kuprinės problema išsprendžiama per polinominį laiką sekančio algoritmo pagalba:

ĮVESTIS: (w1,w2,,wn)SDS, x – skaičius
IŠVESTIS: (x1,x2,,xn), xi{1,0}, ir i=1nxiwi=x
  1. in
  2. Kai i1:
    2.1 Jei sbi, tai xi1, kitaip xi0
    2.2 ii1
  3. Rezultatas: (x1,x2,,xn), xi{1,0}


Tarkime, kad W=w1,w2,,wn – yra sparčiai didėjanti seka. Pasirenkame skaičių p taip, kad būtų:

p>i=1nwi

Tagu skaičiai s, t yra tarpusavyje pirminiai su p, t. y. st1(modp).

Sudarome raktus. Viešas raktas:

Kv=V={v1,v2,,vn}, viwit(modp)

Pastebėsime, kad V nėra sparčiai didėjanti seka.

Privatus raktas:

Kp=<W, s>

Šifravimas/dešifravimas

Tarkime, kad M=m1m2mn{0,1}n – pranešimas.

Šifravimas:

C=e(M,Kv)=m1v1+m2v2++mnvn

C – pranešimo M šifras. Dešifravimas:

C1=d(C,Kp)Cs(modp)
C1=m1sv1+m2sv2++mnsvn(modp)
m1w1+m2w2++mnwn(modp)

Dabar, naudojantis algoritmu spręsti poaibio sumos SDS atveju problemą, surandame mi, i={1,2,,n} – o tai ir yra dešifruotas pranešimas.

Literatūra

  • A. Menezes, P. van Oorschot, S. Vanstone, 1996, Handbook of Applied Cryptography

Kitos viešo rakto kriptosistemos

  • Rivest-Shamir-Adleman kriptosistema, RSA