Devi criptare ogni nota con la sua chiave segreta. Dovresti usare una nuova chiave simmetrica per ogni nota. Questa chiave simmetrica è chiamata chiave di sessione.
Ora il problema diventa come distribuire la chiave di sessione ai destinatari e solo ai destinatari. Per questo, hai bisogno della crittografia a chiave pubblica.
È necessario rilasciare a ciascun partecipante del sistema (pazienti e medici) la propria coppia di chiavi personale. La chiave pubblica può essere memorizzata sul server non crittografato, ma la chiave privata non deve essere memorizzata sul server in chiaro. È necessario crittografare la chiave privata sul server utilizzando la password dell'utente oppure gli utenti dovrebbero essere tenuti a memorizzare la propria chiave privata in modo sicuro per se stessi.
Un paziente può inviare un messaggio privato a un determinato medico generando una nuova chiave di sessione e crittografando un messaggio con esso, quindi crittografando la chiave di sessione con la chiave pubblica del medico. Puoi anche inviare un messaggio a più destinatari crittografando la chiave di sessione su più chiavi pubbliche.
Facoltativamente, potresti avere un'autorità di certificazione che controlla l'identità di un partecipante (ad esempio richiedendo un ID di foto) e firma la chiave pubblica del partecipante per affermare che il controllo di identità è stato eseguito e allegare attributi firmati che asseriscono ruolo (s).
A questo punto, hai un meccanismo per la crittografia point-to-point, questi sono essenzialmente il modo in cui funziona lo schema S / MIME e PGP.
È possibile creare una messaggistica di gruppo, in modo che pazienti e / o medici possano inviare un messaggio a un gruppo numeroso (ad esempio un paziente può inviare un messaggio crittografato al gruppo di podologi, senza consentire al gruppo odontoiatrico di leggere il messaggio), senza che nessuno debba conoscere l'identità del singolo membro. Questa è chiamata crittografia multi-cast.
Il modo in cui crei la messaggistica di gruppo è che devi creare una coppia di chiavi di gruppo. Una coppia di chiavi di gruppo consiste in una chiave privata che viene distribuita a tutti i membri del gruppo e una chiave pubblica che viene distribuita a chiunque abbia bisogno di inviare messaggi al gruppo. Ciò consente a membri e non membri di inviare un messaggio a tutti solo in quel gruppo. Per inviare un messaggio di gruppo, crittografare la chiave di sessione per quel messaggio con la chiave pubblica del gruppo.
Tieni presente che nella maggior parte dei casi, dovrai creare una nuova chiave di gruppo ogni volta che l'appartenenza a un gruppo cambia (ad esempio, qualcuno lascia il gruppo o una nuova persona è entrata nel gruppo.)