Xor

反轉+異或

  • July 7, 2015

我有這個密碼,如下所示:

取 2 個數字:A=1011 and B=1010

如果A的第i位為 1,則向左移動B **i次。**所以最後你會得到類似的東西

  1010
 1010
1010

所以現在你對這些數字應用 XOR,結果是:

00001010
00010100 (XOR)
01010000 (XOR)
---------
01001110

所以你最終從01001110: 得到 2 個 4 位數字,即0100&1110

所以現在給出0100&1110我如何扭轉這個並找到最初的 A & B

PS:當談到加密時,我是一個完整的新手,所以請像向菜鳥解釋它一樣解釋它。

雖然你是加密新手,但我希望你對數學有所了解(因為你偶然發現了一些需要用數學術語來描述的東西)。你在這裡描述的實際上是多項式乘法(在多項式上 $ GF(2) $ (也就是說,我們以 2 為模進行計算)。

也就是說,您可以將數字解釋為指定多項式(其中每個位表示多項式的係數是 0 還是 1;例如,1011將對應於多項式 $ x^3 + x + 1 $ , 並且1010對應於多項式 $ x^3 + x $ . 當您執行操作時,您會生成乘積多項式,在這種情況下 $ (x^3 + x + 1) \times (x^3 + x) = x^6 + 2x^4 + x^3 + x^2 + x = x^6 + x^3 + x^2 + x $ (這最後一步下降 $ x^4 $ 發生是因為我們正在計算一切 $ GF(2) $

考慮到這一點,反轉操作的問題實際上是一個因式分解問題(不是整數上的因式分解,這是人們在提出分解時通常會想到的,而是多項式上的類似物)。

這意味著:

  • 價值 $ A $ 和 $ B $ 不必是唯一的。一方面,該操作實際上是對稱的(即使您執行它的算法不是);交換 $ A $ 和 $ B $ 將始終產生相同的產品,因此您的情況的另一種解決方案是 $ A = 1010 $ 和 $ B = 1011 $ .
  • 更一般地說,正如 yyyyyy 所引用的那樣,分解過程可以將乘積簡化為其主要因數,但可能有多種方法可以重新組合這些主要因數(例如, $ 1010 = 11 \times 11 \times 10 $ )。它表明 $ 1011 $ 是素數(因此如果我們將被乘數限制為 4 位, $ 1011 $ 和 $ 1010 $ 是僅有的兩個可能的因素),但一般情況下並非如此。

如果你問分解是否是一個難題,它不是。多項式上有已知的多項式時間分解方法(這是整數分解與多項式分解不同的一種方式)。然而,這些技術有點超出了新手所能理解的範圍。

引用自:https://crypto.stackexchange.com/questions/26750