Encryption

密碼到密碼映射

  • November 14, 2019

免責聲明:由於我對密碼學的了解有限,我理解這個問題可能有點業餘,但請耐心等待一分鐘。

問題:假設使用者 Alice 生成了一個密碼片語“hello”,而使用者 Bob 生成了另一個密碼片語“world”。

我需要創建一個加密/散列管道,將 Alice 的密碼片語映射到 Bob 的密碼片語。我將說明我要實現的基本概念:

"hello" --> [encryption pipeline] -> "world"

如圖所示,管道是單向的。託管管道的伺服器的數據庫不能儲存純文字密碼片語。雖然它可以儲存密碼片語的散列或加密修改,但基本目標是在不知道原始輸入是“hello”的情況下使其不可能/非常難以推導出“世界”(例如在數據庫被破壞的情況下)

如何安全地實施這樣的管道並遵守共同的安全原則?我剛剛開始深入研究散列/加密算法、Levenshtein 距離等,但我真的很想從比我自己更了解該領域的人那裡獲得見解。

最簡單的解決方案是在 Alice 的密碼下加密 Bob 的密碼。

為此,將特別採取以下步驟:

  1. 從 Alice 的密碼生成一個加鹽密碼雜湊(使案例如 Argon2 或 bcrypt),稱之為 $ SK $
  2. 利用 $ SK $ 對稱加密 Bob 的密碼,例如使用 AES-GCM

如果您想花哨並允許 Bob 更新他的密碼片語,您還可以在步驟 2 中對稱地加密私有非對稱密鑰,並在 Bob 更新時使用相應的公鑰加密新密碼片語。

這也可以通過使用快速散列(如 SHA256)集成到標準的基於密碼散列的身份驗證流程中 $ SK $ 作為儲存的數據庫雜湊值。

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