Wpis z mikrobloga

#programowanie #kryptografia #algorytmika #zagadka

Założenia:

Mam pliki:
a.txt o treści np. 123
b.txt o treści np. 789
itd.

Mam identyfikatory: xyz (klucz x1), cvb (klucz x2) itd.

Chce:

Chcę napisać program, który zaszyfruje pliki a.txt i b.txt.

I żeby następnie było możliwe odszyfrowanie ich z wykorzystaniem kluczy x1 lub x2. Ale tak, że przy odszyfrowywaniu treść identyfikatora (odpowiadająca odpowiedniemu kluczowi) ma być dodana do treści pliku.

Tzn. jeśli odszyfruję plik a.txt z wykorzystaniem klucza x1, to treść pliku będzie wynosić 123xyz.
Dla pliku a.txt z kluczem x2 treść to: 123cvb.
Dla pliku b.txt z kluczem x1 treść to: 789xyz.
Itd.

Dodatkowe:

- Identyfikatory i klucze mogą być dowolne - aby sobie odpowiadały.
- Treść plików jest ustalona. Zaszyfrowane pliki mogą być dowolnie (binarne).
- Chcę tworzyć dowolną ilość par identyfikator-klucz.
- Treść źródłowego pliku docelowo ma nie być tylko na końcu, ale też w środku (ma to być np. dodanie identyfikatora na grafice lub w pliku binarnym).
- Po deszyfrowaniu ma być dostępna tylko wersja z dodaną treścią.

Jak to ugryźć?

Pewnie coś z kluczami publicznymi prywatnymi (pary identyfikator-klucz)? Ale jak rozwiązać problem z dodawaniem czegoś do treści podczas deszyfrowania? Jest to w ogóle możliwe?
Jak po prostu zdeszyfruję i programowo potem dodam coś, to chyba bardzo łatwo coś takiego złamać (tzn. przechwycić wynik przed dodaniem identyfikatora)? Jest jakiś algorytm, który już podczas deszyfrowania modyfikowałby? Nie mam pojęcia jak to podejść.
  • 2
  • Odpowiedz
Myslałes żeby przy szyfrowaniu stworzyć x wersji pliku każdy zaszyfrowany innym kluczem. Wtedy na etapie szyfrowania wstawiasz identyfikator. Jedyny problem to rozmiar pliku który jest tyle razy wiekszy, ile masz różnych kluczy.
Tak czy inaczej ciężko jest zrobić zaszyfrowany plik który można odszyfrować wieloma kluczami.
  • Odpowiedz
Korzystasz wtedy z bezpiecznego, standardowego algorytmu, możesz bezpiecznie ukryć identyfikator na etapie szyfrowania. Ewentualnie podziel plik na dwie części, jedna o stałym niedużym rozmiarze do którego wstawiasz identyfikator, a druga zawierająca resztę danych. Tworzysz x części pierwszych dla każdego klucza, a drugą cześć masz jedną.
  • Odpowiedz