Dit is de eerste post in een 3-delige serie op basis van cryptografie. De reeks wordt als volgt geschetst:
symmetrische encryptie
gegevensintegriteit & geverifieerde encryptie
asymmetrische encryptie met publieke/Private sleutelparen
duiken in de wereld van de informatica kan een ontmoedigende taak zijn. Vooral alleen!, In deze blog serie, Ik zou graag een high-level overzicht over de basisprincipes van cryptografie bieden voor degenen die op zoek zijn om verder te graven in het onderwerp die niet per se weten waar te beginnen. Dit overzicht is specifiek gebaseerd op mijn belangrijkste afhaalmaaltijden van Stanford ‘ s cryptografie I cursus zoals onderwezen door Dan Boneh, beschikbaar op Coursera.
Ik besloot deze cursus te volgen omdat ik een blockchain ontwikkelaar ben die niet van een traditionele comp-sci achtergrond komt. Ik studeerde economie op de universiteit, maar draaide meer naar computerprogrammering als ik mijn carrière begon., Sinds ik begon met programmeren, ben ik op een missie geweest om “dichter bij de computer” te komen — om de abstractielagen die ik als webontwikkelaar heb genoten, terug te pellen en te begrijpen wat er onder de motorkap gebeurt. De overgang naar cryptogeld en gedistribueerde systemen van web development is een wilde en prachtige stap in die richting in vele opzichten, niet in het minst van die werd steeds meer vertrouwd met de concepten van cryptografie. Echter, Ik wilde een meer solide basis., Omdat het nogal een uitgestrekt gebied, Ik dacht dat het de moeite waard was om $70 te laten vallen om deze informatie te consumeren in een forum speciaal samengesteld uit Stanford University. U kunt deze cursus ook controleren zonder Gratis opdrachten in te dienen. De wonderen van het internet!
laten we beginnen.
in wezen is cryptografie de praktijk van veilige communicatie in de aanwezigheid van potentiële tegenstanders van derden. Het concept van veilige communicatie bestaat uit twee belangrijke punten:
beveiliging tegen afluisteren: dit garandeert de vertrouwelijkheid van gegevens.,
beveiliging tegen datamanipulatie: dit garandeert dataintegriteit, wat betekent dat niemand de gegevens die u hebt verzonden kan manipuleren en de ontvanger kan misleiden om de gemanipuleerde gegevens als geldig te accepteren.
vertrouwelijkheid van gegevens wordt bereikt door encryptie, die twee vormen kan aannemen: symmetrisch en asymmetrisch.
symmetrische versleuteling gebruikt één sleutel die gedeeld moet worden tussen alle deelnemers die communiceren.
asymmetrische versleuteling gebruikt persoonlijke sleutels., Elke deelnemer heeft zijn eigen publieke sleutel en privé sleutelpaar om berichten te versleutelen en te decoderen tijdens het communiceren.
(Opmerking: deze blogpost zal het hebben over cryptografie in de context van symmetrische encryptie. In een follow-up post, duiken we in asymmetrische encryptie.)
Data encryptie: twee typen versleuteling
versleuteling zorgt voor vertrouwelijkheid van gegevens en omvat twee belangrijke componenten:
Een geheime sleutel: In het kader van symmetrische versleuteling kunnen we aannemen dat onze deelnemers, Alice en Bob, een gedeelde geheime sleutel hebben.,
een cipher: een set algoritmen, een voor encryptie en een voor decryptie.
het is belangrijk op te merken dat de encryptie-en decryptie-algoritmen publiekelijk bekend zijn. Het enige geheim is de sleutel.
twee soorten cijfers zijn stream-en blokcodes. Een potentiële voorwaarde voor een adequaat begrip van beide cijfers is kennis van bitwise operaties (operaties uitgevoerd op bits). Meer specifiek, het concept van exclusieve-or (XOR). Ik vond deze blogpost om een zeer duidelijke uitleg van bitwise operaties te geven., Of u kunt proberen om het concept van XOR te begrijpen met behulp van de foto hieronder. In principe worden twee bits gecombineerd en als ze verschillend zijn (één 0 en één 1) resulteren ze in 1, en als ze hetzelfde zijn, (beide 0 ’s of beide 1′ s) resulteren ze in 0. Vanaf nu ga ik ervan uit dat de lezer het concept van XOR begrijpt en dat de universele notatie voor XOR is: ⊕
Stream Cipher
een stream cipher is een symmetrische sleutel cipher waar de platte tekst (in bytes vorm) beetje bij beetje XOR ‘ D wordt met de sleutel (ook in bytes vorm) om de versleutelde versleuteling te produceren., Hetzelfde proces wordt gebruikt om de versleutelde tekst te decoderen. Gezien de aard van de XOR operatie, als we XOR de versleutelde tekst met de sleutel, resulteert dit terug met de originele platte tekst.