"送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化手段と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化手段と、w,,wを連接して得られる[ww]を符号化結果として出力する出力手段とを備えたことを特徴とする誤り訂正符号化装置。送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化工程と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化工程と、w,,wを連接して得られる[ww]を符号化結果として出力する出力工程とを含むことを特徴とする誤り訂正符号化方法。コンピュータに、送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化手段と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化手段と、w,,wを連接して得られる[ww]を符号化結果として出力する出力手段とを実現させるためのプログラム。前記出力手段から出力される符号化結果を、任意の暗号化方式を表す関数gでさらに暗号化して出力する第2の出力手段を備えたことを特徴とする請求項1記載の誤り訂正符号化装置。前記出力工程から出力される符号化結果を、任意の暗号化方式を表す関数gでさらに暗号化して出力する第2の出力工程を含むことを特徴とする請求項2記載の誤り訂正符号化方法。コンピュータに、送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化手段と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化手段と、w,,wを連接して得られる[ww]を符号化結果として出力する出力手段と、前記出力手段から出力される符号化結果を、任意の暗号化方式を表す関数gでさらに暗号化して出力する第2の出力手段とを実現させるためのプログラム。しかしながら、上述した公知の[n,m]符号は、誤り訂正の能力は充分であるものの、伝送途中の盗聴対策が不完全であり、セキュリティに欠けるという問題点がある。すなわち、通信路に入力された送信語wや通信路から出力された受信語vを第三者に盗聴されてしまった場合、元の送りたいデータiを容易に推定されてしまうという問題点がある。そこで、本発明の目的は、セキュリティ対策を講じた誤り訂正符号化装置、誤り訂正符号化方法及びプログラムを提供することにある。請求項1記載の発明は、送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化手段と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化手段と、w,,wを連接して得られる[ww]を符号化結果として出力する出力手段とを備えたことを特徴とする誤り訂正符号化装置である。請求項2記載の発明は、送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化工程と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化工程と、w,,wを連接して得られる[ww]を符号化結果として出力する出力工程とを含むことを特徴とする誤り訂正符号化方法である。請求項3記載の発明は、コンピュータに、送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化手段と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化手段と、w,,wを連接して得られる[ww]を符号化結果として出力する出力手段とを実現させるためのプログラムである。請求項4記載の発明は、前記出力手段から出力される符号化結果を、任意の暗号化方式を表す関数gでさらに暗号化して出力する第2の出力手段を備えたことを特徴とする請求項1記載の誤り訂正符号化装置である。請求項5記載の発明は、前記出力工程から出力される符号化結果を、任意の暗号化方式を表す関数gでさらに暗号化して出力する第2の出力工程を含むことを特徴とする請求項2記載の誤り訂正符号化方法である。請求項6記載の発明は、コンピュータに、送りたいデータを、ガロア体GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、長さN ́のベクトルに符号化する第1符号化手段と、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する第2符号化手段と、w,,wを連接して得られる[ww]を符号化結果として出力する出力手段と、前記出力手段から出力される符号化結果を、任意の暗号化方式を表す関数gでさらに暗号化して出力する第2の出力手段とを実現させるためのプログラムである。説明の便宜上、n,k符号を4,1符号とし、送りたいデータを{0,1}とすると共に、たとえば、送りたいデータの0を{0000,1111}、送りたいデータの1を{0011,1100}と符号化するものとする。本発明では、データを送る際に、その{}内のいずれか一つのパターンがランダムに選択されて送信される。たとえば、データ0のパターンは、0000と1111であるので、その一方をランダムに送信するなどである。このようにすれば、仮に伝送途中の第三者がそのパターンの一部を盗聴し得たとしても、元のデータを推定することはできない。これは、たとえば、00を盗聴できたとしても、この00は、データ1のパターンにも含まれているからである。したがって、本発明によれば、セキュリティ対策を講じた誤り訂正符号化装置、誤り訂正符号化方法及びプログラムを提供することができる。以下、本発明の実施形態を説明する。まず、言葉の定義として、長さaのベクトルx=x1,,xaと長さbのベクトルy=y1,,ybを繋げてできる長さabのベクトルx1,,xa,y1,,ybを[xy]で表すことにする。このとき、xにyを連接して[xy]を得るという。3つ以上のベクトルについても[と]で括ったもので、同様に連接してできるベクトルを表す。たとえば、[xyz]は、xにyを連接し、それにさらにzを連接してできるベクトルを表す。<第1の実施形態n,k符号化>図1は、第1の実施形態n,k符号化の概念ブロック図である。このブロックは、冒頭で説明した通信系のモデル図図3における符号器として用いることができるものを模式的に表している。このブロックの具体的な構成については特に言及しない。たとえば、ハードロジックで構成されていてもよいし、あるいは、その全てまたはその主要な機能の一部がコンピュータで実行可能なソフトウェアで構成されていてもよい。いずれにせよ、以下に説明する機能を実現できる構成になっていればよい。図示のブロック全体の名称は、たとえば、冒頭の通信モデルのように、符号器と呼称しても構わないが、ここでは、従来技術の[n,m]符号化と区別するために、二重の括弧を用いてn,k符号化部1と称することにし、さらに、このn,k符号化部1による符号化のことを、n,k符号化と称することにする。n,k符号化部1は、少なくとも、u発生部2、x ́生成部3及び[n,m]符号化部4を含む。u発生部2は、たとえば、物理的な乱数発生器または疑似乱数発生器であり、[n,m]符号化部4は、従来技術の[n,m]符号化に相当する操作を行うものである。この第1の実施形態では、情報のセキュリティを確保するため、以下の新しい符号化を行う。この方式は、簡単にいえば、冒頭で説明した公知の[n,m]符号化を用いてkディジット分の情報を送るというものである。ただし、k≦mである。今、送りたいデータxが、次式28のようなものであるとする。x ́生成部3は、このデータxに、u発生部2でランダムに発生させたm-k個のディジットからなるベクトルu=xk1,,xmを連接して、次式29のx ́を得る。[n,m]符号化部4は、前記の生成行列Gによって指定される[n,m]符号化を用いて、x ́生成部3で演算されたx ́を、長さnのベクトルfx ́に符号化する。このように、この第1の実施形態では、送りたいデータxにランダムに発生させたm-k個のディジットからなるベクトルu=xk1,,xmを連接してx ́を生成し、そのx ́を、[n,m]符号化を用いて長さnのベクトルfx ́に符号化し、それを出力する。この第1の実施形態における符号化は、前記のとおり、n,k符号化であり、生成行列Gを変えることで異なる符号化が得られるため、特に符号化を具体的に指定するためには、これを、生成行列Gによって指定されるn,k符号化と呼ぶ。このn,k符号化のイメージは、次式30のように示すことができる。式30の全体は、図1のn,k符号化部1に相当する。さらに、x→x ́の部分はx ́生成部3に相当し、x ́→fx ́の部分は[n,m]符号化部4に相当する。ここで、前記の発明の効果の欄で挙げた例が、この第1の実施形態のn,k符号化で実現できることを説明する。線形符号Cの基底をg1,,gmとし、このうちgk1,,gmの張る部分空間をBとするとともに、n=4、k=1、m=2とすれば、線形符号Cの一例は、次式31のように書き表すことができ、また、Bの一例は、次式32のように書き表すことができる。なお、これらは、GFq=GF2の場合の例である。この場合、g1、g2は、次式33及び次式34のように書き表すことができる。すると、次式35のように、u発生部2でx2=0,1がランダムに発生されるから、送りたいデータがx1=0であるか、x1=1であるかに応じて、n,k符号化器1の出力は、{0000,1111}か{1100,0011}になる。ただし、ここでは、ベクトル1,1,1,1を1111と書くなどした。このように、この第1の実施形態によれば、送りたいデータxにランダムに発生させたm-k個のディジットからなるベクトルu=xk1,,xmを連接してx ́を生成し、そのx ́を、[n,m]符号化を用いて長さnのベクトルfx ́に符号化することにより、kディジット分の情報を生成出力することができるので、以下の理由から、情報のセキュリティを確保することができる。今、簡単化のために、n,k符号を4,1符号とし、送りたいデータを{0,1}とする。この場合、第1の実施形態では、たとえば、送りたいデータの0を{0000,1111}、送りたいデータの1を{0011,1100}と符号化し、データを送る際に、その{}内のいずれか一つのパターンをランダムに選択して送信する。たとえば、データ0のパターンは、0000と1111であるので、その一方をランダムに送信する。仮に伝送途中の第三者がそのパターンの一部を盗聴し得たとしても、元のデータを推定することはできない。これは、たとえば、00を盗聴できたとしても、この00は、データ1のパターンにも含まれているからである。したがって、この第1の実施形態の符号化手法n,k符号化においては、伝送途中の第三者による盗聴を効果的に防止し、セキュリティ対策を講じることができるので、本発明の冒頭の課題を達成することができる。<第2の実施形態二段階符号化>以上説明した第1の実施形態の符号化手法n,k符号化においては、セキュリティ対策を講じることができる点で有益である。一方で、理論的な解析により比較的符号長が長い方が復号誤り確率と安全性の点で有利であることは分かっているものの、符号長が長くなるにつれ、符号化や復号化の手続きの煩雑さが増していくことを否めず、この手続きの煩雑さが、実用化する上での障害となる可能性がある。上記のとおり、n,k符号化は、通信路上での盗聴を回避できるという従来技術にない格別有益なメリットを持つため、かかる障害要因手続きの煩雑さの克服は、是非とも達成されなければならない技術課題である。以下に説明する第2の実施形態は、そのためのものである。簡潔に述べれば、この第2の実施形態は、分割統治の考え方与えられた問題をいくつかの小さな問題に分割して解き、それをもとに統治をおこない、問題の解を得る手法のこと。分割統治法:DivideandConquerともいう。を採用して、大きな符号長を持つn,k符号化の処理をいくつかの処理に分けて段階的に行うことにより、前記の障害要因を克服し、以て、産業上の利用に充分に耐え得る誤り訂正符号化の技術を提供するものである。第2の実施形態について説明する。この第2の実施形態では、以下に詳述するように、一例として、2つの線形符号を使って符号化する方法を開示する。以下、この符号化のことを二段階符号化という。この二段階符号化では、N>0,ni≧mi≧ki≧0i=1,,Nを整数実用的なのは、ni,mi,kiがiに依らない場合である。とするとき、mi×ni生成行列Giにより指定されるni,ki符号化と、GFq上のM ́×N ́生成行列Fにより指定されるN ́,K ́符号化とを組み合わせて符号化する。これを、N′′,K′′符号化という。ただし、N ́とM ́は、次式36で与えられる。具体的なN ́,K ́符号化の方法は、以下のようになる。ここで、送信データの長さはK ́である。図2は、第2の実施形態二段階符号化の概念的な処理フローを示す図である。この処理フローは、冒頭で説明した通信系のモデル図図3における符号器として用いることができるものを模式的に表している。前記の第1の実施形態と同様に、この処理フローは、ハードロジックで構成されていてもよいし、あるいは、その全てまたはその主要な機能の一部がコンピュータで実行可能なソフトウェアで構成されていてもよい。いずれにせよ、以下に説明する機能を実現できる構成になっていればよい。この処理フローにおいて、まず、ステップS1のN ́,K ́符号化で、GFq上のM ́×N ́生成行列Fによって指定されるN ́,K ́符号化により、任意の送りたいデータを、長さN ́のベクトルに符号化する。このベクトルは、N個のブロックに分割して、次式37のように書くことができる。次いで、ステップS2のni,ki符号化で、i=1,,Nに対して、を生成行列Giによって指定されるni,ki符号化により、長さniのベクトルに符号化する。そして、最後のステップS3で、w,,wを連接して得られる[ww]を符号化結果として出力する。ここで、ステップS1で用いる符号について、特に有用なのは、GFq上のM ́×N ́生成行列Fで指定されるN ́,K ́符号化が、GFqの拡大体GFqk上の符号に由来する場合である。この場合、たとえば、GFqk上のリードソロモン符号を使用することができる。実用上、GFqk上の[N,K]リードソロモン符号は、GFq上の[kN,kK]符号として用いられている。たとえば、コンパクトディスクに用いられているリードソロモン符号などであるq=2。すなわち、ステップS1のN ́,K ́符号化では、従来の[n,m]符号化に相当する[N ́,M ́]符号化を用いることができるが、この部分では、GFqk上の[N,M]符号をGFq上の[kN,kM]符号として用いることができる。ただし、N ́=kN,M ́=kMとおく。なお、これは、GFqkの元を、GFq上の長さkのベクトルとして表現して得られるものである。具体的には、以下のとおりである。今、GFq上の線形空間であるGFqkの基底をb=βjkj1とする。これを用いて、いかなる要素ζ∈GFqkも、次式40のように書くことが可能であるので、このように得られた数の行ベクトルx1,,xkを、φζの記号で示すことにする。この変換ζ→φζ=x1,,xkを用いた対応ξ=ξ1,,ξN←→[φξ1φξN]により、GFqk上の長さNのベクトルξと、GFq上の長さkNのベクトル[φξ1φξN]とを同一視することができるようになる。二段階符号化の具体例を説明する。ni,mi,kiがiに依らない場合、すなわち、n≧m≧k≧0を整数として、ni=n,mi=m,ki=ki=1,,Nの場合の具体例を挙げる。上記のステップS1では、前述したような[kN,kM]符号化を用いる。たとえば、q=2で、k=4ならば、リードソロモン符号による[415,4M]符号化を用いることができる。ただし、0<M≦15である。この場合、上記のステップS1では、次式41が得られる。ステップS2では、同一の生成行列Gによって指定されるn,k符号化を、y1,,ykに適用してもよいi=1,,N。たとえば、n=6のとき、次式42~46として、第i行がgiであるような生成行列Gによって指定される6,4符号化を行う。このように、生成行列Gによって指定される6,4符号化の出力は、ハミング重みが偶数であるようなベクトルとなる。なお、上記において、拡大体GFqk上の符号について取り扱ったのは、このような符号を用いると効率の良い復号を行うことができるからである。しかし、これは、性能的に最良ベストモードの実施態様を例示しているに過ぎない。したがって、本発明は、この拡大体GFqk上の符号を使用するケースに限定されない。以上のとおり、この第2の実施形態においては、分割統治の考え方を採用して、大きな符号長を持つn,k符号化の処理をいくつかの処理に分けて段階的に行うようにしたので、符号化や復号化の手続きを効率的に行うことができ、手続きの簡素化を図ることができる。したがって、先に説明した第1の実施形態の符号化手法n,k符号化の利点セキュリティ対策を講じることができる。を活かしつつ、n,k符号化の長い符号長に伴う欠点符号化や復号化の手続きの煩雑さを解決し、実用に耐え得る誤り訂正符号化の技術を提供することができる。なお、この第2の実施形態は、二段階符号化に関するものであるが、二段階に限らず、三段階以上のものも包含する。これは、三段階以上の場合、二段階符号化を手続きの一部に含むからである。したがって、発明にとって必須な事項は、二段階符号化に関する部分図2のステップS1、ステップS2にあるということができる。前記第1の実施形態はn,k符号化に関するものであり、また、前記第2の実施形態は二段階符号化に関するものである。これら二つの実施形態は、前式30で示したとおり、たとえば、従来の[n,m]符号化をブラックボックス化することによって極めて単純に構築することができる。これを補足すると、次式47のようになる。この式47より、前記二つの実施形態は、結局、通信路または記憶デバイスへ入力する前の部分だけの符号化法であるということができる。ちなみに、本発明の本質ではないものの、復号器についても言及すれば、前記二つの実施形態に対応する復号器の中身は、概ね次式48のように書き表すことができる。ここで、x,uの推定値はそれぞれ、次式49で与えられる。以上のことから、二段階符号化もトータルとして見れば、次式50のように書き表すことができるので、上式49の復号原理を適用することができる。ただし、効率の点では、二段階符号化に対応した二段階の復号化を適用することが望ましい。これは、公知の二段階符号化=連接符号の復号に類似する。なお、前記第1の実施形態において、[n,m]符号化部4の[n,m]符号化は、生成行列Gによって指定されるとしてあるが、これは具体例として挙げたある特定の符号の生成行列Gに限定されない。[n,m]線形符号の生成行列であれば、ある特定の生成行列Gに限らず、全て使用することができる。このことは、第2の実施形態における二段階符号化でも同様である。また、先に述べたとおり、前式47は、前記二つの実施形態が、結局、通信路または記憶デバイスへ入力する前の部分だけの符号化法であることを意味しているが、これによって、本発明の利用形態を限定的に把握してはならない。つまり、前式47によれば、直接的には、n,k符号化したデータfx ́を、そのまま通信路または記憶デバイスに入力する最も単純な利用形態のみをイメージさせるかも知れないが、それは、本発明の利用形態の一例を示しているに過ぎないものである。たとえば、暗号強度をさらに高める狙いから、本方式を別の暗号化方式と併用することも充分に考えられる利用形態の一つである。この併用形態について説明すると、今、併用する暗号化方式を表す関数をgとする。そして、上記のfx ́をさらにgfx ́に暗号化した後に、gfx ́を通信路または記憶デバイスに入力するようにすれば、fx ́の暗号強度がさらにgで補強されるので、より実用上好ましい強力な暗号化方式とすることができる。ただし、現在普及している暗号方式では一般的にgは暗号鍵Kに依存し、記法としてはg=gKの形にすることが多いが、以上の説明では簡単化のために、併用する暗号化方式を表す関数を単にgとした。したがって、このgはg=gKの形も包含する。"