首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能Encrypt1(m),Encrypt2(E1(m),Decrypt1(E2(E1(M)和Decrypt2(E2(m))吗?

你能Encrypt1(m),Encrypt2(E1(m),Decrypt1(E2(E1(M)和Decrypt2(E2(m))吗?
EN

Stack Overflow用户
提问于 2018-11-06 14:49:17
回答 1查看 49关注 0票数 0

我想知道是否有可能出现以下情况。

与服务器交换密码时,应保护密码。因此,用户可以使用生成的密钥kUser加密密码。Encrypt(m, kUser)导致加密的消息eU(m)。现在,用户将此信息发送到服务器。服务器现在用自己的密钥kServer加密消息。Encrypt(eU(m), kServer)导致eS(eU(m))。现在,服务器将此信息发回,用户现在使用他以前使用的密钥解密消息。Decrypt(eS(eU(m), kUser)这会导致eS(m)吗?这会是占有性的吗?

这就像想象一个行李箱里面储存的信息。用户将他的锁A放在行李箱上,并将其发送给服务器。没有人可以访问信息,只有一个钥匙锁定A,服务器现在放置了第二个锁B除了锁A在手提箱上,并将它发送回用户。行李箱现在由两个锁A和B锁,然后用户使用他的钥匙A删除他的锁A,并发送手提箱,只有锁B剩余到服务器。服务器现在用他的密钥B删除锁B,并可以访问该信息。

(如果可能的话)如何实施这样一个系统?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-06 14:59:01

这会导致eS(m)吗?

这取决于您的解密/加密功能。

这有可能吗?

是。想象一下简单的凯撒或维吉娜·切弗尔,这肯定会奏效。

代码语言:javascript
复制
  const keyA = "B";
  const keyB = "C";
  const text = "AB";

  const sent = encrypt(text, keyA); // BC
  const sendBack = encrypt(sent, keyB); // DE
  const sent2 = decrypt( sendBack, keyA); // CD
  decrypt(sent2, keyB); // AB

然而,它不适用于转换和其他更复杂的算法,例如AES。

(如果可能的话)如何实施这样一个系统?

不要。最弱的加密是你自己发明的。相反,可以使用一个实现Diffie-Hellman密钥交换协议的库,它的功能与您所描述的完全相同,但它是防弹的(到目前为止)。

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

https://stackoverflow.com/questions/53174281

复制
相关文章

相似问题

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