(57)【要約】【課題】ＣＰＵバスに暗号器や通信インタフェースやメモリがそれぞれ独立に接続している構成で、暗号化動作をする度にＣＰＵバス上においてデータをメモリから暗号器へそして暗号器からメモリへと２回移動する必要があり、暗号化、復号化の度にバスの帯域を占有するため非効率であった。【解決手段】通信インタフェース１４と、通信インタフェースにＣＰＵバス１１を介して接続されて通信を制御するＣＰＵ１２と、データを蓄積するメモリ１３と、データを暗号化または復号化する暗号器１５とを備える。メモリは、そのアドレス空間について、ＣＰＵがデータを直接的に読み書き可能な第１のアドレス空間と、ＣＰＵがデータを暗号器における暗号処理部１５ａを介して読み書き可能な第２のアドレス空間とを有し、ＣＰＵは、メモリに対してデータの読み書きを行う際に、第１のアドレス空間と第２のアドレス空間とを選択可能に構成されている。【選択図】図１
2007028382.tif 000002
【特許請求の範囲】
【請求項１】
通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵと、データを蓄積するメモリと、データを暗号化または復号化する暗号器とを備えたデータ通信装置であって、
前記メモリは、そのアドレス空間について、前記ＣＰＵがデータを直接的にアクセス可能な第１のアドレス空間と、前記ＣＰＵがデータを前記暗号器を介して読み書き可能な第２のアドレス空間とを有し、
前記ＣＰＵは、前記メモリに対してアクセスを行う際に、前記第１のアドレス空間と前記第２のアドレス空間とを選択可能に構成されているデータ通信装置。
【請求項２】
通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵと、データを蓄積するメモリと、データをハッシュ変換するハッシュ関数器とを備えたデータ通信装置であって、
前記メモリは、そのアドレス空間について、前記ＣＰＵがデータを直接的にアクセス可能な第１のアドレス空間と、前記ハッシュ関数器が前記データのハッシュ関数値についてアクセス可能な第２のアドレス空間とを有し、
前記ＣＰＵは、前記メモリに対してアクセスを行う際に、前記第１のアドレス空間と前記第２のアドレス空間とを選択可能に構成されているデータ通信装置。
【請求項３】
前記第１のアドレス空間と前記第２のアドレス空間とは、物理的に共通した状態に構成されている請求項１または請求項２に記載のデータ通信装置。
【請求項４】
前記第１のアドレス空間と前記第２のアドレス空間とは、物理的に分離した状態に構成されている請求項１または請求項２に記載のデータ通信装置。
【請求項５】
通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵと、データを蓄積するメモリと、データを暗号化または復号化する暗号器と、データをハッシュ変換するハッシュ関数器とを備え、
前記メモリは、そのアドレス空間について、前記ＣＰＵがデータを直接的にアクセス可能な第１のアドレス空間と、前記ハッシュ関数器が前記データのハッシュ関数値についてアクセス可能な第２のアドレス空間とを有し、
前記ＣＰＵは、前記メモリに対してアクセスを行う際に、前記第１のアドレス空間と前記第２のアドレス空間とを選択可能に構成されているデータ通信装置。
【請求項６】
さらに、前記ＣＰＵからの指示を受けて動作し、前記メモリに対するアクセスを前記ＣＰＵに代ってダイレクトに行うＤＭＡ回路を備えた請求項１から請求項５までのいずれかに記載のデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵ（central processing unit）と、データを蓄積するメモリと、データを暗号化または復号化する暗号器とを備えたデータ通信装置に関する。
【背景技術】
【０００２】
図１１（ａ），（ｂ）は従来の技術におけるデータ通信装置（暗号データ通信器）の概略構成を示すブロック図である。図において、２１はＣＰＵバス、２２はＣＰＵ、２３はメモリ、２４は通信インターフェイス、２５は暗号器である。
【０００３】
図１１（ａ）の場合、ＣＰＵバス２１にＣＰＵ２２、メモリ２３、通信インタフェース２４および暗号器２５の各ユニットが接続されている。データはＣＰＵバス２１を介して各ユニットに伝送される。また、外部機器に対して通信インタフェース２４を介してデータの送受信が行われる。
【０００４】
図１１（ｂ）の場合、ＣＰＵ２２、メモリ２３および暗号器２５はＣＰＵバス２１に直接に接続されているが、通信インタフェース２４は暗号器２５を介してＣＰＵバス２１に接続されている。ＣＰＵ２２で加工されたデータは、最終的に暗号器２５と通信インタフェース２４を介して外部機器に送信される。また、通信インタフェース２４で受信されたデータは暗号器２５を介して各ユニットに伝送される。
【０００５】
例えば、メモリ２３から読み出したデータを復号化して外部機器へ送出するに際しては、メモリ２３から読み出したデータを暗号器２５に送出し、暗号器２５で復号化した後、そのまま通信インタフェース２４に送って外部機器へ送信する。この場合、メモリ２３へデータを戻す必要はない。それは、ＣＰＵバス２１と通信インタフェース２４との間に暗号器２５が存在しているからである。したがって、ＣＰＵバス２１の使用が効率的なものとなる。
【０００６】
また、ＣＰＵ２２がＩＰｓｅｃ（IP Security Protocol）などのＩＰ（InternetProtocol）層、或いはＭＡＣ（Media Access Control）層においてプロトコル処理を行う場合、このデータ通信装置を用いてデータを暗号化及び復号化することができる。
【非特許文献１】http://www.intel.com/design/network/products/lan/controllers/82550.htm（IntelCorp.社製  Ethernet（登録商標） Controller 82550）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図１１（ａ）のデータ通信装置の場合、暗号化を行う際には、メモリ２３から読み出したデータがＣＰＵバス２１を介して暗号器２５に伝送され、暗号器２５において暗号化され、暗号済のデータがＣＰＵバス２１を介してメモリ２３に伝送される。すなわち、データはＣＰＵバス２１を２回移動することになる。復号化の場合も同様である。しかし、データ移動でＣＰＵバス２１のある帯域を占有するため、データ移動が２回であると、ＣＰＵバス２１の使用が非効率なものになっている。
【０００８】
また、図１１（ｂ）のデータ通信装置の場合、通信インタフェース２４がＣＰＵバス２１に直接的に接続されていないことから、次のような不都合がある。データ通信装置の使い方として、暗号器２５から一旦メモリ２３へデータを格納し、その後、メモリ２３からデータを読み出して通信インタフェース２４を介して外部へ送信したい場合がある。しかし、図１１（ｂ）の構成の場合、メモリ２３に格納されているデータを直接的に外部へ送信することができない。したがって、ＣＰＵ２２がプロトコルレイヤの上位層においてプロトコル処理を行う場合や、データを暗号化する必要があるＴＬＳ（Transport Layer Security）などの暗号方式を用いる場合や、通信プロトコル処理前にデータを暗号化するコンテンツ暗号方式を用いる場合には、対応することができない。つまり、図１１（ｂ）のデータ通信装置は、暗号方式の種類によって使用できない場合があるため、汎用性を欠くという課題がある。
【０００９】
本発明は、このような事情に鑑みて創作したものであり、ＣＰＵバスの帯域の利用効率が高い状態で、汎用性のあるデータ通信を実現することを目的としている。
【課題を解決するための手段】
【００１０】
本発明によるデータ通信装置は、通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵと、データを蓄積するメモリと、データを暗号化または復号化する暗号器とを備えたものであって、
前記メモリは、そのアドレス空間について、前記ＣＰＵがデータを直接的にアクセス可能な第１のアドレス空間と、前記ＣＰＵがデータを前記暗号器を介して読み書き可能な第２のアドレス空間とを有し、
前記ＣＰＵは、前記メモリに対してアクセスを行う際に、前記第１のアドレス空間と前記第２のアドレス空間とを選択可能に構成されているという構成を有している。
【００１１】
端的には、暗号器をメモリとＣＰＵバスの間に配置し、メモリにおけるアドレス空間を、暗号器を介さないでＣＰＵバスに接続される第１のアドレス空間と、暗号器を介してＣＰＵバスに接続される第２のアドレス空間との２つの空間から構成し、メモリにデータを書き込む動作において、暗号化しないで書き込んだり、暗号化して書き込んだりできるようにしている。すなわち、多彩なメモリアクセス方式を実現できる。そして、ＣＰＵバスに接続されたユニット間でデータを移動する回数を低減することができる。また、暗号化した後のデータをＣＰＵにて加工することも可能であり、暗号化方法に汎用性をもたせることができる。
【００１２】
上記において、前記第１のアドレス空間と前記第２のアドレス空間とについては、これらが物理的に共通した状態に構成されていてもよいし、あるいは、物理的に分離した状態に構成されていてもよい。
【００１３】
前者の物理的に共通したものでは、ＣＰＵがメモリからデータを読み出す際に、メモリ中の同一のメモリビットに位置するデータを読み出すこととなるため、メモリ容量の少ない構成であってもＣＰＵバスの帯域を軽減することができる。また、後者の物理的に分離したものでは、メモリのアドレス空間は前者の場合と比べて大きい領域が必要となる反面、暗号化データと非暗号化データを効率的に読み出すことができる。これは、外付けメモリなどの容量が大きいメモリを利用する場合に特に有効である。
【００１４】
また、上記において、暗号器に代えてハッシュ関数器を装備した態様のデータ通信装置も有効である。すなわち、本発明によるデータ通信装置は、通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵと、データを蓄積するメモリと、データをハッシュ変換するハッシュ関数器とを備えたものであって、
前記メモリは、そのアドレス空間について、前記ＣＰＵがデータを直接的にアクセス可能な第１のアドレス空間と、前記ハッシュ関数器が前記データのハッシュ関数値についてアクセス可能な第２のアドレス空間とを有し、
前記ＣＰＵは、前記メモリに対してアクセスを行う際に、前記第１のアドレス空間と前記第２のアドレス空間とを選択可能に構成されているという構成を有している。
【００１５】
これによれば、ＣＰＵがメモリにデータを書き込むという動作を行うだけで、同時にハッシュ関数値をメモリの別空間に書き込むことができる。すなわち、バス帯域の使用を軽減しながら、効率的にハッシュ関数値をメモリに書き込むことができる。
【００１６】
さらなる発展形として、次のように構成したデータ通信装置も有効である。すなわち、本発明によるデータ通信装置は、
通信インタフェースと、前記通信インタフェースにＣＰＵバスを介して接続されて通信を制御するＣＰＵと、データを蓄積するメモリと、データを暗号化または復号化する暗号器と、データをハッシュ変換するハッシュ関数器とを備え、
前記メモリは、そのアドレス空間について、前記ＣＰＵがデータを直接的にアクセス可能な第１のアドレス空間と、前記ＣＰＵがデータを前記暗号器および前記ハッシュ関数器を介して読み書き可能な第２のアドレス空間とを有し、
前記ＣＰＵは、前記メモリに対してアクセスを行う際に、前記第１のアドレス空間と前記第２のアドレス空間とを選択可能に構成されているという構成を有している。
【００１７】
これによれば、暗号化を行う場合、ＣＰＵがメモリにデータを書き込むという１回のデータコピー動作を行うだけで、暗号済のデータとハッシュ関数値をメモリ内に格納することができる。したがって、ＣＰＵバスのバス帯域の軽減と、暗号化およびハッシュ関数値生成の処理を軽減することができる。
【００１８】
また、上記において、さらに、前記ＣＰＵからの指示を受けて動作し、前記メモリに対するアクセスを前記ＣＰＵに代ってダイレクトに行うＤＭＡ（Direct Memory Access）回路を備えた構成も好ましい。
【００１９】
これによれば、ＣＰＵがＤＭＡ回路を使用してダイレクトアクセスを行うので、ＣＰＵのメモリに対するアクセスにかかる負担を軽減しつつ、ＣＰＵバスのデータ伝送頻度の軽減を図ることができる。
【発明の効果】
【００２０】
本発明によれば、データを暗号化または復号化するときにユニット間でＣＰＵバスを介してデータ移動する回数を低減し、ＣＰＵバスの占有時間を削減することにより、データ通信をＣＰＵバスの帯域の利用効率の高い状態で実現することができる。また、暗号化した後のデータをＣＰＵにて加工することも可能であり、暗号化方法に汎用性をもたせ、汎用性のあるデータ通信を実現できる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明にかかわるデータ通信装置（暗号データ通信器）の実施の形態を図面に基づいて詳細に説明する。
【００２２】
（実施の形態１）
図１は本発明の実施の形態１におけるデータ通信装置の概略構成を示すブロック図である。図１において、１１はＣＰＵバス、１２はデータの通信プロトコル処理と通信を制御するＣＰＵ、１３はデータを一時的に格納するメモリ、１４は外部機器との間でデータを送受信する通信インターフェイス、１５はデータに対して暗号化、復号化を行う暗号器である。ＣＰＵバス１１にＣＰＵ１２、通信インタフェース１４が接続されているとともに、暗号器１５を介してメモリ１３が接続されている。すなわち、暗号器１５はＣＰＵバス１１とメモリ１３の間に配置されている。暗号器１５において、メモリ１３に対する下位アドレスのラインがＣＰＵバス１１とメモリ１３との間で直接に接続され、メモリ１３に対する上位アドレスのラインがＣＰＵバス１１と暗号処理部１５ａを介してメモリ１３に接続されている。下位アドレスはＣＰＵ１２がデータを直接的に読み書き可能な第１のアドレス空間であり、上位アドレスはＣＰＵ１２がデータを暗号器１５を介して読み書き可能な第２のアドレス空間である。ＣＰＵ１２は、メモリ１３に対してデータの読み書きを行う際に、下位アドレスと上位アドレスとを選択可能に構成されている。すなわち、メモリ１３にデータを書き込む動作において、暗号器１５における暗号処理部１５ａを介さず暗号化しないで書き込んだり、暗号処理部１５ａを介して暗号化して書き込んだりできるようにし、多彩なメモリアクセス方式を実現する。
【００２３】
次に、上記のように構成された本実施の形態のデータ通信装置の動作を説明する。
【００２４】
＜送信動作の説明＞
まず、メモリ１３に格納されているデータを送信する際の動作について説明する。暗号化を要しない場合と、暗号化を要する場合とに分けて説明する。
【００２５】
メモリ１３に格納されている送信対象のデータが暗号化の必要のないデータである場合、ＣＰＵ１２は、メモリ１３が保有するアドレス空間の中で下位アドレスに位置するデータを読み出す。ＣＰＵ１２は、読み出したデータに対して通信プロトコル処理を行う段階で、メモリ１３をワークメモリとして使用する。そして、処理済のデータはメモリ１３に一時記憶されるが、その処理済のデータを通信インタフェース１４へ送り、通信インタフェース１４を介して外部へ送信する。この場合、暗号処理部１５ａを介さずにデータを外部へ送信することになる。
【００２６】
一方、メモリ１３に格納されている送信対象のデータが暗号化の必要のあるデータである場合、ＣＰＵ１２は、メモリ１３が保有するアドレス空間の中で上位アドレスに位置するデータを読み出す。ＣＰＵ１２は読み出したデータに対して通信プロトコル処理を行う段階で、暗号器１５における暗号処理部１５ａを介してデータを暗号化し、暗号済のデータを下位アドレスにおいてメモリ１３に書き込む。そして、メモリ１３から通信プロトコル処理が完了された暗号済のデータを下位アドレスにおいて読み出し、通信インタフェース１４へ送り、通信インタフェース１４を介して外部へ送信する。
【００２７】
メモリ１３から読み出したデータを暗号処理部１５ａに送り、暗号処理部１５ａで暗号化されたデータをメモリ１３に一時記憶させるにおいて、メモリ１３と暗号処理部１５ａとがＣＰＵバス１１を介することなく直接に接続されているため、ＣＰＵバス１１の占有の時間を大幅に軽減することができる。また、ＣＰＵ１２は、メモリ１３に記憶されている暗号済のデータを下位アドレスで読み出して加工することも可能である。
【００２８】
＜受信動作の説明＞
次に、受信の際の動作について説明する。復号化を要しない場合と、復号化を要する場合とに分けて説明する。
【００２９】
通信インタフェース１４を介して受信したデータが復号化を必要とするデータである場合は、ＣＰＵ１２はアドレス空間の上位アドレスにおいてデータを書き込む。この場合、暗号処理部１５ａによる復号化を介してデータをメモリ１３に書き込むことになる。
【００３０】
一方、受信するデータが復号化を必要としないデータである場合には、ＣＰＵ１２はアドレス空間の下位アドレスにおいてデータをメモリ１３に書き込む。この場合、暗号処理部１５ａによる復号化を介さずにデータを書き込むことになる。
【００３１】
図２に示すメモリマップを用いて具体的に説明する。
【００３２】
メモリ１３のアドレス空間は、暗号処理部１５ａを介してするアドレスである上位アドレスと、暗号処理部１５ａを介してさないアドレスである下位アドレスとからなり、アドレス空間上で同一である物理アドレスのメモリビット列を共有している。
【００３３】
ＣＰＵ１２は、メモリ１３において下位アドレスに位置するデータへアクセスする場合は、暗号処理部１５ａを介してさずデータを読み出したり、書き込んだりする。また、上位アドレスに位置するデータへアクセスする場合は、暗号処理部１５ａによる復号済のデータを読み出したり、暗号処理部１５ａによる暗号済のデータを書き込んだりする。
【００３４】
以上のように本実施の形態によれば、アドレスの切り替えだけで、暗号化、復号化などの処理を行うか否かを制御することが可能である。したがって、暗号化、復号化におけるＣＰＵバス１１のバス帯域の占有を軽減し、ＣＰＵ１２の負荷を軽減できる。アドレスの切り替えについては、ソフトウェア的に容易に実現できる。
【００３５】
また、下位アドレスと上位アドレスが物理的に共通した状態に構成されているため、ＣＰＵ１２がメモリ１３からデータを読み出す際に、メモリ中の同一のメモリビットに位置するデータを読み出すこととなる。そのため、メモリ容量の少ない構成であっても、ＣＰＵバス帯域を軽減した状態で暗号化通信を実現できる。
【００３６】
なお、上記では、暗号処理部１５ａを介してするときは上位アドレスにおいてアクセスし、暗号処理部１５ａを介してしないときは下位アドレスにおいてアクセスするというように説明したが、これに代えて、逆の関係としてもよい。すなわち、暗号処理部１５ａを介してするときは下位アドレスにおいてアクセスし、暗号処理部１５ａを介してしないときは上位アドレスにおいてアクセスするように構成してもよい。この場合、上位アドレスはＣＰＵ１２がデータを直接的に読み書き可能な第１のアドレス空間となり、下位アドレスはＣＰＵ１２がデータを暗号器１５を介して読み書き可能な第２のアドレス空間となる。
【００３７】
なお、全てのアドレスを上位アドレスと下位アドレスとの２つに区別する必要はなく、アドレス空間上で１つのメモリビットのアドレスを２種類以上のアドレスによって表現可能なように割り当てればよく、上記同様の効果が発揮される。要は、上位アドレスと下位アドレスとに分離する手法に限らず、アドレス空間を区別することが重要である。
【００３８】
（実施の形態２）
図３は本発明の実施の形態２におけるデータ通信装置の概略構成を示すブロック図である。ＣＰＵバス１１にＣＰＵ１２、通信インタフェース１４が接続されている。また、メモリ１３の下位アドレスのラインがＣＰＵバス１１に接続され、メモリ１３の上位アドレスのラインが暗号器１５に接続され、暗号器１５はＣＰＵバス１１に接続されている。ここでも、下位アドレスはＣＰＵ１２がデータを直接的に読み書き可能な第１のアドレス空間であり、上位アドレスはＣＰＵ１２がデータを暗号器１５を介して読み書き可能な第２のアドレス空間である。本実施の形態においては、ＣＰＵ１２が下位アドレスでメモリ１３にデータを書き込むと同時に、暗号器１５が上位アドレスで暗号済のデータを書き込むように構成されている。この場合、ＣＰＵ１２が書き込むアドレスと暗号器１５が書き込むアドレスとは物理空間的に異なっている。
【００３９】
次に、上記のように構成された本実施の形態のデータ通信装置の動作を説明する。
【００４０】
図４は本実施の形態におけるメモリ１３のメモリマップを示す。メモリ１３におけるアドレス空間は、その下位アドレスが非暗号化領域とされ、上位アドレスが暗号化領域とされている。すなわち、物理的に非暗号化領域と暗号化領域に分離されている。
【００４１】
一般的に、暗号方式は、一度暗号化されたデータを同じ鍵で再度暗号化処理すると、暗号化データが復号されるという特性を持つ。本実施の形態においても同様に、ＣＰＵ１２が暗号済のデータをメモリ１３の上位アドレスに書き込むと、下位アドレスに復号化されたデータが自動的に書き込まれる。すなわち、ＣＰＵ１２が書き込み動作を行うことで、暗号化と復号化が同時に行われる。
【００４２】
読み出し動作については、ＣＰＵ１２が暗号済のデータを読み出す際に、メモリ１３のアドレス空間の暗号化領域にアクセスすることで、暗号済のデータを読み出すことが可能である。
【００４３】
また、暗号化前のデータが不要な場合は、データを直接にメモリ１３のアドレス空間の上位アドレスの暗号化領域に暗号済のデータを書き込む。このときは、下位アドレスの非暗号化領域には何のデータも書き込まれない。これにより、メモリ使用の効率化を図ることができる。
【００４４】
また、暗号済データと暗号未データとが物理的な別アドレス空間に格納されていることから、暗号未データに対して暗号化および復号化処理を行う場合に、再度の復号化を行う必要はない。また、メモリ１３のアドレス空間のサイズが実施の形態１の場合と比べて２倍必要となる反面、暗号済データと暗号未データと効率的に読み出すことができる。したがって、外付けメモリなどの容量が大きいメモリを利用する場合に特に有効である。
【００４５】
（実施の形態３）
図５は本発明の実施の形態３におけるデータ通信装置の概略構成を示すブロック図である。ＣＰＵバス１１にＣＰＵ１２、通信インタフェース１４が接続されている。また、メモリ１３の下位アドレスのラインがＣＰＵバス１１に接続され、メモリ１３の上位アドレスのラインがデータのハッシュ変換を行うハッシュ関数器１６に接続され、ハッシュ関数器１６はＣＰＵバス１１に接続されている。これは、図３に示す実施の形態２において、その暗号器１５をハッシュ関数器１６に置き換えたものに相当する。ここでも、下位アドレスはＣＰＵ１２がデータを直接的に読み書き可能な第１のアドレス空間であり、上位アドレスはハッシュ関数器１６がハッシュ関数演算の結果のハッシュ関数値を書き込み可能な第２のアドレス空間である。本実施の形態においては、ＣＰＵ１２が下位アドレスでメモリ１３にデータを書き込むと同時に、ハッシュ関数器１６が上位アドレスでそのデータに対するハッシュ関数演算の結果のハッシュ関数値を書き込むように構成されている。この場合、ＣＰＵ１２が書き込むアドレスとハッシュ関数器１６が書き込むアドレスとは物理空間的に異なっている。
【００４６】
次に、上記のように構成された本実施の形態のデータ通信装置の動作を説明する。
【００４７】
ＣＰＵ１２は、これからハッシュ関数演算を行うデータのデータ量をハッシュ関数器１６に通知する。ハッシュ関数器１６は、そのデータのハッシュ関数演算を行う。ＣＰＵ１２は所定のデータ量を下位アドレスでメモリ１３に書き込み、ハッシュ関数器１６はハッシュ関数演算の結果のハッシュ関数値を上位アドレスでメモリ１３に書き込む。
【００４８】
図６はこの方式を実現するメモリ１３のメモリマップの１例を示す。
【００４９】
この例では、アドレス０２Ｆ４から０６ＦＡに書き込まれたデータについて、ハッシュ関数器１６によるハッシュ関数演算が行われた結果のハッシュ関数値（ハッシュデータ）がアドレス１０２Ｆ４からの領域に書き込まれている。
【００５０】
アドレスの配分についての具体的な設定は、実用の段階でそれぞれのシステムに合わせて適当な分配にする。例えばＥｔｈｅｒｎｅｔ（登録商標）の場合、送受信データのサイズは最大で１５００バイトであるのに対し、ハッシュ関数演算が可能なデータサイズは通常１６０ビット程度である（ＳＨＡ−１）。よって、実データを書き込む空間とハッシュ関数値を書き込む空間とのデータサイズの比率は、７５：１程度が適当である（１５００×８÷１６０＝７５）。しかし、システム的にある程度大きなワークメモリ領域が必要な場合、このアドレス空間の分配比を変更し、１５０：１程度にすることで、アドレス空間をさらに有効に使用することが可能である。
【００５１】
本実施の形態によれば、ＣＰＵ１２がメモリ１３にデータを書き込むという動作を行うだけで、同時にハッシュ関数値をメモリ１３の別空間に書き込むことができる。すなわち、バス帯域の使用を軽減しながら、効率的にハッシュ関数値をメモリ１３に書き込むことができる。
【００５２】
（実施の形態４）
図７は本発明の実施の形態４におけるデータ通信装置の概略構成を示すブロック図である。ＣＰＵバス１１にＣＰＵ１２、通信インタフェース１４が接続されているとともに、暗号器１５を介してメモリ１３が接続され、また、ハッシュ関数器１６を介してメモリ１３が接続されている。暗号器１５において、メモリ１３に対する下位アドレスのラインがＣＰＵバス１１とメモリ１３との間で直接に接続され、メモリ１３に対する上位アドレスのラインがＣＰＵバス１１と暗号処理部１５ａを介してメモリ１３に接続されている。また、ハッシュ関数器１６において、メモリ１３に対する上位アドレスのラインがＣＰＵバス１１とメモリ１３のハッシュ関数値領域アドレス１３ａとの間で接続されている。ＣＰＵ１２は、メモリ１３に対してデータの読み書きを行う際に、下位アドレスと上位アドレスとを選択可能に構成されている。
【００５３】
次に、上記のように構成された本実施の形態のデータ通信装置の動作を説明する。
【００５４】
メモリ１３に格納されている送信対象のデータが暗号化の必要のあるデータである場合、ＣＰＵ１２は暗号化が必要な通信プロトコル処理をしている段階で、上位アドレスにおいて暗号器１５における暗号処理部１５ａを介してメモリ１３へ通信データを書き込む。ＣＰＵ１２は、データを暗号化した後、暗号済のデータをメモリ１３へ書き込む。このとき、ハッシュ関数器１６は、暗号化にかかわるデータのハッシュ関数値を計算し、メモリ１３のハッシュ関数値領域アドレス１３ａにハッシュ関数値を書き込む。
【００５５】
図８は本実施の形態におけるメモリ１３のメモリマップを示す。この例では、暗号処理部１５ａを介してデータの読み書き可能なアドレス空間は１００００番地から１ＡＦＦＦ番地までである。また、暗号処理部１５ａを介してさずにデータを読み書き可能なアドレス空間は、００００番地からＦＦＦＦ番地までである。そのうち、Ｂ０００番地からＦＦＦＦ番地まではハッシュ関数値を格納するアドレス空間に割り当てられる。このハッシュ関数値のアドレス空間は、暗号処理部１５ａを介してデータを読み書きできない。このアドレス空間の制限は、誤ってハッシュ関数値に上書きして別のデータを書き込んでしまったり、ハッシュ関数値を暗号処理して読み出したりしないようにするためである。
【００５６】
アドレス空間の００００番地からＡＦＦＦ番地までと１００００番地から１ＡＦＦＦ番地までは、同じ物理メモリを共有する構成となっている。よって、アドレス００００番地とアドレス１００００番地とは同一のメモリビットをアクセスすることになる。
【００５７】
なお、本発明は、このアドレス空間の設定に限定されるものではなく、アドレス空間は任意に設定可能である。
【００５８】
このように本実施の形態によれば、暗号化を行う場合、ＣＰＵ１２がメモリ１３にデータを書き込むという１回のデータコピー動作を行うだけで、暗号済のデータとハッシュ関数値をメモリ１３に格納することができる。したがって、ＣＰＵバス１１のバス帯域の軽減と、暗号化とハッシュ関数値の生成の処理を軽減することができる。
【００５９】
（実施の形態５）
図９は本発明の実施の形態５におけるデータ通信装置の概略構成を示すブロック図である。本実施の形態は、実施の形態１の図１においてＤＭＡ（Direct Memory Access）回路１７を追加したものに相当する。ＤＭＡ回路１７は、メモリ１３に対するアクセスをＣＰＵ１２に代ってダイレクトに行うものである。なお、メモリ１３のメモリマップは、実施の形態１の図２と同様のものである。
【００６０】
ＣＰＵ１２は、メモリ１３に対してアクセスを行うときは、ＤＭＡ回路１７に対してメモリ１３へのダイレクトアクセスを指示する。ＤＭＡ回路１７は、ＣＰＵ１２からの指示に従ってメモリ１３に対するアクセスをダイレクトに実行する。暗号器１５における暗号処理部１５ａを動作させるときは、ＤＭＡ回路１７がダイレクトに暗号処理部１５ａを制御する。その他の動作については、実施の形態１と同様であるので説明を省略する。
【００６１】
本実施の形態によれば、ＣＰＵ１２がＤＭＡ回路１７を使用して暗号処理部１５ａに対するダイレクトアクセスを行うので、ＣＰＵ１２のメモリ１３に対するアクセス負担を軽減しつつ、ＣＰＵバス１１のデータ伝送頻度の軽減を図ることができる。
【００６２】
（実施の形態６）
図１０は本発明の実施の形態６におけるデータ通信装置の概略構成を示すブロック図である。本実施の形態は、実施の形態３の図５においてＤＭＡ回路１７を追加したものに相当する。図５において説明したＣＰＵ１２によるデータ伝送動作をＤＭＡ回路１７が行うことにより、ＣＰＵ１２のメモリアクセスに要する処理負担を軽減した構成である。なお、メモリ１３のメモリマップは、実施の形態３の図６と同様のものである。アドレス空間の分配比もシステムに合わせて設定することにより、アドレス空間を有効に利用することが可能である。
【００６３】
ＣＰＵ１２は、メモリ１３に対してアクセスを行うときは、ＤＭＡ回路１７に対してメモリ１３へのダイレクトアクセスを指示する。ＤＭＡ回路１７は、ＣＰＵ１２からの指示に従ってメモリ１３に対するアクセスをダイレクトに実行する。ハッシュ関数器１６を動作させるときは、ＤＭＡ回路１７がダイレクトにハッシュ関数器１６を制御する。その他の動作については、実施の形態３と同様であるので説明を省略する。
【００６４】
本実施の形態によれば、ＣＰＵ１２がＤＭＡ回路１７を使用してハッシュ関数器１６に対するダイレクトアクセスを行うので、ＣＰＵ１２のメモリ１３に対するアクセス負担を軽減しつつ、ＣＰＵバス１１のデータ伝送頻度の軽減を図ることができる。
【産業上の利用可能性】
【００６５】
本発明のデータ通信装置は、通信データの暗号、復号を行う際に、ＣＰＵバスの帯域使用効率を上げる機能を備えるため、通信時にデータを暗号化する通信機器用ＬＳＩ等に有用である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態１におけるデータ通信装置の概略構成を示すブロック図
【図２】本発明の実施の形態１におけるデータ通信装置のメモリマップ
【図３】本発明の実施の形態２におけるデータ通信装置の概略構成を示すブロック図
【図４】本発明の実施の形態２におけるデータ通信装置のメモリマップ
【図５】本発明の実施の形態３におけるデータ通信装置の概略構成を示すブロック図
【図６】本発明の実施の形態３におけるデータ通信装置のメモリマップ
【図７】本発明の実施の形態４におけるデータ通信装置の概略構成を示すブロック図
【図８】本発明の実施の形態４におけるデータ通信装置のメモリマップ
【図９】本発明の実施の形態５におけるデータ通信装置の概略構成を示すブロック図
【図１０】本発明の実施の形態６におけるデータ通信装置の概略構成を示すブロック図
【図１１】従来の技術におけるデータ通信装置の概略構成を示すブロック図
【符号の説明】
【００６７】
１１  ＣＰＵバス
１２  ＣＰＵ
１３  メモリ
１３ａ  ハッシュ値領域アドレス
１４  通信インタフェース
１５  暗号器
１５ａ  暗号処理部
１６  ハッシュ関数器
１７  ＤＭＡ回路
【図１】
2007028382.tif 000003
【図２】
2007028382.tif 000004
【図３】
2007028382.tif 000005
【図４】
2007028382.tif 000006
【図５】
2007028382.tif 000007
【図６】
2007028382.tif 000008
【図７】
2007028382.tif 000009
【図８】
2007028382.tif 000010
【図９】
2007028382.tif 000011
【図１０】
2007028382.tif 000012
【図１１】
2007028382.tif 000013