Spesso nel mondo dei computer c'è bisogno di proteggere informazioni riservate, nell' e-commerce per esempio bisogna proteggere numeri di carte di credito o dati personali.
La scienza che risolva il problema è la crittografia(dal greco scrittura segreta o nascosta ).
La crittografia si divide in simmetrica e asimmetrica, la prima è per esempio il cifrario di cesare che consisteva nello spostare di tot lettere ogni lettera, ad esempio "ATTACCO" diventava "DZZDFFR" qui si capisce che la crittografia simmetrica è formata da un algoritmo e una chiave, l'algoritmo è "sposta le lettere di tot posti" e la chiave 3. Inoltre la caratteristica principale è che la chiave per criptare è uguale a quella per decriptare. Un problema è che il testo può essere facilmente analizzato, ad esempio si sa già che ci sono 3 lettere che si ripetono più una unica, info che può semplificare un brute-force, ma molti algoritmi simmetrici come il DES non hanno più di questi problemi.
Il pregio della simmetria è  la velocità di codifica, ma la pecca è che la chiave deve essere molto grande per una sufficiente sicurezza ed inoltre deve essere detta prima e può essere intercettata... come risolvere il problema?
Semplicemente usufruendo della crittografica asimmetrica, basata su una coppia di chiavi, una pubblica e una privata.
La prima può SOLO codificare e la seconda può SOLO decodificare.
Il grande vantaggio lo spiego con un esempio: Zinco Pallino compra un prodotto su internet, per farlo deve inviare dati fragili come numero di carta di credito, quindi l'azienda, con particolari algoritmi come RSA, crea due chiavi: quella per codificare(pubblica) e quella per decodificare(privata). La chiave pubblica viene data a Zinco che cripta i dati e li invia. Ora l'azienda ha la chiave privata della coppia che può decodificare i dati criptati con quella pubblica ed il gioco è fatto. Ovviamente le chiavi cambiano, cioè se ho una coppia 1949849492 e  4893498472984, non è detto che con la prima posso decodificare le codifica fatte con la seconda, dato che per creare la chiave bisogna inserire due numeri primi decimali molto grandi. Questa era una introduzione, nella sezione programmino farà una guida su come applicare la crittografica a java.