RSA - co jest rozsądniejsze

0

Witam,
Pisząc implementację RSA (do szuflady) zastanawiam się nad następującą rzeczą: czy jest jakieś przeciwskazanie przeciwko wykonywaniu procedur kodujących / dekodujących na jednym bajcie zamiast na liczbie reprezentującej całą jednostkę danych (można i tak i tak). Działanie na poszczególnych bajtach uprościłoby implementację. Pytanie, czy stracę coś bardzo ważnego w ten sposób?

Pozdrawiam,

0

A to jest jakaś różnica? Nie kodujesz całej struktury tylko właśnie bajt po bajcie...

0

Typowo chyba nie koduje się RSA bezpośrednio, bo to byłoby zbyt wolne. RSA koduje się klucz do szyfru symetrycznego np AESu, a AES już jest szybki.

0

czym różni się "bajtowe" RSA od szyfru cezara?
czasem szyfrowania!

0

Też miałem takie przeczucie. Brutem łatwo to złamać.

A tak sobie myślę, aby zmodyfikować pomysł na moją edukacyjną aplikację: generować sam klucz przez RSA i ten własnoręcznie zaimplementowany klucz przekazać jako argument do jakiegoś szybszego algorytmu (może wspomniany AES?). I tym szybszym algorytmem na przykład szyfrować pliki. Jako, że mam ograniczoną ilość czasu, chcę samodzielnie wykonać RSA, a do drugiego celu użyć biblioteki. Piszę w C++ pod Linuksem.

Polecicie coś konkretnego, najlepiej dość prostego?

I dziękuje za dotychczasowe uwagi.

0

Typowo chyba nie koduje się RSA bezpośrednio, bo to byłoby zbyt wolne.
Może było w latach 70-tych, kiedy RSA powstało - dzisiejsze komputery sobie z tym poradzą.

0
Azarien napisał(a)

Typowo chyba nie koduje się RSA bezpośrednio, bo to byłoby zbyt wolne.
Może było w latach 70-tych, kiedy RSA powstało - dzisiejsze komputery sobie z tym poradzą.

AES ma szybkość max kilkuset megabajtów na nowych prockach (bez AES-NI). Zakładając, że RSA jest 10x wolniejsze to przy 100 % obciążenia CPU byłoby kilkadziesiąt megabajtów (na sekundę). Ale przecież nikt nie chce, żeby (de)kodowanie zamulało całego kompa, ten proces powinien zabierać maks kilka procent CPU.

0

Może głupie pytanie, ale w końcu dział Newbie.

Jeżeli chce zrobić coś bardzo nieoptymalnego i generalnie nie jest to typowe zastosowanie tego algorytmu: napisać program szyfrujący pliki wykorzystujący czyste RSA to jak wiadomo rozmiar liczby będzie zależał od ilości bajtów. Liczba ta będzie bardzo duża dla normalnego pliku. Musiałbym chyba stworzyć własny typ danych do tego oparty na łańcuchach, aby obsługiwać tak duże liczby w C++. Albo ograniczyć się do plików, dla których wiadomość zmieści się w typie uint64_t (sprawdzić czy wiadomość jest dość mała).

0

dzięki uint64 masz niby też szyfr cezara, ale nie dla pojedynczej litery tylko dla kilku kolejnych, alfabet przestaje składać się z powiedzmy 256 znaków, zaczyna mieć 2^(8*n) liter, ilość przechodzi w jakość. proste sposoby na cezara przestają działać

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0