Skocz do zawartości

LarthiennBlog '

  • wpisy
    15
  • komentarzy
    108
  • wyświetleń
    9151

Larthienn

1140 wyświetleń

Już od starożytności ludzie próbowali utajniać przekazywane informacje. Było to związane z próbami przekazywania kluczowych komunikatów. Jedne z pierwszych maszyn szyfrujących wywodzą się ze starożytnej Grecji, a ich zasadą działania było odwzorowywanie grubości laski, na którą była nawijana zaszyfrowana wiadomość. Innymi słowy, tylko człowiek posiadający laskę o takiej samej grubości, mógł odczytać zapisaną na pergaminie informację. Te urządzenia nazywane były Skytale.

Jednak nieporównywalnie najsłynniejszą maszyną szyfrującą w dziejach świata jest Enigma, stosowana przez wiele państ Osi już od lat 20' XX wieku. Jej metoda szyfrowania została złamana w 1932 roku przez Mariana Rejewskiego, Jerzego Różyckiego i Henryka Zygalskiego. Historia Enigmy zawsze owiana była pewnego rodzaju mityczną mgłą, jednak sposób działania tego urządzenia został szczegółowo opisany i jest łatwy do odnalezienia dla dociekliwych osób.

Każde z przedstawionych urządzeń miało swoje wady i zalety... A także sposób szyfrowania każdego z nich został złamany. Czy istnieje zatem jakaś idealna metoda szyfrowania? Metoda, w której zaszyfrowana wiadomość nie niesie ze sobą żadnej informacji na temat klucza szyfrowania lub oryginalnej wiadomości?

Odpowiedź na powyższe pytania brzmi w obydwóch przypadkach ?Tak?. Przykładem szyfru idealnego jest taki, którego klucz jest conajmniej tak samo długi jak szyfrowana wiadomość. Do tej kategorii zalicza się między innymi One-Time Pad, w skrócie OTP.

Na czym polega OTP? Wyjaśnimy to na przykładzie.

Aby złamać szyfrowaną wiadomość potrzebna jest pierwotna wiadomość lub klucz szyfrujący.

Przykład:

Udało się przechwycić wiadomość następującej treści: 9 8 7 6 3 5 1 0. Jak odszyfrować ją nie znając klucza? Widzimy, że żadna z cyfr się nie powtarza, różnice między każdą cyfrą są inne: 1,1,1,3,2,4,1. Trudno więc wskazać jakąś zależność, zwłaszcza, że przechwycona wiadomość jest krótka.

Jak działa więc klucz OPT? Mając losowo generowany klucz np. 2 3 7 4 9 1 0 3 oraz wiadomość zaszyfrowaną wykonujemy proste odejmowanie podanych wartości:

9 ? 2 = 7

8 ? 3 = 5

7 ? 7 = 0

6 ? 4 = 2

3 ? 9 = 4 (jeśli różnica jest ujemna, wybierana jest cyfra, której pozycja jest odpowiednio obliczona od końca ciągu {1,2,...,0}, w tym wypadku byłoby to 4).

5 ? 1 = 4

1 ? 0 = 1

0 ? 3 = 6

Dzięki powyższym obliczeniom możemy zaobserwować, że pierwotna wiadomość, nie zakodowana to: 75024416, klucz, który został wykorzystany do szyfrowania to: 23749103, natomiast zaszyfrowana wiadomość wygląda następujaco: 98763510. Aby utrudnić dodatkowo rozszyfrowanie naszej informacji, można do gotowej wiadomości dołożyć kilka znaków losowych.

Innymi słowy, mając oryginalną wiadomość, wystarczy do każdego jej znaku dodać wartość podaną w losowo generowanym kluczu ? padzie, aby otrzymać komunikat, który może rozszyfrować tylko osoba posiadająca klucz, a zatem wspomniany już w tym tekście szyfr idealny.

24 komentarzy


Rekomendowane komentarze

Zawiodlem sie. Czekalem z wypiekami na twarzy na jakis niszczacy umysl artykuł o kryptografii, a zaserwowałaś nam zabawę, którą realizujemy w przedszkolu... sad_prosty.gif Smuteczek.

  • Upvote 1
Link do komentarza

dlaczego miałabym niszczyć umysły młodych ludzi?:) poza tym... szczegóły projektu papercrypto są wpisane na githubie w stosonym pliku :) tam jest tabela kodów, źródło naszych pomysłów :) no i w kryptografii wiele nie można powiedzieć nowego :D chyba, że podyskutujemy na temat bitcoin'a na przykład i jego podwójnego SHA512 :)

Link do komentarza

Oj, Gofer, marudzisz :diabelek:.

Przynajmniej jest to jakiś pomysł niewypompowany do cna wcześniej. A dla mnie, jako humanisty, jest to akurat ciekawe, więc nie zniechęcam - wręcz przeciwnie.

Link do komentarza

Za krótki fragment żeby użyć skutecznie analizy statystycznej, stwierdzam, że powyższej wiadomości nie da się złamać.

Poza tym chcesz nam wmówić, że szyfr którego przez lata używało dowództwo legionów rzymskich z samym wielkim Juliuszem Cezarem na czele, używało jakiegoś barachła, które da się złamać w parę chwil? Jakby to było do bani, to niby dlacze nie używali RSA albo innych metod tylko akurat tej?

Link do komentarza

Już Ci mówię drogi Hrabulo dlaczego;) Na tamte czasy generałowie i ich skrybowie nie bardzo parali się matematyką ;) Tym bardziej już rzymianie! Przypomnijmy sobie, że to Grecja jest matką filozofii, a nie Rzym, a jak wszyscy doskonale wiemy, matematyka (która nota-bene jest matką nauk) wywodzi się z filozofii ;) to jest pierwszy argument, który mówi przeciwko szyfrowi Cezara... drugi jest taki, że nawet jeśli zaprzęgniesz do odkodowania tej wiadomości analizę statystyczną to wyjdą Ci totalne bzdury, ponieważ pad jest generowany losowo (w przykładzie opublikowanym na githubie związanym z tym projektem, myślę, że pokażę go tutaj również w kolejnym wpisie, mimo iż link do niego pojawił się już w komentarzach pod wcześniejszym wpisem:) ) tutaj (tablica 6x8, z której losujemy znaki za pomocą rzutu kostkami 1k6 i 1k8). Tym samym nie jesteś w stanie podać żadnego wzoru na pad. Póki co implementacja w papercrypto jeszcze nie jest idealna, ale jest to otwarty dla wszystkich projekt i zapraszam do zagłębienia się w istniejący już kod i podrzucanie pomysłów ;) Jeśli wyrażasz takie życzenie mogę zaszyfrować większy artykuł za pomocą OTP i spróbujesz sobie rozkodować taką wiadomość za pomocą analizy statystycznej, ale to już myślę, że na priv a tutaj nam napiszesz co dostałeś w wynikach :)

Link do komentarza

A jak przeskoczyć największą słabość tego szyfru, czyli przekazanie klucza? :P Bardzo łatwo o wtopę, kiedy musimy za każdym razem przekazać 2 wiadomości, w tym jedna tak ważna jak klucz.

  • Upvote 2
Link do komentarza

Tak, otp nie da się złamać.

Trzeba więc przesłać w jakiś sposób klucz (który wcześniej trzeba losowo wygenerować, a losowanie jest podatne na ataki sprzętowe) tak, żeby nie dostał się w niepowołane ręce.

Jeżeli nie masz bezpiecznego łącza, to nie masz jak przesłać bezpiecznie klucza. Jeżeli możesz bezpiecznie przesłać klucz, to równie dobrze możesz przesłać tym kanałem nie szyfrowaną wiadomość.

Link do komentarza

Hrabs, przy danych liczbowych jak najbardziej, ale przy literkach to się już nie sprawdzi. W końcu stosujesz przesuniecie o równe trzy, więc zakodowanym kodem OTP odkodujesz pierwotną wiadomość zakodowaną zwykłym Cezarem, co już 'łatwo złamać'.

Link do komentarza

Pada zawsze można przekazać na kartce papieru bezpośrednio do zainteresowanego :P chyba nie ma bezpieczniejszej metody ;) ("Ta wiadomość ulegnie samozniszczeniu za 3... 2... 1.... BUM!" :P ) Jeśli chodzi o mobilne wersje... no cóż... klucz pgp jest dość bezpieczny :) ewentualnie połączenie otr... można przekazać pada w jakiś pozasprzętowy sposób, to jest najbezpieczniejszy sposób... niestety, jeśli są komputery i jest rozłożona sieć między nimi, to zawsze znajdzie się jakieś zagrożenie (Evil Maiden, Third-Person attack, spoofing i parę innych mądrych słów przychodzą mi na myśl w tej chwili...). Inny projekt z kolei, powiązany jest z OTP , ale nie wspominam o tym jeszcze na tym blogu i w sumie nie wiem czy będę o tym tutaj jeszcze pisać:) może przy innej okazji, bo chciałabym podążyć w innym kierunku troszkę z moimi postami :) jednak jest właśnie związany z bezpieczeństwem systemu operacyjnego oraz odpornością na ataki tego typu...

Link do komentarza

Pada zawsze można przekazać na kartce papieru bezpośrednio do zainteresowanego tongue_prosty.gif chyba nie ma bezpieczniejszej metody wink_prosty.gif

To równie dobrze możesz dać komuś niezaszyfrowany plik, będzie równie bezpiecznie.

Link do komentarza

no cóż... bezpośrednie przekazanie pada jest bezpieczne jeśli odbywa się we właściwych warunkach (miejsce bez podsłuchu/podglądu, a przekazana wiadomość zostanie rozkodowana od razu a pad spalony na drobny popiół i rozsypany na wietrze :P ).

No i kwestia jest jeszcze taka: osoba, która przechwytuje wiadomość i pada, nie wie, która wiadomość jest czym ;) i faktem jest, że zaszyfrowaną wiadomość można zaszyfrować raz jeszcze kolejnym randomowym kluczem, co zwiększa trudność odnalezienia właściwej wiadomość a sposób i kolejność kodowania jest znana tylko dwóm osobom przekazującym sobie taką notkę. Dobrze byłoby przepuścić taką wiadomość przez parę funkcji jednokierunkowych, tylko wtedy problemem byłoby oczywiście znalezienie wyjściowej treści (z sumy kontrolnej SHA512 nie zbudujesz przecież pliku wejściowego ;) )... a chyba nie chodzi nam o utratę danych wejściowych ;)

Link do komentarza

no cóż... bezpośrednie przekazanie pada jest bezpieczne jeśli odbywa się we właściwych warunkach (miejsce bez podsłuchu/podglądu, a przekazana wiadomość zostanie rozkodowana od razu a pad spalony na drobny popiół i rozsypany na wietrze tongue_prosty.gif ).

I o to właśnie chodzi - skoro przekazujesz pada, żeby potem przekazać jedną wiadomość, to równie dobrze możesz przekazać wiadomość.

Link do komentarza

no nie koniecznie :) przekazanie wiadomości w takich warunkach, nie jest jednoznaczne z uniemożliwieniem jej przejęcia :( Niestety ale istnieją urządzenia, które umożliwiają "no-clip" taki połowiczny (podejrzenie treści wyświetlanej na ekranie komputera za ścianą nie jest wcale takie trudne... ale trzeba być tego świadomym :) moim celem jest właśnie uświadamianie ludzi, o zagrożeniach, podawanie propozycji rozwiązań takich rzeczy, być może zaproponowanie udziału w fajnych projektach, lub dostępu do technologii zanim w ogóle ujrzy ona światło dzienne)

Link do komentarza

widzę Hrabula, że próbujesz osiągnąć swój cel metodą brute force :P czy teraz pod każdym moim postem będziesz mnie o to pytał?:P odpowiedziałam Ci tam gdzie zapytałeś :P bardzo nie lubię się powtarzać ;)

Poza tym... może jestem starą babcią?:P albo Ty jesteś "mocno posunięty w latach" :P zaraz będzie, że wiek to tylko liczba XD ale głupio byłoby mi umawiać się z własnym synem/ojcem :P

Link do komentarza

Gofer - OTP to wspaniały szyfr. Pierwszy w historii szyfr którego nie da się złamać, a co więcej jest tak prosty w działaniu, że nawet dzeicku można go wytłumaczyć.

Mimo to we współczesnym sposobie przekazywania informacji jest tak niepraktyczny, że aż sam nie jestem pewny czy faktycznie można powieidzieć, że w komunikacji przez internet podnosi bezpieczeństwo.

Link do komentarza

hmm... Zastanawiałam się dogłębnie nad tym faktem... w sensie nad przekazywaniem pada do wiadomości... i poddano mi opcję, że można by wygenerować pada "na zapas" na przykład taką wielką książkę powiedzmy 100 stronicową zapisaną randomowymi znakami, z której "odcinałoby" się konkretną ilość znaków na zakodowanie mojej wiadomości. Oczywiście zawsze istniałaby tylko dokładnie jedna para takich samych książek dla każdego odbiorcy/nadawcy po jednej... to by chyba nieco ułatwiło sprawę rozkodowania... no i uniemożliwiło ewentualne "podsłuchanie" pada w późniejszym okresie, kiedy przesyłane byłyby tylko zaszyfrowane wiadomości...

Link do komentarza

A jak bezpiecznie przesłać tę "księgę"? O ile masz na myśli elektroniczna wersję, bo papierowa byłaby na tyle niepraktyczna, że nikt by się nie podjął jej używania.

Zreszta kto się babra w jakieś księgi w dobie szyfrów z kluczami asymetrycznymi.

  • Upvote 1
Link do komentarza
Gość
Dodaj komentarz...

×   Wklejony jako tekst z formatowaniem.   Wklej jako zwykły tekst

  Maksymalna ilość emotikon wynosi 75.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...