Leono, 23. april 2017 ob 15:17
Uvod v kriptografijo in šifriranje, prvi del. Predavanje v Yandex
- blog podjetja Yandex,
- Algoritmi,
- Informacijska varnost,
- Kriptografija
Če želite takoj razumeti gradivo o infrastrukturi javnih ključev, varnosti omrežja in HTTPS, morate poznati osnove kriptografske teorije. Eden najbolj hitre načine preučite jih - oglejte si ali preberite predavanje Vladimirja Ivanova. Vladimir je znan specialist za omrežja in njihove zaščitne sisteme. On za dolgo časa delal pri Yandexu, bil eden od vodij našega operativnega oddelka.
Predavanje prvič objavljamo skupaj s transkriptom. Začnimo s prvim delom. Pod rezom boste našli besedilo in del diapozitivov.
Nekoč sem imel predavanja o kriptografiji na moskovski državni univerzi in vzela so mi šest mesecev. Poskušal vam bom vse povedati v dveh urah in pol. Nikoli tega nisem naredil. Pa poskusimo.
Kdo razume, kaj je DES? AES? TLS? Binomsko preslikavo?
Poskušali bomo govoriti na splošno, ker je težko in ne bo mogoče globoko analizirati: malo je časa in osnovno usposabljanje mora biti precej velik. Operirali bomo s splošnimi pojmi, precej površno.
Pogovarjali se bomo o tem, kaj so kriptografski primitivi, enostavne stvari, iz katerih se kasneje lahko sestavijo bolj kompleksne stvari, protokoli.
Govorili bomo o treh primitivih: simetričnem šifriranju, avtentikaciji sporočil in asimetričnem šifriranju. Iz njih zraste veliko protokolov.
Danes bomo poskušali govoriti malo o tem, kako se generirajo ključi. IN splošni pogled Pogovorimo se o tem, kako poslati varno sporočilo z uporabo kripto primitivov, ki jih imamo, od enega uporabnika do drugega.
Ko ljudje govorijo o kripto na splošno, obstaja več temeljnih načel. Eno izmed njih je Kerkhoffsovo načelo, ki pravi, da je odprta koda v kriptografiji zelo pomembna. Natančneje, daje splošno znanje o oblikovanju protokolov. Pomen je zelo preprost: kriptografski algoritmi, ki se uporabljajo v določenem sistemu, ne smejo biti skrivnost, ki zagotavlja njegovo stabilnost. V idealnem primeru je treba zgraditi sisteme tako, da je njihova kriptografska stran popolnoma znana napadalcu in je edina skrivnost kriptografski ključ, ki se uporablja v tem sistemu.
Sodobni in komercialno dostopni šifrirni sistemi – vsi ali večina ali najboljši – so zgrajeni iz komponent, katerih načela zasnove in delovanja so dobro znana. Edina skrivnost pri njih je šifrirni ključ. Obstaja samo ena pomembna izjema, ki jo poznam - niz tajnih kriptografskih protokolov za različne vladne organizacije. V ZDA se imenuje NSA suite B, v Rusiji pa so to vse vrste čudnih tajnih šifrirnih algoritmov, ki jih do določene mere uporabljajo vojaške in vladne agencije.
Ne bi rekel, da jim takšni algoritmi prinašajo veliko koristi, le da je to nekako kot atomska fizika. Lahko poskusite razumeti zasnovo protokola, da razumete smer razmišljanja ljudi, ki so ga razvili, in na nek način prehiteti drugo stran. Ne vem, kako pomembno je to načelo po današnjih standardih, vendar ljudje, ki o tem vedo več kot jaz, počnejo prav to.
V vsakem komercialnem protokolu, s katerim se srečate, je situacija drugačna. Tam se povsod uporablja odprt sistem, vsi se tega načela držijo.
Prvi kriptografski primitiv so simetrične šifre.
So zelo preprosti. Imamo nekakšen algoritem, katerega vhod je golo besedilo in nekaj, kar se imenuje ključ, neka vrednost. Izhod je šifrirano sporočilo. Ko ga želimo dešifrirati, je pomembno, da vzamemo isti šifrirni ključ. In če ga uporabimo za drug algoritem, algoritem za dešifriranje, dobimo naše odprto besedilo nazaj iz šifriranega besedila.
Kateri so tukaj? pomembne nianse? Pri večini običajnih algoritmov za simetrično šifriranje, ki jih srečate, je velikost šifriranega besedila vedno enaka velikosti odprtega besedila. Sodobni šifrirni algoritmi delujejo na velikosti ključev. Velikost ključev se meri v bitih. Moderna velikost- od 128 do 256 bitov za algoritme simetričnega šifriranja. O ostalem, vključno z velikostjo bloka, bomo govorili pozneje.
Zgodovinsko gledano sta v domnevnem 4. stoletju pred našim štetjem obstajali dve metodi oblikovanja šifre: substitucijske in permutacijske šifre. Substitucijske šifre so algoritem, kjer so v tistih časih eno črko sporočila zamenjali z drugo po nekem principu. Preprosta substitucijska šifra temelji na tabeli: vzamemo tabelo, kjer piše, da spremenimo A v Ž, B v S itd. Nato šifriramo s to tabelo in dešifriramo z njo.
Kako zapleten je po vašem mnenju ta algoritem glede velikosti ključa? Koliko ključnih možnosti obstaja? Faktorski vrstni red dolžine abecede. Vzamemo mizo. Kako ga zgradimo? Recimo, da obstaja tabela s 26 znaki. Črko A lahko nadomestimo s katero koli od njih, črko B s katero koli od preostalih 25, C s katero koli od preostalih 24... Dobimo 26*25*24*... - torej faktorijel od 26 .Faktoriel dimenzije abecede.
Če vzamemo log 2 26!, bo to veliko. Mislim, da boste zagotovo dobili približno 100 bitov dolžine ključa ali celo več. Izkazalo se je, da z vidika formalne reprezentacije odpora določen algoritemšifriranje je kar dobro. 100 bitov je sprejemljivo. Hkrati je vsak, verjetno v otroštvu ali mladosti, ko se je soočil s kodiranjem, videl, da je takšne algoritme trivialno dešifrirati. Z dešifriranjem ni težav.
Dolgo časa je bilo v različnih konstrukcijah najrazličnejših substitucijskih algoritmov. Eden od njih, še bolj primitiven, je Cezarjeva šifra, kjer tabela ni oblikovana z naključno permutacijo simbolov, temveč s premikom za tri simbole: A se spremeni v D, B v E itd. Jasno je, da Cezarjevo šifro skupaj z vsemi njenimi različicami je mogoče zelo enostavno razvrstiti: za razliko od zamenjave tabele ima Caesar ključ le 25 možnosti s 26 črkami v abecedi - brez trivialnega šifriranja samega sebe. In to je mogoče samo rešiti s surovo silo. Tukaj je nekaj zapletenosti.
Zakaj je šifra zamenjave tabele tako preprosta? Kje se pojavi težava, da zlahka, tudi brez znanja o kriptografiji, dešifriramo zamenjavo tabele? Gre za frekvenčno analizo. Obstajajo najpogostejše črke - nekatere I ali E. Njihova razširjenost je velika, samoglasniki so veliko pogostejši od soglasnikov in obstajajo negativni pari, ki jih v naravnih jezikih nikoli ne najdemo - nekaj takega kot bb. Študentom sem celo dal nalogo, naj naredijo avtomatski dešifrer nadomestne šifre, in načeloma je mnogim uspelo.
v čem je problem? Treba je izkriviti statistiko distribucije črk, tako da običajne črke ne sijejo tako močno v šifriranem besedilu. Očiten način: šifrirajmo črke, ki se najpogosteje pojavljajo, ne v en znak, ampak na primer v pet različnih. Če se črka pojavlja v povprečju petkrat pogosteje, potem se izmenjajmo - najprej bomo šifrirali prvi znak, nato drugega, tretjega itd. Nato bomo dobili preslikavo črk ne 1 proti 1, ampak pogojno , 26 k 50. Statistika bo tako kršena. Tukaj je prvi primer večabecedne šifre, ki je nekako delovala. Vendar pa je z njim kar nekaj težav, predvsem pa je zelo neprijetno delati z mizo.
Za ključ vzamemo besedo VASJA. Sprejmemo sporočilo MAŠA. Uporabimo Cezarjevo šifro, vendar šteto od teh črk. Na primer, B je tretja črka v abecedi. Ustrezno črko v odprtem besedilu moramo premakniti za tri črke. M preide v P. A v A. Š - do 16, preskočimo črko A, pogojno dobimo D. A bom prestavil v Y. PADDYA.
Kaj je priročno pri dobljeni šifri? Bili sta dve enaki črki, vendar sta bili posledično šifrirani v različne. To je kul, ker zamegli statistiko. Metoda je dobro delovala, dokler nekje v 19. stoletju, šele pred kratkim v ozadju zgodovine kriptografije, niso ugotovili, kako jo razbiti. Če pogledate sporočilo z več deset besedami in je ključ precej kratek, potem celotna struktura izgleda kot več Cezarjevih šifer. Rečemo: v redu, vsako četrto črko – prvo, peto, deveto – obravnavajmo kot Cezarjevo šifro. In med njimi poiščimo statistične vzorce. Zagotovo jih bomo našli. Nato vzamemo drugo, šesto, deseto in tako naprej. Spet ga bomo našli. To bo obnovilo ključ. Edina težava je ugotoviti, kako dolgo je. Ni zelo težko, a kako dolgo lahko traja? No, 4, no, 10 znakov. Skozi 6 možnosti od 4 do 10 ni zelo težko. Preprost napad - na voljo je bilo brez računalnikov, samo s peresom in kosom papirja.
Kako iz te stvari narediti nezlomljivo šifro? Vzemite tipko za velikost besedila. Lik z imenom Claude Shannon v dvajsetem stoletju, leta 1946, je napisal prvo klasično delo o kriptografiji kot veji matematike, kjer je formuliral izrek. Dolžina ključa je enaka dolžini sporočila - uporabil je XOR namesto dodajanja modula, ki je enak dolžini abecede, vendar v tej situaciji to ni zelo pomembno. Ključ je generiran naključno, je zaporedje naključnih bitov, izhod pa bo prav tako naključno zaporedje bitov. Izrek: če imamo tak ključ, potem je takšen dizajn absolutno stabilen. Dokaz ni zelo zapleten, vendar o tem zdaj ne bom govoril.
Pomembno je, da je mogoče ustvariti nezlomljivo šifro, vendar ima slabosti. Prvič, ključ mora biti popolnoma naključen. Drugič, nikoli se ne sme ponovno uporabiti. Tretjič, dolžina ključa mora biti enaka dolžini sporočila. Zakaj ne morete uporabiti istega ključa za šifriranje različnih sporočil? Ker bo naslednjič s prestrezanjem tega ključa mogoče dešifrirati vsa sporočila? št. Ali bo Cezarjeva šifra vidna v prvih znakih? res ne razumem Zdi se, da ne.
Vzemimo dve sporočili: MASHA, šifrirano s ključem VASJA, in drugo besedo, ki je prav tako imela ključ VASJA - VERA. Dobimo nekaj takega: ZESHA. Dodamo dve prejeti sporočili in tako, da se oba ključa medsebojno izbrišeta. Posledično dobimo samo razliko med smiselnim šifriranim besedilom in smiselnim šifriranim besedilom. To naredimo bolj priročno z XOR kot s seštevanjem po dolžini abecede, vendar razlike praktično ni.
Če smo dobili razliko med dvema smiselnima šifriranima besediloma, potem je to praviloma veliko lažje, saj imata besedili naravni jezik visoka redundanca. Pogosto lahko ugibamo, kaj se dogaja, z različnimi predpostavkami in hipotezami. In glavno je, da nam bo vsaka pravilna hipoteza razkrila delček ključa in s tem koščke dveh šifrantov. Nekaj takega. Zato je hudo.
Poleg substitucijskih šifer so obstajale tudi permutacijske šifre. Tudi z njimi je vse precej preprosto. Vzamemo sporočilo VASYAI, ga zapišemo v niz neke dolžine, na primer v DIDOM, in preberemo rezultat na enak način.
Ne bog ve kaj. Jasno je tudi, kako ga zlomiti - šli bomo skozi vse možne permutacije. Tukaj jih ni prav veliko. Vzamemo dolžino bloka, jo izberemo in obnovimo.
Za naslednjo iteracijo je bila izbrana naslednja metoda: vzemimo vse enako in na vrh napišemo nek ključ - SIMON. Preuredimo stolpce tako, da bodo črke v njih abecednem redu. Kot rezultat dobimo novo permutacijo po ključu. Že zdaj je veliko boljši od starega, saj je število permutacij veliko večje in izbira ni vedno enostavna.
Vsaka sodobna šifra tako ali drugače temelji na teh dveh principih - substituciji in permutaciji. Dandanes je njihova uporaba veliko bolj zapletena, sama osnovna načela pa ostajajo enaka.
Če govorimo o sodobnih šifrah, so razdeljeni v dve kategoriji: tok in blok. Pretočna šifra je zasnovana tako, da je pravzaprav generator naključnih števil, katerega rezultatu dodamo modulo 2, "xorim", z našim šifriranim besedilom, kot lahko vidite na mojem diapozitivu. Prej sem rekel: če je dolžina nastalega toka ključev - znanega tudi kot ključ - popolnoma naključna, nikoli ponovno uporabljena in je njegova dolžina enaka dolžini sporočila, potem imamo popolnoma močno šifro, ki je nezlomljiva.
Postavlja se vprašanje: kako ustvariti naključen, dolg in večen ključ za takšno šifro? Kako dejansko delujejo pretočne šifre? V bistvu so generator naključnih števil, ki temelji na nekaterih začetna vrednost. Začetna vrednost je šifrirni ključ, odgovor.
V tej zgodbi je ena zanimiva izjema - šifrirne ploščice. To je prava vohunska zgodba o resničnem vohunjenju. Nekateri ljudje, ki potrebujejo popolnoma stabilno komunikacijo, ustvarjajo naključna števila - na primer tako, da dobesedno vržejo kocko ali dobesedno vlečejo kroglice iz bobna, kot pri lotu. Ustvarite dva lista, kjer so natisnjene te naključne številke. En list prejme prejemnik, drugi pa ostane pri pošiljatelju. Ko želijo komunicirati, uporabljajo ta tok naključnih števil kot ključni tok. Ne, zgodba ni vzeta iz zelo daljne preteklosti. Imam pravo radijsko prestrezanje od 15. oktobra 2014: 7 2 6, 7 2 6, 7 2 6. To je klicni znak. 4 8 3, 4 8 3, 4 8 3. To je številka kodne ploščice. 5 0, 5 0, 5 0. To je število besed. 8 4 4 7 9 8 4 4 7 9 2 0 5 1 4 2 0 5 1 4 itd. 50 takih številskih skupin. Ne vem, kje, nekje v Rusiji, je nekdo sedel s peresom in svinčnikom za navadnim radiem in zapisoval te številke. Ko jih je zapisal, je vzel podobno stvar, jih dodal modulo 10 in prejel svoje sporočilo. Z drugimi besedami, dejansko deluje in takšnega sporočila ni mogoče vdreti. Če so bile res ustvarjene dobre naključne številke in je nato zažgal kos papirja s ključem, potem ga sploh ni mogoče vdreti.
Je pa tu kar nekaj težav. Prvi je, kako ustvariti res dobra naključna števila. Svet okoli nas je determinističen, in če govorimo o računalnikih, so popolnoma deterministični.
Drugič, dostava ključev te velikosti ... če govorimo o prenosu sporočil iz 55 digitalnih skupin, potem to ni zelo težko, vendar je prenos več gigabajtov besedila že resen problem. Zato potrebujemo nekaj algoritmov, ki v bistvu generirajo psevdo-naključna števila na podlagi nekega majhnega semena in ki jih je mogoče uporabiti kot takšne pretočne algoritme.
Zgodovinsko najpogostejši algoritem te vrste se imenuje RC4. Razvil ga je Ron Rivest pred približno 25 leti in se je aktivno uporabljal zelo dolgo, bil je najpogostejši algoritem za TLS, vse njegove različne različice, vključno s HTTPS. Ampak v v zadnjem času RC4 je začel kazati svojo starost. Zanj obstaja vrsta napadov. Aktivno se uporablja v WEP. Bilo je eno dobro predavanje Antona, zgodba, ki kaže: slaba uporaba šifrirnega algoritma, ki je spodoben tudi po današnjih standardih, vodi v ogrožanje celotnega sistema.
RC4 ni zapleten. Diapozitiv v celoti opisuje njegovo delo. Notranje stanje bajtov je 256 bajtov. Na vsakem koraku tega stanja sta dve številki, dva kazalca na različne bajte v stanju. In na vsakem koraku pride do dodatka med temi številkami - postavljene so na nek kraj v državi. Bajt, prejet od tam, je naslednji bajt številčno zaporedje. Z vrtenjem tega gumba na ta način in izvajanjem podobnega dejanja na vsakem koraku dobimo vsak naslednji bajt. Naslednji bajt številskega zaporedja lahko prejemamo za vedno, v toku.
Velika prednost RC4 je, da je v celoti intrabajten, kar pomeni, da njegova programska izvedba deluje precej hitro – veliko hitreje, nekajkrat, če ne desetkrat hitreje od primerljive šifre DES, ki je obstajala približno v istem času. Zato je RC4 postal tako priljubljen. Dolgo je bila poslovna skrivnost RSA, potem pa so nekje okoli 90. let nekateri ljudje anonimno objavili izvorno kodo njegove naprave na mailing listi cypherpunks. Posledično je bilo veliko drame, slišali so se joki, kako to, da so neki nespodobni ljudje RSA ukradli intelektualno lastnino in jo objavili. RSA je začela vsem groziti s patenti in vsemi vrstami sodnega pregona. Da bi se jim izognili, se vse izvedbe algoritma, ki so odprtokodne, ne imenujejo RC4, temveč ARC4 ali ARCFOUR. A - domnevno. Govorimo o šifri, ki se ujema z RC4 v vseh testnih primerih, vendar se tehnično zdi, da to ni.
Če konfigurirate kateri koli SSH ali OpenSSL, v njem ne boste našli nobene omembe RC4, našli pa boste ARC4 ali kaj podobnega. Je preprost dizajn, je že star, trenutno so napadi nanj in ni ravno priporočljiv za uporabo.
Bilo je več poskusov zamenjave. Verjetno je bila po mojem pristranskem mnenju najuspešnejša šifra Salsa20 in več njenih privržencev iz lika Dana Bursteina, splošno znanega v ozkih krogih. Uporabnikom Linuxa je običajno znan kot avtor qmaila.
Salsa20 je bolj zapletena kot DES. Njegov blokovni diagram je zapleten, vendar ima več zanimivih in kul lastnosti. Za začetek vedno steče končni čas, vsak krog, kar je pomembno za zaščito pred časovnimi napadi. To so napadi, pri katerih napadalec opazuje vedenje šifrirnega sistema tako, da mu vnaša različna šifrirana besedila ali različne ključe za to črno skrinjico. Z razumevanjem sprememb odzivnih časov ali porabe energije sistema lahko sklepa o tem, kaj se je natanko zgodilo interno. Če mislite, da je napad zelo namišljen, ni. Tovrstni napadi na pametne kartice so zelo razširjeni - zelo priročno, saj ima napadalec popoln dostop do škatle. Edino, česar v njem praviloma ne more narediti, je prebrati sam ključ. To je težko, vendar zmore vse drugo - tja postavlja različna sporočila in jih poskuša razvozlati.
Salsa20 je zasnovana tako, da vedno deluje v istem stalnem času. Notranje je sestavljen iz samo treh primitivov: konstantnega časovnega premika, kot tudi dodajanja modula 2 in modula 32, 32-bitnih besed. Hitrost Salsa20 je celo višja od hitrosti RC4. V običajni kriptografiji še ni tako razširjena - nimamo šifrirne zbirke za TLS, ki bi uporabljala Salsa20 -, vendar še vedno počasi postaja mainstream. Navedena šifra je postala ena izmed zmagovalcev natečaja eSTREAM za izbor najboljše pretočne šifre. Bili so štirje in Salsa je bila ena izmed njih. Počasi se začenja pojavljati v vseh vrstah odprtokodnih izdelkov. Morda bo kmalu - morda čez nekaj let - na voljo celo zbirka šifr v TLS s Salsa20. Res mi je všeč.
Na njem je določena količina kriptoanalize, obstajajo celo napadi. Od zunaj je videti kot navojni, ki generira zaporedje skoraj poljubne dolžine na podlagi ključa, 2 64 . Znotraj pa deluje kot blok. V algoritmu je mesto, kjer lahko zamenjate številko bloka, in ustvaril bo določen blok.
V čem je težava s tokovnimi šiframi? Če imate tok podatkov, ki se pošilja prek omrežja, je zanj uporabna šifra toka. Paket je prispel na vaša vrata, vi ste ga šifrirali in poslali. Naslednji je priletel - uporabili so to lestvico in jo posredovali. Prvi bajt, drugi, tretji gredo čez omrežje. Udobno.
Če so podatki, na primer celotna gigabajtna datoteka, šifrirani na disku s tokovno šifro, boste morali za branje zadnjih 10 bajtov najprej ustvariti game šifriranega toka za 1 gigabajt in nato vzeti zadnji 10 bajtov od njega. Zelo neprijetno.
V salsi naveden problem je rešen, saj prejme tudi vhodno številko bloka, ki ga je treba generirati. Nato se algoritem uporabi za številko bloka 20-krat. 20 krogov - in dobimo 512 bitov izhodnega toka.
Najuspešnejši napad je 8 rund. Sama je 256-bitna, kompleksnost napada v 8 krogih pa je 250 ali 251 bitov. Velja za zelo stabilno in dobro. Za to obstaja javna kriptoanaliza. Kljub vsej odvratnosti Bersteinove osebnosti v tem pogledu se mi zdi, da je stvar dobra in ima veliko prihodnost.
V zgodovini je bilo veliko pretočnih šifer. Niso prvi samo v komercialnem šifriranju, ampak tudi v vojaškem šifriranju. Uporabljal je tako imenovane linearne premične registre.
Kakšni so tukaj problemi? Prvič: v klasičnih tokovnih šifrah, ne v Salsi, morate za dešifriranje zadnje vrednosti gigabajtne datoteke, zadnjega bajta, najprej ustvariti zaporedje na gigabajt. Iz njega uporabite samo zadnji bajt. Zelo neprijetno.
Pretočne šifre so slabo primerne za sisteme nezaporednega dostopa, katerih najpogostejši primer je trdi disk.
Obstaja še ena težava, o kateri bomo še govorili. Zelo jasno se kaže v tokovnih šifrah. Dva problema skupaj sta vodila do tega, da bi bilo super uporabiti kakšen drug mehanizem.
Drugi mehanizem za simetrično šifriranje se imenuje blokovna šifra. Zgrajen je nekoliko drugače. Ne ustvari tega ključnega toka, ki ga je treba pomešati z našim šifriranim besedilom, ampak deluje podobno - kot nadomestna tabela. Vzame blok besedila fiksne dolžine, izpiše blok besedila enake dolžine in to je to.
Velikost bloka v sodobnih šifrah je običajno 128 bitov. Obstajajo različne različice, vendar praviloma govorimo o približno 128 ali 256 bitov, nič več in nič manj. Velikost ključa je popolnoma enaka kot pri pretočnih algoritmih: 128 ali 256 bitov v sodobnih izvedbah, znotraj in zunaj.
Od vseh široko uporabljenih blokovnih šifer lahko zdaj imenujemo dve - DES in AES. DES je zelo stara šifra, iste starosti kot RC4. DES ima trenutno velikost bloka 64 bitov in velikost ključa 56 bitov. Ustvaril ga je IBM pod imenom Lucifer. Ko ga je Horst Feistel načrtoval pri IBM-u, so predlagali izbiro 128-bitne velikosti bloka. In velikost ključa je bila spremenljiva, od 124 do 192 bitov.
Ko se je DES začel standardizirati, je bil predložen v preverjanje, vključno z NSA. Od tam se je vrnil z velikostjo bloka, zmanjšano na 64 bitov, in velikostjo ključa, zmanjšano na 56 bitov.
Pred 20 leti je vsa ta zgodba povzročila veliko hrupa. Vsi so rekli - verjetno so tam zgradili zaznamek, grozno je, izbrali so velikost bloka, da bi lahko napadli. Vendar pa je velika prednost DES ta, da je bila prva šifra, ki je bila standardizirana in je nato postala osnova komercialne kriptografije.
Veliko so ga napadali in veliko raziskovali. Jejte veliko število vse vrste napadov. Še vedno pa ni niti enega praktično izvedljivega napada, kljub precej ugledni starosti. Edina stvar je, da je velikost ključa 56 bitov zdaj preprosto nesprejemljiva in jo je mogoče napadeti s surovo silo.
Kako deluje DES? Feistel je naredil kul stvar, imenovano Feistelovo omrežje. Deluje v blokih. Vsak blok, ki vstopa v vhod, je razdeljen na dva dela: levi in desni. Leva stran postane desna stran brez sprememb. Desna stran je pomešana z rezultatom izračuna določene funkcije, katere vnos je leva stran in ključ. Po tej preobrazbi desna stran postane leva.
Ima več zanimivih prednosti. Prva pomembna prednost: funkcija F je lahko karkoli. Ne sme imeti lastnosti reverzibilnosti; morda ne bo linearen ali nelinearen. Kljub temu šifra ostaja simetrična.
Druga zelo priročna lastnost: dešifriranje deluje na enak način kot šifriranje. Če morate dešifrirati dano omrežje, vstavite šifrirano besedilo v prejšnji mehanizem namesto v navadno besedilo in dobite odprto besedilo nazaj na izhodu.
Zakaj je to priročno? Pred 30 leti je bila priročnost posledica dejstva, da so bili šifrirniki strojna oprema in da je bilo načrtovanje ločenega nabora čipov za šifriranje in dešifriranje delovno intenzivno. In v tej zasnovi je vse zelo kul; en blok lahko uporabimo za različne naloge.
IN realno stanje Ta zasnova je en krog blokovne šifre, kar pomeni, da se v pravi šifri izvede 16-krat z različnimi ključi. V vsakem 16. krogu se ustvari ločen ključ in 16 podključev kroga, od katerih se vsak uporabi v vsakem krogu za funkcijo F.
Tudi krog je videti precej preprost - sestavljen je le iz dveh ali treh operacij. Prva operacija: velikost najdenega polbloka postane 32 bitov, polblok gre skozi razširitveno funkcijo in 32 bitov je prejetih kot vhod. Nato s posebno nerazvrščeno tabelo dodamo malo 32 bitom in jih spremenimo v 48: nekateri biti se podvojijo in prerazporedijo, kot glavnik.
Nato ga uskladimo z okroglim ključem, katerega velikost je prav tako 48 bitov in dobimo 48-bitno vrednost.
Nato gre v nabor funkcij, imenovanih S-polja, ki pretvorijo vsak bit vhoda v štiri bite izhoda. Zato na izhodu spet dobimo 32 bitov iz 48 bitov.
In končno, zadnja permutacija P. Ponovno premeša 32 bitov skupaj. Vse je zelo preprosto, okrogla funkcija je čim bolj preprosta.
Njegova najbolj zanimiva lastnost je v navedenih S-poljih: zasnovana je zelo kompleksna transformacija 6 bitov v 4. Če pogledate celotno zasnovo, lahko vidite, da je sestavljena iz XOR in nekaj permutacij. Če bi bili S-boxi preprosti, bi bil celoten DES dejansko nekakšen niz linearnih transformacij. Lahko bi si ga predstavljali kot matriko, s katero pomnožimo naše odprto besedilo, da dobimo šifrirano besedilo. In potem bi bil napad na DES trivialen: preprosto bi zahteval izbiro matrike.
Vsa nelinearnost je skoncentrirana v S-boxih, izbranih na poseben način. O tem, kako točno so bili izbrani, krožijo različne anekdote. Natančneje, približno 10 let po objavi in standardizaciji DES, so ugotovili kriptografi nov tip napadi - diferencialna kriptoanaliza. Bistvo napada je zelo preprosto: naredimo majhne spremembe v odprtem besedilu - spremenimo na primer vrednost enega bita z 0 na 1 - in vidimo, kaj se zgodi s šifriranim besedilom. Izkazalo se je, da bi morala v idealni šifri sprememba enega bita iz 0 v 1 povzročiti spremembo natanko polovice bitov šifriranega besedila. Izkazalo se je, da je DES, čeprav je bil izdelan, preden so odkrili diferencialno kriptoanalizo, odporen na tovrstne napade. Posledično se je nekoč pojavil nov val paranoje: pravijo, da je NSA vedela za obstoj diferencialne kriptoanalize 10 let pred odprtimi kriptografi in lahko si predstavljate, kaj bi lahko vedela zdaj.
Na stotine člankov je bilo posvečenih analizi oblikovanja S-boxov. Obstajajo kul članki, ki se imenujejo nekako takole: značilnosti statistične porazdelitve izhodnih bitov v četrtem S-polju. Ker je šifra stara že več let, je bila temeljito raziskana na različnih mestih in ostaja precej stabilna tudi po današnjih standardih.
56 bitov je zdaj mogoče preprosto razvrstiti na gruči strojev za splošno uporabo - morda celo na enem. In to je slabo. Kaj lahko narediš?
Ne morete preprosto premakniti velikosti ključa: celotna struktura je vezana na njegovo dolžino. Trojni DES. Očiten odgovor je bil naslednji: šifrirajmo naš blok večkrat, uredimo več zaporednih šifriranj. In tukaj vse ni preveč trivialno.
Recimo, da ga vzamemo in šifriramo dvakrat. Najprej morate dokazati, da za šifriranje k1 in k2 na dveh različnih ključih ne obstaja takšno šifriranje na ključu k3, da bi bilo delovanje obeh navedenih funkcij enako. Tu nastopi lastnost, da DES ni skupina. Obstajajo dokazi o tem, čeprav ne zelo trivialni.
V redu, 56 bit. Vzemimo dva - k1 in k2. 56 + 56 = 112 bitov. 112 bitov je tudi po današnjih standardih povsem sprejemljiva dolžina ključa. Vse, kar je več kot 100 bitov, se lahko šteje za normalno. Zakaj torej ne morete uporabiti dveh šifriranj, 112 bitov?
Eno šifriranje DES je sestavljeno iz 16 krogov. Mreža je uporabljena 16-krat. Spremembe od leve proti desni se zgodijo 16-krat. In on ni skupina. Obstajajo dokazi, da ne obstaja tak ključ k3, s katerim bi lahko dešifrirali besedilo, ki je zaporedno šifrirano s ključema k1 in k2, ki sva jih izbrala.
Napad je. Šifrirajmo vsa možna besedila z nekim ključem, vzemimo šifrirano besedilo in ga poskusimo dešifrirati z vsemi poljubnimi ključi. Tako tukaj kot tukaj dobimo 2 56 možnosti. In nekje se bosta srečala. To pomeni, da bomo v dveh krat 256 možnostih - plus pomnilnik za shranjevanje vseh dešifriranj - našli takšno kombinacijo k1 in k2, da bo napad izvedljiv.
Efektivna moč algoritma ni 112 bitov, ampak 57, če imamo dovolj pomnilnika. Potrebujete kar nekaj pomnilnika, a vseeno. Zato smo se odločili, da tako ne moremo delati, šifrirajmo trikrat: k1, k2, k3. Dizajn se imenuje Triple DES. Tehnično se lahko uredi na različne načine. Ker sta šifriranje in dešifriranje ista stvar v DES, dejanski algoritmi včasih izgledajo takole: šifriranje, dešifriranje in ponovno dešifriranje - da olajšajo operacije v implementacijah strojne opreme.
Naša obratna implementacija Triple DES se bo spremenila v strojno implementacijo DES. To je lahko zelo priročno v različnih situacijah zaradi združljivosti za nazaj.
Kje je bil uporabljen DES? Pravzaprav povsod. Še vedno je včasih mogoče opaziti za TLS, obstajajo šifrirne zbirke za TLS, ki uporabljajo Triple DES in DES. Toda tam aktivno izumira, saj govorimo o programski opremi. Programsko opremo je enostavno posodobiti.
Toda v bankomatih je zamrlo že zelo dolgo in nisem prepričan, da je popolnoma zamrlo. Ne vem, ali je potrebno ločeno predavanje o tem, kako ta zasnova deluje v bankomatih. Skratka, tipkovnica, kamor vnesete PIN, je samostojna stvar. Vanj se naložijo ključi in ne izpiše kode PIN, temveč zasnovo bloka PIN. Zasnova je šifrirana - na primer prek DES. Ker je bankomatov ogromno, jih je veliko starih in še vedno lahko najdete bankomat, kjer v škatli ni niti Triple DES, ampak navaden DES.
Nekega dne je DES začel kazati svojo starost, postal je težak za uporabo in ljudje so se odločili, da bodo izumili nekaj novega. Ameriški urad za standardizacijo, imenovan NIST, je rekel: naredimo tekmovanje in izberimo novo kul šifro. Postal je AES.
DES pomeni digitalno šifriran standard. AES - napredni šifrirani standard. Velikost bloka v AES je 128 bitov in ne 64. To je pomembno s kriptografskega vidika. Velikost ključa AES je 128, 192 ali 256 bitov. AES sicer ne uporablja Feistelovega omrežja, vendar je tudi to večkrožno in razmeroma primitivne operacije se večkrat ponovijo. Za 128 bitov se uporablja 10 krogov, za 256 - 14.
Zdaj vam bom pokazal, kako deluje vsak krog. Prvi in zadnji krog se nekoliko razlikujeta od standardne sheme - za to obstajajo razlogi.
Tako kot DES ima vsak krog AES svoje okrogle ključe. Vsi so ustvarjeni iz šifrirnega ključa za algoritem. Na tej točki AES deluje enako kot DES. Vzame se 128-bitni ključ in iz njega se ustvari 10 podključev za 10 krogov. Vsak podključ, tako kot v DES, se uporablja v vsakem posameznem krogu.
Vsak krog je sestavljen iz štirih dokaj preprostih operacij. Prvi krog je zamenjava s posebno tabelo.
V AES zgradimo 4 krat 4 bajtno matriko. Vsak element matrike je bajt. Skupaj je 16 bajtov ali 128 bitov. Sestavljajo celoten blok AES.
Druga operacija je premik bajtov.
Njegova struktura je preprosta in primitivna. Vzamemo matriko 4 x 4, ostane nespremenjena, druga vrstica se premakne za 1 bajt v levo, tretja - za 2 bajta, četrta - za 3 ciklično.
Nato izvedemo mešanje znotraj stolpcev. Tudi to je zelo preprosta operacija. Dejansko prerazporedi bite znotraj vsakega stolpca, nič drugega se ne zgodi. To si lahko predstavljate kot množenje s posebno funkcijo.
Četrta, spet zelo preprosta operacija je XOR vsak bajt v vsakem stolpcu z ustreznim ključnim bajtom. To je rezultat.
V prvem krogu se ključi samo dodajajo, ostale tri operacije pa se ne uporabljajo. V zadnjem krogu ne pride do takšnega mešanja stolpcev:
10-krat ponovimo opisane 4 korake in rezultat 128-bitnega bloka je spet 128-bitni blok.
Kakšne so prednosti AES? Deluje na bajtih, ne na bitih kot DES. AES je veliko hitrejši pri implementacijah programske opreme. Če primerjamo hitrost izvajanja AES in DES na sodobnem stroju, bo AES mnogokrat hitrejši, tudi če govorimo o implementaciji izključno v programsko kodo.
Proizvajalci sodobnih procesorjev Intel in AMD so že razvili navodila za sestavljanje za implementacijo AES na čip, saj je standard precej preprost. Posledično je AES še hitrejši. Če lahko šifriramo na primer 1-2 gigabita z DES na sodobnem stroju, potem je 10-gigabitni šifrirnik AES v bližini in komercialno dostopen navadnim podjetjem.
Algoritem blokov šifrira blok v blok. Vzame 128- ali 64-bitni blok in ga spremeni v 128- ali 64-bitni blok.
Kaj storimo, če potrebujemo več kot 16 bajtov?
Prva stvar, ki pride na misel, je, da poskušamo prvotno sporočilo razbiti na bloke in blok, ki ostane nepopoln, dopolniti s standardnim, znanim in fiksnim zaporedjem podatkov.
Da, očitno bomo vse razdelili na bloke po 16 bajtov in šifrirali. To šifriranje se imenuje ECB - elektronski kodni zagon, ko je vsak od blokov 16 bajtov v primeru AES ali 8 bajtov v primeru DES šifriran neodvisno.
Šifriramo vsak blok, pridobimo šifrirano besedilo, dodamo šifrirana besedila in dobimo celoten rezultat.
Tako izgleda slika, šifrirana v načinu ECB. Tudi če si predstavljamo, da je šifra popolnoma varna, se zdi rezultat manj kot zadovoljiv. v čem je problem? Dejstvo je, da gre za bijektivno preslikavo. Za enak vhod bo vedno pridobljen isti izhod in obratno - za isto šifrirano besedilo bo vedno pridobljeno isto odprto besedilo.
Treba bi bilo nekako izumiti in zagotoviti, da je izhodni rezultat ves čas drugačen, odvisno od lokacije bloka - kljub dejstvu, da so na vhod dobavljeni isti bloki šifriranega besedila. Prva rešitev je bil način CBC.
Ne samo, da vzamemo ključ in odprto besedilo, ampak tudi ustvarimo naključno število, ki ni skrivnost. Velikost je bloka. Imenuje se inicializacijski vektor.
Pri šifriranju prvega bloka vzamemo inicializacijski vektor in ga dodamo modulo 2 z v čistem besedilu in šifrirati. Izhod je šifrirano besedilo. Nato dobljeno šifrirano besedilo po modulu 2 dodamo z drugim blokom in ga šifriramo. Izhod je drugi blok šifriranega besedila. Dodamo ga po modulu 2 s tretjim blokom odprtega besedila in ga šifriramo. Izhod je tretji blok šifriranega besedila. Tukaj lahko vidite povezavo: vsak naslednji blok povežemo s prejšnjim.
Rezultat je slika, kjer je vse, začenši od drugega bloka, enakomerno razmazano, prvi blok pa je vsakič odvisen od inicializacijskega vektorja. In to bo popolnoma zmešano. Tukaj je vse v redu.
Vendar ima CBC več težav.
O velikosti bloka. Predstavljajte si: začeli smo šifrirati in, recimo, imamo DES. Če bi bil DES popoln šifrirni algoritem, bi bil rezultat DES videti kot enakomerno porazdeljena naključna števila, dolga 64 bitov. Kakšna je verjetnost, da se v vzorcu enakomerno porazdeljenih naključnih števil dolžine 64 bitov dve števili ujemata za eno operacijo? 1/(2 64). Kaj pa, če primerjamo tri številke? Zaenkrat si vzemimo odmor.
Šifra - fr. chiffre - število; iz arabščine ifr - nič. Poklic je primeren za tiste, ki jih zanimata matematika in računalništvo (glej izbira poklica glede na zanimanje za šolske predmete).
Kriptografija je tajno pisanje. iz grščine Kryptos - skrivnost in grapho - pisanje) tajno pisanje.
Značilnosti poklica
Zakaj so informacije šifrirane? Da ne pade sovražniku. Seveda to ne velja za vse informacije, ampak le za resnično pomembne in tajne informacije. Šifra se uporablja, ko je treba podatke prenesti svojim ljudem, vendar obstaja velika verjetnost, da pridejo v napačne roke. Zaščiten mora biti na primer pri prenosu po radiu ali elektronski pošti. Druga možnost: podatki so shranjeni v skrivni bazi podatkov, vendar so še vedno šifrirani, če hekerji vdrejo. »Ključ« do šifre je na voljo samo tistim, ki so posvečeni v skrivnost. Informacije so lahko vojaške ali diplomatske in se nanašajo na vladne obveščevalne podatke. Lahko pa pripada neki komercialni strukturi.
Z vojaške informacije vojaški razbijalci kod delujejo, če gre za mednarodno obveščevalno in protiobveščevalno službo - to je posel častnikov FSB. V komercialnih strukturah se s tem ukvarjajo zaposleni v oddelkih za informacijsko varnost.
Včasih je šifriranje povsem preprosto: s simbolom, besedo ali frazo lahko opozorite na nek dogodek. Vsi se spominjajo slavnega neuspeha stika s Stirlitzom v varni hiši. Tedaj profesor Pleischner ni bil pozoren na cvetlični lonček, ki je bil prikazan v oknu - opozorilo, da volilna udeležba ni uspela in ni treba iti tja.
Vendar pravo, profesionalno šifriranje ni omejeno le na eno konvencionalni znak. Je sistem znakov, ki je v lasti tako pošiljateljice kot prejemnice. "Alex Eustaceu ..." - iz istega filma o Stirlitzu se mnogi spomnijo, kako bi lahko izgledalo šifriranje.
Navaden kriptograf praviloma šifre ne razvije sam, ampak jo zna uporabljati. V bistvu igra vlogo operaterja: prejme šifrirano besedilo in ga s pomočjo »ključa« dešifrira. Ali obratno, šifrira za nadaljnji prenos. Vsakič, ko se sporočilo prenese, se uporabi nova šifra. Navaden kriptograf ga vzame iz posebne šifrirne ploščice, ki je skrbno zaščitena pred zunanjimi ljudmi.
Kriptografi se ukvarjajo z razvojem šifrirnih sistemov in programov za šifriranje. To delo zahteva visoke kvalifikacije. Enako velja za delo kriptoanalitika, specialista za razbijanje kod. Imena nekaterih kriptografov in razvijalcev varnostne programske opreme so splošno znana. Med njimi je Evgeny Kaspersky, ki je nekoč diplomiral na tehničnem oddelku Višje šole Rdečega praporja KGB (zdaj Inštitut za kriptografijo, komunikacije in informatiko Akademije FSB Rusije).
Slabosti poklica kriptografa vključujejo povečano tajnost. Če je kriptografu priznana resna skrivnost državnega pomena, nima pravice nikomur govoriti o svojem delu, niti o imenu svoje specialnosti in v kateri strukturi dela. Uspeh (ali neuspeh) obveščevalnih služb je lahko odvisen od njegove sposobnosti molka, pa tudi od njegove stopnje usposobljenosti. Če kriptograf služi v vojski, potem nekaj let po službi ne more potovati v tujino.
Zelo tajni so tudi komercialni podatki. V komercialnih strukturah se ta minus spremeni v plus: celo običajni kriptografi v oddelku za informacijsko varnost imajo zelo visoke plače.
Delovno mesto
Šifrer lahko dela v IT službah ali oddelkih za informacijsko varnost podjetij. Vojaški kriptografi in sistemski kriptografi zvezna varnost- to so signalisti. So v službi ustreznih struktur Ministrstva za obrambo ali FSB.
Pomembne lastnosti
Uspešno delo zahteva vztrajnost, sposobnost koncentracije in matematične sposobnosti.
Znanje in veščine
Šifrer mora znati uporabljati šifre za dešifriranje in dešifriranje informacij. Za razvoj metod za šifriranje informacij je potrebno resno znanje s področja matematike in programiranja.
Kje poučujejo
Posebnost kriptografa je mogoče pridobiti v vojski. Na primer, med služenjem vojaškega roka, če imate srečo, lahko pridete v šolo šifriranja v vojaški šoli. Možnost se poveča, če imate diplomo fakultete za komunikacijo.
Lahko greš študirat sam.
Univerze
Krasnodarska višja vojaška šola poimenovana po armadskem generalu S. M. Štemenku (KVVU poimenovana po Štemenku)
Posebnost: “Celovita zaščita informacijskih objektov.”
Kvalifikacija "strokovnjak za informacijsko varnost".
Inštitut za kriptografijo, komunikacije in informatiko (ICSI) Akademije FSB Rusije
Posebnost "Kriptografija"
Za delo v podjetju potrebujete visoko šolstvo na področju IT.
Med najboljšimi civilnimi univerzami:
Moskovska državna tehnična univerza poimenovana po. N.E. Bauman (MSTU imenovan po Baumanu)
Cryptoy - Kriptografija za začetnike
Britanska obveščevalna služba GCHQ (če ne veste, je to analog ameriške obveščevalne agencije CIA) je razvila mobilna aplikacija Cryptoy za Android za poučevanje najstnikov, študentov in vseh tistih, ki jih zanimajo teme kriptografije, obveščevalne dejavnosti in vohunjenja.
Če vas zanima kriptografija, vam svetujem, da preberete knjigo Sergeja Barycheva.
Cryptoy – Šola skavtov in vohunov
Britanska obveščevalna služba upa, da bo s to aplikacijo povečala raven kriptografske pismenosti med mlajšo generacijo, v prihodnje pa med svoje osebje privabila nove, nadarjene posebne agente.
Aplikacija ima preprost in barvit vmesnik. Poučuje osnovne kriptografske tehnike, kot je prva Cezarjeva šifra na svetu (shift shift), substitucijska šifra, Vigenèrova šifra in znamenita vojaška šifra Enigma. Uporabniki lahko s temi šiframi šifrirajo svoja sporočila – in jih pošljejo prijateljem v dešifriranje.
![](https://i1.wp.com/spy-soft.net/wp-content/uploads/cryptoy-cryptoy-prilozhenie-skachat-1.jpg)
Zasebnost v aplikaciji Cryptoy
Zdaj o zasebnosti. Ko je v razvoj aplikacije vključena nekakšna obveščevalna agencija, lahko domnevamo, da bo aplikacija polnjena z najrazličnejšimi zaznamki in vohunskimi moduli. Vendar vas želim pomiriti, v aplikaciji ni vohunske programske opreme. Med postopkom namestitve aplikacija ne potrebuje dostopa do kontaktov, kamere in drugih pomembnih osebnih podatkov. In na splošno, če bi želeli razviti nekaj zase z zlonamerno programsko opremo, tega ne bi počeli v svojem imenu.
Vse knjige in priročnike lahko prenesete popolnoma brezplačno in brez registracije.
NOVO Alferov, Zubov, Kuzmin, Čeremuškin. Osnove kriptografije. 2005 480 str. djvu. 19,2 MB.
Napisali vodilni strokovnjaki na področju kriptografije, ki imajo dolgoletne izkušnje z razvojem kriptografskih varnostnih orodij in poučevanjem kriptografskih disciplin na vodilnih univerzah v državi. Opisani so osnovni koncepti in razdelki, ki vam omogočajo, da dobite predstavo o nalogah in težavah sodobne kriptografije. Priročnik vključuje tako tradicionalna vprašanja klasifikacije in ocenjevanja zanesljivosti šifer kot sistemska vprašanja uporabe kriptografskih metod zaščite informacij.
Za študente, podiplomske študente, ki študirajo discipline kriptografije in računalniške varnosti, učitelje, kot tudi širok razpon strokovnjaki, katerih naloge so usposobljena izbira in organizacija uporabe orodij za kriptografsko informacijsko varnost.
Prenos.
NOVO N. Ferguson, B. Schneier. Praktična kriptografija. 2005 416 str. pdf. 16,9 MB.
V sodobnem poslovnem svetu je vprašanje varnosti računalniških sistemov vedno bolj zastavljeno ključnega pomena. Z ignoriranjem se prikrajšate za možnost zaslužka, širitve poslovanja in s tem ogrožate obstoj podjetja. Ena najbolj obetavnih tehnologij za zagotavljanje varnosti v kibernetskem prostoru je kriptografija.
Ta knjiga, ki so jo napisali svetovno znani strokovnjaki za kriptografijo, ponuja edinstven vodnik za praktično načrtovanje kriptografskih sistemov, s čimer premosti frustrirajočo vrzel med teoretičnimi temelji kriptografije in kriptografskimi aplikacijami v resničnem svetu.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
A.A. Bolotov et al. Osnovni uvod v eliptično kriptografijo. Protokoli kriptografije eliptične krivulje.. 2006. 274 str. djvu. 12,7 MB.
Ta knjiga vsebuje opis in primerjalna analiza algoritmi na eliptičnih krivuljah. Preučujemo protokole eliptične kriptografije, ki imajo analoge - protokole, ki temeljijo na algebrskih lastnostih multiplikativne skupine končnega polja in protokole, za katere takšnih analogov ni - protokole, ki temeljijo na Weylovem in Tatejevem združevanju. V zvezi s tem so opisani algoritmi za združevanje Weil in Tate ter njihove modifikacije. Predstavitev teorije spremlja veliko število primeri in vaje.
Ta knjiga je nadaljevanje že objavljenih izdaj knjige istih avtorjev "Osnovni uvod v eliptično kriptografijo. Algebraične in algoritemske osnove"
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
A.A. Bolotov et al. Osnovni uvod v eliptično kriptografijo. Algebraične in algoritemske osnove. 2006 324 str. djvu. 15,0 MB.
Ta knjiga je posvečena obetavni smeri na področju informacijske varnosti, katere matematična osnova je teorija eliptičnih krivulj. Knjiga vsebuje informacije, potrebne za preučevanje eliptične kriptografije o teoriji končnih polj in osnovni pojmi teorija eliptičnih krivulj. Orisuje uporabljene algebrske koncepte in metode za učinkovito izvajanje osnovnih algebrskih operacij, s pomočjo katerih je mogoče zgraditi tako znane kot perspektivne kriptografske sisteme, ki temeljijo na uporabi skupine točk eliptične krivulje. Predstavitev spremlja veliko število primerov in vaj.
Namenjeno študentom, visokošolskim učiteljem in specialistom s področja informacijske varnosti, uporabne matematike, računalništva in računalništva. Publikacija je zanimiva za ljudi, ki se ukvarjajo s kodiranjem in prenosom informacij in digitalne tehnologije, ter strokovnjake za uporabno matematiko, ki jih zanima računalniška algebra.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
A.V. Babash. Kriptografija. 2007 511 str. djvu. 9,7 MB.
Knjiga je napisana v obliki priročnika, namenjenega proučevanju »klasičnih« šifer, to je šifer s simetričnim ključem. Po kratkem zgodovinskem orisu obravnava vprašanja dešifriranja najpreprostejših šifer, metode kriptoanalize in sinteze kriptografskih shem, vprašanja kriptografske trdnosti, odpornosti proti šumom in odpornosti šifrirnih sistemov na posnemanje. Arhitektura priročnika je dvonivojska. Prva stopnja je namenjena študentom, ki študirajo discipline kriptografije in računalniške varnosti, bralcem, ki se prvič seznanjajo z izobraževalnimi gradivi o kriptografiji. Druga stopnja je za podiplomske študente, univerzitetne učitelje ustreznega profila, za krog strokovnjakov, katerih naloga je uporaba kriptografskih sredstev informacijske varnosti, za bralce, ki se želijo seznaniti s teoretično kriptografijo. Priročnik je prejel pozitivne ocene strokovnjakov in organizacij.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
Baričev S.G., Serov R.E. Osnove sodobne kriptografije. 60 strani djvu 740 Kb.
Ta knjiga bo pokrivala le osnove kriptografije. Sodobna kriptografija vključuje štiri glavne dele:
Simetrični kriptosistemi.
Kriptosistemi z javnim ključem.
Sistemi elektronskega podpisovanja.
Upravljanje ključev.
Glavna področja uporabe kriptografskih metod so prenos zaupnih informacij po komunikacijskih kanalih (npr. e-pošta), preverjanje pristnosti prenesena sporočila, shranjevanje informacij (dokumentov, baz podatkov) na medijih v šifrirani obliki.
Prenos.
Vasilenko O.N. Številsko-teoretični algoritmi v kriptografiji. 2003, 328 str. PDF. 1,8 MB.
Monografija predstavlja trenutno stanje algoritmične teorije števil, ki ima pomembne aplikacije v kriptografiji.
Namenjeno dodiplomskim in podiplomskim študentom matematične fakultete univerzah, pa tudi za specialiste, ki se želijo seznaniti z najnovejšimi dosežki na tem področju.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
Grusho A.A., Primenko E.A., Timonina E.E. Analiza in sinteza kriptografskih algoritmov. PREDAVALNI TEČAJ. 2000 110 str. PDF. 1,4 MB.
Kriptoalgoritmi so algoritmi za pretvorbo podatkov, ki uporabljajo "skrivnost". Glavni parameter kakovosti kriptoalgoritma je njegova odpornost na sovražnikove poskuse razkritja "skrivnosti". Takšna stabilnost v kriptografiji se imenuje moč. Kriptografsko moč je treba utemeljiti, saj pri varovanju kritičnih informacij logika: »Skrivnosti ne morem razkriti«, torej ne more nihče, ne velja. Metode za utemeljitev kriptografske moči temeljijo na zbranih izkušnjah pri razkrivanju »skrivnosti« kriptoalgoritmov.
V skladu s tradicijo sodobne kriptografije predmet predavanj vsebuje opis najbolj znanih univerzalnih metod kriptoanalize, metod za analizo blokovnih in pretočnih šifer, metod za analizo zgoščevalnih funkcij in algoritmov z asimetričnimi ključi. Ko se bralec seznani z metodami analize, so na voljo razdelki, ki vsebujejo metode za sintezo kriptoalgoritmov.
Prenos
N. Koblitz. TEČAJ TEORIJE ŠTEVIL IN KRIPTOGRAFIJE. 2001, 254 str. djvu. 3,0 MB.
Namen te knjige je bralca seznaniti s tistimi področji aritmetike, tako klasične kot sodobne, ki so v središču aplikacij teorije števil, zlasti kriptografije. Predpostavlja se, da je znanje višje algebre in teorije števil omejeno na največ skromen uvod s svojimi osnovami; Zato so predstavljene tudi potrebne informacije s teh področij matematike. Avtorji so izbrali algoritemski pristop in posebna pozornost se osredotoča na oceno učinkovitosti metod, ki jih predlaga teorija.
Posebnost knjige je predstavitev zelo nedavno razvitih aplikacij teorije eliptičnih krivulj. Prevod v ruščino je bil izveden iz izvirnika druge izdaje, bistveno spremenjen v primerjavi s prvo izdajo in opremljen s posodobljenim seznamom referenc. Vsako poglavje vključuje skrbno sestavljen izbor problemov, ki jih običajno spremljajo podrobna navodila in rešitve.
Vse to nam omogoča, da knjigo priporočamo ne le kot dragocen vodnik za splošno teoretično usposabljanje strokovnjakov za informacijsko varnost, ampak tudi kot koristen vir primeri praktične uporabnosti številnih abstraktnih vej matematike in kibernetike. Knjiga je odlična tudi za samoizobraževanje.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
S. Coutinho. Uvod v teorijo števil. RSA algoritem. 2001 328 str. djvu. 2,8 MB.
Kriptografija! Mnogi ljudje so bili navdušeni nad tem procesom že od otroštva. Komu ne bi bili všeč "plešoči možje" Conana Doyla? Toda prava shema šifriranja je enostavnejša in bolj zapletena, kot je opisana v slavni klasični zgodbi.
Ker ste v naslovu pogrešali matematično teorijo, se bo nekaterim zdela knjiga dolgočasna in nezanimiva. Motiš se! Priročnik je napisan živahno, zanimivo in zelo dostopno. Za razumevanje bistva je dovolj srednješolsko znanje. A kljub preprostemu slogu podajanja so vse izjave opremljene strogi dokazi ali sklicevanja na literaturo.
Paleta bralcev je zelo široka: od šolarjev, ki jih zanima teorija števil ali šifriranje, do bančnih in korporativnih programerjev, ki se želijo poglobiti v osnove svojih dejavnosti.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Prenos
Osipjan V.O. Osipjan. K.V. Kriptografija v nalogah in vajah. 2004 146 str. djvu. 1,7 MB.
Zagotovljenih več kot 450 razne naloge in vaje, združene v skladu z glavnimi usmeritvami razvoja kriptografskih metod za povečanje informacijske varnosti avtomatizirani sistemi obdelavo podatkov. Pred vsakim razdelkom je kratek uvod, sestavljen iz definicij in osnovnih pojmov ustreznega področja znanosti. Predstavljene naloge in vaje zajemajo tako klasične metode kriptografskega varovanja informacij kot sodobne metode zagotavljanja zaupnosti in celovitosti podatkov, osredotočene na uporabo računalniške tehnologije.
Za študente, ki študirajo na specialitetah skupine " Informacijska varnost«, prav tako pa je lahko koristen vsem, ki želijo povečati svojo raven znanja na področju varnega prenosa in obdelave informacij.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
N. Pticin. UPORABA TEORIJE DETERMINISTIČNEGA KAOSA V KRIPTOGRAFIJI. 2002, 80 str. PDF. 1,6 MB.
To delo je posvečeno uporabi teorije determinističnega kaosa (nelinearne dinamike) v računalniški kriptografiji. Razmerje med kaotičnimi in kriptografskimi sistemi je obravnavano na konceptualni in praktični ravni. Teoretična podlaga za to povezavo vključuje razpravo o konceptih, kot so eksponentna občutljivost na začetne pogoje, ergodičnost, mešanje, kompleksnost, naključnost in nepredvidljivost. Upoštevana sta dva pristopa k praktični uporabi nelinearnih sistemov v kriptografiji: (1) aproksimacija zveznih sistemov z uporabo matematike s plavajočo vejico in (2) binarni kaos z omejenim številom stanj. Predstavljen je pregled publikacij, ki opisujejo kaotične šifre in kaotične psevdonaključne generatorje. Obravnavana je uporaba nelinearnih sistemov z natančno rešitvijo in dvoumno transformacijo za konstrukcijo psevdonaključnih generatorjev.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
A.G. Rostovcev, E.B. Mahovenko. Teoretična kriptografija. 2005 479 str. djvu. 9,3 MB.
Ta publikacija vključuje gradiva iz knjig "Algebraične osnove kriptografije", "Uvod v kriptografijo javnih ključev", "Uvod v teorijo ponavljajočih se šifer", ki jih je izdala založba "Mir in družina" v letih 2000-2003. Knjiga je sestavljena iz treh delov. Prvi del vsebuje informacije iz algebre, teorije števil in algebrske geometrije. Drugi del je posvečen kriptografskim algoritmom z javnim ključem, s posebnim poudarkom na eliptičnih krivuljah. Tretji del vsebuje osnovne informacije o iteriranih šifrah in zgoščevalnih funkcijah. V dodatku so prikazane eliptične krivulje za standard digitalnega podpisa GOST R 34.10-2001.
Knjiga se lahko uporablja kot učbenik za poglobljen študij kriptografije. Za razliko od večine publikacij o kriptografiji je glavni poudarek na metodah kriptoanalize.
Namenjen študentom, učiteljem, matematikom in inženirjem, specializiranim za razvoj in raziskovanje kriptografskih metod in orodij za informacijsko varnost.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
B.Ya. Rjabko, A.N. Fionov. Kriptografske metode zaščite informacij. 2005 229 str. djvu. 9,3 MB.
Vadnica za univerze; Klasifikacija UMO Ministrstva za obrambo Ruske federacije; Študijski vodnik; univerza; Opisani so glavni pristopi in metode sodobne kriptografije za reševanje problemov, ki nastanejo pri obdelavi, shranjevanju in prenosu informacij. Glavna pozornost je namenjena novim področjem kriptografije, ki so povezana z zagotavljanjem zaupnosti interakcij med uporabniki računalnikov in računalniškimi omrežji. Obravnavane so osnovne šifre javnih ključev, metode digitalnega podpisovanja, osnovni kriptografski protokoli, blokovne in pretočne šifre, kriptografske zgoščevalne funkcije ter v literaturi redko zasledena vprašanja o oblikovanju dokazljivo nezlomljivih kriptosistemov in kriptografije z eliptično krivuljo. Teoretično gradivo je predstavljeno precej strogo, vendar z uporabo elementarnega matematičnega aparata. Podrobno so opisani algoritmi, na katerih temeljijo kriptografski domači in mednarodni standardi. Naloge in vaje, ki so potrebne pri vodenju praktični pouk in laboratorijsko delo.
Za študente, ki študirajo na področju telekomunikacij, je lahko koristno za specialiste.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
N. Pametno. Kriptografija. 2005 526 str. pdf. 8,3 MB.
Eden najboljših tečajev na svetu. Namenjeno strokovnjakom, ki delajo na področju informacijske varnosti in razvijalcem programske opreme. Izjemno podrobno so opisane simetrične šifre, kriptosistemi z javnimi ključi, standardi digitalnega podpisovanja in odbijanje napadov na kriptosisteme. Podani so primeri v Javi, številni izvirni problemi odražajo najnovejši razvoj teorije in prakse kriptografije.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
H.K.A.van Tilborg. Strokovno vodenje in interaktivna vadnica. 2006 471 str. djvu. 22,1 MB.
Knjiga nizozemskega kriptologa je posvečena sodobni vidiki kriptografija in kriptoanaliza. Med njimi lahko ločimo tri glavne smeri: tradicionalni (simetrični) kriptosistemi, sistemi s javnih ključev in kriptografske protokole. Glavni rezultati so podprti z dokazi. Glavna značilnost so številni primeri, ustvarjeni na podlagi znanega paketa računalniške algebre »Mathematica«. Knjigi je priložen CD ROM, ki vam omogoča (če imate paket Mathematica) spreminjanje primerov, zlasti s povečanjem vrednosti parametrov. To je prva tako večplastna izobraževalna knjiga o kriptografiji v ruščini. Angleška različica te knjige je priložena s primeri.
Knjiga je namenjena predvsem matematikom, inženirjem in študentom, specializiranim na področju informacijske varnosti. Zanimiva pa bo tudi za širši krog bralcev, k čemur lahko pripomorejo predvsem podrobne aplikacije, posvečene teoriji števil in končnim poljem, zaradi česar je knjiga precej samosvoja.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
Fomičev V.M. Diskretna matematika in kriptologija. Potek predavanj. 2003 397 str. djvu. 12,9 MB.
Knjigo je napisal vodilni strokovnjak s področja kriptologije, ki ima dolgoletne izkušnje s poučevanjem na MEPhI. Orisana so osnovna vprašanja kriptologije in osnove matematičnega aparata, potrebnega za njihovo preučevanje. Za utrjevanje snovi so podane naloge in vaje.
Priporočljivo za dodiplomske in podiplomske študente kriptologije in računalniške varnosti, učitelje in praktike, ki se ukvarjajo s kriptografskimi metodami informacijske varnosti.
Čeremuškin A.V. Predavanja o algoritmih aritmetične kriptografije. 2002, 100 str. PDF. 585 KB.
Predavanja so bila izvedena na Inštitutu za kriptografijo in informatiko, vendar je napisana v strogem matematičnem jeziku. Priporočljivo za vse, ki jih zanima kriptografija.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Yashchenko, urednik. 270 str. PDF.
Kazalo:
1. Osnovni pojmi kriptografije.
2. Kriptografija in teorija kompleksnosti.
3. Kriptografski protokoli.
4. Algoritmični problemi teorije števil.
1. Osnovne lastnosti celih števil. 2. Kongruence. 3. Računanje z velikimi celimi števili. 4. Evklidov algoritem. 5. Porazdelitev praštevil. 6. Končne in diskretne verjetnostne porazdelitve. 7. Verjetnostni algoritmi. 8. Abelove skupine. 9. Prstani. 10. Verjetnostno testiranje primalite. 11 Iskanje generatorjev in diskretnih logaritmov v Z. 12, Kvadratni ostanki in kvadratna recipročnost. 13 Računski problemi, povezani s kvadratnimi ostanki. 14. Moduli in vektorski prostori. 15. Matrice. 16. Subeksponentni časovni diskretni logaritmi in faktoring. 17 Več prstanov. 18. Polinomska aritmetika in aplikacije. 19. Linearno generirana zaporedja in aplikacije. 20 Končna polja. 21. Algoritmi za končna polja. 22. Deterministično testiranje primalite.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
R. F. Cerkev. Kode in šifre. Julij Cezar, Enigma in internet. 2004, 240 str. PDF. 1,1 MB.
4. Algoritmični problemi teorije števil.
1. Uvod. 2. Iz Julija Cezarta preprosta zamenjava. 3. Poliabecedni sistemi. 4. Šifre sestavljanke. 5. Dvočrkovne šifre. 6. Kode. 7. Šifre forspies. 8. Izdelajte babičine številke in črke. 9. Enigma šifrirni stroj. 10. Hagelinov šifrirni stroj. 11. Onkraj enigme. 12. Kriptografija javnega ključa. 13. Šifriranje in internet.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
J. TALBOT, D. WELSH. Kompleksnost in kriptografija. 2006, 290 str. PDF. 1,1 MB.
4. Algoritmični problemi teorije števil.
1. Osnove kriptografije. 2. Teorija kompleksnosti. 3. Nedeterministično računanje. 5. Simetrični kriptosistemi. 6. Enosmerne funkcije.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
7. Kriptografija javnega ključa. 8. Digitalni podpisi. 9. Ključni protokoli za ustanovitev. 10. Varno šifriranje. 11. Identifikacijske sheme. Veliko aplikacij.
4. Algoritmični problemi teorije števil.
I. F. Blake, G. Seroussi, N. P. Pametni uredniki. Napredek v kriptografiji eliptične krivulje. 2005, 280 str. PDF. 1,9 MB.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
I. Protokoli na osnovi eliptične krivulje. II. O dokazljivi varnosti ECDSA. III. Dokazila o varnosti za ECIES. IV. Analiza stranskega kanala.
4. Algoritmični problemi teorije števil.
V. Obrambe pred analizo stranskega kanala. VI. Napredek pri štetju točk. VII. Hipereliptične krivulje in HCDLP. VIII. Weil Descent Attacks. IX. Seznanjanje. X. Kriptografija iz parov.
. . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prenos.
Jeroen Mathias Doumen. Nekatere aplikacije teorije kodiranja v kriptografiji. 2003, 80 str. PDF. 415 KB.
4. Algoritmični problemi teorije števil.
1. Uvod. 2. Lepa ideja. 3. Tehnološki izzivi. 4. Eksperimentalna kvantna kriptografija s šibkimi laserskimi impulzi. 5 Eksperimentalna kvantna kriptografija s fotonskimi pari. 6. Prisluškovanje
Pred navedenim rokom članek ne sme urejati drugi udeleženci projekta. spletna stran. Po zaključku ima vsak udeleženec pravico, da ta članek popravi po lastni presoji in odstrani to opozorilo, prikazano s predlogo ((Naloga)).
Če ima kriptoanalitik nabor parov golo besedilo/šifrirano besedilo, potem ima nabor vhodno/izhodnih parov neznane funkcije f. Učni algoritem, ki lahko obnovi dano funkcijo iz vhodov/izhodov, se lahko uporabi kot kriptoanalitično orodje. Dodatne priložnosti za učni algoritem ponuja izbrani napad s šifriranim besedilom.
Upoštevajte, da je v tej situaciji primeren tudi koncept "približnega" učenja. Če algoritem vrne pravilno vrednost, na primer 99 % časa, bo kriptoanalitik lahko dešifriral 99 % blokov besedila.
Najprej predpostavimo, da uporabljamo znani napad z navadnim besedilom. Načela kriptografije kažejo, da v tem primeru verjetnost, da dobimo 1 na izhodu, sovpada z verjetnostjo, da dobimo 0. To običajno vodi do možnosti, da se rezultat premika obravnava kot naključno in enakomerno izbran vektor iz . Ta pogoj je nerealen in omejujoč v teoriji učenja, vendar je odličen za kriptografske namene.
Shapira je dobil številne rezultate za različne funkcije f. Zlasti je pokazal, da je funkcijo f, sestavljeno izključno iz operacij IN, ALI in NE, mogoče učinkovito reproducirati v polinomskem času v naključni primeri vhodni podatki.
Linial, Mansor in Nisan so pokazali, kako uporabiti spektralno metodo (na osnovi Fourierove transformacije) za učenje funkcij, predstavljenih kot vezja s fiksno dolžino z bloki IN, ALI in NE s poljubnim številom vhodov, iz naključnih primerov vhodnih podatkov. Ta rezultat sta razširila Kushelevich in Mansor, nato pa Furst, Jackson in Smith na širše razrede funkcij.
Hancock in Monsor sta pokazala, da se lahko funkcije, predstavljene kot monotoni k-DNF (to so DNF, v katerih se vsaka spremenljivka ne pojavi več kot k-krat), naučimo iz naključnih primerov. Vendar se funkcije, predstavljene kot monotoni DNF, redko uporabljajo.
Uporaba napada z izbiro šifriranega besedila nam omogoča nadaljnjo razširitev razreda funkcij, ki se jim moramo izogibati pri gradnji kriptosistema.
Druge možnosti
Druga področja, ki so skupna teoriji strojnega učenja in kriptografiji, so morda stiskanje podatkov v tem trenutku V publikacijah se tej temi in nevrokriptografiji, ki je razširitev pristopa, obravnavanega v prejšnjem razdelku, praktično ne posveča pozornost.
Povezave
- Ronald L. Rivest Kriptografija in strojno učenje, Zbornik ASIACRYPT "91 (Springer 1993), 427 – 439