Key-Derivation

從隨機數推導隨機數

  • September 26, 2021

如果我有一個“真正的隨機數” $ K $ 的 $ L $ 位(無論“真正隨機”是什麼意思……它是來自正態分佈的一個真正隨機數,還是只有均勻分佈才被認為是“真正隨機”?),以及一個“真正隨機數” $ T $ 的 $ M \le L $ 位,

其中算術/按位算法 $ K $ 和 $ T $ 可以生成新的真正隨機數嗎?如果 $ M=L $ , 是 $ K + T $ 或者 $ K\ xor\ T $ 一個真正的隨機數?或者如果 $ M\lt L $ , 做類似的方法HKDF-expand-label, HKDF-extract, 或剛剛sha256結束 $ K $ 和 $ T $ 生成真正的隨機數?(例如,劃分 $ K $ 在 $ L/M $ 塊 $ M $ 位,應用其中一些方法並連接它們的輸出)。

我想更多地了解確定性算法需要哪些屬性才能產生真正的隨機數,前提是它的輸入是真正的隨機數。

幾個猜測(假設 $ M=L $ 為簡單起見), $ K + T $ 是一個真正的隨機數,但是 $ K\ bitwise_and\ T $ 不是。

**注意:**我的問題是關於一次性密碼的上下文。我想儲存密文和 $ K $ 單獨,僅在需要解密時通過安全通道傳輸,而不是傳輸 $ K $ 本身,可能很長,因為它必須匹配明文長度(可能很長),我正在考慮計算 $ K $ 源自 $ J $ (大小 $ L $ ) 和 $ T $ 大小的 $ M $ ,都是隨機數。 $ J $ 儲存在客戶端, $ T $ 儲存在伺服器端並通過安全通道獲取,並且 $ K $ 最後在客戶端派生並在解密後立即從記憶體中丟棄。我上面的問題最後是關於使用哪個派生函式 $ K $ 與真正的隨機數無法區分,假設 $ J $ 和 $ T $ 是真正的隨機數。

你在這個問題上問了很多問題,但有三個問題很突出:-

無論“真正隨機”是什麼意思……它是來自正態分佈的值一個真正的隨機數,還是只有均勻分佈被認為是“真正隨機”?

不。一個真正的隨機數(分佈)只是非代數的、不可預測的但遍歷的。它沒有種子,也沒有生成公式。它只能通過非常基本的組統計來分類。一個真實的例子是來自基於齊納二極體的設備的分佈:-

直方圖

此發行版沒有普遍接受名稱。它具有均值和標準差,但沒有代數分位數、偏度或熵。它只是憑經驗存在(與 $ H_\infty \approx 6 $ 位/字節)。

我想更多地了解確定性算法需要哪些屬性才能產生真正的隨機數,前提是它的輸入是真正的隨機數。

唯一的主要屬性是 $ \operatorname{X}: {0,1}^n \to \ {0,1}^m $ 和 $ m \lt n $ . $ X $ 可以是很多東西,比如馮諾依曼提取器、CRC 函式、矩陣、LFSR 和一般(通用)散列函式。但重要的一點是 $ X $ 不具有任何形式的加密功能。這麼想是個謬誤,但安全性來自真正隨機的長度輸入位 $ n $ .

我正在考慮在客戶端儲存一個長度為 L 的隨機數 J,而是傳輸一個預先生成的“真正隨機令牌”T(唯一地綁定到該特定明文),並在客戶端生成 K…

實際上,您正在改進一次性墊 :-( 除非您在談論量子密鑰分發,否則這是不可能的,但這是該論壇上的常見嘗試。我不太清楚您的建議,但贈品是片語生成. One time pad 不是在客戶端生成,而是集中在一對一或一對多架構中。其他任何東西都是偽隨機過程或流密碼構造。

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