是否有任何(正确指定的)元格式/模式格式来描述加密消息结构?
我正在寻找一种方法来描述格式(某些通道可能需要对称/非对称编码或签名),而不仅仅是“这使用方案 #5 - 有关更多信息,请参阅文档”。
让它计算机可读可以让我做一些有趣的修补 - 例如以编程方式推断必须预先共享哪些信息才能使方案工作,推断消息的哪些部分具有完整性,生成方案属性的报告(包括错误由于填充不足等)-但对我来说,拥有一种表达事物的语言也让我感觉更整洁。
作为说明性(不是实际语法!)示例,例如:
random-iv[128] + CTR[AES](shared-secret[256], iv, message)
- IV,后跟 AES-256-CTR 编码消息(未指定共享秘密)message + your-key[2048].public + RSA[DECODE](your-key[2048], random-padding[256] + SHA256(message))
- 消息后跟公钥和 SHA-256 哈希的 RSA 签名HMAC[SHA256]({0x123456...}, message) + message
- HMAC 首先(秘密作为文字),与消息连接RSA[ENCODE]({0x...my-key-literal}, random-iv[128] + random-key[256]) + CTR[AES](random-key[256], random-iv[128], message)
- 指定我的加密密钥,并使用 AES-256 随机密钥的消息
如果没有任何硬编码值(例如,HMAC 秘密不是文字),那么它将描述通用方案。
使用硬编码值,您可以描述特定通道上预期的数据,甚至可以验证它是通用方案的子集。
这有点类似于结构化数据的 ASN.1(它可以让您描述二进制流的内部结构,甚至与 PER 之类的东西结合使用时的按位布局),但可能更像是方程/函数表达式,带有密码原语和未知数等。
似乎应该是可能的,但我找不到任何东西。是否存在用于加密的元格式?