Descripcion de la funcionalidad del metodo de encriptacion AES y concepto sobre el metodo de encriptacion RC2
github: https://github.com/MoisesArevalo98/HolaMundo
3. AES
Estándar de Encriptación Avanzada, creado por el Instituto Nacional de
Estándares y Tecnología (NIST) y se basa en las siguientes reglas:
1. El algoritmo debe ser un cifrado de bloques simétricos
2. Todo el diseño debe de ser publico
3. Soporte longitudes de claves de 128, 192 y 256 bits
4. Deben ser posible en la implementación de software como de
hardware
5. El algoritmo debe de ser publica o con licencia en términos no
discriminatorios
4. AES
El algoritmo utiliza la misma clave para encriptar y para
desencriptar
Es adecuada para la encriptación de textos largos
Java permite usar la clase Chiper junto a su método getInstance()
para este algoritmo de encriptación.
5. AES-Funcionamiento
1. Su cifrado se basa en una matriz de
estado
2. Se realiza con el operador “exclusive or”
3. Su operador es “AddRoundKey”
6. AES- Funcionamiento
1. Confusión: Evitar relación de mensaje con el texto cifrado
2. Difusión: Esparcir el mensaje. Esto se podría hacer con una
transposición de columnas
3. Solo la clave es secreta
7.
8. AES- Cifrado
Cifrado por bloques
Cada datos de divide en segmentos de 16 bytes(128 bits) y cada
segmento se puede ver como un bloque o matriz de 4x4 llamada
estado.
9. AES- Cifrado
En la ronda inicial se calcula un OR-exclusivo de cada byte con el
correspondiente de la clave para cada ronda.
10. AES- Cifrado
Luego se necesita varias claves para usarlas en rondas posteriores, la
que se puede derivar de una clave inicial usando SubByte.
11. AES- Cifrado
Para calcular la primera columna de la clave siguiente, se aplica la
operación Rotward, que consiste en realizar una rotación del primer
byte hacia el ultimo lugar de la columna
12. AES- Cifrado
Para obtener la transformación S-box de un byte se toman los
primeros 4 bits como índice de la fila de la table y los segundos 4
como índice de la columna de la tabla:
13. AES- Cifrado
Entonces se hace un XOR de la columna con una “Constante de
ronda” (RCON) que es diferente para cada ronda. El resultado de esta
operación será la primera columna para la siguiente clave:
14. AES- Cifrado
Las otras columnas son mas fáciles. Solamente se hace un XOR de la
columna anterior con la misma columna de la clave ronde previa
15. AES- Cifrado
Luego, se empieza con las rondas intermedias. Una ronda intermedia es una serie depasos que
se repiten varias veces. El numero de repeticiones depende del tamaño de la clave.
16. AES- Cifrado
Para ocultar la relación de cada byte, se utiliza la transformación S-
BOX, que lo traducirá a un byte diferente.
18. AES- Cifrado
A cada columna del estado se le aplica una transformación lineal,
esto es multiplicarlo por una matriz predeterminada en el campo GF.
A este proceso se lo conoce como Mix Columns:
19. AES- Cifrado
Al final de cada ronda, se aplica un XOR, a la clave resultante, con la
primera clave de la ronda.
En la ronda final, se salta el proceso de mixColumns, ya que no
incrementara la seguridad, solamente ralentizara el proceso
20. RC2
Emplea la función de Feistel, división en bloques y la aplicación en s-cajas
Este algoritmo utiliza una clave de 64 bits
Este algoritmo ya no es utilizado debido a que a sido vulnerado y revelado
en internet de forma anónima
El algoritmo trabaja con bloques de 64 bits y entre dos y tres veces más
rápido que el DES en software. Se puede hacer más o menos seguro que
el DES contra algoritmos de fuerza bruta eligiendo el tamaño de clave
apropiadamente.
21. Aplicación en java
Java Brinda una libreria para crear metodos de incriptacion
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.SecretKeySpec;
23. Referencias
2d, 1. (22 de Junio de 2017). es.slideshare.net. Obtenido de es.slideshare.net/:
https://es.slideshare.net/eduardomedina1975/2-criptografia-con-java
Chuwiki. (23 de Junio de 2017). chuwiki.chuidiang.org. Obtenido de chuwiki.chuidiang.org:
http://chuwiki.chuidiang.org/index.php?title=Encriptacion_con_Java
Mouse, J. (22 de Junio de 2017). jc-mouse.net. Obtenido de jc-mouse.net: http://www.jc-
mouse.net/java/encriptacion-simetrica-en-java.
SistemaSumma. (25 de Septiembre de 2017). sistemasumma.com. Obtenido de
sistemasumma.com: https://sistemasumma.com/2010/09/25/algoritmo-rc2/
Tanenbaum, A. S. (2003). Redes de computadoras. Ciudad de Mexico: Pearson.
Uv. (25 de Junio de 2017). www.uv.es. Obtenido de www.uv.es:
http://www.uv.es/~sto/cursos/seguridad.java/html/sjava-12.html
Vinda, E. (12 de Octubre de 2013). es.slideshare.net. Obtenido de es.slideshare.net:
https://es.slideshare.net/elvisvinda/sencilla-explicacin-sobre-aes