首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >固定密钥异或密码与明文间的已知关系

固定密钥异或密码与明文间的已知关系
EN

Cryptography用户
提问于 2020-05-18 17:04:15
回答 2查看 1.2K关注 0票数 3

我有三条消息,每条消息都是异或编码的,每个密钥用于这个异或密码的每条消息。

  • 编码消息1:e_1\,=\,00100111010
  • 编码消息2:e_2\,=\,01001110110
  • 编码消息3:e_3\,=\,11010110101

我还有一个额外的信息:我知道e_1\oplus e_2的解码内容等于e_3的解码内容。

如何解决这个问题,才能得到密钥并解码消息的内容?

EN

回答 2

Cryptography用户

发布于 2020-07-01 04:53:52

我在这方面有点新,所以可能有更好的方法来解决这个问题,但我就是这样解决的。如果我理解得对,给出的额外参数如下:

\mathtt{}({e}_{1} \oplus k) \oplus ({e}_{2} \oplus k) = e_{3} \oplus k

(也就是说,e1 xor的解码内容与e2的解码内容等于e3的解码内容)

括号只提供可读性,因此方程在没有它们的情况下是相同的。这意味着我们有\mathtt{}{e}_{1} \oplus k \oplus {e}_{2} \oplus k = e_{3} \oplus k

左手边有两个"\mathtt{}\oplus k"'s‘,所以他们可以被移除以得到以下信息:

\mathtt{}{e}_{1}\oplus {e}_{2} = e_{3} \oplus k

右手边也可以用\mathtt{}m_{3}代替,以表示解密的\mathtt{}e_{3}

\mathtt{}{e}_{1}\oplus {e}_{2} = m_{3}

给出了\mathtt{}e_{1}\mathtt{}e_{2},通过对它们进行xoring我们可以得到:

\mathtt{}{m}_{3} = 1101001100和我们也知道:

\mathtt{}{m}_{3} = {e}_{3} \oplus {k}

现在我们有了\mathtt{}m_{3}\mathtt{}e_{3},现在我们可以解决\mathtt{}k

  1. \mathtt{}e_{3} \mathtt{}{m}_{3} \oplus {e}_{3} = {e}_{3} \oplus {e}_{3} \oplus {k}的异或两边
  2. 从右手边移除\mathtt{}e_{3} \oplus e_{3}\mathtt{}{m}_{3} \oplus {e}_{3} = {k}
  3. \mathtt{}m_{3}\mathtt{}e_{3}的S值中的替代词:\mathtt{}1101001100 \oplus 11010110101 = {k}
  4. 给予.:\mathtt{}k = 10111111001

现在您可以对所有3条加密消息进行解码:

\mathtt{}m_{1} = 10011000011
\mathtt{}m_{2} = 11110001111
\mathtt{}m_{3} = 01101001100

希望这能帮上忙。

票数 1
EN

Cryptography用户

发布于 2020-07-01 05:03:15

这个问题是关于按位排他-或运算符(也称为XOR或\oplus)的属性,它在密码学中非常常见。它是同名的和注意到的位算子位算子异或,哪个真值表是

\begin{array}{c|c|c|c|c|c} \text{first/left input}&a&0&0&1&1\\ \text{second/right input}&b&0&1&0&1\\ \hline \text{output}&a\oplus b&0&1&1&0 \end{array}

位算子对长度相同的位串进行操作,并将布尔运算符应用于输入中的等秩位,从而形成输出中的位。因此,按位XOR运算符只对输入的每个位应用上述表。8-bit位字符串的示例:

\begin{array}{c|c|c|c} &\text{bitstrings}&\text{binary}&\text{hexadecimal}\\ \hline \text{first/left input}&A&00110001&\tt{31_h}\\ \text{second/right input}&B&01011100&\tt{5c_h}\\ \hline \text{output}&A\oplus B&01101101&\tt{6d_h}\\ \end{array}

位XOR运算符\oplus继承了位运算符\oplus的属性:

  • 结合性\forall X\forall Y\forall Z\ (X\oplus Y)\oplus Z\,=\,X\oplus(Y\oplus Z)
  • 交换性\forall X\forall Y\ X\oplus Y\,=\,Y\oplus X
  • 有一个同一性元素,它是全零位字符串:\forall X,\ X\oplus{\underbrace{0\ldots0}_{|X|\text{ bits}}}\,=\,X\,=\,{\underbrace{0\ldots0}_{|X|\text{ bits}}}\oplus X,其中|X|X.的比特宽度,相当于:\forall X8-bit操作数的\ X\oplus0^{|X|}\,=\,X\,=\,0^{|X|}\oplus X. ,如上面的示例所示,0^{|X|}00000000\tt{00_h}
  • 每个元素都是它自己的 (或相反的):\forall X\ X\oplus X\,=\,0^{|X|}\,=\,{\underbrace{0\ldots0}_{|X|\text{ bits}}}

前三个属性是国内法 (等效:操作)的交换群 (等效: Abelian群)的属性。

最后一个属性使组成为布尔群。具体来说,n位的位字符串的布尔组,注意到\left(\{0,1\}^n,\oplus\right)

这个问题是针对11国集团( n of 11)的。它归结为写一个方程的语句,并通过应用指定的属性来解决这些问题。如果一个人陷入困境,在评论中有提示,在其他答案中有一个可行的解决方案。

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

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

复制
相关文章

相似问题

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