Wpis z mikrobloga

Jak z punktu widzenia kryptografii bezpieczny jest następujący algorytm szyfrowania

Szyfrowanie

* Hasło do zaszyfrowania to dowolny ciag znakow podany przez uzytkownika i do tego dołączona wielkosc pliku w bajtach, np. password128
* z tego hasla generowany jest hash
* na podstawie hashu ustawiany jest seed w generatorze liczb pseudolosowych
* generowany jest ciąg znaków o wielkości pliku
* robiony jest one time pad xor na pliku do zaszyfrowania z przed chwilą wygenerowanym ciągiem
* zaszyfrowany plik jest dodatkowo kompresowany żeby trochę pomieszać w jego statystycznych parametrach

Deszyfrowanie
* dekompresja
* użytkownik podaje haslo i wielkosc pliku w bajtach, np password128
* z hasla generowany jest hash... itd jak wyżej

#programowanie #kryptografia
  • 25
@kebab-case: ach te głupie zadania na studiach a zaimplementuje własny algorytm szyfrowania, a po #!$%@? panie prowadzący? a tak bo nie mam pomysłu co macie robić, i tak nigdy wam się nie przyda ta wiedza bo już ktoś wymyślił coś czego wy nigdy nie wymyslicie ( ͡° ͜ʖ ͡°)
@kebab-case: jesli chodzi o bezpieczenstwo, to wydaje mi sie, ze to zalezy od dlugosci hasla i hasha. Jak haslo jest dluzsze od tekstu to masz algorytm idealny, cos jak algorytm vigenera.
@kebab-case: tak byłem i też robiliśmy takie nieprzydatne rzeczy, chodzi mi o to że no super, masz projekt gdzie musisz sobie wymyślać własny algorytm szyfrowania, tylko w praktyce nigdy ci taka wiedza nie będzie potrzebna w życiu, o to mi chodzi, powinni wyjaśniać jak działają inne znane algorytmy i tyle i dawać np projekt aby stworzyć jakąś aplikację w oparciu o nie a nie wytwarzać koło na nowo
@Saly: Hasło nie jest równe długości pliku. Dlatego robię numer z generowaniem losowego ciągu znaków na podstawie hashu hasła i później XORuje to z bajtami pliku. Co teoretycznie daje one time padding

@Jurigag: wyjaśnili jak działaja
@kebab-case: no i super, to powinni dać projekt z nimi związany a nie wymyślanie koła na nowo, dużo bardziej przydałoby się stworzyć aplikację w języku xyz wraz z zastosowaniem aesa/rsa niż a stwórzcie własny gównoalgorytm a potem i tak wam ta gównowiedza z jego tworzenia w życiu się nie przyda xD
@kebab-case: Twój pomysł może być podatny na known plaintext attack. Jeśli szyfrujesz np. obrazek, wiele bajtów (sygnatura pliku, sygnatury bloków itp) jest zawsze takich samych. Znając bajty pliku i szyfrogramu, znamy niektóre bajty hasła. Jeśli wybrany generator liczb pseudolosowych nie jest na to odporny (a większość nie jest), to mając wystarczająco dużo bajtów hasła można wyliczyć seed, a więc złamać szyfr.