Base 64でエンコードされた暗号化データがいくつかあり、かなりの繰り返しに気づきました。(約)200文字の長さの文字列では、特定のbase-64文字が数回の別々の繰り返し実行で最大7回繰り返されます。
これは、暗号化に問題があることを示す危険信号ですか?私の理解によれば、平文が完全に均一であっても、暗号化されたデータは決して重要な繰り返しを示すべきではありません(つまり、文字A以外の2 GBを暗号化しても、暗号化されたバージョンでは重要な繰り返しはありません)。
Base 64でエンコードされた暗号化データがいくつかあり、かなりの繰り返しに気づきました。(約)200文字の長さの文字列では、特定のbase-64文字が数回の別々の繰り返し実行で最大7回繰り返されます。
これは、暗号化に問題があることを示す危険信号ですか?私の理解によれば、平文が完全に均一であっても、暗号化されたデータは決して重要な繰り返しを示すべきではありません(つまり、文字A以外の2 GBを暗号化しても、暗号化されたバージョンでは重要な繰り返しはありません)。
二項分布によると、64個のセットから1個の文字が一連の200個のランダムな文字に7回出現する確率は、約2.5%です。それは小さなチャンスですが、無視することはできません。より多くの情報があれば、自信を97.5%から100%に非常に近いものに上げることができます…または、暗号文が実際に均一に分散されていることがわかります。
あなたは、「キャラクターが最大7回繰り返される」と、いくつかの別々の繰り返し実行で言います。これは、暗号文に偏りがあるかどうかを判断するのに十分な情報ではありません。代わりに、文字が出現した合計回数と暗号文文字の合計数を教えてください。たとえば、「それぞれ200文字の1000回の実行で合計3125回出現しました。」
また、暗号の生の出力について話していることを確認する必要があります。暗号文は、暗号化メッセージ構文で定義されているような「封筒」にカプセル化されることがよくあります。もちろん、この囲み構造には予測可能なパターンがあります。
まあそれは状況次第だと思います。同じデータを表す場合、一般的に繰り返しは悪いことです。
エンコードしていることを考慮して、データを調べて、それらのカウントで繰り返されるものがあるかどうかを確認しましたか?
よりよく理解するために、どのような種類の暗号化が使用されているかを知る必要があります。それらが繰り返されているのは偶然かもしれません。
ただし、繰り返しが同じデータからのものである場合は、頻度カウントを使用してデータをデコードできるため、危険信号となる可能性があります。
どのような暗号化を使用していますか?自家製ですか、それとも業界標準ですか?
データをどのように暗号化しているかによって異なります。
文字列をエンコードするBase64は、簡単な難読化としてカウントされる場合がありますが、暗号化ではありません。Base64エンコーディングの目的は、あらゆる種類のバイナリデータを安全なASCII文字列としてエンコードできるようにすることです。