2011-02-04 9 views
1

私はいくつかのベース64でコード化された暗号化されたデータを持っており、かなりの量の繰り返しに気付いています。 (約)200文字の長さの文字列では、いくつかの別々の繰り返し実行で、特定の64文字が最大7回繰り返されます。暗号化されたデータの繰り返し - 赤旗?

これは暗号化に問題がある赤い旗ですか?私の理解によれば、平文が完全に一様であっても、暗号化されたデータは決して重大な反復を示すべきではありません(つまり、文字Aの2GBを暗号化しても、暗号化されたバージョンでは重要な繰り返しはありません)。

+1

完全にアルゴリズムに依存します。あなたは何が使われているか知っていますか? – leebriggs

+0

@leeeb、それはアルゴリズムが悪い赤い旗であることを提出しています – JoelFan

+1

どのブロックモードが使用されていますか(またはストリーム暗号ですか?)あなたがECBを使用していて、入力が反復的であるならば、これは避けられません。解決策はモードを例えばに変更することです。 CBC。 –

答えて

6

二項分布によると、一連の64個のキャラクタのうちの1キャラクタが200個のランダムなキャラクタの中に7回現れる確率は約2.5%です。それは小さなチャンスですが、無視できません。より多くの情報があれば、自信を97.5%から100%に近づけることができます。暗号文が実際に一様に分布していることがわかります。

あなたは、いくつかの別々の繰り返し実行で "文字がまでまで7回繰り返される"と言います。これは、暗号テキストに偏りがあるかどうかを示す十分な情報ではありません。代わりに、文字が表示された合計回数と暗号テキスト文字の合計数を教えてください。たとえば、「それぞれ200文字の1000回の実行で合計3125回出現しました。

また、暗号の生の出力についても言及していることを確認する必要があります。暗号テキストは、暗号メッセージ構文で定義されているような「エンベロープ」にカプセル化されることがよくあります。もちろん、この囲み構造には予測可能なパターンがあります。

+1

+1エンベロープの可能性 – JoelFan

0

まあ、それは依存していると思います。それが同じデータを表すならば、反復は一般的に悪いことです。

あなたがエンコードしていると考えると、データを見て、それらのカウントで繰り返されるものがあるかどうかを確認していますか?

理解を深めるには、どのような種類の暗号化が使用されているかを知る必要があります。 彼らは繰り返していることはちょうど偶然かもしれません。

しかし、繰り返しが同じデータから来る場合は、それをデコードするために周波数カウントを使用できるため、赤い旗になる可能性があります。

どのような暗号化を使用していますか?自家製または何らかの業界標準ですか?

0

どのようにデータを暗号化するかによって異なります。

文字列をエンコードするBase64は軽い難読化としてカウントされますが、暗号化ではありません。 Base64エンコーディングの目的は、あらゆる種類のバイナリデータを安全なASCII文字列としてエンコードできるようにすることです。

+0

データはBase64でエンコードされた暗号化されたデータです...最初に暗号化されたことを意味し、暗号化されたデータはBase-64でエンコードされました – JoelFan

関連する問題