--- id: 5 localeTitle: 5900f4231000cf542c50ff35 challengeType: 5 title: 'Problem 182: RSA encryption' --- ## Description
El cifrado RSA se basa en el siguiente procedimiento: Generar dos primos distintos p y q.Compute n = pq y φ = (p-1) (q-1). Encuentra un entero e, 1 0 Un mensaje en este sistema es un número en el intervalo [0, n-1]. Un texto que se va a cifrar se convierte de alguna manera en mensajes (números en el intervalo [0, n-1]). Para cifrar el texto, para cada mensaje, m, c = me mod n se calcula. Para descifrar el texto, se necesita el siguiente procedimiento: calcular d tal que ed = 1 mod φ, luego para cada mensaje cifrado, c, calcular m = cd mod n. Existen valores de e y m tales que me mod n = m. Llamamos mensajes m para los cuales me mod n = m mensajes no ocultos. Un problema al elegir e es que no debe haber demasiados mensajes no ocultos. Por ejemplo, vamos a p = 19 y q = 37. Entonces n = 19 * 37 = 703 y φ = 18 * 36 = 648. Si elegimos e = 181, entonces, aunque gcd (181,648) = 1 resulta que todos los mensajes posibles m (0≤m≤n-1) no están ocultos al calcularme mod n. Para cualquier elección válida de e existen algunos mensajes no ocultos. Es importante que el número de mensajes no ocultos sea mínimo. Elige p = 1009 y q = 3643. Encuentra la suma de todos los valores de e, 1 0
## Instructions
## Tests
```yml tests: - text: euler182() debe devolver 399788195976. testString: 'assert.strictEqual(euler182(), 399788195976, "euler182() should return 399788195976.");' ```
## Challenge Seed
```js function euler182() { // Good luck! return true; } euler182(); ```
## Solution
```js // solution required ```