1
我已經在整個班級與掙扎課程規範遇到一個看似不可能完成的任務,我會盡量爲簡明概括地:是不能確保這個系統
- 的文件具有「讀取「和」寫入「密碼,其中密碼不相同。
- 用戶可以編寫或創建文件,如果他們知道文件名的「寫入」密碼。
- 類似地,如果用戶知道「讀取」密碼,則可以讀取文件的內容。
- 整個程序的源代碼可用於系統的任何攻擊者,因爲該程序通過USB傳遞給用戶。
- 沒有辦法創建密鑰庫,因爲沒有辦法輸入主密碼來存儲每個文件的密鑰。
- 沒有密鑰/密碼可能會出現在純文本中。
- 命令的形式爲java的-e文件PASS1和java -d文件PASS2寫入和讀取分別,有沒有辦法在兩個密碼來傳遞。
我沉思至今:
- 我存儲散列和源代碼,這是相當安全的醃製(儘可能的規範去)密碼
- 我不能使用AES(或任何對稱)鍵,因爲讀取和寫入會相同。因此,如果只有一個天真的鍵用於讀/寫,「讀」用戶可以很容易地獲得他們的AES密鑰,因此他們可能會欺騙寫操作。
- 使用兩個AES密鑰,因爲這會使文件無法同步的,我不能保持文件和加密的副本,所以說用戶1寫入到文件1,如何加密文件的讀取副本只用讀取密鑰記錄更改,而不用解密寫入部分。
- 生成公鑰/私鑰對離開我無處並將其作爲我需要密鑰庫主密碼進行加密 - 該規範禁止使用的任何命令,但他們開出的人的。
我的問題是...這是不可能的?或者有辦法。我一直堅持了一個星期,就像整個班級一樣。我的教授聲稱有一個解決方案。
你允許哪些命令?你明確禁止使用非對稱密碼嗎? –
我只允許使用文件名和密碼作爲參數的加密(寫入)和解密(讀取)操作。然而,我不禁止我如何在不透露信息的情況下使用它們?如果我嘗試存儲密鑰對,那麼我需要對密鑰對進行加密,以防它們被盜用。 – Display
是的,你做。但是您可以使用不同的密鑰來加密密鑰對的每個成員。也就是說,您使用AES加密「公鑰」,使用寫密碼作爲密鑰,並使用讀密碼作爲密鑰對「私鑰」進行加密。 –