Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Savjet
  • Simetrično i asimetrično šifriranje.

Simetrično i asimetrično šifriranje.

Malo ljudi zna točno kako funkcionira asimetrična enkripcija. Na primjer, postoje ljudi koji ne smatraju da je https protokol adekvatna zaštita za prenesene podatke. I u pravilu, kada ih pokušaju uvjeriti u suprotno, odgovaraju nešto u stilu „ako prenosimo šifrirane podatke, onda vam moramo reći kako ih dešifrirati, a te se informacije mogu presresti i, prema tome, podaci mogu biti dešifriran.” A na argumente da to nije tako i na kojima se temelji asimetrična enkripcija, odgovor je “Pa što?”.

U redu, razumijem da ne moraju svi znati sve suptilnosti implementacije asimetrične enkripcije. Ali opći princip rada, vjerujem, trebao bi biti poznat svima koji su na bilo koji način povezani s računalima.

Želim unijeti suštinu ovog posta u ovu napomenu: Zapamtite, asimetrična enkripcija je sigurna, naravno, pod svim uvjetima. A da bih to dokazao, pokušat ću opisati algoritam razumljivim jezikom kako bi svi razumjeli da je siguran. Upoznajte Alice, Boba i Evu i prijenos njihove tajne poruke ispod reza.

Usput, zašto Alice i Bob? Postoji kratki članak na Wikipediji o tome: Alice, Bob i Eve. Da bi bilo jasnije, Alice i Bob žele razmijeniti poruke, a Eve pokušava presresti i pročitati te poruke.

Malo povijesti

Kriptografija prošlih stoljeća imala je jedan veliki problem - problem prijenosa ključa. U to vrijeme postojale su samo takozvane "simetrične" šifre - šifre u kojima se podaci šifriraju i dešifriraju istim ključem.

Na primjer, Alice je šifrirala poruku i želi je poslati Bobu. Naravno, da bi je Bob pročitao, potreban mu je ključ kojim je ova poruka šifrirana. I tu nastaje problem, kako prenijeti ključ da ga nitko ne presretne. Radoznali umovi će ponuditi – neka osobno prenesu, a onda komunicirajte koliko žele. Da, ne raspravljam, izlaz. Sada zamislite na trenutak da vaša internetska pošta, prije nego što se prijavite na nju, zahtijeva da otputujete na fizičku lokaciju poslužitelja e-pošte. Zgodno? Možda ne baš puno.

Naravno, ključ se može prenijeti preko drugog komunikacijskog kanala. Ali kriptografija sve nesigurne komunikacijske kanale smatra nesigurnima. Odnosno, prosljeđivanje ključa Bobu preko telefona, na primjer, smatra se nesigurnim, jer ništa ne sprječava Evu da sluša i telefon.

Sve do 70-ih godina ovaj se problem toliko udomaćio da se smatrao aksiomom da je za prijenos poruke bilo potrebno prenijeti i ključ kojim je poruka šifrirana (a neki ljudi i danas tako misle). Ali 76. godine, Diffie i Hellman predložili su svoju "eksponencijalnu metodu razmjene ključeva". Od tih godina počinje razvoj asimetričnih kriptosustava.

Malo stvarnog života

Prije proučavanja bilo kojeg algoritma, morate razumjeti kako on funkcionira. A najlakše je to usporediti s radom nečega u stvarnosti.

Zamislimo da Alice i Bob žive u zemlji u kojoj je cijeli poštanski sustav potpuno nemoralan, a poštanski djelatnici čitaju svu neosiguranu poštu. Alice, djevojka koja nije glupa, prije nego što je poslala poruku Bobu, uzela je željeznu kutiju i, stavivši pismo unutra i zatvorivši ga svojom bravom, pošalje ovu kutiju Bobu.

Naravno, ovo pismo se ne može pročitati u pošti, ali ga ni sam Bob ne može pročitati, jer nema ključ kojim se zaključava brava. Alice, naravno, može uzeti još jednu željeznu kutiju, staviti ključ od prethodne u nju i poslati je Bobu, ali ni Bob je neće moći otvoriti ...

Jedini način je napraviti duplikat ključa i osobno ga dati Bobu...

A sada se počinje činiti da je razmjena ključeva neizbježan dio enkripcije - ili nije?

Zamislimo drugačiju sliku. Napisat ću to korak po korak:

  1. Alice stavlja svoje pismo u željeznu kutiju i, nakon što je zaključa, šalje Bobu.
  2. Bob, po primitku kutije, (pažnja!) uzima svoju bravu i dodatno zaključavajući kutiju njome šalje je natrag.
  3. Kutija Alisi dolazi već s dvije brave (da podsjetim na Aliceinu prvu bravu za koju ona ima ključ, a na drugu - Bob, za koju samo Bob ima ključ).
  4. Alice otpušta bravu i šalje kutiju natrag Bobu
  5. Bob dobiva kutiju s jednom od svojih brava iz koje ima ključ.
  6. Bob otključava svoju preostalu bravu svojim ključem i čita poruku

Značaj ove kratke priče je ogroman. Pokazuje da dvije osobe mogu poslati tajnu poruku bez razmjene ključeva. Razmisli o tome! Ova priča zapravo ruši sve aksiome na kojima je izgrađena tadašnja kriptografija. Da, dobivamo kompliciranje procesa (kutija je morala biti poslana tri puta), ali rezultat ...

Natrag na kriptografiju

Čini se da je rješenje pronađeno. Pošiljatelj i primatelj šifriraju svoju poruku, a potom sugovornici naizmjence uklanjaju svoju šifru.


Ali poenta je da ne postoje takve šifre koje bi vam omogućile da uklonite šifru ispod druge šifre. Odnosno, faza u kojoj Alice uklanja svoju šifru je nemoguća:


Nažalost, svi dostupni algoritmi i dalje zahtijevaju uklanjanje šifri iz reda u kojem su primijenjene. Bojim se to nazvati aksiomom (pošto povijest već poznaje slučajeve kada su takvi aksiomi razbijeni u paramparčad), ali to je još uvijek tako.

Natrag na matematiku

Ideja o kutiji koju sam gore opisao inspirirala je Diffieja i Hellmana da potraže način za slanje poruke. Na kraju su počeli koristiti jednosmjerne funkcije.

Što je jednosmjerna funkcija? Na primjer, postoji funkcija udvostručavanja, t.j. dvostruko (4)=8, dvostrano je, jer iz rezultata 8 lako je dobiti početnu vrijednost 4. Jednosmjerna funkcija je funkcija nakon čije primjene je gotovo nemoguće dobiti početnu vrijednost. Na primjer, miješanje žute i plave boje primjer je jednosmjerne funkcije. Pomiješajte ih lako, ali da vratim originalne komponente - nemoguće. Jedna takva funkcija u matematici je modulo.

Hellman je predložio funkciju kao osnovu algoritma Y x (mod P). Obrnuta transformacija za takvu funkciju je vrlo teška i možemo reći da se zapravo sastoji u potpunom nabrajanju izvornih vrijednosti.

Na primjer, to vam je rečeno 5 x (mod 7) = 2 pokušaj pronaći x, a? Pronađeno? Sada zamislite da su Y i P brojevi reda 10 300 .

Usput, za povećanje trajnosti, broj P mora biti prost broj, i Y- biti primitivni korijen po modulu P. Ali budući da još uvijek pokušavamo razumjeti teoriju, ne vidim smisao zamarati se time.

Diffie-Hellmanov algoritam

A onda je jednog dana Hellmanu sinulo i uspio je razviti radni algoritam za razmjenu ključeva. Da biste radili na ovom algoritmu, morate izvesti korake s obje strane, pa ću ga skicirati u tablici:

Alice Grah
1. faza Obje strane se slažu oko vrijednosti Y i P za opću jednosmjernu funkciju. Ova informacija nije tajna. Pretpostavimo da su vrijednosti odabrane 7 i 11 . Ukupna funkcija bi izgledala ovako: 7 x (mod 11)
2. faza Alice bira slučajni broj, na primjer 3 A Bob bira nasumični broj kao 6 , drži u tajnosti, označimo ga brojem B
3. faza Alice stavlja broj A 73 (mod 11)= 343 (mod 11) = 2 a Bob ubacuje broj B u zajedničku funkciju i izračunava rezultat 7 6 (mod 11)= 117649 (mod 11) = 4 , označava rezultat ovog izračuna kao broj b
4. faza Alice šalje broj a Bob Bob šalje broj b Alice
5. faza Alice prima b od Boba i izračunava vrijednost b A (mod 11)= 4 3 (mod 11) = 64 (mod 11) = 9 Bob prima a od Alice i izračunava vrijednost a B (mod 11)= 2 6 (mod 11) = 64 (mod 11) = 9
6. faza Oba sudionika su završila s brojem 9 . Ovo će biti ključ.

Magija? Ne raspravljam, na prvi pogled nije jasno. Ali nakon čitanja i razmišljanja o ovoj tablici, postaje jasno kako ona funkcionira. Međutim, ako ne postane jasno, pomaknite se do kraja poglavlja, gdje sam objavio video s objašnjenjem.

I imajte na umu da za dobivanje ključa u konačnoj formuli svaka osoba mora imati tri vrijednosti:

  • vrijednosti a i P, i Bobov tajni broj B
  • ili vrijednosti b i P, i Alicein tajni broj A

Ali tajni brojevi se ne prenose preko kanala! Eva ne može vratiti ključ bez nečijeg tajnog broja. Zašto - napisao sam gore, ova funkcija je jednosmjerna. Pokušajte riješiti jednadžbu 4 x (mod 11) = 2 y (mod 11) nalaz x i y.

Da bi bilo jasnije kako funkcionira Hellmanova shema, zamislite šifru koja na neki način koristi boju kao ključ:

Pretpostavimo prvo da svi, uključujući Alice, Boba i Evu, imaju staklenku od tri litre napunjenu jednom litrom žute boje. Ako se Alice i Bob žele dogovoriti oko tajnog ključa, dodaju po jednu litru svoje tajne boje u svoje staklenke.

Alice može dodati ljubičastu nijansu, a Bob može dodati grimizno. Nakon toga, svaki od njih šalje drugu svoju staklenku s miješanim sadržajem.

Konačno, Alice uzima Bobovu smjesu i dodaje joj jednu litru svoje tajne boje, a Bob uzima Aliceinu smjesu i dodaje joj jednu litru svoje tajne boje. Boja u obje limenke sada će biti iste boje, budući da svaka sadrži po jednu litru žute, ljubičaste i grimizne boje.

Upravo će se ta boja, dobivena dvostrukim dodavanjem u limenke boje, koristiti kao ključ. Alice nema pojma koju je boju Bob dodao, a Bob također nema pojma koju je boju Alice sipala, ali oboje postižu isti rezultat.

U međuvremenu, Eva je bijesna. Čak i ako uspije presresti staklenke s međuproizvodom, neće moći odrediti konačnu boju, koja će biti dogovoreni ključ. Eva može vidjeti boju boje napravljene miješanjem žute boje i Aliceine tajne boje u tegli poslanoj Bobu, i može vidjeti boju boje napravljene miješanjem žute boje i Bobove tajne boje u tegli poslanoj Alice, ali da bi pronašla ključ, ona je, zapravo, potrebno znati boje izvornih tajnih boja Alice i Boba. Međutim, gledajući staklenke s pomiješanim bojama, Eva neće moći prepoznati tajne boje Alice i Boba. Čak i ako uzme uzorak jedne od pomiješanih boja, neće je moći odvojiti u originalne boje kako bi pronašla tajnu, budući da je miješanje boje jednosmjerna funkcija.

Još uvijek nejasno? Zatim pogledajte video:

Pa, nadam se da razumijete da postoji vrlo stvaran način za sigurnu razmjenu ključeva. Ali imajte na umu da je ovaj algoritam još uvijek nemoguće nazvati asimetričnom šifrom, budući da je to samo algoritam za razmjenu ključeva.

Asimetrična enkripcija

asimetrični algoritam pretpostavlja da postoje dva ključa - javni i privatni. Odnosno, poruka je šifrirana javnim ključem, a dešifrirana privatnim ključem i ničim drugim. Zapravo, ovaj koncept je formulirao Diffie.

Općenito, suština ovog algoritma je da prije primanja poruke strana koja prima generira par ključeva na temelju modularnog aritmetičkog algoritma (princip je isti kao u Diffie-Hellman algoritmu), privatnog i javnog ključa. . Prije slanja, pošiljatelj prima javni ključ i tim ključem šifrira poruku, nakon čega se ova poruka može dešifrirati samo privatnim ključem, koji primatelj čuva u tajnosti.


Vraćajući se na analogiju zaključavanja, šifriranje s javnim ključem može se zamisliti na sljedeći način:

Svatko može zaključati bravu jednostavnim zatvaranjem, ali samo netko s ključem može je otključati. Zaključavanje brave (šifriranje) je jednostavno, to može učiniti gotovo svatko, ali samo vlasnik ključa može je otvoriti (dešifriranje). Znati kako zaključati bravu za zatvaranje neće vam reći ništa o tome kako je otključati.

Može se povući i dublja analogija.

Zamislite da Alice dizajnira bravu i ključ. Ona budno čuva ključ, ali u isto vrijeme izrađuje tisuće duplih brava i šalje ih poštama diljem svijeta. Ako Bob želi poslati poruku, stavlja je u kutiju, odlazi u lokalni poštanski ured, traži "Aliceinu bravu" i njome zaključava kutiju. Sada on neće moći otvoriti kutiju, ali kada Alice dobije kutiju, moći će je otvoriti svojim jedinim ključem.

Zaključavanje i zatvaranje istog je jednako zajedničkom ključu za šifriranje, budući da svatko ima pristup bravama i svatko može koristiti bravu za zatvaranje poruke u okviru. Ključ brave je ekvivalentan tajnom ključu za dešifriranje jer ga ima samo Alice, samo ona može otvoriti bravu i samo ona može pristupiti poruci u kutiji.

Postoji nekoliko algoritama koji implementiraju asimetričnu enkripciju. Najpoznatiji od njih je RSA. Ne vidim smisao u opisivanju, jer još uvijek neću moći razumjeti kako funkcionira u pokretu, a još uvijek ne mogu pisati bolje od onoga što piše na Wikipediji.

Zaključak

Pa, nadam se da ćete, shvativši kako asimetrična enkripcija funkcionira iznutra, početi više vjerovati u to i, sukladno tome, češće koristiti SSL =)

Korišteni su materijali iz knjige Singha Simona – Knjiga šifri. Inače, najbolja knjiga za one koji žele barem malo razumjeti kriptografiju. Savjetujem svima da pročitaju.

  1. televizor

    Odabir takvog ključa oduzet će vam jaaaako puno vremena. Malo više nego što postoji svemir. Čak i na vrlo moćnim računalima.

  2. Igor

    Čemu služi ova glupost s javnim ključem? Simetrično je pouzdanije.
    Dobar dan!
    Dobra stranica, materijal je pregledno predstavljen, veliko hvala autoru. Slučajno sam došao u rujnu kada sam tražio informacije o praktičnom šifriranju.
    Pišem jer želim pitati: Ima li netko tko želi znati pronaći brojeve za simetrično šifriranje? Mogu na prstima naučiti kako brzo provjeriti broj P radi jednostavnosti (bez traženja broja g) - ali ovo vjerojatno neće biti zanimljivo. Najinteresantnije:
    Nađi broj P bilo koje duljine i njemu broj g. Ne koristim nijedno 2 na stepen n plus jedan (ili minus jedan). Naravno, besplatno je. Postoji čak i stranica na kojoj sam objavio svoj rad.

  • Vasja Petrovič

    Razumijem da je prošlo dosta vremena, ali ipak ću odgovoriti za nove čitatelje poput mene.

    Ovo neće uspjeti, jer nakon koraka 2 i 3 vidimo razliku za koju se promijenio broj svakog od blokova, stoga nam Bobov tajni broj postaje očigledan i možemo presresti poruku tek nakon 4. koraka (tj. već bez Alicine šifre) i koristiti nam već poznati Bobov broj.

  • Evgenij

    Hvala puno na članku!
    Nakon čitanja, gotovo sve je palo na svoje police, steklo strukturu koju je lako izgraditi.
    S takvom strukturom lako je generirati točna pitanja (polica za MiTM napade, posebno hvala Mikhailu :)).

    S pedagoškog stajališta sve ste napravili savršeno. Mislim da ste u pravu što ovom članku niste dodali MiTM napade, inače bi došlo do preopterećenja informacijama.

    Video je divan, pogotovo s obzirom na godine.

    PS: korištenje metafora za objašnjenje "složenih" sustava iskreno je teško precijeniti. Hvala još jednom!

  • dbzix

    Iz ovog članka nisam uhvatio trenutak prijelaza s Diffie-Hellmanovog algoritma, gdje dva pretplatnika razmjenjuju javne podatke i međurezultate izračuna za dobivanje tajnog ključa (ispostavilo se da je primjer čak 6 faza) na faza u kojoj se za enkripciju koristi određeni javni ključ, koji se potom dešifrira korištenjem privatnog (ovdje računam samo 2 faze prijenosa podataka - slanje javnog ključa i slanje poruke šifrirane ovim ključem).
    Oni. Razumijem da je negdje između ova dva objašnjenja vjerojatno puno matematike, a na kraju se objašnjenje svodi na “ovako to funkcionira, samo mi vjeruj”. No vjerojatno bi bilo lakše razumjeti ovaj iznenadni prijelaz kada bi se analogija s bojama proširila kako bi se objasnila bit šifriranja javnim ključem, nakon čega slijedi dešifriranje privatnim. U međuvremenu se ispostavi da neka vrsta "B radi jer A", dok nema jasne veze između A i B. Barem za mene.
    Poštovani autore, hoćete li mi objasniti ovaj mistični skok od A do B? :) Hvala vam!

  • Evgenij

    Dobar dan,

    Dano: postoji formula Y^x (mod P).
    primjer u članku temelji se na formuli 7^x (mod 11)

    Uzeo sam 4^x (mod 7) za svoj primjer
    i nisam mogao doći do zajedničkog ključa.
    Pitanje: zašto algoritam u primjeru radi za 7^x (mod 11), a ne za 4^x (mod 7)?

  • Jessi-jane
  • Andrej

    Hvala, odličan članak!
    Tek sada sam skoro shvatio algoritam, kako izračunati kroz modul.
    Nemojte mi reći kako izračunati broj B, ako je broj A manji od modula?
    Pa, na primjer:
    3 (mod 13) = ?

    Znam da ako, na primjer, trebate izračunati 625 (mod 13), trebate 625/13, a zatim najveći mogući djelitelj cijelog broja (48) pomnožen s modulom (koji bi ovdje bio 624), i na kraju 625- 624 = 1
    Brojevi 625 i 1 su sukladni po modulu 13, jer je 624 djeljivo s 13.
    To je ono što razumijem. Ali što ako je modul veći od broja a?

  • žuti užas

    1. Napad čovjeka u sredini ozbiljan je problem. Koliko mogu reći, samo unutar okvira kriptografije, to se ne može riješiti u načelu: ako pretpostavimo da je Eve u stanju presresti i tiho zamijeniti SVE podatke koji dolaze do Alice ili odlaze od nje putem BILO KOJIh komunikacijskih kanala, nikakva enkripcija neće Pomozite. Alice mora dobiti barem jedan certifikat od potpuno pouzdanog izvora. Ali ako napadač može samo slušati komunikacijski kanal, a ne mijenjati podatke u njemu, asimetrična enkripcija je prilično pouzdana.
    2. Što se tiče mogućnosti uklanjanja jednog "sloja šifre" ispod drugog, ovo svojstvo ima banalnu funkciju XOR, koja se naširoko koristi u kriptografiji od davnina do danas. Mislim da se ne može patentirati :(

    1. Dmitrij Amirov Autor

      Da, u pravu ste, mitm napad danas nije riješen ni na koji način ako ste apsolutno paranoični. Ako nisu, onda muka s certifikatima i potpisima pruža "potrebnu i dovoljnu" zaštitu.

      Što se tiče funkcije XOR, teško ju je nazvati šifrom, jer nije inherentno to.

      1. žuti užas

        Dođi? Guglajte Vernamovu šifru. Ovo je sustav za razmjenu poruka apsolutna kriptografska stabilnost. I temelji se na XOR-u. Ostavljajući po strani neke organizacijske poteškoće (stvaranje uistinu slučajnih ključeva s ujednačenom distribucijom, čuvanje tajne šifrarnika u neprijateljskom okruženju i pouzdano uništavanje korištenih ključeva), čovječanstvo još nije smislilo ništa jednostavnije i pouzdanije.

      2. žuti užas

        Iako sam, razmislivši, shvatio da metoda dvostruke reverzibilne enkripcije ne funkcionira ako napadač poznaje algoritam šifriranja. Razmotrimo primjer Michaelove ideje:

        1. Šifrirane informacije razbijamo u blokove. Svaki blok je predstavljen brojem. Veličina bloka (broj bitova) određuje broj mogućih vrijednosti bloka i (odnosno?) snagu enkripcije.
        2. Za šifriranje poruke Alice bira tajni broj (koji nikome ne šalje), koji dodaje svakom od brojeva u blokovima i tako šifriranu poruku šalje Bobu.

        Za sada dobro: Eve ne može pročitati Aliceinu poruku jer ne zna brojčanu tipku. Ako su blokovi dovoljno veliki, teško je oporaviti Aliceinu poruku, ali ako je blok duži od poruke i ključ nema ranjivosti, nemoguće je. Ali Eva može kopirati Alicein šifrirani tekst i to čini.

        3. Bob prima šifriranu poruku, bira svoj tajni broj (koji se također nikome ne šalje), dodaje ovaj broj svakom od brojeva u blokovima šifrirane poruke Alice i šalje ovu dvostruko šifriranu poruku Alice.

        I tu počinju problemi: Eva još uvijek ne može pročitati Aliceinu poruku, ali, imajući kopiju šifrograma koju je primio Bob i dvostruku enkripciju koju mu je poslao, vraća je bez ikakvih problema ključ Bob.

        4. Alice oduzima svoj tajni broj od svakog broja u blokovima ove dvostruko šifrirane poruke i šalje rezultirajuću poruku Bobu.

        Alice je uklonila svoj "sloj" šifre i sada šalje svoje pismo Bobu, šifrirano samo Bobovim ključem. Što Eva već ima! Eve dešifrira pismo i pročita ga i, za svaki slučaj, može povratiti Alicein ključ koristeći dešifrirani tekst pisma i prvi šifrirani tekst koji je presrela.

  • Dmitrij

    Zdravo. Dobar članak, ali također nisam razumio neke točke koje su gore opisane.
    To je prijelaz s algoritma za dobivanje tajnog ključa od strane oba sugovornika (Alice i Boba) (bez njihovog dijeljenja u javnom pristupu) na asimetrično šifriranje.
    Napisali ste da je poruka kodirana na Alicinoj strani javnim ključem primljenim od Boba. Ali ako šifriramo javnim ključem, onda ga Eve može lako dobiti i sama dešifrirati, zar ne?
    I dalje mi ostaje nejasno kako šifrirati javnim ključem i dešifrirati samo tajna na Bobovoj strani. Odnosno, šifrirali su riječju "Kuća", a dešifrirali riječju "Svijet". Za mene je ovo nekakva glupost.
    Na temelju ovih očitih praznina (bilo tvojih ili mojih) zaključio sam da bi ovdje sklop trebao biti kompliciraniji nego na slici. Najvjerojatnije, strelica od Bobovog javnog ključa do Alice znači nešto drugo, naime cijeli niz radnji za dobivanje "Y" i "P", dobivanje međurezultata i tako dalje. Drugim riječima, mislim da kada je izvorna poruka šifrirana tobožnjim javnim ključem, ona zapravo nije šifrirana javnim ključem, nego tajnim, koji se računa na svakoj strani posebno.

    Također sam imao pitanje o dešifriranju dvaput šifrirane poruke. Ako uzmemo, na primjer, Cezarovu šifru, gdje je svako slovo šifrirano drugim slovom, koje stoji, recimo, 3 mjesta dalje. Ako Alice šifrira slovo A u poruci slovom B, a zatim Bob šifrira ovo slovo B slovom D, tada će slovo A od D biti lako i bilo kojim redoslijedom. Istina, to će najvjerojatnije funkcionirati samo u slučajevima kada oboje znaju vrstu šifriranja sugovornika i s prilično jednostavnim vrstama šifriranja (jednoabecedno / poliabecedno). I ja sam nov u kriptogramu, tako da je ovo moj IMHO ;)

    1. Dmitrij

      Zaboravio sam pitati.
      Koja je razlika između simetričnih i asimetričnih metoda?

      1. Dmitrij

        Čitao sam, manje-više nekako grupirao sve u mislima.
        Odgovorit ću na pitanja koja sam napisao, možda pomoći drugim čitateljima.
        1. Oko

        Napisali ste da je poruka kodirana na Alicinoj strani javnim ključem primljenim od Boba. Ali ako šifriramo javnim ključem, onda ga Eve može lako dobiti i sama dešifrirati, zar ne?
        Također mi je ostalo nejasno kako je moguće šifrirati javnim ključem, a dešifrirati samo tajnim na Bobovoj strani. Odnosno, šifrirali su riječju "Kuća", a dešifrirali riječju "Svijet". Za mene je to neka glupost.

        Ovaj članak spominje RSA algoritam. Simetrični algoritam šifriranja. Zapravo koristi sljedeći algoritam:
        1) Na temelju neke jednosmjerne funkcije enkripcije (funkcija koju je lako izračunati u jednom smjeru, ali vrlo teško u drugom. A) stvaramo par na primatelju (javni ključ; privatni ključ). Ovaj par je jedinstven, odnosno svaki javni ključ ima jedinstveni privatni ključ za ovu jednosmjernu funkciju.

        3) Pošiljatelj šifrira poruku
        4) Prolazi primatelju

        Kao što vidite, pošiljatelj ne poznaje privatni ključ i nije u stanju dešifrirati svoju šifriranu poruku. Zato se naziva asimetričnim, jer jedan ima sve ključeve, a drugi samo dio neophodan za šifriranje.

        Koja je razlika između simetričnih i asimetričnih metoda?
        Ako bih upotrijebio Diffie i Hellmanov algoritam za prosljeđivanje tajnog ključa, a zatim sam bio u mogućnosti sigurno poslati šifriranu poruku, bi li ova metoda bila simetrična?

        Daffy-Hellmanov algoritam, koji služi za razmjenu ključeva i daljnju simetričnu enkripciju. Odnosno, njegova je suština da u početku oboje primaju puni ključ za šifriranje i dešifriranje, a zatim započinju najobičniju simetričnu enkripciju.

        Asimetrična metoda - jedan čvor ima sve informacije za šifriranje / dešifriranje, a drugi, u pravilu, samo za enkripciju

        Simetrično - oba čvora znaju sve informacije za šifriranje/dešifriranje.

        Nadam se da će nekome pomoći ;3

        1. Dmitrij

          Ovaj članak spominje RSA algoritam. Asimetrični algoritam šifriranja Zapečaćeno.

        2. Dmitrij Amirov Autor

          Hmm... upravo sam primijetio tvoje komentare. Moje isprike.

          Čini se da je sve točno. Postoji jedna stvar, ali prema vašem posljednjem paragrafu, a posebno prema uvjetima:

          • Daffy-Hellmanov algoritam- je algoritam koji vam omogućuje da dobijete jedan zajednički tajni ključ i ništa više
          • Asimetrično/simetrično šifriranje- općenito, u pravu ste
          • RSA- algoritam koji je kombinacija ovih stvari. Na prstima: asimetričnom enkripcijom pomoću Deffi-Helman protokola uspostavlja se tajni ključ uz pomoć kojeg se poruke između sugovornika šifriraju metodom simetrične enkripcije.
        3. Dmitrij

          Još uvijek nisam razumio izjavu:
          2) Javni ključ se prenosi pošiljatelju.
          3) Pošiljatelj šifrira poruku
          4) Prolazi primatelju
          5) Primatelj dešifrira privatnim ključem. Ovu poruku nije moguće dešifrirati javnim ključem.

          Ispada da ste i plitki u pogledu od samog početka. Šifriramo riječju Kuća, a dešifriramo riječju Svijet. Znači li to da postoji još jedan algoritam koji povezuje Svijet i Kuću jedno s drugim?

  • Robert

    Hvala puno!!!

  • roman

    Hvala vam. Konačno sam odlučio shvatiti kako to funkcionira i shvatio sam iz ovog članka. Samo, vjerujem, ako se suučesnici poznaju i ako je moguće sigurno razmijeniti javne ključeve, onda se to isplati učiniti. Otkloniti štetne posljedice mogućeg pojavljivanja osobe u sredini tijekom razmjene ključeva, koja će se pretvarati da je A kao B i B kao A, zamjenjujući ključeve svojima i na kraju pregledavajući sve informacije.

    A u videu, mislim, uzalud koriste ovo 3 ^ (24 * 54), jer uopće nije očito odakle dolazi, ili bi objasnili da je to uvjetno.

  • Rinswind

    Hvala na članku. Sve je vrlo jasno objašnjeno.

  • Grigorija

    Pa ova nepismenost pravopisa svakoga nervira - "jednostrano", "primijenjeno", "dugo", kao da je već u 5. razredu. I tako, nije loše za razumijevanje osnova.

  • Grigorija

    Ponekad je pitanje jednostavno. Virusi za šifriranje koriste privatni ključ. Postoji izvorna datoteka, postoji šifrirana datoteka. Zadatak: pronaći algoritam, da tako kažem, koji traži algoritam za pretvaranje prve datoteke u drugu ...

  • Allexys

    Hvala na jasnom i korisnom članku! Napokon sam shvatio osnove :).

  • Jaroslav

    Nažalost, svi dostupni algoritmi i dalje zahtijevaju uklanjanje šifri iz reda u kojem su primijenjene.

    Ovo nije sasvim točno. Navest ću primjer:
    - pretpostavimo da svako slovo odgovara digitalnom kodu A \u003d 1, B \u003d 2, C \u003d 3, itd .;
    - pretpostavimo da Alice šalje Bobu pismo koje se sastoji od jednog slova A (da pojednostavimo primjer);

    Alice: nameće svoju šifru A + 2 = B

    Bob: nameće svoju šifru B + 3 = E
    Bob: šalje pismo Alisi
    Alice: uklanja svoju šifru E - 2 = G
    Alice: šalje pismo Bobu
    Bob: uklanja svoju šifru D - 3 = A

    Ovdje je broj 2 Alicein tajni ključ, 3 je Bobov tajni ključ. Štoviše, ne mora biti jednoznačno. U principu, njegova duljina nije ničim ograničena.

  • Dmitrij

    Dugo sam izbjegavao teorijske temelje asimetrične enkripcije. Površno sam znao – postoji javni ključ koji šifrira podatke, a postoji privatni ključ koji te podatke dešifrira. Ali pomisao na implementaciju takve enkripcije uvijek me mučila.
    Vaš članak je puno pomogao, hvala vam puno na tome!
    Tek pred kraj opet sam vidio ovu glupost - "kriptiranu javnim ključem". Uostalom, strogo govoreći, poruka se šifrira ne javnim ključem, već ključem koji je izveden iz privatnog ključa pošiljatelja i javnog ključa primatelja (koji je, pak, generiran iz privatnog ključa primatelja). Doista, u tablici o Alice i Bobu - oni i samo oni su uspjeli dobiti isti ključ "9" - koristi se za šifriranje i dešifriranje poruke. Ali ovaj ključ možete dobiti samo na temelju para ključeva - tajnog (Alice / Bob) i javnog (Bob / Alice).
    Slikovito – da, poruka je uvijek šifrirana tajnim ključem pošiljatelja (grubo rečeno, konstantan je) i javnim ključem primatelja (ovisi o konkretnom primatelju), pa je u opisu izostavljena enkripcija „tajnim“ ključem – a taj propust narušava čitav sklad rasuđivanja.

  • clarkson

    Pročitao sam članak i nisam ga dobro razumio, iako je bolji nego na wikiju. Ali postoji jedna stvar koju ne razumijem. ako netko može točno odgovoriti - pomozite.

    ako svima pošaljem pitanje "koliko će 2 + 2?", reci mi kako da mi šifriram odgovor (svima kažem javni ključ), i svi će mi poslati odgovor na pitanje, kako da saznam od koga točno čekam odgovor, onda onog s kojim sam stvarno htio uspostaviti vezu?

    1. Dmitrij Amirov Autor

      Ovdje malo krivo postavljate pitanje.

      Ako trebate uspostaviti vezu s nekim, onda morate ići od suprotnog. Povezujete se sa sugovornikom, i već on ti daje svoj javni ključ, a ne vi njemu.

      UPD: napisao članak o, mislim da će ovo biti točan odgovor na vaše pitanje.

      1. clarkson

        Moram se boriti protiv svoje gluposti. tema je prožvakana u komentarima i u vašem članku, izgleda da je sve objašnjeno.

        još. zašto mi treba njegov javni ključ? reci mi ako ne razumijem dobro.
        Ja sam inicijator (trebam odgovore, u primjeru ja sam strana primateljica), tako da generiram par. on je taj koji odgovara (pošiljatelj u vašem primjeru) treba moju javnost

        Prije slanja, pošiljatelj prima javni ključ i tim ključem šifrira poruku, nakon čega se ova poruka može dešifrirati samo privatnim ključem, koji primatelj čuva u tajnosti.

  • ustrijeljen

    Pročitao sam ovaj članak i druge na tu temu nekoliko puta, algoritam za korištenje EDS-a u e-pošti je nerazumljiv. dokumente. Ako, kao ovdje: https://ru.wikipedia.org/wiki/Electronic_signature, onda nastaju odstupanja. Dakle, šifriramo li još uvijek privatnim ili javnim ključem?

    1. Dmitrij Amirov Autor

      Ako nešto potpišemo, onda se potpis generira na temelju našeg privatnog ključa. A primatelj mora imati naš javni ključ, uz pomoć kojeg će moći dešifrirati ovaj potpis.

      Ako je potpis "dešifriran", tada javni ključ odgovara privatnom i od tada a priori, samo pošiljatelj ima privatni ključ, što znači da je pošiljatelj potpisao dokument.

      1. ustrijeljen

        Dmitry, tvoj članak mi je puno pomogao, imaš dobar stil. Ali postoji neshvatljiv trenutak, tvrdite da asimetrični algoritam podrazumijeva prisutnost dva ključa - javnog i privatnog. Odnosno, poruka je šifrirana javnim ključem, a dešifrirana privatnim ključem i ničim drugim.

        Možda je u izvornom zadatku, na primjer, primatelj treba autentificirati glasnika.
        Onda ne vidim kako ova shema može pomoći?

        1. Dmitrij Amirov Autor

          Odnosno, poruka je šifrirana javnim ključem, a dešifrirana privatnim ključem i ničim drugim.

          Nije baš točno. Poruka je šifrirana jednim ključem, a dešifrirana drugim. Oni. sasvim je moguće šifrirati privatno, a dešifrirati javno.

          Pogledajmo primjer. Želite mi poslati poruku, želim se uvjeriti da ste mi je vi poslali. Korak po korak:
          1) Poruku šifrirate privatnim ključem
          2) Pošalji mi
          3) Kontaktiram vas i primam vaš javni ključ od vas
          4) Primljenu poruku dešifriram vašim javnim ključem
          5) Ako je poruka dešifrirana, onda ste je vi poslali

          Nitko drugi ne može poslati ovu poruku predstavljajući se kao vi, jer samo vi imate privatni ključ.

          1. ustrijeljen

            Ok, ali što ako želite sakriti poruku od znatiželjnih očiju?

  • Anya

    Dobar dan! Članak mi se svidio, ali bilo je pitanja (čak se i par sličnih našlo u komentarima, ali bez odgovora).
    Ako u drugom dijelu članka ipak prijeđemo na analogiju s Alisom i Bobom, posebice na brojeve A, B, a, b, P i na broj 9 dobiven u primjeru, koji će od njih biti privatni ključ, a koji će biti javni ključ? Hvala unaprijed na odgovoru!

    1. Anya

      Nisam siguran je li moj komentar prošao ili ne :(

    2. Dmitrij Amirov Autor

      Ispravnije bi bilo reći da u procesu razmjene podataka Alice i Bob dobivaju zajednički ključ 9 , koje se kasnije mogu koristiti za šifriranje njihovih poruka. Zapravo, u članku nisam opisao samu asimetričnu enkripciju, već protokol razmjene ključeva, koji je dao poticaj razvoju asimetrične enkripcije.
      Algoritam za generiranje para privatni/javni ključ je zapravo malo kompliciraniji, iako je sličan gore navedenom algoritmu, ali ipak vjerojatno vrijedi zasebnog članka. U komentaru se ovdje neću odmah potpisati, jer mogu pobrkati dosta stvari.

  • Grgur
  • Sredstva kriptografske zaštite državnih tajni još uvijek se izjednačavaju s oružjem. Vrlo malo zemalja u svijetu ima vlastite kriptografske tvrtke koje izrađuju stvarno dobre alate za informacijsku sigurnost. Čak ni u mnogim razvijenim zemljama ne postoji takva mogućnost: ne postoji škola koja bi omogućila podršku i razvoj ovih tehnologija. Rusija je jedna od rijetkih zemalja na svijetu – možda pet i nešto zemalja – gdje je sve to razvijeno. Štoviše, i u komercijalnom i u javnom sektoru postoje tvrtke i organizacije koje su sačuvale kontinuitet kriptografske škole iz vremena kada je tek nastajala.

    Algoritmi šifriranja

    Do danas postoji mnogo algoritama za šifriranje koji imaju značajnu otpornost na kriptografsku analizu (kriptografska snaga). Algoritmi šifriranja podijeljeni su u tri grupe:

    • Simetrični algoritmi
    • Asimetrični algoritmi
    • Hash algoritmi

    Simetrični algoritmi

    Simetrična enkripcija uključuje korištenje istog ključa i za šifriranje i za dešifriranje. Za simetrične algoritme primjenjuju se dva glavna zahtjeva: potpuni gubitak svih statističkih pravilnosti u objektu šifriranja i odsutnost linearnosti. Uobičajeno je dijeliti simetrične sustave na blokovske i protočne.

    U blok sustavima izvorni se podaci dijele na blokove, nakon čega slijedi transformacija pomoću ključa.

    U streaming sustavima se generira određeni slijed (izlazna gama), koji se naknadno nadograđuje na samu poruku, a podaci se šifriraju streamom kako se generira gama. Na slici je prikazana komunikacijska shema koja koristi simetrični kriptosustav.

    Gdje je M običan tekst, K je tajni ključ koji se prenosi putem privatnog kanala, En(M) je operacija šifriranja, a Dk(M) je operacija dešifriranja

    Obično simetrična enkripcija koristi složenu i višestupanjsku kombinaciju zamjena i permutacija izvornih podataka, a može postojati mnogo faza (prolaza), a svaki od njih mora odgovarati "ključu prolaza"

    Operacija zamjene ispunjava prvi zahtjev za simetričnu šifru, oslobađajući se svih statističkih podataka miješanjem bitova poruke prema određenom zadanom zakonu. Permutacija je nužna kako bi se ispunio drugi zahtjev - da bi algoritam bio nelinearan. To se postiže zamjenom određenog dijela poruke zadane veličine standardnom vrijednošću upućivanjem na izvorni niz.

    Simetrični sustavi imaju i prednosti i nedostatke u odnosu na asimetrične.

    Prednosti simetričnih šifri uključuju veliku brzinu šifriranja, manju potrebnu duljinu ključa sa sličnom snagom, veće znanje i jednostavnost implementacije. Nedostaci simetričnih algoritama su prvenstveno složenost razmjene ključeva zbog velike vjerojatnosti narušavanja tajnosti ključa tijekom razmjene, što je neophodno, te složenost upravljanja ključevima u velikoj mreži.

    Primjeri simetričnih šifri

    • GOST 28147-89 - domaći standard šifriranja
    • 3DES (trostruki DES, trostruki DES)
    • RC6 (Rivest Cipher)
    • Dvije ribe
    • SEED - Korejski standard šifriranja
    • Camellia je japanski standard za šifriranje.
    • CAST (nakon inicijala programera Carlislea Adamsa i Stafforda Tavaresa)
    • XTEA je najlakši algoritam za implementaciju
    • AES - američki standard šifriranja
    • DES je američki standard za šifriranje podataka do AES-a

    Asimetrični algoritmi

    Asimetrični sustavi se također nazivaju kriptosustavi s javnim ključem. Ovo je metoda enkripcije podataka u kojoj se javni ključ prenosi preko otvorenog kanala (nije skriven) i koristi se za provjeru elektroničkog potpisa i šifriranje podataka. Za dešifriranje i izradu elektroničkog potpisa koristi se drugi ključ, tajni.

    Sam uređaj asimetričnih kriptosustava koristi ideju jednosmjernih funkcija ƒ(x), u kojima je lako pronaći x, znajući vrijednost same funkcije, ali je gotovo nemoguće pronaći samu ƒ(x) , znajući samo vrijednost x. Primjer takve funkcije je telefonski imenik velikog grada, u kojem je lako pronaći broj osobe, znajući njegovo prezime i inicijale, ali je izuzetno teško, znajući broj, izračunati vlasnika.

    Princip rada asimetričnih sustava

    Pretpostavimo da postoje dva pretplatnika: A i B, a pretplatnik B želi poslati šifriranu poruku pretplatniku A. On šifrira poruku pomoću javnog ključa i prenosi je već šifriranu preko otvorenog komunikacijskog kanala. Nakon što je primio poruku, pretplatnik A je dešifrira pomoću tajnog ključa i čita.

    Ovdje je potrebno napraviti pojašnjenje. Prilikom primanja poruke, pretplatnik A mora autentificirati svoj identitet pretplatniku B kako se zlobnik ne bi mogao lažno predstavljati za pretplatnika A i zamijeniti njegov javni ključ svojim vlastitim.

    Primjeri asimetričnih fontova

    • RSA (Rivest-Shamir-Adleman, Rivest-Shamir-Adleman)
    • DSA (Algoritam digitalnog potpisa)
    • Elgamal (ElGamal šifrirani sustav)
    • Diffie-Hellman (Diffie-Hellman razmjena ključeva)
    • ECC (kriptografija eliptičke krivulje, kriptografija eliptičke krivulje)

    Hash funkcije

    Haširanje (od engleskog. hash) je transformacija početnog niza informacija proizvoljne duljine u niz bitova fiksne duljine.

    Postoji mnogo algoritama hash funkcija, a razlikuju se po svojim karakteristikama - kriptografskoj snazi, duljini riječi, složenosti računanja itd.

    Zanimaju nas kriptografski jake hash funkcije. Oni obično imaju dva zahtjeva:

    • Za danu poruku C praktički je nemoguće pokupiti drugu poruku C" s istim hashom
    • Praktički je nemoguće pokupiti parove poruka (SS") koji imaju isti hash.

    Zahtjevi se nazivaju otpornost na sudare prve i druge vrste. Za takve funkcije ostaje važan još jedan zahtjev: uz neznatnu promjenu argumenta, mora doći do značajne promjene u samoj funkciji. Dakle, hash vrijednost ne bi trebala dati informaciju čak ni o pojedinačnim bitovima argumenta.

    Primjeri hash algoritama

    • Adler-32
    • SHA-1
    • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
    • HAVAL
    • N-haš
      • RIPEMD-160
    • RIPEMD-256
    • RIPEMD-320
    • Koža
    • Snefru
    • tigar (TTH)
    • Vrtlog
    • GOST R34.11-94 (GOST 34.311-95)
    • IP internetski kontrolni zbroj (RFC 1071)

    Kriptografski primitivi

    Kako bi se šifriranim informacijama dala veća kriptografska snaga, relativno jednostavne transformacije - primitivne - mogu se više puta primijeniti u kriptografskom sustavu. Primitive mogu biti zamjene, permutacije, rotacije ili gama.

    kvantna kriptografija

    Kriptografija u digitalnim tehnologijama

    Priča

    Kriptografija je drevna znanost, a njezin izvorni objekt bile su tekstualne poruke, koje su uz pomoć određenih algoritama izgubile smisao za sve koji nisu imali posebna znanja za dešifriranje ove poruke – ključa.

    U početku su se koristile metode koje se danas koriste samo za zagonetke, odnosno, po mišljenju suvremenika, najjednostavnije. Takve metode šifriranja uključuju, na primjer, metodu zamjene, kada je svako slovo zamijenjeno drugim, udaljeno od njega na strogo određenoj udaljenosti u abecedi. Ili metoda permutacijske enkripcije, kada se slova izmjenjuju u određenom nizu unutar riječi.

    U davna vremena, šifriranje se koristilo uglavnom u vojnim i trgovačkim poslovima, špijunaži, među krijumčarima.

    Nešto kasnije povjesničari određuju datum pojave još jedne srodne znanosti - steganografije. Ova se znanost bavi maskiranjem same činjenice prijenosa poruke. Nastao je u antici, a primjer ovdje je primitak spartanskog kralja Leonide prije bitke s Perzijancima ploče s tekstom prekrivenim suhom otopinom koja se lako ispire. Prilikom čišćenja, tragovi ostavljeni na vosku s olovkom postali su jasno vidljivi. Danas se za prikrivanje poruke koriste simpatične tinte, mikrotočke, mikrofilmovi itd.

    S razvojem matematike počeli su se pojavljivati ​​algoritmi matematičke enkripcije, ali su sve ove vrste zaštite kriptografskih informacija zadržale statističke podatke u različitom stupnju i ostale su ranjive. Ranjivost je postala posebno uočljiva s izumom analize frekvencija, koju je u 9. stoljeću naše ere razvio navodni arapski enciklopedist al-Kindi. I tek u XV stoljeću, nakon izuma poliabecednih fontova Leona Battiste Albertija (vjerojatno), zaštita je prešla na kvalitativno novu razinu. Međutim, sredinom 17. stoljeća Charles Babbage je iznio uvjerljive dokaze o djelomičnoj ranjivosti poliabecednih fontova na analizu frekvencija.

    Razvoj mehanike omogućio je stvaranje uređaja i mehanizama koji olakšavaju šifriranje - pojavili su se uređaji poput Trithemius kvadratne ploče, diskovne šifre Thomasa Jeffersona. Ali svi se ti uređaji ne mogu usporediti s onima stvorenim u 20. stoljeću. U to su se vrijeme počeli pojavljivati ​​razni strojevi za šifriranje i mehanizmi visoke složenosti, na primjer, rotacijski strojevi, od kojih je najpoznatiji Enigma.

    Prije naglog razvoja znanosti u 20. stoljeću kriptografi su se morali baviti samo lingvističkim objektima, a u 20. stoljeću otvaraju se mogućnosti korištenja raznih matematičkih metoda i teorija, statistike, kombinatorike, teorije brojeva i apstraktne algebre.

    No, pravi proboj u kriptografskoj znanosti došao je s pojavom mogućnosti predstavljanja bilo koje informacije u binarnom obliku, podijeljenom na bitove pomoću računala, što je omogućilo stvaranje fontova s ​​dotad neviđenom kriptografskom snagom. Takvi se sustavi za šifriranje, naravno, mogu hakirati, ali vrijeme utrošeno na hakiranje nije opravdano u velikoj većini slučajeva.

    Danas možemo govoriti o značajnom razvoju kvantne kriptografije.

    Književnost

    • Baričev S.G., Gončarov V.V., Serov R.E. Osnove moderne kriptografije. - M.: *Varfolomeev A. A., Žukov A. E., Pudovkina M. A. Stream cryptosystems. Osnovna svojstva i metode analize stabilnosti. M.: PAIMS, 2000.
    • Yashchenko VV Uvod u kriptografiju. Sankt Peterburg: Petar, 2001. .
    • GOST 28147-89. Sustavi za obradu informacija. Kriptografska zaštita. Algoritam kriptografske transformacije. Moskva: GK SSSR prema standardima, 1989.
    • GOST R 34.10-94 Informacijska tehnologija. Kriptografska zaštita informacija. *GOST R 34.11-94. Informacijska tehnologija. Kriptografska zaštita informacija. hash funkcija. M., 1995.
    • GOST R 34.10-2001 Informacijska tehnologija. Kriptografska zaštita informacija. Procesi formiranja i provjere elektroničkog digitalnog potpisa. M., 2001.
    • Nechaev VI Elementi kriptografije (Osnove teorije informacijske sigurnosti). Moskva: Viša škola, 1999.
    • Zhelnikov V. Kriptografija od papirusa do računala. M.: AVR, 1996.

    Povijesno gledano, prvi su se pojavili simetrični kriptografski sustavi. V simetrični enkripcijski kriptosustav Isti ključ se koristi za šifriranje i dešifriranje informacija. To znači da svatko tko ima pristup ključu za šifriranje može dešifrirati poruku.

    Sukladno tome, kako bi se spriječilo neovlašteno otkrivanje šifriranih informacija, svi ključevi za šifriranje u simetričnim kriptosustavima moraju se čuvati u tajnosti. Zato se simetrični kriptosustavi nazivaju tajni ključ kriptosustava- ključ za šifriranje mora biti dostupan samo onima kojima je poruka namijenjena. Simetrični kriptosustavi se također nazivaju kriptografski sustavi s jednim ključem, ili kriptosustavi privatnog ključa. Shema simetričnog kriptosustava prikazana je na sl. 5.2.

    Ovi kriptosustavi odlikuju se najvećom brzinom enkripcije, a uz njihovu pomoć osigurava se i povjerljivost i autentičnost, kao i cjelovitost prenesenih informacija. Povjerljivost prijenosa informacija pomoću simetričnog kriptosustava ovisi o pouzdanosti šifre i osiguravanju povjerljivosti ključa za šifriranje.

    Tipično, ključ za šifriranje je datoteka ili niz podataka i pohranjen je na osobnom ključu, kao što je disketa ili pametna kartica; obvezno je poduzeti mjere kako bi se osiguralo da nositelj osobnog ključa nije dostupan nikome osim njegovom vlasniku.

    Autentičnost je osigurana zbog činjenice da je bez preliminarne dešifriranja praktički nemoguće izvršiti semantičku modifikaciju i krivotvorenje kriptografski zatvorene poruke. Lažna poruka ne može se ispravno šifrirati bez poznavanja tajnog ključa.

    Integritet podataka osigurava se dodavanjem posebnog koda (imitacije umetanja) prenesenim podacima, generiranog tajnim ključem. Umetanje imitacije je vrsta kontrolnog zbroja, tj. neka referentna karakteristika poruke, prema kojoj se provjerava integritet potonje. Algoritam za generiranje imitacije umetka mora osigurati njegovu ovisnost, prema nekom složenom kriptografskom zakonu, o svakom bitu poruke. Provjeru integriteta poruke primatelj poruke generira iz tajnog ključa imitaciju uloška koja odgovara primljenoj poruci i uspoređuje je s primljenom vrijednošću imitacije umetka. Ako postoji podudaranje, zaključuje se da podaci nisu mijenjani na putu od pošiljatelja do primatelja.

    Simetrična enkripcija je idealna za šifriranje informacija "za sebe", na primjer, kako bi se spriječilo petljanje u njih u odsutnosti vlasnika. To može biti ili arhivsko šifriranje odabranih datoteka ili transparentno (automatsko) šifriranje cijelih logičkih ili fizičkih diskova.

    Posjedujući veliku brzinu enkripcije, kriptosustavi s jednim ključem omogućuju rješavanje mnogih važnih problema zaštite informacija. Međutim, autonomna uporaba simetričnih kriptosustava u računalnim mrežama otvara problem distribucije ključeva za šifriranje između korisnika.

    Prije početka razmjene kriptiranih podataka potrebno je razmijeniti tajne ključeve sa svim primateljima. Prijenos tajnog ključa simetričnog kriptosustava ne može se provesti javnim komunikacijskim kanalima, tajni ključ se mora prenijeti pošiljatelju i primatelju putem sigurnog kanala. Kako bi se osigurala učinkovita zaštita poruka koje kruže mrežom, potreban je ogroman broj ključeva koji se često mijenjaju (jedan ključ za svaki par korisnika). Prilikom prijenosa ključeva korisnici moraju osigurati povjerljivost, autentičnost i integritet ključeva za šifriranje, što zahtijeva velike dodatne troškove. Ovi troškovi povezani su s potrebom prijenosa tajnih ključeva preko zatvorenih komunikacijskih kanala ili distribucije takvih ključeva pomoću posebne usluge dostave, na primjer, putem kurira.

    Problem distribucije tajnih ključeva velikom broju korisnika vrlo je dugotrajan i složen zadatak. Online na N korisnike treba distribuirati N(N-1)/2 tajni ključevi, tj. broj distribuiranih tajnih ključeva raste prema kvadratnom zakonu s povećanjem broja mrežnih pretplatnika.

    Odjeljak "Upravljanje kripto ključevima" govori o metodama koje osiguravaju sigurnu distribuciju ključeva mrežnim pretplatnicima.


    Obje strane moraju držati algoritam u tajnosti. Algoritam šifriranja odabiru strane prije razmjene poruka.

    Tajna komunikacija temeljena na simetričnom kriptosustavu.

    Sustavi simetrične šifre tradicionalno se koriste za organiziranje tajnih komunikacija. "Redovni" akteri takvih tajnih komunikacijskih protokola su pošiljatelj, primatelj i posrednik koji korisnicima daje ključeve. Da bismo razmotrili pitanja informacijske sigurnosti, ovom popisu sudionika koji nisu zaposlenici treba dodati: pasivnog i aktivnog prekršitelja. Zadaća protokola je prenijeti tajnu poruku x od pošiljatelja do primatelja. Redoslijed radnji je sljedeći:
    1. Pošiljatelj i primatelj dogovaraju se o simetričnom šifriranom sustavu koji će se koristiti, t.j. o obitelji preslikavanja E = (), kK.
    2. Pošiljatelj i primatelj ugovaraju tajni komunikacijski ključ k, t.j. o korištenom preslikavanju E.
    3. Pošiljatelj šifrira otvoreni tekst x koristeći mapiranje, tj. stvara kriptogram y = (x).
    4. Kriptogram y se komunikacijskom linijom prenosi do primatelja.
    5. Primatelj dešifrira kriptogram y koristeći isti ključ k i preslikavanje ^(-1) obrnuto od preslikavanja Ek i čita poruku x= ^(-1)(y).
    Korak 2 protokola implementira se uz pomoć posrednika, treće strane, koja se uvjetno može nazvati centrom za generiranje i distribuciju ključeva (KGRK) (neki tajni komunikacijski protokoli bazirani na asimetričnim šifriranim sustavima ne koriste posrednika, u čemu funkcije KGRK-a obavljaju korisnici).
    Bitna značajka protokola je tajnost ključa k, koji se šalje pošiljatelju i primatelju ili u otvorenom obliku preko komunikacijskog kanala zaštićenog od djelovanja kriptoanalitičara, ili u šifriranom obliku preko otvorenog komunikacijskog kanala. Siguran kanal može imati relativno nisku propusnost, ali mora pouzdano štititi ključne informacije od neovlaštenog pristupa. Ključ k mora ostati tajan prije, tijekom i nakon implementacije protokola, inače napadač, nakon što je preuzeo ključ, može dešifrirati kriptogram i pročitati poruku. Pošiljatelj i primatelj mogu izvršiti 1. korak protokola javno (tajnost šifrarnog sustava nije obavezna), ali korak 2 moraju izvršiti tajno (zahtijeva se tajnost ključa).
    Ova potreba je posljedica činjenice da su komunikacijske linije, osobito dugačke, osjetljive na smetnje pasivnih i aktivnih uljeza. Pasivni uljez (kriptoanalitičar), koji želi dobiti pristup poruci x, kontrolira komunikacijsku liniju u koraku 4 protokola. Ne ometajući provedbu protokola, presreće kriptogram y kako bi otkrio šifru.

    Kriptoanaliza simetričnog kriptosustava.

    Prilikom projektiranja sustava šifriranja, kriptograf obično postavlja sljedeće pretpostavke o sposobnostima kriptoanalitičara:
    1. Kriptoanalitičar kontrolira komunikacijsku liniju.
    2. Kriptoanalitičar poznaje uređaj obitelji E šifriranih preslikavanja.
    3. Kriptoanalitičar ne poznaje ključ k, t.j. mapiranje korišteno za dobivanje kriptograma y je nepoznato.
    Pod tim uvjetima, kriptoanalitičar pokušava riješiti sljedeće zadatke, zvane zadaci dešifriranja.
    1. Odredite otvoreni tekst x i korišteni ključ k iz presretnutog kriptograma y, t.j. konstruirati algoritam dešifriranja  takav da je (y)=(x,k). Ova izjava problema pretpostavlja da kriptoanalitičar koristi statistička svojstva otvorenog teksta.
    2. Odredite korišteni ključ k iz poznatog otvorenog teksta i šifriranog teksta, t.j. izgraditi algoritam dešifriranja takav da je (x,y)=k. Ova formulacija problema ima smisla kada je kriptoanalitičar presreo nekoliko kriptograma dobivenih pomoću ključa k, a nema otvorene tekstove za sve presretnute kriptograme. U tom slučaju, nakon što je riješio problem dešifriranja druge vrste, on će "pročitati" sve otvorene tekstove šifrirane pomoću ključa k.
    3. Odredite korišteni ključ k iz posebno odabranog otvorenog teksta x i odgovarajućeg šifriranog teksta y, t.j. konstruirati algoritam za dešifriranje x takav da je x(y)=k. Slična izjava problema javlja se kada kriptoanalitičar ima mogućnost testiranja kriptosustava, t.j. generiranje kriptograma za posebno odabrani otvoreni tekst. Češće se takva konstatacija problema javlja u analizi asimetričnih sustava. postoji varijanta ovog problema dešifriranja gdje se koristi posebno odabrani šifrirani tekst.
    Za rješavanje problema dešifriranja, kriptoanalitičar koristi ili šifriranu poruku y, ili par (x, y) koji se sastoji od otvorene i šifrirane poruke, ili skup takvih poruka ili parove poruka. Te poruke ili skupovi poruka nazivaju se šifriranim tekstom. Količina šifriranog materijala koji se koristi za dešifriranje je duljina tih poruka ili ukupna duljina skupa poruka. Količina materijala za šifriranje važna je karakteristika metode dešifriranja. Udaljenost jedinstvenosti šifre najmanji je broj znakova šifriranog teksta potrebnih za jedinstveno određivanje ključa. U mnogim praktičnim slučajevima jednaka je duljini ključa, ako su ključ i kriptogram riječi iz ekvivalentnih abeceda. Uz istu količinu šifriranog materijala, problemi dešifriranja prve vrste razlikuju se po većoj računskoj složenosti u odnosu na probleme druge i treće vrste, a problemi testiranja imaju najmanju računsku složenost.
    U nekim slučajevima, kriptoanalitičar može riješiti problem vraćanja obitelji E šifriranih preslikavanja iz poznatog para (x,y) otvorenog teksta i šifriranog teksta, koristeći neke dodatne uvjete. Ovaj zadatak se može formulirati kao "dekodiranje crne kutije" s obzirom na poznate ulaze i odgovarajuće izlaze.
    Aktivni uljez krši provedbu protokola. On može prekinuti vezu u koraku 4, vjerujući da pošiljatelj neće moći više ništa reći primatelju. Također može presresti poruku i zamijeniti je svojom. Ako je aktivni uljez znao ključ (kontrolom koraka 2 ili infiltracijom u kriptosustav), mogao je šifrirati svoju poruku i poslati je primatelju umjesto presretnute poruke, što u potonjem ne bi izazvalo nikakvu sumnju. Bez poznavanja ključa, aktivni uljez može stvoriti samo nasumični kriptogram, koji će se nakon dešifriranja pojaviti kao slučajni niz.

    zahtjevi protokola.

    Razmatrani protokol podrazumijeva povjerenje pošiljatelja, primatelja i treće strane koju zastupa TsGRK. To je slabost ovog protokola. Međutim, ne postoje apsolutna jamstva za besprijekornost ovog ili onog protokola, budući da je provedba bilo kojeg protokola povezana sa sudjelovanjem ljudi i ovisi, posebice, o kvalifikacijama i pouzdanosti osoblja. Dakle, o organizaciji tajne komunikacije korištenjem simetričnog kriptosustava mogu se izvući sljedeći zaključci.
    1. Protokol mora štititi običan tekst i ključ od neovlaštenog pristupa neovlaštene osobe u svim fazama prijenosa informacija od izvora do primatelja poruke. Tajnost ključa važnija je od tajnosti više poruka šifriranih tim ključem. Ako je ključ kompromitiran (ukraden, pogoden, otkriven, otkupljen), tada uljez koji ima ključ može dešifrirati sve poruke šifrirane ovim ključem. Osim toga, uljez će moći oponašati jednu od pregovaračkih strana i generirati lažne poruke kako bi doveo drugu stranu u zabludu. Čestim izmjenama ključeva ovaj se problem minimizira.
    2. Protokol ne bi trebao dopustiti da “dodatne” informacije uđu u komunikacijsku liniju, što neprijateljskom kriptoanalitičaru pruža dodatne mogućnosti za dešifriranje kriptograma. Protokol mora štititi informacije ne samo od neovlaštenih osoba, već i od međusobne obmane aktera protokola.
    3. Ako pretpostavimo da svaki par korisnika komunikacijske mreže koristi zaseban ključ, tada je broj potrebnih ključeva n*(n-1)/2 za n korisnika. To znači da za veliki n generiranje, pohranjivanje i distribucija ključeva postaje dugotrajan problem.

    U simetričnom kriptosustavu za šifriranje, isti se ključ koristi za šifriranje i dešifriranje informacija. To znači da svatko tko ima pristup ključu za šifriranje može dešifrirati poruku. Kako bi se spriječilo neovlašteno otkrivanje šifriranih informacija, svi ključevi za šifriranje u simetričnim kriptosustavima moraju se čuvati u tajnosti. Zato se simetrični kriptosustavi nazivaju kriptosustavi s tajnim ključem – ključ za šifriranje treba biti dostupan samo onima kojima je poruka namijenjena. Simetrični kriptosustavi se također nazivaju kriptografski sustavi s jednim ključem. Shema simetričnog kriptosustava prikazana je na sl. 4.3.

    Riža. 4.3. Kriptosustav simetrične enkripcije

    Ovi kriptosustavi odlikuju se najvećom brzinom enkripcije, a uz njihovu pomoć osigurava se i povjerljivost i autentičnost, kao i cjelovitost prenesenih informacija.

    Povjerljivost prijenosa informacija pomoću simetričnog kriptosustava ovisi o pouzdanosti šifre i osiguravanju povjerljivosti ključa za šifriranje. Tipično, ključ za šifriranje je datoteka ili niz podataka i pohranjen je na osobnom ključu, kao što je disketa ili pametna kartica; obvezno je poduzeti mjere kako bi se osiguralo da nositelj osobnog ključa nije dostupan nikome osim njegovom vlasniku.

    Autentičnost je osigurana zbog činjenice da je bez preliminarne dešifriranja praktički nemoguće izvršiti semantičku modifikaciju i krivotvorenje kriptografski zatvorene poruke. Lažna poruka ne može se ispravno šifrirati bez poznavanja tajnog ključa.

    Integritet podataka osigurava se dodavanjem posebnog koda (prefiksa imitacije) prenesenim podacima, generiranog tajnim ključem. Prefiks imitacije je vrsta kontrolnog zbroja, odnosno neka referentna karakteristika poruke, prema kojoj se provjerava integritet potonje. Algoritam za formiranje prefiksa imitacije mora osigurati njegovu ovisnost o svakom bitu poruke prema nekom složenom kriptografskom zakonu. Provjeru integriteta poruke primatelj poruke generira lažni ključ iz tajnog ključa koji odgovara primljenoj poruci i uspoređuje ga s primljenom lažnom vrijednošću. Ako postoji podudaranje, zaključuje se da podaci nisu mijenjani na putu od pošiljatelja do primatelja.



    Simetrična enkripcija idealna je za šifriranje informacija "za sebe", na primjer, kako bi se spriječio neovlašteni pristup njima u odsutnosti vlasnika. To može biti ili arhivsko šifriranje odabranih datoteka ili transparentno (automatsko) šifriranje cijelih logičkih ili fizičkih diskova.

    Posjedujući veliku brzinu enkripcije, kriptosustavi s jednim ključem omogućuju rješavanje mnogih važnih problema zaštite informacija. Međutim, autonomna uporaba simetričnih kriptosustava u računalnim mrežama otvara problem distribucije ključeva za šifriranje između korisnika.

    Prije početka razmjene kriptiranih podataka potrebno je razmijeniti tajne ključeve sa svim primateljima. Prijenos tajnog ključa simetričnog kriptosustava ne može se provesti javnim komunikacijskim kanalima, tajni ključ se mora prenijeti pošiljatelju i primatelju putem sigurnog kanala.

    Postoje implementacije algoritama simetrične enkripcije za enkripciju podataka o pretplatnicima - to jest, za slanje šifriranih informacija pretplatniku, na primjer, putem Interneta. Korištenje jednog ključa za sve pretplatnike takve kriptografske mreže neprihvatljivo je iz sigurnosnih razloga. Doista, u slučaju kompromitacije (gubitka, krađe) ključa, tijek dokumenata svih pretplatnika bit će ugrožen. U ovom slučaju može se koristiti ključna matrica (slika 4.4).

    Matrica ključeva je tablica koja sadrži ključeve za uparivanje pretplatnika. Svaki element tablice namijenjen je komunikaciji pretplatnika i i j i dostupan je samo za dva pretplatnika. Sukladno tome, za sve elemente ključne matrice vrijedi jednakost

    . (4.3)

    Slika 4.4. Ključna matrica

    Svaki i-ti red matrice je skup ključeva određenog pretplatnika i komunicirati s drugima N- 1 pretplatnik. Skupovi ključeva (mrežni setovi) raspoređeni su među svim pretplatnicima kriptografske mreže. Slično gore navedenom, netsetove treba distribuirati kroz sigurne kanale komunikacija ili prsa u ruku.



    Karakteristična značajka simetričnih kriptoalgoritama je da tijekom svog rada transformiraju blok ulaznih informacija fiksne duljine i dobivaju rezultirajući blok iste veličine, ali nečitljiv trećim osobama koje nemaju ključ. Shema rada simetrične blok šifre može se opisati funkcijama

    gdje M– početni (otvoreni) blok podataka; S– šifrirani blok podataka.

    Ključ DO je parametar simetričnog blok kriptalgoritma i blok je binarnih informacija fiksne veličine. izvornik M i šifrirano S blokovi podataka također imaju fiksnu širinu bita jednaku jedan drugome, ali ne nužno jednaku duljini ključa DO.

    Blok šifre su osnova na kojoj su implementirani gotovo svi simetrični kriptosustavi. Simetrični kriptosustavi omogućuju vam kodiranje i dekodiranje datoteka proizvoljne duljine. Gotovo svi algoritmi koriste određeni skup reverzibilnih matematičkih transformacija za transformacije.

    Metoda stvaranja lanaca bajtova šifriranih blok algoritmima omogućuje im šifriranje informacijskih paketa neograničene duljine. Nedostatak statističke korelacije između bitova izlaznog toka blok šifre koristi se za izračunavanje kontrolnih zbroja paketa podataka i kod raspršivanja lozinki.

    Kriptalgoritam se smatra idealno sigurnim ako je, kako bi se pročitao šifrirani blok podataka, potrebno pretražiti sve moguće ključeve dok dešifrirana poruka ne dobije smisao. Općenito, snaga blok šifre ovisi samo o duljini ključa i raste eksponencijalno s njegovim rastom.

    Da biste dobili jake blok šifre, koristite dva opća principa:

    ¨ difuziju- je raspodjela utjecaja jednog znaka otvorenog teksta na mnoge znakove šifriranog teksta, što vam omogućuje da sakrijete statistička svojstva otvorenog teksta.

    ¨ miješanje- korištenje takvih transformacija šifriranja koje kompliciraju obnovu odnosa između statističkih svojstava običnog i šifriranog teksta.

    Međutim, šifra ne samo da bi trebala otežati otkrivanje, već i omogućiti jednostavnost šifriranja i dešifriranja s tajnim ključem poznatim korisniku.

    Uobičajeni način za postizanje učinaka raspršenja i miješanja je korištenje kompozitne šifre, odnosno šifre koja se može implementirati kao neki niz jednostavnih šifri, od kojih svaka pridonosi značajnom ukupnom raspršenju i miješanju.

    U složenim šiframa, jednostavne permutacije i supstitucije najčešće se koriste kao jednostavne šifre. Permutacija jednostavno miješa znakove otvorenog teksta, pri čemu je određena vrsta miješanja određena tajnim ključem. Kod zamjene, svaki znak u otvorenom tekstu zamjenjuje se drugim znakom iz iste abecede, a specifična vrsta zamjene također je određena tajnim ključem. Treba napomenuti da su u modernoj blok šifri blokovi otvorenog teksta i šifriranog teksta binarni nizovi, obično dugi 64 ili 128 bita. Uz duljinu od 64 bita, svaki blok može uzeti 264 vrijednosti. Stoga se zamjene vrše u vrlo velikoj abecedi koja sadrži do 2 64 ~ 10 19 "znakova".

    Uz ponovljeno izmjenjivanje jednostavnih permutacija i supstitucija kontroliranih dovoljno dugim tajnim ključem, može se dobiti jaka šifra s dobrom disperzijom i miješanjem.

    Sve akcije koje izvodi blok kriptoalgoritam nad podacima temelje se na činjenici da se blok koji se pretvara može biti predstavljen kao nenegativan cijeli broj iz raspona koji odgovara njegovom kapacitetu. Na primjer, 32-bitni blok podataka može se tumačiti kao broj iz raspona 0...4294 967 295. Osim toga, blok čija je širina bita "potencija dva" može se tumačiti kao spajanje nekoliko nezavisni nenegativni brojevi iz manjeg raspona (32 A-bitni blok također se može predstaviti kao spoj dva neovisna 16-bitna broja iz raspona 0...65535 ili kao spoj četiri neovisna 8-bitna broja iz raspon 0...255).

    Na tim brojevima blok kriptoalgoritam izvodi radnje navedene u tablici 1 prema određenoj shemi. 4.1.

    Tablica 4.1. Radnje koje izvode kriptalgoritmi na brojevima

    Kao parametar V za bilo koju od ovih transformacija može se koristiti:

    ¨ fiksni broj (npr. x"= x + 125);

    ¨ broj dobiven iz ključa (npr. x"= x + F(K));

    ¨ broj dobiven iz nezavisnog dijela bloka (npr. x 2" = x 2 + F(x 1)).

    Redoslijed operacija izvedenih na bloku, kombinacije gore navedenih opcija V i same funkcije F i čine karakteristične značajke određenog simetričnog blok kriptoalgoritma.

    Karakteristična značajka blok algoritama je ponovljena i neizravna upotreba ključnog materijala. To je prvenstveno uvjetovano zahtjevom o nemogućnosti obrnutog dekodiranja s obzirom na ključ kada su poznati izvorni i šifrirani tekst. Za rješavanje ovog problema gore navedene transformacije najčešće ne koriste ključnu vrijednost ili njezin dio, već neku, ponekad nepovratnu, funkciju ključnog materijala. Štoviše, u takvim se transformacijama isti blok ili ključni element više puta koristi. To dopušta, pod uvjetom da je funkcija invertibilna s obzirom na količinu x učinite funkciju nepovratnom u odnosu na tipku DO.

    Vrhunski povezani članci