¿Por qué el espacio clave de una cifra se determina como 2 ^ algo?

Como dice la otra respuesta, la razón es que las computadoras funcionan en binario. Es conveniente para las computadoras, pero también es conveniente matemáticamente.

Mucha criptografía se basa en la teoría de los campos finitos (también conocidos como campos de Galois). Existen campos finitos de tamaño [matemática] p ^ k [/ matemática] para todos los números primos [matemática] p [/ matemática], y 2 resulta ser el número primo más conveniente.

La razón por la que decimos [matemáticas] 2 ^ n [/ matemáticas] en lugar de expandirlo es que los números de los que estamos hablando son enormes. Un número como:

340,282,366,920,938,463,463,374,607,431,768,211,456

no tiene sentido, incluso para un matemático, pero [matemática] 2 ^ {128} [/ matemática] es algo que puede manejar de inmediato.

EDITAR

En un comentario en otra parte, usted preguntó qué hacer si la “clave” no es binaria.

En primer lugar, en una computadora moderna, todo es binario. Dicho esto, convertir los datos “en bruto” (por ejemplo, una contraseña o frase de contraseña, que a partir de ahora denominaré “cadena”) en material clave es parte de cualquier criptosistema moderno, y es importante hacerlo bien .

El enfoque más simple es hacer un hash de la cadena usando una función de hash criptográfica como SHA-2 o Keccak. Sin embargo, esto puede ser vulnerable a un ataque de diccionario. Un enfoque más seguro es incluir una pequeña cantidad de datos aleatorios, llamados “sal”, que se transmiten en texto sin formato junto con el mensaje cifrado. Entonces la clave es el hash de la sal y la cuerda.

Para obtener detalles sobre un sistema real de “cadena a clave”, consulte, por ejemplo, la sección correspondiente de la especificación OpenPGP.

Voy a tocar o elaborar algunos puntos que pueden no estar claros en los otros comentarios, y abordaré explícitamente dos preguntas. ¿Por qué los definimos exponencialmente y por qué usamos la base 2?

¿Por qué exponencial?

Para estas cosas tendemos a usar expresiones exponenciales. Como notó 2 ^ 8 es 256. Llegaré a la parte base 2 más tarde, pero solo concéntrese en esta parte en por qué la exponencial. Entonces piense en b ^ 8 donde b podría ser cualquier base mayor que 1.

Demasiado grande para no usar exponenciales

La razón más obvia de que los números con los que tenemos que lidiar son enormes. Es mucho más fácil decir “dos al ciento veintiocho” que decir

trescientos cuarenta undecillion, doscientos ochenta y dos decillion, trescientos sesenta y seis nonillion, novecientos veinte octillion, novecientos treinta y ocho septillion, cuatrocientos sesenta y tres sextillion, cuatrocientos sesenta y tres quintillion, trescientos setenta y cuatro cuatrillones, seiscientos siete trillones, cuatrocientos treinta y un mil millones, setecientos sesenta y ocho millones, doscientos once mil cuatrocientos cincuenta y seis

Entonces, solo por hablar de estos números, el uso de formas exponenciales es bastante esencial.

Podemos sumar (y restar) en lugar de multiplicar (y dividir)

Supongamos que estamos hablando de la fuerza de una clave aleatoria cuya fuerza es X (y es una forma exponencial), y hacemos que la clave sea más larga, digamos, 8 bits. Al usar exponenciales podemos simplemente sumar X + 8. Si en lugar de eso tuviéramos que usar algunas unidades que son solo el número de posibilidades, y en estos términos la fuerza del original era Y , entonces para obtener la nueva fuerza tendríamos que multiplicar Y multiplicado por 256.

Al usar los exponentes, podemos simplificar nuestras matemáticas y nuestras descripciones usando las propiedades de los logaritmos. No solo simplifica las matemáticas, sino que también las ajusta mejor a nuestras intuiciones generales.

La fuerza crece exponencialmente

Una noción útil en criptografía es la noción de un “factor de seguridad”, n . Para que un sistema sea “bueno”, la idea es que a medida que eliges una n más grande, el trabajo que el defensor (la persona que usa el sistema) tiene que hacer crece como máximo polinomialmente con n . Pero el trabajo que tiene que hacer el atacante crece exponencialmente.

Entonces, cuando duplicamos el tamaño de una clave, el trabajo que tenemos que hacer con el sistema puede duplicarse o incluso más, pero el trabajo que tiene que hacer un atacante aumenta mucho más.

Esta es la razón por la cual los aumentos en el poder de cómputo ayudan al defensor mucho más de lo que ayudan al atacante. Si usar claves de 128 bits es computacionalmente demasiado costoso y nos quedamos atrapados usando claves de 64 (o 56) bits, esas claves estarían al alcance de un atacante con recursos suficientes. Pero al ir a 128 bits, pone un ataque de fuerza bruta en esas teclas muy lejos del alcance de cualquier atacante terrenal.

Tamaño y potencia

Otras respuestas ya cubren esto. Cuando tiene un PIN de 4 dígitos, puede ser cualquiera de los 10000 valores posibles (0000–9999). Pero si lo convierte en un PIN de 8 dígitos, puede ser uno de mil millones de valores (00000000–99999999). El número de valores posibles crece exponencialmente con la longitud del PIN. (En el caso de los dígitos, la base es 10). Si d es el número de dígitos, entonces un número de dígitos d puede ser uno de los 10 ^ d valores posibles.

Cambiando a cómo se hacen las cosas en una computadora, cuando tiene 8 bits de almacenamiento, puede hacer que contenga cualquiera de los 256 valores posibles. Cuando tiene 16 bits de almacenamiento, puede 65536 valores posibles. Esto es lo mismo que el caso con los dígitos en un PIN, excepto que la base es 2.

Por qué base 2

Entonces, ahora que tenemos cuatro razones para hablar de los exponentes, ¿por qué la base de la exponenciación 2?

Bueno, lo más obvio es que las computadoras funcionan en la base dos. Esto es parte de la física subyacente. Es mucho más fácil construir “interruptores” que estén encendidos o apagados, que construir interruptores que contengan 1 de diez valores distintos.

Pero hay otras razones (en realidad es la causa subyacente por la primera razón), la unidad básica de información es el bit. El bit (“encendido” o “apagado”, “1” o “0”, “sí” o “no”) es el átomo de información. (Curiosamente, al igual que dividir el átomo hace que los átomos reales no sean atómicos, la computación cuántica no usa estos bits clásicos, sino que requiere una nueva noción que realmente no entiendo).

Una clave, en este caso, es un conjunto ordenado de dígitos binarios. Hay 2 posibilidades para el primer dígito (0 y 1), dos posibilidades para el segundo dígito (0 y 1), y así sucesivamente. Esto significa que el número total de claves posibles para una clave larga de n dígitos es [math] \ underbrace {2 \ times \ ldots \ times 2} _n [/ math], que equivale a [math] {2} ^ {n} [/mates].