Quiero desarrollar una aplicación de Android que pueda contener información confidencial de identificación personal (número de identificación nacional, número de teléfono, etc.) entre otros datos que se almacenarán en un teléfono con Android.
Digamos que estos datos se mantendrán en el teléfono, que está fuera de línea la mayor parte del tiempo, y tiene una ventana de tiempo muy pequeña y no tan frecuente para enviar los datos a un servidor remoto.
Quiero proteger (¿cifrar?) estos datos para que, en una situación en la que el teléfono sea robado, alguien con conocimientos técnicos no pueda rootear el teléfono, acceder al almacenamiento de la aplicación y acceder a la información.
No es necesario descifrar los datos en el teléfono, por lo que se pueden enviar cifrados al servidor, pero el servidor debe poder descifrarlos allí.
¿Cuáles son las opciones aquí? ¿Los certificados o las claves públicas / privadas son adecuados para esto, o son demasiado defectuosos?
¿Cuáles son las ventajas y desventajas de cada solución?