資料シート●各科目

符号

http://www.infonet.co.jp/apt/March/syllabus/bookshelf/code.html




符号


 情報のような実体のないものをそのまま記録/通信することはできない。そこで、内容によって異なる文字/記号を対応させておいて、その文字/記号を代わりに記録/通信する。この文字/記号やその対応を符号(=コード<code)という。


符号化:復号


 記録/通信の始めに、ものごとからその符号を導出する(表を引いたり計算したりして求める)ことを符号化(<encoding)といい、逆に、記録/通信の終わりに、符号からもとのものごとを導出することを復号(<decoding)という。

符号化

実体
符号
復号


[例]

"A"

×○×××××○

3

××○○


符号系


 符号を使う場合は、送る側と受ける側とがどんな符号をそれぞれ何を表現するのに使うのかを打ち合わせておかなければならない。この取り決めを符号系(code system)という。
 符号で表現される実体と符号との対応のつけ方を決めた規則を符号系(coding system)という。
 符号系では符号化と複合のやり方をはっきりさせることがたいせつなので、数学の関数の定義と同じように、表や式や手順書を使って情報と符号との対応が定義される。たとえば、キャラクタ(character≒文字)に符号を対応させる符号系の場合は、その符号系で符号が割り当てられるすべてのキャラクタが書き出されていてそのそれぞれに対して符号を書き添えた、とても大きな表が作られている。

 符号を使った記録/通信では、符号化と復号とが全く同じ符号系にもとづいて行なわれなければならない。もしも符号系が両側で食い違っていると、記録しようとした情報とは違うものが再生されたり、送信したはずの情報とは別のものが受信されたりすることになる(▽図)。

記録/送信側

再生/受信側


C,
符号化

(JIS2単位系で)

復号

(ISOで)
×○××
××○○
××○×
○○××

記録/通信
×○××
××○○
××○×
○○××

 符号を使わなければならなくなるたびにいちいち符号系を決めるのは不便なので、多くの場合、みんなが使える共通の符号系があらかじめ決められている。
 古典的な符号系には、手旗信号の符号系やMorse符号系などがある。



 架空のものだけれど、DoyleのHormesシリーズの[踊る人形]に登場する符号系も有名だ。




符号の組み立て


 [踊る人形]の符号は、一つ一つが全く異なった文字になっている。このような符号を使うためには、それぞれの符号の違いを書き分け/読み分けしなければならないので、とても不便だ。そこで、符号要素といういくつかの文字に当たるものを決めておいて、その順列(permutation)として符号を組み立てることが行なわれるようになってきた。

 Morse符号系は、2種類(・/−。および間合いなど)の符号要素の順列として作られている。また、あまり使わない符号は長く、よく使う符号は短くなるように決めることによって、負荷を小さく抑えられるようになっている。しかし、このように要素の個数が符号によってさまざまなのは、読み書きが複雑になってよくないという面もある。

 現代の技術で実際に広く使われている符号系では、ビット(=2種類だけの要素)をある決まった個数(実際には8個とか16個など)ずつ組み合せて作ったビット列(これをバイトとよぶ。▽図)が符号として使われている。

× ×   × × × × × ×


キャラクタ符号系


 ABC数字などのキャラクタを表現するための符号系として、ISO符号系(▽図上)が国際的な標準として定められている。また、一時は、EBCDIC(▽図中)という符号系もよく使われていた。
 日本では、漢字を含む日本字を表現するための標準の符号系として、JIS2単位符号系が定められている。また、コンピュータで日本字を扱う場合には、シフトJISEUCユニコード(▽図下)などの符号系が使われている。



ISO符号系で表現された文章。および同じ内容をEBCDICユニコードで表現したもの

 これらの符号系はどれも一定(またはその何倍か)の長さのビット列を符号として使うように決められている。


暗号


 符号とよく似たものに暗号(cipher)がある。符号の目的は情報を記録/通信することにあるが、暗号のそれは内容を(または存在さえ)知られずに情報を扱うことにある。そのため、情報工学などの専門の分野では、この二つはきちんと区別することが求められる(▽図。日常の生活だとうるさいのは嫌われるよ)。



 映画にもなった小説 [DaVinci Code] だけど、DaVinciが残した暗号がテーマになっているんだから、"DaVinci Cipher" という題名にしてほしい。語感としては [DaVinci Code] の方がかっこいいけど。

 暗号を使って通信/記録を行なう場合は、符号化の途中で特別な処理を行なう。そして、復号の途中でその逆の処理を行なう。これらの処理は(基本的には)公開されていない。
 そのため、もしよその誰かが通信/記録されている符号(列)を読み書きする機会があったとしても、復号できないから読めない。さらに、符号化できないから別の情報を書き足すこともできない。

 暗号のための特別な処理としては、情報原子と符号との対応に公開されていない符号系([踊る人形]のような)を使うとか、分析/総合の途中で付け足し/入れ替え/取り除き(印をつけたり一部を書き換えたりして作る)を行なうなどの作業が用いられている。
 現代の暗号はどちらかというとあとの方が主流になっている。つまり、(よく想像されるような)暗号という特別な符号があるわけではない。暗号は、符号化/復号の一部として含まれる特別な作業だと考えなければいけない。



メディアテクノロジー論


Copyleft(C) 1999-07, by Studio-ID(ISIHARA WATARU). All rights reserved.


最新更新
07-05-30