(57)【要約】【課題】ＣＰＵの演算能力を効率よく利用できる符号化装置を提供する。【解決手段】係数データ５を格納する係数テーブル格納部６と、情報シンボル１１のビット数の整数倍のビット幅を有するレジスタ１ａ〜１ｄと、情報シンボル１１をレジスタ１ａ〜１ｄに入力するデータ入力部９と、レジスタ１ｄからデータを出力するデータ出力部２と、データ出力部２によりレジスタ１ｄから出力されたデータに基づいて、レジスタ１ａ〜１ｄに格納される情報シンボル１１の符号化に用いる係数データ５を指定するアドレス指定部４と、アドレス指定部４により指定された係数データ５とレジスタ１ａ〜１ｄに格納される情報シンボル１１との排他的論理和の演算を行い、該情報シンボル１１の符号化データを求める排他的論理和演算器３とを備える。【選択図】図１
2008288884.tif 000002
【特許請求の範囲】
【請求項１】
情報シンボルの符号化演算用の係数データを格納する演算用データ格納部と、
前記情報シンボルのビット数の整数倍のビット幅を各々が有する複数のレジスタと、
符号化すべき一連の情報シンボルを前記複数のレジスタに入力するデータ入力部と、
前記レジスタからデータを出力するデータ出力部と、
前記データ出力部により前記レジスタから出力されたデータに基づいて、前記演算用データ格納部の係数データのうち、前記複数のレジスタに格納される情報シンボルの符号化に用いる係数データを指定する指定部と、
前記指定部により指定された係数データを用いて前記複数のレジスタに格納される情報シンボルの符号化演算を行い、該情報シンボルの符号化データを求める演算部とを備えた符号化装置。
【請求項２】
演算用データ格納部は、１情報シンボル単位のデジタルデータを元とするガロア体のベクトル表現の全要素を指数表現に変換した数値と指数表現のガロア体定数との積をとり、これをベクトル表現にしたデータを係数データとして格納し、
指定部は、データ出力部によりレジスタから出力されたデータに基づいて、複数のレジスタに格納されている情報シンボルを求め、該情報シンボルを前記ガロア体のベクトル表現とみなして前記演算用データ格納部を検索することにより、前記複数のレジスタに格納されている情報シンボルの符号化に用いる係数データを指定し、
演算部は、前記複数のレジスタに格納されている情報シンボルと前記指定部により指定された係数データとの排他的論理和の演算を行うことを特徴とする請求項１記載の符号化装置。
【請求項３】
指定部は、ガロア体のベクトル表現された係数データを各レジスタのレジスタ幅に合わせたビット列で指定することを特徴とする請求項２記載の符号化装置。
【請求項４】
装置外部からデータを収集するデータ収集部と、前記データ収集部により収集されたデータを情報シンボルとして格納するデータ格納部とを備えたことを特徴とする請求項１から請求項３のうちのいずれか１項記載の符号化装置。
【請求項５】
データ入力部は、データ格納部に格納されている符号化すべき一連の情報シンボルから構成される情報シンボル群のうち、所定の順番で並ぶ情報シンボルを選択的に取り出してレジスタに入力することを特徴とする請求項１から請求項４のうちのいずれか１項記載の符号化装置。
【請求項６】
演算部による演算回数をカウントするカウンタ部と、前記カウンタ部によりカウントされる演算回数において、符号化処理を中断するにあたり、演算回数及び前記各レジスタに記録されている途中の演算結果を格納する処理経過格納部を備え、符号化処理を再開するにあたり、前記処理経過格納部に格納された演算回数及び符号化処理を中断した際に記録した演算の途中結果を用いることを特徴とする請求項１から請求項５のうちのいずれか１項記載の符号化装置。
【請求項７】
情報シンボルの暗号化用データを算出する暗号部と、
前記暗号部により算出された暗号化用データを格納する演算用データ格納部と、
情報シンボルのビット数の整数倍のビット幅を各々が有する複数のレジスタと、
暗号化すべき一連の情報シンボルを前記複数のレジスタに入力するデータ入力部と、
前記演算用データ格納部から取り出した暗号化用データを用いて、前記レジスタに格納される情報シンボルの暗号化演算を行い、該情報シンボルの暗号化データを求める演算部とを備えた暗号化装置。
【請求項８】
演算部による演算回数をカウントするカウンタ部を備え、
暗号部は、ノンスに相当するデジタル値と前記カウンタ部のカウント値とを組み合わせたブロックデータを暗号化して暗号化用データを算出し、
前記演算部は、前記カウント値に基づいて演算用データ格納部から取り出された暗号化用データを用いて、レジスタに格納される情報シンボルの暗号化演算を行うことを特徴とする請求項７記載の暗号化装置。
【請求項９】
請求項１から請求項６のうちのいずれか１項記載の符号化装置としてコンピュータを機能させるプログラム。
【請求項１０】
請求項７又は請求項８記載の暗号化装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、レジスタ及び係数データ格納部を用いて、情報データに対しブロック型の誤り訂正符号化を行う符号化装置、暗号化を行う暗号化装置及びこれら装置としてコンピュータを機能させるプログラムに関するものである。
【背景技術】
【０００２】
例えば、特許文献１に開示される従来の符号化装置では、リードソロモン符号の生成多項式における各項との乗算を行うにあたり、乗算器がリードソロモン符号のシンボル単位で乗算を行い、加算器がビット単位で加算を行う。また、特許文献２に開示される従来の符号化装置は、インターリーブにより符号化を行うにあたり、スイッチで符号化対象の入力情報を複数の符号化器に振り分ける。
【０００３】
【特許文献１】特開平９−３３１２６２号公報
【特許文献２】特開２００２−２７４６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の符号化装置は、符号化においてＣＰＵを効率よく利用できない処理が含まれており、また専用のハードウェアが必要であった。例えば、特許文献１の符号化装置では、加算器の演算においてＣＰＵがシフトレジスタをビットシフトさせてデータ移動することから、複数ビット毎のシフトでのレジスタ演算が可能なＣＰＵの演算能力を効率よく利用できていない。
【０００５】
さらに、特許文献１の符号化装置は、リードソロモン符号のチェックシンボルを算出するために乗算器及び加算器が専用ハードウェアとして必要である。特許文献２の符号化装置においても、インターリーブ処理を行うために複数の符号器を備える必要があり又は符号化器の数によってインターリーブ値の上限が固定される。
【０００６】
また、従来の符号化装置は、符号化処理を中断、再開する機能を有しておらず、データ送信先との通信が可能な時間内にデータを符号化して送信する必要がある。例えば、地球を周回する人工衛星に搭載するデータハンドリングシステムでは、地上局側から制御命令を受信すると即座に応答データを返信する必要性があり、かつその応答データと観測データを同時に符号化処理しなければならない場合がある。この場合、従来の符号化装置を適用したデータハンドリングシステムでは、地上局から制御信号を受信した後に人工衛星が地球の影に隠れて地上局側から不可視になると、データ送信先である地上局との通信が不通となり、制御信号に応じた符号化処理を行うことができない。
【０００７】
この発明は、上記のような課題を解決するためになされたもので、ＣＰＵの演算能力を効率よく利用できる符号化装置、暗号化装置及びこれら装置としてコンピュータを機能させるプログラムを得ることを目的とする。
【０００８】
また、この発明は、符号化器の数を増やすことなくインターリーブ値を変更することができ、符号化を適宜中断、再開することができる符号化装置及びこの装置としてコンピュータを機能させるプログラムを得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る符号化装置は、情報シンボルの符号化演算用の係数データを格納する演算用データ格納部と、情報シンボルのビット数の整数倍のビット幅を各々が有する複数のレジスタと、符号化すべき一連の情報シンボルを複数のレジスタに入力するデータ入力部と、レジスタからデータを出力するデータ出力部と、データ出力部によりレジスタから出力されたデータに基づいて、演算用データ格納部の係数データのうち、複数のレジスタに格納される情報シンボルの符号化に用いる係数データを指定する指定部と、指定部により指定された係数データを用いて複数のレジスタに格納される情報シンボルの符号化演算を行い、該情報シンボルの符号化データを求める演算部とを備えるものである。
【発明の効果】
【００１０】
この発明によれば、情報シンボルの符号化演算用の係数データを格納する演算用データ格納部と、情報シンボルのビット数の整数倍のビット幅を各々が有する複数のレジスタと、符号化すべき一連の情報シンボルを複数のレジスタに入力するデータ入力部と、レジスタからデータを出力するデータ出力部と、データ出力部によりレジスタから出力されたデータに基づいて、演算用データ格納部の係数データのうち、複数のレジスタに格納される情報シンボルの符号化に用いる係数データを指定する指定部と、指定部により指定された係数データを用いて複数のレジスタに格納される情報シンボルの符号化演算を行い、該情報シンボルの符号化データを求める演算部とを備えるので、複数の情報シンボルをまとめてレジスタ内で符号化演算でき、ＣＰＵの演算能力を効率よく利用できる符号化を実現することができるという効果がある。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、この発明の実施の形態１による符号化装置の構成を示す図であり、人工衛星に搭載されるデータハンドリングシステムに適用した場合を示している。図１において、実施の形態１による符号化装置は、シフトレジスタ１ａ〜１ｄ、データ出力部２、排他的論理和演算器（演算部）３、アドレス指定部（指定部）４、係数テーブル格納部（演算用データ格納部）６、受信部７、データ収集部８、データ入力部９、情報データ格納部（データ格納部）１０、処理経過データ格納部（処理経過格納部）１２及びカウンタ部１４を備える。シフトレジスタ１ａ〜１ｄは、実施の形態１による符号化装置として機能するコンピュータのＣＰＵのレジスタ幅と同じビット数を有するレジスタである。図１の例では、ＣＰＵのレジスタ幅を６４ビットとし、シフトレジスタ１ａ〜１ｄのレジスタ幅もそれぞれ６４ビットであるものとする。
【００１２】
データ出力部２は、レジスタ１ｄから入力した１シンボル分（１処理単位）の情報シンボルをアドレス指定部４に出力する。ここでは、８ビット（１バイト）が、１処理単位であるものとする。排他的論理和演算器３は、係数テーブル格納部６からレジスタ１ａ〜１ｄにそれぞれ取り出された係数データ５とレジスタ１ａ〜１ｄの各値との排他的論理和を演算してレジスタ１ａ〜１ｄに格納する。アドレス指定部４は、データ出力部２から入力した情報シンボルより導出されるアドレス値に基づいて係数テーブル格納部６からレジスタ１ａ〜１ｄへ出力するリードソロモン符号化のための６４ビットの４つの係数データ５を指定する。
【００１３】
係数データ５は、８ビット（１処理単位）のデジタルデータを元とするガロア体ＧＦ（２8 ）のベクトル表現の全要素を指数表現に変換した数値と指数表現のガロア体定数との積をとり、これをベクトル表現にしたデータである。例えば、ガロア体ＧＦ（２8 ）の指数表現した原始根αi （ｉ＝０〜２５４）と、定数係数Ｇ0 〜Ｇ31をガロア体ＧＦ（２8 ）の原始根として指数表現した値との積を求める。この積算結果αk(i)（ｉ＝０〜３１）を１バイト（１処理単位）の２進数表現に変換した値Ｂ0 〜Ｂ31を、シフトレジスタ１ａ〜１ｄに対応させてＢ0 〜Ｂ7 、Ｂ8 〜Ｂ15、Ｂ16〜Ｂ23、Ｂ24〜Ｂ31とし、これらをそれぞれ連結することにより、係数データ５は、４つの８バイトデータＫ1 、Ｋ2 、Ｋ3 、Ｋ4 とおくことができる。
【００１４】
係数テーブル格納部６は、係数データ５を所定のアドレス値ごとに対応付けたテーブルとして格納する。ここで、係数データ５は、ガロア体ＧＦ（２8 ）の指数表現した原始根αi のいずれかの値に対応する８ビットのデータｍを指定すると、このデータｍに対応する４つの８バイトデータＫ1 （ｍ）、Ｋ2 （ｍ）、Ｋ3 （ｍ）、Ｋ4 （ｍ）として求めることができる。係数テーブル格納部６では、８ビットデータ（２５６個）の全てに対してデータｍに対応するアドレス値を記憶領域に設定し、このアドレス値で指定される記憶領域にＫ1 （ｍ）、Ｋ2 （ｍ）、Ｋ3 （ｍ）、Ｋ4 （ｍ）を格納する。つまり、データｍに対応するアドレスで係数データ５の検索が可能な係数データテーブルを構築する。なお、アドレス値には、８ビットの情報シンボルに所定の演算処理を施した結果を利用してもよいが、情報シンボルに相当する８ビットのデータｍをそのままＫ1 （ｍ）、Ｋ2 （ｍ）、Ｋ3 （ｍ）、Ｋ4 （ｍ）のアドレス値として用いてもよい。
【００１５】
受信部７は、地上局との間で通信を行うデータハンドリングシステムの通信処理部であり、地上局から電波にて送信されるコマンドを受けてコマンド番号を含む応答データＣＬＣＷ（Command Link Control Word）（４情報シンボル）を生成する。データ収集部８は、人工衛星に搭載された観測装置群との間で通信を行うデータハンドリングシステムの通信処理部であり、観測装置群から観測データを収集して情報データ格納部１０に８ビット単位の情報シンボル１１として保存する。データ入力部９は、情報シンボル１１を６４ビットのレジスタ１ａの先頭８ビットに格納する。情報データ格納部１０は、データ収集部８により収集された観測データを情報シンボル１１として格納する。
【００１６】
処理経過データ格納部１２は、リードソロモン符号化処理の中断の際、レジスタ１ａ〜１ｄに格納されている値をそれぞれ中断データ１３ａ〜１３ｄとして格納すると共に、リードソロモン符号化処理におけるループ処理のカウント値をカウントデータ１５として格納する。カウンタ部１４は、リードソロモン符号化処理におけるループ処理の回数、つまり排他的論理和演算器３による演算回数をカウントし、そのカウント値を処理経過データ格納部１２に出力する。
【００１７】
上述した、データ出力部２、排他的論理和演算器３、アドレス指定部４、受信部７、データ収集部８、データ入力部９及びカウンタ部１４は、本発明の趣旨に従う符号化プログラムを、レジスタ１ａ〜１ｄに相当する６４ビットレジスタを４つ有するコンピュータに読み込ませてその動作を制御することにより、当該コンピュータ上にソフトウエアとハードウェアが協働した具体的な手段として実現することができる。また、係数テーブル格納部６、情報データ格納部１０及び処理経過データ格納部１２は、上記コンピュータに搭載された汎用メモリ上に構築される。
【００１８】
なお、コンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００１９】
次に動作について説明する。
図２及び図３は、図１中の符号化装置による符号化処理の流れを示すフローチャートであり、この符号化装置を適用したデータハンドリングシステムが地上局から制御信号を受信した後、人工衛星が地上局側から不可視になった場合の処理を示している。以降では、ＣＣＳＤＳ（Consultative Committee for Space Data System Standards）推奨の（２５５，２２３）符号をリードソロモン符号として想定する。なお、（２５５，２２３）符号は、情報シンボル部が２２３バイト、冗長部が３２バイトとなる。
【００２０】
先ず、データ収集部８は、人工衛星の観測装置群から観測データを収集し、情報データ格納部１０に８ビット単位の情報シンボル１１として保存する。データ入力部９は、情報データ格納部１０から情報シンボル１１を取り出す（ステップＳＴ１）。
【００２１】
この後、実施の形態１による符号化装置のＣＰＵは、レジスタ１ｄにおける末尾８ビットの情報シンボルをデータ出力部２に出力（ステップＳＴ２）し、レジスタ１ｄの内容を１情報シンボル分（８ビット）右論理シフトする（ステップＳＴ３）。続いて、上記ＣＰＵは、レジスタ１ｃにおける末尾８ビットの情報シンボルをレジスタ１ｄの先頭８ビットに追加（ステップＳＴ４）し、レジスタ１ｃの内容を１情報シンボル分（８ビット）右論理シフトする（ステップＳＴ５）。
【００２２】
次に、上記ＣＰＵは、レジスタ１ｂにおける末尾８ビットの情報シンボルをレジスタ１ｃの先頭８ビットに追加（ステップＳＴ６）し、レジスタ１ｂの内容を１情報シンボル分（８ビット）右論理シフトする（ステップＳＴ７）。この後、上記ＣＰＵは、レジスタ１ａにおける末尾８ビットの情報シンボルをレジスタ１ｂの先頭８ビットに追加（ステップＳＴ８）し、レジスタ１ａの内容を１情報シンボル分（８ビット）右論理シフトする（ステップＳＴ９）。
【００２３】
データ入力部９は、情報データ格納部１０から取り出した情報シンボル１１をレジスタ１ａの先頭８ビットに追加する（ステップＳＴ１０）。一方、データ出力部２は、レジスタ１ｄから入力した１情報シンボル分のデジタルデータをアドレス指定部４に出力する。アドレス指定部４は、データ出力部２から入力した１情報シンボル分のデジタルデータに対し所定の演算を施してアドレス値を算出する。例えば、データ出力部２から入力された１情報シンボル分のデジタルデータそのものに対して係数テーブル格納部６のベースアドレス値であるオフセットアドレス値を加算することによって係数データ５のアドレス値としてもよい。
【００２４】
アドレス指定部４は、上述のようにして求めた上記情報シンボルに対応するアドレス値に基づいて係数テーブル格納部６を検索し、係数テーブル格納部６の格納データのうちからリードソロモン符号化のための６４ビットの係数データ５を４つ指定する（ステップＳＴ１１）。アドレス指定部４により指定された４つの係数データ５は、レジスタ１ａ〜１ｄにそれぞれ取り出される。排他的論理和演算器３は、係数テーブル格納部６からレジスタ１ａ〜１ｄにそれぞれ取り出された係数データ５とレジスタ１ａ〜１ｄの各値との排他的論理和を演算してレジスタ１ａ〜１ｄに格納する（ステップＳＴ１２）。
【００２５】
ステップＳＴ１２までの処理が完了すると、カウンタ部１４は、カウント値を１インクリメントする（ステップＳＴ１３）。この後、上記ＣＰＵは、カウンタ部１４にカウントされたループ処理の回数（排他的論理和演算器３による演算回数）が２１９に達したか否かを判定する（ステップＳＴ１４）。このとき、ループ処理の回数が２１９でなければ、ステップＳＴ１の処理に戻って次の情報シンボル１１に対して上述の処理を繰り返す。
【００２６】
一方、ループ処理の回数が２１９であれば、上記ＣＰＵは、レジスタ１ａ〜１ｄの内容を中断データ１３ａ〜１３ｄとしてそれぞれ処理経過データ格納部１２に格納する（ステップＳＴ１５）。これにより、（２５５，２２３）符号における符号化対象の２２３バイト分の情報シンボルのうち、応答データＣＬＣＷの４情報シンボル分を除く２１９バイト分の情報シンボルが符号化される。また、カウンタ部１４は、カウント値をカウントデータ１５として処理経過データ格納部１２に格納する（ステップＳＴ１６）。
【００２７】
次に、上記ＣＰＵは、自装置の搭載された人工衛星が地上局側から可視となったか否かを判定する（ステップＳＴ１７）。例えば、受信部７が地上局との通信を確立したか否かにより可視か否かを判定する。ここで、可視時間になっていなければ、ステップＳＴ１６の処理に戻って、カウンタ部１４のカウント値をカウントデータ１５として処理経過データ格納部１２に格納する。
【００２８】
ステップＳＴ１７で可視時間であると判定されると、受信部７は、地上局から電波にて送信されるコマンドを受信し、コマンド番号を含む応答データＣＬＣＷ（４情報シンボル）を生成する（ステップＳＴ１８）。次に、上記ＣＰＵは、不可視時間に処理経過データ格納部１２に格納した中断データ１３ａ〜１３ｄをそれぞれレジスタ１ａ〜１ｄに戻し、カウントデータ１５をカウンタ部１４に戻す（ステップＳＴ１９）。
【００２９】
受信部７は、ステップＳＴ１８で生成した応答データＣＬＣＷの４情報シンボルのうちの１つを取り出してデータ入力部９に設定（ステップＳＴ２０）し、上述したステップＳＴ２からステップＳＴ１３までの処理を繰り返す（ステップＳＴ２１）。ここで、応答データＣＬＣＷの４情報シンボルのうちの１つについてステップＳＴ２１の処理が完了すると、上記ＣＰＵは、応答データＣＬＣＷの４情報シンボル全てを処理したか否かを判定する（ステップＳＴ２２）。このとき、全ての情報シンボルが処理されていなければ、ステップＳＴ２０に戻り、応答データＣＬＣＷの次情報シンボルについての処理に移行する。
【００３０】
応答データＣＬＣＷの４情報シンボル全ての処理が完了した場合、この時点でのレジスタ１ａ〜１ｄの内容がリードソロモン符号のチェックシンボルである（ステップＳＴ２３）。データ出力部２は、レジスタ１ａ〜１ｄから当該リードソロモン符号のチェックシンボルを入力し、符号化結果として出力する。
【００３１】
以上のように、この実施の形態１によれば、情報シンボル１１の符号化演算用の係数データ５を格納する係数テーブル格納部６と、情報シンボル１１のビット数の整数倍のビット幅を各々が有するレジスタ１ａ〜１ｄと、符号化すべき一連の情報シンボル１１をレジスタ１ａ〜１ｄに入力するデータ入力部９と、レジスタ１ｄからデータを出力するデータ出力部２と、データ出力部２によりレジスタ１ｄから出力されたデータに基づいて、係数テーブル格納部６の係数データ５のうち、レジスタ１ａ〜１ｄに格納される情報シンボル１１の符号化に用いる係数データ５を指定するアドレス指定部４と、アドレス指定部４により指定された係数データ５とレジスタ１ａ〜１ｄに格納される情報シンボル１１との排他的論理和の演算を行い、該情報シンボル１１の符号化データを求める排他的論理和演算器３とを備えるので、８情報シンボル分が１つのレジスタに納められることから、排他論理和演算を８情報シンボル同時に行うことができ、ＣＰＵの演算能力を効率よく利用できる。
【００３２】
また、上記実施の形態１による符号化装置は、人工衛星に搭載されるデータハンドリングシステムに適用することで、下記のような効果が得られる。
上述したように、従来の符号化装置を適用した人工衛星に搭載されるデータハンドリングシステムでは、人工衛星が地球の影に隠れると、地上局側から不可視となりテレコマンドを受けて応答データＣＬＣＷを生成し、衛星内の観測装置による観測データに関するテレメトリデータ及び応答データＣＬＣＷを地上局に送信することができなくなる。
【００３３】
これに対し、この実施の形態１による符号化装置を適用したデータハンドリングシステムでは、応答データＣＬＣＷ（４情報シンボル）を除くテレメトリデータを不可視時間に符号化しておくことができ、可視時間になってから応答データＣＬＣＷを符号化するだけでよい。つまり、符号化対象となる２２３情報シンボルのうち、応答データＣＬＣＷを構成する４情報シンボル分を除く、２１９情報シンボルを不可視時間に符号化しておき待機している。これによって可視時間に符号化するシンボル数が応答データＣＬＣＷの４情報シンボルだけでよくなり、可視時間に行う符号化処理の負担を大幅に軽減することができる。
【００３４】
なお、上記実施の形態１では、６４ビットのレジスタ１ａ〜１ｄを使用する例を示したが、チェックシンボルを全て格納でき、かつ情報シンボルのビット数の整数倍の大きさを持つレジスタを用いた構成であっても構わない。このように、より多くの情報シンボルを格納できるレジスタであればあるほど演算回数を減らすことが可能である。
【００３５】
さらに、上記実施の形態１では、符号化処理の演算回数が２１９回で、衛星と地上局とが通信可能となる状態を待つために演算処理を中断したが、符号化処理の任意の演算回数において、ＣＰＵを符号化処理以外の処理に使用したい場合が生じたとき等は、レジスタ１ａ〜１ｄの内容とカウンタ部１４の演算回数を処理経過データ格納部１２へ保存することで符号化処理を中断し、ＣＰＵを一旦、符号化処理以外の処理をさせた後に、再び処理経過データ格納部１２からレジスタ１ａ〜１ｄの内容とカウントデータ１５を各レジスタ及びカウンタ部１４に戻すことで、符号化処理を再開することが可能である。
【００３６】
実施の形態２．
上記実施の形態１では、情報データ格納部１０から一連の情報シンボル１１をデータ入力部９へ取り出す動作例を示したが、この実施の形態２は、データ入力部９への情報シンボル１１の取り出し方を変更することによってインターリーブ機能を実現している。
【００３７】
この実施の形態２による符号化装置の基本的な構成は、上記実施の形態１で示した図１と同様であるが、データ入力部９によって情報データ格納部１０から情報シンボルを取り出す動作が異なる。図４は、この発明の実施の形態２による情報シンボル取り出し動作を説明するための図である。図４に示すように、この実施の形態２では、データ入力部９が、情報データ格納部１０に格納されている一連の情報シンボルのうち、最初の情報シンボル１１−１から一つ飛ばしに格納された情報シンボル１１−３，１１−５，１１−７，１１−９からなる情報シンボル群１１Ａを取り出して、上記実施の形態１で図２及び図３を用いて示した符号化処理を実行する。
【００３８】
情報シンボル群１１Ａの符号化が完了すると、データ入力部９は、上述の一連の情報シンボルのうちの残りの情報シンボル１１−２，１１−４，１１−６，１１−８，１１−１０からなる情報シンボル群Ｂを情報データ格納部１０から取り出して、上記実施の形態１で図２及び図３を用いて示した符号化処理を実行する。このようにすることで、インタリーブ値が２の符号化処理を行うことができる。
【００３９】
なお、情報データ格納部１０に格納された一連の情報シンボルのうち、Ｎ個飛びで格納された情報シンボルを読み込んで交互に符号化処理を行うことにより、インターリーブ値Ｎ＋１の符号化処理が可能である。
【００４０】
以上のように、この実施の形態２によれば、データ入力部９が、情報データ格納部１０に格納される符号化すべき一連の情報シンボル１１から構成される情報シンボル群１１Ａ，１１Ｂのうち、１つ飛び等の所定の順番で並ぶ情報シンボル１１を選択的に取り出してレジスタ１ａ〜１ｄに入力するので、符号化器の数を増やすことなく、インターリーブ値が可変なインターリーブ機能を実現することができる。
【００４１】
実施の形態３．
上記実施の形態１では、人工衛星用のデータハンドリングシステムにおけるテレメトリデータの符号化処理を例に挙げた。この実施の形態３は、上記実施の形態１で示した符号化装置に暗号部を追加して暗号化装置を構成しており、ＣＰＵの演算能力を効率よく利用した暗号化処理が可能である。
【００４２】
図５は、この発明の実施の形態３による暗号化装置の構成を示す図である。以降では、この暗号化装置を、ＴＣＰ／ＩＰを用いて暗号化データをやり取りする監視制御システムに適用した場合について説明する。なお、この監視制御システムでは、監視機器と基地局とがネットワークを介して接続されており、図５中の暗号化装置を監視機器に搭載する。暗号化装置では、監視機器で取得された監視データに基地局への応答確認データを含めて暗号化し、この暗号化データがネットワークを介して基地局に送信される。
【００４３】
図５に示すように、実施の形態１による暗号化装置は、上記実施の形態１で示した図１の構成に加え、暗号部１６を備える。この暗号化装置における受信部７は、ＴＣＰ／ＩＰを扱うインタフェースを有し、ネットワークを介して基地局からのデータを受信する。また、データ収集部８は、監視装置に搭載された不図示の監視機器（例えば、監視カメラ）によって取得された監視データを情報シンボル１１として情報データ格納部１０に格納する。
【００４４】
また、係数テーブル格納部６は、係数データ５の代わりに暗号化用データを格納する。なお、図５に示す暗号化装置は、係数データ５（テーブルデータ）を係数テーブル格納部６に戻し、アドレス指定部４が係数テーブル格納部６の係数データ５を指定することで、上記実施の形態１や上記実施の形態２で示した符号化装置として機能させることも可能である。
【００４５】
暗号部１６は、所定の暗号化アルゴリズムに従って暗号化処理を実行する。ここでは、暗号化モードとしてＣＴＲモードを実行するものとする。また、ＣＴＲモードでは、基地局との通信毎に異なる値が設定される定数データであるノンスとカウントデータとが合わさったデータを暗号化した結果を暗号化用データとする。
【００４６】
図５中の暗号化装置では、カウンタ部１４のカウントデータ１５と合わさった暗号化用データが生成され、係数テーブル格納部６には、カウンタ部１４のカウントデータ１５に対応付けたテーブルデータとして暗号化用データが格納される。なお、この他の構成要素は、図１で示したものと同様に動作するので、重複する説明を省略する。
【００４７】
データ出力部２、排他的論理和演算器３、アドレス指定部４、受信部７、データ収集部８、データ入力部９、カウンタ部１４及び暗号部１６は、本発明の趣旨に従う暗号化プログラムを、レジスタ１ａ〜１ｄに相当する６４ビットレジスタを４つ有するコンピュータに読み込ませてその動作を制御することにより、当該コンピュータ上にソフトウエアとハードウェアが協働した具体的な手段として実現することができる。また、係数テーブル格納部６、情報データ格納部１０及び処理経過データ格納部１２は、上記コンピュータに搭載された汎用メモリ上に構築される。
【００４８】
なお、コンピュータ自体の構成及びその基本的な機能については、当業者が当該技術分野の技術常識に基づいて容易に認識できるものであり、本発明の本質に直接関わるものでないので詳細な記載を省略する。
【００４９】
次に動作について説明する。
図５中の暗号化装置は、以下の手順に沿って暗号化処理を実行する。
（１）手順１
先ず、データ収集部８が、監視装置の監視機器群から監視データを収集し、情報データ格納部１０に８ビット単位の情報シンボル１１として保存する。データ入力部９は、情報データ格納部１０から情報シンボル１１を取り出し、上記実施の形態１と同様にしてレジスタ１ａ〜１ｄにシフトによって取り込む。
【００５０】
例えば、上記実施の形態１と同様に、この実施の形態３による暗号化装置のＣＰＵが、レジスタ１ｄに設定された情報シンボルをデータ出力部２に出力し、レジスタ１ｃの全値を右論理シフトしてレジスタ１ｄに設定する。さらに、レジスタ１ｂの全値を右論理シフトしてレジスタ１ｃに設定し、レジスタ１ａの全値を右論理シフトしてレジスタ１ｂに設定する。この後、データ入力部９が、情報データ格納部１０から取り出した一連の８つの情報シンボル１１をレジスタ１ａに設定する。
【００５１】
（２）手順２
次に、暗号部１６は、今回の基地局との通信用のノンスを生成し、カウント部１４からカウントデータを取得して、ノンスとカウントデータを合わせた６４ビットの平文ブロックを作成する。ここでは、暗号部１６が、６４ビットの上位４バイトにノンスを設定し、下位４バイトにカウントデータを設定した１６進数表現の平文ブロックを生成し、例えば「６６１Ｆ９８ＣＤ０００００００１」が生成されたものとする。なお、下位４バイトの「０００００００１」は、カウンタ部１４からのカウントデータであるので、カウンタ部１４がカウントするたびにカウントアップされる。
【００５２】
（３）手順３
暗号部１６は、ＤＥＳ（Data Encryption Standard）又はトリプルＤＥＳの暗号化アルゴリズムを用いて、手順２で生成した６４ビットの平文ブロックを暗号化し、６４ビットの暗号化用データＫを生成する。
（４）手順４
暗号部１６は、手順３で生成された暗号化用データＫを係数テーブル格納部６に格納する。
（５）手順５
排他的論理和演算器３は、係数テーブル格納部６から読み出された暗号化用データＫとレジスタ１ｄの値との排他的論理和を演算してレジスタ１ｄに格納する。
【００５３】
（６）手順６
上記ＣＰＵは、手順５で暗号化用データＫとの間で排他的論理和演算されたレジスタ１ｄの全値をデータ出力部２に出力し、レジスタ１ｃの全値をレジスタ１ｄに移動させる。また、レジスタ１ｂの全値をレジスタ１ｃに移動させ、レジスタ１ａの全値をレジスタ１ｂに移動させる。この後、データ入力部９は、情報データ格納部１０から取り出した一連の８つの情報シンボル１１をレジスタ１ａに設定する。これにより、レジスタ１ａに新たなデータが設定される。
【００５４】
（７）手順７
手順６が完了すると、カウンタ部１４が、カウントデータの値を１インクリメントし、カウントデータを暗号部１６に出力する。暗号部１６では、このカウントデータとノンスとを合わせた平文ブロックを暗号化して暗号化用データを求める。例えば、カウントデータがカウントアップされた、平文ブロック「６６１Ｆ９８ＣＤ０００００００２」が暗号化される。この後、手順３〜７を繰り返することで、情報シンボル１１が暗号化される。
【００５５】
以上のように、この実施の形態３によれば、情報シンボル１１の暗号化用データＫを算出する暗号部１６と、暗号部１６により算出された暗号化用データＫを格納する係数テーブル格納部６と、情報シンボル１１のビット数の整数倍のビット幅を各々が有するレジスタ１ａ〜１ｄと、暗号化すべき一連の情報シンボル１１をレジスタ１ａ〜１ｄに入力するデータ入力部９と、係数テーブル格納部６から取り出した暗号化用データＫとレジスタ１ｄに格納される情報シンボル１１との排他的論理和の演算を行い、該情報シンボル１１の暗号化データを求める排他的論理和演算器３とを備えたので、複数の情報シンボルをまとめてレジスタ内で暗号化演算でき、ＣＰＵの演算能力を効率よく利用できる暗号化を実現することができる。
【００５６】
なお、上記実施の形態３では、暗号部１６がＤＥＳ又はトリプルＤＥＳの暗号化アルゴリズムに従って暗号化する例を示したが、ＡＥＳ（Rijndael）の暗号化アルゴリズムを使用することもできる。具体的に説明すると、手順２において、暗号部１６が、ノンスを８バイト、カウントデータを８バイトとして、１２８ビットの平文ブロックを生成し、これを暗号化して１２８ビットの暗号化用データを生成する。ここで、暗号部１６は、１２８の暗号化用データを６４ビットごとのデータＫ１，Ｋ２に分割し、係数テーブル格納部６に格納する。
【００５７】
この後、手順５において、排他的論理和演算器３が、係数テーブル格納部６から読み出された暗号化用データＫ１とレジスタ１ｃの値との排他的論理和を演算してレジスタ１ｃに格納し、暗号化用データＫ２とレジスタ１ｄの値との排他的論理和を演算してレジスタ１ｄに格納する。
【００５８】
手順６において、上記ＣＰＵが、手順５で排他的論理和演算されたレジスタ１ｃ，１ｄの全値を２回のデータシフトによりデータ出力部２に出力する。つまり、レジスタ１ｂの全値をレジスタ１ｃに移動させ、レジスタ１ｃの全値をレジスタ１ｄに移動させ、レジスタ１ａの全値をレジスタ１ｂに移動させる。続いて、レジスタ１ｂの全値をレジスタ１ｃに移動させ、レジスタ１ａの全値をレジスタ１ｂに移動させる。この後、データ入力部９が、情報データ格納部１０から取り出した８つの情報シンボル１１を新たなデータとしてレジスタ１ａに設定する。
【００５９】
手順６が完了すると、カウンタ部１４が、カウントデータの値を１インクリメントし、カウントデータを暗号部１６に出力する。暗号部１６では、このカウントデータとノンスとを合わせた平文ブロックを生成する。この後、手順３〜７を繰り返すことで、情報シンボル１１が暗号化される。このようにすることで、実施の形態３による暗号化装置は、１２８ビットの暗号アルゴリズムに従った暗号化も実現できる。
【図面の簡単な説明】
【００６０】
【図１】この発明の実施の形態１による符号化装置の構成を示す図である。
【図２】図１中の符号化装置による符号化処理の流れを示すフローチャートである。
【図３】図１中の符号化装置による符号化処理の流れを示すフローチャートである。
【図４】この発明の実施の形態２による情報シンボル取り出し動作を説明するための図である。
【図５】この発明の実施の形態３による暗号化装置の構成を示す図である。
【符号の説明】
【００６１】
１ａ〜１ｄ  レジスタ、２  データ出力部、３  排他的論理和演算器（演算部）、４  アドレス指定部（指定部）、５  係数データ、６  係数テーブル格納部（演算用データ格納部）、７  受信部、８  データ収集部、９  データ入力部、１０  情報データ格納部（データ格納部）、１１，１１−１〜１１−１０  情報シンボル、１１Ａ，１１Ｂ  情報シンボル群、１２  処理経過データ格納部（処理経過格納部）、１３ａ〜１３ｄ  中断データ、１４  カウンタ部、１５  カウントデータ、１６  暗号部。
【図１】
2008288884.tif 000003
【図２】
2008288884.tif 000004
【図３】
2008288884.tif 000005
【図４】
2008288884.tif 000006
【図５】
2008288884.tif 000007