O szyfrowaniu danych można myśleć jak o zamknięciu czegoś wartościowego na klucz w solidnej kasetce. Poufne dane są szyfrowane przy użyciu algorytmu i klucza, co powoduje, że ich odczytanie bez znajomości klucza staje się niemożliwe. Klucze szyfrowania danych są określane w momencie nawiązania połączenia przez komputery. Użycie szyfrowania danych może zostać zainicjowane przez komputer użytkownika lub przez serwer, z którym chce on się połączyć.
Szyfr – rodzaj parametryzowanego kodu stosowanego w celu utajnienia wiadomości tak, by była ona niemożliwa (lub praktycznie niemożliwa) do odczytania przez każdego, kto nie posiada odpowiedniego klucza.
Wiadomość przed zaszyfrowaniem nazywa się tekstem jawnym (plaintext) bądź otwartym (cleartext), a wiadomość zaszyfrowaną – szyfrogramem (ciphertext) lub tekstem zaszyfrowanym.
Jako ciekawostkę można podać, że Marian Rejewski używał w swoich pracach określeń kler na tekst jawny i krypt na tekst tajny, zapewne w nawiązaniu do niem. klar lub ang. clear (czysty) oraz ang. crypt (szyfrowany).
Współcześnie możemy podzielić metody szyfrowania na 3 grupy: 1. szyfry asymetryczne 2. symetryczne szyfry blokowe 3. symetryczne szyfry strumieniowe
ad.1. W szyfrowaniu asymetrycznym występują 2 klucze – klucz publiczny służący do szyfrowania, oraz klucz prywatny służący do deszyfrowania. Ponieważ nie ma potrzeby rozpowszechniania klucza prywatnego, bardzo małe są szanse, że wpadnie on w niepowołane ręce. Szyfry asymetryczne opierają się na istnieniu pewnych trudnych do odwrócenia problemów. Na przykład o wiele łatwiej jest pomnożyć przez siebie 2 duże liczby, niż rozłożyć dużą liczbę na czynniki (opiera się na tym system RSA). Drugim popularnym systemem jest ElGamal, opierający się na trudności logarytmu dyskretnego. Typowe rozmiary kluczy są wielkości 1024-2048 bitów dla np. RSA lub ok. 512 bitów dla kryptografii na krzywych eliptycznych. W przypadku RSA złamane zostały klucze rozmiarów do ok. 500 bitów. ad.2. Szyfry blokowe to procedury, które szyfrują niewielkie bloki danych (znacznie mniejsze od typowej wiadomości), współcześnie jest to najczęściej 128 bitów (AES), choć do niedawna przeważały 64-bitowe bloki (DES, 3DES, Blowfish, IDEA). Klucze są znacznie mniejsze, mają zwykle od 128 do 256 bitów, przy czym wartości mniejsze od 80 (DES – 56) są uważane za niewystarczające. Typowy szyfr blokowy składa się z kilkunastu dość prostych rund przekształcających blok. Operacje używane w tych szyfrach są zwykle proste, ale pochodzą z "różnych światów", np. używa się dodawania, XOR, przesunięć cyklicznych, różnego typu S-Boxów, mnożenia modulo liczb pierwszych itd. Już kilka rund takich operacji zupełnie zaburza jakikolwiek porządek i jest bardzo trudne do analizowania. ad.3. Szyfry strumieniowe szyfrują każdy znak tekstu jawnego osobno, generując znak strumienia szyfrującego i przekształcając go na przykład z użyciem funkcji XOR ze znakiem danych, w związku z czym nie jest konieczne oczekiwanie na cały blok danych, jak w przypadku szyfrów blokowych. Najpopularniejszym współczesnym szyfrem strumieniowym jest RC4. Inne popularne szyfry strumieniowe to A5/1 i A5/2 stosowane w telefonii komórkowej. Do szyfrów strumieniowych należą też historyczne szyfry polialfabetyczne i monoalfabetyczne.
Typ szyfrowania Obsługiwany poziom szyfrowania Standardowe MPPE - 40-bitowy, 56-bitowy Silne MPPE - 128-bitowy IPSec DES - 56-bitowy IPSec Triple DES - 3DES
Szyfry historyczne musiały umożliwiać szyfrowanie i deszyfrowanie przez człowieka, a więc opierać się na bardzo prostych operacjach. Współczesne komputery są o kilkanaście rzędów wielkości szybsze w obliczeniach od ludzi i potrafią złamać praktycznie każdy tego typu szyfr. Istnieją jednak przykłady szyfrów, które są możliwe do stosowania przez człowieka bez użycia komputerów i zapewniają pewien sensowny poziom bezpieczeństwa. Warto zwrócić uwagę na fakt, że zwykle siatka szpiegowska w obcym kraju może mieć utrudniony dostęp do sprzętu komputerowego, nadal jednak musi być w stanie przesyłać bezpiecznie zaszyfrowane wiadomości. Przykład szyfru o omawianych własnościach stanowi szyfr one time pad, szyfry podstawieniowe dla krótkich wiadomości, a nawet szyfr Solitare opisany w książce "Cryptonomicon" Neala Stephensona.
Wszystkie wymienione niżej szyfry nie mają obecnie żadnego praktycznego znaczenia:
Korzenie kryptograffi sięgają czasów starożytnego Rzymu. Tam właśnie powsta ł i był używany pierwszy system kryptograficzny.
Szyfry cykliczne Zostały wynalezione, a na pewno używane przez Juliusza Cezara. Mają one bardzo łatwy klucz, ale jednocześnie są łatwe do złamania. Oznaczmy przez p jednostką tekstu jawnego i załóżmy że tych jednostek jest N. Wtedy funkcja szyfrująca Ek jest określona wzorem Ek(p) = p + k(mod N) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Kody afiniczne: Jeśeli zamiast jednej liczby jesteśmy w stanie zapamiętać dwie, to możemy stosować nieco bardziej skomplikowany kod aniczny, gdzie przekształcenie szyfrujące ma postać E(p) = ap + b(mod N). Naszym kluczem jest tu para (a; b). żeby rozszyfrować wiadomość używamy innego klucza. Dokładnie, D(c) = a0c + b0( mod N), gdzie a0 jest liczbą odwrotną do a modulo N, a b0 =
O szyfrowaniu danych można myśleć jak o zamknięciu czegoś wartościowego na klucz w solidnej kasetce. Poufne dane są szyfrowane przy użyciu algorytmu i klucza, co powoduje, że ich odczytanie bez znajomości klucza staje się niemożliwe. Klucze szyfrowania danych są określane w momencie nawiązania połączenia przez komputery. Użycie szyfrowania danych może zostać zainicjowane przez komputer użytkownika lub przez serwer, z którym chce on się połączyć.
Szyfr – rodzaj parametryzowanego kodu stosowanego w celu utajnienia wiadomości tak, by była ona niemożliwa (lub praktycznie niemożliwa) do odczytania przez każdego, kto nie posiada odpowiedniego klucza.
Wiadomość przed zaszyfrowaniem nazywa się tekstem jawnym (plaintext) bądź otwartym (cleartext), a wiadomość zaszyfrowaną – szyfrogramem (ciphertext) lub tekstem zaszyfrowanym.
Jako ciekawostkę można podać, że Marian Rejewski używał w swoich pracach określeń kler na tekst jawny i krypt na tekst tajny, zapewne w nawiązaniu do niem. klar lub ang. clear (czysty) oraz ang. crypt (szyfrowany).
Współcześnie możemy podzielić metody szyfrowania na 3 grupy:
1. szyfry asymetryczne
2. symetryczne szyfry blokowe
3. symetryczne szyfry strumieniowe
ad.1. W szyfrowaniu asymetrycznym występują 2 klucze – klucz publiczny służący do szyfrowania, oraz klucz prywatny służący do deszyfrowania. Ponieważ nie ma potrzeby rozpowszechniania klucza prywatnego, bardzo małe są szanse, że wpadnie on w niepowołane ręce. Szyfry asymetryczne opierają się na istnieniu pewnych trudnych do odwrócenia problemów. Na przykład o wiele łatwiej jest pomnożyć przez siebie 2 duże liczby, niż rozłożyć dużą liczbę na czynniki (opiera się na tym system RSA). Drugim popularnym systemem jest ElGamal, opierający się na trudności logarytmu dyskretnego. Typowe rozmiary kluczy są wielkości 1024-2048 bitów dla np. RSA lub ok. 512 bitów dla kryptografii na krzywych eliptycznych. W przypadku RSA złamane zostały klucze rozmiarów do ok. 500 bitów.
ad.2. Szyfry blokowe to procedury, które szyfrują niewielkie bloki danych (znacznie mniejsze od typowej wiadomości), współcześnie jest to najczęściej 128 bitów (AES), choć do niedawna przeważały 64-bitowe bloki (DES, 3DES, Blowfish, IDEA). Klucze są znacznie mniejsze, mają zwykle od 128 do 256 bitów, przy czym wartości mniejsze od 80 (DES – 56) są uważane za niewystarczające. Typowy szyfr blokowy składa się z kilkunastu dość prostych rund przekształcających blok. Operacje używane w tych szyfrach są zwykle proste, ale pochodzą z "różnych światów", np. używa się dodawania, XOR, przesunięć cyklicznych, różnego typu S-Boxów, mnożenia modulo liczb pierwszych itd. Już kilka rund takich operacji zupełnie zaburza jakikolwiek porządek i jest bardzo trudne do analizowania.
ad.3. Szyfry strumieniowe szyfrują każdy znak tekstu jawnego osobno, generując znak strumienia szyfrującego i przekształcając go na przykład z użyciem funkcji XOR ze znakiem danych, w związku z czym nie jest konieczne oczekiwanie na cały blok danych, jak w przypadku szyfrów blokowych. Najpopularniejszym współczesnym szyfrem strumieniowym jest RC4. Inne popularne szyfry strumieniowe to A5/1 i A5/2 stosowane w telefonii komórkowej. Do szyfrów strumieniowych należą też historyczne szyfry polialfabetyczne i monoalfabetyczne.
Typ szyfrowania Obsługiwany poziom szyfrowania
Standardowe MPPE - 40-bitowy, 56-bitowy
Silne MPPE - 128-bitowy
IPSec DES - 56-bitowy
IPSec Triple DES - 3DES
Szyfry historyczne musiały umożliwiać szyfrowanie i deszyfrowanie przez człowieka, a więc opierać się na bardzo prostych operacjach. Współczesne komputery są o kilkanaście rzędów wielkości szybsze w obliczeniach od ludzi i potrafią złamać praktycznie każdy tego typu szyfr. Istnieją jednak przykłady szyfrów, które są możliwe do stosowania przez człowieka bez użycia komputerów i zapewniają pewien sensowny poziom bezpieczeństwa. Warto zwrócić uwagę na fakt, że zwykle siatka szpiegowska w obcym kraju może mieć utrudniony dostęp do sprzętu komputerowego, nadal jednak musi być w stanie przesyłać bezpiecznie zaszyfrowane wiadomości. Przykład szyfru o omawianych własnościach stanowi szyfr one time pad, szyfry podstawieniowe dla krótkich wiadomości, a nawet szyfr Solitare opisany w książce "Cryptonomicon" Neala Stephensona.
Wszystkie wymienione niżej szyfry nie mają obecnie żadnego praktycznego znaczenia:
Enigma
szyfr podstawieniowy
szyfr przestawieniowy
szachownica Polibiusza
Gaderypoluki
Szyfr zmiennoprzesuwny
Szyfr liczbowy
Klasyczne metody szyfrowania
Korzenie kryptograffi sięgają czasów starożytnego Rzymu. Tam właśnie powsta
ł i był używany pierwszy system kryptograficzny.
Szyfry cykliczne
Zostały wynalezione, a na pewno używane przez Juliusza Cezara. Mają one
bardzo łatwy klucz, ale jednocześnie są łatwe do złamania.
Oznaczmy przez p jednostką tekstu jawnego i załóżmy że tych jednostek
jest N. Wtedy funkcja szyfrująca Ek jest określona wzorem
Ek(p) = p + k(mod N)
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Kody afiniczne:
Jeśeli zamiast jednej liczby jesteśmy w stanie zapamiętać dwie, to możemy
stosować nieco bardziej skomplikowany kod aniczny, gdzie przekształcenie
szyfrujące ma postać E(p) = ap + b(mod N). Naszym kluczem jest tu para
(a; b). żeby rozszyfrować wiadomość używamy innego klucza. Dokładnie,
D(c) = a0c + b0( mod N), gdzie a0 jest liczbą odwrotną do a modulo N, a
b0 =