gpt4 book ai didi

algorithm - 高效三 "Ships", 一条消息算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:22 26 4
gpt4 key购买 nike

前提是人 1 想通过大洋向人 2 发送 secret 消息 M(没有 key 共享)。她决定通过 3 艘船发送部分消息,如果任何两艘船的版本都被交付,人 2 就可以构建完整的原始消息。目标是使每个部分消息 (M1、M2、M3) 无法自行破译。在所有 3 个消息都到达的情况下,冗余消息可以用作 ECC/奇偶校验。

假设消息由一系列 8 位字符 (m1,m2,m3...,mM) 组成。在最有效的编码中,len(M1+M2+M3) 将是 1.5X len(M)。

一个低效的编码是:M1 每个字符由高半字节 (UN) 加上低半字节 (LN) 组成,M2 由 UN 减去 LN 组成,M3 就是简单的 LN。 M1 和 M2 每个字符使用 5 位,M3 每个字符使用 4 位。

注意:分配可以轮换,这样 M1 得到 UN+LN,UN-LN,LN,... M2 得到移位 UN-LN,LN,UN+LN,.. M3 得到双移位 LN,UN +LN,UN-LN 为了:

1) 使消息长度相同(每 3 个字符) 2) 添加进一步的混淆

此架构有效但效率不高。有任何建议的改进或替代方法吗?

最佳答案

Assume the message is comprised of a series of 8-bit characters (m1,m2,m3...,mM). In the most efficient encoding len(M1+M2+M3) will be 1.5X len(M).

满足这个要求的方案是:

  • M1 : 高半字节(4 位)
  • M2:低半字节(4 位)
  • M3 : 高四位和低四位异或(4位)

即:

    bit of original 8 byte:
M1: 7 6 5 4
M2: 3 2 1 0
M3: 7^3 6^2 5^1 4^0

在收到 M1 和 M2 的情况下,您有消息。在接收到M1和M3的情况下,可以通过对M1和M3进行异或来重构M2。在接收到M2和M3的情况下,可以通过对M2和M3进行异或来重构M1。在每种情况下,第三个值都可以用作奇偶校验。

可以通过打乱半字节中每一位的含义来进一步混淆代码。例如,第 0 位可以使用上述方法,但对于(半字节的)第 1 位,低半字节可以在 M1 中,XOR 值在 M2 中等。即:

    bit of original 8 byte:
M1: 7 6^2 1 4
M2: 3 6 5^1 0
M3: 7^3 2 5 4^0

请注意,这是混淆,而不是安全。

关于algorithm - 高效三 "Ships", 一条消息算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30586461/

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