ISO 9564-1 格式 4:我需要靜脈注射嗎?
ISO 9564-1 格式 4 描述了擴展的 PIN 塊格式。簡單地說,該標準可用於以安全的方式加密 4 位 PIN 碼。
該標準提到(簡化)在 PIN 中添加隨機值,然後使用實施者可以選擇的密碼對其進行加密(我們將使用 AES-CTR)。
我現在想知道,如果我們遵循這個標準,並在加密之前將加密隨機值附加到 PIN 上,那麼我們是否還需要一個 IV 來進行 AES 加密?
如果無法訪問標準,我無法驗證,但在使用 AES-CTR 時,添加隨機值不會影響 PIN 密文的輸出。所以是的,你需要靜脈注射。
前綴值可能會或可能不會影響由操作模式生成的 PIN 本身的密文。對於 AES-CBC,這肯定是這種情況,因為密文塊本身被用作下一個操作的向量。然而,對於 AES-CTR,情況並非如此;隨機值將通過與密鑰流進行異或來加密。
似乎該標準希望您選擇特定的分組密碼,或者它根本不正確。如果使用計數器模式加密,則在 PIN 上添加前綴或附加任何內容都不會為您做任何事情。
然而,在密文中添加一個(16 字節)隨機 IV 是有意義的。每個 PIN至少需要一個唯一值;如果加密是確定性的(即僅使用 PIN 計算),那麼攻擊者將(至少)能夠區分相同的 PIN 號碼;通常只有 10000 個值(如果排除某些 PIN 值,則更少)可供選擇。
作為參考,我將包含一張 CTR 操作模式的圖片:
如您所見,您需要更改隨機數/計數器值以影響特定明文的密文。為純文字消息添加前綴或附加任何值都不會產生影響。
例如,將第一個明文塊替換為 IV 值,您可以看到第二個塊根本沒有改變*,因為明文/密文塊是完全*獨立的。如果您考慮 XOR 操作,您甚至可以推斷明文/密文的每一位完全獨立於另一位(除非密碼被破壞)。
這就是為什麼在明文中添加前綴/附加值本身不會充當 IV。