序列密碼的加密與解密

Lois發表於2020-07-19

序列密碼的加密與解密

明文、密文和金鑰序列都是有單獨位組成,即

x_{i}, y_{i},s_{i}\in \left\{0,1\right\}

加密:y_i = e_{s_i}(x_i)\equiv x_i + s_i\ mod\ 2
解密:x_i = d_{s_i}(y_i)\equiv y_i + s_i\ mod\ 2
關於序列密碼加密和解密函式有三點需要說明:

為什麼加密和解密使用相同的函式?

我們必須證明解密函式的確可以再次得到明文位x_i。我們已知密文位y_i是透過加密函式 y_i\equiv x_i +s_i\ mod\ 2計算得到的,將這個加密表示式插入到解密函式中可得:

d_{s_i}(y_i)\equiv y_i + s_i\ mod\ 2\\ \equiv(x_i + s_i) + s_i\ mod\ 2\\ \equiv x_i + s_i + s_i\ mod\ 2\\ \equiv x_i + 2s_i\ mod\ 2\\ \equiv x_i + 0\ mod\ 2\\ \equiv x_i\ mod\ 2\ Q.E.D

這裡的巧秒之處在於:表示式(2 s_i\ mod\ 2)的值總是 0,因為2\equiv 0\ mod\ 2 。對此另一種理解方式為:s_i的值為 0 ,此時2s_i = 2·0\equiv 0\ mod\ 2;或者s_i = 1, 此時2s_i = 2·1 = 2\equiv 0\ mod\ 2

為什麼模 2 加法會是一個很好的加密函式?

值得注意的是,XOR 函式是完全均衡的,即僅觀察輸出值,輸入位的值為 0 和 1 的機率都是 50%。這一點是 XOR 門與其他布林函式(比如 OR 門、AND 或 NAND 門)完全不同的地方。此外,AND 和 NAND 門不是可逆的

密碼序列的本質究竟是什麼?

事實證明,值s_i 的生成(也稱為金鑰序列)是序列密碼安全性的核心問題。實際上,序列密碼的安全性完全取決於金鑰序列。金鑰序列位s_i本身不是金鑰位。所以,我們如何得到金鑰序列呢?生成金鑰序列其實就是序列密碼的關鍵所在。密碼序列位的核心要求就是對攻擊者而言它必須看上去是隨機的。否則,攻擊者 Oscar 就可以猜測該金鑰哦序列位,進而能自行解密。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
Hacking

相關文章