Dobre pytanie, ale odpowiedź na to pytanie jest daleka od łatwej.
Z mojego doświadczenia z bezpieczeństwem danych musisz pomyśleć o następujących kwestiach:
1) Co zabezpieczasz, od kogo i jaki wpływ ma to, że te dane są niepewne - bezpieczeństwo polega bardziej na ocenie ryzyka niż na systematycznych rozwiązaniach technicznych
2) Zakładam, że twoją platformą jest komputer stacjonarny (np. Windows / OSX), w takim przypadku masz inna przestrzeń problemowa niż zastrzeżony sprzęt, taki jak PS3 / Xenon, który ma własne próby zabezpieczenia na poziomie jądra (czy to prawidłowe rozwiązanie jest otwarte do dyskusji)
3) Szyfrowanie! = bezpieczeństwo. Szyfrowanie gwarantuje tylko, że twoich danych nie można odczytać , nie gwarantuje też, że twoich danych nie można zapisać ani odtworzyć / proxy.
Jeśli Twoje wymagania mają sprawić, że Twoje dane będą odporne na manipulację, musisz pomyśleć o zaszyfrowaniu danych (najlepiej za pomocą SHA-256 lub SHA-512). Aby jednak powtórzyć, zastanów się, dlaczego jest to ważne i co zyskujesz dzięki zwiększeniu bezpieczeństwa system.
Warto również wiedzieć, że dodanie technologii szyfrowania do produktu może mieć konsekwencje prawne z powodu ograniczeń eksportowych (technologia szyfrowania jest klasyfikowana jako technologia ograniczona do broni, w którą wierzy lub nie), dlatego zaleca się korzystanie z bibliotek, które rozwiązały te problemy prawne.
Wreszcie - nigdy, nigdy nie wdrażaj własnej technologii szyfrowania - używaj dobrze znanych, udokumentowanych, zbadanych algorytmów, takich jak AES, Blowfish, RSA itp.
ps Klucz publiczny / prywatny nie jest odpowiedni ani praktyczny do szyfrowania dużych ilości danych, dlatego DRM / PGP itp. używają hybrydowego systemu symetrycznego RSA + , tj. zabezpiecz klucz symetryczny za pomocą RSA, a następnie wykonaj standardowe szyfrowanie symetryczne za pomocą tego klucza
To bardzo duży złożony temat i zdecydowanie nie oddałem go sprawiedliwie
Mam nadzieję, że to pomaga