Encryption

如何使用 128 位 AES 執行文件加密

  • February 6, 2021

我很困惑。如何使用 128 位高級加密標準加密文件?

我只需要加密文件名及其內容還是需要做些什麼來加密它?是否需要將某些內容提取到文件中以對其進行加密?

例如,我想加密 MS Word 文件或 PDF 文件。

如果文件只包含文本,加密文件很容易,但如果文件中有圖像怎麼辦?我該怎麼做?

您感到困惑是對的,因為您也可以問*“如何使用支持異或、移位和旋轉的 CPU 加密文件?”* 答案是你當然可以,但顯然還有很多事情要做,如果你要做對的話。

AES 只是一個標準的分組密碼原語。該標準唯一告訴您的是,如何使用密鑰將單個 128 位塊轉換為另一個 128 位塊。它不會告訴您密鑰來自哪裡,或者您將如何處理任何大於 128 位的數據。還必須指定這些方面,一個範例是基於密碼的加密,如 PKCS#5 PBES2 與 AES-CBC-128 結合 PBMAC1 與 HMAC-SHA-256。

在閱讀消費類軟體或商業軟體的技術規範時,唯一指定的是分組密碼原語(例如“128 位 AES”)的情況並不少見。根據我的經驗,這通常是由於以下原因之一:

  • 軟體開發人員對密碼學一無所知,實際上使用的是 AES-ECB-128,其密鑰作為常量嵌入到軟體中。
  • 軟體開發人員正在使用適當的文件加密方案,但只指定了分組密碼原語,因為這是他們認為出於行銷原因需要的唯一流行詞。
  • 如果該軟體基於使用具有例如 3DES 的方案的遺留軟體,說明它們使用“128 位 AES”可能只是表明它們使用與以前相同的方案,但只是替換了分組密碼原語。

如果您對某些現有軟體如何加密文件感興趣,那麼僅僅知道該軟體使用 AES-128 是不夠的。如果您對自己編寫此類軟體時要查找的方案和算法感興趣,那麼您必須更加具體地了解您的安全要求……

  • 加密文件的個人或實體與解密文件的個人或實體之間有什麼關係?
  • 您希望通過加密文件來防止哪些壞事?

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