串列測試(兩位測試)的卡方檢驗統計量的起源
在《應用密碼學手冊》第五章的第 181 頁上,它陳述了以下內容:
此測試的目的是確定 00、01、10 和 11 作為 s 的子序列的出現次數是否與隨機序列的預期相同。讓 $ n_0 $ , $ n_1 $ 分別表示 s 中 0 和 1 的數量,並讓 $ n_{00} $ , $ n_{01} $ , $ n_{10} $ , $ n_{11} $ 分別表示 00、01、10、11 在 s 中出現的次數。注意 $ n_{00} + n_{01} + n_{10} + n_{11} = (n − 1) $ 因為允許子序列重疊。使用的統計數據是 $$ X_2 = \frac{4}{n-1}(n_{00}^2+n_{01}^2+n_{10}^2+n_{11}^2)-\frac2n (n_0^2 +n_1^2) +1 $$
這個統計數據是從哪裡來的?我不完全確定,這本書也沒有解釋它的推導。一般, $ X=\frac{(Z-\mu)^2}{n^2} $ 對於卡方檢驗(如果我沒記錯的話),但我不明白這如何導致上面的表達式。對於每個 $ n_{ij} $ , 近似值為 $ \frac{n_i+n_j-1}{4} $ , 期望值為 $ \frac{n_i+n_j}2 $ ,但是我們如何將它們組合在一起,以得到表達式 $ X_2 $ ?
如果這屬於數學而不是密碼學,我可以愉快地刪除和移動它。我只是想,因為這個問題與密碼學有關,所以這裡可能會受到更好的關注。
這是個有趣的問題。根據NIST的第 3-18 頁,認為變異數統計是傳統的卡方統計是一個常見的錯誤。不是,由於重疊長度 2 個視窗的依賴性,因此使用了差分統計。
該統計數據已被 IJ Good 證明收斂到卡方,請參閱連結文件下一頁上的參考資料,他參與了 Turing 的謎解密工作。因此,必須至少採用 21 位的位串。
這裡是討論