Examen de SPI - I*38 - Junio 2004

  1. La siguiente función, ¿es una función hash?. Razona la respuesta.
    long mifun(char *p) {
    long h;
    int i, l;
    l=strlen(p);
    h=0;
    for (i=0; i<l; i++)
    h=((long long)h*160789)%2100005377+p[i];
    return h;
    }
  2. Descifra este texto (cod ascii # = 35):
    nhv#or#txh#ph#glfhv
  3. Pretendo cifrar un disco duro. Como, por definición de disco duro, pretendo leerlo aleatoriamente, divido lógicamente el disco en fragmentos de tamaño fijo (por ejemplo 4Kbytes) y cifro cada uno de los fragmentos con un buen algoritmo de cifrado de bloques, con una buena password, en modo CBC. ¿Habrá que tomar alguna precaución adicional?.

  4. ¿Por qué los números que genera la función rand del C no son verdaderamente aleatorios?.

  5. ¿Por qué al enviar un correo firmado SMIME es habitual enviar el certificado con cuya correspondiente llave privada se ha firmado el correo?

  6. Explica las diferencias (prácticas y de seguridad) entre realizar una copia de seguridad de tus archivos en un disco duro diferente de tu ordenador y realizarla en el disco duro del ordenador de una amigo via internet.

  7. ¿Respecto a la autenticidad de un servidor, basta con que un certificado SSL nos garantice la URL a la que conectamos?

  8. Supón que recibes un correo SMIME cifrado, explica de forma práctica (lo más concreta posible), como saber qué certificados pueden descifrar el mensaje.

  9. Explica cómo implementarías una autentificación en un esquema cliente servidor sin transferencia de contraseña, si sólo dispones de md5.

  10. Te conectas a una página segura y el navegador te dice que el servidor ha interrumpido la conversación. Explica las posibles causas.