Merkle-Hellmann viešojo rakto kriptosistema

Įžanga

Kadangi mane vilioja paslaptys, nusipirkau knygutę “Šifrų istorijos”, tačiau kažkaip nuo pradžios iki pabaigos neperskaičiau kadangi atsirado “trikdžiai” - Dan Brown “Skaitmeninė Tvirtovė” ir John Irving “Sidro Namų Taisyklės”. Tačiau visgi kai prisireikė atnaujinti savo programavimo C/C++ kalbomis žinias, sumąsčiau vieną šifravimo algoritmą suprogramuoti.

Primygtinai siūlau prieš gilinantis į programos kodą bei dokumentaciją nusipirkti Viliaus Stakėno knygą “Šifrų istorijos”.

Aprašymas
Anaiptol tai nėra tokio lygio programa kaip PGP arba GnuPG. Tai tiesiog linksmas vienos dienos darbas (neskaitant šiokių tokių nesklandumų), kuris galbūt ką nors sudomins šį darbą plėtoti toliau. :) Bet turiu perspėti - šis algoritmas nulaužiamas. (Kolkas dar nežinau kaip).

Tačiau… Manau galima smagiai pasižaisti su programa + išmanantys C/C++ gali bandyti integruoti kodą į savo programas ir rašyti savo programas pasinaudojant šia šifravimo funkcijų rinktine. :)

Failai
Sukompiliuota programa: čia
Programos kodas: čia
Dokumentacija: online | zip

Kas toliau?
Toliau manau šitą dalyką būtų galima papildyti:

  • Vietoj ASCII failo duomenims saugoti, naudoti BINARY (ios::bin) failą
  • Padaryti iš pavyzdinės programos knapsack.lib biblioteką, kad šifrą būtų galima “vartoti” plačiau.
  • …Galima visko prigalvoti, bet ar daugiau beapsimoka…
  • Pastabos

  • Darydamas šį “projektėlį” ne tik atsiminiau kai kurias programavimo žinias, bet ir praplėčiau programavimo kalbų akiratį dar viena, teksto formatavimo, kalba TeX (Windowsams: MiKTeX).
  • Turiu nuliūdinti, kad tokios dokumentacijos kaip kad jūs galite parsisiūsti iš/peržiūrėti čia taip paprastai su DoxyGen jums nepavyks sugeneruoti - iš kai kurių formulių aprašymų (geriausiu atveju) bus iškerpamos lietuviškos raidės. Man teko į-hard-kodinti lietuvybę į doxygen 1.4.5 soursa.