Encryption

GRC 密碼生成器如何獲取 512 位的秘密數據?

  • October 26, 2017

我試圖了解 GRC 密碼生成器如何在加密 128 位數據的同時獲取 512 位機密數據。

生成器地址位於此處:https : //www.grc.com/passwords.htm 請參閱網頁末尾的“技術人員詳細資訊”部分。

他們寫:

256 位 Rijndael/AES 密鑰、128 位單調遞增計數器的不可知(因此是秘密)現值和 128 位秘密初始化向量 (IV) 組合的結果是 512 位秘密為生成此頁面的“完美密碼”提供極高安全性的數據。沒有人會弄清楚您剛剛收到了哪些密碼。

他們提供的圖表: 加密過程示意圖

我嘗試的是

我製作了一個新的 IV(128 位):

Buffer([00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00])

單片計數器 - 實際加密的內容(128 位):

Buffer([00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 01])

加密密鑰(256 位):,32 字節)

Buffer([00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00])

他們將 IV 與單片計數器進行異或(或與單片計數器的最後一個加密結果,如果有最後一個結果)。

他們說它給了他們 512 位的秘密數據。但是當我加密所有內容時,我得到 16 個字節(128 位)的數據:

<Buffer ad 86 de 83 23 1c 32 03 a8 6a e3 3b 72 1e aa 9f>

他們如何獲得 512 位的“秘密”數據?他們如何將 512 位數據與來自單片計數器的 128 位數據進行異或?

他們如何將 512 位數據與來自單片計數器的 128 位數據進行異或?

他沒有。仔細查看您發布的算法。所有 XOR 操作都發生在 128 位值上。256 位條目是 256 位 AES 實現的關鍵。SPDT 開關使用秘密 IV 開始,然後切換到使用 128 位計數器執行。512 位來自 512 = |IV| + |計數器| + |鍵|。這有點荒謬,因為他輸入了 512 位(所謂的)熵並且只生成了 128 位的密碼。這正是你向自己證明的。通常,AES-CTR-PRNG 算法如下(沒有任何開關),Steve 的方法在特徵上是不尋常的。

aes ctr prng

他們如何獲得 512 位的“秘密”數據?

誰知道?它可能是對 CryptGenRandom 的呼叫(史蒂夫是 Windows 人),但也許它只是在某處硬編碼。毫無疑問,只有在組裝中。或者它可能來自他基於拉丁方的超高熵偽隨機數生成器。另一個笨蛋。

沒有人會弄清楚您剛剛收到了哪些密碼。

伸手去拿鹽。這顯然是錯誤的。沿線的任何 SSL 攔截路由器都可以解密和讀取網路流量(即時)。史蒂夫也知道。也許這個問題的寓意是 -不要使用網路服務來獲取您的密碼或密鑰。 如果你真的被一個鍵/密碼卡住了,要麼使用骰子,要麼只是隨機敲擊鍵盤上的鍵。這對於二戰期間的最高機密一次性墊來說已經足夠了,所以它對你來說應該足夠了。

你實際上問錯了問題。你應該問史蒂夫·吉布森是誰?Google他並找出答案。有大量的文章。在不犧牲我的沉著和專業精神的情況下,我不能再寫了。

引用自:https://crypto.stackexchange.com/questions/52547