Tengo que elegir un tema para mi proyecto escolar de fin de año y necesito un consejo. Estaba pensando en implementar un proyecto de materiales de tutoría en línea (archivos digitales). He estado investigando sobre criptografía y leído sobre algoritmos simétricos / asimétricos. Esto es lo que tengo hasta ahora:
- La idea es crear un sistema donde los materiales del curso sean cifrado y solo puede ser descifrado por los estudiantes de la escuela curso.
- Los materiales del curso se cifrarían mediante el algoritmo AES. y la clave AES se almacenaría en la base de datos.
- La base de datos contendría una tabla con la columna "Curso" y su correspondiente "AESKey". Ya que es inseguro almacenar la clave AES en texto claro, entonces estaba pensando en cifrarlo usando una clave PBKDF2 derivada de contraseña (la contraseña del cual será entregada a los alumnos por el profesor de el curso).
- Luego, cuando el estudiante solicita los materiales, él simplemente proporcionaría la contraseña para ese curso y luego podría para recuperar la clave AES.
¿Qué te parece esa idea? ¿Y cómo puedo hacerlo más seguro? Porque quería lograr algún tipo de autenticación de múltiples factores, ¡pero sería imposible dar tarjetas inteligentes a todos y cada uno de los estudiantes! Había estado pensando en cifrar la clave AES usando el método de clave pública / privada RSA, pero luego habrá muchos estudiantes (¿Debo crear un par de claves pública / privada para cada estudiante? Parece que no es posible ...) O tal vez hay algunos ¿De otra manera puedo implementar el esquema de cifrado RSA allí? Usaré C # como lenguaje de implementación.
Tu consejo es bienvenido! Gracias