(57)【要約】【課題】煩雑な処理を行うことなくマスク処理を行うことができるデータ処理装置、通信処理装置、データ処理方法、および通信処理方法を提供する。【解決手段】データ処理部１０９の複数の処理機能の内いずれか１つを選択し、選択した処理機能に対応する、マスクデータ格納メモリ１０５が記憶するマスクデータを選択するＤＭＡＣ１０４およびマスクデータ選択部１０６と、複数の処理機能それぞれに対応した、データＤ内の処理対象データ以外の非処理対象データをマスクさせる複数のマスクデータを記憶するマスクデータ格納メモリ１０５と、ＤＭＡＣ１０４により選択されたマスクデータＭＤに基づいてデータＤにおける非処理対象データをマスクするマスク回路１０７と、マスク処理したデータＤを受けて、処理対象データに基づいて処理を行う複数の処理機能を含むデータ処理部１０９と生成したデータを送信するＩ／Ｆ１０１とを設ける。【選択図】  図１
2004349975.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータ内の処理対象データに基づいて第２のデータを生成するデータ処理装置であって、
前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段と、
前記マスクデータ記憶手段が記憶するマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスクするマスク処理手段と、
前記マスク処理手段がマスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する処理手段と
を有するデータ処理装置。
【請求項２】
前記処理手段は、それぞれ異なる、前記第１のデータ内の前記処理対象データに基づいて処理を行う複数の処理機能を含み、
前記マスクデータ記憶手段は、前記複数の処理機能それぞれに対応した、前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせる複数のマスクデータを記憶し、
前記複数の処理機能の内いずれか１つの前記処理機能を選択し、前記選択した処理機能に対応する、前記マスクデータ記憶手段が記憶するマスクデータを選択する制御手段を有し、
前記マスク処理手段は、前記制御手段が選択したマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスクする
請求項１に記載のデータ処理装置。
【請求項３】
前記処理手段は、前記複数のマスクデータそれぞれに対応した前記処理機能として、前記第１のデータ内の処理対象データに基づいてハッシュ処理を行うハッシュ処理手段、前記処理対象データと異なるデータに基づいて暗号化処理を行う暗号化処理手段、前記処理対象データと異なるデータに基づいてチェックサム処理を行うチェックサム処理手段のいずれかを含み、当該処理機能により前記第２のデータを生成する
請求項２に記載のデータ処理装置。
【請求項４】
前記第１のデータを分割した複数の分割データと、少なくとも前記分割データのうち前記非処理対象データを含む前記分割データを示すアドレスデータおよび前記マスクデータを示すマスク選択データを含む指定データを記憶する記憶手段を有し、
前記制御手段は、前記記憶手段が記憶する指定データのアドレスデータに基づいて前記分割データを前記マスク処理手段に出力し、前記マスク選択データに基づいて前記マスクデータ記憶手段が記憶するマスクデータを選択する
請求項１に記載のデータ処理装置。
【請求項５】
前記マスクデータ記憶手段は、前記マスク処理を行うための演算データ、前記演算データのデータ長、および前記データ長の演算データの繰り返し回数を示す繰り返しデータを含む前記マスクデータを記憶し、
前記マスク処理手段は、前記マスクデータの内の前記演算データ、前記データ長、および前記繰り返しデータに応じて前記マスク処理を行う
請求項１に記載のデータ処理装置。
【請求項６】
第１のデータ内の処理対象データに基づいて第２のデータを生成する通信処理装置であって、
前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段と、
前記マスクデータ記憶手段が記憶するマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスクするマスク処理手段と、
前記マスク処理手段がマスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する処理手段と、
前記処理手段が生成した第２のデータを送信する通信手段と
を有する通信処理装置。
【請求項７】
前記処理手段は、それぞれ異なる、前記第１のデータ内の前記処理対象データに基づいて処理を行う複数の処理機能を含み、
前記マスクデータ記憶手段は、前記複数の処理機能それぞれに対応した、前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせる複数のマスクデータを記憶し、
前記複数の処理機能の内いずれか１つの前記処理機能を選択し、前記選択した処理機能に対応する、前記マスクデータ記憶手段が記憶するマスクデータを選択する制御手段を有し、
前記マスク処理手段は、前記制御手段が選択したマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスクする
請求項６に記載の通信処理装置。
【請求項８】
前記処理手段は、前記複数のマスクデータそれぞれに対応した前記処理機能として、前記第１のデータ内の処理対象データに基づいてハッシュ処理を行うハッシュ処理手段、前記処理対象データと異なるデータに基づいて暗号化処理を行う暗号化処理手段、前記処理対象データと異なるデータに基づいてチェックサム処理を行うチェックサム処理手段のいずれかを含み、当該処理機能により前記第２のデータを生成する
請求項７に記載の通信処理装置。
【請求項９】
前記第１のデータを分割した複数の分割データと、少なくとも前記分割データのうち前記非処理対象データを含む前記分割データを示すアドレスデータおよび前記マスクデータを示すマスク選択データを含む指定データを記憶する記憶手段を有し、
前記制御手段は、前記記憶手段が記憶する指定データのアドレスデータに基づいて前記分割データを前記マスク処理手段に出力し、前記マスク選択データに基づいて前記マスクデータ記憶手段が記憶するマスクデータを選択する
請求項６に記載の通信処理装置。
【請求項１０】
前記マスクデータ記憶手段は、前記マスク処理を行うための演算データ、前記演算データのデータ長、および前記データ長の演算データの繰り返し回数を示す繰り返しデータを含む前記マスクデータを記憶し、
前記マスク処理手段は、前記マスクデータの内の前記演算データ、前記データ長、および前記繰り返しデータに応じて前記マスク処理を行う
請求項６に記載の通信処理装置。
【請求項１１】
第１のデータ内の処理対象データに基づいて第２のデータを生成するデータ処理方法であって、
前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段による当該マスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスク処理し、
前記マスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する
データ処理方法。
【請求項１２】
それぞれ異なる、前記第１のデータ内の前記処理対象データに基づいて処理を行う複数の処理機能の内いずれか１つの前記処理機能を選択し、前記選択した処理機能に対応する、前記マスクデータ記憶手段が記憶するマスクデータを選択し、
前記選択したマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスク処理し、
前記マスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する
請求項１１に記載のデータ処理方法。
【請求項１３】
前記第２のデータを生成する場合には、前記複数のマスクデータそれぞれに対応した処理機能として、前記第１のデータ内の処理対象データに基づいてハッシュ処理を行うハッシュ処理機能、前記処理対象データと異なるデータに基づいて暗号化処理を行う暗号化処理機能、前記処理対象データと異なるデータに基づいてチェックサム処理を行うチェックサム処理機能のいずれかの処理機能により、前記第２のデータを生成する
請求項１２に記載のデータ処理方法。
【請求項１４】
前記記憶手段は、第１のデータを分割した複数の分割データと、少なくとも前記分割データのうち前記非処理対象データを含む前記分割データを示すアドレスデータおよび前記マスクデータを示すマスク選択データを含む指定データを記憶し、
前記第２のデータを生成する場合には、前記記憶手段が記憶する指定データのアドレスデータに基づいて前記分割データを前記マスク処理手段に出力し、前記マスク選択データに基づいて前記マスクデータ記憶手段が記憶するマスクデータを選択する
請求項１１に記載のデータ処理方法。
【請求項１５】
前記マスクデータ記憶手段は、前記マスク処理を行うための演算データ、前記演算データのデータ長、および前記データ長の演算データの繰り返し回数を示す繰り返しデータを含む前記マスクデータを記憶し、
前記マスク処理を行う場合には、前記マスクデータの内の前記演算データ、前記データ長、および前記繰り返しデータに応じて前記マスク処理を行う
請求項１１に記載のデータ処理方法。
【請求項１６】
第１のデータ内の処理対象データに基づいて第２のデータを生成する通信処理方法であって、
前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段による当該マスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスク処理し、
前記マスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成し、
前記生成した第２のデータを送信する
通信処理方法。
【請求項１７】
それぞれ異なる、前記第１のデータ内の前記処理対象データに基づいて処理を行う複数の処理機能の内いずれか１つの前記処理機能を選択し、前記選択した処理機能に対応する、前記マスクデータ記憶手段が記憶するマスクデータを選択し、
前記選択したマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスク処理し、
前記マスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する
請求項１６に記載の通信処理方法。
【請求項１８】
前記第２のデータを生成する場合には、前記複数のマスクデータそれぞれに対応した処理機能として、前記第１のデータ内の処理対象データに基づいてハッシュ処理を行うハッシュ処理機能、前記処理対象データと異なるデータに基づいて暗号化処理を行う暗号化処理機能、前記処理対象データと異なるデータに基づいてチェックサム処理を行うチェックサム処理機能のいずれかの処理機能により、前記第２のデータを生成する
請求項１７に記載の通信処理方法。
【請求項１９】
前記記憶手段は、第１のデータを分割した複数の分割データと、少なくとも前記分割データのうち前記非処理対象データを含む前記分割データを示すアドレスデータおよび前記マスクデータを示すマスク選択データを含む指定データを記憶し、
前記第２のデータを生成する場合には、前記記憶手段が記憶する指定データのアドレスデータに基づいて前記分割データを前記マスク処理手段に出力し、前記マスク選択データに基づいて前記マスクデータ記憶手段が記憶するマスクデータを選択する
請求項１８に記載の通信処理方法。
【請求項２０】
前記マスクデータ記憶手段は、前記マスク処理を行うための演算データ、前記演算データのデータ長、および前記データ長の演算データの繰り返し回数を示す繰り返しデータを含む前記マスクデータを記憶し、
前記マスク処理を行う場合には、前記マスクデータの内の前記演算データ、前記データ長、および前記繰り返しデータに応じて前記マスク処理を行う
請求項１９に記載の通信処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、通信データ等の認証データや暗号データやチェックサムデータ等のデータを生成するデータ処理装置、通信処理装置、データ処理方法、および通信処理方法に関するものである。
【０００２】
【従来の技術】
従来、送信側通信装置と受信側通信装置が通信を行う際に、第三者によるデータの盗聴を防止するために、通信データを暗号化処理して通信を行う通信システムが知られている（例えば、特許文献１参照）。
また、通信データの改竄等を防止するために送信側通信装置では、通信データの認証データを生成して送信し、受信側通信装置ではその認証データを基に通信データの認証を行うことで、改竄されているか否かをチェックできる通信システムも知られている。例えば、ＩＰｓｅｃ  （ＩＰ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルが知られている。
【０００３】
【特許文献１】
特開２００１−１３６１５９号公報
【０００４】
【発明が解決しようとする課題】
上述のＩＰｓｅｃ  等の通信プロトコルを用いて、通信データとしてのデジタルデータに認証データを付加して通信を行う場合に、例えば通信データを中継する通信装置では、中継毎に通信データの中の変更されるデータに関して認証データを生成する際に、処理対象には含めずにゼロマスクして処理することが義務づけられている。
【０００５】
例えば、従来の通信装置が認証データを生成する場合には、通信データの非処理対象データをマスク処理したデータを生成してメモリに記憶させ、そのデータをハッシュ演算処理等の認証データの生成処理を行うという煩雑な処理を行っていた。
また、上述したように通信データの他にマスク処理したデータもメモリに記憶するので、多くのメモリ容量を必要としていた。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、煩雑な処理を行うことなくマスク処理を行うことができるデータ処理装置、通信処理装置、データ処理方法、および通信処理方法を提供することにある。
【０００７】
また、本発明の他の目的は、マスク処理を行う場合に、従来より少ないメモリ容量でマスク処理を行うことができる、データ処理装置、通信処理装置、データ処理方法、および通信処理方法を提供することにある。
【０００８】
【課題を解決するための手段】
前記目的を達成するために、本発明の第１の観点は、第１のデータ内の処理対象データに基づいて第２のデータを生成するデータ処理装置であって、前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段と、前記マスクデータ記憶手段が記憶するマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスクするマスク処理手段と、前記マスク処理手段がマスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する処理手段とを有する。
【０００９】
本発明の第１の観点によれば、マスクデータ記憶手段では、第１のデータ内の処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶する。
マスク処理手段では、マスクデータ記憶手段が記憶するマスクデータに基づいて第１のデータにおける処理対象データ以外の非処理対象データをマスクする。
処理手段では、マスク処理手段がマスク処理した第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて第２のデータを生成する。
【００１０】
さらに、前記目的を達成するために、本発明の第２の観点は、第１のデータ内の処理対象データに基づいて第２のデータを生成する通信処理装置であって、前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段と、前記マスクデータ記憶手段が記憶するマスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスクするマスク処理手段と、前記マスク処理手段がマスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する処理手段と、前記処理手段が生成した第２のデータを送信する通信手段とを有する。
【００１１】
さらに、前記目的を達成するために、本発明の第３の観点は、第１のデータ内の処理対象データに基づいて第２のデータを生成するデータ処理方法であって、前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段による当該マスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスク処理し、前記マスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成する。
【００１２】
さらに、前記目的を達成するために本発明の第４の観点は、第１のデータ内の処理対象データに基づいて第２のデータを生成する通信処理方法であって、前記第１のデータ内の前記処理対象データ以外の非処理対象データをマスクさせるマスクデータを記憶するマスクデータ記憶手段による当該マスクデータに基づいて前記第１のデータにおける処理対象データ以外の前記非処理対象データをマスク処理し、前記マスク処理した前記第１のデータを受けて、マスク処理されたデータを除く処理対象データに基づいて前記第２のデータを生成し、前記生成した第２のデータを送信する。
【００１３】
【発明の実施の形態】
本発明の一実施形態として、例えば、通信データとしての第１のデータ内の処理対象データに基づいて第２のデータを生成し、その第２のデータを送信する通信処理装置を説明する。
例えば、通信処理装置は、ハッシュ演算による認証データの生成／検証、鍵暗号による認証データの生成／検証、チェックサムデータの生成／検証の時に、非対象となるデータ領域を自動マスクする機能を有する。
【００１４】
図１は、本発明に係るデータ処理装置を含む通信処理装置の第１実施形態に係る機能ブロック図である。
本実施形態に係る通信処理装置１は、図１に示すように、通信インタフェース（Ｉ／Ｆ）１０１、ＣＰＵ１０２、データ格納メモリ１０３、ダイレクトメモリアクセスコントローラＤＭＡＣ１０４、マスクデータ格納メモリ１０５、マスクデータ選択部１０６、マスク回路１０７、第１セレクタ１０８、データ処理部１０９、および第２セレクタ１１０を有する。
【００１５】
例えば、ＣＰＵ１０２、データ格納メモリ１０３、ダイレクトメモリアクセスコントローラＤＭＡＣ１０４、マスクデータ格納メモリ１０５、マスクデータ選択部１０６、マスク回路１０７、第１セレクタ１０８、データ処理部１０９、および第２セレクタ１１０は、本発明に係るデータ処理装置に相当する。
【００１６】
データ格納メモリ１０３は本発明に係る記憶手段に相当し、ダイレクトメモリアクセスコントローラＤＭＡＣ１０４は本発明に係る制御手段に相当し、マスクデータ格納メモリ１０５は本発明に係るマスクデータ記憶手段に相当し、マスク回路１０７は本発明に係るマスク処理手段に相当し、データ処理部１０９は本発明に係る処理手段に相当する。
【００１７】
通信Ｉ／Ｆ１０１、ＣＰＵ１０２、データ格納メモリ１０３、ダイレクトメモリアクセスコントローラＤＭＡＣ１０４、およびマスクデータ格納メモリ１０５は、データバスＢＳにより接続されている。
【００１８】
通信（Ｉ／Ｆ）１０１は、例えばＣＰＵ１０２の制御により、通信ネットワーク２を介して通信処理装置２００とデータ通信を行う。
ＣＰＵ１０２は、例えばデータ格納メモリ１０３、ＤＭＡＣ１０４、マスクデータ格納メモリ１０５等を制御し、例えば不図示のメモリが記憶するプログラムを基に所定処理、例えば通信処理等を行う。
【００１９】
データ格納メモリ１０３は、例えばデータバスＢＳを介してＣＰＵ１０２からの制御により、データ処理部１０９の処理、例えば共通鍵暗号処理、ハッシュ演算処理、チェックサム演算処理等が行われるデータＤを記憶する。
データＤは、例えば所定のデータ形式で送受信される通信データである。
【００２０】
図２は、図１に示した通信処理装置に係るデータの一具体例を説明するための図である。
データＤが所定のデータ形式、例えばＩＰｓｅｃ  （ＩＰ  Ｓｅｃｕｒｉｔｙ  Ｐｒｏｔｏｃｏｌ）のＩＰｖ６におけるＡＨ認証（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ：認証ヘッダ）を含む場合を説明する。
データＤは、例えば図２に示すように、ＩＰｖ６（ＩＰ  ｖｅｒｓｉｏｎ６）ヘッダ２１、ＡＨヘッダ２２、ＵＤＰ（Ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）ヘッダ２３、およびデータ２４を有する。
【００２１】
ＩＰｖ６ヘッダ２１は、ＩＰｖ６のプロトコルで通信を行う場合のヘッダである。
詳細にはＩＰｖ６ヘッダ２１は、バージョン２１１、ＤＳ２１２、ＥＣＮ２１３、フローラベル２１４、ペイロード長２１５、次ヘッダ番号２１６、中継限界数２１７、始点ＩＰアドレス２１８、および終点ＩＰアドレス２１９を有する。
【００２２】
バージョン２１１は、ＩＰのバージョンを示す。ＩＰｖ６の場合には６が設定される。
ＤＳ（ＤｉｆｆＳｅｒｖ）２１２は複数の優先クラス間で相対的な転送性能差をつけるトラフィックの優先制御をするために設けられているフィールドである。ＥＣＮ（Ｅｘｐｌｉｃｉｔ  Ｃｏｎｇｅｓｔｉｏｎ  Ｎｏｔｉｆｉｃａｔｉｏｎ）２１３は輻輳情報を通知するために設けられているフィールドである。フローラベル２１４は予約領域で、明確な使用法は定義されてなく、通常、値は０がセットされるフィールドである。
ペイロード長２１５は、ＩＰｖ６ヘッダ２１のヘッダ長を示す。
【００２３】
次ヘッダ番号２１６は、次の拡張ヘッダの種類を示す。拡張ヘッダは、例えば、ホップバイホップ・オプション、デスティネーション・オプション、ルーティング、フラグメント、認証（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ）、ＥＳＰ（Ｅｎｃａｐｓｕｌａｔｉｎｇ  Ｓｅｃｕｒｉｔｙ  Ｐａｙｌｏａｄ）等の複数の種類がある。
本実施形態では認証を示すＡＨヘッダ２２の場合を説明する。
【００２４】
中継限界数２１７は、パケットを中継する場合の最大の中継回数を示す。
始点ＩＰアドレス２１８は、送信元のＩＰアドレスである。
終点ＩＰアドレス２１９は、宛先のＩＰアドレスである。
【００２５】
ＡＨヘッダ（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｈｅａｄｅｒ：認証ヘッダ）２２は、パケット内のデータの改竄を防止するためのパケット認証を行なうヘッダである。
ＡＨヘッダ２２は、次ヘッダ番号２２１、ペイロード長２２２、予約２２３、セキュリティパラメータインデックス（ＳＰＩ）２２４、シーケンス番号２２５、および認証データ２２６を有する。
【００２６】
次ヘッダ番号２２１は、ＩＰｖ６ヘッダ２１の次に続く拡張ヘッダのヘッダタイプを示す。
ペイロード長２２２は、認証ヘッダの長さを示す。
予約２２３は、将来の使用のために予約されている領域である。
セキュリティパラメータインデックス（ＳＰＩ）２２４は、データグラムのセキュリティアソシエーションの識別子を示す。セキュリティアソシエーションには、認証アルゴリズムや、認証アルゴリズムで用いられる鍵、暗号アルゴリズム、暗号アルゴリズムで用いられる鍵、その他のセキュリティ関連のパラメータ群を含む。
【００２７】
シーケンス番号２２５は、シーケンス毎に１つずつ増大する。送受信の両カウンタは、セキュリティアソシエーションが確立されるとき、共に０に初期化される。
認証データ２２６は、例えば、始点ＩＰアドレス２１８と、ＳＰＩ２２４を組み合わせて、このフィールドに必要な情報を検索する際に用いられる。
【００２８】
ＵＤＰヘッダ２３は、いわゆる通信ネットワーク２においてＵＤＰを用いる際に設けられるＵＤＰヘッダである。
本実施形態では簡単な説明のため、例えばＵＤＰを例示して説明するが、この形態に限られるものではない。例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ  ）を使用する際にはＵＤＰヘッダの換わりにＴＣＰヘッダが設定される。
【００２９】
ＵＤＰヘッダ２３は、送信元ポート２３１、宛先ポート２３２、セグメント長２３３、およびチェックサム２３４を有する。
送信元ポート２３１は、送信元のアプリケーションが接続しているポート番号である。
宛先ポート２３２は、宛先のアプリケーションが接続しているポート番号である。
セグメント長２３３は、ＵＤＰヘッダ２３とデータ２４の長さを示す。
チェックサム２３４はヘッダとデータ２４が破損していないか否かを調べるためのチェックサムである。
【００３０】
データ２４は、所定のデータである。例えばデータ２４は、通信処理装置１において所定のアプリケーションにより生成された通信内容を示すデータである。
【００３１】
ダイレクトメモリアクセスコントローラ（ＤＭＡＣともいう）１０４は、例えばＣＰＵ１０２の制御の下、データ格納メモリ１０３が記憶するデータＤをマスク回路１０７に出力する。
また、ＤＭＡＣ１０４は、後述するデータ処理部１０９中の複数の処理機能のうちいずれかの処理機能を選択し、選択した処理機能に対応する、マスクデータ格納メモリ１０５が記憶するマスクデータＭＤを選択し、選択したマスクデータを示す制御信号ＣＴＬ１０４１をマスクデータ格納メモリ１０５に出力する。
【００３２】
また、ＤＭＡＣ１０４は、マスクデータ選択部１０６にマスクデータ格納メモリ１０５内のマスクデータＭＤを選択させる制御信号ＣＴＬ１０４２を、マスクデータ選択部１０６に出力する。
【００３３】
また、ＤＭＡＣ１０４は、データ処理部１０９中の複数の処理機能のうちいずれかの処理機能を選択し、選択した処理機能を示す制御信号ＣＴＬ１０４３を第１セレクタ１０８に出力する。
【００３４】
図３は、図１に示した通信処理装置のマスクデータ格納メモリを説明するための図である。
マスクデータ格納メモリ１０５は、データＤ内の処理対象データ以外の非処理対象データをマスクさせるマスクデータＭＤを記憶する。
マスクデータ格納メモリ１０５は、例えば図３に示すように、マスクデータ選択用のレジスタ１０５１、および複数のマスクデータＭＤ、例えばマスクデータＭＤ＿０〜ｎを有する。
マスクデータ選択用のレジスタ１０５１は、マスクデータＭＤを示すデータを記憶する。
例えばマスクデータ格納メモリ１０５は、ＤＭＡＣ１０４からの制御信号ＣＴＬ１０４１に応じて、マスクデータ選択用のレジスタ１０５１にマスクデータＭＤを示すデータをセットさせる。
【００３５】
例えば、マスクデータ選択用のレジスタ１０５１が記憶するマスクデータＭＤを示すデータは、マスクデータ選択部１０６等がマスクデータＭＤを選択する際に参照される。
詳細には、マスクデータ選択部１０６は、例えばマスクデータ選択レジスタ１０５１が記憶するデータが０の場合にはマスクデータＭＤ＿０を選択し、マスクデータ選択レジスタ１０５１が記憶するデータが１の場合にはマスクデータＭＤ＿１を選択し、マスクデータ選択レジスタ１０５１が記憶するデータが３の場合にはマスクデータＭＤ＿３を選択し、…、マスクデータ選択レジスタ１０５１が記憶するデータがｎの場合にはマスクデータｎを選択する。
【００３６】
マスクデータ格納メモリ１０５は、例えば後述する複数の処理機能それぞれに対応した、データＤ内の処理対象データ以外の非処理対象データをマスクさせる複数のマスクデータＭＤ＿０〜ｎを記憶する。
【００３７】
詳細には、例えばマスクデータＭＤ＿０は、１６進数表示で示すと図３に示すように、データＭＤ＿０１として０ｘＦ０００＿００００  、データＭＤ＿０２として０ｘＦＦＦＦ＿ＦＦＦ０  、データＭＤ＿０３として０ｘＦＦＦＦ＿ＦＦＦＦ  、データＭＤ＿０４として０ｘＦＦＦＦ＿ＦＦＦＦ  、…等を有する。
【００３８】
マスクデータＭＤ＿１は、データＭＤ＿１１として０ｘ００００＿００００  、データＭＤ＿１２として０ｘ００００＿００００  、データＭＤ＿１３として０ｘＦＦＦＦ＿ＦＦＦＦ  、データＭＤ＿１４として０ｘＦＦＦＦ＿ＦＦＦＦ  、…等を有する。
【００３９】
マスクデータＭＤ＿２は、データＭＤ＿２１として０ｘＦＦＦＦ＿ＦＦＦＦ  、データＭＤ＿２３として０ｘＦＦＦＦ＿ＦＦＦＦ  、データＭＤ＿２４として０ｘＦＦＦＦ＿ＦＦＦＦを有する。
例えばマスクデータＭＤ＿０は、後述するハッシュ処理部の処理機能に対応するマスクデータに相当する。
【００４０】
上述したマスクデータＭＤと図２に示すデータＤとの関係は、例えばマスクデータＭＤを２進数表示した場合に’０’および’１’の１ビット分は、データＤの４ビット分に相当する。
【００４１】
本実施形態では、マスクデータ格納メモリ１０５は、３種類のマスクデータＭＤを記憶するが、この形態に限られるものではない。例えば、マスクデータ格納メモリ１０５の記憶容量に応じた数のマスクデータＭＤを記憶する。
【００４２】
マスクデータ選択部１０６は、例えばＤＭＡＣ１０４からの制御信号ＣＴＬ１０４を基にマスクデータ格納メモリ１０５内の複数のマスクデータＭＤからいずれかのマスクデータＭＤを選択し、マスク回路１０７に出力する。
詳細には、マスクデータ格納メモリ１０５のマスクデータ選択用のレジスタ１０５１が記憶するマスクデータを示すデータを基に、複数のマスクデータＭＤのうちいずれかのマスクデータＭＤを選択し、選択したマスクデータＭＤをマスク回路１０７に出力する。
【００４３】
マスク回路１０７は、マスクデータ格納メモリ１０５が記憶するマスクデータＭＤに基づいて、ＤＭＡＣ１０４から入力されるデータＤを示す信号Ｓ１０４における処理対象データ以外の非処理対象データをマスクする。
詳細には、マスク回路１０７は、マスクデータ選択部１０６が選択して出力するマスクデータＭＤに基づいて、ＤＭＡＣ１０４から入力されるデータＤを示す信号Ｓ１０４における処理対象データ以外の非処理対象データをマスクする。
【００４４】
詳細には、マスク回路１０７は、マスクデータＭＤとして、例えば１ワード（３２ｂｉｔ）のデータを所定の数だけ設ける。
また、マスク回路１０７は、マスクデータＭＤと処理対象データＤとを、例えばＡＮＤ演算処理を行うことで、マスク処理を行う。
【００４５】
第１セレクタ１０８は、マスク回路１０７により入力された信号Ｓ１０７を、ＤＭＡＣ１０４から出力された制御信号ＣＴＬ１０４３に応じた、データ処理部１０９の内の所定の処理機能に出力する。
【００４６】
データ処理部１０９は、マスク回路１０７から入力されたマスク処理したデータＤを受けて、マスク処理されたデータを除く処理対象データに基づいて処理を行い、処理結果を示すデータを生成する。
詳細には、データ処理部１０９は、マスク回路１０７から第１セレクタ１０８を介して入力されたマスク処理したデータＤを受けて、マスク処理されたデータを除く処理対象データに基づいて処理を行い、処理結果を示すデータを第２セレクタ１１０に出力する。
【００４７】
また、データ処理部１０９は、例えば、それぞれ異なる、データＤ内の処理対象データに基づいて処理を行う複数の処理機能を含む。
詳細には、データ処理部１０９は、例えば図１に示すように共通鍵暗号部１０９１、ハッシュ処理部１０９２、およびチェックサム部１０９３等を有する。
【００４８】
共通鍵暗号部１０９１は、例えばデータＤを暗号化処理を行う場合に選択される。例えば詳細には共通鍵暗号部１０９１は、所定の共通鍵を基にデータＤ内のデータ２４を、例えばＤＥＳ（Ｄａｔａ  ｅｎｃｒｙｐｔｉｏｎ  ｓｔａｎｄａｒｄ）等の暗号化処理および復号処理を行う。
【００４９】
この際、例えば共通鍵暗号部１０９１の処理機能に対応するマスクデータとしては、データＤ内の処理対象データに相当するデータ２４以外の非処理対象データをマスクするデータである。詳細には、非処理対象データは図２に示すようにＩＰｖ６ヘッダ２１，ＡＨヘッダ２２，およびＵＤＰヘッダ２３を示すデータである。
また、暗号処理としてこの形態に限られるものではない。例えば公開鍵暗号方式による暗号化処理および復号処理を行ってもよい。
【００５０】
ハッシュ処理部１０９２は、例えばデータＤの認証処理を行う場合に選択される。
例えば詳細にはハッシュ処理部１０９２は、例えば図２に示したデータＤの場合には、データＤ内の認証データ２２６を生成する際に、処理対象データとしてハッチングされたデータ、詳細には、バージョン２１１，ペイロード長２１５，次ヘッダ番号２１６，始点ＩＰアドレス２１８，終点ＩＰアドレス２１９，次ヘッダ番号２２１，ペイロード長２２２，予約２２３，ＳＰＩ２２４，シーケンス番号２２５，送信元ポート２３１，宛先ポート２３２，セグメント長２３３，チェックサム２３４を基にハッシュ演算処理を行い認証データを生成する。
【００５１】
この生成した認証データはデータ送信時には、データＤ内の認証データ２２６として用いられる。またデータＤの受信時には、生成した認証データとデータＤ内のデータとが比較され、比較の結果、一致している場合には改竄されていないと判別され、一致していない場合には改竄された可能性があると判別される。
【００５２】
また、ハッシュ処理部１０９２の処理機能に対応するマスクデータとしては、図２に示すデータＤの場合には、非処理対象データに相当する、ＤＳ２１２，ＥＣＮ２１３，フローラベル２１４，中継限界数２１７，および認証データ２２６を示すデータである。本実施形態の場合、このマスクデータは、例えばマスクデータ格納メモリ１０５が格納するマスクデータＭＤ＿０に相当する。
【００５３】
チェックサム部１０９３は、例えばデータＤの改竄やエラーをチェックするためのチェックサム演算処理を行う場合に選択される。
例えば詳細にはチェックサム部１０９３の処理機能に対応するマスクデータとしては、例えば図２に示すデータＤ内の非処理対象データに相当するチェックサム２３４をマスク処理するデータである。
【００５４】
また、チェックサム部１０９３は、例えばデータＤのうち処理対象データとして、送信元ポート２３１，宛先ポート２３２，およびセグメント長２３３を基にチェックサム処理を行い、処理結果を示すチェックサムデータを生成する。
データＤの送信時には、生成したチェックサムデータはデータＤ内のチェックサム２３４として用いられる。またデータＤを受信してデータのチェック時には、生成したチェックサムデータとデータＤ内のチェックサム２３４とが比較され、比較の結果、一致している場合には改竄やエラーがないと判別され、一致していない場合には改竄やエラーの可能性があると判別される。
【００５５】
第２セレクタ１１０は、データ処理部から出力された処理結果を示すデータを、ＤＭＡＣ１０４に出力する。
【００５６】
図４は、図１に示した通信処理装置の動作を説明するためのフローチャートである。図４を参照しながら、通信処理装置の動作を説明する。簡単な説明のために、例えばＣＰＵ１０２が、データＤをＩ／Ｆ１０１に通信ネットワーク２を介して通信処理装置２００に送信する場合に、例えばデータＤを基にハッシュ処理を行い認証データを生成させ、その生成した認証データを認証データ２２６としたデータＤをＩ／Ｆ１０１に送信させる場合を説明する。
【００５７】
ステップＳＴ１において、例えばＤＭＡＣ１０４は、ＣＰＵ１０２からの制御により、データ格納メモリ１０３からデータＤを読出し信号Ｓ１０３としてマスク回路１０７に出力する。
【００５８】
ステップＳＴ２において、例えばＤＭＡＣ１０４は、ＣＰＵ１０２の制御により、それぞれ異なる、データＤ内の処理対象データに基づいて処理を行う複数の処理機能１０９の内いずれか１つの処理機能１０９を選択し、選択した処理機能１０９に対応する、マスクデータ格納メモリ１０５が記憶するマスクデータＭＤを選択する。
詳細には、例えば、ＤＭＡＣ１０４は、ＣＰＵ１０２の制御により、ハッシュ処理部１０９２を選択させる制御信号ＣＴＬ１０４３を第１セレクタ１０８に出力し、ハッシュ処理部１０９２の処理機能に対応するマスクデータを選択させる制御信号ＣＴＬ１０４１をマスクデータ格納メモリ１０５に出力し、そのマスクデータを選択させる制御信号ＣＴＬ１０４２をマスクデータ選択部１０６に出力する。
【００５９】
ステップＳＴ３において、例えば、マスクデータ格納メモリ１０５では、制御信号ＣＴＬ１０４１に応じてマスクデータ選択レジスタ１０５１に、ハッシュ処理部１０９２の処理機能に対応するマスクデータＭＤ＿０を示すデータがセットされる。
マスクデータ選択部１０６では、制御信号ＣＴＬ１０４２を受けて、マスクデータ選択レジスタ１０５１にセットされているデータを基に、マスクデータＭＤ＿０を選択し、マスクデータＭＤ＿０をマスク回路１０７に出力する。
【００６０】
マスク回路１０７では、マスクデータ選択部１０６を介して入力されたマスクデータＭＤに応じて、ＤＭＡＣ１０４から入力されたデータＤを示す信号１０４を基に、データＤにおける処理対象データ以外の非処理対象データをマスクする。
【００６１】
詳細には、例えばマスク回路１０７は、図２，３に示すように、データＭＤ＿０１（０ｘＦ０００＿００００  ）とデータＤの１ワード目とのＡＮＤ演算処理を行い、その結果を信号Ｓ１０７として出力する。つまり、下位２８ビット分、ゼロマスク処理を行う。
また、データＭＤ＿０２（０ｘＦＦＦＦ＿ＦＦＦ０  ）とデータＤの２ワード目とのＡＮＤ演算処理を行い、その結果を信号Ｓ１０７として出力する。つまり下位４ビット分、ゼロマスク処理を行う。
また、データＭＤ＿０３（０ｘＦＦＦＦ＿ＦＦＦＦ  ）とデータＤの３ワード目とのＡＮＤ演算処理を行い、その結果を信号Ｓ１０７として出力する。（ゼロマスク処理は行わない）。
また、データＭＤ＿０４（０ｘＦＦＦＦ＿ＦＦＦＦ  ）とデータＤの４ワード目とのＡＮＤ演算処理を行い、その結果を信号Ｓ１０７として出力する。（ゼロマスク処理は行わない）。
以下、同様にマスク処理を行う。
【００６２】
第１セレクタ１０８は、マスク回路１０７により入力された信号Ｓ１０７を、ＤＭＡＣ１０４から出力された制御信号ＣＴＬ１０４３に応じた、データ処理部１０９の内の所定の処理機能、例えば共通鍵暗号部１０９１、ハッシュ処理部１０９２、チェックサム部１０９２のいずれかに出力する。例えば本実施形態では、マスク回路１０７は、データＤを制御信号ＣＴＬ１０４３に応じてハッシュ処理部１０９２に信号Ｓ１０７を出力する。
【００６３】
ステップＳＴ４において、データ処理部１０９は、マスク回路１０７から入力されたマスク処理したデータＤを受けて、マスク処理されたデータを除く処理対象データに基づいて処理を行い、処理結果を示すデータを生成する。
詳細には、データ処理部１０９は、マスク回路１０７から第１セレクタ１０８を介して入力されたマスク処理したデータＤを受けて、マスク処理されたデータを除く処理対象データに基づいて、例えばハッシュ処理部１０９２がハッシュ処理を行い、処理結果を示すデータを第２セレクタ１１０に出力する。
【００６４】
ハッシュ処理部１０９２は、上述したように例えば図２に示したデータＤの場合には、処理対象データとしてハッチングされたデータ、詳細には、バージョン２１１，ペイロード長２１５，次ヘッダ番号２１６，始点ＩＰアドレス２１８，終点ＩＰアドレス２１９，次ヘッダ番号２２１，ペイロード長２２２，予約２２３，ＳＰＩ２２４，シーケンス番号２２５，送信元ポート２３１，宛先ポート２３２，セグメント長２３３，チェックサム２３４を基にハッシュ演算処理を行い認証データを生成し、第２セレクタ１１０に出力する。
【００６５】
第２セレクタ１１０は、データ処理部１０９から入力された処理結果を示すデータを、ＤＭＡＣ１０４に出力する。
ＣＰＵ１０２は、例えばＤＭＡＣ１０４に、第２セレクタから入力されたデータをＩ／Ｆ１０１に出力させ、通信ネットワーク２を介して、通信処理装置２００に送信させる。この際、例えば生成した認証データを、データＤ内の認証データ２２６として送信させる。
【００６６】
以上説明したように、データ処理部１０９の複数の処理機能の内いずれか１つの処理機能を選択し、選択した処理機能に対応する、マスクデータ格納メモリ１０５が記憶するマスクデータを選択するＤＭＡＣ１０４，およびマスクデータ選択部１０６と、複数の処理機能それぞれに対応した、データＤ内の処理対象データ以外の非処理対象データをマスクさせる複数のマスクデータを記憶するマスクデータ格納メモリ１０５と、マスクデータ格納メモリ１０５が記憶し、ＤＭＡＣ１０４により選択されたマスクデータＭＤに基づいてデータＤにおける処理対象データ以外の非処理対象データをマスクするマスク回路１０７と、マスク回路１０７がマスク処理したデータＤを受けて、マスク処理されたデータを除く処理対象データに基づいて処理を行う複数の処理機能、例えば、共通鍵暗号部１０９１，ハッシュ処理部１０９２，およびチェックサム部１０９３を含むデータ処理部１０９と、データ処理部１０９が生成したデータを送信するＩ／Ｆ１０１とを設けたので、煩雑な処理を行うことなくマスク処理を行うことができる。
【００６７】
一般的な通信処理装置のＣＰＵがマスク処理を行いそのデータをメモリ内に記憶させるのに比べて、本実施形態に係る通信処理装置１は、ＣＰＵ１０２が処理を行うのではなく、ＤＭＡＣによりデータ格納メモリ１０３からデータＤを読出し、マスク回路１０７にマスク処理を行わせるので、一般的な通信処理装置と比べて、少ないメモリ容量でマスク処理を行うことができる。
【００６８】
また、複数の処理機能に対応するマスクデータＭＤをマスクデータ格納メモリ１０５に記憶させ、所望の処理機能に応じたマスクデータを選択し、そのマスクデータを用いてマスク処理を行い、マスク処理結果のデータを所望の処理機能により処理するので、所望のデータ処理に対応したマスク処理を高速に行うことができる。
【００６９】
図５は、本発明に係る通信処理装置の第２実施形態の機能ブロック図である。
本実施形態に係る通信処理装置１ａは、図５に示すように、Ｉ／Ｆ１０１、ＣＰＵ１０２、データ格納メモリ１０３ａ、ダイレクトメモリアクセスコントローラＤＭＡＣ１０４ａ、マスクデータ格納メモリ１０５、マスクデータ選択部１０６、マスク回路１０７、第１セレクタ１０８、データ処理部１０９、および第２セレクタ１１０を有する。
【００７０】
通信処理装置１ａと、第１実施形態に係る通信処理装置１と大きな相違点は、データ格納メモリ１０３ａ、およびダイレクトメモリアクセスコントローラＤＭＡＣ１０４ａである。相違点のみ説明する。また、その他の同一の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００７１】
図６は、図５に示した通信処理装置のデータ格納メモリを説明するための図である。
データ格納メモリ１０３ａは、データＤおよびＤＭＡＣディスクリプタ１０３１を有する。
ＤＭＡＣディスクリプタ１０３１は本発明に係る指定データに相当する。
【００７２】
データ格納メモリ１０３ａは、例えばデータＤを複数の分割データＤ１，Ｄ２，Ｄ３，…として記憶する。
ＤＭＣディスクリプタ１０３１は、例えばいわゆるスキャッタ・ギャザ方式により、データ格納メモリ１０３ａに散在するデータを読出す場合に参照される。
例えばＤＭＡＣ１０４ａは、ＤＭＡディスクリプタ１０３１を基に分割データＤを読出す。
【００７３】
例えばＤＭＣディスクリプタ１０３１は、少なくとも分割データＤのうち非処理対象データを含む分割データを示すアドレスデータ、およびマスクデータを示すマスク選択データを含む。
ディスクリプタ１２１は、例えば図６に示すように、複数のディスクリプタ１２１−１〜ｎを有する。
ディスクリプタ１２１それぞれは、複数のワード、例えばワードＷＤ１〜４を有する。
ワードＷＤ１は、処理対象データの先頭アドレスデータを示す。
ワードＷＤ２は、処理対象データの長さを示す。
ワードＷＤ３は、例えばマスクデータを示すデータ、つまりマスク選択データを示す。また、ワードＷＤ３は例えばマスクデータ選択レジスタ１０５１が記憶するデータが記憶される。
ワードＷＤ４は、次に処理するＤＭＡＣディスクリプタ１２１の先頭アドレス、つまりリンク情報を示す。
【００７４】
例えば図６に示すように分割データＤ２の中に、非処理対象データｄ２１が存在する場合には、ＤＭＡディスクリプタ１０３１−２のワードＷＤ３には、非処理対象データＤ２１に対応したマスクデータを示す情報が格納される。
【００７５】
ＤＭＡＣ１０４ａは、データ格納メモリ１０３ａが記憶するＤＭＡＣディスクリプタ１０３１を基に、指定データのアドレスデータに応じて、分割データＤを読出してマスク回路１０７に出力する。
また、ＤＭＡＣ１０４ａは、データ格納メモリ１０３ａが記憶するＤＭＡＣディスクリプタ１０３１内のマスク選択データに基づいて、マスクデータ格納メモリ１０５が記憶するマスクデータＭＤを選択する。
詳細には、ＤＭＡＣ１０４は、ワードＷＤ３のマスク選択データに応じたマスクデータを選択させる制御信号ＣＴＬ１０４１を、マスクデータ格納メモリ１０５に出力する。また、ＤＭＡＣ１０４は、そのマスクデータＭＤを選択させる制御信号ＣＴＬ１０４２を、マスクデータ選択部１０６に出力する。
【００７６】
図７は、図５に示した通信処理装置の動作を説明するためのフローチャートである。図７を参照しながら通信処理装置１ａの動作、特にデータ格納メモリ１０３ａと、ＤＭＡＣ１０４ａの処理を中心に第１実施形態との相違点のみ説明する。
【００７７】
ステップＳＴ１１において、ＤＭＡＣ１０４ａは、例えばデータ格納メモリ１０３ａが記憶するＤＭＡＣディスクリプタ１０３１を読出す。例えば１０３１−１からリンク情報に基づいて順に読出す。
【００７８】
ステップＳＴ１２において、ＤＭＡＣ１０４ａは、例えばデータ格納メモリ１０３ａが記憶するＤＭＡＣディスクリプタ１０３１のアドレスデータに基づいて分割データＤをマスク回路１０７に出力する。
【００７９】
また、ＤＭＡＣ１０４ａは、データ格納メモリ１０３ａが記憶するＤＭＡＣディスクリプタ１０３１内のマスク選択データに基づいて、マスクデータ格納メモリ１０５が記憶するマスクデータＭＤを選択する。詳細には、ＤＭＡＣ１０４は、ワードＷＤ３のマスク選択データに応じたマスクデータを選択させる制御信号ＣＴＬ１０４１を、マスクデータ格納メモリ１０５に出力する。また、ＤＭＡＣ１０４は、そのマスクデータＭＤを選択させる制御信号ＣＴＬ１０４２をマスクデータ選択部１０６に出力する。
【００８０】
マスクデータ格納メモリ１０５では、制御信号ＣＴＬ１０４１に基づいてマスクデータ選択レジスタ１０５１に、マスクデータＭＤを選択させるデータがセットされる。
マスクデータ選択部１０６は、制御信号ＣＴＬ１０４２を受信すると、例えばマスクデータ選択レジスタ１０５１にセットされたデータに基づいて、マスクデータＭＤを選択し、選択したマスクデータＭＤをマスク回路１０７に出力する。
【００８１】
ステップＳＴ１３において、マスク回路１０７では、マスクデータ選択部１０６を介して入力されたマスクデータＭＤに基づいて、ＤＭＡＣ１０４から入力されたデータＤを示す信号１０４を基に、データＤにおける処理対象データ以外の非処理対象データをマスク処理を行い、処理結果を信号Ｓ１０７として出力する。
【００８２】
ステップＳＴ１４において、データ処理部１０９は、マスク回路１０７から入力されたマスク処理したデータＤを受けて、マスク処理されたデータを除く処理対象データに基づいて処理を行い、処理結果を示すデータを生成し、そのデータを第２セレクタ１１０に出力する。
以下、第１実施系形態と同様な動作なので説明を省略する。
【００８３】
以上説明したように、本実施形態では、データＤを分割した複数の分割データＤ１，Ｄ２，…、および少なくとも分割データのうち非処理対象データを含む分割データを示すアドレスデータＷＤ１およびマスクデータを示すマスク選択データＷＤ３を含むＤＭＡＣディスクリプタ１０３１とを記憶するデータ格納メモリ１０３ａと、データ格納メモリ１０３ａが記憶するＤＭＡＣディスクリプタ１０３１のアドレスデータＷＤ１に基づいて分割データをマスク回路１０７に出力し、マスク選択データＷＤ３に基づいてマスクデータ格納メモリ１０５が記憶するマスクデータを、マスクデータ選択部１０６に選択させるＤＭＡＣ１０４ａとを設けたので、第１の実施形態に係る通信処理装置１ａに比べて、ＤＭＡＣ１０４ａによるＤＭＡ処理に連動して処理対象データに順次マスク処理を行うことができる。
【００８４】
つまり、例えばＣＰＵ１０２の制御によりマスクデータを選択させる制御信号を受信する必要がなくＤＭＡ処理に連動して順次マスク処理を行うことができる。
【００８５】
図８は、本発明に係る通信処理装置の第３実施形態の機能ブロック図である。
本実施形態に係る通信処理装置１ｂは、図８に示すように、Ｉ／Ｆ１０１、ＣＰＵ１０２、データ格納メモリ１０３、ダイレクトメモリアクセスコントローラＤＭＡＣ１０４ｂ、マスクデータ格納メモリ１０５ｂ、マスクデータ選択部１０６、マスク回路１０７、第１セレクタ１０８、データ処理部１０９、および第２セレクタ１１０を有する。
【００８６】
通信処理装置１ｂと、第１実施形態に係る通信処理装置１との大きな相違点は、ＤＭＡＣ１０４ｂ、およびマスクデータ格納メモリ１０５ｂである。相違点のみ説明する。その他の同一の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００８７】
図９は、図８に示した通信処理装置のマスクパターン格納メモリを説明するための図である。図１０は、図９に示したマスクデータを説明するための図である。
マスクパターン格納メモリ１０５ｂは、例えば図９に示すように、マスクデータ選択レジスタ１０５１と、マスクデータＭＤａを有する。
マスクデータ選択レジスタ１０５１は、第１実施形態に係るマスクデータ選択レジスタ１０５１と同様な機能を有するので説明を省略する。
【００８８】
本実施形態に係るマスクデータＭＤａは、マスク処理の処理内容を示すデータを有する。
例えば、マスクデータＭＤａは、マスク処理を行うための演算データ、その演算データのデータ長、データ長の演算データの繰り返し回数を示す繰り返しデータを有する。
【００８９】
詳細には、マスクデータＭＤａのデータ形式は、例えば図１０に示すように１ワードが３２ビットであるデータを有する。
例えば、０ビット目〜１５ビット目はマスク演算するデータ長（バイト数）を指定するフィールドである。
１６ビット目〜２３ビット目はマスク演算データを指定するフィールドであり、演算するデータ値を指定する。
２４ビット目は、上述の処理を繰り返し実行を示す繰り返しデータである。
２５ビット目〜３１ビット目は、未定義である。
【００９０】
２４ビット目が０の場合には、マスクデータＭＤａのデータ形式ＭＤａ＿Ｆ０に示すように、指定したデータ長（バイト数）分の指定した演算データを基にマスク処理、例えばＡＮＤ演算処理させることを示す。
一方、２４ビット目が１の場合には、マスクデータＭＤａのデータ形式ＭＤａ＿Ｆ１に示すように、残りの全てのデータを、指定した演算データを基にマスク処理を行わせることを示す。
【００９１】
マスクデータＭＤａは、複数のマスクデータＭＤ＿０ａ，ＭＤ＿１ａ，ＭＤ＿２ａ，…を有する。マスクデータＭＤそれぞれは、複数のデータにより構成される。
【００９２】
例えば上述したデータ形式において、マスクデータＭＤ＿０ａは、１６進数表示で示すと図９に示すように、データＭＤ＿０１ａとして０ｘ００ｆ０＿０００１  、データＭＤ＿０２ａとして０ｘ００００＿０００３  、データＭＤ＿０３ａとして０ｘ００ＦＦ＿０００３  、データＭＤ＿０４ａとして０ｘ００００＿０００１  、データＭＤ＿０５ａとして０ｘ００ＦＦ＿０００２  、データＭＤ＿０６ａとして０ｘ００００＿０００Ｃ  、データＭＤ＿０７ａとして０ｘ０１ＦＦ＿００００  、…等を有する。
【００９３】
マスクデータＭＤ＿１ａは、データＭＤ＿１１ａとして０ｘ００００＿０００Ｃ  、データＭＤ＿１２ａとして０ｘ００ＦＦ＿０１２４  、データＭＤ＿１３ａとして０ｘ００００＿０００４  、データＭＤ＿１４ａとして０ｘ００１ＦＦ＿００００  、…等を有する。
マスクデータＭＤ＿２ａは、データＭＤ＿２１ａとして０ｘ００５５＿０００４  、データＭＤ＿２２ａとして０ｘ００ＡＡ＿０００４  、データＭＤ＿２３ａとして０ｘ００００＿０００４  、データＭＤ＿２４ａとして０ｘ００１００＿００００  、…等を有する。
【００９４】
例えば、上述したマスクデータＭＤ＿０ａ，ＭＤ＿１ａ，ＭＤ＿２ａ，…それぞれの処理内容は、図３に示した第１実施形態に係るマスクデータＭＤ＿０，ＭＤ＿１，ＭＤ＿２，…それぞれの処理内容に対応する。
【００９５】
図１１は、図８に示した通信処理装置のＤＭＡＣの機能ブロック図である。
ダイレクトメモリアクセスコントローラＤＭＡＣ１０４ｂは、図９に示すように、データ長カウンタ１０４−１、データアライメント回路１０４−２、および繰り返し判定回路１０４−３を有する。
【００９６】
データ長カウンタ１０４−１は、処理するデータ長を監視するカウンタである。
データアライメント回路１０４−２は、マスクデータは１バイト（８ｂｉｔ）データのため、ＤＭＡＣ１０４ｂから入力されるデータが１ワード（３２ｂｉｔ）データの場合はアライメントを行う。
繰り返し判定回路１０４−３は、例えばマスクデータＭＤの２４ビット目により指定される繰り返し実行を示すデータを基に、繰り返し判定を行う回路である。
【００９７】
図１２は、図８に示した通信処理装置の動作を説明するためのフローチャートである。図１２を参照しながら、通信処理装置１ｂの動作、特に図９，１０に示したデータ形式のマスクデータＭＤａを基にマスク処理を行う場合の動作を説明する。また、第１実施形態および第２実施形態と同様な動作は説明を省略し、相違点のみ説明する。
【００９８】
ステップＳＴ２１において、ＤＭＡＣ１０４ｂは、例えばデータ格納メモリ１０３が記憶するデータＤを読出す。
ＤＭＡＣ１０４ｂは、例えばＣＰＵ１０２の制御により、それぞれ異なる、データＤ内の処理対象データに基づいて処理を行う複数の処理機能１０９の内いずれか１つの処理機能１０９を選択し、選択した処理機能１０９に対応する、マスクデータ格納メモリ１０５ｂが記憶するマスクデータＭＤａを選択する。
【００９９】
詳細には、例えば、ＤＭＡＣ１０４ｂは、ＣＰＵ１０２の制御により、ハッシュ処理部１０９２を選択させる制御信号ＣＴＬ１０４３を第１セレクタ１０８に出力し、ハッシュ処理部１０９２の処理機能に対応するマスクデータＭＤａを選択させる制御信号ＣＴＬ１０４１をマスクデータ格納メモリ１０５ｂに出力し、そのマスクデータＭＤを選択させる制御信号ＣＴＬ１０４２をマスクデータ選択部１０６ｂに出力する。
【０１００】
マスクデータ格納メモリ１０５では、例えば制御信号ＣＴＬ１０４１に応じてマスクデータ選択レジスタ１０５１に、ハッシュ処理部１０９２の処理機能に対応するマスクデータＭＤ＿０ａを示すデータがセットされる。
マスクデータ選択部１０６では、制御信号ＣＴＬ１０４２を受けて、マスクデータ選択レジスタ１０５１にセットされているデータを基に、マスクデータＭＤ＿０ａを選択し、例えばＤＭＡＣ１０４ｂに出力する。
【０１０１】
ＤＭＡＣ１０４ｂでは、マスクデータ選択部１０６から入力されたマスクデータＭＤ＿０ａを基に、マスク回路１０７にマスク処理を行わせるためのマスクデータを生成して出力する。例えば第１実施形態に示すマスクデータを生成して出力する。
【０１０２】
詳細には、例えば、ＤＭＡＣで１０４ｂは、図９に示すマスクデータＭＤ＿０ａを基にマスクデータを生成する場合には、データ長カウンタ１０４−１が、マスクデータＭＤ＿０ａの０ビット目〜１５ビット目のデータ長を示すデータをカウントし、データアライメント回路１０４−２によりアライメント調整を行い、繰り返し判定回路１０４−３により、マスクデータＭＤ＿０ａの２４ビット目のデータを基に繰り返し処理判定を行い、マスクデータを生成する。
【０１０３】
具体的には、ＤＭＡＣ１０４ｂは、例えば図９に示すマスクデータＭＤ＿０１ａを基に、データ長が１バイト分で、演算データが０ｘＦ０のマスク処理を行わせるデータをマスク回路１０７に出力する。
また、マスクデータＭＤ＿０２ａを基にデータ長が３バイト分で演算データが０ｘ００のマスク処理を行わせるデータをマスク回路１０７に出力し、マスクデータＭＤ＿０３ａを基にデータ長が３バイト分で演算データが０ｘＦＦのマスク処理を行わせるデータをマスク回路１０７に出力し、マスクデータＭＤ＿０４ａを基にデータ長が１バイト分で演算データが０ｘ００のマスク処理を行わせるデータをマスク回路１０７に出力し、マスクデータＭＤ＿０５ａを基にデータ長が４４バイト分で演算データが０ｘＦＦのマスク処理を行わせるデータをマスク回路１０７に出力し、マスクデータＭＤ＿０６ａを基にデータ長が１２バイト分で演算データが０ｘ００のマスク処理を行わせるデータをマスク回路１０７に出力し、残りのビットを演算データが０ｘＦＦのマスク処理を行わせるデータをマスク回路１０７に出力する。
【０１０４】
ステップＳＴ２２において、マスク回路１０７は例えばＤＭＡＣ１０４ｂから入力された、上述したデータを基に、データＤのマスク処理、例えばＡＮＤ演算処理を行い、マスク処理の結果を第１セレクタ１０８に出力する。
ステップＳＴ２３の処理については、上述した第１実施形態および第２実施形態と同様なので説明を省略する。
【０１０５】
以上説明したように、マスク処理を行うための処理内容を示すデータとして、演算データ、演算データのデータ長、データ長の演算データの繰り返し回数を示す繰り返しデータを含むマスクデータＭＤａを記憶するマスクデータ格納メモリ１０５ｂと、マスクデータＭＤａを基に、マスクデータの内の演算データ、データ長、および繰り返しデータに応じてマスク処理を行う、ＤＭＡＣ１０４ｂ，マスクデータ選択部１０６，マスク回路１０７を設けたので、第１実施形態に係るマスクデータＭＤと比べて、マスクデータＭＤａのサイズを小さくすることができる。
【０１０６】
なお、本発明は本実施の形態に限られるものではなく、任意好適な種々の改変が可能である。
例えば、第３実施形態では、ＤＭＡＣ１０４ｂが、マスクデータＭＤａのデータ長、演算データ、繰り返しデータを基に、第１実施形態に係るマスク回路１０７がマスク処理可能なマスクデータを生成してマスク回路１０７に出力したが、この形態に限られるものではない。
例えば、マスク回路１０７が、上述のＤＭＡＣ１０４ｂの機能を有し直接にマスク処理を行ってもよい。つまりマスク回路１０７は、マスクデータＭＤａのデータ長、演算データ、繰り返しデータを基に、直接にデータＤのマスク処理を行ってもよい。
【０１０７】
また、本実施形態では、ハッシュ処理部、共通鍵暗号部、チェックサム部を設けたが、この形態に限られるものではない。
例えば、Ｆｅｄｅｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｔａｎｄａｒｄ（以下、ＦＩＰＳと略す）の１８０−１として定められたＳｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ（以下、ＳＨＡと略す）に代表される一方向性を利用したハッシュ方式による認証データの生成（例えば、ＨＭＡＣ−ＳＨＡ−１）や、ＦＩＰＳの４６−３に定められたＤａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（以下、ＤＥＳと略す）に代表される共通鍵暗号処理、Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ  Ｍｏｄｅ（以下、ＣＢＣモードと略す）を利用した認証データの生成（例えば、ＤＥＳ−ＣＢＣ−ＭＡＣ）等を行ってもよい。
【０１０８】
また、チェックサム部は、例えばＲＦＣ１０７１として定められたチェックサム演算を行ってもよい。
また、上述した処理機能以外にもマスク処理を行う処理機能について、本発明に係るデータ処理装置やデータ処理方法を適用することで、煩雑な処理を行うことなくマスク処理を行うことができる。
【０１０９】
また、通信ネットワークを介して受信した通信データに対して認証データを付加して配送する場合に、本発明に係るマスク処理を行い、マスク処理の結果を基に所定の処理を行い、通信ネットワークを介してその処理結果を受信側通信処理装置に送信してもよい。
【０１１０】
また、本実施形態では、ハッシュ演算を用いる例を示しているが、この形態に限られるものではない。例えば、データ処理部は、共通鍵暗号ブロックやチェックサムブロックであっても構わない。
【０１１１】
また、マスク回路での演算は、ＡＮＤ演算を用いる例を示しているが、この形態に限られるものではない。他の論理演算、例えばＯＲ演算、ＥｘＯＲ演算、ＮＯＴ演算等の所定の演算処理であってよい。また、論理演算のみならず、四則演算等の他の演算、もしくは、データのすげ替えであっても構わない。この場合には、その演算に対応したマスクデータを設ける。
【０１１２】
【発明の効果】
本発明によれば、煩雑な処理を行うことなくマスク処理を行うことができるデータ処理装置、通信処理装置、データ処理方法、および通信処理方法を提供することができる。
【図面の簡単な説明】
【図１】本発明に係るデータ処理装置を含む通信処理装置の第１実施形態に係る機能ブロック図である。
【図２】図１に示した通信処理装置に係るデータの一具体例を説明するための図である。
【図３】図１に示した通信処理装置のマスクデータ格納メモリを説明するための図である。
【図４】図１に示した通信処理装置の動作を説明するためのフローチャートである。
【図５】本発明に係る通信処理装置の第２実施形態の機能ブロック図である。
【図６】図５に示した通信処理装置のデータ格納メモリを説明するための図である。
【図７】図５に示した通信処理装置の動作を説明するためのフローチャートである。
【図８】本発明に係る通信処理装置の第３実施形態の機能ブロック図である。
【図９】図８に示した通信処理装置のマスクパターン格納メモリを説明するための図である。
【図１０】図９に示したマスクデータを説明するための図である。
【図１１】図８に示した通信処理装置のＤＭＡＣの機能ブロック図である。
【図１２】図８に示した通信処理装置の動作を説明するためのフローチャートである。
【符号の説明】
１，１ａ，１ｂ…通信処理装置、２…通信ネットワーク、１０１…通信インタフェース（Ｉ／Ｆ）、１０２…ＣＰＵ、１０３，１０３ａ…データ格納メモリ、１０４…ダイレクトメモリアクセスコントローラＤＭＡＣ、１０４−１…データ長カウンタ、１０４−２…データアライメント回路、１０４−３…繰り返し判定回路、１０５，１０５ｂ…マスクデータ格納メモリ、１０６，１０６ｂ…マスクデータ選択部、１０７…マスク回路、１０８…第１セレクタ、１０９…データ処理部、１１０…第２セレクタ、１２１…ディスクリプタ、２００…通信処理装置、１０９１…共通鍵暗号部、１０９２…ハッシュ処理部、１０９３…チェックサム部。
【図１】
2004349975.tif 000003
【図２】
2004349975.tif 000004
【図３】
2004349975.tif 000005
【図４】
2004349975.tif 000006
【図５】
2004349975.tif 000007
【図６】
2004349975.tif 000008
【図７】
2004349975.tif 000009
【図８】
2004349975.tif 000010
【図９】
2004349975.tif 000011
【図１０】
2004349975.tif 000012
【図１１】
2004349975.tif 000013
【図１２】
2004349975.tif 000014