首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可锻铸加密

可锻铸加密
EN

Cryptography用户
提问于 2016-07-11 15:54:32
回答 2查看 1.6K关注 0票数 3

我希望取得以下成果:

Alice向Bob发送具有以下格式的数据报的加密:

代码语言:javascript
复制
| 256-bit number | SomeLongArrayOfZeroes |

鲍勃知道解密密钥。

但是在数据报到达Bob之前,有一些中间层,我希望能够添加一些额外的256位数字。这些第三方不应该能够读取由Alice包含的前256位数字。我们还假设这些第三方知道他们必须修改密文的哪些部分,以便不修改其他方插入的数据。

我当时在研究同态加密,但为了这个目的,它看起来太过分了。没有必要用两个密文来相互交流。我只需要能够添加额外的数据,已经加密的密文,其中已经包含了一些信息,而不会对它造成损害。假设其他当事人会遵守一些规则,以免损坏前缀。第三方不应能够解密由另一第三方添加的信息。

最后,Bob应该能够使用Alice提供的密钥解密消息。

有什么建议吗?我在想某种流密码。可能的解决办法是什么?

EN

回答 2

Cryptography用户

发布于 2016-07-11 16:40:41

你能描述一下密钥分配方案吗?

如果您想要对称加密,那么您的要求,即中间层不能解密任何东西,都会阻止他们拥有相同的密钥,那么是否每个人都有不同的密钥,而Bob拥有所有的密钥呢?

还是你想要的是非对称加密?

我认为他的方法存在一个根本问题:任何好的加密方案都应该实现良好的传播(将来自明文所有部分的所有信息混合起来,以便在密文中均匀分布),以防止统计分析。在试图保存从一个加密到另一个加密的第一个n位时,我想不出一种在不影响扩散的情况下做到这一点的方法。

即使是你们中的一些人也有这样的机制,以便中介人可以在加入他们的部分之前撤销扩散,这个机制必然是系统的一部分,所以Kerckhoff的校长你必须假设Eve可以做同样的事情,再次击败扩散和打开你的密码-直到统计攻击。

所以,如果这是你想要解决的一个实际问题,而不是试图发明一个新的密码这个属性,我只想连接单独加密的密文。

票数 1
EN

Cryptography用户

发布于 2017-12-01 08:10:48

只需加密前256位,其余不加密即可。

@256-位数_ SomeLongArrayOfZeroes _

爱丽丝准确地发送加密(256位+一些长的零数组)是很重要的吗?也就是说,在256位密文之后,爱丽丝能不能只加密256位,然后把0's作为位置持有者呢?(在本例中,0's不包括在加密中,因此Bob不需要它们来解密)

如果没有,则只使用前256位加密,第三方可以在前256位之后附加一些预定义的固定长度的附加数据。

如果是,您可以定义它,以便第三方只能以某种预定义的固定长度追加到现有的密文中。

  • 否则(如果长度是问题)
    1. 只加密前256位,而不是追加0's,而是附加前256位的某种形式的散列(明文或加密;这可以根据第三方的需要来决定)
    2. 第三方应该使用XOR操作来使用从第一个step.生成的哈希来异或他们的数据,如果Bob想解密,他首先解密前256位,然后使用它获得哈希(或散列加密的256位),XOR与其他附加数据一起获得第三方的数据。对于每一个额外的第三方数据,可以对预定义的长度重复此操作。
票数 0
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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