¿Cómo se usa la aritmética modular en criptografía?

Esto es un poco como preguntar cómo se usan las reglas en la arquitectura. La aritmética modular, de hecho, se usa en criptografía, pero la pregunta es extrañamente mezclar dos niveles diferentes de la jerarquía conceptual. La aritmética modular es un ingrediente fundamental y elemental, como una herramienta básica; La criptografía es un gran esfuerzo, un campo, un dominio del conocimiento.

Uno de los sistemas criptográficos más antiguos y simples es el cifrado César, donde cada letra del alfabeto se desplaza en una cantidad fija. Pero, por supuesto, si empuja cada letra tres pasos hacia adelante (A se convierte en D, B se convierte en E, C se convierte en F), etc., debe decidir qué hacer con las últimas tres letras. Desplazar X, Y o Z tres letras hacia adelante parece sumergirlos en la nada que se encuentra más allá del alfabeto.

Bueno, naturalmente, podemos decidir “envolvernos” fingiendo que el alfabeto está escrito en un círculo, no en una línea recta, y así mapeamos X a A, Y a B y Z a C. Lo que acabamos de hacer, en términos aritméticos, es sumar 3 a la posición de cada letra, pero realizar la operación “+3” módulo 26. Así que hay aritmética modular en uso criptográfico hace unos 2.000 años.

Dos ejemplos en los tiempos modernos:

  • La operación fundamental de combinar una secuencia de claves con una secuencia de bits simple en el nivel binario es unirlos XOR. Esto es lo mismo que el módulo de adición 2.
  • La criptografía de clave pública moderna tiene muchos protocolos aritméticos modulares. RSA, por ejemplo, llama repetidamente a elevar números a exponentes y a otros varios números.

Ciertamente, hay algunos protocolos criptográficos que no hacen uso de la aritmética modular, pero diría que son la excepción.

More Interesting

Suponga que [math] f {\ left (\ frac {x + y} {2} \ right)} \ le \ frac {f (x) + f (y)} {2} [/ math] para todo [math] x, y \ in \ mathbb R [/ math]. ¿Se puede demostrar que [matemáticas] f {\ left (\ frac {x_ {1} + \ cdots + x_ {n}} {n} \ right)} \ le \ frac {f (x_1) + \ cdots + f (x_n)} {n} [/ matemáticas]? ¿Si es así, cómo?

Teoría de números: ¿Qué es un módulo?

Si [math] a + b + c + d = K [/ math] y existen algunas restricciones para cada una de las cuatro variables, como [math] 0 \ leq a \ leq 8 [/ math], ¿cómo encuentro? todas las soluciones?

Si la conjetura de Goldbach es verdadera, entonces dado un número par [matemática] e [/ matemática], ¿cuál es la complejidad de encontrar números primos [matemática] p_1 [/ matemática] y [matemática] p_2 [/ matemática] tal que [matemática] p_1 + p_2 = e [/ matemáticas]?

Pruebas (matemáticas): ¿Cómo se puede probar que hay infinitos números primos de la forma 6x – 1?

¿Qué debe saber todo programador sobre las ecuaciones de diofantina?

¿Cómo se muestra que [matemáticas] (2 ^ a-1) (2 ^ b-1) = 2 ^ {2 ^ c} +1 [/ matemáticas] es imposible en enteros no negativos [matemáticas] a, b, [/ matemáticas] y [matemáticas] c [/ matemáticas]?

Dados los números reales positivos x e y, demuestre que [matemáticas] \ frac {2} {\ frac {1} {x} + \ frac {1} {y}} \ le \ sqrt {xy} \ le \ frac {x + y} {2} [/ matemáticas]?

¿Por qué a = (a + b) – (b = a) es una mala elección para intercambiar dos enteros?

El producto de cuatro términos consecutivos de una progresión aritmética de enteros más el cuarto poder de la diferencia común es siempre un cuadrado perfecto. ¿Cómo se verifica esta identidad incorporando simetría en la notación?