Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjeti
  • Simetrična i asimetrična enkripcija.

Simetrična i asimetrična enkripcija.

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

U redu, razumijem da ne moraju svi znati sve suptilnosti implementacije asimetrične enkripcije. Ali generalni princip rada, smatram, treba da bude poznat svima koji su na bilo koji način povezani sa računarima.

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

Usput, zašto Alice i Bob? Postoji kratak članak na Wikipediji o tome: Alice, Bob i Eve. Da bi bilo jasnije, Alice i Bob žele da razmenjuju poruke, a Eva pokušava da presretne i pročita te poruke.

Malo istorije

Kripografija prošlih vekova imala je jedan ogroman problem - problem prenosa ključeva. 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 mogao pročitati, potreban mu je ključ kojim je ova poruka šifrirana. I tu nastaje problem, kako prenijeti ključ da ga niko ne presretne. Radoznali umovi će ponuditi - pustite ih da prenesu lično, a zatim komunicirajte koliko god žele. Da, ne raspravljam, izlaz. Sada zamislite na trenutak da vaša Internet pošta, prije nego što se prijavite na nju, zahtijeva da otputujete na fizičku lokaciju servera e-pošte. Udoban? Možda ne mnogo.

Naravno, ključ se može prenijeti preko drugog komunikacijskog kanala. Ali kriptografija sve nesigurne komunikacione kanale smatra nesigurnim. 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 problem je postao toliko poznat da se smatrao aksiomom da je za prenošenje poruke bilo potrebno prenijeti i ključ kojim je poruka šifrirana (a neki ljudi još uvijek tako misle). Ali 76. godine, Diffie i Hellman su predložili svoj "eksponencijalni metod razmjene ključeva". Od ovih godina počinje razvoj asimetričnih kriptosistema.

Malo stvarnog života

Prije nego što proučite bilo koji algoritam, morate razumjeti kako on funkcionira. A najlakše je to uporediti sa radom nečega u stvarnosti.

Zamislimo da Alice i Bob žive u zemlji u kojoj je cijeli poštanski sistem potpuno nemoralan, a poštanski službenici čitaju svu neosiguranu poštu. Alice, djevojka koja nije glupa, prije nego što je poslala poruku Bobu, uzela je željeznu kutiju i, ubacivši pismo unutra i zatvorivši ga bravom, š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 neće moći da je otvori...

Jedini način je da napravite duplikat ključa i date ga Bobu lično...

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

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

  1. Alice stavlja svoje pismo u željeznu kutiju i nakon što je zaključa, šalje ga Bobu.
  2. Bob, po prijemu kutije, (pažnja!) uzima svoju bravu i, dodatno zaključavajući kutiju njome, šalje je nazad.
  3. Kutija dolazi Alisi već sa dvije brave (da podsjetim na Alisinu 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 prima kutiju sa jednom od svojih brava, od 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 uništava sve aksiome na kojima je izgrađena tadašnja kriptografija. Da, malo se zakomplicira proces (kutija je morala biti poslata tri puta), ali rezultat...

Nazad na kriptografiju

Čini se da je rješenje pronađeno. Pošiljalac i primalac šifruju svoju poruku, a zatim sagovornici naizmjence uklanjaju svoju šifru.


Ali suština 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 da to nazovem aksiomom (pošto istorija već poznaje slučajeve kada su takvi aksiomi bili razbijeni u paramparčad), ali to je i dalje slučaj.

Nazad na matematiku

Ideja o kutiji koju sam gore opisao inspirisala je Difija i Helmana da potraže način da pošalju poruku. Na kraju su počeli koristiti jednosmjerne funkcije.

Šta je jednosmjerna funkcija? Na primjer, postoji funkcija udvostručavanja, tj. duplo(4)=8, dvostrano je, jer iz rezultata 8 lako je dobiti početnu vrijednost 4. Jednosmjerna funkcija je funkcija nakon koje 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). Reverzna transformacija za takvu funkciju je vrlo teška, i možemo reći da se, zapravo, sastoji u potpunom nabrajanju originalnih vrijednosti.

Na primjer, to vam je rečeno 5 x (mod 7) = 2 pokusaj naci x, a? Pronađen? 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 pošto još uvijek pokušavamo razumjeti teoriju, ne vidim smisao da se zamaramo ovim.

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 izvršiti korake s obje strane, pa ću ga skicirati u tabeli:

Alice Bean
Faza 1 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)
Faza 2 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
Faza 3 Alice ubacuje broj A 73 (mod 11)= 343 (mod 11) = 2 a Bob uključuje 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
Faza 4 Alice šalje broj a Bob Bob šalje broj b Alice
Faza 5 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
Faza 6 Oba učesnika su završila sa brojem 9 . Ovo će biti ključ.

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

I imajte na umu da svaka osoba mora imati tri vrijednosti da bi dobila ključ u konačnoj formuli:

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

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

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

Pretpostavimo prvo da svi, uključujući Alice, Boba i Eve, imaju teglu od tri litre napunjenu jednom litrom žute boje. Ako Alis i Bob žele da se dogovore oko tajnog ključa, dodaju po jedan litar svoje tajne boje u svoje tegle.

Alice može dodati ljubičastu nijansu, a Bob može dodati grimizno. Nakon toga, svaki od njih šalje svoju teglu pomiješanog sadržaja drugoj.

Konačno, Alice uzima Bobovu mješavinu i dodaje joj jedan litar svoje tajne boje, a Bob uzima Aliceinu mješavinu i dodaje joj jedan litar svoje tajne boje. Boja u obje limenke sada će biti iste boje, jer svaka sadrži po jedan litar žute, ljubičaste i grimizne boje.

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

U međuvremenu, Eva je bijesna. Čak i ako uspije da presretne tegle poluproizvoda, 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 originalnih tajnih boja Alice i Boba. Međutim, gledajući u tegle 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 razdvojiti na originalne boje da bi pronašla tajnu, jer je miješanje boje jednosmjerna funkcija.

Još uvijek nejasno? Zatim pogledajte video:

Pa, nadam se da razumijete da postoji vrlo stvaran način za bezbednu razmenu ključeva. Ali imajte na umu da je ovaj algoritam još uvijek nemoguće nazvati asimetričnom šifrom, jer je u stvari samo algoritam za razmjenu ključeva.

Asimetrična enkripcija

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

Općenito, suština ovog algoritma je da prije primanja poruke strana koja prima generira par ključeva na osnovu modularnog aritmetičkog algoritma (princip je isti kao u Diffie-Hellman algoritmu), privatnog i javnog ključa. . Prije slanja, pošiljalac prima javni ključ i njime š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:

Svako može zaključati bravu jednostavnim zatvaranjem, ali samo neko sa ključem može je otključati. Zaključavanje brave (šifriranje) je jednostavno, gotovo svi to mogu, 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 da je otključate.

Može se povući i dublja analogija.

Zamislite da Alice dizajnira bravu i ključ. Ona budno čuva ključ, ali u isto vrijeme pravi hiljade duplih brava i šalje ih u pošte širom svijeta. Ako Bob želi poslati poruku, stavlja je u kutiju, odlazi u lokalnu poštu, traži "Aliceinu bravu" i koristi je da zaključa kutiju. Sada on neće moći da otvori kutiju, ali kada Alice dobije kutiju, ona će moći da je otvori svojim jedinim ključem.

Zaključavanje i zatvaranje je ekvivalentno zajedničkom ključu za šifriranje, budući da svi imaju pristup bravama i svako može koristiti bravu da zatvori poruku u kutiji. Ključ brave je ekvivalentan tajnom ključu za dešifriranje jer ga samo Alice ima, 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 to funkcionira u pokretu, a i dalje ne mogu pisati bolje od onoga što piše na Wikipediji.

Zaključak

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

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

  1. tv

    Odabir takvog ključa će vam oduzeti jako puno vremena. Malo više od univerzuma postoji. Čak i na veoma moćnim računarima.

  2. Igor

    Čemu služi ova glupost s javnim ključem? Simetrično je pouzdanije.
    Dobar dan!
    Dobar sajt, materijal je jasno predstavljen, veliko hvala autoru. Slučajno sam došao u septembru kada sam tražio informacije o praktičnom šifrovanju.
    Pišem jer želim da pitam: Ima li neko ko želi da zna kako pronaći brojeve za simetrično šifrovanje? Mogu na prstima naučiti kako brzo provjeriti broj P radi jednostavnosti (bez traženja broja g) - ali ovo vjerovatno neće biti zanimljivo. Najzanimljivije:
    Nađi broj P bilo koje dužine i njemu broj g. Ne koristim nijedno 2 na stepen n plus jedan (ili minus jedan). Naravno, besplatno je. Čak postoji i stranica na kojoj sam objavio svoj rad.

  • Wasya Petrovich

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

    Ovo neće raditi, 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 Alisine šifre) i koristite nam već poznati Bobov broj.

  • Evgeniy

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

    Sa pedagoške tačke gledišta, sve ste uradili 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: upotrebu metafora za objašnjenje "složenih" sistema je iskreno teško precijeniti. Hvala još jednom!

  • dbzix

    Iz ovog članka nisam uhvatio trenutak prijelaza sa Diffie-Hellman algoritma, gdje dva pretplatnika razmjenjuju javne podatke i međurezultate proračuna kako bi dobili tajni ključ (ispostavilo se da je primjer imao čak 6 faza) na faza u kojoj se za enkripciju koristi određeni javni ključ, koji se potom dešifruje korištenjem privatnog (ovdje računam samo 2 faze prijenosa podataka - slanje javnog ključa i slanje poruke šifrirane ovim ključem).
    One. Razumijem da je negdje između ova dva objašnjenja vjerovatno mnogo matematike, a na kraju se objašnjenje svodi na “ovako to funkcionira, samo mi vjeruj”. Ali vjerovatno bi bilo lakše razumjeti ovu iznenadnu tranziciju kada bi se analogija s bojama proširila kako bi se objasnila suština šifriranja javnim ključem, nakon čega slijedi dešifriranje privatnim. U međuvremenu se ispostavilo da neka vrsta „B radi jer A“, dok nema jasne veze između A i B. Bar za mene.
    Poštovani autore, da li biste bili ljubazni da mi objasnite ovaj mistični skok od A do B? :) Hvala!

  • Evgeniy

    Dobar dan,

    Dato: postoji formula Y^x (mod P).
    primjer u članku je zasnovan 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
  • Andrew

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

    Znam da ako, na primjer, trebaš izračunati 625 (mod 13), treba ti 625/13, a zatim najveći mogući djelitelj cijelog broja (48) pomnožen sa modulom (koji će ovdje biti 624), i na kraju 625- 624 = 1
    Brojevi 625 i 1 su podudarni po modulu 13, jer je 624 deljivo sa 13.
    To je ono što ja razumijem. Ali šta ako je modul veći od broja a?

  • žuti horor

    1. Napad čovjeka u sredini je ozbiljan problem. Koliko mogu reći, samo u okviru kriptografije, to se u principu ne može riješiti: 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 pomoć. Alice mora dobiti najmanje 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 široko koristi u kriptografiji od davnina do danas. Mislim da se ne može patentirati :(

    1. Dmitry 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 mučenje 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 to inherentno.

      1. žuti horor

        hajde? Guglajte Vernamovu šifru. Ovo je sistem za razmenu poruka apsolutno kriptografska stabilnost. I baziran je na XOR-u. Ostavljajući po strani neke organizacijske poteškoće (stvaranje zaista nasumičnih 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 horor

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

        1. Šifrovane 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. Da bi šifrirala poruku, Alice bira tajni broj (koji nikome ne šalje), koji dodaje svakom od brojeva u blokovima i tako šifriranu poruku šalje Bobu.

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

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

        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, šifrovano samo Bobovim ključem. Koje Eve već ima! Eva dešifruje pismo i čita ga i, za svaki slučaj, može da povrati Alisin ključ koristeći dešifrovani tekst pisma i prvi šifrovani tekst koji je presrela.

  • Dmitry

    Zdravo. Dobar članak, ali također nisam razumio neke tačke koje su gore opisane.
    To je prijelaz sa algoritma za dobivanje tajnog ključa od strane oba sagovornika (Alice i Bob) (bez njihovog dijeljenja u javnom pristupu) na asimetrično šifriranje.
    Napisali ste da je poruka kodirana na Alisinoj strani javnim ključem primljenim od Boba. Ali ako šifriramo javnim ključem, Eva ga 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 to neka glupost.
    Na osnovu ovih očiglednih praznina (bilo tvojih ili mojih) zaključio sam da bi ovdje sklop trebao biti složeniji nego na slici. Najvjerovatnije, strelica od Bobovog javnog ključa do Alice znači nešto drugo, naime cijeli niz akcija za dobivanje "Y" i "P", dobivanje međurezultata i tako dalje. Drugim riječima, mislim da kada je originalna poruka šifrirana navodno javnim ključem, ona se zapravo šifrira ne javnim ključem, već 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 pozicije 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, ovo će najvjerovatnije funkcionirati samo u slučajevima kada oboje znaju vrstu šifriranja sagovornika i s prilično jednostavnim tipovima šifriranja (monoalfabetsko / poliabecedno). I ja sam nov u kriptogramu, tako da je ovo moj IMHO ;)

    1. Dmitry

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

      1. Dmitry

        Čitao sam, manje-više nekako grupisao sve u mislima.
        Odgovoriću na pitanja koja sam napisao, možda pomoći drugim čitaocima.
        1. O

        Napisali ste da je poruka kodirana na Alisinoj strani javnim ključem primljenim od Boba. Ali ako šifriramo javnim ključem, Eva ga može lako dobiti i sama dešifrirati, zar ne?
        Ostalo mi je nejasno i 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. Algoritam simetrične enkripcije. Zapravo koristi sljedeći algoritam:
        1) Na osnovu neke jednosmjerne funkcije šifriranja (funkcija koju je lako izračunati u jednom smjeru, ali vrlo teško u drugom. A) kreiramo par na primaocu (javni ključ; privatni ključ). Ovaj par je jedinstven, odnosno svaki javni ključ ima jedinstveni privatni ključ za ovu jednosmjernu funkciju.

        3) Pošiljalac šifrira poruku
        4) Prolazi primaocu

        Kao što vidite, pošiljalac ne poznaje privatni ključ i nije u stanju da dešifruje svoju šifrovanu poruku. Zbog toga 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 koristio Diffie i Hellman algoritam za prosljeđivanje tajnog ključa, a zatim sam bio u mogućnosti da bezbedno pošaljem šifrovanu poruku, da li bi ovaj metod bio simetričan?

        Daffy-Hellman algoritam, koji služi za razmjenu ključeva i daljnju simetričnu enkripciju. Odnosno, njegova suština je da prvo oboje dobiju puni ključ za šifriranje i dešifriranje, a zatim započnu najobičniju simetričnu enkripciju.

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

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

        Nadam se da će nekome pomoći ;3

        1. Dmitry

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

        2. Dmitry Amirov Autor

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

          Čini se da je sve tačno. Postoji jedna stvar, ali prema vašem posljednjem paragrafu, a konkretno prema terminima:

          • Daffy-Hellman algoritam- je algoritam koji vam omogućava da dobijete jedan zajednički tajni ključ i ništa više
          • Asimetrična/simetrična enkripcija- generalno, u pravu si
          • 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 sagovornika šifriraju metodom simetrične enkripcije.
        3. Dmitry

          I dalje nisam razumeo izjavu:
          2) Javni ključ se prenosi pošiljaocu.
          3) Pošiljalac šifrira poruku
          4) Prolazi primaocu
          5) Primalac dešifruje privatnim ključem. Ova poruka se ne može dešifrirati pomoću javnog ključa.

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

  • Robert

    Hvala puno!!!

  • roman

    Hvala ti. Konačno sam odlučio da shvatim kako to funkcionira i shvatio sam iz ovog članka. Samo, vjerujem, ako se saučesnici poznaju i ako je moguće sigurno razmijeniti javne ključeve, onda to vrijedi učiniti. Da se eliminišu štetni efekti moguće pojave osobe u sredini tokom razmene ključeva, koja će se pretvarati da je A kao B i B kao A, zamenjujući ključeve svojim i na kraju pregledavajući sve informacije.

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

  • Rinswind

    Hvala na članku. Sve je vrlo jasno objasnjeno.

  • grigory

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

  • grigory

    Ponekad je pitanje jednostavno. Virusi za šifriranje koriste privatni ključ. Postoji originalni fajl, postoji šifrovani fajl. 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! Konačno sam shvatio osnove :).

  • Yaroslav

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

    Ovo nije sasvim tačno. dat ć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);

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

    Bob: nameće svoju šifru B + 3 = E
    Bob: šalje pismo Alisi
    Alisa: 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č. Štaviše, možda nije jednoznačno. U principu, njegova dužina nije ničim ograničena.

  • Dmitry

    Dugo sam izbjegavao teorijske osnove asimetrične enkripcije. Površno sam znao - postoji javni ključ koji šifrira podatke, a postoji i privatni ključ koji te podatke dešifrira. Ali pomisao na implementaciju takvog šifriranja uvijek me je mučila.
    Vaš članak je puno pomogao, hvala vam puno na tome!
    Tek pred kraj sam opet vidio ovu glupost - "šifrirano javnim ključem". Na kraju krajeva, strogo govoreći, poruka nije šifrovana javnim ključem, već ključem koji je izveden iz privatnog ključa pošiljaoca i javnog ključa primaoca (koji je, pak, generisan iz privatnog ključa primaoca). Zaista, u tabeli o Alisi i Bobu - oni i samo oni su mogli da dobiju isti ključ "9" - koristi se za šifrovanje i dešifrovanje poruke. Ali ovaj ključ možete dobiti samo na osnovu para ključeva - tajnog (Alice / Bob) i javnog (Bob / Alice).
    Slikovito – da, poruka je uvek šifrovana tajnim ključem pošiljaoca (grubo rečeno, konstantan) i javnim ključem primaoca (zavisi od konkretnog primaoca), pa je šifrovanje „tajnim“ ključem u opisu izostavljeno – a ovaj 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 neko zna tacno da odgovori - 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 tacno cekam odgovor, onda onog sa kojim sam zaista hteo da uspostavim vezu?

    1. Dmitry Amirov Autor

      Ovdje malo pogrešno postavljate pitanje.

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

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

      1. clarkson

        Moram da se borim protiv svoje gluposti. tema je prežvakana u komentarima a u vašem članku izgleda da je sve objašnjeno.

        još. zašto mi treba njegov javni ključ? reci mi ako nisam dobro razumeo.
        Ja sam inicijator (trebaju mi ​​odgovori, u primjeru ja sam strana koja prima), tako da generišem par. on je taj koji odgovara (pošiljalac u vašem primjeru) treba moju javnost

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

  • beshot

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

    1. Dmitry Amirov Autor

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

      Ako je potpis „dešifrovan“, tada javni ključ odgovara privatnom i od tada a priori, samo pošiljalac ima privatni ključ, što znači da je pošiljalac potpisao dokument.

      1. beshot

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

        Možda je to u originalnom zadatku, na primjer, primalac treba da autentifikuje messenger.
        Onda ne vidim kako ova šema može pomoći?

        1. Dmitry Amirov Autor

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

          Nije baš u redu. Poruka je šifrovana jednim ključem, a dešifrovana drugim. One. sasvim je moguće šifrirati privatno, a dešifrirati javno.

          Pogledajmo primjer. Želite da mi pošaljete poruku, želim da budem siguran da ste mi je vi poslali. Korak po korak:
          1) Poruku šifrujete privatnim ključem
          2) Pošaljite mi ga
          3) Kontaktiram vas i dobijam vaš javni ključ od vas
          4) Dešifrujem primljenu poruku vašim javnim ključem
          5) Ako je poruka dešifrovana, onda ste je vi poslali

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

          1. beshot

            Ok, ali šta ako želite da sakrijete poruku od znatiželjnih očiju?

  • Anya

    Dobar dan! Svidio mi se članak, ali bilo je pitanja (čak i nekoliko sličnih pronađeno je u komentarima, ali bez odgovora).
    Ako u drugom dijelu članka ipak idemo na analogiju s Alisom i Bobom, posebno na brojeve A, B, a, b, P i na broj 9 dobijen u primjeru, koji će od njih biti privatni ključ, a koji javni? Hvala unaprijed na odgovoru!

    1. Anya

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

    2. Dmitry Amirov Autor

      Ispravnije bi bilo reći da u procesu razmjene podataka Alice i Bob dobijaju zajednički ključ 9 , koji 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 privatnog/javnog para ključeva je zapravo malo složeniji, iako je sličan gore navedenom algoritmu, ali ipak vjerojatno vrijedi poseban članak. U komentaru se neću potpisati ovdje odmah, jer mogu pobrkati mnoge stvari.

  • Gregory
  • Sredstva kriptografske zaštite državnih tajni i dalje se izjednačavaju sa oružjem. Vrlo malo zemalja u svijetu ima vlastite kriptografske kompanije koje prave zaista dobre alate za sigurnost informacija. Čak ni u mnogim razvijenim zemljama ne postoji takva mogućnost: ne postoji škola koja bi omogućila da se ove tehnologije podržavaju i razvijaju. Rusija je jedna od rijetkih zemalja na svijetu – možda pet i nešto zemalja – gdje je sve to razvijeno. Štaviše, i u komercijalnom i u javnom sektoru postoje kompanije 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 su podijeljeni 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 važe dva glavna zahtjeva: potpuni gubitak svih statističkih pravilnosti u objektu šifriranja i odsustvo linearnosti. Uobičajeno je da se simetrični sistemi dijele na blokovske i protočne.

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

    U striming sistemima se generiše određena sekvenca (izlazna gama), koja se naknadno nadograđuje na samu poruku, a podaci se šifruju u toku kako se gama generiše. Na slici je prikazana komunikacijska shema koja koristi simetrični kriptosistem.

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

    Obično, simetrična enkripcija koristi složenu i višestepenu kombinaciju zamjena i permutacija izvornih podataka, a može biti 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 datom zakonu. Permutacija je neophodna da bi se ispunio drugi uslov - da bi algoritam bio nelinearan. Ovo se postiže zamjenom određenog dijela poruke date veličine standardnom vrijednošću upućivanjem na originalni niz.

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

    Prednosti simetričnih šifri uključuju veliku brzinu šifriranja, manju potrebnu dužinu ključa sa sličnom snagom, veće znanje i lakoću implementacije. Nedostaci simetričnih algoritama su prvenstveno složenost razmjene ključeva zbog velike vjerovatnoće narušavanja tajnosti ključa prilikom 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)
    • Twofish
    • SEED - Korejski standard šifriranja
    • Camellia je japanski standard šifriranja.
    • CAST (prema inicijalima programera Carlisle Adams i Stafford Tavares)
    • 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 sistemi se takođe nazivaju kriptosistemi javnog ključa. Ovo je metoda šifriranja podataka u kojoj se javni ključ prenosi preko otvorenog kanala (nije skriven) i koristi se za provjeru elektronskog potpisa i šifriranje podataka. Za dešifriranje i kreiranje elektronskog potpisa koristi se drugi ključ, tajni.

    Sam uređaj asimetričnih kriptosistema 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 sistema

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

    Ovdje je potrebno napraviti pojašnjenje. Prilikom primanja poruke, pretplatnik A mora autentifikovati 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 Cipher System)
    • Diffie-Hellman (Diffie-Hellman Key Exchange)
    • ECC (kriptografija eliptičke krivulje, kriptografija eliptičke krivulje)

    Hash funkcije

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

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

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

    • Za datu poruku C, praktično je nemoguće pokupiti drugu poruku C" sa istim hešom
    • Praktično je nemoguće pokupiti parove poruka (SS") koje imaju isti hash.

    Zahtjevi se nazivaju otpornost na sudare prve i druge vrste, respektivno. Za takve funkcije ostaje važan još jedan zahtjev: uz malu promjenu argumenta, mora doći do značajne promjene u samoj funkciji. Dakle, heš 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
    • Skin
    • Snefru
    • tigar (TTH)
    • Whirlpool
    • GOST R34.11-94 (GOST 34.311-95)
    • IP Internet kontrolna suma (RFC 1071)

    Kriptografski primitivi

    Da bi šifrovane informacije dobile veću kriptografsku snagu, relativno jednostavne transformacije - primitive - mogu se više puta primeniti u kriptografskom sistemu. Primitive mogu biti zamjene, permutacije, rotacije ili gama.

    kvantna kriptografija

    Kriptografija u digitalnim tehnologijama

    Priča

    Kriptografija je drevna nauka, a njen izvorni predmet bile su tekstualne poruke, koje su uz pomoć određenih algoritama izgubile smisao za sve koji nisu imali posebna znanja da dešifruju ovu poruku – ključ.

    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 komercijalnim poslovima, špijunaži, među krijumčarima.

    Nešto kasnije istoričari određuju datum pojave još jedne srodne nauke - steganografije. Ova nauka se bavi maskiranjem same činjenice prenošenja poruke. Nastao je u antici, a primjer ovdje je prijem od strane spartanskog kralja Leonida prije bitke s Perzijancima ploče s tekstom prekrivenim suvim rastvorom koji se lako ispire. Prilikom čišćenja, tragovi ostavljeni na vosku sa olovkom postali su jasno vidljivi. Danas se za prikrivanje poruke koriste simpatična mastila, mikrotačke, mikrofilmovi, itd.

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

    Razvoj mehanike omogućio je stvaranje uređaja i mehanizama koji olakšavaju šifriranje - pojavili su se uređaji kao što su Trithemius kvadratna ploča, disk šifra Thomasa Jeffersona. Ali svi ovi uređaji se ne mogu porediti sa onima stvorenim u 20. veku. U to vrijeme počele su se pojavljivati ​​razne mašine za šifriranje i mehanizmi visoke složenosti, na primjer, rotacijske mašine, od kojih je najpoznatija Enigma.

    Prije naglog razvoja nauke u 20. vijeku, kriptografi su morali da se bave samo lingvističkim objektima, a u 20. vijeku su se otvorile mogućnosti korištenja različitih matematičkih metoda i teorija, statistike, kombinatorike, teorije brojeva i apstraktne algebre.

    Ali pravi proboj u kriptografskoj nauci došao je s pojavom mogućnosti predstavljanja bilo koje informacije u binarnom obliku, podijeljenom na bitove pomoću kompjutera, što je omogućilo stvaranje fontova s ​​do sada neviđenom kriptografskom snagom. Takvi sistemi šifriranja, naravno, mogu biti hakirani, ali vrijeme utrošeno na hakovanje 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: Peter, 2001. .
    • GOST 28147-89. Sistemi za obradu informacija. Kriptografska zaštita. Algoritam kriptografske transformacije. Moskva: GK SSSR po standardima, 1989.
    • GOST R 34.10-94 Informaciona tehnologija. Kriptografska zaštita informacija. *GOST R 34.11-94. Informaciona tehnologija. Kriptografska zaštita informacija. hash funkcija. M., 1995.
    • GOST R 34.10-2001 Informaciona tehnologija. Kriptografska zaštita informacija. Procesi formiranja i verifikacije elektronskog digitalnog potpisa. M., 2001.
    • Nechaev VI Elementi kriptografije (Osnove teorije sigurnosti informacija). Moskva: Viša škola, 1999.
    • Zhelnikov V. Kriptografija od papirusa do kompjutera. M.: AVR, 1996.

    Istorijski gledano, simetrični kriptografski sistemi su se prvi pojavili. AT simetrični kriptosistem za šifrovanje Isti ključ se koristi za šifriranje i dešifriranje informacija. To znači da svako ko ima pristup ključu za šifriranje može dešifrirati poruku.

    Shodno tome, kako bi se spriječilo neovlašteno otkrivanje šifriranih informacija, svi ključevi za šifriranje u simetričnim kriptosistemima moraju se čuvati u tajnosti. Zbog toga se nazivaju simetrični kriptosistemi tajni ključ kriptosistema- ključ za šifriranje mora biti dostupan samo onima kojima je poruka namijenjena. Simetrični kriptosistemi se takođe nazivaju kriptografski sistemi sa jednim ključem, ili kriptosistemi privatnog ključa. Šema simetričnog kriptosistema je prikazana na sl. 5.2.

    Ovi kriptosistemi se odlikuju najvećom brzinom enkripcije, a uz njihovu pomoć se osigurava kako povjerljivost i autentičnost, tako i integritet prenijetih informacija. Povjerljivost prijenosa informacija korištenjem simetričnog kriptosistema 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 nosaču ključa, kao što je disketa ili pametna kartica; obavezno je poduzeti mjere kako bi se osiguralo da nosilac ličnog ključa nije dostupan nikome osim njegovom vlasniku.

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

    Integritet podataka se osigurava dodavanjem posebnog koda (imitacije umetanja) na prenijete podatke, generisane tajnim ključem. Umetanje imitacije je vrsta kontrolne sume, odnosno neke referentne karakteristike poruke, prema kojoj se provjerava integritet potonje. Algoritam za generiranje imitacije inserta mora osigurati njegovu ovisnost, prema nekom složenom kriptografskom zakonu, od svakog bita poruke. Provjeru integriteta poruke primatelj poruke generira, iz tajnog ključa, imitaciju umetanja koja odgovara primljenoj poruci i upoređuje je sa primljenom vrijednošću imitacije inlaya. Ako postoji podudaranje, zaključuje se da informacija nije promijenjena na putu od pošiljaoca do primaoca.

    Simetrična enkripcija je idealna za šifriranje informacija "za sebe", na primjer, kako bi se spriječilo petljanje u njih u odsustvu 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, kriptosistemi sa jednim ključem omogućavaju rješavanje mnogih važnih problema zaštite informacija. Međutim, autonomna upotreba simetričnih kriptosistema u računarskim mrežama postavlja problem distribucije ključeva za šifrovanje između korisnika.

    Prije početka razmjene šifriranih podataka potrebno je razmijeniti tajne ključeve sa svim primaocima. Prijenos tajnog ključa simetričnog kriptosistema ne može se izvršiti putem javnih komunikacijskih kanala, tajni ključ se mora prenijeti pošiljaocu i primaocu preko sigurnog kanala. Da bi se osigurala efikasna 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 su povezani 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 je vrlo dugotrajan i složen zadatak. Online na N korisnici moraju biti distribuirani N(N-1)/2 tajni ključevi, odnosno broj distribuiranih tajnih ključeva raste po kvadratnom zakonu sa povećanjem broja mrežnih pretplatnika.

    Odjeljak „Upravljanje kripto ključevima“ govori o metodama koje obezbjeđuju sigurnu distribuciju ključeva mrežnim pretplatnicima.


    Algoritam moraju čuvati obje strane u tajnosti. Algoritam šifriranja biraju strane prije razmjene poruka.

    Tajna komunikacija zasnovana na simetričnom kriptosistemu.

    Sistemi simetrične šifre tradicionalno se koriste za organizovanje tajnih komunikacija. „Redovni“ akteri ovakvih tajnih komunikacionih protokola su pošiljalac, primalac i posrednik koji korisnicima daje ključeve. Da bismo razmotrili pitanja sigurnosti informacija, ovoj listi učesnika koji nisu zaposleni, treba dodati: pasivnog i aktivnog nasilnika. Zadatak protokola je da prenese tajnu poruku x od pošiljaoca do primaoca. Redoslijed radnji je sljedeći:
    1. Pošiljalac i primalac se dogovaraju o simetričnom sistemu šifrovanja koji će se koristiti, tj. o porodici preslikavanja E = (), kK.
    2. Pošiljalac i primalac se dogovaraju o tajnom komunikacijskom ključu k, tj. o korištenom mapiranju E.
    3. Pošiljalac šifrira otvoreni tekst x koristeći mapiranje, tj. kreira kriptogram y = (x).
    4. Kriptogram y se prenosi preko komunikacione linije do primaoca.
    5. Primalac dešifruje kriptogram y koristeći isti ključ k i preslikavanje ^(-1) obrnuto od mapiranja Ek i čita poruku x= ^(-1)(y).
    Korak 2 protokola implementira se uz pomoć posrednika, treće strane, koja se uslovno može nazvati centrom za generisanje i distribuciju ključeva (KGRK) (neki tajni komunikacioni protokoli zasnovani na asimetričnim sistemima šifriranja ne koriste posrednika, u čemu funkcije KGRK obavljaju korisnici).
    Bitna karakteristika protokola je tajnost ključa k, koji se šalje pošiljaocu i primaocu ili u otvorenom obliku preko komunikacionog 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 zaštititi ključne informacije od neovlaštenog pristupa. Ključ k mora ostati tajan prije, za vrijeme i nakon implementacije protokola, inače napadač, nakon što je preuzeo ključ, može dešifrirati kriptogram i pročitati poruku. Pošiljalac i primalac mogu javno izvršiti korak 1 protokola (tajnost šifrarnog sistema je opciona), ali korak 2 moraju izvršiti tajno (zahtijeva se tajnost ključa).
    Ova potreba je zbog činjenice da su komunikacijske linije, posebno dugačke, osjetljive na smetnje pasivnih i aktivnih uljeza. Pasivni uljez (kriptoanalitičar), koji želi da dobije pristup poruci x, kontroliše komunikacijsku liniju u koraku 4 protokola. Ne ometajući implementaciju protokola, on presreće kriptogram y kako bi otkrio šifru.

    Kriptoanaliza simetričnog kriptosistema.

    Kada dizajnira sistem šifriranja, kriptograf obično postavlja sljedeće pretpostavke o sposobnostima kriptoanalitičara:
    1. Kriptoanalitičar kontrolira komunikacijsku liniju.
    2. Kriptoanalitičar poznaje uređaj familije E šifriranih preslikavanja.
    3. Kriptoanalitičar ne poznaje ključ k, tj. mapiranje korišteno za dobivanje kriptograma y je nepoznato.
    Pod ovim uvjetima, kriptoanalitičar pokušava riješiti sljedeće zadatke, koji se nazivaju zadaci dešifriranja.
    1. Odrediti otvoreni tekst x i korišteni ključ k iz presretnutog kriptograma y, tj. konstruirati algoritam dešifriranja  takav da je (y)=(x,k). Ova izjava problema pretpostavlja da kriptoanalitičar koristi statistička svojstva otvorenog teksta.
    2. Odrediti korišteni ključ k iz poznatog otvorenog teksta i šifriranog teksta, tj. izgraditi algoritam dešifriranja takav da je (x,y)=k. Ova formulacija problema ima smisla kada je kriptoanalitičar presreo nekoliko kriptograma dobijenih pomoću ključa k, a nema otvorene tekstove za sve presretnute kriptograme. U ovom slučaju, nakon što je riješio problem dešifriranja drugog tipa, on će "pročitati" sve otvorene tekstove šifrirane pomoću ključa k.
    3. Odrediti korišteni ključ k iz posebno odabranog otvorenog teksta x i odgovarajućeg šifriranog teksta y, tj. konstruirati algoritam za dešifriranje x takav da je x(y)=k. Slična izjava problema se javlja kada kriptoanalitičar ima mogućnost testiranja kriptosistema, tj. generiranje kriptograma za posebno odabrani otvoreni tekst. Češće se takva konstatacija problema javlja u analizi asimetričnih sistema. postoji varijanta ovog problema dešifriranja gdje se koristi posebno odabrani šifrirani tekst.
    Da bi riješio probleme 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. Ove poruke ili skupovi poruka nazivaju se šifriranim tekstom. Količina šifriranog materijala koji se koristi za dešifriranje je dužina ovih poruka ili ukupna dužina skupa poruka. Količina šifriranog materijala je važna karakteristika metode dešifriranja. Udaljenost jedinstvenosti šifre je najmanji broj znakova šifriranog teksta potrebnih za jedinstveno određivanje ključa. U mnogim praktičnim slučajevima, ona je jednaka dužini ključa, ako su ključ i kriptogram riječi iz ekvivalentnih abeceda. Uz istu količinu šifriranog materijala, problemi dešifriranja prvog tipa odlikuju se većom računskom složenošću u odnosu na probleme drugog i trećeg tipa, a problemi testiranja imaju najmanju računsku složenost.
    U nekim slučajevima, kriptoanalitičar može riješiti problem vraćanja porodice E šifriranih preslikavanja iz poznatog para (x,y) otvorenog teksta i šifriranog teksta, koristeći neke dodatne uslove. Ovaj zadatak se može formulirati kao "dekodiranje crne kutije" s obzirom na poznate ulaze i odgovarajuće izlaze.
    Aktivni uljez krši implementaciju protokola. On može prekinuti vezu u koraku 4, vjerujući da pošiljalac neće moći više ništa reći primaocu. Također može presresti poruku i zamijeniti je svojom. Ako je aktivni uljez znao ključ (kontrolom koraka 2 ili infiltracijom u kriptosistem), mogao je šifrirati svoju poruku i poslati je primaocu umjesto presretnute poruke, što u potonjem ne bi izazvalo nikakvu sumnju. Bez poznavanja ključa, aktivni uljez može kreirati samo nasumični kriptogram, koji će se nakon dešifriranja pojaviti kao nasumični niz.

    zahtjevi protokola.

    Razmatrani protokol podrazumijeva povjerenje pošiljaoca, primaoca i treće strane koju zastupa TsGRK. Ovo je slabost ovog protokola. Međutim, ne postoje apsolutne garancije o besprijekornosti ovog ili onog protokola, budući da je implementacija bilo kojeg protokola povezana sa učešćem ljudi i zavisi, posebno, od kvalifikacija i pouzdanosti osoblja. Dakle, o organizaciji tajne komunikacije korištenjem simetričnog kriptosistema, mogu se izvući sljedeći zaključci.
    1. Protokol mora zaštititi običan tekst i ključ od neovlašćenog pristupa neovlašćene osobe u svim fazama prenosa informacija od izvora do primaoca poruke. Tajnost ključa je važnija od tajnosti više poruka šifriranih tim ključem. Ako je ključ kompromitovan (ukraden, pogoden, otkriven, otkupljen), onda uljez koji ima ključ može dešifrirati sve poruke šifrirane ovim ključem. Osim toga, uljez će moći imitirati jednu od pregovaračkih strana i generirati lažne poruke kako bi doveo drugu stranu u zabludu. Uz česte promjene ključeva, ovaj problem je minimiziran.
    2. Protokol ne bi trebao dozvoliti da “dodatne” informacije uđu u komunikacijsku liniju, što pruža neprijateljskom kriptoanalitičaru dodatne mogućnosti za dešifriranje kriptograma. Protokol mora zaštititi informacije ne samo od neovlaštenih osoba, već i od međusobne obmane aktera protokola.
    3. Ako pretpostavimo da svaki par korisnika komunikacione mreže koristi poseban ključ, tada je broj potrebnih ključeva n*(n-1)/2 za n korisnika. To znači da za veliko n generiranje, pohranjivanje i distribucija ključeva postaje dugotrajan problem.

    U simetričnom kriptosistemu za šifrovanje, isti ključ se koristi za šifrovanje i dešifrovanje informacija. To znači da svako ko 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 kriptosistemima moraju se čuvati u tajnosti. Zato se simetrični kriptosistemi nazivaju kriptosistemi sa tajnim ključem – ključ za šifrovanje treba da bude dostupan samo onima kojima je poruka namenjena. Simetrični kriptosistemi se takođe nazivaju kriptografski sistemi sa jednim ključem. Šema simetričnog kriptosistema je prikazana na sl. 4.3.

    Rice. 4.3. Kriptosistem simetričnog šifriranja

    Ovi kriptosistemi se odlikuju najvećom brzinom enkripcije, a uz njihovu pomoć se osigurava kako povjerljivost i autentičnost, tako i integritet prenijetih informacija.

    Povjerljivost prijenosa informacija korištenjem simetričnog kriptosistema 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 nosaču ključa, kao što je disketa ili pametna kartica; obavezno je poduzeti mjere kako bi se osiguralo da nosilac ličnog ključa nije dostupan nikome osim njegovom vlasniku.

    Autentičnost je osigurana zbog činjenice da je bez prethodnog dešifriranja praktički nemoguće izvršiti semantičku modifikaciju i krivotvorenje kriptografski zatvorene poruke. Lažna poruka se ne može 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 neka vrsta kontrolne sume, odnosno neke referentne karakteristike poruke, prema kojoj se provjerava integritet potonje. Algoritam za formiranje prefiksa imitacije mora osigurati njegovu zavisnost od svakog bita poruke prema nekom složenom kriptografskom zakonu. Provjeru integriteta poruke vrši primalac poruke generiranjem lažnog ključa iz tajnog ključa koji odgovara primljenoj poruci i upoređivanjem sa primljenom lažnom vrijednošću. Ako postoji podudaranje, zaključuje se da informacija nije promijenjena na putu od pošiljaoca do primaoca.



    Simetrična enkripcija je idealna za šifriranje informacija "za sebe", na primjer, kako bi se spriječio neovlašteni pristup njima u odsustvu 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, kriptosistemi sa jednim ključem omogućavaju rješavanje mnogih važnih problema zaštite informacija. Međutim, autonomna upotreba simetričnih kriptosistema u računarskim mrežama postavlja problem distribucije ključeva za šifrovanje između korisnika.

    Prije početka razmjene šifriranih podataka potrebno je razmijeniti tajne ključeve sa svim primaocima. Prijenos tajnog ključa simetričnog kriptosistema ne može se izvršiti putem javnih komunikacijskih kanala, tajni ključ se mora prenijeti pošiljaocu i primaocu preko sigurnog kanala.

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

    Matrica ključeva je tabela koja sadrži ključeve za uparivanje pretplatnika. Svaki element tabele je namenjen komunikaciji pretplatnika i i j i dostupan je samo za dva pretplatnika. Shodno tome, za sve elemente ključne matrice, jednakost

    . (4.3)

    Sl.4.4. Ključna matrica

    Svaki i-ti red matrice je skup ključeva određenog pretplatnika i komunicirati sa drugima N- 1 pretplatnika. Setovi ključeva (mrežni setovi) se distribuiraju među svim pretplatnicima kriptografske mreže. Slično gore navedenom, skupovi mreža bi trebali biti distribuirani preko sigurnih kanala komunikacija ili prsa u ruku.



    Karakteristična karakteristika simetričnih kriptoalgoritama je da u toku svog rada transformišu blok ulaznih informacija fiksne dužine i dobiju rezultujući blok iste veličine, ali nečitljiv trećim stranama koje nemaju ključ. Šema rada simetrične blok šifre može se opisati funkcijama

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

    Ključ To je parametar kriptoalgoritma simetričnog bloka i blok je binarnih informacija fiksne veličine. original M i šifrovano OD blokovi podataka također imaju fiksnu širinu bita jednaku jedni drugima, ali ne nužno jednaku dužini ključa To.

    Blok šifre su osnova na kojoj su implementirani gotovo svi simetrični kriptosistemi. Simetrični kriptosistemi vam omogućavaju da kodirate i dekodirate datoteke proizvoljne dužine. Gotovo svi algoritmi koriste određeni skup reverzibilnih matematičkih transformacija za transformacije.

    Metoda kreiranja lanaca bajtova šifrovanih blok algoritmima omogućava im da šifruju informacijske pakete neograničene dužine. Nedostatak statističke korelacije između bitova izlaznog toka blok šifre se koristi za izračunavanje kontrolnih suma paketa podataka i kod heširanja lozinki.

    Kriptalgoritam se smatra idealno sigurnim ako je, da 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 dužini ključa i raste eksponencijalno s njegovim rastom.

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

    ¨ difuzija- je distribucija uticaja jednog znaka otvorenog teksta na više znakova šifrovanog teksta, što vam omogućava da sakrijete statistička svojstva otvorenog teksta.

    ¨ miješanje- korištenje takvih transformacija šifriranja koje kompliciraju obnavljanje 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 lakoću šifriranja i dešifriranja pomoću tajnog ključa poznatog korisniku.

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

    U složenim šiframa, jednostavne permutacije i supstitucije se najčešće 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čan tip zamjene je također određen tajnim ključem. Treba napomenuti da su u modernoj blok šifri blokovi otvorenog i šifrovanog teksta binarni nizovi, obično dugi 64 ili 128 bita. Sa dužinom od 64 bita, svaki blok može uzeti 264 vrijednosti. Stoga se zamjene vrše u vrlo velikom alfabetu koji 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 sa dobrom disperzijom i miješanjem.

    Sve akcije koje izvodi blok kriptoalgoritam nad podacima zasnivaju se na činjenici da blok koji se konvertuje 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 konkatenacija nekoliko nezavisni nenegativni brojevi iz manjeg raspona (32 A-bitni blok se također može predstaviti kao konkatenacija dva nezavisna 16-bitna broja iz raspona 0...65535 ili kao konkatenacija četiri nezavisna 8-bitna broja iz raspon 0...255).

    Na ovim brojevima blok kriptoalgoritam izvodi radnje navedene u tabeli 1 prema određenoj šemi. 4.1.

    Tabela 4.1. Radnje koje izvršavaju kriptalgoritmi na brojevima

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

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

    ¨ broj dobijen od ključa (npr. X"= X + F(K));

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

    Redoslijed operacija koje se izvode na bloku, kombinacije gore navedenih opcija V i same funkcije F i čine karakteristične karakteristike određenog simetričnog blok kriptoalgoritma.

    Karakteristična karakteristika blok algoritama je ponovljena i indirektna upotreba ključnog materijala. Ovo je prvenstveno određeno zahtjevom nemogućnosti obrnutog dekodiranja u odnosu na ključ kada su poznati originalni i šifrirani tekstovi. Za rješavanje ovog problema gore navedene transformacije najčešće ne koriste samu vrijednost ključa ili njegov dio, već neku, ponekad nepovratnu, funkciju ključnog materijala. Štaviše, u takvim transformacijama, isti blok ili ključni element se više puta koristi. Ovo dozvoljava, pod uslovom da je funkcija invertibilna u odnosu na količinu X učinite funkciju nepovratnom u odnosu na tipku To.

    Top Related Articles