Des
DES加密:尋找每一輪加密/解密的結果來調試程式碼
我已經在不同的論壇中搜尋了幾天,試圖找到一個 DES 的例子,它給出了所有 16 層的鍵/輸出值。我找到了一個可以幫助我修復該部分的加密,但我的解密無法正常工作。如果我知道我的目標是什麼,調試起來會更容易。
有沒有我可以查看的所有加密/解密輪輸出的地方?
它們應該只是向後相同嗎?解密第1輪輸出=加密第16輪輸出?
感謝您提供的任何幫助。
它們應該只是向後相同嗎?解密第1輪輸出=加密第16輪輸出?
對,那是正確的; 解密子密鑰正好是相反順序的加密子密鑰。
我沒有您要求的每輪測試向量,但我可以提出這個建議:如果您有 DES 在加密方向工作,您可以自己生成測試向量;在每一輪之後記錄塊的狀態。然後,當您嘗試解密該塊時,每輪塊狀態應該向後遍歷相同的路徑;例如,如果第 15 輪加密後的塊狀態是 X,那麼第 1 輪解密後的塊也應該是 X。如果解密不起作用,那麼在密碼過程中的某個地方出錯了;通過查看每輪的狀態,您應該能夠將其縮小到特定的一輪。
https://academic.csuohio.edu/yuc/security/Chapter_06_Data_Encription_Standard.pdf的第 155-156 頁似乎有一個完整的回合數據集。
本頁末尾還有另一個範例:https ://www.geeksforgeeks.org/data-encryption-standard-des-set-1/