首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ECIES:带Kmac和无MAC的ECDSA

ECIES:带Kmac和无MAC的ECDSA
EN

Cryptography用户
提问于 2018-07-03 18:58:00
回答 1查看 406关注 0票数 3

我有几个关于ECIES的问题。我理解ECIES是如何工作的,如果我想让ECIES与ECDSA一起进行身份验证,我必须做些什么(我知道,为了完全身份验证,我必须拥有PKI,但是为了简单起见,我不会使用PKI)。我可以使用签名-加密-符号(如这里描述的与ECDSA):

代码语言:javascript
复制
ECIES(Bob's public key, M || ECDSA(Alice's static private key, M))

在这种情况下,我有发送消息的结构:

代码语言:javascript
复制
[Alice's ephemeral public key, Alice's static public key, ciphertext, Mac's tag]

我知道这是安全的,但例如Alice:

代码语言:javascript
复制
fetch Bob's static public key
generate ephemeral key pair
SK = ECDH(Bob's static public key, Alice's ephemeral private key)
Kenc || Kmac = KDF(SK)
Ciphertext = Encrypt(Message, Kenc)
ECDSA's tag = ECDSA(Ciphertext, Alice static private key)
HMAC's tag = MAC(Alice's static public key || Ciphertext || ECDSA's tag, Kmac)

Alice首先制作ECDSA的标签,然后根据Alice的静态公钥、密文和ECDSA的标记制作MAC标签。Alice有消息的结构:

代码语言:javascript
复制
|Alice's ephemeral public key, Alice's static public key, Ciphertext, ECDSA's tag, MAC's tag|

我认为这是安全的,因为ECDSA的标签是由Kmac签署的,而Eve不能只接收这条信息,扔掉Alice的ECDSA标签,用夏娃自己的密钥签名,因为在那之后她需要制作MAC标签,而她不能,因为她不知道Kmac。

我是否正确理解,这是安全的签名加密签名?

如果这是正确的,我不确定MAC的标签在这个方案中是否必要。爱丽丝会这样做:

代码语言:javascript
复制
fetch Bob's public key
generate ephemeral key pair
SK = ECDH(Bob's public key, Alice's ephemeral private key)
Kenc || Kmac = KDF(SK)
Ciphertext = Encrypt(Message, Kenc)
ECDSA's tag = ECDSA(Alice's public key || Ciphertext || Kmac, Alice's static private key)

爱丽丝有发送信息的结构:

代码语言:javascript
复制
|Alice's ephemeral public key, Alice's staic public key, C, ECDSA's tag|

我认为Bob可以使用ECDSA的标记来验证消息没有被更改,并且这个消息是由Alice发送的。伊芙不能妥协,因为她必须知道Kmac是用来做正确的ECDSA的标签,不是吗?

或者,例如,我是否可以只对握手消息使用最后一种方案,然后使用对称密码和MAC加密下一个消息?

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-07-08 19:41:57

票数 4
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/60491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档