我知道这或多或少是一个算法或设计问题,而不是太多的编程问题,但我希望没关系。
我正在使用盲消息并由 C 签名。签名后,我想删除盲消息并让其他用户 A 和 B 能够共享消息。这是安全的吗?如果签名者拥有公钥和私钥,他们仍然可以阅读这些消息吗?揭盲后我是否应该采取进一步措施以确保机密性?
我已经阅读了各种数学公式来解释它是如何工作的,但我更像是一个程序员而不是数学家。我想确保机密性,但我不确定它是否有效。
我知道这或多或少是一个算法或设计问题,而不是太多的编程问题,但我希望没关系。
我正在使用盲消息并由 C 签名。签名后,我想删除盲消息并让其他用户 A 和 B 能够共享消息。这是安全的吗?如果签名者拥有公钥和私钥,他们仍然可以阅读这些消息吗?揭盲后我是否应该采取进一步措施以确保机密性?
我已经阅读了各种数学公式来解释它是如何工作的,但我更像是一个程序员而不是数学家。我想确保机密性,但我不确定它是否有效。
签名不能确保机密性。如果您有必须传输但应保密的数据,那么您必须使用确保机密性的传输机制。
您显然还希望消息由实体 C 签名,但没有向 C 提供有关消息的任何线索。一般而言,签名实体只需要知道签名数据的哈希值。然后,签名者可能会尝试通过对潜在消息进行散列来“猜测”数据,并查看一个是否与它收到的散列匹配。这就是盲签名起作用的地方:防止签名者甚至看到散列消息。
碰巧的是,使用 RSA,可以从签名和签名者的公钥中恢复散列消息。签名者(C)当然知道他自己的公钥。因此,签名本身必须保密(否则,首先使用盲签名是没有意义的)。因此,当消息从 A 传输到 B 时,您使用任何机制来保持消息本身的机密性,也必须应用于签名(并且签名不是那种机制)。