Zadanie 2. Jaś i Małgosia

Jaś i Małgosia wysyłają do siebie tajne wiadomości. Aby nikt poza nimi nie mógł odczytać ich treści, wiadomości szyfrowane są z użyciem algorytmu RSA.

Jaś i Małgosia postanowili się spotkać. Niestety, Jaś stracił część danych, wśród których znajdowały się części kluczy wykorzystywanych przez nich do komunikacji na przestrzeni lat. Udało mu się jedynie zachować następujące dane, które umieścił w kolejnych kolumnach:

  • wartości liczb pierwszych p użytych do wyznaczenia poszczególnych kluczy,

  • wartości n tych kluczy,

  • zaszyfrowane wiadomości od Małgosi.

Aby kontynuować korespondencję oraz odczytać wcześniejsze konwersacje z Małgosią, chłopak musi odtworzyć brakujące części swoich kluczy.

Dane, które Jasiowi udało się zachować, zapisane są w pliku dane.txt. Plik składa się ze 100 wierszy. W każdym wierszu zapisano trzy liczby naturalne oddzielone od siebie pojedynczym znakiem spacji.

Bazując na ocalałych danych, napisz program, który umożliwi wyznaczenie kluczy prywatnych i publicznych. Następnie odszyfruj wysłaną przez Małgosię wiadomość zawierającą informację o godzinie spotkania. Wyniki, czyli wartości liczb e, d i odszyfrowaną wiadomość, zapisz do pliku tekstowego wyniki_4.txt.

RuL7EaGdKhf2X

Przycisk do pobrania pliku TXT z treścią zadania.

Plik dane.txt.
Plik TXT o rozmiarze 1.20 KB w języku polskim
Przykład 1

Dla przykładowych danych z pliku dane.txt:

Linia 1. 11 55 10. Linia 2. 11 253 173.

plik wynikowy miałby postać:

Linia 1. 3 27 10. Linia 2. 3 147 13.

Dodajmy nad liczbami informacje na temat tego, jakimi składnikami szyfru RSA są.

Dane:

Linia 1. p n zaszyfrowana wiadomość. Linia 2. 11 55 10. Linia 3. 11 253 173.

Wyniki:

Linia 1. e d odszyfrowana wiadomość otwórz nawias okrągły godzina spotkania zamknij nawias okrągły. Linia 2. 3 27 10. Linia 3. 3 147 13.

Do oceny oddajesz:

  • plik wyniki_4.txt zawierający odpowiedź (wartości liczb e, d oraz odszyfrowaną wiadomość oddzielone od siebie pojedynczymi znakami odstępu; każdy wyznaczony zestaw danych zapisany w nowej linii);

  • plik(i) z komputerową realizacją zadania (kodem programu).

Polecenie 1

Przedstaw rozwiązanie zadania w postaci programu w wybranym języku (C++, Java lub Python). Zadbaj o prawidłowe wczytanie i zapisanie danych z/do pliku tekstowego. Odpowiedź do zadania znajdziesz w osobnym pliku umieszczonym pod omówieniem pseudokodu.

Rozwiązanie

Rozwiązanie przedstawimy w postaci pseudokodu.

Ważne!

W sekcji „Przeczytaj” przedstawiliśmy rozwiązanie wykorzystujące algorytm szybkiego potęgowania w sposób rekurencyjny. W prezentacji wykorzystujemy wersję iteracyjną tego algorytmu. W swoim rozwiązaniu możesz wykorzystać każdą z wersji.

R125bUocuZGql1
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Odpowiedź do zadania dla danych zapisanych w pliku dostawy.txt:

RWqUYKQ5PYqMM

Przycisk do pobrania TXT z odpowiedzią do zadania.

Plik TXT o rozmiarze 1 012.00 B w języku polskim
Polecenie 2
RAeP7aYgyqBhu
Wymyśl pytanie na kartkówkę związane z tematem materiału.