Encryption
如何從key中獲取KCV
簡單的問題:我們有 AES 128 加密和一個密鑰。我們如何計算密鑰檢查值(KCV)?
一個例子:密鑰是 48C3B4286FF421A4A328E68AD9E542A4,KCV 應該是 77DC84。
我正在 C# 中嘗試它,但是對於密碼學的新手來說,只有很多“未知數”……
編輯:有一個問題為什麼我需要它 - 假設我有一堆鍵-KCV 組合,由我們組織中的多個使用者寫下,但有些鍵無效(員工寫了 8 而不是 B,而是寫了 1 7 等…)。所以我需要一個程序,它改變密鑰中的一些字節,然後計算 KCV。如果密鑰有一個錯誤字節,則以 2ms 計算,兩個錯誤字節 5 秒,一個半小時計算三個錯誤字節,依此類推……
要計算 AES 的 KCV,您需要在密鑰下獲取零加密的前三個字節。
實際上,您給出的情況正是如此-在密鑰下加密的零向量
48C3B4286FF421A4A328E68AD9E542A4
是77dc841daeb43315fed9acdf2f965f45
,它限制為77dc84
。在您的問題中,您說您已經擁有 AES-128 加密,此時計算 KCV 應該不是問題。我不會問您為什麼要計算 KCV,但請注意,可能有更好的方法來實現您的實際目標。帶有此標籤的另一篇文章對它們的好處進行了合理的討論。