わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

暗号化と復号,符号化と復号

暗号系というのはあくまでもモデルであり,どんな種類の情報が処理されるかについてはあまり注意が払われていません.「あまり注意が払われていない」というのは誤解を招く言い方でして,むしろ「捨象されている」というほうがより適切です.いらないものをそぎ落として,広範なものに応用できるようにしたのが,「モデル」なのですが.
「どんな種類の情報が」について,暗号理論の入門として勉強する際には,次の3種類を知っておくといいでしょう.古典暗号を説明する際に,英字のみを使います.DESやAESに代表される対象暗号では,任意のビット列,「0,1」の並びになります.次の次の回の授業で公開鍵暗号RSAを学びますが,そこでは,0以上の整数値を,0以上の整数値に暗号化します.ただし,計算機上ではビット列として処理していきます.
そうすると,我々が本当に送りたいメッセージ,「今何時?餃子」*1なんかでもいいのですが,これを暗号化するのに適した形に変換しておかないといけません.この変換作業は俗に「エンコード」と呼ばれます.日本語に訳すと,まあ「符号化」です.情報理論で,情報源符号化と通信路符号化を学んだと思いますが,どちらかというと情報源符号化に近いです.圧縮はしませんが.
そうそう,実用上,元のメッセージを圧縮して,暗号化して送るということがあります.圧縮が先で,その後にそれを暗号化するのがセオリーです.逆に,先に暗号化してしまうと,暗号文は見た目ばらばらの情報になり,そこに圧縮はかけにくい…圧縮の効率が良くないということになります.
話を戻しまして,なぜ「エンコード」と呼ぶかというと,その反対の操作にも名称を与えたいからです.受信側で,暗号文を復号して,元のメッセージに対応する,暗号化の直前の情報を獲得するわけですが,それを「元のメッセージ」に変換する作業を,「エンコード」の対義語として,「デコード」と呼ぶことにします*2
「デコード」を日本語にすると,「復号」です.符号化に対して,復号です.
しかし,暗号化の反対も,復号なんですね.で,情報セキュリティでは「暗号化-復号」がたびたび出てきますので,「符号化-復号」のペアはなるべく避け,「エンコード-デコード」と表現したいと思います.
なお,「符号」のことを「符合」と書くと,意味が違ってきます.「符合する」という言い方で,ぴったり合うという意味合いになります.
それから,「復号」であって「複合」ではありません.「複合化」という文字をみると,やっぱり,お前何したいねんと突っ込みを入れたくなります.
「符合」にせよ「複合」にせよ,セキュリティや情報理論の分野ではまず出ることがありません.見かけたら,十中八九,誤変換です.自分で書くとき,とくにパソコンで漢字を出すときにも,注意しましょう.

*1:適当にメッセージを用意しろとなったら,私が最初に思い浮かぶのが,これです.研究室で,あるテストデータにこれを書いたら,学生はまず呆れ,次に,自分がテストデータを書くときにも何か工夫しようとしていました.

*2:ここまで文字にしてからWikipediaを見ました.wikipedia:エンコードですが,うーん,どうやら,「俺様語」を学生に伝えてしまったようです.