Aes
這個 AES GCM + 非對稱模式安全嗎?
我想使用工具提供的非對稱加密來加密我的文件,並且我想知道以下加密過程是否有效,無論可能不是最佳使用。
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
方法。