Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Omar Balbuena
2. Implementacin
La clase AES es una clase en Java la cual funciona de igual forma para Android, se dise utilizando las clases de Cipher, SecretKeySpec.
AES -SEED: String +encrypt (byte []): byte [] +decrypt (byte []): byte []
La clase Cipher provee funcionalidades para encriptar y desencriptar, la cual tiene soporte de algoritmos tales como AES, DES y RSA. Esta clase no puede ser instanciada directamente por lo cual se debe hacer una llamada al mtodo de la misma llamado getInstance pasando como parmetro una cadena con la siguiente estructura: "algoritmo/modo/filtro" o solo algoritmo algoritmo (Obligatorio): es el nombre del algoritmo de cifrado a utilizar. Modo (Opcional): modo de funcionamiento del algoritmo. Filtro (Opcional): filtro utilizado al encriptar informacin.
Otra clase importante en el proceso tanto de encriptar y desencriptar datos es la clase SecretKeySpec la cual sirve para generar el key que se utilizar en las tareas de cifrado de datos.
Posteriormente se una instancia del Cipher el cual nos permitir encriptar datos y posteriormente se inicializa en modo de encriptado de datos pasando como parmetro tambin el key generado anteriormente.
Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, keySpec);
Omar Balbuena
Por ltimo el mtodo doFinal de la clase Cipher encripta los datos segn el algoritmo especificado (en este caso se utiliz AES). Dicho mtodo recibe como parmetro un array de bytes de los datos a encriptar devolviendo de igual forma un array de bytes con los datos ya encriptados.
byte[] encrypted = cipher.doFinal(encrypt.getBytes());
Por ltimo se utiliza el mtodo doFinal el cual recibe un array de bytes con los datos encriptados y est devuelve un array de bytes con los datos originales.
byte[] decrypted = cipher.doFinal(encrypted);
Omar Balbuena
3. Referencias
Cdigo Fuente:
http://www.developer.com/ws/android/encrypting-with-android-cryptography-api.html http://www.code2learn.com/2011/06/encryption-and-decryption-of-data-using.html http://www.simplecodestuffs.com/encryption-and-decryption-of-data-using-aes-algorithm-in-java-2/
Teora
http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf http://searchsecurity.techtarget.com/definition/Advanced-Encryption-Standard http://www.giac.org/cissp-papers/42.pdf