Comience con un mapeo trivial de enteros a cadenas (como el mapeo de base 26 0 ↦ aaaaaa
, 1 ↦ aaaaab
, …, 499999 ↦ abclqt
), luego use el cifrado de preservación de formato con alguna clave secreta constante para cifrar las cadenas (dependiendo de clave elegida, esto podría verse como aaaaaa
↦ c1uy7o
, aaaaab
↦ y1ikeh
, …, abclqt
↦ n95ayi
). El resultado será indistinguible de aleatorio para cualquiera que no conozca la clave de cifrado, y la unicidad está garantizada porque existe una función de descifrado.
El cifrado de preservación de formato se distingue del cifrado regular en que una construcción inteligente permite que los espacios de entrada y salida tengan un tamaño arbitrario; no necesitan estar en correspondencia con las cadenas binarias [math] 2 ^ k [/ math] de algún tamaño de bloque [math] k [/ math] (por ejemplo, [math] k \ in \ {128, 192, 256 \} [ / matemáticas] para AES).
Hay construcciones probadamente seguras para el cifrado de preservación de formato basadas en un cifrado de bloque normal como AES. El estándar moderno se llama modo FFX de AES.
http://en.wikipedia.org/wiki/For…
- ¿Cuál es el mejor algoritmo de compresión de imágenes y cuál es el algoritmo de compresión de Facebook?
- ¿Hay alguna manera de extraer la palabra principal de una lista de sinónimos que representa la lista?
- ¿Para qué aplicaciones son especialmente adecuados los lenguajes de programación lógica? ¿Cuándo usarías un lenguaje como Prolog? ¿Cuáles son las aplicaciones más exitosas de la programación lógica?
- ¿Cómo puede un algoritmo RLS utilizar el filtro Wiener como bloque FIR (M-tap)?
- Como principiante, ¿debo invertir mi tiempo en escribir mi propio algoritmo de aprendizaje automático desde cero?