Różnica między kodowaniem a szyfrowaniem


139

Jaka jest różnica między kodowaniem a szyfrowaniem?


5
Jako pierwsze przybliżenie, szyfrowanie używa klucza, kodowanie nie.
Prezydent James K. Polk

Jeśli odszyfrujesz zaszyfrowane dane goot job, ale jeśli odszyfrujesz zaszyfrowane dane bez znajomości klucza secet, Brawo dla ciebie, zhakowałeś go.
Sujeet Agrahari

1
Kodowanie jest jak tłumaczenie języka A ​​na język B, tak aby osoby znające język B łatwo go zrozumiały. Szyfrowanie to jak tłumaczenie z języka A ​​na język B w taki sposób, że tylko określone osoby znające język B go zrozumieją, zwykle podajesz im drogę przed rozpoczęciem tłumaczenia, może metodę lub klucz… jak traktuj Granat jak granat.
Sujeet Agrahari

Odpowiedzi:


177

Kodowanie przekształca dane do innego formatu przy użyciu schematu, który jest publicznie dostępny, aby można go było łatwo odwrócić.

Szyfrowanie przekształca dane na inny format w taki sposób, że tylko określone osoby mogą odwrócić transformację.

Podsumowanie -

Kodowanie służy do zachowania użyteczności danych i wykorzystuje schematy, które są publicznie dostępne.

Szyfrowanie służy do zachowania poufności danych, a tym samym możliwość odwrócenia transformacji (klucze) jest ograniczona do określonych osób.

Więcej szczegółów w SOURCE


3
Czy traktujesz „dokument z publicznym kluczem do podpisu” jako kodowanie czy szyfrowanie? :)
Jarod42

@ Jarod42 Podpis cyfrowy nie jest ani szyfrowaniem, ani kodowaniem dokumentu, ponieważ oryginalne dane nie mogą być z niego odzyskane.
Thilo,

1
„używając schematu, który jest publicznie dostępny” - szyfrowanie z pewnością wykorzystuje schematy, które są również publicznie dostępne, w rzeczywistości każdy schemat kryptograficzny na swoją wagę jest zawsze publicznie dostępny (tj. nie ma backdoorów, jak w oczach opinii publicznej). Część, która nie jest publicznie dostępna, to sekrety potrzebne do rozszyfrowania danych, a nie rzeczywisty schemat / algorytmy (np. RSA, DH itp.).
PragmaticProgrammer

32

Kodowanie to proces przekształcania danych w taki sposób, aby można je było bez niebezpieczeństwa przesyłać kanałem komunikacyjnym lub bezpiecznie przechowywać na nośniku pamięci. Na przykład sprzęt komputerowy nie manipuluje tekstem, lecz jedynie bajtami, więc kodowanie tekstu jest opisem tego, jak tekst powinien zostać przekształcony w bajty. Podobnie HTTP nie pozwala na bezpieczne przesyłanie wszystkich znaków, więc może być konieczne kodowanie danych za pomocą base64 (używa tylko liter, cyfr i dwóch bezpiecznych znaków).

Podczas kodowania lub dekodowania nacisk kładzie się na to, aby każdy miał ten sam algorytm, a algorytm ten jest zwykle dobrze udokumentowany, szeroko rozpowszechniony i dość łatwy w implementacji. Każdy może w końcu zdekodować zakodowane dane .

Z drugiej strony szyfrowanie polega na przekształceniu fragmentu danych, który można cofnąć tylko przy użyciu określonej (i tajnej) wiedzy na temat sposobu ich odszyfrowania. Nacisk kładzie się na utrudnienie odczytania oryginalnych danych każdemu poza zamierzonym odbiorcą. Algorytm kodowania, który jest utrzymywany w tajemnicy, jest formą szyfrowania, ale jest dość podatny na ataki (wymyślenie dowolnego rodzaju szyfrowania wymaga umiejętności i czasu, az definicji nie można kazać nikomu stworzyć takiego algorytmu kodowania za Ciebie - w przeciwnym razie trzeba ich zabić). Zamiast tego najczęściej stosowana metoda szyfrowania wykorzystuje tajne klucze: algorytm jest dobrze znany, ale proces szyfrowania i deszyfrowania wymaga posiadania tego samego klucza do obu operacji, a następnie klucz jest utrzymywany w tajemnicy. Odszyfrowanie zaszyfrowanych danych jest możliwe tylko za pomocą odpowiedniego klucza .


Nie zawsze wymaga posiadania tych samych kluczy do szyfrowania i deszyfrowania. Czy diffe-hellman nie używa klucza prywatnego nadawcy do kodowania i klucza prywatnego odbiorcy do dekodowania?
David Mann,

„HTTP nie pozwala na bezpieczne przesyłanie wszystkich znaków…” Myślę, że jest to mylące. HTTP jest 8-bitowy czysty. Możesz przesłać dowolny bajt w treści wiadomości HTTP. Nagłówki mają specyfikację ASCII, ale to nie ma nic wspólnego z „bezpieczną” transmisją.
Hawkeye Parker

27

Kodowanie:

  1. Cel: Celem kodowania jest transformacja danych, tak aby mogły być prawidłowo (i bezpiecznie) wykorzystane przez inny typ systemu.

  2. Służy do: utrzymywania użyteczności danych, tj. Zapewnienia możliwości prawidłowego wykorzystania danych.

  3. Mechanizm pobierania danych: brak klucza i można go łatwo odwrócić, pod warunkiem, że wiemy, jaki algorytm został użyty do kodowania.

  4. Zastosowane algorytmy: ASCII, Unicode, kodowanie URL, Base64.

  5. Przykład: dane binarne wysyłane pocztą e-mail lub wyświetlanie znaków specjalnych na stronie internetowej.

Szyfrowanie:

  1. Cel: Celem szyfrowania jest przekształcenie danych w celu zachowania ich w tajemnicy przed innymi.

  2. Używany do: Zachowania poufności danych, tj. Zapewnienia, że ​​dane nie mogą być wykorzystane przez nikogo innego niż zamierzony odbiorca (y).

  3. Mechanizm wyszukiwania danych: oryginalne dane można uzyskać, jeśli znamy używany klucz i algorytm szyfrowania.

  4. Zastosowane algorytmy: AES, Blowfish, RSA.

  5. Przykład: wysłanie komuś tajnego listu, który tylko on powinien mieć możliwość odczytania, lub bezpieczne przesłanie hasła przez Internet.

Referencyjny adres URL: http://danielmiessler.com/study/encoding_vs_encryption/


9

Kodowanie to proces umieszczania ciągu znaków w specjalnym formacie do celów transmisji lub przechowywania

Szyfrowanie to proces tłumaczenia danych na tajny kod. Szyfrowanie to najskuteczniejszy sposób na zapewnienie bezpieczeństwa danych. Aby odczytać zaszyfrowany plik, musisz mieć dostęp do tajnego klucza lub hasła, które umożliwiają jego odszyfrowanie. Niezaszyfrowane dane nazywane są zwykłym tekstem; zaszyfrowane dane są określane jako zaszyfrowany tekst


3

Potraktuj kodowanie jako sposób przechowywania lub przesyłania danych między różnymi systemami. Na przykład, jeśli chcesz przechowywać tekst na dysku twardym, będziesz musiał znaleźć sposób na konwersję znaków na bity. Alternatywnie, jeśli wszystko, co masz, to latarka, możesz chcieć zakodować tekst za pomocą Morse'a. Wynik jest zawsze „czytelny”, pod warunkiem, że wiesz, jak jest przechowywany.

Szyfrowanie oznacza, że ​​chcesz uczynić swoje dane nieczytelnymi, szyfrując je za pomocą algorytmu. Na przykład Cezar zrobił to, zastępując każdą literę inną. Wynik jest nieczytelny, chyba że znasz tajny „klucz”, którym został zaszyfrowany.


3

Powiedziałbym, że obie operacje przekształcają informacje z jednej postaci w drugą, z tą różnicą, że:

  • Kodowanie oznacza przekształcanie informacji z jednej postaci w inną, w większości przypadków jest to łatwo odwracalne
  • Szyfrowanie oznacza, że ​​oryginalne informacje są zasłonięte i obejmuje klucze szyfrowania, które należy dostarczyć do procesu szyfrowania / deszyfrowania, aby dokonać transformacji.

Tak więc, jeśli obejmuje klucze (symetryczne lub asymetryczne) (inaczej „sekret”), jest to szyfrowanie, w przeciwnym razie jest to kodowanie.


2

Te trochę się od siebie różnią. Kodowanie używane, gdy chcemy przekonwertować tekst w określonej technice kodowania komputerowego, aw szyfrowaniu ukrywamy dane między określonym kluczem lub tekstem.


1

Kodowanie -》 przykładowe dane to 16
Następnie kodowanie to 10000 oznacza, że ​​jest to format binarny, ASCII lub UNCODED itp. Który może być odczytany przez dowolny system łatwo i łatwo, aby zrozumieć jego prawdziwe znaczenie

Szyfrowanie -》 przykładowe dane to 16 Następnie szyfrowanie to 3t57 lub może to być cokolwiek, w zależności od tego, który algorytm jest używany do szyfrowania Który może być łatwo odczytany przez każdy system, ALE tylko ten kto może zrozumieć to prawdziwe znaczenie, kto ma jego klucz deszyfrujący


0

Kodowanie służy zachowaniu użyteczności danych i można je odwrócić, stosując ten sam algorytm, który zakodował treść, tj. Nie jest używany żaden klucz.

Szyfrowanie służy do zachowania poufności danych i wymaga użycia klucza (utrzymywanego w tajemnicy) w celu powrotu do zwykłego tekstu.

Istnieją również dwa główne terminy, które wprowadzają zamieszanie w świecie haszowania i zaciemniania bezpieczeństwa

Haszowanie służy do sprawdzania integralności treści poprzez wykrywanie wszystkich jej modyfikacji poprzez oczywiste zmiany w wyniku skrótu.

Maskowanie jest używane, aby uniemożliwić ludziom zrozumienie znaczenia czegoś i często jest używane z kodem komputerowym, aby pomóc w zapobieganiu pomyślnej inżynierii wstecznej i / lub kradzieży funkcjonalności produktu.

Przeczytaj więcej w artykule Danielmiessler


1
Kodowanie to umiejętność rozumienia zestawu znaków. Na podstawie tego, jakie treści są odczytywane i zapisywane w plikach. Na przykład. UTF-8, UTF-16, UTF-32, ANSI. Szyfrowanie polega na przekształceniu danych, które są już zakodowane.
Arun

0

Szyfrowanie konwertuje dane na nieczytelny format (może zawierać specjalne nieczytelne znaki).

Kodowanie pomaga przekonwertować te dane na czytelny format (znaki), tak aby można je było przechowywać do wykorzystania w przyszłości, np. Podczas deszyfrowania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.