首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >锂钠密封盒泄露密钥ids吗?

锂钠密封盒泄露密钥ids吗?
EN

Cryptography用户
提问于 2019-01-28 18:22:24
回答 2查看 451关注 0票数 2

我正在使用python和利卜纳,这是一个using包装器,用于开发一个用户可以保存加密数据的应用程序。

Alice使用libnacl.sealed.SealedBox(keyBob)加密她的消息,并将其上传到数据库供Bob下载。鲍勃和伊芙可以读取数据库,并在那里观察到一个新条目。夏娃和鲍勃都不知道这消息是爱丽丝发的。Bob可以解密消息,因此知道他是收件人。

伊芙也知道鲍勃的公钥。伊芙能告诉我消息的收信人是鲍勃吗?

编辑:

VincBreaker向我指出了锂钠密封盒的文档,您可以在那里找到:

ephemeral_pk‖box(m,recipient_pk,ephemeral_sk,nonce=blake2b(ephemeral_pk‖recipient_pk))

这表明密封盒中包含了一些“短暂”的公钥。

“短暂”是什么意思?

准确地说,是否有一种方法可以将ephemeral_pk链接到Bob的实际公钥?

EN

回答 2

Cryptography用户

回答已采纳

发布于 2019-01-28 19:42:48

来自利伯钠网站的答案

只有收件人可以使用其私钥解密这些消息。虽然收件人可以验证邮件的完整性,但无法验证发送方的身份。

虽然Bob可以解密消息,不能用他的公钥和私钥对验证身份,但Eve无法用唯一的公钥确定身份。

要理解密封的盒子,我们必须先看到密码箱。

密码箱结构

Cryptobox使用发送方的秘密密钥和接收方的公钥以及当前的m加密和验证消息n

c = box(m,nonce,recipient_{pk},sender_{sk})

接收方使用其秘密密钥和发送者的公钥对c进行验证和解密。

密封盒结构

仅使用收件人的公钥构造的密封盒。密封盒是;

sealed\_box = ephemeral_{pk} \| box(m, recipient_{pk}, ephemeral_{sk}, nonce)
nonce = blake2b(ephemeral_{pk} \| recipient_{pk})

生成短命私钥对和公钥对(生成和使用一次),然后销毁临时私钥。

因此,密封盒不包含有关发件人的信息。由于密封盒只能由recipient_{sk}打开,所以Eve也无法理解接收者。

但是,Eve可以查找谁下载了消息。如果没有它,鲍勃怎么会知道有一个信息给他?防止这种情况发生的最好办法是;

  1. 鲍勃检查自己
  2. Bob使用私人信息检索隐藏他访问的数据。

此外,这个一个密封的盒子和一个普通的液体钠盒子有什么区别?的答案可能会有所帮助。

票数 2
EN

Cryptography用户

发布于 2019-01-31 00:54:51

接收方的公钥应该在加密之前安全地传输到发送方。

而密文本身并不包含任何关于接收者的信息。

但是,如果接收者的密钥被泄露,可以使用该密钥解密先前捕获的密文。

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

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

复制
相关文章

相似问题

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