我知道一个使用认证加密和公钥签名实现C0加密的项目。因此,为一条消息生成的密文是:
ciphertext = signature_Ed25519 + nonce + mac_Poly1305 + XSalsa20(plaintext)我很难理解这两种方法的好处,因为MAC已经在那里对发送者进行身份验证。有什么想法吗?
整个流程如下:
Alice and Bob each have an X25519 encryption key pair for talking to each other.
Alice has an Ed25519 signing key pair that is used for everybody.爱丽丝给鲍勃发了一条消息:
1. encrypted = crypto_box(plaintext, nonce, bob_publickey, alice_secretkey)这是加密_方框()提供的。
加密is = nonce + mac_Poly1305 +XSalsa20(明文)
2. ciphertext = crypto_sign(encryted, alice_signing_secretkey)这是加密_标志()提供的。
密文现在= signature_Ed25519 +加密
发布于 2021-01-25 14:21:17
签名提供了MACs不具备的一项属性:不可否认。只要有MAC (或AEAD),任何拥有秘密密钥的人都可以发送消息。这样鲍勃就可以伪造一条信息并声称是爱丽丝发的。有了签名,只有持有相应私钥的一方才能创建签名。MAC认证消息,而不是发送者。
当需要此属性时,必须接受添加签名的性能下降。如果不需要这个属性,那么就没有必要签名了。
https://crypto.stackexchange.com/questions/87773
复制相似问题