UNIVERSIDAD PRIVADA BOLIVIANA INGENIERIA DE SISTEMAS COMPUTACIONALES PRACTICA #1 Estudiante: Sebastián Morales Frías Materia: Compilación Docente: Ing. Ivonne Palomeque Código: 63052 09/04/23 1. ¿Cómo funciona un algoritmo de encriptación? Un algoritmo de encriptación es un conjunto de instrucciones matemáticas que transforma información legible (texto claro) en información ilegible (texto cifrado), protegiendo así la confidencialidad de los datos. La encriptación utiliza una clave secreta para realizar esta transformación, y solo aquellos que poseen la clave correcta pueden descifrar y acceder a la información original. Los algoritmos de encriptación se pueden clasificar en dos categorías principales: cifrado simétrico y cifrado asimétrico. 2. ¿Cuál es la diferencia entre cifrado simétrico y asimétrico? La diferencia principal entre el cifrado simétrico y el asimétrico radica en el tipo de claves utilizadas. En el cifrado simétrico, se utiliza una única clave para cifrar y descifrar la información. Ambas partes que se comunican deben tener la misma clave, lo que puede plantear problemas de distribución y confidencialidad. En el cifrado asimétrico, se utilizan dos claves distintas: una clave pública para cifrar la información y una clave privada para descifrarla. La clave pública se comparte libremente, mientras que la clave privada se mantiene en secreto por su propietario. 3. ¿Cómo se elige una clave para un algoritmo de encriptación? La elección de una clave para un algoritmo de encriptación es un paso crítico en la protección de la información. Una clave segura debe ser lo suficientemente larga y aleatoria como para evitar ataques de fuerza bruta y predecibilidad. En general, se recomienda utilizar claves de mayor longitud y generarlas a partir de fuentes de entropía adecuadas, como hardware o software de generación de números aleatorios. 4. ¿Qué es una función hash y cómo se usa en la encriptación? Una función hash es un algoritmo que toma una entrada de cualquier tamaño y produce un valor fijo, generalmente una cadena de caracteres de longitud fija, llamado "hash". Las funciones hash se utilizan en la encriptación para garantizar la integridad de los datos, ya que cualquier cambio en la entrada dará lugar a un hash diferente. En la criptografía, las funciones hash son fundamentales en la creación de firmas digitales y en la verificación de mensajes, así como en la protección de contraseñas. 5. ¿Cuál es el algoritmo de encriptación más seguro? No existe un único algoritmo de encriptación "más seguro", ya que la seguridad de un algoritmo depende de su implementación y de cómo se utiliza en un contexto específico. Sin embargo, algoritmos como AES (Advanced Encryption Standard) para cifrado simétrico y RSA, ECC (Elliptic Curve Cryptography) o Ed25519 para cifrado asimétrico, son considerados seguros y ampliamente utilizados en la industria. 6. ¿Cómo se usa la encriptación en las comunicaciones en línea y en el almacenamiento de datos? La encriptación se utiliza en las comunicaciones en línea y en el almacenamiento de datos para proteger la confidencialidad, integridad y autenticidad de la información transmitida o almacenada. En las comunicaciones, como el correo electrónico o las aplicaciones de mensajería, la encriptación garantiza que solo los destinatarios autorizados puedan acceder al contenido de los mensajes. En el almacenamiento de datos, la encriptación protege la información almacenada de accesos no autorizados, incluso si un atacante logra acceder al sistema de almacenamiento. 7. ¿Cuál es la importancia de los algoritmos de encriptación en la seguridad de la información? Los algoritmos de encriptación son fundamentales en la seguridad de la información porque protegen la confidencialidad, integridad y autenticidad de los datos en un mundo cada vez más digital y conectado. Al cifrar la información, se asegura que solo las partes autorizadas puedan acceder a ella, lo que reduce el riesgo de robo de datos, espionaje y otros ciberataques. Además, la encriptación ayuda a cumplir con las regulaciones de privacidad y protección de datos, y a mantener la confianza de los usuarios en los sistemas de información. 8. ¿Cómo se utiliza la encriptación en la autenticación de usuarios y en la protección de contraseñas? La encriptación se utiliza en la autenticación de usuarios y en la protección de contraseñas para garantizar que solo las personas autorizadas puedan acceder a sistemas y recursos. Cuando un usuario ingresa su contraseña, esta se procesa a través de una función hash segura y se compara con el valor hash almacenado. Si coinciden, el usuario se autentica. Este enfoque protege las contraseñas almacenadas, ya que incluso si un atacante obtiene acceso a la base de datos, solo tendría los valores hash, que son difíciles de revertir a las contraseñas originales. 9. ¿Qué es la encriptación de extremo a extremo y cómo se aplica en la seguridad de las comunicaciones? La encriptación de extremo a extremo es un enfoque de seguridad en las comunicaciones que garantiza que solo los emisores y receptores involucrados en una conversación puedan acceder al contenido cifrado. Con la encriptación de extremo a extremo, los datos se cifran en el dispositivo del emisor y se descifran en el dispositivo del receptor. Los intermediarios, como los proveedores de servicios de mensajería, no tienen acceso al contenido en texto claro. Esto protege la privacidad y la confidencialidad de las comunicaciones, incluso si se interceptan o se compromete el proveedor de servicios. 10. ¿Cómo funciona un compilador con los algoritmos de encriptación? Un compilador es una herramienta de software que traduce el código fuente escrito en un lenguaje de programación de alto nivel a un lenguaje de bajo nivel, como el código de máquina, para que pueda ser ejecutado por un dispositivo. En el contexto de los algoritmos de encriptación, un compilador puede ser utilizado para implementar y optimizar estos algoritmos en un programa o sistema específico. Los desarrolladores pueden utilizar bibliotecas criptográficas o escribir su propio código para implementar algoritmos de encriptación, y el compilador se encarga de generar el código de máquina correspondiente que se ejecutará en el dispositivo destino. La eficiencia y seguridad del código compilado dependerán en gran medida de la calidad de la implementación y del compilador utilizado