Kryptografia - asymetryczne hasła

0

Kryptografią nigdy się nie zajmowałem i jestem z tego tematu kompletnie zielony
Potrzebuję zrobić szyfrowanie wiadomości - ale szyfrowanie ma odbywać się innym hasłem niż odszyfrowywanie

Założenia są trzy:

  • użytkownik znając hasło deszyfrujące może jedynie odszyfrować wiadomość
  • użytkownik znając hasło szyfrujące może jedynie zaszyfrować wiadomość
  • w bazie danych nie mogą znajdować się informacje pozwalające po przechwyceniu na którąkolwiek z tych czynności

Szyfrowanie / deszyfrowanie odbywa się w aplikacji u klienta, jednak nie musi mieć dostępu do całej bazy danych
Z jakich algorytmów skorzystać (RSA + AES, ???), jak powiązać hasła z wygenerowanymi kluczami, jakie dane przechowywać w bazie danych oprócz samych wiadomości (zaszyfrowany klucz publiczny + prywatny? jakim algorytmem?)
Czy udostępnienie zaszyfrowanych kluczy jest na tyle bezpieczne że mogę po prostu te klucze dokleić do wiadomości?

0

i jeszcze jedno
chciałbym zrobić taką wstępną autoryzację hasła - tj. baza danych ma nie udostępniać danych do których na pewno posiadamy złe hasło
i tutaj mógłbym na przykład pytać czy posolony hash hasła się zgadza i przechowywać go obok zaszyfrowanego klucza w bazie

ale serwer bazy danych jest dalej uznany jako "niezaufany" - dlatego czy przechowywanie hasha hasła obok informacji zaszyfrowanych tym samym hasłem (mimo że już nieposolonym) nie zmniejsza znacznie siły algorytmu szyfrującego?

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