2016-06-14 3 views
-1

私に8ビットがあるとします。可能な組み合わせの合計は2^8になります。私が使用できるいくつかの暗号化技術があるので、より少ないビット数(例えば5または6ビット)の256個の数字すべてを識別できるようになります。私はこれが一種の難しい(そして不可能な)ことを知っています。しかし、誰かが助けることができれば。バイナリの暗号化

+1

暗号化はデータを圧縮しません。おそらくエンコードを意味します。 – zaph

+0

私は本当に暗号化を意味しました。より少ないビット数で解決できる新しい暗号化データを作成する方法があると思っていました。たとえば、16×16行列で2^8ビット、0から31までの数の行と列があり、2^5形式でデータを暗号化する方法があります。 –

+0

暗号化されていないものはありません。暗号化はデータのサイズを減少させません。キーに基づいて同じ大きさまたはわずかに大きなサイズの別の形式に変更するだけです。その後、同じキーを使用して暗号化されたデータを復元することができます。 (非対称キーの暗号化はわずかに異なりますが、データのサイズは小さくなりません)。あなたが望むのは8kgを保持する5kgの袋です。 – zaph

答えて

2

いいえ、これはできません。

元の256状態の少なくとも2つは、同じ符号化状態にマップされます。したがって、エンコードされた状態から記述されたオリジナルを再構築することはできません。

pigeonhole principleによれば

+0

質問に対する私のコメントを読んでください。私はピジョンホールに違反しようとしていない。私は2つの数字(<16)を5ビットでいくつか保持しようとしています。いくつかのビット暗号化。私は数字として数字を扱っていません。しかし、あたかも最初のビットが、2で割り切れるかどうかを調べるのに役立ちます。次に、2つの数字が隠されていることがわかります。 –

1

Pigeonhole principle参照データの損失なしに5または6に記載されている情報の8ビットを詰め込むための方法はありませんないがあります。データの大きなセットで

あなたは、必要なデータの量を減らすためにlossless compression techniquesを使用することができますが、これらの技術は、わずか8ビットから保存することができたよりも多くの情報を取るのオーバーヘッドを持っています。

8ビットを圧縮できる唯一の方法は、パターンをエンコードできるようにデータセットを制限することです。例えば最初の2つのビットのうちの1つが1の場合、1ビットを保存するために "エンコード"できますが、可能な値の数は 2^7に制限されます。

+0

質問に対する私のコメントを読んでください。私はピジョンホールに違反しようとしていない。私は2つの数字(<16)を5ビットでいくつか保持しようとしています。いくつかのビット暗号化。私は数字として数字を扱っていません。しかし、あたかも最初のビットが、2で割り切れるかどうかを調べるのに役立ちます。次に、2つの数字が隠されていることがわかります。 –