(57)【要約】可変長データを固定長データに分割した際に余りが生じても各固定長データの効率的な処理が可能であり、かつ元の可変長データを容易に復元できる可変長／固定長データ変換手法である。ｎバイト可変長データ２０１を固定長ｍに分割した際の余りデータ長ｒを算出し、固定長ｍと余りデータ長ｒとの差を付加データ長ｋとして決定する。ｋバイト付加データ２０２をｎバイト可変長データ２０１の最後尾に付加し、付加データ長を決定するための参照データを（ｎ＋ｋ）バイトデータ２０５の最後尾に配置する。（ｎ＋ｋ）バイトデータ２０５に対して固定長分割処理を実行する。
2003084077.tif 000002
【特許請求の範囲】
【請求項１】
可変長データを固定長処理するためにデータ変換する方法において、
前記可変長データを所定の固定長に分割した際の余りデータ長を算出し、
前記固定長と前記余りデータ長との差を付加データ長として決定し、
前記付加データ長を決定するための参照データを含めた付加データを生成し、
前記可変長データに前記付加データを付加することで前記固定長処理が実行可能な拡張されたデータを生成する、
ことを特徴とする可変長／固定長データ変換方法。
【請求項２】
前記付加データの予め定められた位置に前記参照データを配置し、前記可変長データの予め定められた位置に前記付加データを配置する、ことを特徴とする請求の範囲第１項記載の可変長／固定長データ変換方法。
【請求項３】
前記参照データを前記拡張されたデータの最後尾に配置することを特徴とする請求の範囲第２項記載の可変長／固定長データ変換方法。
【請求項４】
前記参照データは前記余りデータ長であることを特徴とする請求の範囲第１項記載の可変長／固定長データ変換方法。
【請求項５】
前記固定長処理は、前記可変長データに前記付加データが付加されたデータを前記固定長ごとに分割し、固定長データをそれぞれ処理することを特徴とする請求の範囲第１項記載の可変長／固定長データ変換方法。
【請求項６】
可変長データを固定長処理することで得られたデータを前記可変長データに変換する方法において、
前記可変長データを所定の固定長に分割した際の余りデータ長を算出し、
前記固定長と前記余りデータ長との差を付加データ長として決定し、
前記付加データ長を決定するための参照データを含む前記付加データ長の付加データを生成し、
前記付加データを前記可変長データに付加し、前記参照データが所定位置に存在する拡張されたデータを生成し、
前記拡張されたデータに対して前記固定長処理を実行することで固定処理結果データを生成し、
前記固定処理結果データに対して前記固定処理とは逆の固定処理を実行することで、前記拡張されたデータに対応する受信データを生成し、
前記受信データの前記所定位置から前記参照データを読み出し、
前記参照データから前記付加データ長を決定し、
前記受信データから前記付加データ長に相当するデータを除去することで、元の可変長データを復元する、
ことを特徴とする可変長／固定長データ変換方法。
【請求項７】
前記参照データを前記拡張されたデータの最後尾に配置することを特徴とする請求の範囲第６項記載の可変長／固定長データ変換方法。
【請求項８】
前記参照データは前記余りデータ長であることを特徴とする請求の範囲第６項記載の可変長／固定長データ変換方法。
【請求項９】
前記固定長処理は、前記拡張されたデータを前記固定長ごとに分割し、固定長データをそれぞれ処理することを特徴とする請求の範囲第６項記載の可変長／固定長データ変換方法。
【請求項１０】
前記固定長処理は符号化処理であり、前記逆の固定処理は前記符号化処理に対応する復号化処理である、ことを特徴とする請求の範囲第９項記載の可変長／固定長データ変換方法。
【請求項１１】
可変長データを固定長処理するためにデータ変換する装置において、
前記可変長データを所定の固定長に分割した際の余りデータ長を算出し、前記固定長と前記余りデータ長との差を付加データ長として決定する演算手段と、
前記付加データ長を決定するための参照データを所定位置に含めた付加データを生成し、前記可変長データに前記付加データを付加することで前記固定長処理が実行可能な拡張されたデータを生成する拡張データ付加手段と、
前記拡張されたデータを前記固定長処理することで固定長処理結果データを生成する固定長処理手段と、
を有することを特徴とする可変長／固定長データ変換装置。
【請求項１２】
請求項１１記載の可変長／固定長データ変換装置により得られた固定長処理結果データに対して、前記固定処理とは逆の固定処理を実行することで、前記拡張されたデータに対応する受信データを生成する逆固定長処理手段と、
前記受信データの前記所定位置から前記参照データを読み出し、前記参照データから前記付加データ長を決定し、前記受信データから前記付加データ長に相当するデータを除去する拡張データ除去手段と、
を有することを特徴とする可変長／固定長データ変換装置。
【請求項１３】
前記拡張データ付加手段は、前記参照データを前記拡張されたデータの最後尾に配置することを特徴とする請求の範囲第１１項記載の可変長／固定長データ変換装置。
【請求項１４】
前記固定長処理手段は、前記拡張されたデータを前記固定長ごとに分割し、固定長データをそれぞれ処理することを特徴とする請求の範囲第１１項記載の可変長／固定長データ変換装置。
【請求項１５】
コンピュータに、ｎ（ｎは自然数）バイトの可変長データを固定長ｍ（０＜ｍ＜ｎ）バイトの固定長処理を実行させるためのプログラムにおいて、
ｎ／ｍの余りｒを算出するステップと、
前記固定長ｍと前記余りｒとの差を付加データ長ｋとして決定するステップと、
前記付加データ長ｋを特定するための参照データｒを含めた付加データを生成するステップと、
前記可変長データに前記付加データを付加することで（ｎ＋ｋ）バイトの拡張されたデータを生成するステップと、
前記（ｎ＋ｋ）バイトの拡張されたデータを前記固定長ｍごとに分割して前記固定長処理を実行するステップと、
を有することを特徴とするプログラム。
【請求項１６】
コンピュータに、ｎ（ｎは自然数）バイトの可変長データを固定長ｍ（０＜ｍ＜ｎ）バイトの固定長処理を実行させ、その固定長処理結果から元の可変長データを復元させるためのプログラムにおいて、
ｎ／ｍの余りｒを算出するステップと、
前記固定長ｍと前記余りｒとの差を付加データ長ｋとして決定するステップと、
前記付加データ長ｋを特定するための参照データｒを含めた付加データを生成するステップと、
前記可変長データに前記付加データを付加することで（ｎ＋ｋ）バイトの拡張されたデータを生成するステップと、
前記（ｎ＋ｋ）バイトの拡張されたデータを前記固定長ｍごとに分割して前記固定長処理を実行するステップと、
前記固定処理が実行された結果データに対して前記固定処理とは逆の固定処理を実行することで、前記拡張されたデータに対応する（ｎ＋ｋ）バイトの受信データを生成するステップと、
前記（ｎ＋ｋ）バイトの受信データの前記所定位置から前記参照データを読み出し、前記参照データから前記付加データ長ｋを決定するステップと、
前記（ｎ＋ｋ）バイトの受信データから前記付加データ長ｋに相当するデータを除去することで、元のｎバイトの可変長データを復元するステップと、
を有することを特徴とするプログラム。
【発明の詳細な説明】
技術分野
本発明は可変長データを固定長データに変換する手法に係り、特に可変長データを固定長データに分割する場合の変換方法及び装置に関する。
背景技術
あるデータ処理が所定の固定長データのみを入力する場合には、可変長データをその固定長データに変換する必要がある。たとえば、暗号技術の一つであるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号を使用してｎバイトのデータを暗号化する場合、ＤＥＳへの入力を８バイト単位に分割しなければならない。この場合、ｎの値によっては分割する際に８バイト未満の余りが生じる。このために、その余り部分をＤＥＳ入力可能な８バイトに拡張する技術が必要である。
従来、可変長データを固定長データに変換する技術は種々提案されている。例えば、特開平０８−０３０４３７号公報には、可変長データを最適な固定長データに分割し複数の演算処理部で並列処理を行う計算機が開示されている。
また、特開２００１−３３２９７８号公報に開示されたデータストリーム変換方法では、可変長データをレジスタに転送し、そのレジスタのデータ量が所定ビットを超えたときに、固定長ビット数ごとに順次出力することで固定長データを生成する。最後にレジスタに残ったデータは、次の入力データと結合され、次回の固定長データとして出力される。
しかしながら、上記特開平０８−０３０４３７号公報に開示された計算機では、可変長データの長さが固定長データの整数倍に設定されており、可変長データを分割したときに余りが生じることは想定されていない。
これに対して、上記特開２００１−３３２９７８号公報には、可変長データを固定長データごとに分割出力した後にレジスタに残ったデータ（余り）の処理について言及されている。しかしながら、この従来の変換方法は、可変長データを固定長データのストリームとして出力することを目的としており、ある可変長データを一組として固定長データに分割し、それぞれの固定長データをデータ処理するわけではない。したがって、最後にレジスタに残ったデータを次の入力データと結合させることができ、次回の固定長データとして出力できるわけである。
本発明の目的は、可変長データを固定長データごとに分割して処理するための新規なデータ変換手法を提供することにある。
本発明の他の目的は、可変長データを固定長データに分割した際に余りが生じても各固定長データの効率的な処理を可能にする可変長／固定長データ変換方法及び装置を提供することにある。
更に、本発明の別の目的は、可変長データの固定長処理により得られたデータを容易に元の可変長データに戻ることを可能にする可変長／固定長データ変換方法及び装置を提供することにある。
発明の開示
本発明の第１の観点によれば、可変長データを固定長処理するためにデータ変換する方法において、前記可変長データを所定の固定長に分割した際の余りデータ長を算出し、前記固定長と前記余りデータ長との差を付加データ長として決定し、前記付加データ長を決定するための参照データを含めた付加データを生成し、前記可変長データに前記付加データを付加することで前記固定長処理が実行可能な拡張されたデータを生成する、ことを特徴とする。
参照データは拡張されたデータの予め定められた位置に配置されることが望ましい。特に、参照データを拡張されたデータの最後尾に配置することが望ましい。
本発明の第２の観点によれば、可変長データを固定長処理することで得られたデータを前記可変長データに変換する方法において、前記可変長データを所定の固定長に分割した際の余りデータ長を算出し、前記固定長と前記余りデータ長との差を付加データ長として決定し、前記付加データ長を決定するための参照データを含む前記付加データ長の付加データを生成し、前記付加データを前記可変長データに付加し、前記参照データが所定位置に存在する拡張されたデータを生成し、前記拡張されたデータに対して前記固定長処理を実行することで固定処理結果データを生成し、前記固定処理結果データに対して前記固定処理とは逆の固定処理を実行することで、前記拡張されたデータに対応する受信データを生成し、前記受信データの前記所定位置から前記参照データを読み出し、前記参照データから前記付加データ長を決定し、前記受信データから前記付加データ長に相当するデータを除去することで、元の可変長データを復元する、ことを特徴とする。
前記固定長処理は、前記拡張されたデータを前記固定長ごとに分割し、固定長データをそれぞれ処理することを特徴とする。好ましくは、前記固定長処理は暗号化処理であり、前記逆の固定処理は前記暗号化処理に対応する復号化処理である。
発明を実施するための最良の形態
１．システム構成
第１図は、本発明の一実施形態による可変長／固定長データ変換手法を採用したデータ処理システムの概略的ブロック図である。
第１図において、送信側は拡張データ付加部１０１、付加バイト長計算部１０２、および固定長分割処理部１０３を有し、受信側は合成処理部１０４、拡張データ除去部１０５、および付加バイト長計算部１０６を有する。ここでは、可変長データの長さをｎバイト（ｎは自然数）とし、固定長分割処理部１０３は固定長ｍバイト（ｍは１以上の自然数）のデータのみを処理できるものとする。
拡張データ付加部１０１は、可変長ｎバイトデータを入力すると、可変長ｎバイトデータが過不足なく固定長分割処理部１０３で処理されるようにデータを拡張する。まず、拡張データ付加部１０１は可変長ｎバイトデータのデータ長ｎを付加バイト長計算部１０２へわたす。付加バイト長計算部１０２は、ｎ／ｍの余りバイト数ｒと付加バイト長ｋとを計算して拡張データ付加部１０１へかえす（詳しくは後述する）。
拡張データ付加部１０１は、所定位置に余りバイト数ｒを含むｋバイトの拡張データを生成し、それを可変長ｎバイトデータの所定位置に付加し、（ｎ＋ｋ）バイトデータとして固定分割処理部１０３へ出力する。拡張データは、可変長ｎバイトデータの最後尾に付加されるのが望ましい。その際、余りバイト数ｒを表すデータが（ｎ＋ｋ）バイトデータの最後尾からどの位置に存在するかを特定する必要がある。したがって、望ましいのは、余りバイト数ｒを表すデータを（ｎ＋ｋ）バイトデータの最後尾に配置することである。
固定分割処理部１０３は、（ｎ＋ｋ）バイトデータを固定長ｍバイトごとに分割し、分割された固定長ｍバイトデータの各々に対して暗号化処理を実行する。こうして処理された結果としてのデータは、たとえば伝送路を通して受信側へ送出される。
受信側の合成処理部１０４は、受信データに対して固定長分割処理部１０３の処理とは逆の処理を施して固定長ｍバイトデータを復号化し、それらを合成して（ｎ＋ｋ）バイトデータとして拡張データ除去部１０５へ出力する。
拡張データ除去部１０５は、入力した（ｎ＋ｋ）バイトデータの所定位置から余りバイト数ｒを読み出し、付加バイト長計算部１０６へわたす。付加バイト長計算部１０６は余りバイト数ｒから付加されたバイト長ｋを算出し、拡張データ除去部１０５へかえす。拡張データ除去部１０５は、（ｎ＋ｋ）バイトデータの所定位置からｋバイト拡張データを除去し、元の可変長ｎバイトデータを出力する。
２．拡張データの生成および付加
第２図は本発明の一実施形態による拡張データ付加動作の一例を示す流れ図であり、第３図は拡張データの生成を説明するためのフォーマット図である。
第２図に示すように、可変長ｎバイトデータ２０１のバイト数ｎを入力すると、付加バイト長計算部１０２はｎをｍで除算した余りｒ（＝ｎＭＯＤｍ）を計算し、固定長分割処理部１０３の固定長ｍから当該余りｒを差し引いた値を付加バイト長ｋとして算出する（ステップＳ２０）。
第３図を参照しながら、固定長ｍ、余りバイト長ｒおよび付加バイト長ｋの間の関係を説明する。既に述べたように、固定長分割処理部１０３は固定長ｍバイトしか受け付けないために、可変長ｎバイトデータ２０１を固定長ｍバイトごとに分割しなければならない。その際、ｒバイト（０≦ｒ＜ｍ）の余りデータが生じる場合がある。
このｒバイトの余りデータも固定長分割処理部１０３で処理するために、ｋ（＝ｍ−ｒ）バイトの拡張データ２０２をｎバイトデータ２０１の所定位置（ここでは、最後尾）に付加する。これによって、固定長ｍで割り切れるバイト長（ｎ＋ｋ）のデータ２０５が得られる。
拡張データ２０２は最終的には除去されるから、拡張データ２０２の長さを計算可能にする参照データを拡張データ２０２に書き込んでおく必要がある。本実施形態では、参照データとして余りデータ長ｒの値を拡張データ２０２の所定位置（ここでは最後尾）に書き込んでおく。
たとえば、固定長ｍの範囲を１＜ｍ＜２５６とすれば、ｒ＜ｍであるから、余りデータ長ｒを表すために１バイト（≦２５５）のデータ領域を確保しておけば十分である。
こうして、付加データ長計算部１０２は余りデータ長ｒと付加バイト長ｋとを算出し、拡張データ付加部１０１へかえす。拡張データ付加部１０１は、第２図に示すように、（ｋ−１）バイトのパドル２０３と１バイトの参照データ２０４とからなるｋバイト拡張データ２０２を生成し、それをｎバイトデータ２０１の所定位置（ここでは、最後尾）に付加する（ステップｓ２１）。
これによって、固定長ｍで割り切れるバイト長（ｎ＋ｋ）のデータ２０５が固定長分割処理部１０３に与えられ、（ｎ＋ｋ）／ｍ個の固定長ｍバイトデータに対する分割処理が実行される（ステップＳ２２）。このように、少量の拡張データ２０２を付加するだけで、可変長データ２０１の固定長処理が可能となる。
３．拡張データの削除
第４図は、本発明の一実施形態による拡張データ削除動作の一例を示す流れ図である。まず、合成処理部１０４は、受信データに対して固定長分割処理部１０３の処理とは逆の処理を施して固定長ｍバイトデータを復号し、それらを合成した（ｎ＋ｋ）バイトデータ２０５を拡張データ除去部１０５へ出力する。
上述したように、入力した（ｎ＋ｋ）バイトデータ２０５の所定位置（ここでは最後尾の１バイト）には参照データとして余りバイト数ｒが書き込まれている。従って、拡張データ除去部１０５は、最後尾の１バイトのデータを読み出し、付加バイト長計算部１０６へわたす。付加バイト長計算部１０６は、固定長ｍから余りバイト数ｒを差し引いて付加バイト長ｋ＝ｍ−ｒを算出し（ステップＳ２３）、その値ｋを拡張データ除去部１０５へかえす。
拡張データ除去部１０５は、（ｎ＋ｋ）バイトデータ２０５の最後尾のｋバイト、すなわち拡張データ２０２、を除去し（ステップＳ２４）、オリジナルの可変長ｎバイトデータ２０１を出力する。このように、固定長処理系からの出力データを元の可変長データに容易に復元することができる。
４．実施例
以下、具体例として、送信すべきデータをＤＥＳ暗号化して送信し、ＤＥＳ暗号化されたデータから受信データを復号する通信装置に本発明を適用した場合を説明する。この場合、第１図における固定長分割処理部１０３はＤＥＳ暗号化モジュールに対応し、合成処理部１０４はＤＥＳ復号化モジュールに対応する。通信装置としては、例えばスイッチングハブ間を接続するアップリンクポートなどである。
第５図は、本発明の一実施例による送受信部の概略的ブロック図である。データ処理部（図示せず）から出力された可変長バイトの送信データは、入力ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリ３０１を介して、順次、パドル付加モジュール３０２へ出力される。
パドル付加モジュール３０２は、第１図の拡張データ付加部１０１および付加バイト長計算部１０２に対応する。パドル付加モジュール３０２は、入力したｎバイト送信データにｋバイト拡張データを付加し、（ｎ＋ｋ）バイトデータを暗号化モジュール３０３へ出力する。
暗号化モジュール３０３では、（ｎ＋ｋ）バイトデータを固定長バイトｍデータごとに分割し、それぞれに対して暗号化キーに従った暗号化処理を実行する。暗号化された（ｎ＋ｋ）バイトデータは出力ＦＩＦＯメモリ３０４を介して物理層（ＯＳＩ）へ送出される。
物理層（ＯＳＩ）から受信したデータは、順次、入力ＦＩＦＯメモリ３０５を介して復号化モジュール３０６に入力する。復号化モジュール３０６は、暗号化キーに従って、受信したデータから固定長ｍバイトデータを復号化し、それらを合成して（ｎ＋ｋ）バイトデータとしてパドル除去モジュール３０７へ出力する。
パドル除去モジュール３０７は、第１図の拡張データ除去部１０５および付加バイト長計算部１０６に対応する。パドル除去モジュール３０７は、最後尾の１バイトのデータから付加バイト長ｋを算出し、（ｎ＋ｋ）バイトデータの最後尾のｋバイトデータを除去して可変長ｎバイトデータを生成し、出力ＦＩＦＯメモリ３０８を通してデータ処理部へ出力する。
なお、送信部の入力ＦＩＦＯメモリ３０１は、データ処理部の送信クロックと暗号化／復号化モジュールのクロックとの位相差を吸収するために設けられ、出力ＦＩＦＯメモリ３０４は、イーサネットの送信クロックと暗号化／復号化モジュールのクロックとの位相差を吸収するために設けられている。同様に、受信部の入力ＦＩＦＯメモリ３０５は、イーサネットの送信クロックと暗号化／復号化モジュールのクロックとの位相差を吸収するために設けられ、出力ＦＩＦＯメモリ３０８は、データ処理部の受信クロックと暗号化／復号化モジュールのクロックとの位相差を吸収するために設けられている。
第６図は、第５図に示す送受信部の暗号化／復号化の流れを示す図である。ここでは、ＤＥＳ暗号化モジュール３０３の固定長バイト数ｍ＝８、０≦ｒ＜８とし、可変長バイト数ｎ＝６７のデータを送受信する場合について説明する。
まず、６７バイトの送信データが入力すると（第６図（ａ））、６７バイト／８バイト＝８余り３であるから、ｒ＝３、ｋ＝ｍ−ｒ＝５である（第６図（ｂ））。したがって、６７バイトの送信データに、末尾の１バイトにｒ＝３を含む５バイトのパドルデータ（０ｘ０００００００００３）を付加して、送信データを７２バイトに拡張する（第６図（ｃ））。
続いて、７２バイトの拡張された送信データを８バイト単位に分割し、分割された９個の８バイトデータをＤＥＳ  ＥＣＢモードによりそれぞれ暗号化する（第６図（ｄ））。こうして、７２バイトの暗号化データが得られる（第６図（ｅ））。このように、少量のパドルデータを付加するだけで、可変長データのＤＥＳ暗号化処理が可能となる。
他方、このような暗号化データが受信されると、ＤＥＳ復号化モジュール３０６は８バイトデータをそれぞれ復号化する（第６図（ｆ））。復号化された８バイトデータが合成されて７２バイトデータが得られ、その最後の１バイト（０ｘ０３）から付加パドル長ｋが計算される。ここでは、ｋ＝８−３＝５バイトであるから、末尾の５バイトのパドルデータ（０ｘ０００００００００３）が７２バイトデータから除去される（第６図（ｈ））。こうして、元の６７バイトデータを得る（第６図（ｉ））。このように、ＤＥＳ暗号化データを元の可変長データに容易に復元することができる。
なお、本実施例では、ＤＥＳ暗号技術を一例として説明したが、これに限定されるものではない。本発明は、可変長の入力データに対する処理に固定長データのみを受け入れるデータ処理技術を使用する場合に適用することができる。
また、第１図に示す送信側の拡張データ付加部１０１、付加バイト長計算部１０２、および固定長分割処理部１０３、あるいは受信側の合成処理部１０４、拡張データ除去部１０５、および付加バイト長計算部１０６は、ハードウエアとして構成することもできるが、ソフトウエアにより実現することも可能である。すなわち、第２図〜第４図で説明した拡張データ生成、付加および除去動作をコンピュータに指令するプログラムをメモリに格納しておき、各動作に対応するプログラムをコンピュータ上で走らせることで同様の機能を実現できる。
以上説明したように、本発明によれば、可変長データを所定の固定長に分割した際の余りデータ長を算出し、固定長と余りデータ長との差を付加データ長として決定する。そして、付加データ長を決定するための参照データを含めた付加データを可変長データに付加することで固定長処理が実行可能な拡張されたデータを生成する。したがって、少量の付加データを可変長データに付加するだけで、可変長データの固定長処理が可能となる。
また、拡張されたデータから参照データを読み出して、それに付加された付加データ長を決定できるために、拡張されたデータから付加データ長分のデータを除去することで、容易に元の可変長データを復元することができる。
このように、本発明は、可変長データに対して、入力が固定長となっているデータ処理を実行する場合にきわめて有効な手法である。
【図面の簡単な説明】
第１図は、本発明の一実施形態による可変長／固定長データ変換手法を採用したデータ処理システムの概略的ブロック図であり、第２図は、本発明の一実施形態による拡張データ付加動作の一例を示す流れ図であり、第３図は、拡張データの生成を説明するためのフォーマット図であり、第４図は、本発明の一実施形態による拡張データ削除動作の一例を示す流れ図であり、第５図は、本発明の一実施例による送受信部の概略的ブロック図であり、第６図は、第５図に示す送受信部の暗号化／復号化の流れを示す図である。
【図１】
2003084077.tif 000003
【図２】
2003084077.tif 000004
【図３】
2003084077.tif 000005
【図４】
2003084077.tif 000006
【図５】
2003084077.tif 000007
【図６】
2003084077.tif 000008
【国際調査報告】
2003084077.tif 000009
2003084077.tif 000010