2011-02-04 52 views
1

我有一些base-64編碼的加密數據,並注意到相當數量的重複。在一個(大約)200個字符的字符串中,某個base-64字符在幾次單獨的重複運行中重複多達7次。加密數據重複 - 紅色標誌?

這是加密時出現問題的紅旗嗎?根據我的理解,即使明文是完全一致的(即使我加密了2 GB的字母A,在加密版本中不應該有重複),加密數據也不應該顯示重大的重複。

+1

完全取決於算法。你知道什麼是使用? – leebriggs 2011-02-04 19:07:32

+0

@leeeb,我在提交,它是一個紅色的標誌,算法是不好的 – JoelFan 2011-02-04 19:11:27

+1

什麼塊模式正在使用(或者它是一個流密碼)?如果您使用ECB並且輸入是重複的,那麼這是不可避免的,並且解決方案是將模式改變爲例如CBC。 – 2011-02-04 19:15:12

回答

6

根據二項式分佈,在一系列200個隨機字符中,大概有2.5%的機率可以看到一組64箇中的一個字符出現七次。這是一個小機會,但不可忽略。有了更多的信息,你可以將你的信心從97.5%提高到非常接近100%的水平。或者發現密文真的是均勻分佈的。

你說幾次單獨的重複運行中「字符重複高達 7次」。沒有足夠的信息來說明密文是否有偏見。相反,請告訴我們字符出現的總次數,以及密文字符的總數。例如,「在每次200個字符的1000次運行中總共出現了3125次。」

另外,您需要確定您正在討論密碼的原始輸出。密碼文本通常封裝在「加密消息語法」所定義的「信封」中。當然,這種封閉結構將具有可預測的模式。

0

嗯,我想這取決於。如果它表示相同的數據,一般來說重複是件壞事。

考慮到你在編碼,你有沒有看過數據,看看你是否有重複的事情?

爲了更好地理解你必須知道它使用什麼樣的加密。 他們重複可能只是巧合。

但是,如果重複來自相同的數據,那麼它可能是一個紅色標誌,因爲可以使用頻率計數來解碼它。

你正在使用什麼類型的加密?自制還是行業標準?

0

這取決於你如何加密你的數據。

Base64編碼的字符串可能會被視爲輕度模糊處理,但它不是加密。 Base64編碼的目的是允許將任何類型的二進制數據編碼爲安全的ASCII字符串。