Ci sono dei meta-formati per crypto?

10

Esistono formati meta / formati / schemi (correttamente specificati) per descrivere strutture di messaggi crittografici?

Sto cercando un modo per descrivere il formato (dove alcuni canali potrebbero desiderare codifica simmetrica / asimmetrica o firme) che non è solo "Questo usa lo schema # 5 - vedi i documenti per altro".

Avendolo leggibile dal computer vorrei farmi un po 'di complicazioni - cose come dedurre programmaticamente quali informazioni devono essere pre-condivise affinché lo schema funzioni, deducendo quali parti del messaggio hanno integrità, producendo un report delle proprietà dello schema (compresi gli errori dovuti a un'insufficiente imbottitura, ecc.) - ma mi sembra anche più semplice avere un linguaggio per esprimere le cose.

Come esempio illustrativo (non sintassi reale!), qualcosa del tipo:

  • random-iv[128] + CTR[AES](shared-secret[256], iv, message) - IV, seguito dal messaggio codificato AES-256-CTR (segreto condiviso non specificato)

  • message + your-key[2048].public + RSA[DECODE](your-key[2048], random-padding[256] + SHA256(message)) - messaggio seguito da chiave pubblica e firma RSA dell'hash SHA-256

  • HMAC[SHA256]({0x123456...}, message) + message - HMAC prima (segreto come letterale), concatenato con il messaggio

  • RSA[ENCODE]({0x...my-key-literal}, random-iv[128] + random-key[256]) + CTR[AES](random-key[256], random-iv[128], message) - specifica la mia chiave di crittografia e usa AES-256 per il messaggio con la chiave casuale

Se non ci fossero valori codificati (ad esempio il segreto HMAC non fosse un valore letterale), descriverebbe lo schema generico.

Con i valori codificati puoi descrivere i dati attesi su un particolare canale e persino verificare che si tratti di un sottoinsieme dello schema generico.

Questo è leggermente analogo a cose come ASN.1 per i dati strutturati (che ti permette di descrivere la struttura interna di un flusso binario, e anche il layout bitwise quando combinato con qualcosa come PER), ma forse più come un'equazione / funzionale -espressione, con primitive crittografiche e sconosciute ecc.

Sembra che dovrebbe essere possibile, ma non ho trovato nulla. Esistono metadati esistenti per questo per crypto?

    
posta cloudfeet 02.06.2015 - 09:51
fonte

2 risposte

2

Non è esattamente quello che hai richiesto, ma almeno questi due valgono un'occhiata secondo me.

  • Esiste una notazione generale e astratta per descrivere i protocolli di sicurezza , che vengono utilizzati per descrivere cose piuttosto complicate come Kerberos. Il protocollo Needham-Schröder può anche essere espresso in questo modo. Di nuovo, non proprio quello che stavi cercando, ma mi ha fatto pensare a questo.
  • A un livello più fondamentale, ti suggerisco di dare un'occhiata alla lingua Cryptol che tenta di implementare la crittografia più vicino a ciò che si vedrebbe in un libro di testo. Tuttavia, il punto di Cryptol è più nel decifrare le funzioni che i messaggi.

Ad ogni modo, il primo post qui dopo anni di agguato e nutrimento per gli altri. Spero che questo aiuti un po '.

    
risposta data 15.06.2015 - 07:06
fonte
0

Sembra che tu stia descrivendo in qualche modo Sintassi dei messaggi crittografici (CMS) . Si è sviluppato generosamente da PKCS # 7.

    
risposta data 08.06.2015 - 20:04
fonte

Leggi altre domande sui tag