...I want the data to be inaccessible even when the system is fully compromised.
Isso não é possível. Se o sistema estiver totalmente comprometido, então "por definição" qualquer coisa nele estará acessível - incluindo chaves de criptografia.
A criptografia é inútil na proteção contra comprometimento do sistema, enquanto o sistema está em execução, SE as chaves para criptografar / descriptografar dados estiverem no mesmo sistema com os dados criptografados. Por exemplo, se você tem um sistema de arquivos LUKS montado e alguém obtém acesso root ao seu sistema, é possível extrair as chaves da RAM - porque elas precisam viver na RAM para descriptografar o sistema de arquivos. Na sua situação, se você estiver digitando sua senha todas as vezes que criptografar um arquivo, você estará protegido (supondo que um keylogger não esteja presente em seu sistema), caso contrário, você estará na mesma situação e alguém que comprometa seu sistema chave e desfazer toda a sua criptografia.
Você precisa enviar os dados que deseja proteger para fora do sistema + NÃO gravá-los em um meio intermediário nesse sistema, se você não quiser que o root chegue a ele. rsyslog
explicitamente suporta isso com relação ao registro em log, e você pode criptografar a conexão entre a origem e o coletor com o OpenVPN, stunnel
ou similar. Tenho certeza de que há outras opções de transferência "unidirecionais" por aí.