加密壓縮算法?
我想知道,是否存在壓縮和加密輸入數據的算法/加密程序。這意味著,對於初學者來說,輸出的大小將更小且難以解密……如果壓縮算法良好,那麼這些位將幾乎是隨機的。
還有任何雙加密算法嗎?:我的意思是,假設我有 2 個數據字元串(僅限字母數字,現在說)——同時使用它們和算法,我產生加密輸出——我接受對,並產生一對。該過程是基於算法的,而不是基於密鑰的。對此有何評論?這與早期的加密壓縮問題有什麼關係?(與之相關的一種方式是,如果數據不僅僅是字元串,而是一個大型多媒體文件,那麼除了加密之外,它還可以快速安全地壓縮)
常見問題解答說“請提出可以回答的問題,而不僅僅是討論”,但我不能更具體,至少現在不能:如果它有一些編碼,我可能會在 stackoverflow 上發布它!
歡迎所有評論,以及其他問答的連結。其他論壇地址也歡迎!
與一些加密任務不同,例如加密+認證結合壓縮+加密沒有任何共同點/非協同作用,因此將它們組合成一個算法沒有任何優勢。
實際上,這意味著您首先壓縮數據,然後對其進行加密,因為加密的數據是不可壓縮的。這樣,您就可以清楚地分離單獨的關注點,並且可以獨立地改變它們。
將它們結合起來的一個好點是在協議/文件格式級別。例如,TLS 支持壓縮和加密,大多數存檔格式(zip、rar、7z、…)也是如此。
但是壓縮會損害安全性:典型的加密旨在隱藏數據的所有內容,除了它的長度。壓縮取決於數據本身並影響數據的長度。這意味著它可以通過繞過加密的長度洩漏有關數據的資訊。如果您在同一上下文中壓縮攻擊者選擇的數據和秘密數據,這尤其嚴重。這導致了針對 TLS 壓縮的CRIME攻擊。
還有任何雙加密算法嗎?:我的意思是,假設我有 2 個數據字元串(僅限字母數字,現在說)——同時使用它們和算法,我產生加密輸出——我接受對,並產生一對。該過程是基於算法的,而不是基於密鑰的。
密碼學中的一個基本事實(或者我應該說“假設”)是,如果不涉及一些未知的秘密,您就無法安全地加密數據。這被稱為Kerckhoffs’s_principle。在您在這裡提出的這種方案中,任何可以訪問該算法的對手都可以逆轉該過程並輕鬆解密數據,因為該算法只是兩個輸入和兩個輸出之間的映射。我們必須假設對手知道該算法,也許它是公開可用的,也許他們巧妙地對其進行了逆向工程等,因此他們將能夠執行反向映射。