Szyfr - Cipher

Edward Larsson „s runa szyfr przypominającej znaleźć na Kamień z Kensington . Zawiera również niezwiązany runicznie styl pisania czarnych liter i świński szyfr .

W kryptografii , A szyfrowania (lub cyfra ) jest algorytm do wykonywania szyfrowania lub deszyfrowania -a szeregu dobrze zdefiniowanych etapów które mogą być stosowane jako procedury. Alternatywnym, mniej powszechnym terminem jest szyfrowanie . Szyfrowanie lub kodowanie oznacza przekształcenie informacji w szyfr lub kod. W mowie potocznej „szyfr” jest synonimem „ kodu ”, ponieważ oba są zbiorem kroków, które szyfrują wiadomość; jednak koncepcje są różne w kryptografii, zwłaszcza w kryptografii klasycznej .

Kody zazwyczaj zastępują ciągi znaków o różnej długości w wyjściu, podczas gdy szyfry zazwyczaj zastępują tę samą liczbę znaków, co dane wejściowe. Istnieją wyjątki i niektóre systemy szyfrowania mogą używać nieco więcej lub mniej znaków podczas wyjścia w porównaniu z liczbą, która została wprowadzona.

Kody obsługiwane przez podstawianie według dużej książki kodów, która łączy losowy ciąg znaków lub liczb ze słowem lub frazą. Na przykład „UQJHSE” może być kodem „Przejdź do następujących współrzędnych”. W przypadku korzystania z szyfru oryginalna informacja znana jest jako tekst jawny , a forma zaszyfrowana jako tekst zaszyfrowany . Wiadomość zaszyfrowana zawiera wszystkie informacje wiadomości w postaci zwykłego tekstu, ale nie jest w formacie czytelnym dla człowieka lub komputera bez odpowiedniego mechanizmu do jej odszyfrowania.

Działanie szyfru zwykle zależy od informacji pomocniczej, zwanej kluczem (lub, w tradycyjnym żargonie NSA , zmienną kryptograficzną ). Procedura szyfrowania jest zróżnicowana w zależności od klucza, który zmienia szczegółowe działanie algorytmu. Przed użyciem szyfru do zaszyfrowania wiadomości należy wybrać klucz. Bez znajomości klucza odszyfrowanie wynikowego zaszyfrowanego tekstu na czytelny tekst jawny powinno być niezwykle trudne, jeśli nie niemożliwe.

Większość współczesnych szyfrów można podzielić na kilka kategorii

  • Przez to, czy działają na blokach symboli zwykle o stałym rozmiarze ( szyfry blokowe ), czy na ciągłym strumieniu symboli ( szyfry strumieniowe ).
  • Przez to, czy ten sam klucz jest używany zarówno do szyfrowania, jak i deszyfrowania ( algorytmy z kluczem symetrycznym ), czy też do każdego z nich używany jest inny klucz ( algorytmy z kluczem asymetrycznym ). Jeśli algorytm jest symetryczny, klucz musi być znany odbiorcy i nadawcy i nikomu innemu. Jeśli algorytm jest asymetryczny, klucz szyfrujący różni się od klucza deszyfrującego, ale jest z nim ściśle powiązany. Jeśli jednego klucza nie można wywnioskować z drugiego, algorytm klucza asymetrycznego ma właściwość klucza publicznego/prywatnego, a jeden z kluczy może zostać upubliczniony bez utraty poufności.

Etymologia

Rzymski system liczbowy był bardzo uciążliwy, w części, ponieważ nie było pojęcie zera. System cyfr arabskich rozprzestrzenił się ze świata arabskiego do Europy w średniowieczu . W tym okresie przejściowym, arabskie słowo do zera صفر ( sIFR ) została przyjęta w średniowiecznej łacinie jako cifra , a następnie na Bliskim francuskim jako cifre . To ostatecznie doprowadziło do powstania angielskiego słowa cipher ( cypher pisowni mniejszości ). Według jednej z teorii, w jaki sposób termin ten zaczął odnosić się do kodowania, pojęcie zera było mylące dla Europejczyków, a zatem termin ten zaczął odnosić się do wiadomości lub komunikatu, który nie był łatwy do zrozumienia.

Termin „ szyfr” był później również używany w odniesieniu do dowolnej cyfry arabskiej lub do obliczeń z ich użyciem, więc kodowanie tekstu w postaci cyfr arabskich jest dosłownie konwersją tekstu na „szyfry”.

W przeciwieństwie do kodów

W zastosowaniach nietechnicznych „(tajny) kod ” zazwyczaj oznacza „szyfr”. Jednak w dyskusjach technicznych słowa „kod” i „szyfr” odnoszą się do dwóch różnych pojęć. Kody działają na poziomie znaczenia — to znaczy, że słowa lub frazy są przekształcane w coś innego, a to chunking generalnie skraca wiadomość.

Przykładem jest komercyjny kod telegraficzny, który służył do skracania długich depesz telegraficznych, które wynikały z zawierania umów handlowych z wykorzystaniem wymiany telegramów .

Innym przykładem są szyfry całego słowa, które pozwalają użytkownikowi zastąpić całe słowo symbolem lub znakiem, podobnie jak Japończycy wykorzystują znaki Kanji (japońskie) do uzupełnienia swojego języka. ex „Szybki brązowy lis skacze nad leniwym psem” zmienia się w „Szybki brązowy lis skacze 上 leniwy 犬”.

Szyfry natomiast działają na niższym poziomie: na poziomie pojedynczych liter, małych grup liter lub, we współczesnych schematach, pojedynczych bitów i bloków bitów. Niektóre systemy wykorzystywały zarówno kody, jak i szyfry w jednym systemie, wykorzystując superszyfrowanie w celu zwiększenia bezpieczeństwa. W niektórych przypadkach terminy kody i szyfry są również używane jako synonimy do podstawienia i transpozycji.

Historycznie kryptografia została podzielona na dychotomię kodów i szyfrów; a kodowanie miało swoją własną terminologię, analogiczną do szyfrów: „ kodowanie , kod tekstowy , dekodowanie ” i tak dalej.

Jednak kody mają wiele wad, w tym podatność na kryptoanalizę i trudność w zarządzaniu niewygodną książką kodów . Z tego powodu kody wyszły z użycia we współczesnej kryptografii, a dominującą techniką są szyfry.

Rodzaje

Istnieje wiele różnych rodzajów szyfrowania. Algorytmy stosowane wcześniej w historii kryptografii znacznie różnią się od nowoczesnych metod, a współczesne szyfry można klasyfikować według tego, jak działają i czy używają jednego, czy dwóch kluczy.

Historyczny

Historyczne szyfry długopisowe i papierowe używane w przeszłości są czasami nazywane szyframi klasycznymi . Obejmują one proste szyfry podstawieniowe (takie jak ROT13 ) i szyfry transpozycyjne (takie jak Rail Fence Cipher ). Na przykład „DOBRY PIES” może być zaszyfrowany jako „PLLX XLP”, gdzie „L” zastępuje „O”, „P” zamiast „G” i „X” zamiast „D” w wiadomości. Transpozycja liter „DOBRY PIES” może skutkować „DGOGDOO”. Te proste szyfry i przykłady są łatwe do złamania, nawet bez par tekstu jawnego i tekstu zaszyfrowanego.

Proste szyfry zostały zastąpione przez polialfabetyczne szyfry podstawieniowe (takie jak Vigenère ), które zmieniały alfabet podstawieniowy dla każdej litery. Na przykład „DOBRY PIES” można zaszyfrować jako „PLSX TWF”, gdzie „L”, „S” i „W” zastępują „O”. Nawet przy niewielkiej ilości znanego lub oszacowanego tekstu jawnego, proste polialfabetyczne szyfry podstawieniowe i szyfry z transpozycją liter zaprojektowane do szyfrowania pióra i papieru są łatwe do złamania. Możliwe jest jednak stworzenie bezpiecznego długopisu i papierowego szyfru w oparciu o jednorazową podkładkę , ale występują zwykłe wady jednorazowych podkładek .

Na początku XX wieku wynaleziono maszyny elektromechaniczne do szyfrowania i deszyfrowania przy użyciu transpozycji, podstawienia polialfabetycznego i pewnego rodzaju podstawienia „addytywnego”. W maszynach wirnikowych kilka tarcz wirnika zapewniało zastępowanie polialfabetyczne, podczas gdy płytki wtykowe zapewniały zastępowanie inne. Klucze można było łatwo zmienić, zmieniając tarcze wirnika i przewody tablicy rozdzielczej. Chociaż te metody szyfrowania były bardziej złożone niż poprzednie schematy i wymagały maszyn do szyfrowania i deszyfrowania, inne maszyny, takie jak British Bombe, zostały wynalezione w celu złamania tych metod szyfrowania.

Nowoczesny

Współczesne metody szyfrowania można podzielić według dwóch kryteriów: typu używanego klucza oraz typu danych wejściowych.

Według rodzaju użytego klucza szyfry dzielą się na:

W algorytmie z kluczem symetrycznym (np. DES i AES ), nadawca i odbiorca muszą mieć ustawiony wcześniej wspólny klucz i utrzymywany w tajemnicy przed wszystkimi innymi stronami; nadawca używa tego klucza do szyfrowania, a odbiorca używa tego samego klucza do odszyfrowania. Sieć feistela zastosowano kombinację technik podstawienia i transpozycji. Większość algorytmów szyfrowania blokowego opiera się na tej strukturze. W algorytmie klucza asymetrycznego (np. RSA ) istnieją dwa oddzielne klucze: klucz publiczny jest publikowany i umożliwia każdemu nadawcy szyfrowanie, natomiast klucz prywatny jest utrzymywany w tajemnicy przez odbiorcę i tylko tej osobie umożliwia prawidłowe odszyfrowanie.

Szyfry można podzielić na dwa typy ze względu na rodzaj danych wejściowych:

Rozmiar klucza i podatność

W czysto matematycznym ataku (tj. braku jakichkolwiek innych informacji, które pomogą złamać szyfr) liczą się przede wszystkim dwa czynniki:

  • Dostępna moc obliczeniowa, tj. moc obliczeniowa, którą można wykorzystać do rozwiązania problemu. Należy zauważyć, że średnia wydajność/pojemność pojedynczego komputera nie jest jedynym czynnikiem, który należy wziąć pod uwagę. Przeciwnik może używać wielu komputerów jednocześnie, na przykład w celu znacznego przyspieszenia wyczerpującego wyszukiwania klucza (tj. ataku „brute force”).
  • Rozmiar klucza , czyli rozmiar klucza używanego do szyfrowania wiadomości. Wraz ze wzrostem rozmiaru klucza rośnie złożoność wyczerpującego wyszukiwania do punktu, w którym bezpośrednie złamanie szyfrowania staje się niepraktyczne.

Ponieważ pożądanym efektem jest trudność obliczeniowa, teoretycznie należałoby wybrać algorytm i żądany poziom trudności, a tym samym odpowiednio określić długość klucza.

Przykład tego procesu można znaleźć w Key Length, który wykorzystuje wiele raportów, aby sugerować, że szyfr symetryczny z 128 bitami , szyfr asymetryczny z kluczami 3072 bitowymi i szyfr z krzywą eliptyczną z 512 bitami, wszystkie mają obecnie podobne trudności.

Claude Shannon udowodnił, wykorzystując rozważania z teorii informacji, że każdy teoretycznie niezniszczalny szyfr musi mieć klucze co najmniej tak długie jak tekst jawny i użyte tylko raz: jednorazowy pad .

Zobacz też

Uwagi

Bibliografia

Zewnętrzne linki