Vollständig verschlüsselt geht nicht, aber man kann es recht gut annähern.
Dazu einfach jegliche sensiblen Daten möglichst
an einem Ort zusammenfassen soweit es geht verstreuen und dann mit einem Sitzungsschlüssel, der möglichst weit weg stehen sollte verschlüsseln. Bitte drauf achten, dass Du möglichst viel Randomness in deinem Speicher-Layout hast.
Was jetzt zu tun ist für den Zugriff auf einen Wert, ist sich zufällig einen Speicherblock reservieren, dort deen entschlüsselten Wert ablegen, die gewünschte Operation mit dem Wert ausführen und dann den Wert mit Zufallsdaten überschreiben.
Beim Speichern halt nur den Wert entsprechend verschlüsselt irgendwo ablegen. Achte auch drauf, dass Du nicht einfach ne Liste von Pointern irgendwo ablegst, weil Du damit Angriffe auf dein Speicherlayout vereinfachst ... Je mehr Indirektion mit einem Zugriff verbunden ist (Anzahl ggf. variieren), desto komplizierter wird es, die Daten zu entschlüsseln ...
Frag ggf. mal
Narses, ich glaub mal gehört zu haben, dass er da was hatte in der Hinsicht

Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.