情報の削除を伴うコーディング。 パート2、数学

はじめに



前の部分では、キーとメッセージの共通部分を分離できる場合、元のメッセージよりも少ない情報を送信できるというコーディングの基本的な可能性について検討しました。







画像



このトピックがどこから来たのかを少しお話ししましょう。 むかしむかし、 は一人の善良な人からivladを取りましたが、これまでのところ、「暗号自体は置換と置換として知られる2つの方向に分けることができる」という興味深い本[1]を与えません(許して)。 。

したがって、ほぼすぐに次の質問が表示されました。









カラスと机の共通点は何ですか?



画像

ここから写真を撮ります

タイトルのキャロルのなぞなぞは、解決する必要がある問題の例として与えられています。 つまり、関数のペアを定義する Ekm -コーディングと Dks -次の条件を満たすデコード:









ここに Im -メッセージ内のシャノン[2]に基づく情報量(すべての文字が平等に発生することを想定しています。これは一般的なケースでは正しくありませんが、表示を簡単にするために使用されます) mk -キー c=Ekm -エンコードされたメッセージ。







さらなる考察を簡素化するために、数値形式に縮小できるメッセージにさらに自分自身を制限してみましょう。これは一方では特に制限されません(すべての文字に対応する数値コードを割り当てることができるため)、他方では数学を使用することができます希望のボリューム。







そこで、最初に2つの数値を例として考えてみましょう k=746,130 そして m=50133666 算術の基本定理[4](任意の自然数は単純な積に分解できる)を使用すると、次のパラメーターが見つかります。









これらすべてをテーブル形式で記述します。キーとメッセージの間の情報の共通部分は青でマークされ、黄色はキーに固有の情報、オレンジはメッセージに固有です。







画像



すぐに明らかになります GCDkm キー間の共通部分です k とメッセージ m 、送信者と受信者の両方です。 したがって、理想的にはもちろん、実際にはそうではありませんが、以下に関する情報を伝えるだけで十分です。







単純な除数の位置をマークしましょう GCDkm 単純な仕切りと共通 k 、単位、および残りは、ただし、先頭の位置である場合があります-ゼロ。







画像



結果の数 s1=1010011=83 十分に特徴づける GCD 、それにより、元のメッセージを復元できます。 すなわち 入力で2つの数値を取得する [3997983] かなり単純な逆変換を行う必要があります。



画像



今、バイナリ形式で元のメッセージの長さを評価する場合 len2m=len2[1111010000011100100000100]=26 とメッセージ len2[c0c1]=len2[10011100001010111010011]=23 、メッセージの長さを節約できることがわかります 3 ビット、情報量と同じ Im=13 少し Ic=I[c0c1]=11.5 ビット。 ここに関数があります len2 cdot -バイナリ形式の数値の長さ。



画像



したがって、有名なジョークの言葉では、「スコットランドには少なくとも片側に黒い羊が少なくとも1匹います」[3]。



そのため、現時点で持っているもの-このエンコード方法は適切です 、展開で同じ除数を持つ数のペアにのみ適しています。 そうでない場合、たとえば、プライムをキーおよびメッセージとして使用する場合、明らかに何も減らすことはできません。メッセージの長さおよび送信される情報の量を増やすだけで、これは私たちが達成したことではありません。 たとえば、次の場合にも同じ状況が繰り返されます。 GCDkm<2 または len2c1len2GCDkm なぜなら 節約は原則的に最小限か、またはありません。



何をすべきか...



このコーディング方法で成功する可能性を高めるために?

一般に、キーを注意深く見ると、それは素数にうまく分割されていることがわかります 2,3,5,7,11,17,19 、検索操作の成功のために特別に行われた GCDkm 。 このような操作は、使用されるキーの数に悪影響を及ぼし、単純な要因のシーケンスを決定し、それをキー情報の一部にするため、急進的ではありませんが、エンコードオプションの数を増やして、キーの数にプラスの影響を与えます。 キーの代わりに使用することは数字ではありません [746130] そしてカップル [7461300125763] ここで、2番目の数値は乗算の順序を反映し、値を決定します c1







効果的に解決する必要がある次の問題は、素数と2のべき乗の発生頻度の比率です。2のべき乗による符号化効率は、長さが長くなると非常に急速に低下することがわかります。 c1 (共通の単純な除数が1つある場合は、対応するシーケンスのグラフを参照してください)、主にキーの除数とその値に依存します。







画像



たとえば、2つの一般的な除数があり、そのうちの1つが次と等しい場合 3 、それから貯蓄の機会は非常に顕著に増加します。



画像



つまり、効率的なコーディングを行うには、より効率的なコーディング方法を考え出す必要があります。 c1

つまり、トピックはさらに掘り下げる意味があります。









通常github [5]に投稿されているように-Excelが使用されている理由は 多くの人がそれを持っているので、互換性について考える必要はありません。 ファイルには2つのブックマークがあります。









参照資料



  1. シン・サイモン。 暗号の本。 暗号とその解読の秘密の歴史。 M.アストレル2007。
  2. https://en.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0 %BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%8D%D0%BD%D1%82%D1%80%D0%BE%D0%BF%D0%B8%D1%8F
  3. http://www.gaelic.ru/Biblioteka/Folklore/anekdoty.htm
  4. https://en.wikipedia.org/wiki/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_%D1%82%D0 %B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%B0%D1%80%D0%B8%D1%84%D0%BC%D0%B5%D1%82 %D0%B8%D0%BA%D0%B8
  5. https://github.com/rumiantcev/nod_code



All Articles