gpt4 book ai didi

加密的 javascript 实现,包括似是而非的推诿

转载 作者:数据小太阳 更新时间:2023-10-29 03:58:01 25 4
gpt4 key购买 nike

是否有任何加密的 javascript 实现,包括似是而非的否认?

我想要展示此处描述的功能的东西:http://en.wikipedia.org/wiki/Deniable_encryption

可拒绝加密允许加密消息的发件人拒绝发送该消息。这需要可信赖的第三方。一个可能的场景是这样的:

  1. 爱丽丝是鲍勃的妻子,鲍勃怀疑他的妻子通奸。她想与她的 secret 情人卡尔交流。她创造了两把 key ,一把打算保密,另一把打算牺牲。她将 key (或两者)传递给 Carl。
  2. Alice 为 Carl 构造了一条无害的消息 M1(打算在被发现时向 Bob 透露)和一封给 Carl 的有罪情书 M2。她根据消息 M1、M2 构造了一个密文 C,并将其通过电子邮件发送给 Carl。
  3. Carl 使用他的 key 解密 M2(也可能解密 M1,以便也读取假消息)。
  4. Bob 发现了给 Carl 的电子邮件,变得可疑并强制 Alice 解密邮件。
  5. Alice 使用牺牲 key 并向 Bob 显示无害消息 M1。由于 Bob 不知道另一个 key ,他不得不假设没有其他消息 M2。

最佳答案

有许多提供加密原语的 Javascript 库,但我从未听说过任何包含似是而非的推诿的库。

您可以实现一种类似于 TrueCrypt 使用的加密方案。它仅限于 2 组加密数据:诱饵数据和真正的 secret 数据。但它的设计非常简单,所以如果您不需要超过 2 组数据,那就去吧。您可以修改它以允许超过 2 组,但它不能是“动态的”。

TrueCrypt documentation page上有详细解释,但基本原理是加密数据包含每个数据集的固定宽度 header 。 header 包含有关其数据集的信息。在大多数基本情况下,这只会是整个加密 block 中数据集开始的偏移量、该数据集的长度和一些用于检查 header 是否成功解密的金丝雀值。当用户提供密码时,系统会尝试解密第一个 header ,如果失败,它将尝试下一个 header ,直到成功或没有 header 为止。如果成功,则解密 header 中指定的字节。

这个方案是为文件系统加密而设计的,所以在你的系统中使用会有很大的缺陷——当对手强制你透露诱饵数据的 key 时,他会问为什么它的大小小于整个大小加密 block 。

关于加密的 javascript 实现,包括似是而非的推诿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12375896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com