¿Qué algoritmo de cifrado permite menos datos de salida que los datos de origen? [duplicar]

-5

Estoy tratando de averiguar cómo hacer que la información de mi fuente se compile de forma más pequeña utilizando texto cifrado. Esto podría potencialmente cambiar el juego al transferir datos de gran parte y ofrecer seguridad al mismo tiempo.

¿Hay algún tipo de cifrado que cambie la fuente a menos letras y números?

(por falta de una palabra mejor, estoy usando la palabra: cifrado) (esta pregunta no es sobre el cifrado y la compresión, sino sobre qué tipo de cifrado puede cambiar la fuente a menos letras / números de cadena)

    
pregunta DeerSpotter 25.10.2018 - 18:04
fuente

3 respuestas

-2

Códigos puede hacerlo: utilizan tablas de búsqueda (" Libros de códigos ") que asignan algo (palabras, frases o secuencias de bytes arbitrarias) a otros símbolos, y estos últimos pueden ocupar menos tamaño que los anteriores, logrando así (posiblemente solo con algunos mensajes de origen) una compresión.

Sin embargo, las partes que se comunican ya deben estar compartiendo el libro de códigos para poder comunicarse.

El tamaño de un solo mensaje "encriptado" + el del libro de códigos siempre será mayor que el del texto simple, pero con suficientes mensajes podría compensarlo.

En cualquier caso, el libro de códigos debe comunicarse de forma segura (por ejemplo, a mano), por lo que su tamaño solo importa, ya que pueden ocupar mucho espacio en los sistemas de almacenamiento de las partes.

Es probable que todos los históricos sean fácilmente rompibles, pero con la tecnología actual uno podría ser capaz de crear un esquema seguro, probablemente utilizando una longitud de secuencia de origen mínima lo suficientemente larga.

Si desea un esquema que admita cualquier posible mensaje de origen, probablemente necesitará usar un "libro de códigos" muy grande (posiblemente difícil de manejar).
Deberá usar uno diferente para cada grupo de partes que no debería poder decodificar los mensajes de los otros grupos, y lo más probable es que tenga que cambiarlos regularmente.

En este punto, probablemente debas dirigirte a crypto.stackexchange.com con tu pregunta, la gente allí será mucho más competente en informándole si un esquema similar podría ser seguro y qué advertencias se aplican a él.

Debo enfatizar aquí no tratar de idear su esquema de encriptación, o al menos no usarlo / confiar en él para nada hasta que haya sido analizado exhaustivamente, durante mucho tiempo, por (muchos) criptógrafos reales .
Si no estás familiarizado con el campo, te sorprenderás de lo fácil que es disparar con tu pie y hacer un sistema de cifrado trivialmente rompible, por muy increíble que pueda parecerte.

    
respondido por el gbr 26.10.2018 - 22:37
fuente
15

Los datos cifrados no deben distinguirse del ruido aleatorio. Los datos aleatorios no se pueden comprimir. Por lo tanto, primero comprime los datos y luego los encripta.     

respondido por el DarkMatter 25.10.2018 - 18:09
fuente
11

No, lo que estás tratando de lograr es imposible.

El cifrado trata de mantener la información confidencial. Para esto, toma un mensaje de entrada de todos los mensajes de entrada posibles y los cifra de tal manera que la salida no filtre ninguna información sobre el mensaje de entrada. Obviamente, no desea que los mensajes se cifren en la misma salida porque, en ese caso, no podrá recuperar un mensaje o no podrá elegir qué mensaje se cifró.

Ahora, si la salida fuera más pequeña que la entrada, entonces, por definición, habría menos valores de salida que los mensajes de entrada. En ese caso, debe ser mensajes asignados a un valor de salida que ya se ha asignado a otro mensaje de entrada. Esto se denomina el principio de Pigeonhole y se explica en la mayoría de los cebadores criptográficos.

Por lo tanto, lo mejor que puedes hacer es lograr un equilibrio.

Incluso la interrupción de la operación podría causarle problemas si intenta reutilizar la clave. El problema es que un mensaje repetido se cifraría en la misma salida, filtrando información a un atacante de que los mensajes son idénticos. Para esto, la mayoría de los cifrados requieren un IV como entrada. A veces, este IV puede generarse durante el cifrado y el descifrado (números de sector para el cifrado del disco duro), pero a menudo el IV debe almacenarse junto al texto cifrado.

Y luego todavía tendría un mensaje que es confidencial, pero no está protegido o autenticado por integridad. En general, también es necesario agregar una etiqueta de autenticación. Una forma común de hacer esto es calcular un valor de MAC utilizando HMAC.

Por estas razones, el cifrado a menudo ampliará el tamaño del mensaje en lugar de reducirlo.

Por lo tanto, lo único que puede hacer es reducir el espacio del mensaje de entrada. Esto se puede hacer mediante la compresión. Pero también puede intentar encontrar una mejor manera de codificar la información en el mensaje de entrada. Por ejemplo, XML tiene una gran cantidad de sobrecarga, que podría eliminarse mediante el uso de una codificación binaria como ASN.1 con DER o incluso las reglas de codificación PER extrañas pero altamente eficientes.

Tenga en cuenta que el tamaño del texto cifrado también puede filtrar información a un atacante. Por ejemplo, la velocidad de bits de un flujo de MP3 de velocidad variable podría decir mucho sobre el contenido de la transmisión, que se ocultaría si se transmitiera un formato de transmisión de velocidad constante / onda sin procesar.

Finalmente, me gustaría que apunte a Formato de preservación del cifrado o FPE. FPE se puede usar para proporcionar cifrado de mensajes donde el espacio de mensaje de salida es exactamente tan grande como el espacio de mensaje de entrada, incluso si el espacio de mensaje de entrada no es una potencia de dos (Es decir, puede codificarse simplemente como una secuencia de bits). Este método se usa a menudo para cifrar información como los números de tarjetas de crédito, donde el mensaje de entrada nunca se repetirá.

Por lo tanto, FPE es una forma segura de compensar, donde los cifrados modernos a menudo operan en bits, bytes o bloques completos (múltiples bytes) de texto simple a la vez.

    
respondido por el Maarten Bodewes 25.10.2018 - 18:44
fuente

Lea otras preguntas en las etiquetas