意味の広がりと通信

さて、以前の記事(自己複製系と意味)では、はっきりとした区切りのない場に、ある共通の意味*1を運用できる個体群が含まれる*2場合がある、ということを、エントロピーの観点から見てました。今回は逆に、実際よく使われている通信の概念を、自己複製に寄せていくことができるか検討してみます。

さて、通信というとShannonのモデル*3が有名で、これはsource-transmitter-channel(+noise)-receiver-destination、という5つの部分からなる構成です。情報源(source)から出てくるのは、文字だったり、関数だったりするわけですが、別にもっと抽象的なものであってもかまわないわけです*4で、送信機(transmitter)がそれを何であれ予測可能な形で伝搬するものに変換します。ここでは電磁波のような物理現象*5が用いられることが多いです。この時点で制御を手放して何かの場に委ねます。これが伝送路(channel)になるわけですが、予測できなかった分は外乱(noise)として扱います。受信機(receiver)は、送信機と逆の手順を行い、そして目的地に着きます。このdestinationが何であるかは、"The destination is the person (or thing) for whom the message is intended."と曖昧なものです。

さて、何が伝送されたのでしょうか?実際、ここでいう意味というのは、sourceやdestinationがする行動によって暗黙に決まるものですが、そういうのは扱いが難しいので、ここではマルコフ連鎖その他の確率的モデルを考えることでお茶を濁しています。そうすれば同じ状態に対応するシンボルを復元できる、のような処理と無関係な定義ができ、情報源のエントロピーも計算できるようになります。これはあまりにも便利な考えなので、情報源符号化はシンボル-シンボル間の変換だけで扱えると勘違いしそうです。(そうでもない?)

その結果とりあえずbitを主体に据えて、いわゆるデジタルなんとか、という考えかたが広まった(ような気がします)。さまざまな形式で使われるにつれて、情報は実時間・実空間から切り離され、それ自身で実体とみなされるようになりました。*6また、これは万物はインターフェースを整えることでコピー可能であるという思想*7にも大きく寄与したと思います。

実際、この情報を実体として扱える状態を維持するために、いたるところでバッファを入れたり、とりあえず保存しておいたりすることで、(可能な限界に比べて)莫大なエネルギーを消費していると考えられるので、そこを解消することで思いもよらなかったことができるようになる、という可能性はあります。

広がりの制御

このようなわけで、一旦シンボルに落ちてしまうとなんであれ非常にアクセスしやすい形になるわけですが、それが好ましくない場合もあります。いわゆる機密性が欲しい場合です。で、これをシンボルの操作でなんとかしようとするのが暗号なわけですが、一番わかりやすいのは、情報論的なもので、例として送るメッセージと同じ長さの乱数を生成して、xorをとったものと乱数を別の経路で送って、両方ないと復元できない、というのが挙げられます。これはone-time padと呼ばれることのほうが多いかもしれません。ストリーム暗号は、ここでいう乱数を「長くする」操作を共有しておくことで、メッセージより短い鍵を送るだけで済むようにしたものです。

そして公開鍵暗号は・・・、と見ていくと、徐々に重点が鍵から操作に移っていることがわかります。

唐突ですが、何かを機密にするのは、その何かが(分かる|分からない)人(もの)に二分するという事でもあります。この観点から見ると、先ほどの例は次の二つの作用に分類できます。

  1. 「分かる」こと (encode/decode操作の共有)
  2. 「分かってない」相手の排除

2は書いてませんでしたが、操作がtotalでない場合定義域から外れるデータを送ってくる人は弾くべきという事ですし、totalでもうまく工夫すれば弾くことができます。ステガノグラフィーでは、そもそも2の作用がありません。

こうしてみると、これはまさに冒頭で述べた意味を共有する集団+α、という形式をとっていることがわかります。

これを再び具体化してみると、いろいろと面白いものが考えられます。例えば、ある単一の実行形式を複数のノードで実行してセキュアなネットワークを作るにはどうしましょう。秘密鍵を実行時に設定するというのがありがちな方法ですが、例えばその実行形式のコンパイル時に毎回プロトコルをランダムに変更する、ということが可能です。もっとドラスティックに、実行時に自分のプロセスの一部分を変更して、それを別のノードで実行する、といったことも考えられます。

こういう類の自律的な振る舞いを自然に許して、かつうまく抑えこむような環境がつくれるといいなぁ。

*1:フレーム・記号圏・解釈などと呼ぶ方がよいかもしれません

*2:そういう系が存在しているかは解釈する立場に依存するので、「発生する」という言葉を避けました。我々もそうです。気づいた時には自分が存在していた、そういう性質のものです。

*3:C. Shannon, A Mathematical Theory of Communication, 1948 (pdf)

*4:文字列で表せるとしても、ここで本当に扱いたいのはシニフィエなので、集合みたいな抽象化を運用するのはなかなか難しそうです。

*5:そもそも、法則というのは予測可能性から来るものです。

*6:ある程度使う人が多ければ、なんでも実体として扱われるようになります、多分。

*7:サイバーパンク、あるいは現在進行中の著作権などに関する問題もその派生といえるでしょう。