Bästa svaret
Precis som alla har olika fingeravtryck har digitala block på samma sätt antagit samma koncept och det heter SHA256 Hash.
Den utvecklades av NSA som skapar en unik identifierare för varje block och det finns många fördelar inklusive hög säkerhet och många lösenordsskyddsapplikationer använder samma för samma lösenord.
Den intressanta delen av SHA256 är att algoritmen är helt öppen och du kan till och med läsa om den i detalj i kapitel 1 i boken genom att klicka på länken nedan:
https://www.staff.science.uu.nl/~tel00101/liter/books/CryptCont.pdf
SHA256 är antalet bitar det tar i minnet. Hashvärdet är 64 tecken långt och det har alfabet och siffror som sträcker sig från [0-9] och [A-F]. Eftersom varje tecken upptar 4 bitar => 64 * 4 = 256 bitar information med hashvärde.
Denna hash kan användas för alla typer av dokument / videor / gifs / bilder eller andra saker du kan tänka dig handla om. Det skapar ett unikt hashvärde för allt som tillhandahålls.
Om du vill prova att skapa hashvärden för dina data och bara vill ha lite kul att lära dig det, navigera bara här. Om du nu försöker lägga till data till webbplatsen kommer du att märka att om dina data bara är 1 tecken långa eller 10M tecken långa ger SHA256 dig bara 64 tecken lång hash-värde som identifierar den texten unikt och med till och med en bokstavsändring i dina data, hash-värde ändras.
Om vi talar om kraven, finns det 5 krav för SHA256-algoritmen:
1. Det är ett sätt – dvs. du kan inte återställa data från hashvärdet.
2. Det är deterministiskt – dvs om du använder algoritmen för samma data igen får du samma hashvärde.
3. Snabb beräkning
4. Lavineffekten – dvs. om du tar samma data och gör en liten förändring som bara lite, kommer hashvärdet att vara helt annorlunda.
5. Det måste tåla kollisioner – dvs Om hashvärdet resulterar i samma för två olika data eftersom värdet är begränsat till 64 tecken.
Det handlar om SHA256-algoritmen, och om du vill lära dig mer, kolla in länken som jag har angett ovan.
Svar
Att förklara en offentlig-privat nyckelkoncept för någon som aldrig hört talas om det är ingen lätt uppgift. Jag gör det hela tiden med utvecklare och måste ganska mycket göra det här ett par gånger åtminstone. Författaren till den artikel / bok du hänvisar försöker bäst att förmedla innebörden av digital signatur och vanligtvis går alla vilse när vi säger att Hash är krypterad. Artikel- / bokutdraget är helt SANT. Låt mig försöka förklara med mina egna ord. Public-Key Encryption (aka Asymmetric Encryption) Om jag vill skicka en text / e-post till dig som jag inte vill att någon ska läsa, a) Jag får din publika nyckel b) Kryptera data c) Skicka den till dig. du får, du är ENDAST EN som har en privat nyckel a) Du kommer att Kryptera data med din privata nyckel Eftersom du kan dekryptera kan du nu läsa texten. Nu kan vi anta att det jag skickar dig är mycket viktigt (kan säga ett kontrakt att hyra eller köpa något eller gå med på att betala något) Bevisar den dekrypterade texten något som den faktiskt kom ifrån? även om från e-postmeddelandet säger att det är från mig. Jag kan helt enkelt ändra mig och hävda att jag ALDRIG har skickat det? Så fråga du behöver att fråga är ”Hur verifierar jag meddelandets integritet”? hur vet jag att det kom från ”rätt person”. Meddelandesammandragning: säkerställs vanligtvis genom att beräkna en ”envägshash” med MD5 (inte längre) SHA1 eller SHA2, etc. När du laddar ner programvara med öppen källkod ser du alltid meddelandets smältvärde. Om du verkligen vill veta källkoden yo du laddar ner ändras inte av någon, du måste beräkna filernas hash igen. Denna typ av bevisar att två filer är samma. (En uppladdad till Open source-webbplats och en som du laddade ner) Om jag beräknar Hash av min text och skickar den till dig separat, skulle du tro att meddelandet kom från mig? (tidigare exempel ..kontrakt att hyra, etc.)? Alla som kan skicka meddelandet ”spoofing as me” kan också skicka Hash. Så nu min digitala signatur eller integritet. Det enda sättet att bevisa att det kom från mig är att jag måste ha ”innehav” av den privata nyckeln för att göra något med det. Vad kan jag göra som kommer att visa dig a) Meddelandet ändras inte av någon (Om jag säger att du är anställd till $ 100 / tim men du får meddelandet som $ 50 eller $ 200) b) Det kom faktiskt från mig och jag kan inte ta tillbaka mitt ord c) Du borde kunna validera – Meddelandet är rent och inte manipulerat och kom från rätt person Lösning är digital signatur. använd fall igen: Jag skickar ett meddelande till dig som kan ha vissa kritiska uppgifter (som kontrakt att hyra eller köpa) och du vill se till att det kommer från mig och att ingen har modifierat uppgifterna. a) Jag tar meddelandet och genererar envägs Hash (meddelandesammandragning) -SHA1 (t.ex.) b) Jag tar One Way Hash och skapar en signatur med min privata nyckel- Detta bevisar att jag har den privata nyckeln.OBS: Jag använder inte ordet Kryptera här … i brist på någonting tror Signatur är en algoritm eller metod som tar (Hash-värde, Privat nyckel) för att producera ”Signatur”. c) Skicka meddelandet med ”Signatur” -Mottagare När du tar emot meddelandet, vill du se till att ingen ändras (så att du återskapar HASH-värdet med samma Digest-algoritm SHA1) och sedan använder samma Signaturalgoritm men den här gången med Public key (det är vad du har) Signatur (Hash (originalmeddelande), Public key) Detta ska ge dig ett värde som är samma som ett som genererades när meddelandet skickades med Signature. Nu kan du bevisa att meddelandets integritet inte äventyras (eftersom smältvärdet kommer att ändras om data ändras och därmed signaturvärdet kommer att ändras) I ditt VPN-fall är det paketen som är märkta med signaturvärde. NU Låt oss lägga till kryptering till denna mix. Om du inte vill att någon ska läsa meddelandet (..med Siganture kan du inte ändra mitt kontrakt att hyra till $ 100 men du kan säkert läsa för att veta att jag erbjuder dig $ 100) Ta mina uppgifter, jag kommer att ”Kryptera” med ” DIN ”offentliga nyckel Du kommer att få meddelandet och DECRYPT med” YORU ”privat nyckel. Hoppas det hjälper.