(57)【特許請求の範囲】
【請求項１】
無線通信装置に備えられ、無線通信する平文を暗号化する暗号化装置において、
乱数列を生成するために用いる制御信号であって、平文の長さと通信毎に異なる暗号鍵とを含む制御信号と、平文とを入力して出力する中央処理装置と、
上記中央処理装置から制御信号を入力し、制御信号に含まれる暗号鍵に基づいて、乱数列の長さが制御信号に含まれる平文の長さになるまで、所定長の乱数列を順次生成する暗号化器と、
上記暗号化器により生成された所定長の乱数列を順次記憶する乱数列記憶部と、
上記中央処理装置から平文を入力し、入力した平文と上記乱数列記憶部に順次記憶された所定長の乱数列とを演算して暗号文を中央処理装置に出力する演算部とを備え、
上記中央処理装置は、制御信号を平文よりも先に出力し、
上記暗号化器は、上記演算部の平文の入力より前に所定長の乱数列の生成を開始し、
上記中央処理装置は、
上記暗号化器による所定長の乱数列の生成と上記乱数列記憶部による所定長の乱数列の記憶とを先に開始させ、
上記乱数列記憶部に記憶された所定長の乱数列の合計の長さが平文の長さ以上になる前に、上記演算部による平文と上記乱数列記憶部に記憶された所定長の乱数列との演算を開始させることを特徴とする暗号化装置。
【請求項２】
無線通信装置に備えられ、無線通信された暗号文を復号化する復号化装置において、
乱数列を生成するために用いる制御信号であって、暗号文の長さと通信毎に異なる暗号鍵とを含む制御信号と、暗号文とを入力して出力する中央処理装置と、
上記中央処理装置から制御信号を入力し、制御信号に含まれる暗号鍵に基づいて、乱数列の長さが制御信号に含まれる暗号文の長さになるまで、所定長の乱数列を順次生成する復号化器と、
上記復号化器により生成された所定長の乱数列を順次記憶する乱数列記憶部と、
上記中央処理装置から暗号文を入力し、入力した暗号文と上記乱数列記憶部に順次記憶された所定長の乱数列とを演算して平文を中央処理装置に出力する演算部とを備え、
上記中央処理装置は、制御信号を暗号文よりも先に出力し、
上記復号化器は、上記演算部の暗号文の入力より前に所定長の乱数列の生成を開始し、
上記中央処理装置は、
上記復号化器による所定長の乱数列の生成と上記乱数列記憶部による所定長の乱数列の記憶とを先に開始させ、
上記乱数列記憶部に記憶された所定長の乱数列の合計の長さが暗号文の長さ以上になる前に、上記演算部による暗号文と上記乱数列記憶部に記憶された所定長の乱数列との演算を開始させることを特徴とする復号化装置。
【請求項３】
データを入力する端末インタフェース部と、
端末インタフェース部が入力したデータを入力し、プロトコルに基づいてデータを処理して出力する無線通信制御部と、
無線通信制御部から、データの長さと通信毎に異なる暗号鍵とを含む制御信号とデータとを入力し、入力した制御信号に基づいて、入力したデータに対してデータを暗号化する秘匿処理を行い、処理したデータを無線通信制御部へ出力する秘匿処理部と、
無線通信制御部から出力されたデータを入力して変調し送信する無線通信部とを備え、
上記無線通信制御部は、制御信号をデータよりも先に出力し、
上記秘匿処理部は、
データを暗号化する乱数列を生成して出力する暗号化器であって、制御信号を入力し、制御信号に含まれる暗号鍵に基づいて、乱数列の長さが制御信号に含まれるデータの長さになるまで、所定長の乱数列を順次生成して出力する暗号化器と、
暗号化器から出力される所定長の乱数列を順次記憶する乱数列記憶部と、
データを入力し、入力したデータと上記乱数列記憶部に順次記憶された所定長の乱数列とを演算してデータを暗号化する演算部と
を有し、
無線通信制御部は、
上記暗号化器による所定長の乱数列の生成と上記乱数列記憶部による所定長の乱数列の記憶とを先に開始させ、
上記乱数列記憶部に記憶された所定長の乱数列の合計の長さがデータの長さ以上になる前に、上記演算部によるデータと上記乱数列記憶部に記憶された所定長の乱数列との演算を開始させることを特徴とする無線通信装置。
【請求項４】
データを受信して復調する無線通信部と、
無線通信部により復調されたデータを入力して、プロトコルに基づいてデータを処理して出力する無線通信制御部と、
無線通信制御部から、データの長さと通信毎に異なる暗号鍵とを含む制御信号とデータとを入力し、入力した制御信号に基づいて、入力したデータに対してデータを復号化する秘匿処理を行い、処理したデータを無線通信制御部へ出力する秘匿処理部と、
無線通信制御部により処理されたデータを入力して出力する端末インタフェース部と
を備え、
上記無線通信制御部は、制御信号をデータよりも先に出力し、
上記秘匿処理部は、
入力したデータを復号化する乱数列を生成して出力する復号化器であって、制御信号を入力し、制御信号に含まれる暗号鍵に基づいて、乱数列の長さが制御信号に含まれるデータの長さになるまで、所定長の乱数列を順次生成して出力する復号化器と、
復号化器から出力される所定長の乱数列を順次記憶する乱数列記憶部と、
データを入力し、入力したデータと上記乱数列記憶部に順次記憶された所定長の乱数列とを演算してデータを復号化する演算部と
を有し、
無線通信制御部は、
上記復号化器による所定長の乱数列の生成と上記乱数列記憶部による所定長の乱数列の記憶とを先に開始させ、
上記乱数列記憶部に記憶された所定長の乱数列の合計の長さがデータの長さ以上になる前に、上記演算部によるデータと上記乱数列記憶部に記憶された所定長の乱数列との演算を開始させることを特徴とする無線通信装置。
【発明の詳細な説明】
技術分野
この発明は、携帯電話機等の暗号化装置及び復号化装置及び完全性認証子生成装置及び完全性認証子付加装置及び完全性確認装置及び無線通信装置に関するものである。特に、データの秘匿処理と完全性保証処理に関するものである。
背景技術
図２４は、従来の携帯電話機５００を示す図である。
従来の携帯電話機５００には、端末ＩＦ（インタフェース）部５１０と無線通信制御部５２０と無線通信部５３０が備えられている。端末ＩＦ部５１０は、携帯電話機５００のユーザとのインタフェースを行う部分である。無線通信制御部５２０は、携帯電話機５００全体の通信制御とプロトコルに基づくデータの変換とデータ処理とを行う部分である。無線通信部５３０は、データを変調復調し、無線通信可能とする部分である。無線通信部５３０は、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ）で定義されている７階層のレイヤの内、最下層である物理レイヤ（レイヤ１）をサポートしている部分である。無線通信部５３０には、秘匿処理部５４０が設けられている。秘匿処理部５４０は、無線通信部５３０で取り扱われる物理レイヤのデータに対して暗号化処理、或いは、復号化処理を行う部分である。秘匿処理部５４０を設けることによりアンテナ５４１で送受信されるデータを盗聴しても暗号化されているので、解読されない限りにおいて盗聴者が有意な情報を得ることはできないこととなる。
従来の携帯電話機５００は、秘匿処理部５４０を無線通信部５３０の内部に有している。このため、秘匿処理部５４０が秘匿対象とするデータは、物理レイヤ（レイヤ１）のデータである。物理レイヤでは、そのデータがユーザデータであるか制御データであるかは特定できない。携帯電話機により送受信されるデータの中には、各種ユーザデータ及びシグナリングデータなどいろいろな種類があり、そのデータの種類に応じて秘匿処理を行ったり、或いは、そのデータの重要性に応じてデータの完全性を保証したりする必要がある。従来の構成のように、秘匿処理部５４０がレイヤ１に設けられていたのでは、レイヤ１においてはデータの種別が区別できないため、データの種別に応じて秘匿処理や完全性の保証をするということができなかった。
また、従来の秘匿処理は、データの入力に同期させて乱数列を発生させ、データの入力に同期させてデータと乱数列との排他的論理和演算を行っていた。
また、従来の完全性保証処理は、各データ毎に完全性認証子を生成したり、各データ毎にデータの完全性をチェックしていた。
この発明の好適な実施の形態では、秘匿処理と完全性保証処理が高速に行えるようにすることを目的とする。
また、この発明の好適な実施の形態では、ＯＳＩの７つの階層の内、レイヤ２（データリンク層）以上の上位レイヤにおいて秘匿処理と完全性保証処理が行えるようにすることを目的とする。
また、この発明の好適な実施の形態では、秘匿処理と完全性保証処理とが中央処理装置とバスに負荷をかけることなく行えるようにすることを目的とする。
発明の開示
この発明に係る暗号化装置は、乱数列を生成する暗号化器と、
上記暗号化器により生成された乱数列を記憶する乱数列記憶部と、
平文を入力し、入力した平文と上記乱数列記憶部に記憶された乱数列とを演算して暗号文を出力する演算部とを備え、
上記乱数列記憶部により乱数列をあらかじめ記憶することにより、上記暗号化器による乱数列の生成と、上記演算部による平文と乱数列との演算とを非同期に行うことを特徴とする。
上記暗号化器は、上記演算部の平文の入力より前に乱数列の生成を開始することを特徴とする。
上記暗号化器は、少なくとも暗号鍵と平文の長さとを入力し、暗号鍵を用いて平文の長さの乱数列を生成して生成した乱数列を上記乱数列記憶部の記憶させ、
上記乱数列記憶部は、演算部に平文が入力された場合に、記憶した乱数列を出力するバッファを有することを特徴とする。
上記演算部は、複数のチャネルに対応して、平文を入力し、
上記暗号化器は、チャネルを識別するチャネル識別情報を入力して、チャネル毎に乱数列を生成し、
上記乱数列記憶部は、上記暗号化器がチャネル毎に生成した乱数列を記憶し、
上記演算部は、平文を入力したチャネルに対応する乱数列を上記乱数列記憶部から入力して、平文を暗号化することを特徴とする。
この発明に係る復号化装置は、乱数列を生成する復号化器と、
上記復号化器により生成された乱数列を記憶する乱数列記憶部と、
暗号文を入力し、入力した暗号文と上記乱数列記憶部に記憶された乱数列とを演算して平文を出力する演算部とを備え、
上記乱数列記憶部により乱数列をあらかじめ記憶することにより、上記復号化器による乱数列の生成と、上記演算部による暗号文と乱数列との演算とを非同期に行うことを特徴とする。
上記復号化器は、上記演算部の暗号文の入力より前に乱数列の生成を開始することを特徴とする。
上記復号化器は、少なくとも復号鍵と暗号文の長さとを入力し、復号鍵を用いて暗号文の長さの乱数列を生成して生成した乱数列を上記乱数列記憶部の記憶させ、
上記乱数列記憶部は、演算部に暗号文が入力された場合に、記憶した乱数列を出力するバッファを有することを特徴とする。
上記演算部は、複数のチャネルに対応して、暗号文を入力し、
上記復号化器は、チャネルを識別するチャネル識別情報を入力して、チャネル毎に乱数列を生成し、
上記乱数列記憶部は、上記復号化器がチャネル毎に生成した乱数列を記憶し、
上記演算部は、暗号文を入力したチャネルに対応する乱数列を上記乱数列記憶部から入力して、暗号文を復号化することを特徴とする。
この発明に係る完全性認証子生成装置は、Ｘ（Ｘ≧２）個のデータとＸ個の制御信号データとを入力して記憶するデータ記憶部と、
上記データ記憶部が記憶したＸ個のデータとＸ個の制御信号データとを入力して、Ｘ個のデータに対するＸ個の完全性認証子を生成し、Ｘ個の完全性認証子をまとめて出力する完全性認証子生成器とを備えたことを特徴とする。
上記完全性認証子生成装置は、バスを介して、中央処理装置と接続され、
上記データ記憶部は、Ｘ個のデータとＸ個の制御信号データとをバスを介して中央処理装置からまとめて入力し、
上記完全性認証子生成器は、生成したＸ個の完全性認証子をバスを介して中央処理装置へまとめて出力することを特徴とする。
この発明に係る完全性認証子付加装置は、Ｘ（Ｘ≧２）個のデータとＸ個の制御信号データとを入力して記憶するデータ記憶部と、
上記データ記憶部が記憶したＸ個のデータとＸ個の制御信号データとを入力して、Ｘ個のデータに対するＸ個の完全性認証子を生成し、Ｘ個の完全性認証子をまとめて出力する完全性認証子生成器と、
上記完全性認証子生成器がまとめて出力したＸ個の完全性認証子を入力し、Ｘ個の完全性認証子をＸ個のデータに付加し、Ｘ個の完全性認証子が付加されたＸ個のデータを出力する完全性認証子付加器とを備えたことを特徴とする。
この発明に係る完全性確認装置は、Ｘ（Ｘ≧２）個の完全性認証子が付加されたＸ個のデータとＸ個の制御信号データとを入力して記憶するデータ記憶部と、
上記データ記憶部が記憶したＸ個のデータとＸ個の制御信号データとを入力して、Ｘ個のデータに対するＸ個の完全性認証子を生成し、Ｘ個の完全性認証子をまとめて出力する完全性認証子生成器と、
上記完全性認証子生成器がまとめて出力したＸ個の完全性認証子を入力し、入力したＸ個の完全性認証子と上記Ｘ個のデータに付加されたＸ個の完全性認証子とをそれぞれ比較して、Ｘ個のデータの完全性を確認する完全性確認器とを備えたことを特徴とする。
この発明に係る無線通信装置は、データを入力する端末インタフェース部と、
端末インタフェース部が入力したデータを入力し、プロトコルに基づいてデータを処理して出力する無線通信制御部と、
無線通信制御部から制御信号とデータとを入力し、入力した制御信号に基づいて、入力したデータに対してデータを暗号化する秘匿処理を行い、処理したデータを無線通信制御部へ出力する秘匿処理部と、
無線通信制御部から出力されたデータを入力して変調し送信する無線通信部とを備え、
上記秘匿処理部は、
データを暗号化する乱数列の生成をデータの入力前に開始して生成した乱数列を出力する暗号化器と、
暗号化器から出力される乱数列をデータの入力前に一時的に格納する乱数列記憶部と、
データを入力し、入力したデータと上記乱数列記憶部に記憶された乱数列とを演算してデータを暗号化する演算部とを有することを特徴とする。
この発明に係る無線通信装置は、データを入力する端末インタフェース部と、
端末インタフェース部が入力したデータを入力し、プロトコルに基づいてデータを処理して出力する無線通信制御部と、
無線通信制御部から制御信号とデータとを入力し、入力した制御信号に基づいて、入力したデータに対してデータの改竄を検出するための完全性認証子を生成する完全性保証処理を行い、処理したデータを無線通信制御部へ出力する完全性保証処理部と、
無線通信制御部から出力されたデータを入力して変調し送信する無線通信部とを備え、
上記完全性保証処理部は、
無線通信制御部から制御信号とデータとを複数まとめて入力し、一時的に格納するデータ記憶部と、
データ記憶部が記憶した複数のデータに対して制御信号を用いて完全性認証子を生成して複数の完全性認証子をまとめて出力する完全性認証子生成器とを有することを特徴とする。
この発明に係る無線通信装置は、データを受信して復調する無線通信部と、
無線通信部により復調されたデータを入力して、プロトコルに基づいてデータを処理して出力する無線通信制御部と、
無線通信制御部から制御信号とデータとを入力し、入力した制御信号に基づいて、入力したデータに対してデータを復号化する秘匿処理を行い、処理したデータを無線通信制御部へ出力する秘匿処理部と、
無線通信制御部により処理されたデータを入力して出力する端末インタフェース部とを備え、
上記秘匿処理部は、
入力したデータを復号化する乱数列をデータの入力前に生成して出力する復号化器と、
復号化器から出力される乱数列をデータの入力前に一時的に格納する乱数列記憶部と、
データを入力し、入力したデータと上記乱数列記憶部に記憶された乱数列とを演算して平文を出力する演算部とを有することを特徴とする。
この発明に係る無線通信装置は、データを受信して復調する無線通信部と、
無線通信部により復調されたデータを入力して、プロトコルに基づいてデータを処理して出力する無線通信制御部と、
無線通信制御部から制御信号とデータとを入力し、入力した制御信号に基づいて、入力したデータに対してデータの改竄を検証する完全性保証処理を行い、処理したデータを無線通信制御部へ出力する完全性保証処理部と、
無線通信制御部により処理されたデータを入力して出力する端末インタフェース部とを備え、
上記完全性保証処理部は、
無線通信制御部から制御信号とデータとを複数まとめて入力し、一時的に格納するデータ記憶部と、
データ記憶部が記憶した複数のデータに対して制御信号を用いて完全性認証子を生成して複数の完全性認証子をまとめて出力する完全性認証子生成器とを有することを特徴とする。
この発明に係る暗号化方法は、平文を入力する前に乱数列の生成を開始し、生成した乱数列を予め乱数列記憶部に記憶し、
乱数列の生成の開始後に、平文を入力し、入力した平文と上記乱数列記憶部に予め記憶した乱数列とを演算して暗号文を出力することを特徴とする。
この発明に係る復号化方法は、暗号文を入力する前に乱数列の生成を開始し、生成した乱数列を予め乱数列記憶部に記憶し、
乱数列の生成の開始後に、暗号文を入力し、入力した暗号文と上記乱数列記憶部に予め記憶した乱数列とを演算して平文を出力することを特徴とする。
この発明に係る完全性認証子生成方法は、Ｘ（Ｘ≧２）個のデータとＸ個の制御信号データとを入力してデータ記憶部に記憶し、
上記データ記憶部が記憶したＸ個のデータとＸ個の制御信号データとを入力して、Ｘ個のデータに対するＸ個の完全性認証子を生成し、Ｘ個の完全性認証子をまとめて出力することを特徴とする。
発明を実施するための最良の形態
実施の形態１．
図１は、この実施の形態の移動体通信システムの全体構成図である。
無線端末（ＭＳ）１００は、この発明の無線通信装置の一例である。無線端末（ＭＳ）１００は、例えば、携帯電話機である。無線端末（ＭＳ）１００は、無線で無線基地局（ＢＴＳ）１１０と接続される。無線基地局（ＢＴＳ）１１０は、無線制御局（ＲＮＣ）１２０と接続される。無線制御局（ＲＮＣ）１２０は、他の無線制御局（ＲＮＣ）１２０と接続される。また、無線制御局（ＲＮＣ）１２０は、コアネットワーク（ＣＮ）１３０に接続され、コアネットワーク（ＣＮ）１３０を介して他の無線制御局（ＲＮＣ）１２０と接続される。無線基地局（ＢＴＳ）１１０と無線制御局（ＲＮＣ）１２０とのいずれか又は両方は、無線局とも呼ばれる。
図２は、図１と同じ移動体通信システムの構成図である。特に、無線制御局（ＲＮＣ）１２０の内部の構成を示している。
ＢＴＳ  ＩＦ部１２１は、無線基地局（ＢＴＳ）１１０を接続する。ハンドオーバ制御部１２２は、無線基地局（ＢＴＳ）１１０間を無線端末（ＭＳ）１００が移動する場合のハンドオーバを制御する。
対ＭＳ信号制御部１２３は、無線端末（ＭＳ）１００との間での無線通信制御及びデータの秘匿処理／完全性保証処理を行う。以下に述べる無線端末（ＭＳ）１００の秘匿処理及び完全性保証処理は、対ＭＳ信号制御部１２３の秘匿処理及び完全性保証処理に対応して行われるものである。即ち、無線端末（ＭＳ）１００において暗号化されたデータは、対ＭＳ信号制御部１２３において復号化される。逆に、対ＭＳ信号制御部１２３で暗号化されたデータは、無線端末（ＭＳ）１００において復号化される。また、無線端末（ＭＳ）１００においてデータの完全性を保証するために付加された認証子は、対ＭＳ信号制御部１２３において検証される。逆に、対ＭＳ信号制御部１２３においてデータの完全性を保証するために付加された認証子は、無線端末（ＭＳ）１００において検証される。この無線端末（ＭＳ）１００と対ＭＳ信号制御部１２３におけるデータの秘匿処理及びデータの完全性保証処理は、ＯＳＩの７つの階層の内の２番目のレイヤ、即ち、レイヤ２（データリンク層）で行われる。ＣＮ  ＩＦ部１２４は、コアネットワーク（ＣＮ）１３０とのインタフェースをとる。
ＲＮＣ  ＩＦ部１２５は、他の無線制御局（ＲＮＣ）１２０とのインタフェースをとる。対ＣＮ信号制御部１２６は、コアネットワーク（ＣＮ）１３０との間での制御を行う。対ＲＮＣ信号制御部１２７は、他の無線制御局（ＲＮＣ）１２０との間で制御を行う。制御部１２８は、無線制御局（ＲＮＣ）１２０全体を制御する。スイッチ１２９は、制御部１２８の制御に基づいて、無線基地局（ＢＴＳ）１１０と無線制御局（ＲＮＣ）１２０とコアネットワーク（ＣＮ）１３０との間で制御信号並びにパケットデータをスイッチングする。即ち、スイッチ１２９は、パケットデータだけでなく、音声等を含む全てのデータをスイッチするとともに、制御信号もスイッチする。
図３は、無線端末（ＭＳ）１００の構成図である。
無線端末（ＭＳ）１００は、端末ＩＦ部１０と無線通信制御部２０と無線通信部３０と秘匿・完全性保証処理部４０を有している。端末ＩＦ部１０は、カメラ１とビデオ２とＢ／Ｔ（Ｂｌｕｅ  Ｔｏｏｔｈ）３とＬＣＤ４とＫＥＹ５とＬＥＤ６とＵＳＩＭ（Ｕｎｉｖｅｒｓａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）７とＲＥＣＥＩＶＥＲ８とＭＩＣ９とＨＳＪ（Ｈｅａｄ  Ｓｅｔ  Ｊａｃｋ）０とを接続している。これらのカメラ１からＨＳＪ０は、ユーザ（人間）もしくは接続の対象となる機器とのインタフェースのための処理を行い、ユーザ（人間）もしくは接続の対象となる機器が認識できる情報を入力又は出力するものである。
端末ＩＦ部１０は、内部に各モジュールＩＦ部１１とデータフォーマット変換部１２と端末ＩＦ制御部１３と音声符号化／復号化部１４を有している。各モジュールＩＦ部１１は、カメラ１からＨＳＪ０との各インタフェースをとる。データフォーマット変換部１２は、カメラ１からＨＳＪ０で取り扱う各データフォーマットと無線端末（ＭＳ）１００内部で取り扱う各データフォーマットとの間での変換を行う。端末ＩＦ制御部１３は、端末ＩＦ部１０の動作を制御する。音声符号化／復号化部１４は、ＭＩＣ９から入力された音声電気信号を音声符号化する。また、音声符号化／復号化部１４は、音声符号化された信号を復号してＲＥＣＥＩＶＥＲ８に対して音声電気信号を出力する。
無線通信制御部２０は、無線端末（ＭＳ）１００の全体制御を行う。無線通信制御部２０には、ＣＰＵ、ＲＯＭ、ＲＡＭ、ファームウェア等からなるハードウェア回路、成いは、ソフトウェアモジュールが備えられている。無線通信制御部２０は、端末ＩＦ部１０と無線通信部３０との間でデータを処理するものであり、規格或いはプロトコルにより定められた規則に基づいてデータの変換処理を行う。特に、レイヤ２以上の処理を行う。例えば、データのパケット化やデータの連結等を行う。無線通信制御部２０は、レイヤ２以上のデータを取り扱うため、データの種別を判断することができる。そして、データの種別に応じて、そのデータが秘匿処理されるべきデータであるか、又は、完全性保証処理されるべきデータであるかを判断することができる。レイヤ１のデータでは、データの種別を判断できないため、そのデータが秘匿処理されるべきデータであるか、又は、完全性保証処理されるべきデータであるかを判断することができない。
無線通信部３０は、通信路符号化部３１０とベースバンド変復調部３２０と無線部３３０とアンテナ３４を備えている。通信路符号化部３１０は、各通信路用の符号化部と復号化部を有している。符号化部として、誤り検出符号化部３１１と誤り訂正符号化部３１２と物理フォーマット変換部３１３を有している。また、復号化部として物理フォーマット変換部３１４、誤り訂正復号化部３１５、誤り検出部３１６を有している。ベースバンド変復調部３２０は、帯域の変調及び復調を行う。ベースバンド変復調部３２０は、ベースバンド変調部３２１とベースバンド復調部３２２を有している。無線部３３０は、ベースバンド帯域の信号を伝送帯域に変換もしくは伝送帯域の信号をベースバンド帯域に変換する。無線部３３０は、アップコンバータ３３１とダウンコンバータ３３２を有している。
秘匿・完全性保証処理部４０は、無線通信制御部２０に接続されている。秘匿・完全性保証処理部４０は、無線通信制御部２０からデータを受け取り、秘匿処理を行う。また、データの完全性保証処理を行う。秘匿・完全性保証処理部４０は、無線通信制御部２０から秘匿及び完全性保証処理のための制御信号９１を入力する。また、秘匿・完全性保証処理部４０は、無線通信制御部２０からレイヤ２以上の任意の階層における秘匿処理の対象となるデータ及び／又は完全性保証処理の対象となるデータ９２を入力する。秘匿・完全性保証処理部４０は、入力した制御信号９１に基づいてデータ９２に対して秘匿処理及び／又は完全性保証処理を行い、無線通信制御部２０に出力する。制御信号９１の中には、鍵や初期値や秘匿処理と完全性保証処理との選択等のパラメータが含まれている。
図４は、秘匿・完全性保証処理部４０の構成図である。
秘匿・完全性保証処理部４０は、ＩＦ部４１０と１つのモジュール４１１を有している。モジュール４１１は、秘匿処理と完全性保証処理を１つの同一の回路又は１つの同一のアルゴリズムで行うものである。秘匿処理を行うか、完全性保証処理を行うかは、制御信号９１により決定される。
ここで、秘匿処理とは、データを暗号化、或いは、復号化することをいう。また、完全性保証処理とは、データの改竄の有無を検証するために、データに対して認証子を付加する処理、或いは、認証子を再生して比較することによりデータの改竄の有無を判定する処理のことをいう。
秘匿処理と完全性保証処理は、同一の回路又は同一のアルゴリズム、或いは、類似の回路又は類似のアルゴリズムを用いて行うことができるため、図４に示すように、秘匿処理と完全性保証処理を１つのモジュール４１１で行うことが可能である。図４に示す場合は、ハードウェアリソース及びソフトウェアリソースの削減が可能である。以下、モジュールとは、ハードウェアのみで実現されるもの、ソフトウェアのみで実現されるもの、ハードウェアとソフトウェアとの組み合わせで実現されるもののいずれかをいうものとする。
ここで、携帯電話機に用いられる秘匿処理と完全性保証処理との具体例について説明する。
図１４は、ＡＲＩＢ  ＳＴＤ−Ｔ６３  ３３．１０２，３Ｇ  Ｓｅｃｕｒｉｔｙ；Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｓｅｃｔｉｏｎ  ６．３．に示された図である。
図１５は、ＡＲＩＢ  ＳＴＤ−Ｔ６３  ３３．１０２，３Ｇ  Ｓｅｃｕｒｉｔｙ；Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｆｉｇｕｒｅ  １６ｂ．に示された図である。
図１６は、ＡＲＩＢ  ＳＴＤ−Ｔ６３  ３３．１０２，３Ｇ  Ｓｅｃｕｒｉｔｙ；Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｆｉｇｕｒｅ  １６．に示された図である。
図１４は、無線回線上での暗号化方法を示している。図１４において、記号の意味は、以下の通りである。
ＣＫ：ｃｉｐｈｅｒ  ｋｅｙ（暗号鍵）
Ｆ８：データ秘匿用関数
ＩＫ：ｉｎｔｅｇｒｉｔｙ  ｋｅｙ（メッセージ認証鍵）
Ｆ９：データ完全性用関数
携帯電話事業者は、ｆ１〜ｆ５という関数を使い、認証処理を実現している。この処理の中で生成したＣＫとＩＫと呼ぶ１２８ビットの暗号鍵を、データ秘匿用関数（ｆ８）とデータ完全性用関数（ｆ９）に渡している。
図１５は、無線回線上での暗号化方法を示している。図１５において、記号の意味は、以下の通りである。
ｆ８：データ秘匿用関数
ＣＫ：ｃｉｐｈｅｒ  ｋｅｙ（暗号鍵）
ＭＥＳＳＡＧＥ：ユーザデータ及び信号情報など送信者が受信者に送りたい暗号化前の平文
ＣＯＵＮＴ−Ｃ：送受信の通算回数を示す数値データ。送受信のたびに１を加算する。
ＢＥＡＲＥＲ：論理チャネルを識別するためのビット
ＤＩＲＥＣＴＩＯＮ：暗号文の送信方向を区別するためのビット
ＬＥＮＧＴＨ：ＭＥＳＳＡＧＥ或いは暗号文のビット長
図１５に示すように、データ秘匿用関数ｆ８で作成した乱数列を基にデータ暗号化／復号化を行う。
図１６は、メッセージ認証子生成方法を示している。図１６において、記号の意味は、以下の通りである。
ｆ９：データ完全性用関数
ＩＫ：ｉｎｔｅｇｒｉｔｙ  ｋｅｙ（メッセージ認証鍵）
ＣＯＵＮＴ−Ｉ：送受信の通算回数を示す数値データ。送受信のたびに１を加算する。
ＭＥＳＳＡＧＥ：ユーザデータ及び信号情報など送信者が受信者に送りたい暗号化前の平文
ＤＩＲＥＣＴＩＯＮ：暗号文の送信方向を区別するためのビット
ＦＲＥＳＨ：ユーザ毎に生成する乱数
ＭＡＣ−Ｉ：ｍｅｓｓａｇｅ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｃｏｄｅ  ｆｏｒ  ｉｎｔｅｇｒｉｔｙ（送信者が計算するメッセージ認証子）
ＸＭＡＣ−Ｉ：ｅｘｐｅｃｔｅｄ  ｍｅｓｓａｇｅ  ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｃｏｄｅ  ｆｏｒ  ｉｎｔｅｇｒｉｔｙ（受信者が計算するメッセージ認証子）
図１６に示すように、受信者側で２つのメッセージ認証子を比較することによりデータの完全性がチェックできる。
次に、動作について説明する。
無線網内で端末とネットワーク間の暗号化通信を行うには、データをやり取りする前に二者間で一方が相手を正当であると、或いは、双方が通信相手として正当であると確認する認証（ａｕｔｈｅｎｔｉｃａｔｉｏｎ）という処理が必要になる。
図１４に示すように、一連の認証処理で端末とネットワークの双方は、関数ｆ１〜ｆ５と呼ぶ５つの関数を使う。この関数は、認証と並行して端末とネットワークの両方に、それぞれ１２８ビットの暗号鍵（ＣＫ＝ｃｉｐｈｅｒ  ｋｅｙ）とメッセージ認証鍵（ＩＫ＝ｉｎｔｅｇｒｉｔｙ  ｋｅｙ）を生成する。
これら２つの鍵は、相互に認証した端末とネットワークだけが同じものを持つことができ、後述するｆ８とｆ９との２つの関数で使われる。これら２つの鍵は通信毎に異なり、しかもそれらの間の規則性がない。そして、通信が終了した時点で廃棄される。
なお、この認証に必要な処理のメカニズム（プロトコル）は、標準化されているが、認証処理で用いられるｆ１〜ｆ５の関数は標準化されておらず、オペレータが独自に決めることになっている。
認証処理が完了した後は、秘匿処理に用いられるデータ秘匿（ｄａｔａ  ｃｏｎｆｉｄｅｎｔｉａｌｉｔｙ）技術と完全性保証処理に用いられるデータ完全性（ｄａｔａ  ｉｎｔｅｇｒｉｔｙ）技術で、データのセキュリティを保っている。
１つ目のデータ秘匿技術は、無線ネットワーク上で音声を含むユーザデータや信号情報を暗号化し、盗聴を防止する技術である。このデータ秘匿を実現するために、データ秘匿用関数（以下、ｆ８と呼ぶ）という関数を用いる。
図１５に示すデータを秘匿してやり取りする場合、送信者は認証の際に生成した暗号鍵（ＣＫ）を使う。更に、ｆ８には、ＣＫの他に、暗号化／復号化対象データのビット長（ＬＥＮＧＴＨ）、アップ／ダウンリンク（ＤＩＲＥＣＴＩＯＮ）、カウンタ（ＣＯＵＮＴ−Ｃ）、論理チャネル識別子（ＢＥＡＲＥＲ）を入力することで乱数列が生成される。
ここで、アップ／ダウンリンクとは、暗号文が端末から基地局へ送信されるのか、或いは、基地局から端末へ送信されるのかを区別するビットをいう。また、カウンタとは、送受信の通算回数を示すデータである。カウンタには、送受信のたびに決められた値を加算する。カウンタは、過去に送られた暗号文を後に送りつける攻撃を防ぐために用いられる。また、論理チャネルの識別子とは、暗号化を行う論理チャネルを識別するビットのことである。
生成した乱数列と暗号化したいデータ／信号情報との排他的論理和をとって暗号文を生成し、受信者に送信する。
ＣＫ以外のパラメータは、送信者から暗号化せずに受信者へ送付する。但し、ＣＫだけは認証処理の過程で受信者側でも同じものが生成されているため、送信する必要がない。
ＣＫ以外のパラメータが第三者に渡ったとしても、ＣＫが秘密であれば暗号文を解読するための乱数列が生成できないため、元のメッセージの安全性は保たれる。
受信者側は、送られてきたパラメータと予め持っていたＣＫを使って乱数列を生成し、送られてきた暗号文と排他的論理和をとって、元のメッセージを復号する。
これは、ＩＳＯ／ＩＥＣ１０１１６で定義されたブロック暗号の利用モードの１つであるＯＦＢ（ｏｕｔｐｕｔ  ｆｅｅｄｂａｃｋ）モードの変形である。ＯＦＢモードは、暗号文に伝送路上で発生したノイズが混入しても、復号時点でそのノイズ部分を拡大することがないため、特に無線音声通信で採用される場合が多い。
２つ目のデータ完全性技術は、無線回線上の信号情報にメッセージ認証子（完全性認証子）を付加することで信号の情報の改竄の有無を検出する技術である。メッセージ認証技術とも呼ばれている。このデータ完全性をを実現するために、データ完全性用関数（以下、ｆ９と呼ぶ）を用いる。このｆ９のコア部分にもＦ８と同じ暗号アルゴリズムが用いられている。
まず、認証の際にメッセージ認証鍵生成関数ｆ４を使ってメッセージ認証鍵（ＩＫ）を生成し、ｆ９に渡す。図１６に示すように、ｆ９にメッセージ認証鍵の他、データ（ＭＥＳＳＡＧＥ）、アップ／ダウンリンク（ＤＩＲＥＣＴＩＯＮ）、カウンタ（ＣＯＵＮＴ−Ｃ）、ユーザ毎に生成する乱数（ＦＲＥＳＨ）を入力すると、メッセージ認証子（ＭＡＣ−Ｉ又はＸＭＡＣ−Ｉ）が生成される。
これらのパラメータも送信者から暗号化されないデータ・フォーマットのエリアに乗せて受信者へ送付される。これらのパラメータが第三者に渡っても、メッセージ認証鍵（ＩＫ）が秘密であれば、安全性は保たれるのはデータの秘匿の場合と同じである。
送信者は、このメッセージ認証子（ＭＡＣ−Ｉ）をデータに付加して、受信者へ送信する。受信者は同様に、ｆ９を使ってメッセージ認証子（ＸＭＡＣ−Ｉ）を計算する。ＭＡＣ−ＩとＸＭＡＣ−Ｉを比較し、同じであれば、改竄がなかったことを確認できる。
なお、改竄ありと検出された場合の処理の一例として、
（１）相手に再送信を要求し、再度受信したメッセージ認証子が正当かを確認する。
（２）続けて何回か改竄ありと検出した場合は、接続を切断するなどの対応をとる。
３Ｇｐｐ仕様（詳細は、ｈｔｔｐ：／／ｗｗｗ．３ｇｐｐ．ｏｒｇ／Ａｂｏｕｔ＿３ＧＰＰ／３ｇｐｐ．ｈｔｍを参照のこと）によると、暗号化／復号化モジュールは、図１５のように、入力された平文（暗号化されるデータ）を暗号文（暗号化されたデータ）に暗号化し出力する機能、また、暗号文を平文に復号化し出力する機能を持つ。３Ｇｐｐ仕様に基づくとすると、図３の制御信号９１の具体例は、上記ＣＯＵＮＴ／ＢＥＲＡＲＥＲ／ＤＩＲＥＣＴＩＯＮ／ＣＫ／ＬＥＮＧＴＨが該当する。
また、図３のデータ９２，９３の具体例としては、例えば、図２１に示すように、「ＭＡＣＳＤＵ」又は「ＲＬＣＰＤＵ（ｄａｔａｐａｒｔ）」となる。ここで、「ＲＬＣＰＤＵ（ｄａｔａｐａｒｔ）」とは、ＲＬＣＰＤＵの上位１Ｏｃｔもしくは２Ｏｃｔ（１バイトもしくは２バイト）を削除した部分（図２１の「ＤＡＴＡ  ＦＯＲ  ＣＩＰＨＥＲＩＮＧ」の部分）となる。「ＭＡＣＳＤＵ」又は「ＲＬＣＰＤＵ（ｄａｔａｐａｒｔ）」は、図１５のＭＥＳＳＡＧＥの一例である。また、ＭＡＣＳＤＵは、Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｓｅｒｖｉｃｅ  Ｄａｔａ  Ｕｎｉｔのことである。ＲＬＣＰＤＵは、Ｒａｄｉｏ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔのことである。メッセージフローの各メッセージは、ＲＬＣＰＤＵから、ＲＬＣヘッダ削除後、レイヤ３において組み立てられたものとなる。
ＲＬＣＰＤＵにおいて、１Ｏｃｔもしくは２Ｏｃｔの秘匿対象外部分が存在するが、ＲＬＣＰＤＵ全てを秘匿・完全性保証処理部４０に入力し、秘匿・完全性保証処理部４０にて、１Ｏｃｔもしくは２Ｏｃｔ秘匿を行わないようにしている。その理由は、秘匿処理を行う全てのデータ単位（ＲＬＣＰＤＵ）から１Ｏｃｔもしくは２Ｏｃｔの秘匿対象外部分を取り除くため、１Ｏｃｔもしくは２Ｏｃｔのシフト処理を無線通信制御部２０において実行させることにより発生する無線通信制御部２０の負荷を低減するためである。
図５は、秘匿・完全性保証処理部４０の他の例を示す図である。
図５において特徴となる点は、秘匿処理部４２０と完全性保証処理部４３０を個別に設けた点である。秘匿処理部４２０の内部には、暗号化／復号化部４２１が設けられている。完全性保証処理部４３０の内部には、完全性認証子付加／完全性確認部４３１が設けられている。暗号化／復号化部４２１は、暗号化と復号化を１つの同一モジュールを用いて行う場合を示している。完全性認証子付加／完全性確認部４３１は、完全性認証子の付加と完全性の確認を１つの同一のモジュールで行う場合を示している。図５に示す場合は、暗号化と復号化が同じ関数であった場合及び完全性認証子付加と完全確認が同じ関数であった場合に、取り得る構成である。図５に示す場合は、図６に示す場合に比べ、ハードウェアリソース及びソフトウェアリソースの削減が可能である。
図６は、秘匿・完全性保証処理部４０の他の構成を示す図である。
図６の特徴は、秘匿処理部４２０において、暗号化部４２２と復号化部４２３を個別に設けた点である。また、完全性保証処理部４３０において、完全性認証子付加部４３２と完全性確認部４３３を個別に設けた点である。図６に示す場合は、暗号化と復号化が同じ又は違う関数であった場合及び完全性認証子付加と完全性確認が同じ又は違う関数であった場合に取る構成である。図６の場合は、暗号化、復号化、完全性認証子付加、完全性確認を個別に実行でき、送受信されるデータが同時並列に秘匿処理、或いは、完全性保証処理されるので、処理の高速化が可能である。
図７は、秘匿処理部４２０において、複数の暗号化部４２２と複数の復号化部４２３を設けた場合を示している。また、完全性保証処理部４３０において、複数の完全性認証子付加部４３２と複数の完全性確認部４３３を設けた場合を示している。無線端末（ＭＳ）１００が動作している場合に、複数のチャネルが同時に処理されなければならない場合がある。例えば、音声とファクシミリデータの２種類のデータが同時に伝送されるような場合には、少なくとも２チャネルのデータが同時に処理される必要がある。このような場合には、音声データを暗号化部１で暗号化し、ファクシミリデータを暗号化部２で暗号化することができる。また、復号する場合にも、同時に複数チャネルのデータを復号化することができる。暗号化部４２２と復号化部４２３と完全性認証子付加部４３２と完全性確認部４３３の数（図７では、ｎ個）は、全て同一である必要はなく、無線端末（ＭＳ）１００において同時に処理すべきチャネルの数に応じて各部分の数を決定すればよい。或いは、各チャネルに対応するのではなく、ある１つのチャネルに大量データの高速処理を行う必要が生じた場合に、その１つのチャネルに割り当てられた大量データを２つの暗号化部により処理するようにしても構わない。即ち、暗号化部４２２と復号化部４２３と完全性認証子付加部４３２と完全性確認部４３３の各部の数は、同時に処理すべきチャネルの数及び／又はデータ量により決定すればよい。
また、暗号化部４２２の最大数と復号化部４２３の最大数は異なってもよい。
また、完全性認証子付加部４３２の最大数と完全性確認部４３３の最大数は異なってもよい。
図８は、秘匿処理部４２０に複数の暗号化／復号化部４２１を設けた場合を示している。また、完全性保証処理部４３０に複数の完全性認証子付加／完全性確認部４３１を設けた場合を示している。
図８は、図５に示す暗号化／復号化部４２１と完全性認証子付加／完全性確認部４３１を複数にしたものである。図８に示す場合は、暗号化と復号化が同じ関数であった場合に、複数のチャネルに対応して複数の暗号化／復号化部４２１を設けた場合を示している。同様に、完全性認証子付加と完全性確認が同じ関数であった場合に、複数のチャネルに対応して完全性認証子付加／完全性確認部４３１を複数設けた場合を示している。図８の場合は、図７の場合に比べて、ハードウェアリソース及びソフトウェアリソースの削減を行うことが可能である。
図４から図８においては、秘匿・完全性保証処理部４０が秘匿処理部４２０と完全性保証処理部４３０とを両方備えている場合を示したが、秘匿・完全性保証処理部４０が秘匿処理部４２０又は完全性保証処理部４３０のいずれか片方だけ備えている場合でもよい。秘匿・完全性保証処理部４０が秘匿処理部４２０又は完全性保証処理部４３０の一方だけ備えている場合は、他方の処理は、無線通信制御部２０が行えばよい。
実施の形態２．
図９は、無線端末（ＭＳ）１００の他の例を示す構成図である。
図９が図３と異なる点は、端末ＩＦ部１０と秘匿・完全性保証処理部４０との間でデータの入出力が行われる点である。また、無線通信部３０と秘匿・完全性保証処理部４０との間でデータの入出力が行われる点である。図９において、非透過データ９７は、パケットデータ等の非透過データである。また、透過データ９５，９６は、音声データや非制限デジタルデータ等の透過データである。透過データとは、ＯＳＩで定義されているあるレイヤ、或いは、あるレイヤのサブレイヤにおいて、入力から出力まで、そのデータが一切変更されないデータをいう。一方、非透過データとは、あるレイヤ、或いは、あるレイヤのサブレイヤにおいて、入力から出力まで、そのデータのフォーマット変換処理等の何等かのデータ処理が必要なデータをいう。例えば、レイヤ２のＲＬＣ（Ｒａｄｉｏ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ）サブレイヤにおいて、ＳＤＵ（Ｓｅｒｖｉｃｅ  Ｄａｔａ  Ｕｎｉｔ）とＰＤＵ（Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）とが異なる場合は、そのデータは非透過データであり、レイヤ２のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）サブレイヤにおいて、ＳＤＵとＰＤＵが同一の場合、そのデータは透過データである。図９に示す場合は、無線通信部３０との間で入出力されるレイヤ１のデータに対して何等処理を行うことなく、端末ＩＦ部１０に引き渡すことができるデータ、例えば、音声データを、透過データとしている。一方、無線通信部３０から出力されるレイヤ１のデータに対して何等かの処理を行わなければならないデータ、例えば、パケットデータを、非透過データとしている。
図９の透過データ９５，９６の具体例は、前述した通り、音声データや非制限デジタルデータであるが、それぞれのデータは、レイヤ１とレイヤ２の間に定義される単位（Ｔｒａｎｓｐｏｒｔ  Ｂｌｏｃｋ）に分割されたものであり、これらＴｒａｎｓｐｏｒｔ  Ｂｌｏｃｋに分割されたデータは透過データであるため、前述の通り、ＭＡＣＰＤＵ（かつ、ＭＡＣＳＤＵ）と等価であるため、Ｔｒａｎｓｐｏｒｔ  Ｂｌｏｃｋに分割されたデータそれぞれが、秘匿の単位と同一となる。
また、音声データ等は、ユーザデータであり、ユーザデータは、ＲＬＣサブレイヤにおいても透過データであることから、この伝送形態をシリアルインタフェースとして、ＡＲＩＢ規定のＭＴ（Ｍｏｂｉｌｅ  Ｔｅｒｍｉｎａｌ）−ＴＡ（Ｔａｒｍｉｎａｌ  Ａｄａｐｔｏｒ）Ｉ／Ｆ（図２２，図２３）とすると、ＭＴ−ＴＡ  Ｉ／Ｆのシリアルフォーマットに対しそのまま、秘匿を施すことが可能な伝送形態となる。
また、図９の非透過データ９７の具体例は、前述した通り、パケットデータやシグナリングのためのデータであるが、各データは、レイヤ１とレイヤ２との間に定義される単位（Ｔｒａｎｓｐｏｒｔ  Ｂｌｏｃｋ）に分割されたものである。
図９に示す秘匿・完全性保証処理部４０は、無線通信制御部２０との間で非透過データに対して秘匿処理と完全性保証処理を選択的に行うとともに、端末ＩＦ部１０と無線通信部３０との間で入出力される透過データに対して、例えば、秘匿処理を必ず行うものである。秘匿・完全性保証処理部４０は、透過データに対しては完全性保証処理を行わない。もし、透過データのなかに秘匿処理を行いたくないものがある場合には、無線通信制御部２０は、その秘匿処理を行いたくない透過データを秘匿・完全性保証処理部４０に入力させず無線通信制御部２０に入力させればよい。或いは、その秘匿処理を行いたくない透過データを秘匿・完全性保証処理部４０に入力させるが、無線通信制御部２０からの制御信号を用いてその透過データに秘匿処理を行わせないようにしてもよい。
図１０は、秘匿・完全性保証処理部４０の構成図である。
図１０において、図５と異なる点は、新たに秘匿処理部４６０が設けられた点である。秘匿処理部４６０には、暗号化部４６２と復号化部４６３が設けられている。暗号化部４６２は、端末ＩＦ部１０からの透過データ９５を入力し、入力したデータを暗号化し、透過データ９６として無線通信部３０へ出力する。一方、復号化部４６３は、無線通信部３０から透過データ９６を入力し、復号化し、透過データ９５として端末ＩＦ部１０へ出力する。秘匿処理部４６０のこれらの処理は、ＩＦ部４１０からの制御信号９９に基づいて行われる。制御信号９９は、制御信号９１から生成された制御信号である。従って、秘匿処理部４６０は、無線通信制御部２０からの制御信号に基づいて秘匿処理を行うことになる。図１０において、データ９２は、バスを介したパラレルインタフェースを用いて入出力される。一方、透過データ９５と９６は、シリアルインタフェースを介して秘匿処理部４６０に対して入出力される。このように、図１０は、秘匿・完全性保証処理部４０がパラレルインタフェースとシリアルインタフェースの２系統の入出力インタフェースを備えている場合を示している。
図１１は、図７に示した秘匿・完全性保証処理部４０の構成に秘匿処理部４６０を付加した場合を示している。図１１に示すような秘匿処理部４６０の構成は、図１２に示すように、暗号化部又は復号化部がキーストリームを発生させ、シリアルデータと排他的論理和をとる場合に有効な構成である。
図１１は、透過データ９５，９６がシリアルインタフェースを介して秘匿処理部４６０に入出力される場合であって、かつ、そのシリアルインタフェースを介して入出力されるシリアルデータに、複数チャネルのデータが多重化されている場合を示している。例えば、チャネル１のデータの次にチャネル２のデータがシリアルデータとして入力された場合、チャネル１に対応する暗号化部１からキーストリームを発生させデータ多重部４８１に出力し、チャネル２に対応する暗号化部２からキーストリームを発生させデータ多重部４８１に出力し、データ多重部４８１において、これらのキーストリームを入力されるデータ９５のデータ系列と同じフォーマットに多重する。この多重したキーストリームと入力されるデータ９５のデータ系列との排他的論理和を排他的論理和回路４８３により演算する。秘匿処理部４６０のこれらの動作は制御信号９９に基づいて、即ち、無線通信制御部２０から送られてきた制御信号９１に基づいて行われる。図１１の構成によれば、シリアルデータの遅延が排他的論理和回路４８３の演算のみで済み、高速な処理を行うことが可能である。
図１３は、図１０の秘匿処理部４２０と秘匿処理部４６０とをあわせて１つの秘匿処理部４７０とした場合を示している。
秘匿処理部４７０は、パラレルインタフェースから入出力されるデータ９２とシリアルインタフェースから入出力されるデータ９５，９６の両方を処理する。秘匿処理部４７０は、秘匿処理部４２０と秘匿処理部４６０を１つにまとめたものであるため、ハードウェアリソースの削減が可能である。秘匿処理部４７０における透過データと非透過データの処理動作のスイッチングは、制御信号９９、即ち、無線通信制御部２０から出力された制御信号９１に基づいて行われる。
実施の形態３．
図２５は、実施の形態３の秘匿処理部の暗号化方式及び復号化方式を示す図である。図２５の左側は送信側の暗号化装置を示している。図２５の右側は受信側の復号化装置を示している。
図２５が図１５と異なる点は、データ秘匿用関数ｆ８で作成した乱数列を一時記憶する乱数列記憶部（バッファ）を備えている点である。乱数列記憶部は、データ秘匿用関数ｆ８で作成された乱数列を予め記憶しておくものである。即ち、データ秘匿用関数ｆ８は、乱数列を生成するための情報が整い次第、乱数列の生成を開始し、乱数列記憶部に乱数列を出力する。乱数列記憶部は、メッセージ（平文）が到着するまで乱数列を一時的に保存しておき、メッセージ（平文）の入力に同期させて記憶した乱数列を出力する。
一方、復号する場合には、データ秘匿用関数ｆ８は、乱数列を生成するための情報が整い次第、乱数列の生成を開始し、乱数列記憶部に乱数列を出力する。乱数列記憶部は、メッセージ（平文）が到着するまで乱数列を一時的に保存しておき、暗号文の入力に同期させて乱数列記憶部に記憶した乱数列を出力する。
このように、図２５の左側に示す暗号化装置の特徴は、データ秘匿用関数ｆ８による乱数列の生成と、メッセージと乱数列の演算とを非同期に行うことを特徴とする。即ち、データ秘匿用関数ｆ８は、平文と乱数列との演算より前に乱数列を生成し、乱数列記憶部に予め保存しておくことが特徴である。
また、図２５の右側に示す復号化装置は、データ秘匿用関数ｆ８による乱数列の生成と、暗号文と乱数列との演算とを非同期に行うことを特徴とする。即ち、データ秘匿用関数ｆ８は、暗号文の入力より前に乱数列の生成を開始して、生成した乱数列を乱数列記憶部に予め保存しておくことを特徴とする。
図２５の暗号化装置と復号化装置は、例えば、ＩＳＯ／ＩＥＣ１０１１６で定義されたブロック暗号の利用モードの１つであるＯＦＢ（ｏｕｔｐｕｔ  ｆｅｅｄｂａｃｋ）モードの暗号化・復号化を行うものである。あるいは、その変形モードを用いる場合でもよい。あるいは、平文或いは暗号文なしで乱数列を生成できるモードを用いる場合であればよい。しかし、図２５の暗号化装置と復号化装置は、平文或いは暗号文なしで先に乱数列を生成するものなので、平文或いは暗号文を入力して乱数列を生成するモードを用いることはできない。
なお、平文とは、暗号化するデータを意味し、必ずしも、人間が読み書きできるものに限らない。例えば、テキストデータ、文字データは平文である。また、音声データ、画像データ、符号化データ、圧縮データ等も暗号化されるデータであれば平文である。
また、暗号文とは、暗号化されたデータを意味する。テキストデータ、文字データ、音声データ、画像データ、符号化データ、圧縮データ等の暗号化される前の平文のデータ形式は問わない。
図２６は、実施の形態３の完全性保証処理部の完全性保証方式を示す図である。
図２６が図１６と異なる点は、データ完全性用関数ｆ９の前段にデータ記憶部（バッファ）が設けられている点である。データ記憶部は、Ｘ（Ｘ≧２）個のデータとＸ個の制御信号データとを入力して記憶するものである。データ完全性用関数ｆ９は、データ記憶部に記憶されたＸ個のデータとＸ個の制御信号データを入力してＸ個のデータに対するＸ個の完全性認証子を生成し、Ｘ個の完全性認証子をまとめて出力するものである。
メッセージ認証鍵（ＩＫ）がＸ個のデータについて共通の場合、図２６に示すように、メッセージ認証鍵（ＩＫ）をデータ記憶部に記憶させることなく、データ完全性用関数ｆ９に直接入力させるようにしてもよい。メッセージ認証鍵（ＩＫ）が各データについて異なるときは、他の制御信号データとともにデータ記憶部に記憶させるようにすればよい。
以下、図２５に示した秘匿処理部と完全性保証処理部の具体例について図を用いて説明する。
図２７は、実施の形態３の無線通信制御部２０と秘匿・完全性保証処理部４０を示す図である。
その他の構成は、実施の形態２の図９に示した無線端末１００と同じであるので、以下、図２７を中心に実施の形態２と異なる点について説明する。
無線通信制御部２０の内部には、ＣＰＵ２９が設けられている。また、秘匿・完全性保証処理部４０の内部には、パラレルインタフェースを有する秘匿処理部４２０と、シリアルインタフェースを有する秘匿処理部４６０と、完全性保証処理部４３０とが設けられている。秘匿処理部４２０には、暗号化部４２２と復号化部４２３とが設けられている。秘匿処理部４６０には、暗号化部４６２と復号化部４６３とが設けられている。完全性保証処理部４３０には、完全性認証子付加部４３２と完全性確認部４３３とが設けられている。無線通信制御部２０と秘匿・完全性保証処理部４０とは、バス９０で接続されている。バス９０は、無線通信制御部２０の内部のＣＰＵ２９と、秘匿・完全性保証処理部４０の内部の秘匿処理部４２０と、秘匿処理部４６０と、完全性保証処理部４３０とを接続しており、制御信号９１及びデータ９２及びその他のデータを転送するものである。ＣＰＵ２９は、リードオンリイメモリ等の記録媒体に記憶されたプログラムを読み込みプログラムの実行により無線通信制御部２０の全体の処理を司るものである。バス９０は、無線通信制御部２０と秘匿・完全性保証処理部４０との内部あるいは外部に有る他の処理部（図示せず）を接続する汎用のバスである。
図２８は、秘匿処理部４２０の暗号化部４２２と復号化部４２３の詳細図である。
暗号化部４２２は、暗号化器６１０とバッファ６２０と排他的論理和演算部６３０により構成されている。復号化部４２３は、復号化器６１１とバッファ６２１と排他的論理和演算部６３１により構成されている。暗号化器６１０は、図２５の送信側のデータ秘匿用関数ｆ８に相当するものである。バッファ６２０は、図２５の送信側の乱数列記憶部に相当するものである。ここでは、バッファ６２０は、先入れ先出しメモリを用いている。排他的論理和演算部６３０は、例えば、６４ビットのパラレルデータの排他的論理和演算を同時に行うものである。復号化器６１１は、図２５の受信側のデータ秘匿用関数ｆ８に相当するものである。バッファ６２１は、図２５の受信側の乱数列記憶部に相当するものである。排他的論理和演算部６３１は、例えば、６４ビットのパラレルデータの排他的論理和演算を同時に行うものである。
秘匿処理部４２０は、バス９０を介してＣＰＵ２９から制御信号９１を入力する。この時点では、まだ平文９５０は入力されない。ＣＰＵ２９は、予め制御信号９１を知ることができ、平文９５０よりも前に制御信号９１をＣＰＵ２９から秘匿処理部４２０に対して転送することが可能である。制御信号９１は、少なくとも暗号鍵（ＣＫ）を含み、更に、この例では、ＣＫの他に、暗号化／復号化対象データのビット長（ＬＥＮＧＴＨ、図２８では、ビット長＝２５６ビットの場合を示している）、アップ／ダウンリンク（ＤＩＲＥＣＴＩＯＮ）、カウンタ（ＣＯＵＮＴ−Ｃ）、論理チャネル識別子（ＢＥＡＲＥＲ）を含んでいる。暗号鍵（ＣＫ）、暗号化／復号化対象データのビット長（ＬＥＮＧＴＨ）、アップ／ダウンリンク（ＤＩＲＥＣＴＩＯＮ）、カウンタ（ＣＯＵＮＴ−Ｃ）、論理チャネル識別子（ＢＥＡＲＥＲ）は、制御信号６００又は制御信号６０１として暗号化部４２２又は復号化部４２３に入力される。暗号化器６１０では、制御信号６００が入力されると、乱数列の生成を開始し、乱数列をバッファ６２１に出力する。ここで、暗号化器６１０が６４ビット単位に乱数列を発生するものとする。この場合には、暗号化器６１０からは６４ビット単位の乱数列が出力され、バッファ６２０に一時的に記憶される。前述したように、暗号化対象データのビット長（ＬＥＮＧＴＨ）が２５６ビットである場合には、暗号化器６１０は、６４ビットの乱数列を４個発生させ、暗号化対象データのビット長（２５６ビット）に十分な長さの乱数列（６４ビット×４）を生成する。
図２８においては、バッファ６２０に４つの６４ビット長の乱数列が保存されている場合を示している。
その後、ＣＰＵ２９は、２５６ビットのビット長の平文９５０を６４ビット単位にバス９０を介して暗号化部４２２に転送する。排他的論理和演算部６３０が６４ビット単位に平文９５０を入力すると、バッファ６２０は、６４ビットの乱数列６５０を順次出力する。排他的論理和演算部６３０は、６４ビット単位に平文９５０と乱数列６５０の排他的論理和演算を同時に行い、６４ビット単位の暗号文９６０を生成する。暗号文９６０は、ＣＰＵ２９に返送される。
復号化部４２３の動作は、排他的論理和演算部６３１への入力が暗号文９６０であり、出力が平文９５０である点を除いて、暗号化部４２２の動作と同じであるので説明を省略する。
なお、排他的論理和演算部６３０が平文９５０を入力するのは、バッファ６２０に４個の（２５６ビットの）乱数列を生成してからでなくてもよく、バッファ６２０に６４ビットの乱数列が１つ以上蓄えられた場合に、排他的論理和演算部６３０による排他的論理和演算を開始しても構わない。この場合には、暗号化器６１０による乱数列の生成と、排他的論理和演算部６３０による排他的論理和演算が並列に同時に行われることになる。暗号化器６１０は、排他的論理和演算部６３０において、平文９５０の排他的論理和演算を行っている間に、次の制御信号６００を入力し、次に入力される平文９５０に対する乱数列を生成してバッファ６２０に対して予め次の平文に対する乱数列を記憶させる。
このように、暗号化部４２２は、ＣＰＵ２９から平文９５０を入力する前に先立って、予めバッファ６２０に乱数列を蓄えておくので、排他的論理和演算部６３０における演算の待ち時間が生じることがなく、暗号化が高速に行える。同様の理由によりに、復号化部４２３においても、復号化が高速に行える。
なお、バッファ６２０，６２１のサイズは、暗号化器６１０、復号化器６１１が出力する乱数列の単位サイズ以上あればよいが、望ましくは、このシステムで指定されうる暗号化／復号化対象データのビット長（ＬＥＮＧＴＨ）の最大値以上あるのがよい。例えば、暗号化器６１０、復号化器６１１が出力する乱数列の単位サイズが６４ビットであり、暗号化／復号化対象データのビット長（ＬＥＮＧＴＨ）の最大値が５１１４ビットであれば、バッファ６２０，６２１のサイズは、５１２０（６４×８０）ビット以上あるのがよい。
また、排他的論理和演算部６３１は、例えば、６４ビットの排他的論理和演算を行うものとしたが、３２ビット、１２８ビット等の他ビットサイズのパラレルデータ処理をしてもよい。
また、暗号化器６１０、復号化器６１１が出力する乱数列の単位サイズが６４ビットの場合を説明したが、３２ビット、１２８ビット等の他ビット単位サイズの乱数列を出力してもよい。
また、暗号化器６１０、復号化器６１１が出力する乱数列の単位サイズとバッファ６２０，６２１の読み書きサイズと排他的論理和演算部６３１のパラレルデータのビットサイズは同じでなくてもよい。
図２９は、無線通信制御部２０と秘匿処理部４２０の他の例を示す図である。
図２９が図２８と異なる点は、排他的論理和演算部６３０と排他的論理和演算部６３１が、秘匿処理部４２０ではなく、無線通信制御部２０に設けられている点である。
ＣＰＵ２９は、バス９０を介して、平文９５０に対する乱数列を（できるだけまとめて）バッファ６２０から読み出し、排他的論理和演算部６３０に供給する。排他的論理和演算部６３０においては、平文９５０と乱数列６５０の排他的論理和演算を行い、暗号文９６０を生成する。
同様に、排他的論理和演算部６３１においても、ＣＰＵ２９により、バス９０を介して、バッファ６２１から乱数列６５１が読み出され、暗号文９６０との排他的論理和演算が行われ、平文９５０が出力される。
図２９の場合には、ＣＰＵ２９が、乱数列をバッファ６２０から読み出すだけであり、平文９５０と暗号文９６０がバス９０を往復する必要がなくなるため、バス９０に流れるデータ量を図２８の構成と比べて、１／２以下にすることができる。また、バス９０を使用するための待ち時間を少なくすることができる。また、バス９０の競合を少なくすることができる。
なお、図２８と図２９とのいずれの場合も、排他的論理和演算部６３０と排他的論理和演算部６３１は、ハードウェアで実現してもよいし、ソフトウェアで実現してもよいし、ハードウェアとソフトウェアとの組み合わせで実現してもよい。
図３０は、シリアルインタフェースを有する秘匿処理部４６０の暗号化部４６２と復号化部４６３との詳細図である。
図３０が図２８と異なる点は、パラレルデータの排他的論理和演算部６３０の代わりに、１ビットのシリアルデータの排他的論理和演算を行う排他的論理和演算部６３２を備えている点である。また、パラレルデータの排他的論理和演算部６３１の代わりに、１ビットのシリアルデータの排他的論理和演算を行う排他的論理和演算部６３３を備えている点である。排他的論理和演算部６３２においては、透過データ９５が入力され、乱数列６５０と１ビットずつシリアルに排他的論理和演算が行われ、暗号化された透過データ９６が出力される。一方、排他的論理和演算部６３３においては、透過データ９６が入力され、乱数列６５１と１ビットずつシリアルに排他的論理和演算が行われ、復号化された透過データ９５が出力される。
図３０に示す場合も、予めバッファ６２０とバッファ６２１に乱数列が生成されているため、排他的論理和演算部６３２と排他的論理和演算部６３３とにおいては、待ち時間を生ずることなく、高速な排他的論理和演算を行うことができる。
なお、図３０の場合も、排他的論理和演算部６３２と排他的論理和演算部６３３は、ハードウェアで実現してもよいし、ソフトウェアで実現してもよいし、ハードウェアとソフトウェアとの組み合わせで実現してもよい。
また、排他的論理和演算部６３２と排他的論理和演算部６３３は、秘匿処理部４６０の外部にあってもよい。
図３１は、完全性保証処理部４３０の完全性認証子付加部４３２と完全性確認部４３３の詳細を示す図である。
完全性認証子付加部４３２には、バッファ６６０と完全性認証子生成器６７０と完全性認証子付加器６８０が備えられている。完全性確認部４３３には、バッファ６６１と完全性認証子生成器６７１と完全性確認器６８１が備えられている。バッファ６６０とバッファ６６１は、先出し先入れメモリである。バッファ６６０とバッファ６６１は、図２６のデータ記憶部に相当する。完全性認証子生成器６７０と完全性認証子生成器６７１は、図２６のデータ完全性用関数ｆ９に相当する。完全性認証子付加器６８０は、完全性認証子をデータに付加するものである。完全性確認器６８１は、送信側から受け取った完全性認証子と受信側で生成した完全性認証子との比較を行い、一致した場合に、データの完全性を確認するものである。
図３１において、ＣＰＵ２９は、完全性認証子付加部４３２に対して、完全性を保証したい４個のデータ９２をまとめて送信している。また、ＣＰＵ２９は、完全性を保証したい４個のデータ９２に対応する４個の制御信号９１をまとめて送信している。制御信号９１は、少なくともメッセージ認証鍵（ＩＫ）を含み、更に、アップ／ダウンリンク（ＤＩＲＥＣＴＩＯＮ）、カウンタ（ＣＯＵＮＴ−Ｃ）、ユーザ毎に生成する乱数（ＦＲＥＳＨ）を有している。ＣＰＵ２９は、４個のデータに対応して、それぞれ少なくともアップ／ダウンリンク（ＤＩＲＥＣＴＩＯＮ）、カウンタ（ＣＯＵＮＴ−Ｃ）、ユーザ毎に生成する乱数（ＦＲＥＳＨ）を、制御信号９１として、バッファ６６０に転送する。なお、メッセージ認証鍵（ＩＫ）については、４個のデータに対応した個別の４個のメッセージ認証鍵（ＩＫ）をバッファ６６０に転送してもよいし、メッセージ認証鍵（ＩＫ）が４個のデータに共通の固定値である場合には、メッセージ認証鍵（ＩＫ）をバッファ６６０に記憶することなく、完全性認証子生成器６７０に直接入力するようにしてもよい。
制御信号９１は、制御信号としてバス９０の制御信号ラインを介して転送されてもよいし、データとしてバス９０のデータ信号ラインを介して転送されてもよい。４個の制御信号９１は、４個のデータとともに送信されてもよいし、別に送信されてもよい。バッファ６６０は、４個のデータと４個の制御信号をまとめて入力して記憶する。ここで、ＣＰＵ２９が４個のデータあるいは４個の制御信号をまとめて転送するという意味は、１回の転送命令により４個のデータあるいは４個の制御信号が転送されることを意味している。以下、「まとめて」とは、「一つの命令により」あるいは「複数のものをバラバラではなく一塊にして」ということを意味するものとする。「一つの命令により」実行することにより、ＣＰＵ２９または各処理器の負荷が減少する。また、「複数のものをバラバラではなく一塊にして」転送または入出力することにより、バス９０または各伝送線（図示せず）の転送回数が減少する。
バッファ６６０は、データと制御信号を対応させ、対応データとして記憶している。完全性認証子生成器６７０は、対応データを入力し、制御信号に基づいてデータの完全性認証子を生成する。完全性認証子生成器６７０は、所定のアルゴリズムを用いて４個の対応データから４個の完全性認証子をそれぞれ生成し、完全性認証子付加器６８０にまとめて出力する。完全性認証子生成器６７０は、ここでは、３２ビットの長さの完全性認証子を４個生成するものとする。完全性認証子付加器６８０は、４個の完全性認証子をそれぞれデータに付加して、ＣＰＵ２９に１つの転送命令に基づいて転送する。
完全性認証子付加部４３２が２５６ビット長のデータを４個入力した場合には、完全性認証子付加部４３２は、（２５６＋３２）×４ビットのデータをＣＰＵ２９に返送することになる。
一方、完全性確認部４３３においては、完全性認証子が付加されたデータを４個まとめて入力する。また、制御信号９１も４個まとめて入力する。前述したように、メッセージ認証鍵（ＩＫ）は、バッファ６６１に記憶されてもよいし、完全性認証子生成器６７１に直接入力されてもよい。
バッファ６６１は、これら４個のデータを対応させ、対応データとして記憶する。完全性認証子生成器６７１は、バッファ６６１に記憶された４個の対応データを読み出し、送信側の完全性認証子生成器６７０と同じアルゴリズムを用いて４個の完全性認証子を生成する。完全性確認器６８１は、４個のデータに付加されて入力された４個の完全性認証子と完全性認証子生成器６７１が生成した４個の完全性認証子をそれぞれ比較し、一致している場合に、完全性が確認できたものとして正常である旨の答えを返す。
完全性確認部４３３が、２５６ビット長のデータと３２ビット長の完全性認証子を４個ずつ（（２５６＋３２）ビット×４）のデータを入力した場合、完全性確認器６８１は、１ビット×４の答えをＣＰＵ２９に転送する。
従来は、各データ毎にＣＰＵ２９から完全性保証処理部４３０にデータ転送が行われているのに対し、図３１に示す場合は、４個のデータがまとめて一度に転送されるため、バス９０の使用効率がよくなる。即ち、バス９０の待ち時間を少なくすることができる。また、バス９０の競合を少なくすることができる。
図３１に示す場合は、４個のデータがまとめて一度に転送される場合を示したが、その個数は４個に限られない。また、バッファのデータ保持個数も４個に限らない。
また、データのビット長は、２５６ビットに限らない。例えば、５１２ビットでもよいし、５１１４ビットでもよい。また、バッファ６６０，６６１のサイズは、データのビット長と制御信号のビット長とを加算した合計ビット長の２倍以上あればよい。即ち、対応データを２個以上記憶できるものであればよい。例えば、このシステムで指定されうるデータのビット長の最大値が５１１４ビットである場合、バッファ６６０，６６１のサイズは、それぞれ（５１１４ビット＋制御信号のビット長）×２以上あることが望ましい。
図３２は、無線通信制御部２０と完全性保証処理部４３０の他の例を示す図である。図３２に示す完全性保証処理部４３０は、完全性認証子生成部４３４，４３５を有している。
図３２が図３１と異なる点は、完全性認証子付加器６８０と完全性確認器６８１が完全性保証処理部４３０にはなく、無線通信制御部２０に設けられている点である。図３２の場合は、ＣＰＵ２９からの一度の転送命令により完全性認証子生成器６７０が４個の完全性認証子を完全性認証子付加器６８０に対して転送する。一方、完全性認証子生成器６７１は、ＣＰＵ２９からの一度の転送命令により４個の完全性認証子を完全性確認器６８１に転送する。
図３２の場合には、完全性認証子生成器６７０から完全性認証子付加器６８０へのバス９０のデータ転送量は、３２ビット×４となる。また、完全性認証子生成器６７１のバス９０のデータ転送量も、３２ビット×４となる。
図３２の完全性保証処理部４３０から無線通信制御部２０へのデータ転送量は、図３１のように完全性認証子生成器６７０から完全性認証子付加器６８０に対してデータを返送する必要がないので、図３１の返送データ転送量に比べて大幅に削減されることになる。
なお、図３２に示す完全性保証処理部４３０の完全性認証子生成部４３４と完全性認証子生成部４３５とは同じ構成なので一つにまとめてもよい。
また、図３１，図３２の場合は、バス９０のデータ転送処理と、バッファ６６０，６６１の入出力処理と、完全性認証子生成器６７０，６７１の認証子生成処理と、完全性認証子付加器６８０の認証子付加処理と、完全性確認器６８１の確認処理とが、複数のデータを「まとめて」処理する場合を示したが、ＣＰＵ２９とバス９０との使用効率から見れば、バス９０のデータ送信処理またはデータ受信処理の少なくとも一方を、「一つの命令により」あるいは「複数のデータをバラバラではなく一塊にして」行うことが望ましい。
また、図３１，図３２のいずれの場合も、完全性認証子生成器６７０と完全性認証子生成器６７１と完全性認証子付加器６８０と完全性確認器６８１は、ハードウェアで実現してもよいし、ソフトウェアで実現してもよいし、ハードウェアとソフトウェアとの組み合わせで実現してもよい。
図３３は、暗号化部４２２の他の構成を示す図である。
図３３は、複数のバッファを設けてスイッチＳＷにより切り替える場合を示している。スイッチＳＷは、例えば、論理チャネル識別子により切り替えることができる。即ち、論理チャネルがｎ個ある場合に、バッファをｎ個設けることにより、各論理チャネル毎に乱数列を予め準備しておくことができる。
図３４は、バッファをｎ個設け、排他的論理和演算回路をｎ個設けた場合を示している。
図３５の場合は、バッファをｎ個設け、暗号器を複数個設けた場合を示している。
このように、論理チャネル毎にバッファ等を複数個準備しておくことにより、チャネル毎の秘匿処理を高速に行うことが可能になる。
なお、図示していないが、復号化部も図３３，図３４，図３５のように、チャネル毎に複数のバッファ等を備えるようにしても構わない。また、更に、完全性認証子付加部４３２、完全性確認部４３３においても図３３，図３４，図３５のように、チャネル毎に複数のバッファを設けるようにしても構わない。
実施の形態３における構成は、図２７に示すものに限られるものではなく、例えば、図４，図５，図６，図７，図８，図１０，図１１等に示したような構成をとるようにしても構わない。例えば、図４に示したように、秘匿処理と完全性保証処理とを１つのモジュールで行っても構わない。また、暗号化と復号化とを１つのモジュールで行っても構わない。また、完全性認証付加と完全性確認とを１つのモジュールで行っても構わない。また、各モジュールを複数備えるようにしても構わない。
なお、バッファ６２０，６２１，６６０，６６１は，先入れ先出しメモリでなくてもよく、シフトメモリ、アドレスマップッドメモリ、キャッシュメモリ、レジスタであってもよい。
また、バッファ６２０，６２１，６６０，６６１が、ＣＰＵ２９からアクセスされる場合は、メモリアドレスによりアクセスされてもよいし、入出力アドレスによりアクセスされてもよい。
また、実施の形態３で説明した暗号化装置、復号化装置、完全性認証子付加部（装置）、完全性確認部（装置）、完全性認証子生成部（装置）は、無線通信装置に用いられるものに限らず、有線通信装置、コンピュータ、その他の電子機器にも用いることができる。
前述した秘匿・完全性保証処理部４０は、ハードウェアで構成することができる。例えば、ＦＰＧＡやカスタムＬＳＩで実現することができる。また、秘匿・完全性保証処理部４０は、ソフトウェアプログラムで実現することもできる。秘匿・完全性保証処理部４０がソフトウェアプログラムで実現される場合、ソフトウェアプログラムは無線通信制御部２０にあるＣＰＵにより実行されることになる。
また、秘匿・完全性保証処理部４０は、ハードウェアとソフトウェアの組み合わせにより実現することができる。例えば、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）とそのＤＳＰにより実行されるマイクロプログラムやファームウェアプログラムにより実現することができる。
以下、図１７から図２０を用いて、具体例を説明する。
図１７は、暗号化／復号化部４２１の中で用いられる暗号化モジュール５１（又は復号化モジュール７１）の構成図である。
暗号化モジュール５１は、鍵スケジュール部５１１とデータランダマイズ部５１２を有している。鍵スケジュール部５１１は、１つの鍵Ｋを入力してｎ個の拡大鍵ＥｘｔＫｌ〜ＥｘｔＫｎを生成する。データランダマイズ部５１２は、関数ＦとＸＯＲ回路とにより乱数を発生させる。関数Ｆは、拡大鍵を入力して非線形データ変換を行う。
暗号モジュール５１においては、例えば、
（１）ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、又は、
（２）国際公開番号ＷＯ９７／９７０５（米国特許出願番号０８／８３６４０）に開示されたブロック暗号アルゴリズムであるＭＩＳＴＹ、又は、
（３）上記ブロック暗号アルゴリズムＭＩＳＴＹをベースとした６４ビットブロック暗号であり、次世代携帯電話用国際標準暗号（ＩＭＴ２０００）として採用されることが決定されたブロック暗号アルゴリズムであるＫＡＳＵＭＩ、又は、
（４）日本特許出願番号２０００−６４６１４（出願日２０００年３月９日）に記載されたブロック暗号アルゴリズムであるＣａｍｅｌｌｉａなどのブロック暗号アルゴリズムを用いることができる。また、復号モジュール７１においても、ＤＥＳ、ＭＩＳＴＹ、ＫＡＳＵＭＩ又はＣａｍｅｌｌｉａなどのブロック暗号アルゴリズムを用いることができる。
図１８は、前述した秘匿・完全性保証処理部４０の実装形式を示す図である。
図１８は、ＦＰＧＡ又はＩＣ又はＬＳＩの中に前述した秘匿・完全性保証処理部４０が実現されている場合を示している。即ち、前述した秘匿・完全性保証処理部４０は、ハードウェアで実現することができる。また、図示していないが、プリントサーキットボードにより実現することも可能である。
図１９は、前述した秘匿・完全性保証処理部４０をソフトウェアで実現する場合を示している。
前述した秘匿・完全性保証処理部４０は、暗号化プログラム４７で実現することができる。暗号化プログラム４７は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）４２（記録媒体の一例）に記憶されている。暗号化プログラム４７は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）又はフレキシブルディスク又は固定ディスク等の他の記録媒体に記録されていてもよい。また、暗号化プログラム４７は、サーバコンピュータからダウンロードされてもよい。暗号化プログラム４７は、サブルーチンとして機能する。暗号化プログラム４７は、ＲＡＭ４５に記憶されたアプリケーションプログラム４６からサブルーチンコールにより呼び出されて実行される。或いは、暗号化プログラム４７は、割り込み制御部４３で受け付ける割り込みの発生により起動されるようにしても構わない。メモリ５５は、ＲＡＭ４５の一部であっても構わない。アプリケーションプログラム４６、暗号化プログラム４７は、ＣＰＵ４１により実行されるプログラムである。
図２０は、無線通信制御部２０で動作するアプリケーションプログラム４６が暗号化プログラム４７を呼び出すメカニズムを示している。
アプリケーションプログラム４６は、鍵ＫとイニシャルバリューＩＶと平文Ｍと暗号文Ｃをパラメータにして暗号化プログラム４７を呼び出す。暗号化プログラム４７は、鍵ＫとイニシャルバリューＩＶと平文Ｍを入力し、暗号文Ｃを返すものである。暗号化プログラム４７と復号プログラムが同一のときは、鍵ＫとイニシャルバリューＩＶと暗号文Ｃと平文Ｍをパラメータにして暗号化プログラム４７を呼び出す。
また、図示しないが、暗号化プログラム４７は、デジタルシグナルプロセッサと、そのデジタルシグナルプロセッサにより読み込まれて実行されるプログラムによって実現しても構わない。即ち、ハードウェアとソフトウェアの組み合わせによって暗号化プログラム４７を実現しても構わない。
図１８，図１９，図２０は、主として、暗号化の場合を説明したが、復号化でも同様の方式で実現できる。
図１８及び図１９に示したような暗号化形態及び復号化形態は、電子機器に対してインストールすることができる。例えば、パーソナルコンピュータやファクシミリ装置や携帯電話やビデオカメラやデジタルカメラやテレビカメラ等のあらゆる電子機器にインストールすることができる。特に、この実施の形態における特徴が発揮できるのは、複数のチャネルからのデータを暗号化復号化する場合に有効である。或いは、複数のユーザからのデータがアットランダムに到着して復号化する場合に、或いは、複数のユーザに対するデータがアットランダムに発生して、それぞれのデータをリアルタイムに暗号化するような場合に有効である。即ち、暗号化復号化するデータの数に比べて暗号化復号化する装置の数が少ない場合に、前述した実施の形態の暗号化、復号化が非常に有効である。例えば、多くのクライアントコンピュータをサポートしなければならないサーバコンピュータや多くの携帯電話機からのデータを集配しなければならない基地局や回線コントローラなどに、前述した暗号化方式や復号化方式が非常に有効である。
また、前述した例においては、無線通信制御部２０と秘匿・完全性保証処理部４０がバスを介したパラレルインタフェースでつながれている場合を示したが、シリアルインタフェースを用いても構わない。また、端末ＩＦ部１０と秘匿・完全性保証処理部４０及び無線通信部３０と秘匿・完全性保証処理部４０がシリアルインタフェースで接続される場合を示したが、より高速な処理を行うためには、シリアルインタフェースではなく、パラレルインタフェースを用いても構わない。
また、図９，図１０においては、秘匿処理部４６０を秘匿・完全性保証処理部４０の内部に設ける場合を示したが、秘匿処理部４６０を秘匿・完全性保証処理部４０から外部に独立させて、秘匿処理部４６０を端末ＩＦ部１０と無線通信部３０との間に設けてもよい。
産業上の利用可能性
以上のように、前述した実施の形態によれば、バッファを用いて複数データを予め保持するようにしたので、秘匿処理と完全性保証処理を高速に実行することが可能になる。
また、秘匿処理と完全性保証処理のためのデータ転送回数が少なくなり、ＣＰＵとバスの負荷を軽減することができる。
また、上記実施の形態によれば、秘匿・完全性保証処理部の内部にチャネルの数やデータ量に応じて複数の秘匿処理部と複数の完全性保証処理部を設けているので、同時並列処理による高速データ処理が可能となる。
【図面の簡単な説明】
図１は、移動体通信システムの構成図。
図２は、無線制御局（ＲＮＣ）１２０の構成図。
図３は、実施の形態１の無線端末（ＭＳ）１００の構成図。
図４は、実施の形態１の秘匿・完全性保証処理部４０の構成図。
図５は、実施の形態１の秘匿・完全性保証処理部４０の構成図。
図６は、実施の形態１の秘匿・完全性保証処理部４０の構成図。
図７は、実施の形態１の秘匿・完全性保証処理部４０の構成図。
図８は、実施の形態１の秘匿・完全性保証処理部４０の構成図。
図９は、実施の形態２の無線端末（ＭＳ）１００の構成図。
図１０は、実施の形態２の秘匿・完全性保証処理部４０の構成図。
図１１は、実施の形態２の秘匿・完全性保証処理部４０の構成図。
図１２は、暗号化方式及び復号化方式の一例を示す図。
図１３は、実施の形態２の秘匿・完全性保証処理部４０の構成図。
図１４は、ＡＲＩＢ  ＳＴＤ−Ｔ６３  ３３．１０２，３Ｇ  Ｓｅｃｕｒｉｔｙ；Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｓｅｃｔｉｏｎ  ６．３．に示された図。
図１５は、ＡＲＩＢ  ＳＴＤ−Ｔ６３  ３３．１０２，３Ｇ  Ｓｅｃｕｒｉｔｙ；Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｆｉｇｕｒｅ  １６ｂ．に示された図。
図１６は、ＡＲＩＢ  ＳＴＤ−Ｔ６３  ３３．１０２，３Ｇ  Ｓｅｃｕｒｉｔｙ；Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｆｉｇｕｒｅ  １６．に示された図。
図１７は、暗号化／復号化部４２１の中で用いられる暗号化モジュール５１（又は復号化モジュール７１）の構成図。
図１８は、秘匿・完全性保証処理部４０の実装形式を示す図。
図１９は、秘匿・完全性保証処理部４０をソフトウェアで実現する場合を示す図。
図２０は、無線通信制御部２０で動作するアプリケーションプログラム４６が暗号化プログラム４７を呼び出すメカニズムを示す図。
図２１は、ＲＬＣ非透過モードのときのデータ９２，９３の具体例を示す図。
図２２は、透過データ９５，９６の一例として音声データの具体例を示す図。
図２３は、透過データ９５，９６の一例として非制限デジタルデータの具体例を示す図。
図２４は、従来の携帯電話機５００を示す図。
図２５は、実施の形態３の秘匿処理の暗号化方式及び復号化方式を示す図。
図２６は、実施の形態３の完全性保証処理部の完全性認証方式を示す図。
図２７は、実施の形態３の無線通信制御部２０と秘匿・完全性保証処理部４０の構成図。
図２８は、実施の形態３の秘匿処理部４２０の構成図。
図２９は、実施の形態３の秘匿処理部４２０の構成図。
図３０は、実施の形態３の秘匿処理部４６０の構成図。
図３１は、実施の形態３の完全性保証処理部４３０の構成図。
図３２は、実施の形態３の完全性保証処理部４３０の構成図。
図３３は、実施の形態３の暗号化部４２２が複数のバッファを有する構成図。
図３４は、実施の形態３の暗号化部４２２が複数のバッファを有する構成図。
図３５は、実施の形態３の暗号化部４２２が複数のバッファを有する構成図。
【図１】
0004464046.tif 000002
【図２】
0004464046.tif 000003
【図３】
0004464046.tif 000004
【図４】
0004464046.tif 000005
【図５】
0004464046.tif 000006
【図６】
0004464046.tif 000007
【図７】
0004464046.tif 000008
【図８】
0004464046.tif 000009
【図９】
0004464046.tif 000010
【図１０】
0004464046.tif 000011
【図１１】
0004464046.tif 000012
【図１２】
0004464046.tif 000013
【図１３】
0004464046.tif 000014
【図１４】
0004464046.tif 000015
【図１５】
0004464046.tif 000016
【図１６】
0004464046.tif 000017
【図１７】
0004464046.tif 000018
【図１８】
0004464046.tif 000019
【図１９】
0004464046.tif 000020
【図２０】
0004464046.tif 000021
【図２１】
0004464046.tif 000022
【図２２】
0004464046.tif 000023
【図２３】
0004464046.tif 000024
【図２４】
0004464046.tif 000025
【図２５】
0004464046.tif 000026
【図２６】
0004464046.tif 000027
【図２７】
0004464046.tif 000028
【図２８】
0004464046.tif 000029
【図２９】
0004464046.tif 000030
【図３０】
0004464046.tif 000031
【図３１】
0004464046.tif 000032
【図３２】
0004464046.tif 000033
【図３３】
0004464046.tif 000034
【図３４】
0004464046.tif 000035
【図３５】
0004464046.tif 000036