Cómo generar una clave privada en el algoritmo RSA

Cuando enseño Matemática discreta I en UT Dallas, aproximadamente un tercio del semestre, llegamos al tema de la teoría de números. Paso alrededor de 6 clases sobre el tema, y ​​luego los estudiantes tienen suficientes conocimientos matemáticos necesarios para comprender el Criptosistema RSA.

Luego revisamos las matemáticas para calcular un par de claves públicas / privadas RSA, y luego cómo cifrar y descifrar mensajes usando RSA. Encontrar dos primos muy grandes, digamos dos primos de 1024 bits, inicia el proceso.

Realmente hacemos esto a mano usando números primos muy pequeños, y revisamos las matemáticas paso a paso. Más tarde, los estudiantes pueden escribir un programa, decir en Java usando la clase BigInteger, y crear sus propios pares de claves públicas y privadas. Si comienzan con dos primos de 1024 bits, nadie en el mundo, ni siquiera la Agencia de Seguridad Nacional, podrá descifrar sus mensajes cifrados.

Obviamente, no puedo escribir horas de matemáticas aquí, pero mis alumnos realmente disfrutan esta parte del curso.

Si desea un recurso, lea el capítulo 4 del libro de Matemáticas discretas de Rosen, 7ª edición. Puede encontrar el libro en Amazon en:

https://www.amazon.com/Discrete-…

Es un buen libro, pero, francamente, aprenderá más en mi clase, por supuesto. Vamos a Dallas, ustedes.

Las claves públicas y privadas se generan como pares. Puedes probar ssh key gen para producir el par. El siguiente enlace tiene pasos detallados.

Uso de Oracle Database Cloud Service

More Interesting

¿Cómo verificamos la corrección de un algoritmo?

¿Cómo podemos calcular el factorial de los primeros N números naturales usando la metaprogramación de plantilla en C ++?

¿Cuál es la mejor manera de reorganizar los datos en la lista para que dos elementos similares no estén uno al lado del otro?

¿Dar un nombre largo a una variable es una pérdida de memoria? ¿Int qwertyuiop_asdfghjkl_zxcvbnm; int i; tener el mismo efecto en el tiempo de compilación y ejecución?

¿Se puede resolver un cubo de Rubik sin sus algoritmos?

¿Debo comenzar a aprender estructuras de datos y algoritmos en lugar de nuevos lenguajes de programación?

¿Existe un algoritmo para determinar el algoritmo óptimo para ordenar un conjunto de datos en particular?

¿De qué manera aprender sobre algoritmos mejora sus habilidades de programación?

¿Qué idioma es mejor para los algoritmos de búsqueda: Java o Python? ¿Por qué?

Cómo resolver un problema de puente colgante utilizando circuitos y dónde una persona puede cruzar el puente a la vez

¿Realmente utilizas los algoritmos informáticos que aprendes en la universidad cuando consigues un trabajo? En caso afirmativo, ¿cuál es el mejor trabajo que puede permitirse en algoritmos?

¿Es probable que algún día los algoritmos de aprendizaje automático evolucionen para resolver problemas completos de NP?

¿Cuáles son algunos buenos libros para aprender y practicar estructuras de datos y algoritmos?

¿Qué son los algoritmos simples?

¿Cuáles son las aplicaciones en tiempo real del algoritmo de Dijkstra?