我有一些base-64編碼的加密數據,並注意到相當數量的重複。在一個(大約)200個字符的字符串中,某個base-64字符在幾次單獨的重複運行中重複多達7次。加密數據重複 - 紅色標誌?
這是加密時出現問題的紅旗嗎?根據我的理解,即使明文是完全一致的(即使我加密了2 GB的字母A,在加密版本中不應該有重複),加密數據也不應該顯示重大的重複。
我有一些base-64編碼的加密數據,並注意到相當數量的重複。在一個(大約)200個字符的字符串中,某個base-64字符在幾次單獨的重複運行中重複多達7次。加密數據重複 - 紅色標誌?
這是加密時出現問題的紅旗嗎?根據我的理解,即使明文是完全一致的(即使我加密了2 GB的字母A,在加密版本中不應該有重複),加密數據也不應該顯示重大的重複。
根據二項式分佈,在一系列200個隨機字符中,大概有2.5%的機率可以看到一組64箇中的一個字符出現七次。這是一個小機會,但不可忽略。有了更多的信息,你可以將你的信心從97.5%提高到非常接近100%的水平。或者發現密文真的是均勻分佈的。
你說幾次單獨的重複運行中「字符重複高達 7次」。沒有足夠的信息來說明密文是否有偏見。相反,請告訴我們字符出現的總次數,以及密文字符的總數。例如,「在每次200個字符的1000次運行中總共出現了3125次。」
另外,您需要確定您正在討論密碼的原始輸出。密碼文本通常封裝在「加密消息語法」所定義的「信封」中。當然,這種封閉結構將具有可預測的模式。
嗯,我想這取決於。如果它表示相同的數據,一般來說重複是件壞事。
考慮到你在編碼,你有沒有看過數據,看看你是否有重複的事情?
爲了更好地理解你必須知道它使用什麼樣的加密。 他們重複可能只是巧合。
但是,如果重複來自相同的數據,那麼它可能是一個紅色標誌,因爲可以使用頻率計數來解碼它。
你正在使用什麼類型的加密?自制還是行業標準?
這取決於你如何加密你的數據。
Base64編碼的字符串可能會被視爲輕度模糊處理,但它不是加密。 Base64編碼的目的是允許將任何類型的二進制數據編碼爲安全的ASCII字符串。
完全取決於算法。你知道什麼是使用? – leebriggs 2011-02-04 19:07:32
@leeeb,我在提交,它是一個紅色的標誌,算法是不好的 – JoelFan 2011-02-04 19:11:27
什麼塊模式正在使用(或者它是一個流密碼)?如果您使用ECB並且輸入是重複的,那麼這是不可避免的,並且解決方案是將模式改變爲例如CBC。 – 2011-02-04 19:15:12