我正在實施基於Web的文件存儲服務(C#)。當存儲在服務器上時,這些文件將被加密,但挑戰在於如何實現解密功能。隨機訪問加密文件
文件大小可以從幾KB到幾GB不等。數據傳輸是以塊的形式完成的,以便用戶從說50000,75000等數據下載數據。這對未加密的文件工作正常,但如果使用加密,則必須在從偏移量讀取每個塊之前解密整個文件。
所以,我在看如何解決這個問題。迄今爲止,我的研究表明可以使用ECB和CBC。 ECB是最基本的(也是最不安全的),每個模塊都是單獨加密的。歐洲央行的工作方式幾乎與我所尋找的一樣,但安全問題是一個問題。 CBC是相似的,但是在解密當前塊之前需要解密先前的塊。只要文件是從頭到尾讀取的,並且在解密服務器時保留數據,但在一天結束時它並不比在傳輸之前解密整個文件服務器端好得多。
有沒有人知道我應該考慮的其他選擇?在這一點上我沒有任何代碼,因爲我仍然只做理論研究。
您是否只需要隨機讀取訪問和順序寫入訪問(即文件一次寫入)? – CodesInChaos
你需要完整性檢查嗎?我強烈推薦使用MAC。當沒有認證時,你可以做很多事情。 「 – CodesInChaos
」CBC是相似的,但在解密當前塊之前需要解密先前的塊。「錯誤。擁有前一個塊的密文就足夠了。你不需要明文。在維基百科上查看CBC。他們有一些不錯的圖表。 – CodesInChaos