Quina diferència hi ha entre la codificació, el xifratge i el hashing amb exemples?


Resposta 1:
Quina diferència hi ha entre la codificació, el xifratge i el hashing amb exemples?

Codificació (francès):

Quina diferència hi ha entre la codificació, el xifratge i el hashing amb exemples?

Esclafit (md5, no segur. No s'utilitzeu per al codi de producció):

314cbba94323223d8dc03e382c6f906d

Xifratge (opensl aes-256-cbc -in message.txt -out password.enc -k password):

Salted__ ° `° ?? |?.? CCQ la UA ?????? ŒzÍNM4 ¢ A« / a ?? ????? Ni = x ^ ??? ?? NKÓg 9ß'ÛÎxOW¿é ??? ? ¬õ ?? ÈÂQÓ'P · | \? ± £ Re ??? ktÏÍ ÝÁ \ U

Explicació:

La codificació només és traduir informació a un format que un altre sistema pugui comprendre. Amagar informació no és la finalitat de la codificació, tot i que podria ser un efecte secundari si el sistema de destinació (tu) no coneix la codificació (aquí: francès). A més dels idiomes naturals, existeixen altres codificacions: Morse, Braille, Llenguatges de signes, Klingon, binari, json, xml ... Generalment no cal cap clau o contrasenya a més del coneixement de l'esquema de codificació.

El colpejat és millor en comparació amb la presa d'una empremta digital de les dades. Tant de bo sigui impossible de falsificar intencionadament una empremta dactilar (col·lisió deliberada de hash, trivial amb l’algorisme algorisme md5) i esperem que no massa persones comparteixin les mateixes empremtes dactilars (col·lisió accidental de hash, la probabilitat fins i tot amb md5 és

1:10611:10^61

). No es pot "desxifrar" un hash i sempre hi ha infinites parts diferents de dades que obtenen el mateix valor de hash.

El xifrat s’utilitza per ocultar el contingut d’un missatge a qualsevol que no sigui el receptor autoritzat. L’ideal seria sense el secret (també coneguda la contrasenya) el missatge xifrat hauria de semblar perfectament aleatori. Cal conèixer tant la codificació com el secret per desfer el xifrat. El xifrat no amaga el fet que es transmeti informació, que seria una esteganografia.


Resposta 2:

Quan codifiqueu una cosa, assigneu un valor a un altre. Es pot fer per ocultar informació o per comprimir-la.

Si voleu ocultar informació o, més exactament, alterar-la de manera que només les persones que haurien de ser capaços d’entendre-la puguin entendre-la, el codi ha de ser secret i només serà conegut per a les persones que haurien de poder entendre els missatges amb això hi ha codi. Tots els participants de la comunicació necessiten una taula que coincideixi amb els codis clau i el text de text corresponent. Podeu, per exemple, dir que "falcó" significa "atac al migdia". Així que si sou un líder militar i voleu que un oficial sàpiga atacar al migdia, però tem que l’enemic sigui interceptat pel missatge, podeu enviar la paraula “falcó” a l’oficial. Quan un enemic rep aquest missatge, no el pot donar sentit. L’oficial pot buscar què significa falcó i sap atacar al migdia. Aquest tipus de codificació era popular en èpoques anteriors, ja que és fàcil d'entendre i utilitzar. Però també és arriscat, ja que es poden llegir tots els missatges si un té el llibre de codis, de manera que si un enemic es fica amb el secret de totes les converses es perd. Un adversari també pot interceptar missatges i observar les activitats després de la recepció dels missatges. Si l'enemic en el nostre exemple intercepta tres missatges que contenen "falcó" i després que cada missatge sigui atacat al migdia, podria intuir què significa "falcó".

L’altre ús de la codificació és escurçar missatges. Es necessita temps i costa diners per transmetre informació, de manera que com més curt sigui un missatge, millor. Els telegràfers utilitzaven determinades paraules per codificar frases. Tots tenien llibres de codis que els explicaven quina paraula significa la frase. De la mateixa manera els ordinadors moderns utilitzen codificació. Tot el que un ordinador entén és actual o no actual, que sovint es representa com a 1 i 0.

Ara mireu la lletra “a”. Podríeu enviar-lo com a imatge, un mapa de píxels. (En rigor, això també és codificació.) Però es necessita moltes dades per enviar una imatge. Diguem que cada píxel té un bit. Així que si voleu enviar “a” com a imatge amb la mida de 10 píxels per 10 píxels, necessiteu 10 × 10 = 100 bits per enviar un caràcter. I si mostreu la imatge a una mida més gran, la qualitat és realment dolenta.

Per solucionar aquest problema es van desenvolupar estàndards de codificació. Un d’ells és ASCII. Utilitza 7 bits per caràcter, de manera que pot codificar 2 ^ 7 = 128 caràcters. Una minúscula a està codificada com 1100001, o 97 en decimal. De manera que només heu d’enviar 7 bits per a un caràcter. L’ordinador té una taula emmagatzemada que indica que 1100001 significa “a”. Per descomptat, no hi ha cap "a" a l'emmagatzematge d'un ordinador, però emmagatzema informació sobre com mostrar una. Aquest és un altre tipus de codificació.

El propòsit del xifrat és portar la informació a un formulari que ningú no pot comprendre. Només si s'aplica una certa clau a la informació, es pot tornar a convertir en text complet. Per tant, necessiteu una clau per xifrar les dades i una per xifrar-la. Aquesta pot ser la mateixa clau (per a xifratge simètric) o dues claus diferents (per a xifrat asimètric). Per descomptat, una "clau" no és un objecte físic, sinó dades. Una bona analogia per al xifratge simètric és la porta d’una casa. Podeu sortir de la casa, bloquejar-la i, posteriorment, tornar-la a desbloquejar amb la mateixa clau.

El xifrat asimètric és una mica més complicat. Us podeu imaginar una caixa amb un cadenat obert. Podeu posar informació a la caixa i bloquejar-la bloquejant el cadenat. Però necessiteu una clau diferent per desbloquejar el cadenat. (Tancar el cadenat també es considera clau.)

Això s’utilitza molt en sistemes informàtics moderns, per exemple en xifrat RSA. El "cadenat" és una clau pública accessible a tothom. Però aquesta clau només es pot utilitzar per xifrar les dades. Només la persona que tingui la clau privada corresponent pot desxifrar-la. Per tant, el banc us pot enviar la seva clau pública, xifrar-la amb dades confidencials i enviar-les les dades xifrades. A continuació, li apliquen la seva clau privada i la poden llegir.

El xoc és diferent de la codificació i el xifrat. Una funció hashing és una anomenada funció unidireccional. Això vol dir que no hi ha manera de saber què va ser l’entrada mirant la sortida. No hi ha cap clau ni cap llibre de codi. Podeu posar les dades a una funció d'atzar, que s'escorça i s'escurça. Les funcions de descàrrega populars són diferents versions de SHA (algorisme d'alcoratge segur), com ara SHA-256 i SHA-512, per exemple.

Podia posar el paràgraf anterior en una funció de tracció i em retornaria una cadena de bits fixa. Sovint es representa en hexadecimal, perquè és més fàcil de llegir per als humans. Per tant, el paràgraf anterior ha estat:

1738a57f9e9176b109fc172902aaf2b6

No hi ha manera de saber quina va ser l’entrada, tret de provar possibles entrades fins que un coincideixi amb aquest valor de hash. I fins i tot llavors podria ser diferent de l’entrada original.

Com és útil això? Una de les propietats de les funcions hash és que un lleuger canvi en l’entrada comporta una sortida completament diferent. Es pot utilitzar per verificar la integritat de les dades. Si tan sols es canvia un bit i les dades es tornen a hash mitjançant la mateixa funció, la sortida serà completament diferent.

Un altre ús del mateix és emmagatzemar contrasenyes. Si inicieu la sessió en un compte, el proveïdor de serveis ha de comprovar si el vostre nom d’usuari i la vostra contrasenya coincideixen. Una manera de fer-ho és emmagatzemar la vostra contrasenya en una base de dades. Després, envieu el vostre nom d’usuari i la vostra contrasenya i comprova si la contrasenya coincideix amb la que s’emmagatzema a la base de dades. Això funciona bé, però si alguna persona maliciosa obté accés a la base de dades, té accés a tots els comptes. I perquè moltes persones utilitzen les mateixes contrasenyes per a molts comptes, també tenen accés a aquests comptes. Això és una cosa que, certament, no vol passar.

Però podeu contrasenyes hash abans d’emmagatzemar-les. Si l’usuari torna a enviar la seva contrasenya, també hash d’aquesta entrada i la compara amb la contrasenya hash de la base de dades. Si coincideixen, l’usuari guanya accés.

Ara, si es pirateja la base de dades, els hackers no poden donar compte de les dades que van robar. S'ha evitat la catàstrofe de seguretat.

Gràcies per llegir. Espero que això us pugui donar una visió general dels temes.


Resposta 3:

ENCODING és informació transcrita a un altre idioma, en general amb un resultat més curt, però totalment reversible. No s’utilitza cap clau secreta ni pública. Es podria fer servir, és a dir, per empaquetar informació en un format més curt, però recuperable al 100%

ENCRIPTURA és informació que codifica amb l’assistència de qualsevol clau perquè només els autoritzats puguin recuperar les dades originals. Normalment la clau es comparteix entre el xifrador i el costat del desxifrador. S'utilitza per assegurar la confidencialitat de les dades emmagatzemades o transmeses.

HASHING és una espècie d’empremta digital d’una informació que serveix per controlar la integritat (sense canvis patits) de les dades. En general, un hash és més curt que la informació original, té una longitud fixa (només de centenars de bits) i irreversible, sota altres propietats útils.


Resposta 4:

Diguem que tenim sentència: Atac a l'alba.

La codificació es substitueix per codis. Vosaltres i jo compartirem algun llibre de codis amb reemplaçaments de codi. Like Attack -> XXWD, Dawn -> GHHT, així que t'enviaré GHHT XXWD senzill. Veus que no cal que hi hagi codi per a totes les paraules de l’oració, però entendràs el significat.

Xifrar és assegurar aquesta frase mitjançant algun algorisme de xifrat que funcionarà per a totes les oracions possibles. Vosaltres i jo compartiríem la llista de claus i algun algorisme. Així que puc enviar-vos alguna cosa així com: id eilbb qiloc ho posareu a través d’un algorisme de desxiframent i en sabreu el significat.

El xoc és alguna cosa completament diferent. Els hashes s'utilitzen per detectar canvis en les dades (text). Tenen aquestes propietats que fins i tot un petit canvi en el text d’entrada provocarà un gran canvi en la sortida de hash. Però en definició són irreversibles. Per tant, no podeu obtenir el text original de l'hash. Com a molt, podeu obtenir text que tingui el mateix valor de sortida.