暗号の数学的構造について考察を行います。
この結果は、哲学上の認識論と、シームレスに繋がっています。暗号も、哲学上の認識論も全く同じ問題になってしまいます。一枚のコインの裏表の関係でしかありません。
まず、最初に、思考の為に使う道具の整理をします。
現代数学は、数、群、集合、写像の4つの基礎的概念から構成されていると考えられています。
集合と、写像という2つの道具を使えば、定性的説明が可能になります。定量的に説明する為には、これ以外に、数と、群の概念も必要です。
ここでは、取りあえず、定性的な話なので、集合と、写像の概念だけを使います。
次の具体的実装の話になったら、数と群も考慮します。
暗号の数学的構造
暗号化手順
暗号は、平文を、暗号に変換する行為ですから、集合と写像を使えば、下記のように記述されます。
|
暗号処理 |
:平文の集合 --> 暗号の集合 |
... |
投影表現 |
|
暗号 |
= 暗号処理(平文) |
... |
関数表現 |
写像の記述形式は、投影表現と、関数表現の2つがよく使われます。
投影表現では、『暗号を作る行為は、平文の集合を暗号の集合に投影する行為だ。』と考えています。人間の行為に重点が置かれます。
関数表現では、『暗号処理は、平文を暗号に変換する関数である。』と考えています。メカニカルな仕組みに重点が置かれています。
どちらでも、結果は同じになるので、厳密な使い分けはされていません。
ただ、どちらかと言えば、定性的な話をする場合は、投影表現が。定量的話をする場合は、関数表現がよく使われる傾向にあります。
実際の暗号を作る作業は、もう少し、複雑です。乱数も使っています。平文と乱数を混ぜて、その結果を暗号に投影しています。従ってその正確な表現は、下記のようになります。
|
暗号処理 |
:平文 * 乱数 --> 暗号 |
|
... |
暗号の写像表現 |
|
暗号 |
= 暗号処理(平文、乱数) |
|
... |
関数表現の例 |
|
暗号 |
= 平文 + 乱数 |
|
... |
具体的演算規則を使った例 |
この表現形式の中に、なぜ、暗号は解けないのかの秘密が隠されています。
それは、各集合の元の数を数えてみれば判ります。
話を単純化する為に、0〜9までの10個の記号を使った10進数の暗号を例に取ります。
平文も、乱数も、暗号も10個の元から構成された集合です。
ところが、平文と乱数の直積集合は、100個の元から構成された集合です。
|
暗号処理 |
: 平文 |
* 乱数 |
--> 暗号 |
... |
暗号の写像表現 |
|
暗号処理 |
: 10 |
* 10 |
--> 10 |
... |
集合の元の個数の推移に着目 |
100個の集合を、無理やり、10個の集合に投影している為に、情報が10分の1に縮退しており、多くの情報が失われています。この為、曖昧さが生じています。この曖昧さが、暗号の解読を困難にしています。
平文のある文字は、乱数の値によって、様々な暗号文字に投影されます。
逆に暗号文字の側から解釈すると、ある暗号文字[1]は、どの平文文字が投影されたもなのか判りません。全ての平文文字が投影される可能性があります。
例えば、下記の計算式のように、足して1になる平文と乱数の組み合わせは10通りあります。ここに、不確定性(曖昧さ)が発生しています。
この不確定性の為に、暗号は、解けなくなっています。
|
暗号 |
= 平文 |
+ 乱数 |
|
|
1 |
= 0 |
+ 1 |
|
|
1 |
= 1 |
+ 0 |
|
|
|
.............. |
.............. |
|
|
1 |
= 9 |
+ 2 |
|
復号化手順
では、情報が縮退した暗号を、正当な受信者は、どうやって、復号しているのでしょうか?縮退したままでは、正当な受信者も復号できません。これでは、暗号本来の目的は達成できません。
復号処理は、写像を使えば、下記のように表現されます。
|
復号処理 |
:暗号 * 乱数 --> 平文 |
|
|
|
平文 |
= 復号処理(暗号,乱数) |
|
|
|
平文 |
= 暗号 - 乱数 |
|
|
暗号化の時に使ったと同じ乱数集合を使って、暗号と乱数の直積集合を、平文に投影しています。この暗号化の時に使った乱数と、復号の時に使った乱数を、暗号の世界では、共通鍵と呼んでいます。
つまり、縮退によって失われた情報を、もう一度、同じ乱数を作用させることによって補い、元と同じ情報量にしてから、一意に復号しています。
暗号が復号可能な理由がここにあります。正当な受信者は、復号時に、こっそり、失われた情報を補っています。
|
暗号はなぜ解けないのか? |
|
情報の縮退が起っている為です。
情報の縮退によって、多くの情報が消失しており、元の情報に復元出来なくなっています。 |
|
|
|
暗号はなぜ復号できるのか? |
|
消失した情報を、こっそり補って、元の情報量にまで、戻しているからです。
情報量が元に戻ったので、平文の情報が復元可能になっています。 |
暗号強度の算定と保証
暗号強度の算定は、情報の縮退度合によって評価すると、比較的確実です。
暗号において大切なことは、計算式が解けるかどうかではなくて、
情報量の推移です。そこで
情報の縮退が起って、必要な情報が失われていたら、どんなに頑張っても、元の情報には復元出来ません。
これを、暗号強度の算定基準に使うと、比較的確実に算定出来ます。
復元に必要な情報が揃って、始めて、『解ける解けない』の問題が発生します。
揃っていて解けないのは、当人の能力の問題ですが、情報が失われて復元できないのは、当人の能力とは、無関係です。理論的に解けません。失われた情報を補うことは、論理的思考からだけでは、不可能だからです。
暗号を作る場合、人工的に情報を縮退させて、情報が不足している状態を作り出します。そして、それによって、暗号が解けないことを保証する方が、遥かに、簡単で、確実です。
このような消失してしまった情報を補うには、試行錯誤(総当たり攻撃)しかなく、この試行錯誤の回数を強度の目安にすれば、便利です。
なお、このような情報の縮退を人工的に作り出すテクニックとしては、ハッシュ関数などもあります。ただし、ハッシュ関数は、非可逆変換ですから、使い道は限られていますが。
ハッシュ関数の場合、一度、失われた情報は、元に戻す事ができません。でも、使う場所さえ間違わなければ、結構、強力な道具になります。
哲学上の認識論
この暗号の数学的記述形式は、そのまま、認識論にも適用可能です。
哲学上の
認識論(注)の場合、人と人の関係、即ち、コミュニケーションと、人と物との関係、即ち、物理学の問題の2通りがあります。
人の物との関係は、死の恐怖を伴った恐ろしい話になるので、ここでは触れないようにします。
人と人の関係、即ち、人Aから人Bに、何かを伝えたい場合を考えます。
コミュニケーションでは、暗号空間にではなくて、言葉の空間に信号が投影されます。
人は、伝えたいことを、言葉にしますが、その言葉は、自分の過去の経験から決めています。過去の経験から、今の自分の気持ちを、しっくり表現できる言葉を選んでいます。
一方、その言葉を聞いた人は、自分の過去の経験に照らし合わせて、その言葉を理解しています。もっとハッキリ言えば、言葉を、自分の過去の体験にすり替えて、その過去体験から、言葉を理解しています。
その記述形式は、下記のようになります。
暗号の場合と、全く同じです。記憶痕跡が丁度、乱数と同じ働きをしています。
(暗号化) |
人A |
:伝えたい内容 |
* Aの記憶痕跡 |
--> |
言葉 |
(復号化) |
人B |
:言葉 |
* Bの記憶痕跡 |
--> |
理解した内容 |
言葉自体が持っている情報量は、それほど、多くはありません。
それに比べて、人間の心は、遥かに複雑で、多様性に富んでいます。多様性に富んだものから、貧弱な情報空間への投影ですから、ここでも、多くの情報の縮退が起っています。
言葉だけでは、うまく伝わらないことが多々あるのはこの為です。
この表現形式の中に、誤解の原因が隠されています。つまり、暗号で言えば、解けない理由です。
理想は、伝えたい内容と、理解した内容が一致することですが、多くの場合、その通りにはなっていません。
なんとなく、伝わったような気はしますが、細部は、うまく伝わっていない事が多々あります。酷い場合は、誤解しているケースもあります。
|
理想:伝えたい内容 |
= |
理解した内容 |
... |
(間違いなく、伝わった?) |
|
現実:伝えたい内容 |
≒ |
理解した内容 |
... |
( ある程度は伝わった?) |
|
誤解:伝えたい内容 |
≠ |
理解した内容 |
... |
(誤解) |
このようなことが生じる原因は、Aの記憶痕跡と、Bの記憶痕跡が完全には一致していない為です。即ち、2人の生まれ育った環境や、それまでの人生経験、当人の性格が違う為です。
この為に、2人の記憶痕跡に微妙な差が生じて、同じ言葉を使っても、正しく復号できずに、誤解が生じます。先ほどの暗号の話に戻すと、暗号化に使った乱数(鍵)と、復号に使った乱数(鍵)が一致していない為に、復号に失敗することと似ています。
人間の場合、通信(コミュニケーション)が多重化されており、ファジーですから、理解と誤解の境目が穏やかで、ゆるやかに遷移しますが、暗号の場合は、多重化されていませんから、少しでも異なると、復号できません。数学的には、誤り訂正の符号が挿入されていない為に、成功と失敗の境目が非常に明確です。
「少しぐらいの鍵の違いは気にしないで、大まかにでも、復号してくれたらいいのに。」といった芸当が出来ません。
あうんの呼吸
コミュニケーションに、必ずしも言葉が必要でないケースがあります。
言葉を使わなくても、言いたいことが伝わる場合があります。そのような状況を、「あうんの呼吸」と呼んでいます。あうんの呼吸が成り立っている状況下では、先ほどの認識論の記述形式は、次のように記述されます。
|
人A |
:伝えたい内容 |
* 記憶痕跡 |
* 置かれている状況 |
--> |
あうんの呼吸 |
|
人B |
:あうんの呼吸 |
* 記憶痕跡 |
* 置かれている状況 |
--> |
理解した内容 |
人Aと人Bが、親密な共同生活を送っている場合、2人の記憶痕跡は一致します。同じ体験を共有できます。お互いに、置かれている状況を判断して何をしなければいけないか、大体、予測できます。
このような予測変換が働いていう状況下では、短いサインだけて、意志が伝わります。
だから、組織では、盛んに共同訓練を行います。体験を共有し、『何をしなければいけないか。』を、体に叩き込む為です。
理想は、頭で理解することではなくて、体が反応することです。体が反応できるようになるまで、訓練は続けられます。
このような予測変換が働いていう状況下では、情報の縮退と、情報の転送効率が上がります。
この『あうんの呼吸』のアイデアは、将来、情報の転送量を減らす目的で使えるかもしれません。問題を正しく解くためには、必要充分な情報が必要ですが、その不足している情報を補うヒントが隠されているからです。
暗号と認識論の境目
哲学上の認識論も、暗号も、数学的表現形式は同じです。
この為、情報が正しく伝わる原因も、正しく伝わらない原因も同じです。
つまり、暗号用語を使えは、正しく復号出来る理由も、他人が解読できない理由も同じです。
唯一の相違点は、その利用目的のみです。
コミュニケーションでは、出来るだけ多くの人に、正しく伝えることが目的ですが、暗号の場合は、不特定多数の他人に対しては伝わらないことを目的としています。つまり、特定の相手にのみ、伝わることを目的としています。
暗号とコミュニケーションは、
その目的が対極にあります。目的が違うだけで、やっている事は同じです。
通信の目的 |
コミュニケーション |
多くの人に、正しく伝えること。 |
暗号 |
特定の人にのみ、正しく伝えること。
他人には、秘密にすること。 |
次>
計算では解けない暗号の作成手順
注)哲学上の認識論
哲学では、認識論とは、『主観と客観の対立関係を論ずることだ。』と思っています。
実は、哲学者が使っている『存在の対立。』という思考形式は、数学的には、幾何学に属する思考形式です。
この哲学者が使っている思考形式を、一切の先入観なしに、純粋に論理展開すると、『地図の4色問題』などが説明可能な新しい幾何学体系が構築可能です。
ちなみに、数学者は気が付いているかどうか判りませんが、『地図の4色問題』は、物理学的には、『排他律』、又は、『排他性原理』と呼ばれている問題と同一です。
物理学の排他律の問題を、2次元空間の枠組みの中で解いたものです。原子の周りを回っている電子は、異なった存在状態(色)になっていることと、同じ問題です。
哲学者が使っている『存在の対立。』という思考形式も、この排他律の問題と密接に結びついています。