¿Hay metatatos para criptografía?

10

¿Existen metatatos / formatos de esquemas (adecuadamente especificados) para describir estructuras de mensajes criptográficos?

Estoy buscando una manera de describir el formato (donde algunos canales pueden desear codificación o firmas simétricas / asimétricas) que no es solo "Esto usa el esquema n.º 5: consulte la documentación para obtener más información".

Tenerlo en un lugar legible por computadora me permitiría hacer algunos retoques divertidos, como deducir programáticamente qué información debe compartirse previamente para que el esquema funcione, deducir qué partes del mensaje tienen integridad, generar un informe de las propiedades del esquema. (incluidos los errores debidos a un relleno insuficiente, etc.), pero también me parece más agradable tener un lenguaje para expresar las cosas.

Como ejemplos ilustrativos (¡no de sintaxis real!), algo como:

  • random-iv[128] + CTR[AES](shared-secret[256], iv, message) - IV, seguido de un mensaje codificado AES-256-CTR (secreto compartido no especificado)

  • message + your-key[2048].public + RSA[DECODE](your-key[2048], random-padding[256] + SHA256(message)) - mensaje seguido de clave pública y firma RSA del hash SHA-256

  • HMAC[SHA256]({0x123456...}, message) + message - HMAC primero (secreto como literal), concatenado con el mensaje

  • RSA[ENCODE]({0x...my-key-literal}, random-iv[128] + random-key[256]) + CTR[AES](random-key[256], random-iv[128], message) : especifique mi clave de cifrado y use AES-256 para el mensaje con clave aleatoria

Si no hubiera ningún valor codificado (por ejemplo, el secreto HMAC no era un literal), entonces describiría el esquema genérico.

Con valores codificados, puede describir los datos esperados en un canal en particular e incluso verificar que se trata de un subconjunto del esquema genérico.

Esto es ligeramente análogo a cosas como ASN.1 para datos estructurados (lo que te permite describir la estructura interna de un flujo binario, e incluso la disposición a nivel de bits cuando se combina con algo como PER), pero posiblemente más como una ecuación / funcional -expresión, con primitivas criptográficas e incógnitas, etc.

Parece que debería ser posible, pero no pude encontrar nada. ¿Existen meta-formatos para esto para criptografía?

    
pregunta cloudfeet 02.06.2015 - 09:51
fuente

2 respuestas

2

En mi opinión, no es exactamente lo que solicitó, pero al menos estos dos merecen una mirada.

  • Hay una notación general y abstracta para describir protocolos de seguridad , que se usa para Describe cosas bastante complicadas como Kerberos. El protocolo de Needham-Schröder también se puede expresar de esta manera. Nuevamente, no realmente lo que buscabas, pero me hizo pensar en ello.
  • En un nivel más fundamental, le sugiero que eche un vistazo al lenguaje Cryptol que intenta realizar la implementación de crypto más cerca de lo que uno vería en un libro de texto. Sin embargo, el punto de Cryptol es más para describir funciones que mensajes.

De todos modos, primero publica aquí después de años de acecharte y alimentarte de otros. Espero que esto ayude un poco.

    
respondido por el Téo Lohrer 15.06.2015 - 07:06
fuente
0

Parece que estás describiendo un poco la Sintaxis de mensajes criptográficos (CMS) . Surgió libremente de PKCS # 7.

    
respondido por el John Downey 08.06.2015 - 20:04
fuente

Lea otras preguntas en las etiquetas