Non c'è copyright sugli algoritmi . Gli algoritmi sono come idee; il tipo di proprietà intellettuale che si applica a loro è brevetti, non diritti d'autore. Ci sono alcuni algoritmi crittografici che sono brevettati, ma molti non lo sono e alcuni usati sono brevettati (ma i brevetti alla fine scadono). Né DES, AES, Blowfish o Twofish sono brevettati. Un esempio di sistema di crittografia simmetrica brevettato è IDEA (il brevetto statunitense scadrà nel 2012). L'algoritmo RSA (crittografia asimmetrica e firme digitali) è stato brevettato, ma il brevetto è scaduto dieci anni fa. Fondamentalmente, se un algoritmo crittografico è reso disponibile tramite una Java VM già installata, probabilmente non è più brevettato (più o niente).
Ci possono essere copyright su implementazioni . L'utilizzo di un'implementazione già esistente non è influenzato dal copyright (è un copyright, non una useright). Devi preoccuparti del copyright quando include codice esterno nella tua applicazione, non quando usi codice esterno fornito dalla Java VM installata tramite la sua API pubblicata.
I sistemi software possono inoltre essere controllati da licenze . Si potrebbe immaginare una licenza specifica che vieta l'utilizzo di alcuni software a seconda del contesto di utilizzo o di qualsiasi condizione arbitraria. Si potrebbe immaginare una tale licenza software sull'implementazione di un algoritmo crittografico. Questo sarebbe il problema di chiunque usi il tuo software, non il tuo problema. La licenza VM Java è quella che si applica qui. Ma, per quanto ne so, non esiste alcuna limitazione di utilizzo sui componenti della VM Java, siano essi crittografici o meno. Il venditore VM di solito non desidera limitare l'uso della sua API.
Le leggi locali potrebbero essere applicate, in particolare per quanto riguarda la crittografia. A seconda del Paese, le leggi possono limitare l'utilizzo, la distribuzione, l'esportazione e / o l'importazione di software utilizzando algoritmi crittografici. La Java VM (almeno quella di Sun / Oracle) include un sistema relativamente complesso di permessi e regole di sicurezza che determina quali algoritmi sono disponibili e con quali lunghezze di chiave. Pertanto, si può presumere che qualunque algoritmo sia reso disponibile alle applicazioni dalla VM è già stato messo a punto per quanto riguarda le lunghezze delle chiavi al fine di rispettare le leggi locali. Ci possono sempre essere delle eccezioni in alcune situazioni (se sei un agente nordcoreano al lavoro per costruire una bomba nucleare da qualche parte nel Dakota del Sud, allora usare algoritmi crittografici, anche se legalmente forniti dalla Java VM installata, potrebbe implicare qualche anno in più di prigione quando l'FBI ti prende). In termini pratici, dovresti controllare le leggi sull'esportazione del tuo paese se distribuisci software che fornisce un qualche tipo di servizio di crittografia, in particolare se lo inserisci in un sito Web.
Riepilogo: non esiste alcuna preoccupazione relativa alla proprietà intellettuale sull'utilizzo degli algoritmi crittografici forniti dalla Java VM. Dovresti fare alcune domande sulle normative sulla distribuzione ed esportazione del software crittografico. Puoi iniziare dalle pagine di Wikipedia su crypto export e Importa .