9346692686

9346692686



i (p — 1) (q — 1) były względnie pierwsze. Można to sprawdzić szukając największego wspólnego dzielnika. Jeśli jest on różny niż 1 to wybór należy powtórzyć. Kolejną czynnością jest znalezienie takiego d, by

e • d = 1 mod (p — 1) (q — 1)

Teraz następuje dosyć niespodziewany krok. Obliczamy iloczyn n = p • q i pozbywamy się liczb p i q tak, by nie pozostał po nich ślad i by nie wpadły one w ręce adwersarzom. Para liczb [e, n] jest kluczem publicznym, a [d, n] kluczem prywatnym. Tak przygotowanymi kluczami szyfrowane mogą być liczby m < n. Tekst jawny w postaci ciągu bitów, traktowany jako zapis binarny liczby m, nie może więc być zbyt długi, aby spełniony był powyższy warunek. Szyfrowanie odbywa się zgodnie z fomułą

c = i?[e,n] (m) = mod n

a odszyfrowanie

m = D[d,n\ (c) = cd mod n

Obliczenia prowadzące do uzyskania klucza prywatnego możnaby odtworzyć, gdyby udało się dokonać rozkładu liczby n na czynniki. Zadanie to należy do klasy problemów NP, lecz nie wiadomo, czy jest to problem NP-zupełny. Pomimo tego znane obecnie algorytmy rozkładu na czynniki pierwsze wymagają dość długich czasów obliczeń. Niemniej jednak w 1996 roku udało się dokonać rozkładu losowo wygenerowanej liczby o długości 512 bitów.

4 Generatory kryptograficznie bezpieczne

Dobrą metodą generowania sekwencji bitów pseudolosowych jest zastosowanie do tego celu algorytmów szyfrujących. Widzieliśmy takie potępowanie w generatorze ANSI X9.17, który używa schematu DES E-D-E. Poniżej przedstawiamy generatory najwyższej jakości dla kryptografii — generatory kryptograficznie bezpieczne opisywane wcześniej. Poniższe algorytmy opierają się na pomysłach wprowadzonych w szyfrowaniu RS A.

4.1 Generator RS A

Generator ten służy do tworzenia ciągu zi, Z2,... bitów pseudolosowych o długości l. Aby przygotować się do działania powinniśmy, podobnie jak w RSA, wybrać dwie duże liczby pseudolosowe. Dalej obliczamy iloczyn n = p ■ q i losujemy e tak, by e i (p — l)(ę — 1) były względnie pierwsze. Jako zarodek dla naszego generatora wybieramy xq z przedziału [l,n — 1]. Natępnie w pętli od 1 do l obliczamy

Xi — mod n

Najmniej znaczący bit rozwinięcia binarnego liczby Xi jest i-tym bitem generowanego ciągu.



Wyszukiwarka

Podobne podstrony:
Wprowadzenie do MatLab (74) Można to sprawdzić przy pomocy polecenia: >> A*v ans - 34 34
72938 Wprowadzenie do MatLab (74) Można to sprawdzić przy pomocy polecenia: >> A*v ans -
22 (217) nr brzc byłoby, gdyby obie części były względem siebie symetryczne, to znaczy, żeby określo
Biblioteki 0 Algorytmy: podstawowe techniki Największy Wspólny Dzielnik Liczby pierwsze Si
kiedy kEknięto NWD pierwsza liczba druga Bez ba powiedz połącz Największy wspólny dzielnik definiuj
IMAG0970 3 Największy wspólny dzielnik (NWD) i najmniejsza wspólna wielokrotność /K1WW1 Czynnik
mWl Narysować schemat blokowy dla problemu wyznaczania największego wspólnego dzielnika dwóch liczb
DSC00101 (26) Zadanie 3 (**) Oblicz największy wspólny dzielnik (NWD) dla dwóch liczb całkowitych Na
259.    Powtórka po lekcji : wprowadzamy pojęcie: największy wspólny dzielnik. C
a2 NWD program cw3_42; { Program znajduje największy wspólny dzielnik A i B. } { Katalog r3_09 :
Opis w języku programowaniaPrzykłady opisu algorytmów Algorytm Euklidesa • największy wspólny dzieln
Zadanie 24. Schemat blokowy przedstawia algorytm znajdowania największego wspólnego dzielnika dwóch
i a powiedz Program znajduje Największy Wspólny Dzielnik zapytaj    i «=z« ustaw a na
W podobny sposób definiujemy największy wspólny dzielnik liczb całkowitych tą, b2, ■~bn z których
Stąd (3102,1044) = (-35) • 3102 + 104 • 1044. Zatem największy wspólny dzielnik liczb 3102 i 1044 je

więcej podobnych podstron