Sprawdź się
Wykorzystaj moduł primePy (pobierz go z witryny Python Package Index (PyPI), a następnie zainstaluj za pomocą narzędzia pip). Przeanalizuj kod, uruchamiając go lokalnie w środowisku IDLE, a następnie wykonaj polecenie. Zastosowana w kodzie funkcja primes.between(x, y) (z modułu primePy) zwraca wszystkie liczby pierwsze z zakresu od x do y. Funkcja fabs(a, b) zwraca bezwzględną różnicę między a i b jako typ float. Funkcja choice(zbiór) zwraca losowy element danego zbioru (funkcja seed inicjalizuje generator liczb losowych).
We found: 15217 and 7867 prime numbers..., 2. Program wyświetli komunikat We found: 11087 and 7127 prime numbers..., 3. Długość tablicy len(primes_numbers) wynosi 2154., 4. Długość tablicy len(primes_numbers) wynosi 2254., 5. Program zostanie przerwany z błędem Execution Bit Error RatePrzeanalizuj kod, uruchamiając go lokalnie w środowisku IDLE lub w dowolnym innym IDE, a następnie wykonaj polecenie. Funkcja gcd(a, b) zwraca największy wspólny dzielnik liczb a i b.
Building for phi= 31552
Found 14320 elements., 2. Program wyświetli komunikat Building for phi= 31552
Found 14420 elements., 3. Długość tablicy len(l) wynosi 14420., 4. Długość tablicy len(l) wynosi 14320., 5. Program zostanie przerwany z błędem Execution Bit Error Rate, 6. funkcja gcd istnieje w module math od wersji Python 3.3, 7. funkcja gcd istnieje w module math od wersji Python 3.5, 8. funkcja gcd to skrót nazwy "greatest code density", 9. funkcja gcd to skrót nazwy "greatest common divisor"Zdefiniuj funkcję, która wykona następujące operacje:
wygeneruje listę liczb względnie pierwszych (czyli takich, których największym wspólnym dzielnikiem jest 1), która zostanie użyta jako
tablica_kodowania,zwróci zaszyfrowane dane w postaci listy bajtów.
Szyfrowanie polega na pobraniu kolejnego bajtu łańcucha wejściowego i wykonaniu na nim operacji xor z kolejnym bajtem tablica_kodowania. Jeśli tekst jawny będzie dłuższy niż tablica klucza, należy użyć funkcji cycle() z biblioteki intertools, która zapętla podaną tablicę.
Program przetestuj dla danych:
oraz
Specyfikacja problemu:
Dane:
tekst_jawny– łańcuch znaków; tekst wejściowykrotka_nq– krotka zawierająca dwie liczby pierwsze
Wynik:
Program wypisuje zaszyfrowany tekst.
Przykładowe wywołanie:
W standardowej tabeli ASCII jest 95 znaków, których używamy do pisania – w obrębie jednej linii nie ma możliwości formatowania (użycia tabulatorów itp.). Do zbioru znaków należą litery, cyfry oraz inne znaki specjalne (w tym tylko jeden znak biały – spacja). Kody ASCII, o których mowa, to znaki od kodu 32 (znak spacji ' ') do kodu 126 (znak tyldy '~'). Liczba 95 jest iloczynem dwóch liczb pierwszych: 5 i 19.
Napisz program, który będzie szyfrował i wypisywał podane na wejściu wiadomości metodą RSA, na podstawie klucza publicznego, składającego się z wykładnika publicznego wykladnik i liczby n.
Program przetestuj dla następujących danych:
wykladnik = 11n = 95tekst_jawny = "Lex retro non agit"
Specyfikacja problemu:
Dane:
wykladnik– wykładnik publiczny, liczba naturalnan- iloczyn dwóch liczb pierwszych, liczba naturalnatekst_jawny– ciąg znaków do zaszyfrowania
Wynik:
Program na standardowe wyjście wypisuje zaszyfrowaną wiadomość.
Dany jest szyfrogram zaszyfrowany za pomocą pewnego klucza publicznego. Masz dostęp do klucza prywatnego klucz_prywatny. Napisz program, który odszyfruje wiadomość i wypisze ją na wyjście standardowe. Przetestuj działanie programu dla następujących danych:
klucz_prywatny = (65, 95)szyfrogram = "ZRst- d*.z^ -7t Ltde m7 de^Rd*-."
Specyfikacja problemu:
Dane:
klucz_prywatny– krotka liczb naturalnychszyfrogram– zaszyfrowana wiadomość, ciąg znaków
Wynik:
Program na standardowe wyjście wypisuje odszyfrowaną wiadomość.