Encryption

反轉 XOR 加密/解密函式

  • October 11, 2022

我有一個幫助推薦的高中項目,但我一直堅持。基本上解釋這個問題:我有一個用於解密功能的加密功能,我需要將它反轉來製作一個加密功能。

我嘗試了很多東西,但我找不到合適的結果。我帶來的最好的方法是正確加密 2 上的 1 個字節。

這裡是函式的核心(剩下的就是變數初始化:

// Decrypt
for (i = 0; i < 256; i++) {
   decrypted_msg[i] = (xor_key[i % 128] - i) ^ (encrypted_msg[i] - i / 16 - 12);
}

那麼有人可以解釋一下我(比如我五歲)如何反轉這段程式碼來產生加密嗎?

提前感謝您的幫助。

那這個呢?

decrypted_msg[i] = (xor_key[i % 128] - i) ^ (encrypted_msg[i] - i / 16 - 12);

將其轉換為方程式

$$ \begin{align} p[i] &= (\phantom{(}key[i \bmod 128]-i) \oplus (c[i] - i/16 -12)\ c[i] - i/16 -12 &= (\phantom{(}key[i \bmod 128]-i) \oplus p[i]\ c[i] - i/16 &= \left( (key[i \bmod 128]-i) \oplus p[i] \right) +12\ c[i] &= \left( (key[i \bmod 128]-i) \oplus p[i] \right) +12 +i/16 \end{align} $$

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