Libsodium - хорошо зарекомендовавшая себя библиотека, AES (Advanced Encryption Standard) - это хорошо защищенный алгоритм шифрования, они не такие же.
Libsodium предоставляет AES в режиме GCM, что неплохо, так как включает аутентификацию.
Проблема с Libsodium заключается в том, что она имеет ограниченные алгоритмы, поэтому интероперабельность низкая.
Безопасность в значительной степени зависит от того, насколько безопасна ваша реализация, любые ошибки или неправильное использование в шифровании нарушают безопасность.
Определите, от кого вы защищаетесь, начиная от любознательного подростка до хорошо финансируемого правительства и разрабатывая безопасность, чтобы соответствовать уровню, который вам нужен.
Управление ключами - очень сложная проблема. На телефоне обычно была какая-то форма ключевого репозитория, и это, вероятно, лучшее, что вы можете сделать. Но это зависит от пользователя, имеющего хороший пароль.
Если вы хотите, чтобы очень безопасная система заплатила за проверку вашей схемы и кода специалистом по криптографическому домену.
Обновление:
Единственное безопасное управление ключами - не иметь ключа на устройстве; на мое МСП (эксперт по предметным вопросам). Требовать, чтобы пользователь вводил кодовую фразу при каждом вызове приложения и следил за тем, чтобы приложение закрывалось после каждого использования. Затем вам нужно будет добавить код для попыток ограничения скорости с возможными экспоненциальными задержками. Наконец, пользователь должен будет иметь действительно хорошую кодовую фразу.
В сторону: Если вам нужна пересадка сердца, вы идете к ортопеду или сердечному хирургу, оба являются сертифицированными врачами. По аналогии талантливый программист - ортопед, криптографический эксперт домена - сердечный хирург. Выбери один. – zaph
Я получаю аналогию :-) –