我想知道是否有可能出现以下情况。
与服务器交换密码时,应保护密码。因此,用户可以使用生成的密钥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,并可以访问该信息。
(如果可能的话)如何实施这样一个系统?
发布于 2018-11-06 14:59:01
这会导致eS(m)吗?
这取决于您的解密/加密功能。
这有可能吗?
是。想象一下简单的凯撒或维吉娜·切弗尔,这肯定会奏效。
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密钥交换协议的库,它的功能与您所描述的完全相同,但它是防弹的(到目前为止)。
https://stackoverflow.com/questions/53174281
复制相似问题