Aes

這個 AES GCM + 非對稱模式安全嗎?

  • May 11, 2022

我想使用工具提供的非對稱加密來加密我的文件,並且我想知道以下加密過程是否有效,無論可能不是最佳使用。

  • 32-bytes-random-key在瀏覽器內部生成一個window.crypto.getRandomValues

  • 使用sjcl 加密庫

    • 選擇AES算法cipher.aes
    • 生成 4 個單詞的隨機 IV 向量random.randomWords(4, 0)
    • 以 GCM 模式加密文件mode.gcm.encrypt(標記 128 位)
    • 連接 IV 和加密輸出產生binaryFile1
  • 通過實現 ECIES 的工具,使用NaCl 網路和密碼庫,用於:

    • 生成encryptionKeypair使用nacl.box.keyPair.fromSecretKey
    • 32-bytes-random-key使用ephemeralPublicKey(使用x25519模式的一部分)加密上述內容,x25519-xsalsa20-poly1305生成binaryFile2一個包含加密的 AES 密鑰的捆綁包,以及其他元數據中的ephemeralPublicKey.
  • concat binaryFile2+ a-separator+binaryFile1生產finalBinaryFile

  • 將它保存finalBinaryFile在雲上,直到需要下載它,然後使用secretKey我擁有的通過反向過程解密它。

為了加密文件,我可以直接使用對稱密鑰來保證它的安全,但我想使用一個共享靜態公鑰的數據庫,我可以假設它的信任是有效的。

NaCL 提供了一組crypto_box方法,這些方法可以一次性完成。Libsodium 提供了一套更簡單的crypto_box_easy方法。

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