Ce este criptomoneda în cuvinte simple: tipuri, avantaje și dezavantaje ale criptomonedelor. Criptomonedă și criptografie. De la mașini de criptare la bani virtuali

O echipă internațională de cercetători în securitatea informațiilor din Marea Britanie, Slovacia, Republica Cehă și Italia a descoperit vulnerabilitate criticăîn populara bibliotecă de criptare RSA Library v1.02.013 de la Infineon. Eroare în algoritmul de generare numere prime RSA face cheile de criptare generate folosind biblioteca Infineon supuse factorizării - acest lucru le permite atacatorilor să dezvăluie partea secretă a cheii.

Biblioteca vulnerabilă este folosită pentru a asigura securitatea cărților de identitate naționale în mai multe țări, precum și în multe produse software populare utilizate atât de agențiile guvernamentale, cât și de companii.

Care este problema

Slăbiciunea mecanismului de factorizare permite unui atacator să calculeze partea secretă a oricărei chei de criptare vulnerabile folosind doar cheia publică corespunzătoare. După ce a primit o cheie secretă, un atacator poate uzurpa identitatea proprietarului cheii, poate decripta datele sensibile, poate încărca cod rău intenționat în software-ul semnat de cheie și poate depăși securitatea computerelor furate.

Biblioteca de criptare vulnerabilă a fost dezvoltată de producătorul german de cipuri Infineon și are vicii din 2012. Ceea ce face problema critică este faptul că biblioteca este folosită de doi standarde internaționale securitate – motiv pentru care este folosit de multe corporații și organizații guvernamentale din întreaga lume.

Primele consecințe

Cercetătorii au verificat cărțile naționale de identitate din patru țări și au descoperit rapid că cel puțin cardurile din două țări - Estonia și Slovacia - sunt folosite în scopuri de securitate. chei vulnerabile Lungime de 2048 biți. Autoritățile estoniene au confirmat existența vulnerabilității, spunând că aproximativ 750.000 de carduri vulnerabile au fost emise din 2014. Unul dintre jurnaliștii Ars Technica a primit în 2015 un card de „rezident electronic în Estonia” - un experiment a arătat că cheia folosită în acesta poate fi factorizată.

În plus, Microsoft, Google și Infineon au avertizat că slăbiciunile mecanismului de factorizare ar putea afecta serios eficacitatea mecanismelor de securitate încorporate ale produselor TPM. În mod ironic, astfel de criptocipuri sunt folosite tocmai pentru a oferi securitate suplimentară utilizatorilor și organizațiilor care sunt adesea atacate de hackeri.

Cercetătorii au testat, de asemenea, 41 de modele diferite de laptopuri folosind cipuri TPM - 10 dintre ele folosind biblioteca de la Infineon. Vulnerabilitatea are un impact deosebit de grav în cazul TPM versiunea 1.2, deoarece cheile pe care sistemul le folosește pentru a controla funcționarea ransomware-ului Microsoft BitLocker sunt supuse factorizării. Aceasta înseamnă că oricine fură sau intră în posesia unui computer vulnerabil va putea depăși protecția hard diskși bootloader.

În plus, cercetătorii au reușit să detecteze 237 de chei factorizabile care au fost folosite pentru a semna software-ul publicat pe GitHub - inclusiv destul de popular pachete software.

Alte constatări au inclus 2.892 de chei PGP utilizate pentru a cripta corespondența prin e-mail, dintre care 956 au fost factorizabile. Potrivit experților, majoritatea cheilor PGP vulnerabile au fost generate folosind produsul USB Yubikey 4. Cu toate acestea, alte funcții ale cheii USB, inclusiv autentificarea U2F, nu conțineau vulnerabilități.

În cele din urmă, cercetătorii au reușit să găsească 15 chei factorizabile utilizate pentru TLS. Cele mai multe dintre ele conțineau cuvântul SCADA în rândul de descriere.

Cum să te protejezi

Cercetătorii vor prezenta un raport detaliat cu privire la concluziile lor la Conferința ACM Computer Security. Pentru a oferi utilizatorilor timp să își înlocuiască cheile, analiză detaliată Metoda de factorizare utilizată nu va fi prezentată până la prezentare.

În același timp, cercetătorii au publicat un instrument care le permite să determine dacă o anumită cheie a fost generată folosind o bibliotecă vulnerabilă. Detaliile sunt furnizate în postarea lor de pe blog. În plus, Infineon a lansat o actualizare de firmware care abordează vulnerabilitatea, iar producătorii de TPM lucrează acum la propriile corecții.

Cercetătorii au contactat și administrația GitHub; serviciul anunță acum utilizatorii cu privire la necesitatea înlocuirii cheilor pentru software-ul de semnare. La rândul lor, autoritățile estoniene și-au închis baza de date cu chei publice, dar încă nu au fost publicate anunțuri despre posibilele înlocuiri ale cărților de identitate vulnerabile.

Mesageri, carduri de călătorie și bani digitali. Unde, cum și de ce se utilizează criptarea

În fiecare an, criptografia pătrunde în liniște în viața noastră din ce în ce mai mult: Wi-Fi, televiziune digitală, mesagerie instant, permise de metrou, permise electronice, servicii bancare online - aceasta este doar o mică parte din lista uriașă de servicii care utilizează în prezent criptarea. Cu toate acestea, în ultimul an, în cea mai mare parte, toată lumea a vorbit nu despre aceste domenii de aplicare, ci despre criptomonede (Bitcoin, LiteCoin, Dash etc.) și blockchain, povești despre care se fac. canalele centrale televiziune, iar volatilitatea cursului de schimb este discutată nu numai de analiștii bursieri, ci și de școlari, medici și pensionari.

Acum statul și sectorul financiar decid ce să facă cu monedele digitale. Judecând după cele mai recente declarații oficiale, tehnologia blockchain în sine este de mare interes, deoarece face posibilă reducerea costurilor în zone diferite economie. Este interesată activ de sectorul bancar și financiar. Sunt deja testate și implementate diverse soluții. Cu toate acestea, opiniile cu privire la criptomonede nu sunt atât de unipolare. Există multe opțiuni pentru reglementarea lor: de la interdicție totală pana ce renunti la control. Răspundem la principalele întrebări despre criptografie, relația acesteia cu criptomonede și modul în care este privită în diferite țări.


Ce este criptografia?

Istoria oricărui stat a fost întotdeauna asociată cu un număr imens de secrete importante care trebuiau protejate de cei din afară și chiar de ale cuiva. Era necesar să se cripteze informațiile în așa fel încât să poată fi înțelese doar de o persoană cu cod special. De-a lungul timpului, scrierea secretă a devenit din ce în ce mai sofisticată și a apărut criptografie - știința metodelor de asigurare a confidențialității.

Dacă anterior a fost folosit atât pentru criptare, cât și pentru decriptare creier uman, apoi mai târziu au apărut dispozitive electromecanice precum mașina Enigma, despre care se crede că declanșarea codului de către Alan Turing (această poveste a stat la baza filmului „The Imitation Game” cu Benedict Cumberbatch) ar fi putut aduce ziua de victoria în al Doilea Război Mondial cu câțiva ani mai aproape și a salvat milioane de vieți. Astăzi, criptografia matematică a ocupat centrul atenției, cipurile electronice făcând toată treaba.


Cum a fost reglementată criptarea din punct de vedere istoric?

În timpul secolului al XX-lea, au fost făcute încercări de a interzice criptografia pentru uz privat de mai multe ori. Principalii apologi ai acestei abordări au fost serviciile de informații, care au susținut necesitatea unei interdicții pentru combaterea tuturor amenințărilor interne și externe: fie că este vorba de terorism, hackeri sau criminalitate obișnuită. La urma urmei, mesajele criptate sunt aproape imposibil de decriptat rapid fără a cheltui resurse uriașe pentru ele. Oponenții acestei poziții s-au bazat pe faptul că serviciile de informații încearcă să obțină controlul maxim asupra tuturor mijloacelor de transmitere a informațiilor. Dezbaterea continuă și astăzi.


Cum este Bitcoin legat de criptografie?

Atât Bitcoin, Litecoin, cât și Dash sunt criptomonede, adică monede digitale, a căror creare și control se bazează pe metode criptografice. Pentru a se asigura că nu se pot face modificări în lanțul de blocuri, adică blocurile nu pot fi înlocuite sau informațiile din acestea nu pot fi modificate, se folosesc elemente de criptografie.


Cum este reglementată circulația criptomonedelor în Rusia?

Metodele de reglementare a criptomonedelor sunt în prezent discutate activ în Rusia. Potrivit zvonurilor, legea ar trebui adoptată în viitorul apropiat. Momentan, poziția finală a statului nu a fost stabilită, deși se aud adesea cuvinte că folosirea criptomonedelor implică riscuri serioase; acestea pot avea ca scop spălarea banilor și sponsorizarea terorismului.


Criptografia și criptomonedele sunt pentru totdeauna?

Datorită criptografiei Viata de zi cu zi Au loc o mulțime de schimbări pozitive. În viitorul apropiat, probabil că vor apărea dezvoltări complet noi care își vor găsi aplicarea în zone neașteptate. Cu toate acestea, când și dacă oamenii de știință vor finaliza dezvoltarea unui computer cuantic, metodele moderne de criptare nu vor mai fi de încredere, deoarece vor putea decripta instantaneu orice algoritm.

Deja se dezvoltă noi metode de criptare a algoritmilor și există dispozitive experimentale de criptare bazate pe principiile mecanicii cuantice. Încă nu se știe cât timp ne va dura să vedem implementarea comercială a acestor proiecte. În prezent, laboratoarele au implementat elemente individuale ale sistemului care pot îndeplini sarcini de complexitate redusă. Dar putem spune deja că aceste evoluții vor da un nou impuls dezvoltării întregii lumi digitale.

„Protecția informațiilor” este un concept mai larg în comparație cu conceptul de „protecție criptografică”. Protecția informațiilor poate fi asigurată prin diverse metode (fizice, metode steganografice etc.), inclusiv prin cele criptografice. Metodele criptografice de securitate a informațiilor sunt înțelese ca acelea care utilizează metode matematice pentru transformarea informațiilor protejate (vezi „Dicționar de termeni criptografici”, editat de B.A. Pogorelov, V.N. Sachkov, MTsNMO, M., 2006.).

  • Puteți căuta definiții cifrate în dicționar. Cu toate acestea, foarte des în RuNet și, de asemenea, în literatură, aceste concepte sunt confuze. Să evidențiem principala diferență la nivel conceptual. Un cod este o transformare a informațiilor care NU implică o componentă secretă sub forma unei chei; un exemplu de cod este base64 - o schemă prin care o secvență arbitrară de octeți este convertită într-o secvență de caractere ASCII imprimabile. Un cifru este o transformare în care o componentă secretă (cheie) este implicată într-o anumită formă. Exemple de cifruri sunt algoritmi AES sau GOST 28147-89.

  • Știți din dicționar că autentificarea este dovada utilizatorului că el este el. De obicei, utilizatorul dovedește acest lucru deținând anumite cunoștințe (parolă, cheie etc.) Protocolul de autentificare este procedura pentru această dovadă. Protocoalele de autentificare diferă în ceea ce privește numărul de pași: 2-pass, 4-pass. Există, de asemenea, autentificare unidirecțională și reciprocă. De exemplu, dacă accesați un site de e-mail și site-ul vă solicită să introduceți o parolă, aceasta va fi autentificare unidirecțională cu două treceri, de exemplu. Te-ai autentificat pe server și protocolul a constat din doi pași: cerere, răspuns. Protocoalele mai complexe funcționează, de exemplu, în cadrul protocolului TLS, unde poate fi utilizată autentificarea reciprocă cu 5 treceri, care este combinată cu protocolul de distribuție a cheilor deschise.

  • Ca întotdeauna, vă trimitem la dicționar pentru definiții formale. Principala diferență dintre aceste protocoale este următoarea. În cazul identificării, te prezinți cuiva (identifică-te). De exemplu, accesați un site web cu e-mail și scrieți-vă adresa poștalăîn domeniul corespunzător, sau, pentru un exemplu mai realist, un polițist vine la tine și te întreabă cine ești, iar tu îi dai numele de familie. Aceasta este identificarea. Dar autentificarea este procedura prin care tu să dovedești că ești cine spui că ești. În primul nostru exemplu, serverul de e-mail vă va cere să introduceți parola și, prin urmare, să vă autentificați. În al doilea exemplu, polițistul vă va cere să vă prezentați pașaportul și, astfel, veți fi autentificat în fața lui.

  • Puteți găsi definițiile acestor concepte în dicționar, dar aici vom explica diferența dintre ele. Pentru operatie normala Infrastructura cu chei publice (PKI) necesită un centru de încredere, de obicei o autoritate de certificare (CA). Un certificat este cheia publică a unui utilizator, semnată de o autoritate de certificare. Un certificat poate conține mult mai multe informații, ele sunt aranjate în lanțuri de certificate, dar sarcina principală a unui certificat este să certifice că cheia publică este A TA.

  • În primul rând, ar trebui să ai răbdare. Criptografia este o știință complexă. Pentru studiul criptografiei este, de asemenea cunoștințe necesare matematica pe nivel inalt(elev în anul III specialități matematică/tehnică – nivel necesar, dar nu suficient). Pentru a începe, puteți folosi cartea lui A.P. Alferov, A.Yu. Zubov, A.S. Kuzmin, A.V. Cheremushkin, „Fundamentals of Cryptography”, Gelios ARV, M., 2001. De asemenea, o opțiune bună: B. Schneier „Applied Cryptography: Protocols, Algorithms, textele sursăîn limbajul C”, Triumph, M., 2002, este o opțiune mai populară, dar, după părerea mea, mai slabă. La următoarea etapă, trebuie să vă decideți asupra specializării dvs. și... Mult succes!

  • Acestea sunt toate nume ale aceleiași metode de analiză criptografică, care constă într-o căutare completă a tuturor elementelor necunoscute ale schemei criptografice. Această metodă este aplicabilă oricărei scheme și este garantată că va duce la succes. De aceea, complexitatea acestei metode este folosită pentru a evalua puterea criptografică în absența mai multor metode eficiente analiză. Eficiența acestei metode este de obicei crescută prin paralelizarea procesului de căutare.

  • Prin „perfect” înțelegem astfel de cifruri, atunci când analizăm pe care un criptoanalist nu poate obține nicio informație despre textul simplu, dat fiind textul cifrat. S-ar părea că toate cifrurile care merită folosite în practică ar trebui să aibă proprietatea de „perfecțiune”. Cu toate acestea, nu este cazul și aproape întotdeauna. Faptul este că proprietatea „perfecțiunii” necesită utilizarea unei cantități uriașe informatie cheie(al cărui volum este egal cu volumul total al tuturor textelor clare). Această condiție este extrem de nepractic, prin urmare, de regulă, folosesc cifruri care sunt perfecte în sens non-clasic: optime în ceea ce privește viteza/prețul de implementare și puterea criptografică. Cifrele perfecționate cu privire la aceste proprietăți la un moment dat sunt adesea standardizate de guvern și/sau organizații internaționale.

  • În marea majoritate a cazurilor, răspunsul este negativ. În acest caz, integritatea datelor poate fi încălcată în așa fel încât la decriptarea mesajului modificat să se obțină un text semnificativ. Metodele de încălcare a integrității datelor criptate depind în mod semnificativ de algoritmul de criptare utilizat și de modul său de funcționare. De exemplu: dacă un cifr de bloc este utilizat în modul de înlocuire simplă, atunci blocurile de text cifrat pot fi rearanjate; dacă se folosește un cifru gamma și se cunoaște textul clar, atunci valoarea gamma poate fi calculată și se poate obține un text cifrat corespunzător oricărui text clar ales; etc. Pentru a asigura integritatea datelor criptate în timpul transmiterii, este necesar să folosiți fie funcții de hashing (în special cele cu cheie), fie moduri speciale de criptare care oferă autentificare.

  • Există un exemplu clasic. Dacă cifrul gamma este aplicat de două ori, rezultatul va fi text simplu. Desigur, nu toți algoritmii criptografici au consecințe atât de catastrofale atunci când sunt utilizați în mod repetat. Cu toate acestea, folosiți aceasta metoda Pentru a îmbunătăți puterea criptografică, de obicei nu este recomandat. De exemplu, pentru cifrări sau funcții de hashing, o metodă de forță brută bazată pe construcția tabelelor curcubeu utilizează lanțuri care sunt obținute prin aplicarea repetă a algoritmului original. Astfel, prin aplicarea algoritmului de două sau mai multe ori, cel puțin, nu veți complica sarcina criptoanalistului. În orice caz, înainte de a modifica un algoritm criptografic sau de a-l folosi într-un mod non-standard, trebuie să vă asigurați că acest lucru nu introduce noi puncte slabe și vulnerabilități.

  • Algoritmi de criptare

    • Cifrurile sunt împărțite în cifre bloc și flux în funcție de următoarele criterii. Primele operează imediat cu bloc mare informații (64, 128, 256 biți), acestea din urmă produc caractere secvențe de criptare de lungime mai mică (1, 4, 16, 32 de biți). După o anumită aproximare, această diferență poate fi considerată condiționată. De regulă, cifrurile bloc diferă de cifrurile flux prin principiile lor structurale. De asemenea, cifrurile de flux funcționează de obicei în modul gamma, de exemplu. este generată o secvență de criptare, care este apoi suprapusă (însumată) cu secvența textului principal. Pentru cifrurile bloc, diferite moduri de utilizare sunt dezvoltate separat (inclusiv modul gamma). Din punct de vedere istoric, cifrurile stream au fost folosite pe platforme cu resurse limitate (calculator, memorie mică) sau pentru a oferi viteză mare de criptare. Cu toate acestea, marea majoritate a platformelor utilizează în prezent cifruri bloc este acceptabil. Cifrurile stream continuă să fie utilizate (E. Biham) dacă este nevoie de un cifr software de ultra-înaltă viteză, precum și în cazul implementării hardware a cifrului în produse ieftine produse în masă.

    • Conceptul de moduri de criptare este folosit de obicei în legătură cu cifrurile bloc. Un cifr de bloc cu o cheie fixă ​​specifică o anumită substituție pe blocurile de text simplu și este astfel un cifr de substituție simplu. Utilizarea directă a cifrurilor simple de substituție poate fi periculoasă: cu suficient material, un adversar poate decripta textul simplu. În acest sens, modurile de criptare sunt dezvoltate pentru cifrurile bloc, adică algoritmi speciali folosind un cifru bloc (vezi articolul Moduri de criptare ale cifrurilor bloc). Utilizare moduri diferite criptarea este determinată de o varietate de nevoi practice. Un exemplu este necesitatea de a limita răspândirea distorsiunilor, de a organiza sincronizarea etc.

    • Pur teoretic, pentru aproape orice cifru este posibil să se determine cheia de criptare (sau să decripteze textul cifrat). O altă întrebare: cât timp? Fie lungimea cheii să fie de n biți. Dacă utilizați un algoritm de criptare „bun”, atunci nu există metode pentru a găsi cheia cu o complexitate mai mică de 2^n (operații de încercare a unei chei). În acest caz, o lungime a cheii de 128 de biți este mai mult decât suficientă. De asemenea, poate fi recomandat să NU folosiți chei mai scurte de 64 de biți. În același timp, dacă nu aveți niciun inconvenient cu stocarea, transmiterea cheilor sau cu viteza de criptare, atunci ar trebui să utilizați întotdeauna cheia lungime maxima posibil pentru algoritmul dvs. de criptare.

    • Pentru a răspunde la această întrebare, trebuie mai întâi să stabilim după ce criterii ar trebui comparate cifrurile. În primul rând, aceasta este, desigur, puterea criptografică. În al doilea rând, viteza de implementare a software-ului (hardware). Cifrele pot fi comparate și prin următorul criteriu: numărul de platforme diferite pe care pot fi implementate. (Trebuie ținut cont de faptul că platformele pe care apare necesitatea implementării criptării pot fi foarte diferite: de la calculatoare performante până la smart carduri.). În ceea ce privește puterea criptografică, în prezent atât standardul american AES, cât și GOST 28147-89 intern pot fi considerate puternice. Din punct de vedere al performanțelor, standardul intern este inferior celui american (nu uitați că standardul intern este cu 10 ani mai vechi decât cel american!), dar viteza sa de funcționare este suficientă pentru marea majoritate a scopurilor practice. Ambele standarde de criptare permit crearea de implementări pe o mare varietate de platforme, inclusiv pe cele cu resurse limitate. În același timp, trebuie remarcat faptul că pentru a implementa cifrul GOST 28147-89, este necesară mai puțină memorie. Astfel, este imposibil să trageți concluzia definitivă care cifru este „mai bun”. Dacă adăugăm o astfel de proprietate ca „patriotism” la criteriile de evaluare a cifrurilor, atunci standardul intern GOST 28147-89 câștigă cu siguranță.

    • În primul rând, algoritmul de criptare trebuie să fie puternic. În al doilea rând, cu o viteză de criptare destul de mare. Prima condiție poate provoca cel mai mare număr de întrebări pentru utilizator. Doar un grup mare de criptografi profesioniști poate determina că un cifru este puternic într-o perioadă de timp. perioada lunga timp (de aceea se desfășoară competiții pentru diverși algoritmi criptografici în Europa și SUA). Pentru un utilizator obișnuitși, uneori, chiar și o companie mare, o astfel de cercetare care necesită forță de muncă, de regulă, se dovedește a depăși capacitățile lor. Există soluții standardizate special pentru tine. În țara noastră, acesta este algoritmul de criptare GOST 28147-89. Soluțiile standardizate sunt potrivite pentru aproape orice situație. Cu toate acestea, există cazuri excepționale (a se vedea răspunsul la întrebarea din FAK „Există un GOST pentru criptare, de ce avem nevoie de alte cifruri și algoritmi?”). Ce cifr să folosești în astfel de situații depinde de multe condiții diferite, iar o rețetă generală nu poate fi dată aici.

    • Scopul principal al utilizării unui algoritm de criptare este asigurarea confidențialității informațiilor. De remarcat că există o cantitate mare cifruri care satisfac acest scop. Cu toate acestea, atunci când utilizați un algoritm de criptare în practică, acesta se poate confrunta Cerințe suplimentare. Iată câteva dintre ele: a. Viteză mare de implementare software a criptării pe o anumită platformă. În acest caz, platforma specifică poate varia de la PC-uri convenționale la procesoare de carduri inteligente. b. Viteză mare de implementare hardware și cost scăzut al produsului final. Când este implementată în hardware, fiecare operațiune utilizată în criptare aduce o anumită contribuție la costul produsului final. V. Anumite caracteristici ale structurii cheie. De exemplu, criptarea unei cantități mari (mice) de informații pe o cheie, schimbând cheile frecvent. d. Nevoia de proprietăți suplimentare, de exemplu, sincronizare. d. Domenii speciale de aplicare. Un exemplu sunt algoritmii de criptare pentru dispozitivele RFID. În acest din urmă caz, ajung chiar până la reducerea puterii cifrului pentru a-l simplifica cât mai mult posibil. Pentru marea majoritate a problemelor practice, soluțiile standardizate sunt destul de potrivite. Ele pot și trebuie folosite. Puterea criptografică a algoritmilor precum GOST 28147-89 și AES este garantată de interesul sporit al întregii comunități criptografice globale pentru aceștia.

    • Depinde de ce scopuri. Dacă vrei să joci spion, folosește-l după pofta inimii! Dacă confidențialitatea datelor dvs., starea financiară a companiei dvs. sau a dvs. personal depind de puterea criptării dvs., atunci răspunsul este NU. Este natura umană să faci greșeli, chiar dacă ești profesionist. Prin urmare, înainte de a începe utilizarea practică algoritm criptografic, este supus multor teste de către diverși experți. Iar acest proces nu este rapid: competiția NESSIE (https://www.cosic.esat.kuleuven.be/nessie/) s-a desfășurat timp de 3,5 ani; Concurs AES (http://csrc.nist.gov/groups/ST/toolkit/block_ciphers.html/) – aproape 4 ani; Perioada de timp estimată pentru competiția SHA-3 (http://csrc.nist.gov/groups/ST/hash/sha-3/index.html/) este de 4 ani. În general, dacă trebuie să criptați mesaje mai serioase decât „Seryozhka îl iubește pe Svetka din 8 „B”, atunci utilizați fie soluții standardizate, fie algoritmi criptografici care au trecut un examen de nivel înalt.

    • La această întrebare nu se poate răspunde fără echivoc. Faptul este că pentru diferite cifruri cele mai eficiente atacuri pot fi complet diferite. Există, desigur, atacuri universale, cum ar fi metoda forței brute. În același timp, întreaga linie atacurile (cum ar fi atacul slide) sunt aplicabile doar unei game foarte limitate de cifruri. ÎN În ultima vreme, datorită creșterii lungimii cheilor și dezvoltării metodelor de sinteză a cifrului, cele mai eficiente (cel puțin din punct de vedere practic) sunt atacurile nu asupra cifrurilor în sine, ci asupra implementării acestora: atacurile cache, metode bazate pe chei aferente , si etc.

    • Mesele curcubeu sunt opțiune specială tabele, care este utilizat în algoritmii de căutare sau enumerare bazați pe principiul compromisului timp-memorie (un compromis între timpul de căutare și dimensiunea tabelului). Există mai multe moduri de a construi astfel de tabele. Toate acestea se bazează pe construirea de lanțuri de aplicare secvențială a funcției studiate și stocarea doar a primului și ultimul punct de date al lanțurilor. Sunt cunoscute metoda clasică propusă de Hellman, metoda bazată pe punctele selectate și metoda tabelelor curcubeu. Toate aceste metode diferă în așa-numita funcție de reducere. Pentru metoda tabelului curcubeu, această funcție constă din secvența diverse funcții. Acest lucru vă permite să reduceți numărul de mese și să creșteți dimensiunea acestora, deoarece probabilitatea de lipire a lanțurilor generate scade. Cele mai cunoscute atacuri de acest tip sunt inversarea funcției hash MD5, atacurile asupra A5/1 și DES.

    Criptografia cu cheie publică, semnătură digitală

    • Este foarte dificil să acoperiți principiile criptografiei cu cheie publică într-o singură întrebare. Dar vă vom liniști, alături de cheia publică există și una secretă, iar el este cel care este implicat de obicei în procedura de decriptare sau semnare. Dar cheia publică funcționează atunci când se criptează sau se verifică o semnătură. Deci, atunci când trimiteți un mesaj, luați cheia publică a abonatului, pe care a tipărit-o într-un ziar sau a postat-o ​​pe site-ul său web și criptați mesajul cu ea. Dar abonatul își ia cheia privată, pe care o păstrează secretă, și decriptează mesajul cu ea.

    • Criptografia cu cheie publică are avantajele și dezavantajele sale. Avantajele includ gestionarea ușoară a cheilor și capacitatea de a organiza procedurile de semnătură și schimb de chei. Cu toate acestea, există și dezavantaje. Aceasta este complexitatea implementării, de regulă, viteza scăzută de implementare. Unii consideră, de asemenea, că este un dezavantaj faptul că principiile care stau la baza criptografiei cu cheie publică se bazează pe greu de rezolvat probleme matematice, pe care într-o zi cineva l-ar putea rezolva. În cazul general, acestea, desigur, au fost rezolvate, dar din punct de vedere practic, pentru a le rezolva sunt necesare calculatoare MARI ŞI SCUSPUSE, care nu pot fi accesibile cetăţenilor de rând sau companiilor.

    • Unul dintre cele mai comune protocoale de distribuție a cheilor publice este protocolul Diffie-Hellman. Toate celelalte, în principiu, sunt construite pe baza ei. Din păcate, protocolul nu este rezistent la atacurile active de tip man-in-the-middle. Cu toate acestea, dacă extindeți protocolul cu instrumente de autentificare, atunci această soluție va fi complet sigură. Există zeci de modificări ale protocolului și protocoalelor Diffie-Hellman care folosesc idei matematice similare. În plus, există protocoale care utilizează algoritmi criptografici simetrici.

    • Utilizați soluții standardizate, de exemplu GOST R 34.10-2001. Design foarte bun, stabil.

    Funcții hash

    • Multă vreme, cea mai comună funcție de hashing a fost MD5. Astăzi, această funcție de hashing continuă să fie utilizată în multe protocoale și aplicații. Cu toate acestea, în august 2004, au fost prezentate coliziuni pentru MD5 pentru prima dată. Metodele au fost îmbunătățite și acum coliziunile MD5 sunt construite în sutimi de secundă. Mai mult, există exemple de așa-numitele coliziuni multiple. De exemplu, aici (http://www.win.tue.nl/hashclash/Nostradamus/) găsiți 12 fișiere pdf cu conținut diferit și distractiv, dar aceleasi valori Funcțiile hash MD5 de la ele.

    • Pentru o valoare arbitrară, nu există nicio funcție hash în acest moment. Funcția hash MD5 a fost întreruptă în legătură cu sarcina de a construi o coliziune. Dar o metodă universală pentru construirea unei imagini prealabile pentru această funcție hash nu a fost încă dezvoltată. Cu toate acestea, metodele de analiză MD5 se dezvoltă foarte rapid și apariția unei metode de construire a unui prototip în viitorul apropiat este foarte realistă. De menționat că, în anumite ipoteze, problema construirii unui prototip a fost deja rezolvată în acest moment. De exemplu, aici (http://eprint.iacr.org/2011/248.pdf) este rezolvată problema recuperării unei parole folosind valoarea codului hash MD5 dintr-un șir format din această parolă și o valoare de sare.

    • Funcțiile de hashing criptografic sunt folosite pentru a dovedi paternitatea, pentru a asigura integritatea mesajului și pentru a identifica și a autentifica mesajele sau participanții la protocol. Cea mai frecventă utilizare a funcțiilor de hashing este atunci când se calculează o semnătură digitală electronică (EDS). În acest caz, utilizarea funcțiilor hash se datorează necesității de a asigura puterea criptografică și viteza mare de calcul a semnăturii digitale. Funcțiile hash sunt adesea folosite pentru a identifica un utilizator folosind o parolă. De regulă, serverul stochează nu parolele în sine (din motive evidente), ci rezultatul aplicării unei funcții de hash (coduri hash). Când utilizatorul introduce o parolă, i se aplică o funcție hash și rezultatul rezultat este comparat cu cel stocat pe server. Funcțiile hash sunt uneori folosite pentru a construi cifruri bloc (SHACAL) și flux (SEAL), generatoare numere aleatorii.

    • Caracteristici cheie hashing (coduri de autentificare a mesajelor, MAC), spre deosebire de funcțiile de hashing fără cheie, atunci când calculează codul hash, acestea folosesc unele informații secrete - cheia. Funcțiile de hashing cheie sunt utilizate pentru a asigura integritatea informațiilor și pentru a identifica mesajele sau utilizatorii. Una dintre cele mai comune opțiuni pentru construirea unui MAC bazat pe o funcție de hashing fără cheie se numește HMAC. Când se calculează un cod hash folosind HMAC, funcția hash fără cheie este calculată de două ori.

    • În analiza criptografică a funcțiilor hash, una dintre principalele probleme luate în considerare este problema construirii unei coliziuni. Cu alte cuvinte, trebuie să găsiți două mesaje diferite x și y astfel încât codurile lor hash să fie aceleași. La prima vedere, poate părea că, dacă lungimea codului hash este de n biți, atunci găsirea unei coliziuni pentru funcția hash „ideală” se poate face doar prin căutarea prin 2n mesaje diferite. Dar acest lucru nu este adevărat și, în teoria probabilității, acesta se numește paradoxul problemei zilei de naștere. Problema zilei de naștere este formulată astfel: care este probabilitatea ca între N elevi din aceeași clasă să fie doi care au aceeași dată de naștere? Se pare că această probabilitate este mai mare de 0,5 deja la N=23. Problema zilelor de naștere este similară cu problema găsirii unei coliziuni a unei funcții de hashing, iar pentru a construi o coliziune este suficient să sortați mult mai puțin de 2^n mesaje, și anume de ordinul a 2^(n/2).

    • În analiza criptografică a funcțiilor de hashing sunt luate în considerare trei sarcini principale: 1. Construirea unei preimagine. 2. Construcția celui de-al doilea prototip. 3. Construirea unei coliziuni. (Vezi articolul principal despre funcțiile hash). Există metode generale de rezolvare a fiecăreia dintre aceste probleme care se aplică oricărei funcții de hashing. Unii consideră că o funcție hash este „întreruptă” dacă i se propun metode de rezolvare a oricăreia dintre problemele 1-3 cu o complexitate mai mică decât cea a metodei generale. În 2008, au apărut o serie de lucrări ale criptografilor austrieci și polonezi cu privire la analiza standardului național al funcției hash. Datorită eforturilor lor, complexitatea rezolvării principalelor probleme ale criptoanalizei pentru funcția hash GOST R 30.11-94 a fost redusă semnificativ în comparație cu metode generale analiză. În același timp, complexitatea rezolvării acestor probleme (precum și cerințele pentru cantitatea necesară de memorie) rămâne atât de mare încât nu este nevoie să vă fie teamă de a continua să utilizați standardul intern pentru funcția hash în viitor ( vezi și articolul despre funcția hash GOST R 30.11-94). Mai mult, din 2013, Rusia a avut nou standard la funcția de hashing (http://www.standards.ru/document/5293367.aspx). Pe scurt, noul algoritm a schimbat complet structura și a mărit dimensiunea codului hash.

    • „Broken” este un termen informal și poate fi interpretat căi diferite. Recent, au apărut într-adevăr o serie de lucrări care au arătat slăbiciuni grave ale algoritmilor de hashing MD5 și SHA-1. Un articol separat este dedicat acestor rezultate și concluzii din acestea. Aici notăm doar punctele principale. Ar trebui să încetați să utilizați aceste funcții hash! Cu siguranță ar trebui să evitați să le folosiți în sistemele de securitate a informațiilor în curs de dezvoltare. În același timp, în acest moment există doar câteva exemple practice de utilizare a rezultatelor teoretice în analiza funcțiilor hash SHA-1. În acest sens, în cazurile în care trecerea la utilizarea altor algoritmi de hashing este asociată cu costuri mari (în primul rând financiare), este posibilă continuarea utilizării SHA-1. În același timp, însă, ar trebui efectuate examinări suplimentare ale sistemului de securitate a informațiilor. Ar trebui să refuzați categoric să utilizați MD5!

    • O sare este o secvență de caractere care este utilizată în calcularea valorilor diferitelor primitive criptografice și este stocată în text clar. Valoarea de sare trebuie generată într-o manieră pseudo-aleatoare, independent și la fel de probabilă pentru fiecare acces la primitiva criptografică. Sarea este folosită pentru a reduce eficacitatea unui număr de atacuri criptografice. Ca exemplu, luați în considerare o metodă de identificare folosind parole. După primirea cererii, serverul trimite utilizatorului o valoare de sare generată aleatoriu. Utilizatorul și serverul calculează independent o valoare hash din șirul format din parolă și valoarea de sare. Utilizatorul trimite valoarea hash calculată către server. Dacă această valoare se potrivește cu valoarea serverului, atunci identificarea are succes. Utilizarea sării în acest protocol se datorează necesității de a reduce eficiența căutărilor prin parole bazate pe dicționar. Într-adevăr, pentru a implementa acest atac, este necesar să se creeze dicționare pentru toate valorile posibile de sare, ceea ce, de regulă, este imposibil de implementat în practică.

    Utilizarea criptografiei în practică

    • Puteți căuta ce este integritatea datelor în dicționar și vom analiza metode pentru a o asigura. În primul rând teoria. Asigurarea integrității datelor este una dintre problemele care se rezolvă cu succes folosind funcțiile hashing. Dacă calculați codul hash dintr-un bloc de date, atunci cu aproape orice, chiar și cea mai nesemnificativă modificare a blocului de date, codul hash se va schimba. Și dacă păstrați codul hash în siguranță, acest lucru vă asigură că datele dumneavoastră rămân neschimbate în timpul transmiterii. Cu toate acestea, dacă transmiteți un cod hash împreună cu datele, atunci folosirea funcțiilor hash obișnuite este deja periculoasă; trebuie să utilizați funcții hash cheie, cum ar fi HMAC. Problema asigurării integrității poate fi rezolvată și prin criptare sau codare (de exemplu, o procedură de arhivare a datelor). Acum despre practică. Dacă doriți să trimiteți un fișier prin rețea și doriți să fiți sigur că va ajunge exact așa cum a fost trimis, puteți: - să utilizați un program de calcul al funcției hash (cel mai popular program este md5sum) și să calculați codul hash al fişier. Cu toate acestea, în primul rând, trebuie să vă asigurați că nimeni nu a schimbat valoarea codului hash în sine și, în al doilea rând, reputația funcției MD5 a fost subminată în mod semnificativ și este mai bine să utilizați alte funcții; - arhivați fișierul și transferați arhiva. Acest lucru vă protejează împotriva modificărilor accidentale și, dacă vă este frică de modificări intenționate, arhivați cu o parolă; - criptați fișierul, dar nu transferați cheia de criptare împreună cu fișierul; - și în cele din urmă semnați fișierul cu folosind semnătura digitală(pentru informații despre cum să faceți acest lucru, consultați Întrebări frecvente)

    • Pentru a schimba semnături digitale criptate sau semnate prin e-mail poate fi folosit soluție standard PGP. Există multe implementări ale acestei soluții, de exemplu http://www.gnupg.org/. Pentru a utiliza PGP trebuie să generați o pereche de chei: publică și secretă. Apoi, trebuie să transferați cheia publică către abonat printr-un canal securizat sau de încredere. Mai departe, în orice program de e-mail cum ar fi Liliacul sau Outlook (este mai ușor în Bat!) să creați o scrisoare și să o semnați și/sau să o criptați folosind elementele corespunzătoare din meniul programului. Abonatul dvs. va trebui pur și simplu să verifice semnătura sau să decripteze scrisoarea.

    • Cum să semnezi digital o scrisoare, vezi o întrebare separată. Dacă doriți să semnați un fișier, atunci va trebui să implementați o infrastructură mică de cheie publică, și anume, să vă generați propriul dvs. public și cheie privată. Cel mai simplu mod de a face acest lucru este utilizarea bibliotecii openssl (http://www.openssl.org/). Puteți utiliza utilitarele genrsa pentru a obține chei publice și private de dimensiunea necesară și utilizați utilitarul rsautl pentru a semna fișierul.

    • Există multe utilitare și programe pentru a rezolva această problemă. De exemplu, Programul TrueCrypt(www.truecrypt.org) vă permite să creați partiții întregi criptate. Pentru a cripta un fișier, puteți utiliza utilitarul EncryptFiles http://www.encryptfiles.net. Acest program vă permite să criptați fișierele folosind mai mult de 10 algoritmi, inclusiv AES. Ca ultimă soluție, puteți utiliza un arhivator cu o parolă, dar trebuie să rețineți că nu toți arhivatorii au un sistem de criptare puternic. De asemenea, nu trebuie să uităm că complexitatea recuperării datelor dumneavoastră în acest caz este determinată nu numai de algoritmul de criptare, ci și de complexitatea parolei dumneavoastră.

    • Puteți discuta despre avantajele și dezavantajele acestor două sisteme de operare ore și zile; există resurse separate pentru aceasta. Statisticile arată că majoritatea servere publice pe Internet rulează pe sisteme de operare asemănătoare Unix, iar majoritatea virușilor și viermilor rulează pe Windows. Cu toate acestea, dacă sunt configurate incorect, sistemele Unix vor fi pline de găuri și nesigure. Să răspundem la asta: cu o configurare și o utilizare adecvată și competentă, ambele sisteme de operare sunt destul de sigure. Doar fii atent!

    • Aceasta este o întrebare pentru un articol separat; vom răspunde pe scurt. Cel mai simplu lucru este să vă creați propriul certificat autosemnat. Biblioteca openssl poate face acest lucru cu ușurință. Apoi accesați configurațiile apache-ului dvs. preferat și specificați căile către chei și certificat pentru a organiza o conexiune TLS/SSL. Dacă doriți să faceți acest lucru sub Windows, atunci veți avea nevoie de un CSP instalat (furnizor de servicii criptografice), puteți instala și un CSP intern (CryptoPro, Lissi csp etc.) cu suport pentru standardele interne pentru funcția hash, criptare și digital semnătură. Apoi, tot ce trebuie să faceți este să utilizați instrumentele acestui CSP sau pur și simplu să accesați un site web, de exemplu, http://www.cryptopro.ru/certsrv/ și să solicitați un certificat de testare acolo. Dacă doriți să atașați serviciului dvs. un certificat care nu este autoscris, îl puteți comanda la http://www.startssl.com - acolo puteți obține un certificat pentru domeniul dvs. gratuit.

    • Obținerea de numere aleatoare de înaltă calitate este o problemă criptografică dificilă. Pentru a o rezolva, există atât hardware cât și software. În practică, puteți folosi atât cei mai simpli, cât și cei mai complexi algoritmi. Puteți scrie un număr aleatoriu „din capul tău” sau folosind mijloace mecanice (monede, cuburi, domino etc.). Apoi, pentru a-și îmbunătăți „calitatea”, este recomandabil să îi aplici o funcție hash, adăugând ca argument alți parametri pseudo-aleatori (ora curentă, data, numărul mașinii vecinului etc.). Cu toate acestea, această metodă este bună pentru o singură utilizare. Pentru a obține un număr mare de numere aleatorii, este recomandabil să utilizați software. Aproape fiecare limbaj de programare are o funcție rand() care generează un număr pseudoaleator. Cu toate acestea, trebuie amintit că perioada acestei funcții este de obicei mică (216 sau 232) și înainte de a o utiliza este necesar să setați umplerea pseudo-aleatorie inițială (ora, data etc.). Există generatoare de informații cheie în pachetele software criptografice (de exemplu, truecrypt). Mulți se deschid OS colectați informații pseudoaleatoare (mișcarea mouse-ului, apăsări de taste etc.) într-un anumit fișier (/dev/random). Puteți folosi generatoare online (http://random.org), dar algoritmii pentru funcționarea lor, de regulă, nu sunt publicati.

    • Parolele unice (OTP) sunt unul dintre mijloacele de rezolvare a problemei de autentificare a utilizatorilor. Proprietatea cheie a OTP este că parola este valabilă doar pentru un proces de autentificare și pentru o perioadă limitată de timp. Această proprietate vă permite să rezistați în mod eficient unei posibile compromisuri a parolei în timpul utilizării. Implementările moderne ale unor astfel de sisteme se bazează pe chei electronice (http://www.aladdin-rd.ru/catalog/etoken/otp/, http://www.rsa.com/node.aspx?id=1215). Există diverse scheme pentru funcționarea sistemului OTP; în cele mai simple dintre ele, serverul și dispozitivul client păstrează un număr de parole deja primite și pentru noua autentificare Aceeași valoare aleatorie este generată pe ambele părți - o parolă.

    • Pentru a rezolva problema conectării computerelor într-o rețea sigură în interior retea publica există mod standard– organizați un VPN cu trafic închis folosind protocolul IPSec. Metoda este bună, dar pentru uz privat, de exemplu două computere, poate fi prea greoaie. Puteți folosi o soluție mai simplă - tunelarea. Nu este greu de organizat: pune server ssh. Pentru sistemele Linux aceasta nu este o problemă; pentru Windows puteți utiliza freeSSHd (www.freesshd.com). Apoi, am amenajat tunelul. Există multe moduri pentru Linux, pentru Windows le puteți folosi client gratuit Putty, care are capacitatea de a configura un tunel. După configurarea cu succes, traficul dintre două computere (ftp, http, icq etc.) poate fi direcționat printr-un canal ssh criptat.

    • Situația cu parolele pentru arhive depinde în mod semnificativ de programul de arhivare. De regulă, niciun arhivator nu stochează parola pentru o arhivă în arhiva în sine. Practic, fișierul deja arhivat este criptat. Atacul principal asupra arhivatoarelor bazate pe parole este un atac cunoscut. în text clar, adică unul dintre fișierele de arhivă. Pentru cei mai cunoscuți arhivați, situația este următoarea: ARJ – nu este puternic, orice lungime a parolei poate fi spartă; ZIP nu este persistent decât dacă este utilizat AES; RAR - versiunile timpurii sunt vulnerabile, versiunea 3.0 și mai veche utilizează AES ca cifră și este destul de puternică, cu o parolă bună. În ceea ce privește Word și MS Office, situația este similară. Versiuni timpurii birourile sunt vulnerabile, iar parolele sunt ușor de spart. Versiunile programului, începând cu Office XP/2003, conțin posibilitatea de a seta o parolă mai mult sau mai puțin puternică pentru deschiderea fișierelor, dar parola implicită este de 40 de biți, ceea ce este foarte periculos.

    • Problema unei politici competente de parole nu este simplă. Trebuie spus că viteza și posibilitatea forțarii brutale a parolelor depind în mare măsură de cine selectează ce parolă. De exemplu, dacă atacatorul cunoaște bine autorul parolei, atunci după ce a încercat aproximativ 20 de opțiuni (de exemplu, numărul mașinii, numele soției, zilele de naștere sau numărul de telefon), atacatorul poate reuși. De asemenea, trebuie remarcat faptul că un numar mare de programele primesc parolele în text clar, ceea ce face interceptarea mai ușoară. Viteza forței brute a parolei depinde în mare măsură de aplicația pentru care este realizată. Aplicația poate conține protecție împotriva forței brute, ceea ce va îngreuna procesul de forță brută, dar nu trebuie să uităm că un atacator poate fura baza de date cu parole și o poate fura cu ușurință cu forța brută acasă, pe computerul său. Cu toate acestea, viteza de căutare poate ajunge uneori la zeci de milioane de opțiuni pe secundă. Aceasta înseamnă că o parolă de 5 caractere este foarte slabă. Este ușor de calculat că pentru o astfel de viteză și alfabetul latin de litere mari și mici (52 de caractere), timpul pentru a forța complet o parolă de 10 caractere va fi (52^10)/10000000/3600/24/365 = 458 ani. Pentru 6 caractere timpul va fi de 33 de minute! Cum să alegi parola buna vezi articolul separat.

    • Dacă abordați cu înțelepciune problema asigurării securității punctului de acces sau a canalului WiFi, atunci problemele pot fi evitate. Cert este că protocolul WEP (Wired Equivalent Privacy), un protocol de securitate a rețelei fără fir IEEE 802.11 învechit, are vulnerabilități semnificative și utilizarea lui în practică nu este strict recomandată. WEP a fost dezvoltat pentru prima dată ca înlocuitor pentru protocol WPA, iar apoi protocolul WPA2. Pentru a asigura un nivel adecvat de securitate a rețelei wireless, se recomandă utilizarea protocolului WPA2, modul Criptare AESși modul de autentificare sau PSK (cheie pre-partajată) pentru uz personal sau autentificare EAP. Pentru mai multe informații despre protocoalele de securitate pentru rețelele Wi-Fi, consultați articolul Wi-Fi - protejarea rețelelor wireless. În orice caz, atunci când utilizați punct public acces chiar și folosind WPA - aveți grijă să nu transmiteți informații confidențiale în text clar.

    • SSL/TLS este un protocol complex pentru schimbul de informații securizate. Acest protocol se bazează pe autentificarea reciprocă sau unidirecțională a părților. Cheia folosită pentru criptarea informațiilor transmise este generată pe baza datelor aleatorii și a datelor utilizatorului (versiunea browserului, datele certificatului etc.) la ambele capete ale rețelei de comunicații.

    • Este periculos! În această situație, două cazuri sunt posibile. Prima, cea mai comună și mai puțin periculoasă. Cedați în fața obiceiului rusesc de gratuitate sau pur și simplu din incapacitate, proprietarii site-ului nu s-au obosit să producă certificatul corect și să-l reînnoiască în mod corespunzător. În schimb, au produs un certificat autosemnat și l-au instalat pe site (de obicei este și expirat). Acest lucru se datorează faptului că pentru a produce un certificat corect (valid), acesta trebuie să fie semnat la o Autoritate de Certificare, iar acest lucru, de regulă, costă bani. Iar al doilea, mai mult caz periculos. Există un atac asupra Protocolul TLS folosind metoda de atac Man-in-the-middle. Atacul se rezumă la faptul că atacatorul falsifică serverul de destinație (de exemplu, gmail.com), își folosește propriul certificat autosemnat sau pur și simplu „incorect” și ți-l oferă ca certificat de server. Dacă ignorați avertismentul browserului cu privire la pericol și sunteți de acord să începeți o sesiune TLS, începeți să comunicați cu computerul atacatorului printr-un canal aparent securizat și îi spuneți toate „parolele și autentificarea” dvs.

    Mediul de programare vizuală C++ BUILDER 6 a fost ales ca instrument principal pentru dezvoltarea software.

    C++ BUILDER 6 este o combinație a mai multor tehnologii importante:

    Compilator de înaltă performanță în Codul mașinii;

    Model de componente orientate pe obiecte;

    Construcție vizuală (și, prin urmare, de mare viteză) a aplicației.

    Compilatorul încorporat în C++ BUILDER 6 oferă performanța ridicată de care aveți nevoie pentru a construi aplicații. Acest compilator este în prezent cel mai rapid din lume. Oferă ușurință de dezvoltare și timp rapid verifică blocul de program finalizat și, în același timp, asigură calitatea codului. În plus, C++ BUILDER 6 permite o dezvoltare rapidă fără a fi nevoie să scrieți inserții C sau să codați manual (deși acest lucru este posibil). În timpul procesului de construire a unei aplicații, dezvoltatorul selectează componente gata făcute dintr-o paletă de componente, ca un artist care face mișcări mari de pensulă. Chiar înainte de compilare, el vede rezultatele muncii sale - după conectarea la sursa de date, le puteți vedea afișate pe formular, puteți naviga prin date, le puteți prezenta într-o formă sau alta. În acest sens, proiectarea în C++ BUILDER 6 nu este mult diferită de proiectarea într-un mediu interpretativ, dar după compilare obținem cod care rulează de 10 până la 20 de ori mai rapid decât același lucru făcut folosind interpretul. În plus, compilatorul este diferit de compilator. C++ BUILDER 6 se compilează direct în codul mașină nativ. În timp ce există compilatoare care transformă un program în așa-numitul cod p, care este apoi interpretat p-mașină virtuală. Acest lucru nu poate decât să afecteze performanța reală a aplicației finite. Modelul orientat pe obiecte al componentelor software se bazează pe reutilizarea maximă a codului. Acest lucru permite dezvoltatorilor să construiască aplicații foarte rapid din obiecte pre-construite și, de asemenea, le oferă posibilitatea de a-și crea propriile obiecte pentru mediul C++ BUILDER 6. Nu există restricții privind tipurile de obiecte pe care dezvoltatorii le pot crea. Într-adevăr, totul în C++ BUILDER 6 este scris în C++, astfel încât dezvoltatorii au acces la aceleași obiecte și instrumente care au fost folosite pentru a crea mediul de dezvoltare. Ca urmare, nu există nicio diferență între obiectele furnizate de BORLAND sau de terți și obiectele pe care le puteți crea. Livrarea standard a C++ BUILDER 6 include obiecte de bază care formează o ierarhie bine aleasă.

    Cerințe pentru programul în curs de dezvoltare:

    1. Grafică convenabilă interfața cu utilizatorul(GUI)

    2.Ușor de utilizat

    3. Asigurați criptarea tuturor tipurilor de fișiere

    4. Funcționare fiabilă

    5. Cost redus

    6. Abilitatea de a schimba și adăuga

    7. Disponibilitatea unui sistem de ajutor

    20 mai 2017 La festivalul de prelegeri științifice TEDx din Novosibirsk, Leonid Kaganov a susținut o prelegere interesantă despre istoria criptografiei și, în consecință, istoria apariției și dezvoltării criptomonedei.

    De la mașini de criptare la e-mail criptat, browserul Tor și, în sfârșit, criptomoneda.

    Când apare videoclipul prelegerii, îl vom adăuga aici, dar deocamdată iată o transcriere ilustrată a prelegerii. Bucurați-vă!

    TEDx despre criptografie

    Cea mai strălucită industrie, tehnologia viitorului, nu este deloc IT, nu tehnologia computerizată, ci criptografie.

    În general, întreaga știință a criptării este un basm atât de frumos pe care un amator îl poate spune amatorilor și va rămâne în continuare frumos și plin de acțiune. Și ți-o voi spune.

    De fapt, tehnologia computerelor își datorează nașterea și criptografiei. Și toată povestea echipamente informatice- despre modul în care unii voiau să corespundă în secret, în timp ce alții voiau să o citească.

    Primele cifruri au apărut în urmă cu câteva mii de ani, de exemplu, așa-numitul cifru Caesar. Din punct de vedere criptografia modernă Acesta a fost epoca de piatra, iar ceea ce i-a salvat de la decodare nu a fost nici măcar lipsa de matematică a adversarilor, ci de multe ori pur și simplu lipsa lor de alfabetizare.

    Primele computere arătau ca niște monștri încinși, alimentați de motoare electrice, iar mai târziu – alimentați de tuburi radio. Au apărut în timpul celui de-al Doilea Război Mondial în Marea Britanie la baza secretă Bletchley Park - celebrul Alan Turing a lucrat într-un grup de matematicieni.

    Scopul lucrării a fost unul: deschiderea codului Wehrmacht Enigma și citirea radiogramelor din sediul fascist.

    Germanii știau cu siguranță că creierul uman nu era capabil să treacă prin toate combinațiile și să rupă acest cod. Și aveau perfectă dreptate. Pur și simplu nu știau că creierul ar putea fi electronic.

    Deși era timpul să știm: la urma urmei, polonezii au fost primii care au descifrat cifrul Enigma încă din 1932 cu ajutorul scurgerilor, teoriei matematice și construcția unui dispozitiv special de decriptare. Dar inginerii germani au complicat pur și simplu codul Enigma. Am refăcut totul și asta nu se va mai întâmpla.

    Să ne amintim acest moment, pentru că întreaga istorie a criptografiei constă din expresiile „am refăcut totul și acest lucru nu se va întâmpla din nou” - de acum înainte toată lumea va repeta acest lucru, călcând constant pe aceeași greblă.

    Dar să revenim la Enigma. Au învățat să încalce codul - semnalele auzite de operatorii radio au zburat către Bletchley Park și s-au întors la sediul coaliției anti-Hitler sub forma unor planuri transparente, rapoarte și rapoarte ale comandamentului german.

    Și există o părere că aceasta este ceea ce a determinat în cele din urmă victoria Aliaților și înfrângerea lui Hitler. Deși există motive să credem asta, să spunem ușor, nu numai. Dar pentru civilizație, ideea în sine este valoroasă aici: că victoria asupra răului lumii poate fi ascunsă în motoare și lămpi care stau într-un hambar îndepărtat din spate - există ceva cu adevărat tolkienesc în asta.

    În orice caz, toată lumea și-a dat seama că computerul este o mare forță. Și nu doar pentru a citi corespondența altora. Cu toate acestea, Turing nu a primit prea multă recunoștință din partea contemporanilor săi: condamnat pentru că avea o orientare sexuală netradițională, a fost condamnat în Marea Britanie la castrare chimică și s-a sinucis.

    Pe măsură ce anii au trecut, cifrurile au devenit mai complexe, iar metodele de spargere au devenit mai sofisticate. Dar, până la un anumit punct, a existat opinia că, dacă s-ar acumula suficient material (depeșuri interceptate) și s-a acordat suficient timp, atunci inteligența de stat cu ajutorul supercalculatoarelor ar sparge orice cod. Și, ca ultimă soluție, există întotdeauna o veche operațiune specială îndrăzneață: puteți aresta operatorul radio, puteți captura sediul inamicului cu coduri din spate, puteți trimite spionului un ofițer de informații amețitor - în general, în orice fel, să furați sau obligă-l să renunțe la cod. „Am reluat totul, iar asta nu se va mai întâmpla...”

    Dar în 1977 a apărut o problemă - a apărut o nouă generație de criptare: criptarea asimetrică RSA(pe numele de familie ale dezvoltatorilor: Rivest, Shamir, Adleman). Nerușinarea noii metode era că depeșele nu trebuiau nici măcar să fie ascunse: puteau fi conduse complet deschis prin canale deschise, lasă inamicul să asculte, nu va putea acumula niciun material. Pentru că principala răutate era că noua generație de cifruri nu avea o cheie pe care două persoane trebuiau să o cunoască - expeditorul și destinatarul. (La urma urmei, după cum ne amintim din proverb, dacă doi oameni știu, la fel și un porc).

    Cheia de decriptare era acum păstrată într-un singur loc - în biroul îndepărtat al unui Hitler imaginar îndepărtat, destinatarul criptării. Și expeditorul pur și simplu trimite câteva gunoiul informativ, pe care nici el însuși nu l-ar putea descifra dacă ar vrea. Daca expeditorul este prins, jefuit sau recrutat, tot nu are parola si nu a avut niciodata, stie doar sa trimita. Și tu, serviciile speciale, poți trimite și tu. Și orice persoană din lume poate scrie un cod unui Hitler imaginar îndepărtat și numai Hitler îl va citi. Serviciile de informații s-au încordat: cum este posibil acest lucru, este împotriva logicii? Dar matematica a răspuns: acest lucru este acum posibil.

    Și acum ne vom da seama cum. Pentru a nu intra în matematică complexă, ne vom mulțumi cu una simplă: imaginați-vă că în matematică în lumea noastră nu există operație de împărțire, ci doar înmulțire.

    Algoritmul RSA, la cererea dvs., generează o pereche aleatorie de două chei. De exemplu, acestea sunt numerele: 5 și 0,2 Desigur, puteți ghici că nu sunt aleatorii. Dar, pur exterior, au destul de puține în comun. Una dintre aceste chei este deschisă: 5. Puteți să o scrieți pe garduri, să o publicați în ziare și să vă semnați scrisorile de hârtie cu ea: se spune că oricine vrea să-mi trimită un cod criptat trebuie pur și simplu să înmulțească fiecare cifră (sau număr de literă) cu 5. Iar cea închisă jumătate - 0,2 este ținut secret doar de tine. Când primești numere codificate de la interlocutorii tăi, pur și simplu le înmulți cu 0,2 și obții o decriptare!

    Cum văd observatorii corespondența? Au citit pe gard cheia ta publică 5. Și nu le-a dat nimic. Au pătruns în secretul corespondenței și văd că vin la tine fluxuri de numere criptate înmulțite cu 5... Ei bine, s-ar părea că este suficient să împărțim înapoi la 5, dar ne amintim: în matematica lumii noastre convenționale nu există diviziune. Nu există o astfel de operație inversă pentru înmulțire! Există un multiplicator secret de 0,2, dar nu poate fi ghicit. Rezultatul: în fața lumii întregi, oricine poate cripta informații cu o cheie publică pentru destinatar - proprietarul celei de-a doua jumătăți a cheii. Dar nici expeditorul însuși, nici telespectatorii ocazionali, nici serviciile de informații nu vor putea să o descifreze.

    În timp ce serviciile de informații decideau cum să facă față acestei probleme a spionilor guvernamentali și a operatorilor radio militari de acum înainte, internetul a sosit și mulțimi uriașe s-au înghesuit la el. oameni normali. Și în 1991, programatorul Philip Zimmerman a scris un program PGP în care a dat criptare RSA tuturor pentru corespondența electronică care nu poate fi deschisă...

    Din timpuri imemoriale, serviciile de informații din SUA – ca orice serviciu de informații din orice țară – și-au luat în considerare dreptul legal de a citi toată corespondența cetățenilor. În interesul statului, desigur, cu un motiv. Iar în deceniile postbelice li s-a părut că au primit în sfârșit o asemenea oportunitate și așa va fi mereu de acum înainte. Prin urmare, programul PGP a fost perceput ca o palmă teribilă în suflet. Și au fost atât de supărați încât au încercat mai întâi să-l bage pe Zimmerman în închisoare. Indignarea serviciilor de informații a fost complet sinceră și de înțeles uman.

    Dar a rămas un mister pentru oameni: după ce lege merita pedeapsa penală un matematician nevinovat care a făcut un fel de cod? Și cum poți chiar interzice unei persoane să cripteze ceva - corespondența mea cu amanta mea, de exemplu? Ce vreți să spuneți, agențiile de informații, chiar ați plănuit să o citiți? Ca urmare, cazul a fost închis, Zimmerman a rămas liber, iar astăzi civilizația este de neconceput fără criptare: toate băncile, toate cardurile de plată, toate semnăturile electronice și chiar toate site-urile care încep cu https - toate folosesc aceste principii.

    Următoarea etapă în criptoistorie a început în 2002, când Laboratorul de Cercetare al Marinei SUA a decis să-și declasifice dezvoltarea: sistemul Tor, care permite utilizatorilor să navigheze pe Internet criptat, rămânând nedetectabili- toate pachetele trec printr-un lanț aleatoriu de servere Tor în țări și continente imprevizibile și este imposibil să aflați cine a trimis pachetul și de unde. Acest lucru a permis, de exemplu, unui ofițer de informații din Uganda să trimită un raport ambasadei din Copenhaga fără ca nimeni din Uganda să știe despre asta.

    Putem spune că în 2002 a luat naștere al doilea Internet: complet anonim și criptat. Cu site-urile lor, spioni și fapte murdare. Marina SUA a regretat profund crearea sa, dar era prea târziu - tehnologia ajunsese la oameni. Și un an mai târziu a apărut I2P (proiect de internet invizibil) - o tehnologie aproximativ similară și a devenit complet trist.

    În 2008, a izbucnit o nouă eră: criptografia a atacat cel mai sacru lucru - banii. Ceea ce a fost întotdeauna sub controlul statului - a tipărit bani, a depozitat și a distribuit. A apărut prima criptomonedă - Bitcoin. Bani electronici pe baza principiilor de criptare. Bitcoin nu are bancă. Sunt peste tot și nicăieri în același timp: o bancă este o rețea globală de proprietari de portofel, în care poate intra oricine. Bitcoin-urile nu pot fi tipărite în cantitatea necesară: se nasc după propriile legi, și numai din cei care le donează pe ale lor. putere de calcul. Bitcoin-urile nu sunt susținute de nimic - dar chiar și dolarii nu au fost susținuți de mult de nimic în afară de cererea lor. Și Bitcoin-urile nu pot fi capturate și nici un supercomputer nu poate înțelege cifrul - întreaga rețea Bitcoin în sine este ocupată cu exact asta: încercări continue de a găsi cifrul.

    Fiecare nouă tranzacție de plată necesită ghicirea unui nou cod. Toate computerele din lume (mai târziu - unități de calcul speciale care pot face doar asta) sunt ocupate doar cu asta: încercări epuizante de a găsi un cod. La urma urmei, cel care face asta primul va avea automat un nou Bitcoin născut în portofel din vid. Și de-a lungul anilor, prețul său s-a strecurat de la bănuți la o mie și jumătate de dolari și nu se va opri... Ce supercomputer este capabil să capteze o rețea a cărei putere este suma tuturor calculatoarelor aflate în mâinile populației , ca să nu mai vorbim de oamenii de afaceri care au construit hangare nesfârșite pline cu unități de calcul nesfârșite?

    Criptomoneda a uimit nu numai serviciile speciale și serviciile de informații, ci și bancherii. Cu toate acestea, creatorul Bitcoin a învățat lecțiile lui Turing și Zimmerman: matematicienii criptografici nu ar trebui să se bazeze pe recunoștința contemporanilor lor. Și-a ascuns cu succes numele, prezentându-se ca un anume japonez Satoshi Nakamoto și încă nu se știe dacă este o persoană sau un grup. Există chiar și o glumă pe care a inventat-o ​​Bitcoin inteligenţă artificială, care s-a autogenerat cu mult timp în urmă și este prezent în secret în lume - avea nevoie de tranzacții financiare și le-a inventat.

    După Bitcoin, au apărut imediat și alte criptomonede, iar numărul lor astăzi este uriaș., deși Bitcoin este încă punctul de referință. Concluzia: există o monedă accesibilă în lume care nu poate fi nici interzisă, nici controlată și este cea mai valoroasă monedă din lume - cu o valoare nominală de o dată și jumătate față de dolarul și euro.

    Criptomoneda cu cea mai rapidă creștere este Ethereum. Se ia în considerare experiența criptomonedelor anterioare și se introduc o mulțime de lucruri noi. De exemplu, contractele inteligente. Acesta este un fel de program care trăiește în mediul criptomonedei și se execută singur atâta timp cât există suficiente fonduri pentru a-l alimenta. În practică, aceasta înseamnă că este posibil să se organizeze o instituție virtuală - de exemplu, o loterie zilnică. Sau o agenție de asigurări care va plăti despăgubiri în cazul unui cutremur, după ce a aflat în mod independent din ziare că a avut loc un cutremur în zona dumneavoastră. Ideea este că în acest moment lumea a făcut primul pas către apariția inteligenței artificiale. Pentru că anterior în munca de birou existau persoane fizice și juridice, iar epoca contractelor inteligente deschide un nou concept: chip virtual. Care există pe toate computerele din lume și, în același timp, nicăieri (și, prin urmare, invulnerabil), efectuează tranzacții financiare conform programului său și este dincolo de controlul oricui, chiar și al creatorilor săi - este imposibil să oprești sau să schimbi un smart care rulează. contracta.

    Înțelegem deja că criptografia nu se va opri aici. Cum va fi următoarea epocă? Ce șoc nou ne va aduce criptografia? Nu putem presupune încă acest lucru, pentru că ea atacă întotdeauna pe neașteptate - de unde nimeni nu se așteaptă.

    Mai mult, aceasta nu poate fi nașterea unui nou internet sau monedă necontrolată, ci o lovitură pentru tot ce este vechi. Deoarece rețelele de internet, rețelele bancare și toate părțile tuturor economiilor - sunt ținute de un fir subțire de criptare care nu poate fi încă rupt. Dar este foarte posibil ca mâine să existe un computer cuantic sau o teorie matematică care să permită spargerea cifrurilor moderne. Și apoi nu numai rețeaua Bitcoin, ci și parola dvs. de Facebook, și cartela SIM cu operatorul, și cardul de credit, și banca care a emis-o se vor deschide la toate vânturile.

    Există două scenarii de viitor: pesimist și optimist. Pesimiștii cred că apariția bruscă a unui computer cuantic va doborî majoritatea sistemelor moderne de criptare. Și atunci civilizația se va prăbuși, trecând imediat fără comunicații, schimburi, bănci și tot ce se bazează pe criptografie. Scenariul optimist consideră că știința criptografiei este invulnerabilă ca teorema lui Pitagora, va supraviețui computerului cuantic și altor încercări de a sparge codul și, în cele din urmă, ne va construi o societate fundamental nouă, inclusiv guvernarea electronică.

    Dar principala lecție pe care trebuie să o învățăm pentru noi înșine: lumea viitorului nu este o lume a materiei. Civilizația noastră nu învață cum să lucreze cu materia - lucrează din ce în ce mai mult cu informații. Dar informația are legi complet diferite.

    În urmă cu zece ani, eram un tocilar foarte progresist: am folosit un scaner de amprente în loc de o cheie la ușa apartamentului meu. Și am sperat că în timp voi merge mai departe și voi folosi un scaner retinian, iar apoi, iată, vor inventa scanere ADN și atunci cu siguranță voi putea dovedi că sunt exact eu.

    Dar au trecut zece ani, iar acum în mână, sub piele, am un mic cip electronic care răspunde la scaner cu un semnal radio criptat. El mărturisește că este exact cine este. Ceea ce înseamnă că am venit. Scanerele de amprente sunt de domeniul trecutului. Scanerele retiniene nu au devenit niciodată obișnuite. Scanerele ADN au apărut în filmele științifico-fantastice, iar copiii noștri vor râde de această naivitate. De ce? Lumea noastră a fost guvernată de multă vreme de legile criptografiei, nu de materie. De exemplu, ceva la fel de simplu ca compromiterea datelor... Cel mai ușor lucru de făcut este să-ți furi o dată paharul și să obții amprente și ADN. Și gata - atacatorul are acces la ușa seifului pe viață. Repetarea unui deget cu amprenta digitală în materie este o chestiune de tehnologie, mai ales în epoca dezvoltării imprimării 3D. Dar schimbarea amprentelor de pe mâini este o sarcină imposibilă. Spre deosebire de codul cipului, care poate fi reflashat cu ușurință.

    La Congresul Internațional al Hackerului din Germania, Jan Krissler, cunoscut sub numele de Starbug, a arătat cât de ușor este să falsești amprentele digitale din fotografii. El a reușit să creeze un model de lucru al vârfului degetului ministrului german al apărării, Ursula von der Leyen, din mai multe fotografii făcute cu o cameră bună la conferințe de presă și întâlniri.

    Am dat acest exemplu de lacăt pe o ușă pentru a sublinia ideea filozofică: probleme similare Până de curând, omenirii nu i-a trecut prin cap. Lumea a produs scanere cu degete pentru că suntem obișnuiți să ne considerăm unice pe noi înșine și corpurile noastre. Ideea de a-l folosi pentru a proteja informațiile părea promițătoare. Am fost învățați că informațiile pot fi copiate atât cât se dorește, dar nu contează - materia este unică prin definiție... Dar acum se dovedește că contrariul este adevărat! Lumea ajunge în punctul în care noi și corpurile noastre, mai devreme sau mai târziu, ne vom repeta și ne vom pierde valoarea. Dar informațiile vor rămâne unice. Nu oricare - criptat special pentru acest scop. Asta ne învață criptografia și ne conduce la această singularitate.