Javascript viene inviato dal server al client; qualunque crittografia si faccia lato client fornirà sicurezza solo nella misura in cui il codice che il client esegue non è stato alterato in transito - il che significa che SSL è ancora richiesto, almeno per assicurarsi che ciò che il client riceve ed esegue realmente è autentica implementazione del tuo protocollo.
Ciò implica che se il server è ostile al client, il server vince e il client è condannato. Di conseguenza, è inutile tentare di proteggere i calcoli del client dal server. Da questo argomento (un po 'semplicistico), possiamo concludere che non ha senso crittografare i dati sul client; basta usare SSL, inviare i dati al server e lasciare che il server faccia il suo lavoro. Il server è fidato , il che significa che se il server vuole tradirti, allora sei indifeso.
La libreria crittografica Javascript di Stanford è ancora buona scienza, ma non si adatta bene all'utilizzo di Javascript in un classico Contesto Web. Avrebbe molto più senso come parte di un'estensione del browser o qualcosa di simile script che tragga vantaggio da un meccanismo di distribuzione specifico, indipendente e sicuro per il codice.
(Nota che tutto quanto sopra si applica anche se il tuo protocollo è solido da un punto di vista crittografico - e non molti crittografi oserebbero fingere di poter realizzare una tale impresa da soli , senza un'estesa revisione tra pari).