algorytm.org

Szyfr One-time pad



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Szyfr One-time pad
Ocena użytkowników:***** / 10
SłabyŚwietny 
Wpisany przez Krzysztof Maćkowiak, 18 sierpnia 2005 00:11

Nazwa: Szyfr One-time pad

Historia i zastosowanie: Jest to jedyny bezwarunkowo bezpieczny szyfr, co zostało udowodnione matematycznie. Algorytm ten zaproponowany został przez Gilberta Vernama z AT&T w 1917 roku. Jeżeli chodzi o pojęcie klucza losowego to pierwszy raz wprowadził je Joseph Mauborgne.
W literaturze można spotkać informacje, że podobno gorąca linia pomiędzy Waszyngtonem a Moskwą szyfrowana była z wykorzystaniem tego algorytmu.

Opis metody: Można wyróżnić 2 wersje tego algorytmu:
  • wersja binarna
  • wersja znakowa
W wersji binarnej szyfrujemy/deszyfrujemy korzystając z algorytmu Xor.
W wersji znakowej szyfrujemy/deszyfrujemy korzystając z algorytmu Vigenere`a.

Można zatem zadać sobie pytanie dlaczego tamte algorytmy zapewniają słabe lub średnie bezpieczeństwo a ten zapewnia bezwarunkowe bezpieczeństwo. Otóż cała tajemnica tkwi tutaj w założeniach nałożonych na hasło. Sprawdzone muszą być wszystkie 3 poniższe warunki:
  • hasło musi być ciągiem losowym
  • hasło musi być jednorazowe
  • długość hasła musi być przynajmniej tak samo długa jak długość szyfrowanego tekstu
Przy krótkich tekstach nawet sprawdzenie wszystkich możliwości nie da nam odpowiedzi, gdyż napastnik otrzyma wiele poprawnych słów i nie będzie w stanie wybrać z nich słowa właściwego.
Złamanie choćby jednego z tych warunków powoduje, że otrzymany szyfrogram może być już łatwy do odszyfrowania. Jeżeli chodzi o 2 i 3 warunek to są one stosunkowo proste do spełnienia, chociaż trudno wyobrazić sobie każdorazowe przekazywanie sobie hasła. Największym problemem jest wygenerowanie losowego hasła. Wiele metod, które mogą wydawać się losowe (stukanie w klawiaturę, ciąg wyliczany na podstawie czasu czy stanów procesora nie jest do końca wartością losową). Istnieją jednak algorytmy generujące ciągi pseudolosowe. Ciągi pseudolosowe są to ciągi generowane na podstawie losowego zarodka korzystając z algorytmu deterministycznego. Powstający ciąg ma cechy ciągu losowego. Przykładowym algorytmem generującym ciągi pseudolosowe jest algorytm BBS.

Poziom bezpieczeństwa: Udowodniono bezwarunkowo poziom bezpieczeństwa
Metody kryptoanalizy: brak
Zobacz też: Algorytm XOR

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 21 czerwca 2011 19:01
Dodaj komentarz