將加密參數存儲在加密文件的(未加密)頭中是否「安全」?有什麼東西(當然不是鑰匙除外!)不應該存儲/傳輸清晰?安全地在文件頭中存儲AES密碼參數(blocksize/blockmode/keysize等)?
回答
您正在使用對稱加密,其中存儲blocksize,blockmode和keysize將是安全的,因爲您沒有(不得)按照您所述的方式使密鑰可用。
但是所有這些參數對於攻擊者來說都是非常有用的。如果文件不能輕易與密碼和使用參數(或軟件)相關聯,攻擊者就會有更多的工作要做,這就是加密的基本原理。密碼是安全的,而(因爲)每個人都可以看到它是如何工作的。另外試圖隱藏一些信息也可以增加一些安全性。
AES的固定塊大小爲128位,它本身並不是關鍵信息,因爲已知AES本身。所以這個在文件頭裏是不需要的。
密鑰大小由密鑰本身給出,所以也可以省略。
blockmode是剩餘的參數。從不使用歐洲央行。永久使用像OCB這樣的單個模塊,並且不需要將其存儲在文件中。
在的預定義雙方都params爲一個解決方案,如果你不打算改變他們每個文件。 錯誤檢查可以使用校驗和完成,校驗和也是關鍵信息,因此您可以將它們與數據一起加密或將它們與密鑰一起提供。
也許,以下的方法可以幫助,如果您有要轉播的PARAMS:
發送PARAMS密鑰文件,如果你達到自己定義的格式和按鍵都分佈在每個文件的基礎。
您也可以通過將它們映射到一些隨機定義的枚舉器來定義不同的設置,這些枚舉器在不知道軟件的情況下不提供有價值的信息。
AES可與128,192或256位塊大小一起使用,密鑰大小相同。 – 2012-03-25 19:28:01
@Erik:不,AES對128位,192位和256位三種密鑰大小的固定塊大小爲128位。 – 2012-03-25 20:25:00
- 1. 安全存儲AES密鑰
- 2. 如何在C++中安全地存儲AES加密密鑰?
- 3. 存儲密碼安全地在中等負載服務器
- 4. 安全地在Android設備中存儲AES密鑰
- 5. 如何安全地將密碼存儲在文件中?
- 6. 如何在iPhone上安全地存儲AES密鑰
- 7. 如何在AES數據庫中存儲AES加密密碼
- 8. 如何在使用AES的安卓系統中安全地存儲加密密碼並在以後解密?
- 9. 安全地存儲Redis密碼
- 10. Phonegap/Cordova:安全地存儲密碼?
- 11. 安全地傳輸和存儲密碼
- 12. 安全地存儲密碼哈希django
- 13. 如何在Python中安全地存儲數據庫密碼?
- 14. 如何安全地在數據庫中存儲密碼?
- 15. 安全密碼存儲
- 16. 在數據庫中存儲AES CipherText的AES IV安全嗎?
- 17. 在緩存中安全地存儲密碼哈希
- 18. AES加密 - 在Android上存儲密碼
- 19. 沿着加密的AES密鑰存儲密碼哈希的安全隱患
- 20. 如何解密(AES)存儲在本地存儲的加密文件
- 21. 如何使用.Net(C#)在Windows中安全地存儲AES密鑰?
- 22. 在properties.settings文件中安全地存儲密碼的最佳方式是什麼?
- 23. 如何安全地將用戶密碼存儲在Cloudant DB中?
- 24. 如何安全地在angularjs中存儲密碼
- 25. 如何在Chrome擴展中安全地存儲密碼?
- 26. 在Chrome擴展中安全地存儲令牌/密碼
- 27. PHP中的AES-256和安全存儲密鑰?
- 28. 在PHP文件中存儲加密密鑰的安全性
- 29. Rails:如何安全地存儲郵件密碼?
- 30. 安全地存儲外部數據庫的密碼
根據您的系統使用情況,攻擊者可能會降級您的系統,並可能使用它來例如剝離身份驗證。 – CodesInChaos 2012-03-24 15:25:36