以下、本実施の形態を図面を参照して詳細に説明する。
図1は、送信装置および受信装置を示す図である。送信装置1はフレーム3を送信し、受信装置2は送信装置1からフレーム3を受信する。フレーム3には、1またはそれ以上のデータパケットを含めることができる。図1の例では、フレーム3に、データパケット3a,3bが含まれる。
送信装置1は、暗号化部1aおよび送信部1bを有する。暗号化部1aは、データパケット3a,3bそれぞれを暗号化する。暗号化には、送信装置1が保持する暗号鍵を使用する。暗号鍵は、例えば、受信装置2が保持する復号鍵に対応するものである。更に、暗号化には、データパケット3a,3bの送信に用いるフレーム3のフレーム番号3cを使用する。フレーム番号3cは、例えば、初期化ベクタの生成に使用する。送信部1bは、暗号化部1aで暗号化したデータパケット3a,3bを含むフレーム3を送信する。
受信装置2は、受信部2aおよび復号部2bを有する。受信部2aは、送信装置1からフレーム3を受信する。復号部2bは、受信部2aで受信したフレーム3に含まれるデータパケット3a,3bそれぞれを復号する。復号には、受信装置2が保持する復号鍵を使用する。復号鍵は、例えば、送信装置1が保持する暗号鍵に対応するものである。更に、復号には、データパケット3a,3bの送信に用いられたフレーム3のフレーム番号3cを使用する。フレーム番号3cは、例えば、初期化ベクタの生成に使用する。
ここで、フレーム番号3cは、各フレームを識別する番号であり、例えば、送信装置1または受信装置2によって定義される。フレーム番号3cには、フレーム毎に1ずつ増加する連番を用いることができる。フレーム番号3cは、フレーム3に含まれていることが考えられる。この場合、受信装置2は、フレーム3からフレーム番号3cを抽出して、復号に用いることができる。ただし、受信装置2が、現在のフレーム番号を管理し、自装置で管理するフレーム番号に基づいて復号してもよい。
また、送信装置1および受信装置2は、暗号アルゴリズムとして、共通鍵暗号方式や公開鍵暗号方式を用いることができる。共通鍵暗号方式としては、例えば、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)が考えられる。共通鍵暗号方式の場合、送信装置1の暗号鍵と受信装置2の復号鍵とは同一の鍵(共通鍵)である。一方、公開鍵暗号方式の場合、送信装置1の暗号鍵と受信装置2の復号鍵とは異なる鍵(公開鍵および秘密鍵)である。共通鍵暗号方式の場合、送信装置1と受信装置2とは、暗号鍵/復号鍵として用いる共通鍵を予め合意しておく。
また、送信装置1および受信装置2は、暗号鍵/復号鍵を、定期または不定期に変更することができる。特に、フレーム番号が所定の周期で循環する場合(例えば、フレーム毎に番号が1ずつ増加し、表現可能な最大値の次は最小値に戻る場合)は、暗号の安全性の観点から、循環周期毎に少なくとも1回鍵を変更することが好ましい。また、送信装置1および受信装置2は、暗号化および復号したデータパケット数に応じて、鍵を変更するようにしてもよい。
また、フレーム3に、暗号化したデータパケットと暗号化しないデータパケットとを混在させることもできる。また、上記では送信装置1と受信装置2とが1対1で通信を行う場合を考えたが、送信装置1が複数の受信装置2宛てのデータパケットを送信する場合も考えられる。この場合、フレーム3に複数の受信装置2宛てのデータパケットを混在させることもできる。また、複数の送信装置1が受信装置2宛てのデータパケットを送信する場合も考えられる。この場合、フレーム3に複数の送信装置1からのデータパケットを混在させることもできる。
また、データパケットの暗号化および復号では、暗号鍵/復号鍵とフレーム番号3cとに加えて、更にフレーム3内でのそのデータパケットの位置を示すインデックスを使用することもできる。インデックスは、例えば、そのデータパケットがフレーム3内で何番目のデータパケットかを示す番号である。フレーム番号3cとインデックスとから、初期化ベクタを生成することが考えられる。なお、送信装置1は、インデックスをデータパケット3a,3bそれぞれに付加して送信してもよい。
また、暗号化および復号では、フレーム番号3cを示すビット列の一部分のみを抽出して使用することも考えられる。また、フレーム番号3cを示すビット列に拡張ビットを付加したビット列を使用することも考えられる。このようなフレーム番号3cを示すビット列の拡張や縮退は、フレーム番号3cの循環周期と異なる周期で暗号鍵/復号鍵を変更する場合に特に有効である。なお、フレーム番号3cや前述のインデックスは、初期化ベクタの生成以外の用途で使用することもできる。例えば、暗号鍵/復号鍵とフレーム番号3cとを結合したビット列を、一時的な暗号鍵/復号鍵として使用することも考えられる。
このような送信装置1によれば、暗号化部1aにより、データパケット3a,3bそれぞれが、その送信に用いられるフレーム3のフレーム番号3cと暗号鍵とに基づいて暗号化される。そして、送信部1bにより、暗号化されたデータパケット3a,3bを含むフレーム3が送信される。また、このような受信装置2によれば、受信部2aにより、データパケット3a,3bを含むフレーム3が受信される。そして、復号部2bにより、受信されたフレーム3に含まれるデータパケット3a,3bそれぞれが、フレーム3のフレーム番号3cと復号鍵とに基づいて復号される。
これにより、送信装置1は、復号鍵以外の情報であって、受信装置2がデータパケット3a,3bを復号するために用いる情報を、データパケット3a,3bそれぞれに付加して送信しなくてもよい。受信装置2は、復号鍵以外の復号に用いる情報は、データパケット3a,3bの送信に用いられたフレーム3のフレーム番号3cから得ることができる。従って、データパケット3a,3bの暗号化に伴う通信量の増大が抑制される。
以下、上記の送信方法および受信方法を移動通信システムに適用した場合について更に詳細に説明する。ただし、上記の送信方法および受信方法は、固定無線通信システムや有線通信システムなど他の種類の通信システムに適用することもできる。また、以下に示す移動通信システムでは、移動局から基地局への通信(上り通信)と基地局から移動局への通信(下り通信)の両方でデータパケットの暗号化を行っているが、何れか一方向でのみ暗号化を行ってもよい。
[第1の実施の形態]
図2は、移動通信システムのシステム構成を示す図である。第1の実施の形態に係る移動通信システムは、基地局100,100aおよび移動局200,200aを有する。
基地局100,100aは、移動局200,200aが自局のセル内に存在するとき、移動局200,200aとパケット通信を行うことができる無線通信装置である。基地局100,100aは、下りリンク(基地局100,100aから移動局200,200aの方向の無線リンク)によって、移動局200,200a宛てのデータパケットを送信する。また、基地局100,100aは、上りリンク(移動局200,200aから基地局100,100aの方向の無線リンク)によって、移動局200,200aが送信したデータパケットを受信する。なお、基地局100と基地局100aとは、図示しない上位局(例えば、無線ネットワーク制御装置)経由で、相互に通信が可能である。ただし、基地局100と基地局100aとが直接通信できるようにしてもよい。
移動局200,200aは、基地局100,100aとパケット通信を行うことができる無線端末装置である。移動局200,200aは、例えば、携帯電話機である。移動局200,200aは、上りリンクによって、基地局100,100aにデータパケットを送信する。また、移動局200,200aは、下りリンクによって、自局宛てのデータパケットを基地局100,100aから受信する。なお、第1の実施の形態では、移動局200が基地局100のセル内に位置している場合を考える。
ここで、基地局100,100aと移動局200,200aとは、データの秘匿性および完全性を確保するため、データパケットを暗号化して送受信することができる。下りリンクを考えると、基地局100,100aが図1の送信装置1に相当し、移動局200,200aが図1の受信装置2に相当する。また、上りリンクを考えると、移動局200,200aが送信装置1に相当し、基地局100,100aが受信装置2に相当する。
暗号処理方式として、本実施の形態では、AES−CCM(Counter with CBC MAC)を用いる場合を考える。AES−CCMでは、暗号アルゴリズムとして、共通鍵暗号方式であるAESを用いる。また、暗号利用モードとして、カウンタモード(CTRモード)を用いる。更に、CBC(Cipher Block Chaining)モードによって生成した認証データ(MAC:Message Authentication Code)をデータパケットに付加する。AES−CCMの詳細については、後で説明する。ただし、基地局100,100aおよび移動局200,200aは、AES−CCM以外の暗号処理方式を用いてもよい。
図3は、基地局を示すブロック図である。基地局100は、アンテナ111、アンテナ共用器112、受信部113、復調部114、復号部115、制御情報抽出部116、パケット再生部117、ネットワークインタフェース118、パケット識別部119、パケットバッファ120、PDU生成部121、符号化部122、変調部123、送信部124、テーブル記憶部125および制御部126を有する。なお、基地局100aも、基地局100と同様のモジュール構成によって実現することができる。
アンテナ111は、送信・受信共用のアンテナである。アンテナ111は、移動局200,200aから受信した無線信号をアンテナ共用器112に出力する。また、アンテナ111は、アンテナ共用器112から取得した送信信号を無線出力する。ただし、送信用アンテナと受信用アンテナとを別々に設けるようにしてもよい。
アンテナ共用器112は、アンテナ111を送信・受信共用とするために、受信信号と送信信号とを分離する。アンテナ共用器112は、アンテナ111から取得した受信信号を、受信部113に出力する。また、送信部124から取得した送信信号を、アンテナ111に無線出力させる。受信信号と送信信号とを分離するために、アンテナ共用器112は、例えば、帯域通過フィルタ(BPF:Band Pass Filter)を備える。
受信部113は、アンテナ共用器112から取得した受信信号をデジタルベースバンド信号に変換し、復調部114に出力する。この変換処理のために、受信部113は、例えば、低雑音増幅器(LNA:Low Noise Amplifier)、周波数変換器、BPF、A/D(Analog to Digital)変換器、直交復調器などを備える。
復調部114は、受信部113から取得したデジタルベースバンド信号を復調する。復調では、所定の復調方式または制御部126によって指定される復調方式を用いる。そして、復調部114は、得られた復調信号を復号部115に出力する。
復号部115は、復調部114から取得した復調信号を復号する。例えば、復号部115は、復調信号に対しデインターリーブ、誤り訂正復号、誤り検出などの処理を行う。復号では、所定の復号方式または制御部126によって指定される復号方式を用いる。そして、復号部115は、得られた復号データを制御情報抽出部116に出力する。
制御情報抽出部116は、復号部115から取得した復号データから、移動局200,200aで生成された制御情報を抽出し、制御部126に出力する。制御情報には、例えば、移動局200,200aの通信能力を通知するためのSBC−REQ(Subscriber station Basic Capability - REQuest)、新たな共通鍵を要求するためのPKM−REQ(Privacy Key Management - REQuest)などが含まれる。また、制御情報抽出部116は、復号部115から取得した復号データからユーザデータを抽出し、パケット再生部117に出力する。
パケット再生部117は、制御情報抽出部116からユーザデータを取得し、無線区間で用いられるMAC−PDU(Medium Access Control - Protocol Data Unit)というデータ形式から上位局−基地局間で用いられるパケット形式に、データ形式の変換を行う。その際、必要に応じて、MAC−PDUの結合や分割を行うこともできる。そして、パケット再生部117は、データパケットをネットワークインタフェース118に出力する。
ここで、パケット再生部117は、復号部117aを有する。復号部117aは、暗号化されたMAC−PDUがあると、そのMAC−PDUを復号する。その際、復号部117aは、制御部126から、復号するMAC−PDUが含まれていた無線フレームのフレーム番号、無線フレーム内でのそのMAC−PDUの位置を示すインデックスおよび共通鍵(復号鍵)を取得する。そして、復号部117aは、制御部126から取得した情報に基づいてMAC−PDUを復号する。復号方法の詳細は、後で説明する。
ネットワークインタフェース118は、上位局とパケット通信を行うための通信インタフェースである。ネットワークインタフェース118は、パケット再生部117から取得したデータパケットを上位局に送信する。また、ネットワークインタフェース118は、上位局から取得したデータパケットを、パケット識別部119に出力する。
パケット識別部119は、ネットワークインタフェース118から取得したデータパケットを、パケットバッファ120に出力する。その際、パケット識別部119は、データパケットのヘッダに含まれる宛先アドレス(例えば、宛先IP(Internet Protocol)アドレス)から、宛先の移動局を特定する。これは、例えば、パケット識別部119がアドレスと移動局の識別情報とを対応付けて管理しておくことで実現できる。また、特定した移動局に対応するQoS(Quality of Service)を判断する。そして、パケット識別部119は、移動局、QoSおよびデータパケットのサイズを指定して、制御部126に帯域割り当て要求を行う。
パケットバッファ120は、パケット識別部119から取得したデータパケットを一時的に記憶するバッファメモリである。パケットバッファ120は、制御部126からの指示に応じて、記憶しているデータパケットを順次PDU生成部121に出力する。なお、パケットバッファ120は、宛先やQoSに応じてデータパケットを管理するため、記憶領域を複数の領域に分割しておくこともできる。また、パケットバッファ120は、複数のメモリ装置を備えていてもよい。
PDU生成部121は、パケットバッファ120からユーザデータのデータパケットを取得すると共に、制御部126から制御情報を取得する。制御情報には、例えば、SBC−REQやPKM−REQに対応する応答(Response)などが含まれる。PDU生成部121は、ユーザデータおよび制御情報が無線フレーム内に適切に配置されるように制御しつつ、データパケットをMAC−PDU形式に変換する。その際、必要に応じて、データパケットの結合や分割を行うこともできる。そして、PDU生成部121は、MAC−PDUおよび制御情報を符号化部122に出力する。
ここで、PDU生成部121は、暗号化部121aを有する。暗号化部121aは、制御部126からの指示に応じて、データパケットを暗号化する。その際、暗号化部121aは、制御部126から、暗号化されたMAC−PDUの送信に用いる無線フレームのフレーム番号、無線フレーム内でのそのMAC−PDUの位置を示すインデックスおよび共通鍵(暗号鍵)を取得する。そして、暗号化部121aは、制御部126から取得した情報に基づいてデータパケットを暗号化する。暗号化方法の詳細は、後で説明する。
符号化部122は、PDU生成部121から取得したMAC−PDUを符号化する。例えば、符号化部122は、MAC−PDUに対し誤り検出用パリティの付加、誤り訂正符号化、インタリーブなどの処理を行う。符号化では、所定の符号化方式または制御部126によって指定される符号化方式を用いる。そして、符号化部122は、得られた符号化データを変調部123に出力する。
変調部123は、符号化部122から取得した符号化データを変調する。変調では、所定の変調方式または制御部126によって指定される変調方式を用いる。例えば、変調部123は、QPSK(Quadrature Phase Shift Keying)や16QAM(Quadrature amplitude modulation)などのデジタル変調を行う。そして、変調部123は、得られたデジタルベースバンド信号を送信部124に出力する。
送信部124は、変調部123から取得したデジタルベースバンド信号を無線送信するための送信信号に変換し、アンテナ共用器112に出力する。この変換処理のために、送信部124は、例えば、直交変調器、D/A(Digital to Analog)変換器、周波数変換器、BPF、電力増幅器などを備える。
テーブル記憶部125は、移動局200,200aの通信に用いる共通鍵(暗号鍵かつ復号鍵)を管理するための鍵管理テーブルを記憶する。また、テーブル記憶部125は、移動局200,200aの通信能力の情報、認証情報、QoS情報、無線リソースの割り当て情報など、通信制御に用いる各種情報も記憶する。テーブル記憶部125が記憶する情報は、制御部126によって適宜参照・更新される。
制御部126は、移動局200,200aとの無線通信全般を制御する。例えば、制御部126は、無線フレームのフレーム番号を管理する。また、移動局200,200aとの通信に用いる共通鍵の更新も管理する。制御部126は、復号部117aが暗号化されたMAC−PDUを復号するとき、復号部117aにフレーム番号、インデックスおよび共通鍵を通知する。また、暗号化部121aがデータパケットを暗号化するとき、暗号化部121aにフレーム番号、インデックスおよび共通鍵を通知する。なお、上りリンクと下りリンクとで、同じ共通鍵を用いてもよいし、異なる共通鍵を用いてもよい。
また、制御部126は、パケット識別部119から帯域割り当て要求があると、QoSに応じて移動局200,200aに無線リソースを割り当てる。そして、割り当て結果に応じて、パケットバッファ120にデータパケットの出力を指示する。制御部126は、制御情報抽出部116から取得した制御情報に基づいて、上記のような各種制御を行う。また、必要に応じて制御情報を生成し、PDU生成部121に出力する。
図4は、移動局を示すブロック図である。移動局200は、アンテナ211、アンテナ共用器212、受信部213、復調部214、復号部215、制御情報抽出部216、パケット再生部217、データ処理部218、パケット識別部219、パケットバッファ220、PDU生成部221、符号化部222、変調部223、送信部224、テーブル記憶部225および制御部226を有する。なお、移動局200aも、移動局200と同様のモジュール構成によって実現することができる。
上記モジュールのうちデータ処理部218以外のモジュールの機能は、前述の基地局100が備える同名のモジュールと同様である。ただし、本実施の形態に係る移動通信システムでは、無線リソースの割り当て管理は基地局側で行われるとする。よって、移動局200は、基地局100,100aによって割り当てられる無線リソースを用いて上り通信を行う。無線リソースの割り当てを受けるため、例えば、移動局200は基地局100,100aに対して帯域要求を示す制御情報を送信する。
データ処理部218は、パケット再生部217から取得したデータパケットを用いて、表示処理や音声出力処理などの各種データ処理を行う。また、データ処理部218は、送信するデータが発生すると、データパケットを生成し、宛先アドレスを付加してパケット識別部219に出力する。
なお、移動局200は、各タイミングで何れか1つの基地局とのみ通信してもよいし、複数の基地局と並列に通信してもよい。また、移動局200は、1つの基地局につき1つのみコネクションを設定してもよいし、1つの基地局と複数のコネクションを設定してもよい。データパケットの暗号化および復号に用いる共通鍵は、例えば、コネクション毎に用意される。この場合、コネクション毎に鍵管理が行われる。
図5は、鍵管理テーブルの第1の構造例を示す図である。鍵管理テーブル125aは、基地局100のテーブル記憶部125に格納されている。移動局200のテーブル記憶部225にも、鍵管理テーブル125aと同様のテーブルが格納される。鍵管理テーブル125aは、CID(Connection IDentifier)、共通鍵およびインデックスを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられている。
CIDを示す項目には、コネクション設定時に基地局100,100aによって移動局200,200aに割り当てられる識別子が設定される。CIDは、1つの移動局に複数割り当てられることもある。
共通鍵を示す項目には、CIDが示すコネクションで用いられる共通鍵(暗号鍵かつ復号鍵)が設定される。共通鍵は、例えば、16バイト(128ビット)など所定長のビット列である。共通鍵のビット長は、使用する暗号アルゴリズムに応じて決定される。
インデックスを示す項目には、各無線フレームについてその共通鍵が使用された回数が設定される。インデックスは、例えば、1バイト(8ビット)など所定長のビット列である。インデックスは、無線フレーム毎に0に初期化され、その共通鍵を使用してデータパケットを暗号化する毎にインクリメントされる。なお、共通鍵毎にインデックスを定義する代わりに、複数の共通鍵全体で一意なインデックスを定義してもよい。
鍵管理テーブル125aの情報は、制御部126によって適宜更新される。例えば、CIDが「1」、共通鍵が「Key#a」、インデックスが「0」という情報が、鍵管理テーブル125aに登録される。これは、ある無線フレームにおいて、共通鍵Key#aが未使用であること、すなわち、CID=1のコネクションのデータパケットがまだ1つも暗号化されていないことを示している。なお、鍵管理テーブル125aのようなテーブルが、例えば、上りリンクおよび下りリンクそれぞれについて用意される。
図6は、無線フレームの構造例を示す図である。図6に示すような無線フレームが、基地局100,100aと移動局200,200aとの間の無線通信に用いられる。本実施の形態に係る移動通信システムでは、時分割複信(TDD:Time Division Duplex)方式により上り通信と下り通信とを実現する。すなわち、各無線フレームを2つの時間領域に分割し、前半を下り通信に用いるDLサブフレームとし、後半を上り通信に用いるULサブフレームとする。ただし、周波数分割複信(FDD:Frequency Division Duplex)方式により上り通信と下り通信とを実現することも可能である。
この例の場合、DLサブフレームでは、まず無線フレームの先頭を識別するための既知信号としてプリアンブルが送信される。プリアンブルに続いて、DL−MAPの領域を示すFCH(Frame Control Header)が送信される。FCHに続いて、DL−MAPが送信される。DL−MAPは、DLサブフレームの無線リソースの各移動局への割り当て状況の情報が含まれる。DL−MAPに続いて、UL−MAPが送信される。UL−MAPには、ULサブフレームの無線リソースの各移動局への割り当て状況の情報が含まれる。
また、DL−MAPには、その無線フレームのフレーム番号も含まれる。フレーム番号は、例えば、3バイト(24ビット)など所定長のビット列である。一連の無線フレームには、昇順で連番のフレーム番号が付与される。フレーム番号は、所定周期で循環する。例えば、24ビットで表現可能な最大値に達すると、次の無線フレームのフレーム番号はゼロに戻る。なお、フレーム番号は、全ての無線フレームのDL−MAPで送信しなくてもよく、間欠的に送信するようにしてもよい。所定の規則でフレーム番号が付与されていれば、過去に通知されたフレーム番号から現在の無線フレームのフレーム番号を推定できるためである。
UL−MAPに続いて、ユーザデータおよび制御情報の集合がDL−Burstとして送信される。DL−Burstには、1またはそれ以上のMAC−PDUを含めることができる。なお、暗号化したMAC−PDUと暗号化しないMAC−PDUとを混在させることも可能である。各MAC−PDUの宛先は、DL−MAPや各MAC−PDUのヘッダに含まれるCIDによって特定できる。
ULサブフレームには、レンジングコードを送信するためのレンジング領域が設けられている。レンジング領域では、移動局200,200aは、基地局100,100aの許可を受けずに送信が可能である。レンジング領域は、例えば、コネクション確立前の通信や帯域要求、ハンドオーバ要求などに用いることができる。
また、ULサブフレームには、UL−Burst領域が設けられている。移動局200,200aは、自局に割り当てられた領域で、ユーザデータおよび制御情報の集合をUL−Burstとして送信することができる。UL−Burstには、1またはそれ以上のMAC−PDUを含めることができる。なお、暗号化したMAC−PDUと暗号化しないMAC−PDUとを混在させることも可能である。
なお、DLサブフレームからULサブフレームまでの間には、TTG(Transmit/Receive Transition Gap)という空白時間が挿入されている。また、ULサブフレームから次のDLサブフレームまでの間には、RTG(Receive/Transmit Transition Gap)という空白時間が挿入されている。
図7は、MAC−PDUの第1のフォーマット例を示す図である。このMAC−PDUは、暗号化が施されたものである。第1のフォーマット例では、6バイトのヘッダ、暗号化されたペイロード、8バイトのICV(Integrity Check Value)および4バイトのCRC(Cyclic Redundancy Check)が含まれている。
ヘッダは、MAC層においてデータパケットをカプセル化するために付加される情報である。ヘッダには、誤り検出のための1バイトのHCS(Header Check Sequence)が含まれる。ペイロードは、データパケットの内容を暗号化したものであり、可変長である。ICVは、暗号化前のデータパケットの内容から生成される認証用データである。受信側では、ICVを用いて、データパケットの改竄の有無を検査することができる。ICVは、ペイロードと同様に暗号化してもよいし、暗号化しなくてもよい。CRCは、MAC層において付加されるMAC−PDU全体の誤りを検出するためのビット列である。
図8は、MAC−PDUの第2のフォーマット例を示す図である。このMAC−PDUは、図7に示したMAC−PDUと同様、暗号化が施されたものである。第2のフォーマット例では、6バイトのヘッダ、1バイトのインデックス、暗号化されたペイロード、8バイトのICVおよび4バイトのCRCが含まれている。
ヘッダ、ペイロード、ICVおよびCRCの意味は、前述の第1のフォーマット例と同様である。インデックスの意味は、前述の鍵管理テーブル125aで述べた通りである。すなわち、そのMAC−PDUが無線フレーム内で何番目の暗号化されたMAC−PDUであるかを示す番号が、MAC−PDUに付加される。MAC−PDUにインデックスを付加することで、受信側では、無線フレーム内でのMAC−PDUの格納順序を意識せずに、各MAC−PDUを復号することができる。
なお、上りリンクでは、上記のようなMAC−PDUを移動局200,200aが生成して送信し、基地局100,100aが受信して復号する。また、下りリンクでは、上記のようなMAC−PDUを基地局100,100aが生成して送信し、移動局200,200aが受信して復号する。ただし、ICVについては省略することもできる。
次に、以上のような構成を備える移動通信システムで実行される処理の詳細について説明する。まず、基地局100,100aと移動局200,200aとの間の制御メッセージの流れを説明する。次に、データパケットの暗号化処理および復号処理について説明する。その後、暗号鍵の更新処理について説明する。
図9は、制御メッセージの流れを示すシーケンス図である。ここでは、移動局200が基地局100に接続する場合を考える。以下、図9に示す処理をステップ番号に沿って説明する。
[ステップS11]移動局200は、自局の通信能力を示す制御情報(SBC−REQ)を基地局100に送信する。SBC−REQには、移動局200が使用可能な暗号アルゴリズムの情報を含めることができる。移動局200は、例えば、SBC−REQを無線フレームのUL−Burstで送信する。
[ステップS12]基地局100は、SBC−REQに対する応答を示す制御情報(SBC−RSP)を移動局200に送信する。SBC−RSPには、使用する暗号アルゴリズムの指定情報を含めることができる。また、暗号化したMAC−PDUに何の情報を付加するか(例えば、インデックスを付加するか)の情報も含めることができる。基地局100は、例えば、SBC−RSPを無線フレームのDL−Burstで送信する。
[ステップS13]移動局200は、コネクションの設定後、共通鍵の配布を要求する制御情報(PKM−REQ)を基地局100に送信する。移動局200は、例えば、PKM−REQを無線フレームのUL−Burstで送信する。
[ステップS14]基地局100は、共通鍵を生成してテーブルに登録する。そして、基地局100は、PKM−REQに対する応答を示す制御情報(PKM−RSP)に共通鍵を含めて移動局200に送信する。PKM−RSPには、更に、有効期間の情報を含めることができる。共通鍵の配布から有効期間が経過すると、その共通鍵は無効になる。基地局100は、例えば、PKM−RSPを無線フレームのDL−Burstで送信する。
移動局200は、基地局100から受信した共通鍵をテーブルに登録する。また、移動局200は、PKM−RSPが含まれていた無線フレームのフレーム番号を記憶する。このフレーム番号は、共通鍵を更新するタイミングを判断するために参照される。以降、移動局200は、テーブルに登録した共通鍵を用いて、基地局100と通信を行う。なお、上りリンク用の共通鍵と下りリンク用の共通鍵とを別個に用意してもよい。
[ステップS15]移動局200は、共通鍵を更新するタイミングになったと判断すると、ステップS13と同様に、共通鍵の配布を要求するPKM−REQを基地局100に送信する。なお、鍵更新のタイミングについては、後で詳細に説明する。
[ステップS16]基地局100は、ステップS14と同様に、共通鍵を生成してテーブルを更新すると共に、PKM−RSPに共通鍵を含めて移動局200に送信する。移動局200は、基地局100から受信した共通鍵を用いてテーブルを更新する。以降、移動局200は、更新後の共通鍵を用いて基地局100と通信を行う。
このようにして、基地局100と移動局200とは、コネクション設定時に、使用する暗号アルゴリズムや各MAC−PDUに付加する情報を合意しておく。そして、移動局200からの要求に応じて、基地局100が共通鍵を配布する。その後、基地局100と移動局200とは、定期または不定期に共通鍵を変更する。
なお、上記のシーケンスでは、移動局200からの要求に応じて基地局100が共通鍵を配布するようにしたが、基地局100からの要求に応じて移動局200が使用する共通鍵を決定するようにしてもよい。また、移動局200からの要求が無くても、基地局100が自動的に共通鍵を配布するようにしてもよい。
図10は、パケット送信処理を示すフローチャートである。ここでは、基地局100がMAC−PDUを送信する場合を考える。ただし、移動局200が送信する場合も同様である。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS21]制御部126は、次に送信する無線フレームのフレーム番号を特定する。
[ステップS22]制御部126は、テーブル記憶部125に記憶された鍵管理テーブル125aのインデックスを全てゼロに初期化する。
[ステップS23]制御部126は、次の無線フレームで送信するデータパケットが、パケットバッファ120に残っているか判断する。残りのデータパケットがある場合、処理をステップS24に進める。残りのデータパケットが無い場合、処理をステップS28に進める。
[ステップS24]PDU生成部121は、パケットバッファ120からデータパケットを取得し、データパケットの宛先に対応するCIDを特定する。暗号化部121aは、制御部126から、ステップS21で特定されたフレーム番号と、特定したCIDに対応する共通鍵およびインデックスとを取得する。そして、暗号化部121aは、フレーム番号とインデックスとから初期化ベクタを生成する。初期化ベクタの生成方法は、後で詳細に説明する。
[ステップS25]暗号化部121aは、データパケットを使用する暗号アルゴリズムに応じたビット長のメッセージブロックに分割する。次に、暗号化部121aは、メッセージブロックを用いて、認証用データであるICVを生成する。そして、暗号化部121aは、共通鍵と初期化ベクタとを用いて、メッセージブロックとICVとを暗号化する。なお、ICVの生成は省略してもよい。また、ICVを暗号化しなくてもよい。
[ステップS26]PDU生成部121は、ステップS25で暗号化したデータパケット(ペイロード)およびICVをカプセル化して、MAC−PDUを生成する。例えば、PDU生成部121は、ペイロードとICVに、MACヘッダとCRCとを付加する。
[ステップS27]制御部126は、ステップS24で特定したCIDのインデックスをインクリメント(1だけ加算)し、鍵管理テーブル125aを更新する。そして、処理をステップS23に進める。
[ステップS28]送信部124は、ステップS26で生成され、符号化部122により符号化され、変調部123により変調されたMAC−PDUを、無線フレームのDL−Burstにマッピングした信号として送信する。
このようにして、基地局100は、各データパケットについて、送信に用いる無線フレームのフレーム番号とインデックスとから初期化ベクタを生成し、初期化ベクタと予め移動局200に配布してある共通鍵とを用いてデータパケットを暗号化する。データパケット毎に初期化ベクタを用いるため、同じ共通鍵を繰り返し使用することによる安全性の低下を抑制できる。また、初期化ベクタの生成にフレーム番号を利用するため、生成が容易であると共に、使用した初期化ベクタを移動局200に再現させることも容易となる。
図11は、初期化ベクタの第1の例を示す図である。ここでは、ビット長が13バイト(104ビット)の初期化ベクタの例を示している。なお、この初期化ベクタは、ナンス(Nonce)と呼ぶこともある。初期化ベクタには、5バイトのMACヘッダ、4バイトの所定値(予約値)、3バイトのフレーム番号および1バイトのインデックスが含まれる。
MACヘッダは、MAC−PDUに付加されるMACヘッダと同じである。ただし、MAC−PDUに付加されるMACヘッダのうち誤り検出用の1バイトのHCSは除いている。所定値は、固定のビット列であり、例えば、全ビットがゼロのビット列(16進表記で0x00000000)である。フレーム番号は、暗号化するデータパケットの送信に用いる無線フレームのフレーム番号である。インデックスは、コネクション毎に定義される無線フレーム内でのMAC−PDUの順序を示す番号である。
上記の4種類のビット列を結合することで、初期化ベクタを生成する。ただし、上記の4種類のビット列を並べる順序については、種々の変形が可能である。また、上記のビット幅についても、種々の変形が可能である。
図12は、暗号化方法の例を示す図である。図12は、上記ステップS25で実行される暗号化の具体例を示している。前述の通り、本実施の形態では、暗号処理方式としてAES−CCMを用いる場合を考える。すなわち、CBCモードを用いてICVを生成し、カウンタモードを用いてデータパケットを暗号化する。
まず、データパケットを所定のビット長のメッセージブロックM1〜Mnに分割する。次に、共通鍵Kを用いて、CBCモードで認証用データを生成する。すなわち、先頭のメッセージブロックM1をAESで暗号化する。暗号結果とメッセージブロックM2との排他的論理和を演算し、演算結果をAESで暗号化する。以下同様に、前段の暗号結果とメッセージブロックMkとの排他的論理和を演算しAESで暗号化する処理を繰り返す。最後に、前段の暗号結果と末尾のメッセージブロックMnとの排他的論理和を演算し、演算結果をAESで暗号化してTagを求める。Tagが、暗号化前の認証用データである。
その後、初期化ベクタIVと共通鍵Kとを用いて、カウンタモードでメッセージブロックM1〜MnとTagとを暗号化する。すなわち、IVをインクリメントしたIV+1をAESで暗号化する。暗号結果と先頭のメッセージブロックM1との排他的論理和を演算して暗号ブロックC1を求める。以下同様に、IVを逐次インクリメントしたIV+kをAESで暗号化し、暗号結果とメッセージブロックMkとの排他的論理和を演算して暗号ブロックCkを求める。末尾のメッセージブロックMnを暗号化した後、最後に、IV+(n+1)をAESで暗号化し、暗号結果とTagとの排他的論理和を演算して暗号化したICVを求める。
このようにして得られた暗号ブロックC1〜Cnを結合したものが、MAC−PDUのペイロードとなる。なお、Tagを暗号化せずICVとして用いてもよい。また、CBCモードとカウンタモードとで異なる共通鍵を用いてもよい。また、メッセージブロックM1〜Mnの暗号化は、逐次的に行ってもよいし、その全部または一部を並列に行うこともできる。また、Tagの生成とメッセージブロックM1〜Mnの暗号化とを並列に行うこともできる。
図13は、パケット受信処理を示すフローチャートである。ここでは、移動局200がMAC−PDUを受信する場合を考える。ただし、基地局100が受信する場合も同様である。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS31]受信部213は、無線フレームを受信する。
[ステップS32]復調部214は、ステップS31で受信した無線フレームに含まれるDL−Burstを復調し、復号部215は、DL−Burstを復号する。制御情報抽出部216は、自局宛てのMAC−PDUを抽出する。
[ステップS33]制御部226は、DL−MAPを制御情報抽出部216から取得して、ステップS31で受信した無線フレームのフレーム番号を特定する。ただし、DL−MAPに含まれるフレーム番号を用いずに、制御部226が無線フレームのフレーム番号をカウントしていてもよい。
[ステップS34]制御部226は、テーブル記憶部225に記憶された鍵管理テーブル(鍵管理テーブル125aと同様のテーブル)のインデックスをゼロに初期化する。
[ステップS35]パケット再生部217は、ステップS31で受信した無線フレームに含まれるMAC−PDUのうち、未復号のものが残っているか判断する。未復号のMAC−PDUがある場合、処理をステップS36に進める。未復号のMAC−PDUが無い場合、受信処理を終了する。
[ステップS36]パケット再生部217は、制御情報抽出部216から取得したデータパケットに対応するCIDを特定する。復号部217aは、制御部226から、ステップS33で特定されたフレーム番号と、特定したCIDに対応する共通鍵およびインデックスとを取得する。そして、復号部217aは、フレーム番号とインデックスとから初期化ベクタを生成する。初期化ベクタの生成方法は、暗号化のときと同様である。
[ステップS37]復号部217aは、MAC−PDUのペイロードを使用する暗号アルゴリズムに応じたビット長の暗号ブロックに分割する。そして、復号部217aは、ステップS36で取得した共通鍵と生成した初期化ベクタとを用いて、暗号ブロックとICVとを復号する。
その後、復号部217aは、ICVを用いてペイロードの改竄の有無を検査する。ただし、ICVが付加されていないときは完全性の検査は行わない。検査に合格した場合または検査を行わなかった場合、パケット再生部217は、得られたデータパケットをデータ処理部218に出力する。
[ステップS38]制御部226は、ステップS36で特定したCIDのインデックスをインクリメント(1だけ加算)し、鍵管理テーブルを更新する。そして、処理をステップS35に進める。
このようにして、移動局200は、自局宛ての各MAC−PDUについて、無線フレームのフレーム番号とインデックスとから初期化ベクタを生成し、初期化ベクタと予め基地局100から取得した共通鍵とを用いてMAC−PDUを復号する。初期化ベクタの生成にフレーム番号を利用するため、基地局100が使用した初期化ベクタを再現することが容易であると共に、MAC−PDUに付加される情報量が抑制される。
なお、各MAC−PDUにインデックスが付加されている場合、制御部226は復号したMAC−PDU数をカウントしなくてよい。この場合、復号部217aは、各MAC−PDUに付加されているインデックスを用いて、初期化ベクタを生成することができる。
図14は、復号方法の例を示す図である。図14は、上記ステップS37で実行される復号の具体例を示している。前述の通り、本実施の形態では、暗号処理方式としてAES−CCMを用いる場合を考える。すなわち、カウンタモードを用いてMAC−PDUを復号し、CBCモードを用いて復号結果の完全性を検査する。
まず、MAC−PDUのペイロードを所定のビット長の暗号ブロックC1〜Cnに分割する。次に、初期化ベクタIVと共通鍵Kとを用いて、カウンタモードで暗号ブロックC1〜CnとICVとを復号する。すなわち、IVをインクリメントしたIV+1をAESで暗号化する。暗号結果と先頭の暗号ブロックC1との排他的論理和を演算して、メッセージブロックM1を求める。以下同様に、IVを逐次インクリメントしたIV+kをAESで暗号化し、暗号結果と暗号ブロックCkとの排他的論理和を演算してメッセージブロックMkを求める。末尾の暗号ブロックCnを復号した後、IV+(n+1)をAESで暗号化し、暗号結果とICVとの排他的論理和を演算してTag#1を求める。
その後、復号して得られたメッセージブロックM1〜Mnから、CBCモードで検査用データを生成する。すなわち、先頭のメッセージブロックM1をAESで暗号化する。暗号結果とメッセージブロックM2との排他的論理和を演算し、演算結果をAESで暗号化する。以下同様に、前段の暗号結果とメッセージブロックMkとの排他的論理和を演算しAESで暗号化する処理を繰り返す。最後に、前段の暗号結果と末尾のメッセージブロックMnとの排他的論理和を演算し、演算結果をAESで暗号化してTag#2を求める。
Tag#1とTag#2とが一致すれば、メッセージブロックM1〜Mnが改竄されていないことが確認される。そして、得られたメッセージブロックM1〜Mnを結合したものが、データパケットの内容となる。なお、ICVが暗号化されていない場合は、ICVとTag#2とを比較する。また、CBCモードとカウンタモードとで異なる共通鍵を用いてもよい。また、暗号ブロックC1〜Cnの復号は、逐次的に行ってもよいし、その全部または一部を並列に行うこともできる。
図15は、鍵更新処理を示す第1のフローチャートである。ここでは、移動局200が基地局100に共通鍵の変更を要求する場合を考える。この処理は、移動局200において繰り返し実行される。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS41]制御部226は、現在設定しているコネクションについての共通鍵を、基地局100から取得しているか判断する。共通鍵が無い場合としては、例えば、移動局200が基地局100に新たにアクセスした場合が考えられる。共通鍵がある場合、処理をステップS42に進める。共通鍵が無い場合、処理をステップS44に進める。
[ステップS42]制御部226は、共通鍵を取得してからの経過時間と取得時に基地局100から通知された有効期間とを比較し、期限切れが近いか(例えば、残り時間が所定時間未満になったか)判断する。期限切れまで十分な時間がある場合、処理をステップS43に進める。期限切れが近い場合、処理をステップS44に進める。
[ステップS43]制御部226は、共通鍵を取得したときのフレーム番号と現在のフレーム番号とを比較し、共通鍵を取得してからフレーム番号が一巡するのが近いか(例えば、フレーム番号が一巡するまでの残りの無線フレーム数が所定数未満になったか)判断する。フレーム番号が一巡するまで十分な時間がある場合、処理が終了する。フレーム番号が一巡するのが近い場合、処理をステップS44に進める。
[ステップS44]制御部226は、共通鍵の変更を要求する制御情報(例えば、PKM−REQ)を生成し、PDU生成部221に出力する。この制御情報は、無線フレームに含まれて、基地局100に送信される。
[ステップS45]制御部226は、制御情報抽出部216から、共通鍵および有効期間を含む制御情報(例えば、PKM−RSP)とその制御情報が含まれていた無線フレームのフレーム番号とを取得する。そして、制御部226は、取得した共通鍵をテーブル記憶部225に記憶された鍵管理テーブルに登録すると共に、取得した有効期間とフレーム番号とを保持する。
このようにして、移動局200は、基地局100への接続時に、データパケットの暗号化および復号に用いる共通鍵を基地局100から取得する。その後、基地局100から指定された有効期間が経過する前に、基地局100に要求して共通鍵を変更する。また、有効期間経過前であっても、フレーム番号が一巡する前に、基地局100に要求して共通鍵を変更する。これにより、同一の共通鍵と初期化ベクタとの組が、複数のデータパケットの暗号化に用いられることを(少なくとも、十分に長い時間内で)防止することが可能となる。なお、共通鍵の更新タイミングを基地局100が管理するようにしてもよい。
このような移動通信システムを用いることで、共通鍵と初期化ベクタとに基づいて、データパケットそれぞれを暗号化することができる。このため、同一の共通鍵を複数のデータパケットの暗号化に用いても、安全性の低下を抑制することができる。
このとき、初期化ベクタの生成に、データパケットが伝送される無線フレームのフレーム番号と無線フレーム内でのデータパケットの格納順序とが利用される。このため、個々のデータパケットに付加する情報のうち、初期化ベクタを受信側で再現するための情報を削減することができ、通信量を抑制することができる。また、共通鍵の更新タイミングをフレーム番号が一巡するタイミングと連動させることで、同一の共通鍵と初期化ベクタとの組が、複数のデータパケットの暗号化に用いられることを防止でき、安全性を高めることができる。
[第2の実施の形態]
次に、第2の実施の形態を図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。第2の実施の形態に係る移動通信システムでは、より容易に、フレーム番号の循環周期と異なる周期で共通鍵を更新することができる。第2の実施の形態に係る移動通信システムは、図2に示した第1の実施の形態の移動通信システムと同様に、基地局と移動局とで実現できる。この基地局および移動局は、図3,4に示したブロック図と同様のモジュール構成で実現できる。以下、図3,4と同じ符号を用いて第2の実施の形態を説明する。
図16は、鍵管理テーブルの第2の構造例を示す図である。鍵管理テーブル125bは、基地局100のテーブル記憶部125に格納されている。移動局200のテーブル記憶部225にも、鍵管理テーブル125bと同様のテーブルが格納される。鍵管理テーブル125bは、CID、共通鍵、インデックスおよび拡張パラメータを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられている。
CID、共通鍵およびインデックスを示す項目の意味は、図5に示した第1の実施の形態に係る鍵管理テーブル125aと同様である。拡張パラメータを示す項目には、フレーム番号のビット幅(例えば、24ビット)を基準として、初期化ベクタとして利用する際に拡張または縮退する範囲を示す値が設定される。
「0」は、フレーム番号を示すビット列を全て初期化ベクタに含めることを意味する。負の値は、フレーム番号を縮退して用いること、すなわち、一部のビットを削ることを意味する。例えば、「−2」の場合、上位2ビットを削って初期化ベクタの生成に用いる。この場合、共通鍵の更新周期を、フレーム番号の循環周期の4分の1にすることが考えられる。正の値は、フレーム番号を拡張して用いること、すなわち、フレーム番号に拡張ビットを付加することを意味する。拡張ビットには、フレーム番号が一巡する毎にインクリメントする値を用いることができる。例えば、「4」の場合、上位に4ビットを付加して初期化ベクタの生成に用いる。この場合、共通鍵の更新周期を、フレーム番号の循環周期の16倍にすることもできる。
なお、拡張パラメータが正の場合、現在の拡張ビットの値も鍵管理テーブル125bに登録される。例えば、基地局100が移動局200に共通鍵を配布したときに、拡張ビットをゼロに初期化する。その後、配布時からフレーム番号が一巡する毎に拡張ビットをインクリメントする。現在の拡張ビットは、基地局100と移動局200とがそれぞれ管理してもよいし、一方が管理して他方に定期または不定期に通知するようにしてもよい。
このように、フレーム番号を示すビット列を拡張または縮退して利用することで、共通鍵の更新周期をより柔軟に設定することができる。拡張パラメータは、制御情報として通知することができる。例えば、図9に示したPKM−RSPに含めて、基地局100から移動局200に通知することが考えられる。拡張パラメータは、例えば、4ビットの符号付き整数で表現することができる。
図17は、初期化ベクタの第2の例を示す図である。ここでは、ビット長が13バイト(104ビット)の初期化ベクタの例を示している。この初期化ベクタには、5バイトのMACヘッダ、3バイトの所定値(予約値)、1バイトの反復数、3バイトのフレーム番号および1バイトのインデックスが含まれる。
MACヘッダ、所定値およびインデックスの意味は、図11に示した第1の実施の形態に係る初期化ベクタと同様である。反復数は、前述の拡張ビットを含むビット列である。この例では、拡張ビットを最大で8ビットまで設定ことができる。拡張ビットが8ビット未満のときは、反復数の余りのビットはゼロにする。フレーム番号は、第1の実施の形態と同様、暗号化するデータパケットの送信に用いる無線フレームのフレーム番号である。ただし、フレーム番号を縮退して使用する場合は、縮退分だけ上位ビットをゼロにする。
例えば、拡張パラメータが「0」に設定されている場合は、反復数のビットを全てゼロとし、フレーム番号を示すビット全てを初期化ベクタに含める。拡張パラメータが「−2」に設定されている場合は、反復数のビットを全てゼロとし、フレーム番号を示すビット列の上位2ビットをゼロに置き換えて初期化ベクタに含める。拡張パラメータが「4」に設定されている場合は、反復数の上位4ビットをゼロ、下位4ビットをフレーム番号の循環回数に応じたビットとし、フレーム番号を示すビット全てを初期化ベクタに含める。
上記の5種類のビット列を結合することで、初期化ベクタを生成する。ただし、上記の5種類のビット列を並べる順序については、種々の変形が可能である。また、上記のビット幅についても、種々の変形が可能である。
ところで、移動通信システムには、隣接基地局間でフレーム番号が同期していないものもある。この場合、ハンドオーバ前後で同一の共通鍵を使用し続けると、ハンドオーバ前に出現したある共通鍵とフレーム番号との組が、ハンドオーバ後にも再度出現してしまう危険性が生じる。よって、安全性の観点からは、ハンドオーバ時には、使用する共通鍵を変更することが好ましい。
ただし、フレーム番号を拡張して使用している場合、安全性を損なわずに、ハンドオーバ時の共通鍵の変更を省略することも可能である。すなわち、ハンドオーバ時に、移動局200は、フレーム番号に付加する拡張ビットを変更(例えば、拡張ビットをインクリメント)する。拡張ビットを変更することで、フレーム番号が同じでも、異なる初期化ベクタが生成されることになる。従って、同一の共通鍵と初期化ベクタとの組が複数のデータパケットの暗号化に使用されることを防止できる。
図18は、ハンドオーバ制御の流れを示すシーケンス図である。ここでは、移動局200が、基地局100から基地局100aへのハンドオーバを行う場合を考える。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS51]移動局200は、暗号化したMAC−PDUを含む無線フレームを基地局100と送受信している。この状態で、移動局200は、基地局100からの受信電力が低下した場合など接続先基地局を切り替える判断をすると、ハンドオーバを要求する制御情報(MSHO−REQ)を基地局100に送信する。MSHO−REQには、現在のコネクションの情報、移動局200の通信能力の情報、周辺基地局のサーチ結果の情報などを含めることができる。移動局200は、例えば、MSHO−REQを無線フレームのUL−Burstで送信する。
[ステップS52]基地局100は、移動局200から受信したMSHO−REQに含まれる情報に基づいて制御情報(HO−REQ)を生成し、移動先候補の基地局100aに送信する。なお、移動先候補は複数存在してもよい。
[ステップS53]基地局100aは、基地局100から受信したHO−REQに対する回答として制御情報(HO−RSP)を基地局100に送信する。HO−RSPには、移動局200を収容可能か、QoSを保証可能か、高速ハンドオーバ制御が可能かなどの接続条件を示す情報を含めることができる。
[ステップS54]基地局100は、基地局100aから受信したHO−RSPに基づいて制御情報(BSHO−RSP)を生成し、移動局200に送信する。BSHO−RSPには、QoSを保証可能かなどの接続条件を示す情報を含めることができる。基地局100は、例えば、BSHO−RSPを無線フレームのDL−Burstで送信する。
[ステップS55]基地局100は、HO−RSPを受信したことの確認を示す制御情報(HO−ACK)を基地局100aに送信する。なお、ステップS54のメッセージとステップS55のメッセージとは、任意の順序で送信することが可能である。
[ステップS56]移動局200は、基地局100から受信したBSHO−RSPに基づいて移動先基地局を決定し(ここでは、基地局100aに決定し)、移動先基地局を示す制御情報(HO−IND)を基地局100に送信する。移動局200は、例えば、HO−INDを無線フレームのUL−Burstで送信する。
[ステップS57]基地局100は、移動局200から受信したHO−INDで指定されている移動先基地局(基地局100a)に対し、移動局200が移動することを通知する制御情報(HO−CNF)を送信する。HO−CNFには、基地局100が移動局200との通信に使用している共通鍵および拡張ビットを含めることができる。なお、拡張ビットは、ハンドオーバ前後でインクリメントされる。拡張ビットのインクリメントは、移動元の基地局100が行ってもよいし、移動先の基地局100aが行ってもよい。
[ステップS58]移動局200は、基地局100aとの通信を開始するため、レンジング要求(RNG−REQ)を基地局100aに送信する。移動局200は、例えば、RNG−REQを無線フレームのレンジング領域で送信する。
[ステップS59]基地局100aは、移動局200から受信したRNG−REQに対しレンジング応答(RNG−RSP)を移動局200に送信する。RNG−RSPには、基地局100aと移動局200との通信に用いるCIDや、共通鍵の変更の有無を示すフラグを含めることができる。基地局100aは、例えば、RNG−RSPを無線フレームのDL−Burstで送信する。
移動局200は、RNG−RSPによって共通鍵を変更すると指示された場合、共通鍵を取得するための処理を行う。一方、RNG−RSPによって共通鍵を変更しないと指示された場合、基地局100との通信に使用していた拡張ビットをインクリメントする。なお、拡張ビットの更新は、データパケットを暗号化/復号する前までに行えばよい。
このようにして、基地局100aと移動局200とは、拡張ビットを変更(例えば、インクリメント)することで、ハンドオーバ前の共通鍵を引き継いで使用することが可能となる。拡張ビットは、例えば、移動前の基地局100から移動後の基地局100aに、上位局経由で通知することができる。ただし、移動局200が移動後の基地局100aに、変更前または変更後の拡張ビットを通知するようにしてもよい。
このような移動通信システムによれば、第1の実施の形態と同様の効果が得られる。更に、第2の実施の形態に係る移動通信システムを用いることで、共通鍵の変更周期を、フレーム番号の循環周期と異なる周期に設定することが容易となる。また、拡張ビットを用いることで、安全性を損なわずに、ハンドオーバ後もハンドオーバ前と同じ共通鍵を使用し続けることができる。よって、共通鍵を変更する処理負担を軽減できると共に、ハンドオーバ後に迅速に通信を再開することができる。
[第3の実施の形態]
次に、第3の実施の形態を図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。第3の実施の形態に係る移動通信システムでは、共通鍵の更新タイミングを、暗号化したデータパケットの数にも依存させる。第3の実施の形態に係る移動通信システムは、図2に示した第1の実施の形態の移動通信システムと同様に、基地局と移動局とで実現できる。この基地局および移動局は、図3,4に示したブロック図と同様のモジュール構成で実現できる。以下、図3,4と同じ符号を用いて第3の実施の形態を説明する。
図19は、鍵管理テーブルの第3の構造例を示す図である。鍵管理テーブル125cは、基地局100のテーブル記憶部125に格納されている。移動局200のテーブル記憶部225にも、鍵管理テーブル125cと同様のテーブルが格納される。鍵管理テーブル125cは、CID、共通鍵、インデックスおよびPDU数を示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられている。
CID、共通鍵およびインデックスを示す項目の意味は、図5に示した第1の実施の形態に係る鍵管理テーブル125aと同様である。PDU数を示す項目には、共通鍵を使用したMAC−PDUの数が設定される。PDU数は、共通鍵を取得したときにゼロに初期化され、その共通鍵を用いて暗号化または復号を行う毎にインクリメントされる。
ここで、あるコネクションで短期間に大量のMAC−PDUを送受信した場合、フレーム番号が一巡する前であっても、安全性の観点から早めに共通鍵を変更することが好ましい。よって、同一の共通鍵を連続して使用できる上限として最大PDU数を予め設定しておくことが考えられる。最大PDU数は、基地局100から移動局200に制御情報として通知することができる。例えば、図9に示したPKM−RSPに含めて、基地局100から移動局200に通知することが考えられる。最大PDU数は、例えば、4バイト(32ビット)の整数型で表現することができる。
図20は、鍵更新処理を示す第2のフローチャートである。ここでは、移動局200が基地局100に共通鍵の変更を要求する場合を考える。この処理は、移動局200において繰り返し実行される。以下、図20に示す処理をステップ番号に沿って説明する。
[ステップS61]制御部226は、現在設定しているコネクションについての共通鍵を、基地局100から取得しているか判断する。共通鍵がある場合、処理をステップS62に進める。共通鍵が無い場合、処理をステップS65に進める。
[ステップS62]制御部226は、共通鍵を取得してからの経過時間と取得時に基地局100から通知された有効期間とを比較し、期限切れが近いか判断する。期限切れまで十分な時間がある場合、処理をステップS63に進める。期限切れが近い場合、処理をステップS65に進める。
[ステップS63]制御部226は、共通鍵を取得したときのフレーム番号と現在のフレーム番号とを比較し、共通鍵を取得してからフレーム番号が一巡するのが近いか判断する。フレーム番号が一巡するまで十分な時間がある場合、処理をステップS64に進める。フレーム番号が一巡するのが近い場合、処理をステップS65に進める。
[ステップS64]制御部226は、現在の共通鍵を使用して暗号化または復号したPDU数と基地局100から通知された最大PDU数とを比較し、最大PDU数の到達が近いか(例えば、最大PDU数と現在のPDU数との差が所定数未満になったか)判断する。最大PDU数まで余裕がある場合、処理を終了する。最大PDU数が近い場合、処理をステップS65に進める。
[ステップS65]制御部226は、共通鍵の変更を要求する制御情報(例えば、PKM−REQ)を生成し、PDU生成部221に出力する。この制御情報は、無線フレームに含まれて、基地局100に送信される。
[ステップS66]制御部226は、制御情報抽出部216から、共通鍵、有効期間および最大PDU数を含む制御情報(例えば、PKM−RSP)とその制御情報が含まれていた無線フレームのフレーム番号とを取得する。そして、制御部226は、取得した共通鍵をテーブル記憶部225に記憶された鍵管理テーブルに登録すると共に、PDU数をリセットする。また、取得した有効期間とフレーム番号とを保持する。
このようにして、移動局200は、基地局100から指定された有効期間が経過する前でありフレーム番号が一巡する前であっても、共通鍵の使用回数が上限に到達する前に、基地局100に要求して共通鍵を変更する。これにより、大量のMAC−PDUを短期間に送受信した場合の安全性の低下を防止することができる。なお、共通鍵の更新タイミングを基地局100が管理するようにしてもよい。
このような移動通信システムによれば、第1の実施の形態と同様の効果が得られる。更に、第3の実施の形態に係る移動通信システムを用いることで、共通鍵の更新タイミングを、共通鍵の使用回数にも依存させることができる。よって、暗号化通信の安全性をより向上させることができる。なお、第2の実施の形態と第3の実施の形態とを組み合わせた実施の形態を考えることもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。