九头蛇是一个神秘的组织。它由高层的几个董事和他们下面的许多代理人组成。
主任派特工执行秘密任务。在这些任务中,通信不稳定和不可靠。代理依赖于不受信任的信使将消息传递回主管。消息包括代理的# (33,等等)。这些信息的内容并不是秘密的,但重要的是它们不是伪造的。
在特工离开之前,主任会给他发密匙,让特工用他的信息“签名”来验证真伪。代理有不同的密钥,不应该像其他代理那样伪造消息。这些钥匙可以用六个月。董事们拒绝使用6个多月前发布的密钥签署的任何信息。
董事之间保持极小的沟通。它们不知道其他代理何时向代理发出密钥,尽管每个代理都必须能够独立地验证从这些代理接收的消息的真实性。
董事们共享一个最高机密密钥,他们可以用来为代理创建密钥。
我需要实施这个系统。
到底发生了什么,有什么特定的条件吗?
应该使用哪些密码原语,以及如何和在何处应用它们?
我相信我会使用HMAC,但是游戏中的多个级别的键让我不太清楚。
发布于 2015-04-03 15:35:54
当一名主任向执行任务的代理发送id (A)时,他使用他的秘密密钥生成一个时间戳(B)和一个A和B (C)的HMAC。
他把B和C交给探员。C成为Agent的秘密密钥。
当代理发送消息时,他使用C计算它(D)的HMAC,并将它包含在消息中。他还包括A和B.C当然是秘密的,不传出去。
当处长收到讯息时,他会验证时间戳B是否少于6个月。然后,他利用A和B的HMAC (使用自己的秘密)重新计算C,然后使用C计算消息的HMAC,并验证它是否符合D。
https://security.stackexchange.com/questions/85168
复制相似问题