Вот решение, которое удовлетворяет вашим условиям с вашим вопросом
PT1(5) K(9) C1(12)
PT2(7) K(9) C2(14)
PT3(9) K(9) C3(0)
0 xor C1 xor C2 = PT1 xor PT2
0 xor C1 xor C3 = PT1 xor PT3
0 Xor C2 xor C3 = PT2 xor PT3
So in the case i built:
0 xor C1(12) xor C2(14) = PT1(5) xor PT2(7)
0 xor C1(12) xor C3(0) = PT1(5) xor PT3(9)
0 Xor C2(14) xor C3(0) = PT2(7) xor PT3(9)
В слабых случаях вы можете получить K следующим образом:
Вы можете получить K следующим образом:
In [519]: 1^5
Out[519]: 4
In [520]: 2^5
Out[520]: 7
In [521]: 3^5
Out[521]: 6
In [522]: 6^7^4
Out[522]: 5
Таким образом, вы можете взломать ключ, скопировав вместе шифры, если используется слабый ключ к шифру xor (работает не во всех случаях, только очень редко). Но поможет ли это вам помочь решить проблему?
PT1 xor K = C1 if c1 is 4
PT2 xor K = C2 if c2 is 7
PT3 xor K = C3 if c2 is 6
Вы знаете, что K равно 5. Оттуда вы можете получить PT, работая XOR в обратном направлении:
c1 (4) ^ K (5) = PT1
c2 (7) ^ K (5) = PT2
c3 (6) ^ K (5) = PT3
Итак, резюмируем, XOR c1 ^ c2 ^ c3, чтобы получить Kи оттуда вы можете получить соответствующий PT (1-3). Но это работает только в некоторых редких случаях, но помогает ли это?
Если у вас есть какое-либо из значений, дайте мне знать. Я попытаюсь воссоздать что-то с нуля
Вот случай, когда я XORED C1, C2, C3 вместе, чтобы получить ключ, а затем PT1-3 просто заполнить для работы
PT1(10) K(12) C1(6)
PT2(4) K(12) C2(8)
PT3(14) K(12) C3(2)
0 xor C1(6) xor C2(8) = PT1(10) xor PT2(4)
0 xor C1(6) xor C3(2) = PT1(10) xor PT3(14)
0 Xor C2(8) xor C3(2) = PT2(4) xor PT3(14)
Это действительно зависит от того, как ваше назначение ожидает, что вы получите ключ. Надеюсь, все это поможет, шифрование - это весело. Я указал несколько путей, надеюсь, один из них поможет.