Per rispondere alla tua prima domanda, è semplice, crittografare il file. Usa una chiave simmetrica condivisa tra l'applicazione che usi e quella usata dai tuoi amici. Solo qualcuno con la chiave può leggere i dati. Dove si memorizza la chiave dipende da come si è paranoici.
Il più semplice è semplicemente quello di inserire la chiave nell'applicazione. Se sei preoccupato per gli hacker che accedono ad esso, tuttavia non sarebbe abbastanza sicuro.
Per rispondere alla tua seconda domanda, ci sono due componenti per ciò che stai memorizzando da quello che ho capito della tua domanda: un'immagine e dati. L'immagine che dovresti memorizzare come file binario, probabilmente in formato PNG, sarebbe l'opzione migliore. I dati che conserverei come JSON. Desiderate un modo per unire le due serie di dati tra loro e l'intero insieme di dati in un contenitore. Inoltre una certa compressione per JSON.
In questo modo urla per un file ZIP e, convenientemente, puoi anche crittografare i file ZIP.
Quindi creerei due file, con lo stesso nome, ma un'estensione diversa per ogni record (ad esempio Record1.json e Record1.png) e li inserirò tutti in un file ZIP crittografato usando SharpZipLib o simile ( link ).
Non hai davvero indicato quanti record stiamo parlando qui, se sono migliaia potresti voler creare una struttura di directory usando una struttura di ricerca per l'indice dei record. Quindi, se ad esempio cerchi i record in base al cognome, utilizzerai la prima o la seconda lettera del cognome come nome della prima cartella, per accelerare l'accesso e ridurre il tempo necessario per iterare tutti i record.