(57)【要約】【課題】ブロック暗号アルゴリズムを採用した通信時において、全体的な転送効率を向上させる。【解決手段】排他的論理和演算器８３，８４及びＫＡＳＵＭＩ演算部８５，スイッチ８６により構成される通信用暗号鍵生成部と、排他的論理和演算器８７，８８及びＫＡＳＵＭＩ演算部８９，スイッチ９０により構成される通信用暗号鍵生成部とは、並列構成されている。これら並列構成された通信用暗号鍵生成部にて生成された通信用暗号鍵は、切替出力部９１により一つずつ順次出力され、排他的論理和演算器９３へ送られる。排他的論理和演算器９３は、端子９２からブロック毎に順次供給されたデータを、切替出力部９１からの通信用暗号鍵と排他的論理和演算する。【選択図】      図３
2004205694.tif 000002
【特許請求の範囲】
【請求項１】
前の処理対象データ用に生成した鍵情報を用いて次の処理対象データ用の鍵情報を生成する演算を、並列して行う複数の鍵情報生成部と、
上記複数の鍵情報生成部により並列して生成された複数の鍵情報を、１つずつ切替出力する切替出力部と、
順次供給される処理対象データと上記切替出力された鍵情報とを用いて所定の演算処理を行う演算処理部とを有する
ことを特徴とする暗号処理装置。
【請求項２】
請求項１記載の暗号処理装置であって、
上記鍵情報の生成の際に使用される一つの鍵要素情報を、上記並列した複数の鍵情報生成部へ供給する鍵要素記憶部と、
上記順次供給される各処理対象データに対応したカウント情報を、上記並列した複数の鍵情報生成部へ順番に振り分けて供給するカウント部とを有し、
上記各鍵情報生成部は、上記振り分けて供給されたカウント情報と上記鍵要素情報とを用いた第１の演算を行う第１の演算部と、当該第１の演算後の情報と前の処理対象データ用に生成された鍵情報とを用いた第２の演算を行う第２の演算部と、上記第２の演算後の情報から鍵情報を生成するための第３の演算を行う第３の演算部とを有することを特徴とする暗号処理装置。
【請求項３】
請求項１記載の暗号処理装置であって、
上記処理対象データは、共通鍵暗号方式を用いたブロック暗号アルゴリズムにより暗号化されるブロック単位のデータであり、
上記鍵情報は、上記共通鍵暗号方式のブロック暗号アルゴリズムで使用される通信用暗号鍵であり、
上記演算部は、上記所定の演算処理として、上記通信用暗号鍵と上記ブロック単位のデータとの排他的論理和演算を行うことにより、上記ブロック単位のデータを暗号化することを特徴とする暗号処理装置。
【請求項４】
請求項１記載の暗号処理装置であって、
上記処理対象データは、共通鍵暗号方式を用いたブロック暗号アルゴリズムにより暗号化されたブロック単位の暗号データであり、
上記鍵情報は、上記共通鍵暗号方式のブロック暗号アルゴリズムで使用される通信用暗号鍵であり、
上記演算部は、上記所定の演算処理として、上記通信用暗号鍵と上記ブロック単位の暗号データとの排他的論理和演算を行うことにより、上記ブロック単位の暗号データを復号化することを特徴とする暗号処理装置。
【請求項５】
前の処理対象データ用に生成した鍵情報を用いて次の処理対象データ用の鍵情報を生成する鍵情報生成演算を複数並列して行い、
上記鍵情報生成演算により並列して生成された複数の鍵情報を、１つずつ切替出力し、
順次供給される処理対象データと上記切替出力された鍵情報とを用いて所定の演算処理を行う
ことを特徴とする暗号処理方法。
【請求項６】
請求項５記載の暗号処理方法であって、
上記鍵情報の生成の際に使用される一つの鍵要素情報を、上記並列した複数の鍵情報生成演算へ供給し、
上記順次供給される各処理対象データに対応したカウント情報を、上記並列した複数の鍵情報生成演算へ順番に振り分けて供給し、
上記各鍵情報生成演算では、上記振り分けて供給されたカウント情報と上記鍵要素情報とを用いた第１の演算と、当該第１の演算後の情報と前の処理対象データ用に生成された鍵情報とを用いた第２の演算と、上記第２の演算後の情報から鍵情報を生成するための第３の演算とを行うことを特徴とする暗号処理方法。
【請求項７】
請求項５記載の暗号処理方法であって、
上記処理対象データは、共通鍵暗号方式を用いたブロック暗号アルゴリズムにより暗号化されるブロック単位のデータであり、
上記鍵情報は、上記共通鍵暗号方式のブロック暗号アルゴリズムで使用される通信用暗号鍵であり、
上記所定の演算処理は、上記ブロック単位のデータを上記通信用暗号鍵を用いて排他的論理和演算することによる暗号化であることを特徴とする暗号処理方法。
【請求項８】
請求項５記載の暗号処理方法であって、
上記処理対象データは、共通鍵暗号方式を用いたブロック暗号アルゴリズムにより暗号化されたブロック単位の暗号データであり、
上記鍵情報は、上記共通鍵暗号方式のブロック暗号アルゴリズムで使用される通信用暗号鍵であり、
上記所定の演算処理として、上記ブロック単位の暗号データを上記通信用暗号鍵を用いて排他的論理和演算することによる復号化であることを特徴とする暗号処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信機器間で通信されるデータの暗号化，復号化の高速処理に関し、特に、ブロック暗号アルゴリズムを利用した暗号化，復号化を行う暗号処理装置及び方法に関する。
【０００２】
【従来の技術】
通信装置を用いて他者と通信する際、通信内容を示す平文が伝送路に流されると、正規の通信相手ではない第三者は、極めて容易に通信内容を盗聴したり、通信内容を改竄したりできる。したがって、従来より、通信内容の盗聴や改竄を防止するために、暗号通信装置が広く使用されている。暗号通信装置は、平文を暗号化して伝送路へ送信すると共に、受け取った暗号文を平文へ復号化する。このように、暗号通信装置を用いれば、伝送路には第三者が解読できない暗号文のみが流れることになり、その結果、第三者による通信内容の盗聴や改竄を防止できることになる。
【０００３】
従来の暗号通信装置で使用されている暗号方法は、ＤＥＳ（Data Encryption Standard）暗号方式、ＩＤＥＡ(International Data Encryptoin Algorithm）暗号方式などの共有鍵暗号方式と、ＲＳＡ（Rivest Shamir Adleman）暗号方式などの公開鍵暗号方式とに大別される。共有鍵暗号方式は、暗号化時と復号化時で同一の暗号鍵を使用する方式であり、一方、公開鍵暗号方式は、暗号化に使用する鍵と復号化とで異なる鍵を使用する方式である。
【０００４】
ここで、公開鍵暗号方式は、暗号化及び復号化に要する計算量が多くなるので、例えば認証データを伝送する場合のように伝送されるデータ量が比較的少ない通信には使用できても、例えば画像や音声、数値データを伝送する場合のように伝送されるデータ量が多く、高いスループットが要求されるデータ通信に使用するのは難しい。したがって、それら伝送データ量が多く、高いスループットが要求されるデータ通信の際には、上記共有鍵暗号方式が一般に使用されている。
【０００５】
共有鍵暗号方式は、暗号文を復号する際に、暗号化に使用した暗号鍵と同じ復号鍵が必要となるので、暗号通信が開始される前に送信側と受信側との間で暗号鍵を統一しておかなければならない。したがって、共有鍵暗号方式を用いて通信を行う正規の通信装置は、送信側と受信側とで共有された暗号鍵（共有鍵）を予め格納しておくことになる。
【０００６】
ところで、現時点で存在する多くの暗号化方式は、何れも完全なものではない。したがって、長い時間と多くの手間をかければ、暗号文を平文へ解読することも不可能ではない。特に、同一の暗号鍵を用いた暗号文が数多く存在すると、それら暗号文の差分解析などの手法により、暗号文が第三者に解読されてしまう虞がある。それゆえ、通信の安全性を高めるために、暗号鍵を通信毎に変更する手法が考案されている。なお、各通信毎に生成される暗号鍵は、通信用暗号鍵（セッション鍵）と呼ばれている。但し、この手法においても、例えば通信用暗号鍵がそのまま伝送路に送出されると、その通信用暗号鍵自体が盗聴されてしまう虞がある。通信用暗号鍵自体が盗聴された場合、第三者がその通信用暗号鍵を用いて生成された暗号文を復号できることになる。
【０００７】
このようなことから、従来より、正規の通信装置に上記共有鍵を予め配付しておくと共に、暗号通信に先立ってあるデータを送出し、当該データと上記共有鍵とに基づいて通信用暗号鍵を生成することで、通信用暗号鍵の盗聴を防止し得る手法が考案されている。例えば第三世代無線通信では、予め端末側とネットワーク側に共通鍵を用意しておき、通信時には個々のデータブロックを識別するための識別情報であるシーケンスナンバー（ＳＮ）をブロック毎に順次割り当て、これらシーケンスナンバー毎にそれぞれ個別の通信暗号鍵を生成して暗号化する、いわゆるブロック暗号アルゴリズムが採用されている。
【０００８】
また、ブロック暗号アルゴリズムは、第三世代携帯電話(3GPP)標準規格の「ＫＡＳＵＭＩ」アルゴリズム（3GPP TS 35.202「KASUMI Specification」)を利用した「ｆ８」暗号アルゴリズム(3GPP TS 35.201「f8 and f9 Specification」)にも採用されている。
【０００９】
以下、第三世代携帯電話標準規格で採用されている「ｆ８」暗号アルゴリズムについて、図５〜図８を参照しながら説明する。
【００１０】
図５は、「ｆ８」暗号アルゴリズムによるデータの暗号化と復号化の流れを機能的に表している。この図５において、送信側の通信装置は、６４ビットの鍵要素１０１から「ｆ８」暗号アルゴリズム１０２により通信用暗号鍵１０３を生成すると共に、６４ビットブロックのデータ１０４と上記通信用暗号鍵１０３を排他的論理和演算１０５することで、暗号データ１０６のブロックを生成する。送信側の通信装置は、以上の処理をブロック毎に行う。一方、受信側の通信装置は、鍵要素１１１から「ｆ８」暗号アルゴリズム１１２により通信用暗号鍵１１３を生成すると共に、受信した暗号データ１０６と上記通信用暗号鍵１１３の排他的論理和演算１１４を行うことにより、復号データ１１５のブロックを生成（つまりデータ１０４のブロックを復元）する。当該受信側の通信装置は、以上の処理をブロック毎に行う。
【００１１】
図６は、図５の「ｆ８」暗号アルゴリズムにおける通信用暗号鍵の生成の流れを各ブロック毎の処理に分けて機能的に表す。
【００１２】
この図６において、先ず、１番目のブロック（６４ビット）で使用される通信用暗号鍵１２４は、鍵要素１２１とブロックカウント（BlockCount）と呼ばれる要素（BlockCount=0）との排他的論理和演算１２２、及び、ＫＡＳＵＭＩ演算１２３により生成される。そして、図５の送信側の通信装置は、１番目のブロックのデータ１０４と当該通信用暗号鍵１２４を使用した排他的論理和演算１０５により、１番目のブロックの暗号データ１０６を生成して送信する。次に、２番目のブロックで使用される通信用暗号鍵１２８は、鍵要素１２１とブロックカウント（BlockCount=1）との排他的論理和演算１２５、その排他的論理和演算１２５後の要素と１番目のブロックで生成された通信用暗号鍵１２４との排他的論理和演算１２６、及びＫＡＳＵＭＩ演算１２７により生成される。そして、図５の送信側通信装置は、この２番目のブロックのデータ１０４と当該通信用暗号鍵１２８を使用した排他的論理和演算１０５により、２番目のブロックの暗号データ１０６を生成して送信する。次に、３番目のブロックで使用される通信用暗号鍵１３２は、鍵要素１２１とブロックカウント（BlockCount=2）との排他的論理和演算１２９、その排他的論理和演算１２９後の要素と２番目のブロックで生成された通信用暗号鍵１２８との排他的論理和演算１３０、及び、ＫＡＳＵＭＩ演算１３１により生成される。そして図５の送信側通信装置は、この３番目のブロックのデータ１０４と当該通信用暗号鍵１３２を使用した排他的論理和演算１０５により、３番目のブロックの暗号データ１０６を生成して送信する。以下同様にして、ｎ番目のブロックで使用される通信用暗号鍵１３７までが順次生成され、図５の送信側通信装置は、その通信用暗号鍵１３７を用いてｎ番目のブロックの暗号データ１０６を生成して送信する。
【００１３】
一方、受信側の通信装置も同様であり、先ず１番目のブロックで使用される通信用暗号鍵１２４は、鍵要素１２１とブロックカウント（BlockCount=0）との排他的論理和演算１２２、及びＫＡＳＵＭＩ演算１２３により生成される。そして、図５の受信側通信装置は、１番目のブロックの暗号データ１０６と当該通信用暗号鍵１２４を使用した排他的論理和演算１１４により、１番目のブロックの復号データ１１５を生成する。次に、受信側通信装置は、２番目のブロックで使用される通信用暗号鍵１２８を、鍵要素１２１とブロックカウント（BlockCount=1）との排他的論理和演算１２５、当該排他的論理和演算１２５後の要素と１番目のブロックで生成された通信用暗号鍵１２４との排他的論理和演算１２６、及びＫＡＳＵＭＩ演算１２７により生成した後、２番目のブロックの暗号データ１０６と当該通信用暗号鍵１２８を使用した排他的論理和演算１１４により、２番目のブロックの復号データ１１５を生成する。次に、受信側通信装置は、３番目のブロックで使用される通信用暗号鍵１３２を、鍵要素１２１とブロックカウント（BlockCount=2）との排他的論理和演算１２９、当該排他的論理和演算１２９後の要素と２番目のブロックで生成された通信用暗号鍵１２８との排他的論理和演算１３０、及び、ＫＡＳＵＭＩ演算１３１により生成した後、３番目のブロックの暗号データ１０６と当該通信用暗号鍵１３２を使用した排他的論理和演算１１４により、３番目のブロックの復号データ１１５を生成する。以下同様に、受信側通信装置は、ｎ番目のブロックで使用される通信用暗号鍵１３７までを順次生成し、その通信用暗号鍵１３７を用いてｎ番目のブロックの復号データ１１５を生成する。
【００１４】
図７には、上記図５及び図６で説明した「ｆ８」暗号アルゴリズムによってデータの暗号化又は復号化を実現する従来の構成の実装例を示す。
【００１５】
図７において、端子１４０には、鍵要素が入力される。当該鍵要素は、鍵要素記憶部１４１に記憶される。当該鍵要素記憶部１４１の出力端は、排他的論理和演算器１４３の一方の入力端と接続されている。当該鍵要素記憶部１４１からは、ブロックカウンタ１４２の各ブロックカウント出力に同期して鍵要素が読み出され、上記排他的論理和演算器１４３の一方の入力端に送られる。
【００１６】
ブロックカウンタ１４２は、前述したブロックカウント（BlockCount=0）からブロックカウント（BlockCount=n）までの各ブロックカウントの値を順番に出力して、排他的論理和演算器１４３の他方の入力端に送る。
【００１７】
これにより、排他的論理和演算器１４３では、上記ブロックカウンタ１４２から順番に出力された各ブロックカウントの値と、上記鍵要素記憶器１４１から出力された鍵要素との排他的論理和演算が行われる。当該排他的論理和演算器１４３の出力は、排他的論理和演算器１４４の一方の入力端へ送られる。
【００１８】
ここで、排他的論理和演算器１４４の他方の入力端は、スイッチ１４６を介してＫＡＳＵＭＩ演算部１４５の出力端と接続されている。上記スイッチ１４６は、上記ブロックカウンタ１４２から最初のブロックカウント（BlockCount=0）の値が出力されるときにはオフ状態（開成状態）になされ、上記ブロックカウンタ１４２からブロックカウント（BlockCount=1）以降の各値が出力されるときにはオン状態（閉成状態）となされるものである。したがって、ブロックカウンタ１４２から最初のブロックカウント（BlockCount=0）の値が出力されたとき、上記排他的論理和演算器１４３の出力は、上記排他的論理和演算器１４４をそのまま通過してＫＡＳＵＭＩ演算部１４５へ送られることになる。一方、ブロックカウンタ１４２からブロックカウント（BlockCount=1）以降の各値が出力されている場合、上記排他的論理和演算器１４４では、ＫＡＳＵＭＩ演算部１４５によるＫＡＳＵＭＩ演算出力と排他的論理和演算器１４３の出力との排他的論理和演算が行われる。
【００１９】
上記ＫＡＳＵＭＩ演算部１４５でのＫＡＳＵＭＩ演算により得られた通信用暗号鍵は、排他的論理和演算器１４７の一方の入力端に送られる。また、排他的論理和演算部１４７の他方の入力端には、入力端子１４８からブロック毎にデータが入力される。
【００２０】
ここで、当該図７の構成で暗号化が行われる場合、入力端子１４８に供給されるデータは暗号化前のデータである。したがってこの場合、排他的論理和演算部１４７では、上記入力端子１４８から供給された暗号化前のデータと、上記ＫＡＳＵＭＩ演算部１４５からの通信用暗号鍵との、排他的論理和演算により、暗号データが生成される。そして、当該生成された暗号データは、出力端子１４９から後段の図示しない信号送信系の構成へ送られる。
【００２１】
一方、当該図７の構成で復号化が行われる場合、入力端子１４８に供給されるデータは、図示しない信号受信系の構成により受信されて復調された暗号データである。したがってこの場合、排他的論理和演算部１４７では、上記入力端子１４８から供給された暗号データと、上記ＫＡＳＵＭＩ演算部１４５からの通信用暗号鍵との、排他的論理和演算により、復号データが生成される。そして、当該生成された復号データは、出力端子１４９から後段の図示しない信号処理系の構成へ送られる。
【００２２】
また、上述した通信用暗号鍵の生成と暗号化又は復号化のシーケンスは、図８に示すタイミングチャートで表すことができる。
【００２３】
この図８において、暗号化又は復号化の開始時には、先ず、要素演算Ｅ１００により、鍵要素が生成される。次に、鍵生成演算Ｋ１０１により、１番目のブロックに使用される通信用暗号鍵が生成され、その後、当該鍵生成演算Ｋ１０１により生成された通信用暗号鍵を用いた排他的論理和演算Ｘ１０１が行われる。次に、鍵生成演算Ｋ１０２により、２番目のブロックに使用される通信用暗号鍵が生成され、その後、当該鍵生成演算Ｋ１０２により生成された通信用暗号鍵を用いた排他的論理和演算Ｘ１０２が行われる。以下同様である。
【００２４】
ところで、無線通信等のデータ通信時に必要とされる転送効率は、今後は更に上げることが必要になると予想されている。
【００２５】
このため、例えば特許文献１には、暗号変換すべき平文メッセージを、複数のブロック毎にフレーム化し、それら各フレームを並列処理することで、暗号化の際の転送効率を高めることを可能にした技術が提案されている。
【００２６】
【特許文献１】
特開平１１−１６１１６２号公報
【００２７】
【発明が解決しようとする課題】
しかしながら、「ｆ８」暗号アルゴリズムに採用されているブロック暗号アルゴリズムによれば、２番目以降の各ブロックで使用される各通信用暗号鍵が、それぞれ一つ前のブロックに対応して生成された通信用暗号鍵を要素として生成されている。言い換えると、２番目以降の各ブロックで使用される各通信用暗号鍵を生成するための処理は、それぞれ一つ前のブロックの通信用暗号鍵の生成演算が終了するまで開始できない。また、ブロック暗号アルゴリズムを用いた場合、図８に示したように、上記通信用暗号鍵生成の演算と上記暗号化又は復号化のための排他的論理和演算とが、各ブロック毎に繰り返し行われることになる。すなわち、ブロック暗号アルゴリズムの場合、各ブロックの暗号化又は復号化の間に、処理量の多い通信用暗号鍵生成の演算が必ず入るため、全体的な転送効率がなかなか上げられないといった問題がある。
【００２８】
なお、これらの問題は、例えば、平文メッセージを複数のブロック毎にフレーム化し、それら各フレームを並列処理することにした場合にも同様に起こり得る。すなわち、各フレーム内では、複数のブロックについてそれぞれ上述同様に、前のブロックで生成された通信用暗号鍵を用いて次のブロックの通信用暗号鍵が順次生成されることになるため、各フレーム内での処理に時間がかかってしまい、転送効率をさほど上げることができない。言い換えると、各フレームの処理時間は、殆どが通信用暗号鍵の生成のために費やされており、したがって当該通信用暗号鍵の生成時間を短縮できなければ、より高い転送効率を実現することはできない。
【００２９】
本発明は、このような課題に鑑みてなされたものであり、ブロック暗号アルゴリズムを採用した通信時において、通信用暗号鍵の生成時間を短縮可能とし、全体的な転送効率を向上させ得る、暗号処理装置及び方法を提供することを目的とする。
【００３０】
【課題を解決するための手段】
本発明の暗号処理装置は、前の処理対象データ用に生成した鍵情報を用いて次の処理対象データ用の鍵情報を生成する演算を並列して行う複数の鍵情報生成部と、複数の鍵情報生成部により並列して生成された複数の鍵情報を１つずつ切替出力する切替出力部と、順次供給される処理対象データと切替出力された鍵情報とを用いて所定の演算処理を行う演算処理部とを有する。
【００３１】
また、本発明の暗号処理方法は、前の処理対象データ用に生成した鍵情報を用いて次の処理対象データ用の鍵情報を生成する鍵情報生成演算を並列して行い、鍵情報生成演算により並列して生成された複数の鍵情報を１つずつ切替出力し、その順次供給される処理対象データと切替出力された鍵情報とを用いて所定の演算処理を行う。
【００３２】
すなわち本発明によれば、演算量が多い鍵情報の生成を並列して行うことで、鍵情報の生成処理を高速化し、全体的な転送効率を高めている。
【００３３】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について、図面を参照しながら説明する。
【００３４】
図１は、本発明にかかる一実施の形態の無線通信システムの概略構成を示す。この図１に示す無線通信システムは、本発明の暗号処理装置及び方法が適用される第三世代携帯電話端末１及び基地局２と、その他の無線端末や有線端末、通信事業者の管理サーバ、ユーザセンター等である他通信装置３とを含んで構成されている。図１の携帯電話端末１と基地局２は、共に略々同様の階層（レイヤ）構造により構成されている。以下、携帯電話端末１と基地局２の各階層の機能のうち、本発明に関連する機能のみを説明する。
【００３５】
ＲＲＣ(Radio Ressource Control)レイヤ１１，２１は、無線ベアラの確立，変更，解放を制御する。また、ＲＲＣレイヤ１１，２１は、電力制御の設定、秘匿（後述する暗号化及び復号化）手順の設定等も行う。
【００３６】
ＲＬＣ(Radio Link Control)レイヤ１２，２２は、パケット通信時の非確認型データ転送モード（Unacknowledge Mode）と確認型データ転送モード（Acknowledge Mode)におけるデータ秘匿（後述する暗号化及び復号化）、データの分割、結合、再送制御等を行う。
【００３７】
ＭＡＣ(Medium Access Control)レイヤ１３，２３は、通話時の透過型データ転送モード（Transparent Mode）におけるデータ秘匿（暗号化及び復号化）、通信量及び品質の測定、優先データ制御等を行う。
【００３８】
ＰＨＹ（物理）レイヤ（L1:Layer1)１４，２４は、送受信データの変調及び復調、拡散符号による拡散及び逆拡散を行う。
【００３９】
［復号化処理］
ここで、上記データの暗号化及び復号化は、携帯電話端末１と基地局２で実行される。なお、携帯電話端末１と基地局２のＲＬＣ１２，２２とＭＡＣ１３，２３の双方に暗号化及び復号化の機能（秘匿機能）は存在する。以下に説明する本実施の形態の暗号化，復号化は、ＲＬＣレイヤ１２，２２及びＭＡＣレイヤ１３，２３にて実行され得る。
【００４０】
次に、図２〜図４を参照して、上記ＲＬＣレイヤ１２，２２及びＭＡＣレイヤ１３，２３において暗号化，復号化機能を実行するための構成と機能について説明する。なお、以下の処理は、ハードウェア構成、又は例えばＣＰＵ（Central Processing Unit）内で実行されるソフトウェアの何れにより実現しても良い。
【００４１】
本実施の形態の例は、ＲＬＣレイヤ１２，２２及びＭＡＣレイヤ１３，２３において前記「ｆ８」暗号アルゴリズムと「ＫＡＳＵＭＩ」アルゴリズムを用いて通信用暗号鍵を生成し、その通信用暗号鍵を使用して暗号化又は復号化を行うこととする。
【００４２】
また、本発明実施の形態では、３ＧＰＰにおけるＵＥＡ（UMTS Encryption Algorithm）選択の項目に、新たにＫＡＳＵＭＩ演算を２並列処理する２並列モードの選択肢を設けると共に、携帯電話端末１と基地局２のＲＬＣレイヤ１２，２２及びＭＡＣレイヤ１３，２３に、当該２並列モードに対応したハードウェア、若しくはソフトウェアを実装する。なお、本実施の形態では、ＫＡＳＵＭＩ演算を２並列処理する例を挙げているが、本発明は２並列処理に限定されず、３並列処理などの多並列処理であっても良い。例えば３並列処理にする場合は、ＵＥＡ選択の項目に、ＫＡＳＵＭＩ演算を３並列処理する３並列モードの選択肢を設けると共に、携帯電話端末１と基地局２のＲＬＣレイヤ１２，２２及びＭＡＣレイヤ１３，２３に、当該３並列モードに対応したハードウェア、若しくはソフトウェアを実装する。
【００４３】
以下、本実施の形態の携帯電話端末１と基地局２において、上記ＫＡＳＵＭＩ演算の２並列モードにより通信用暗号鍵を生成し、データの暗号化又は復号化を行う構成について説明する。
【００４４】
図２は、本実施の形態のＲＬＣレイヤ１２，２２及びＭＡＣレイヤ１３，２３において、２並列モードにより通信用暗号鍵を生成してデータを暗号化又は復号化するための処理を、各ブロック毎の処理に分けて機能的に表している。
【００４５】
この図２において、先ず、１番目のブロック（６４ビット）で使用される通信用暗号鍵４４は、鍵要素４１とブロックカウント（BlockCount=0）との排他的論理和演算４２、及びＫＡＳＵＭＩ演算４３により生成される。
【００４６】
また、本実施の形態において、２番目のブロックで使用される通信用暗号鍵６４は、上記１番目のブロックで使用される通信用暗号鍵４４の生成と同時に（つまり並列に）生成される。当該２番目のブロックで使用される通信用暗号鍵６４は、鍵要素４１とブロックカウント（BlockCount=1）との排他的論理和演算６２、及びＫＡＳＵＭＩ演算６３により生成される。
【００４７】
次に、３番目のブロックで使用される通信用暗号鍵４８は、鍵要素４１とブロックカウント（BlockCount=2）との排他的論理和演算４５、その排他的論理和演算４５後の要素と１番目のブロックで生成された通信用暗号鍵４４との排他的論理和演算４６、及び、ＫＡＳＵＭＩ演算４７により生成される。
【００４８】
また、本実施の形態において、４番目のブロックで使用される通信用暗号鍵６８は、上記３番目のブロックで使用される通信用暗号鍵４８の生成と同時に生成される。当該４番目のブロックで使用される通信用暗号鍵６８は、鍵要素４１とブロックカウント（BlockCount=3）との排他的論理和演算６５、その排他的論理和演算６５後の要素と２番目のブロックで生成された通信用暗号鍵６４との排他的論理和演算６６、及び、ＫＡＳＵＭＩ演算６７により生成される。
【００４９】
次に、５番目のブロックで使用される通信用暗号鍵５２は、鍵要素４１とブロックカウント（BlockCount=4）との排他的論理和演算４９、その排他的論理和演算４９後の要素と３番目のブロックで生成された通信用暗号鍵４８との排他的論理和演算５０、及び、ＫＡＳＵＭＩ演算５１により生成される。
【００５０】
また、本実施の形態において、６番目のブロックで使用される通信用暗号鍵７２は、上記５番目のブロックで使用される通信用暗号鍵５２の生成と同時に生成される。当該６番目のブロックで使用される通信用暗号鍵７２は、鍵要素４１とブロックカウント（BlockCount=5）との排他的論理和演算６９、その排他的論理和演算６９後の要素と４番目のブロックで生成された通信用暗号鍵６８との排他的論理和演算７０、及び、ＫＡＳＵＭＩ演算７１により生成される。
【００５１】
以下同様にして、残りの各ブロックの通信用暗号鍵が並列に生成される。
【００５２】
図３には、上記図２で説明した並列処理による通信用暗号鍵の生成と、当該生成された通信用暗号鍵によるデータの暗号化又は復号化を実現する、本実施の形態の構成の実装例を示す。
【００５３】
図３において、端子８０には鍵要素が入力される。当該鍵要素は、鍵要素記憶部８１に記憶される。鍵要素記憶部８１の出力端は、排他的論理和演算器８３の一方の入力端、及び、排他的論理和演算器８７の一方の入力端に接続されている。当該鍵要素記憶部８１からは、タイミング制御部９５による読み出しタイミング制御の元、ブロックカウンタ８２の各ブロックカウント出力に同期して鍵要素が読み出され、上記排他的論理和演算器８３及び８７の一方の入力端に送られる。
【００５４】
ブロックカウンタ８２は、２つの出力端を備えている。当該ブロックカウンタ８２は、タイミング制御部９５による出力タイミング制御の元、一方の出力端から図２の上段にて使用される各ブロックカウント（BlockCount=0，BlockCount=2，BlockCount=4，…）の値を順番に出力し、排他的論理和演算器８３の他方の入力端に送る。また、ブロックカウンタ８２は、タイミング制御部９５による出力タイミング制御の元、他方の出力端から図２の下段にて使用される各ブロックカウント（BlockCount=1，BlockCount=3，BlockCount=5，…）の値を順番に出力して、排他的論理和演算器８７の他方の入力端に送る。
【００５５】
これにより、排他的論理和演算器８３では、上記ブロックカウンタ８２の一方の出力端から順番に出力された各ブロックカウント（BlockCount=0，BlockCount=2，BlockCount=4，…）の値と、上記鍵要素記憶器８１から出力された鍵要素との排他的論理和演算が行われる。また、排他的論理和演算器８７では、上記ブロックカウンタ８２の他方の出力端から順番に出力された各ブロックカウント（BlockCount=1，BlockCount=3，BlockCount=5，…）の値と、上記鍵要素記憶器８１から出力された鍵要素との排他的論理和演算が行われる。そして、上記排他的論理和演算器８３の出力は、排他的論理和演算器８４の一方の入力端へ送られ、排他的論理和演算器８７の出力は、排他的論理和演算器８８の一方の入力端へ送られる。
【００５６】
ここで、排他的論理和演算器８４の他方の入力端は、スイッチ８６を介してＫＡＳＵＭＩ演算部８５の出力端と接続されている。上記スイッチ８６は、タイミング制御部９５による切替タイミング制御の元、上記ブロックカウンタ８２の一方の出力端からブロックカウント（BlockCount=0）の値が出力されるときにはオフ状態（開成状態）になされ、その次以降の各ブロックカウントの各値が出力されるときにはオン状態（閉成状態）となされるものである。したがって、ブロックカウンタ８２の一方の出力端からブロックカウント（BlockCount=0）の値が出力されたとき、上記排他的論理和演算器８３の出力は、上記排他的論理和演算器８４をそのまま通過してＫＡＳＵＭＩ演算部８５へ送られることになる。一方、ブロックカウンタ８２の一方の出力端からブロックカウント（BlockCount=0）の次以降の各ブロックカウントの値が出力されている場合、上記排他的論理和演算器８４では、ＫＡＳＵＭＩ演算部８５によるＫＡＳＵＭＩ演算出力と排他的論理和演算器８３の出力との排他的論理和演算が行われる。
【００５７】
また、排他的論理和演算器８８の他方の入力端は、スイッチ９０を介してＫＡＳＵＭＩ演算部８９の出力端と接続されている。上記スイッチ９０は、タイミング制御部９５による切替タイミング制御の元、上記ブロックカウンタ８２の他方の出力端からブロックカウント（BlockCount=1）の値が出力されるときにはオフ状態（開成状態）になされ、その次以降の各ブロックカウントの各値が出力されるときにはオン状態（閉成状態）となされるものである。したがって、ブロックカウンタ８２の他方の出力端からブロックカウント（BlockCount=1）の値が出力されたとき、上記排他的論理和演算器８７の出力は、上記排他的論理和演算器８８をそのまま通過してＫＡＳＵＭＩ演算部８９へ送られることになる。一方、ブロックカウンタ８２の他方の出力端からブロックカウント（BlockCount=1）の次以降の各ブロックカウントの値が出力されている場合、上記排他的論理和演算器８８では、ＫＡＳＵＭＩ演算部８９によるＫＡＳＵＭＩ演算出力と排他的論理和演算器８７の出力との排他的論理和演算が行われる。
【００５８】
上記ＫＡＳＵＭＩ演算部８５でのＫＡＳＵＭＩ演算により得られた通信用暗号鍵と、ＫＡＳＵＭＩ演算部８９でのＫＡＳＵＭＩ演算により得られた通信用暗号鍵は、切替出力部９１に送られる。
【００５９】
切替出力部９１は、タイミング制御部９５による切替タイミング制御の元、上記ＫＡＳＵＭＩ演算部８５、８９から供給された通信用暗号鍵を一時的に記憶すると共に、ブロックカウンタ８２の各ブロックカウント（BlockCount=0，BlockCount=1，BlockCount=2，BlockCount=3，BlockCount=4，BlockCount=5，BlockCount=6，…）の本来の順番に対応して、それら一時的に記憶した通信用暗号鍵を一つずつ順番に読み出して出力する。なお、本実施の形態の場合、切替出力部９１は、一つの通信用暗号鍵が読み出された後、次に供給された通信用暗号鍵を例えば上書き保存する。勿論、切替出力部９１は、上書き保存するのではなく、全ての通信用暗号鍵を記憶しても良い。切替出力部９１が全ての通信用暗号鍵を保存する場合、例えば再送制御の際に、当該記憶している通信用暗号鍵を使用することができる。この場合、再送制御のために再度、通信用暗号鍵を生成する必要が無くなる。
【００６０】
上記切替出力部９１から順次読み出された各通信用暗号鍵は、排他的論理和演算器９３の一方の入力端に送られる。また、排他的論理和演算部９３の他方の入力端には、入力端子９２からブロック毎にデータが入力される。
【００６１】
ここで、当該図３の構成で暗号化が行われる場合、入力端子９２に供給されるデータは暗号化前のブロック毎のデータである。したがってこの場合、排他的論理和演算部９３では、上記入力端子９２から供給された暗号化前のブロック毎のデータと、上記切替出力部９１から順次出力された通信用暗号鍵との、排他的論理和演算により、ブロック毎の暗号データが生成される。そして、当該生成されたブロック毎の暗号データは、出力端子９４から後段の図示しない信号送信系の構成へ送られる。
【００６２】
一方、当該図３の構成で復号化が行われる場合、入力端子９２に供給されるデータは、図示しない信号受信系の構成により受信されて復調されたブロック毎の暗号データである。したがってこの場合、排他的論理和演算部９３では、上記入力端子９２から供給されたブロック毎の暗号データと、上記切替出力部９１から順次出力された通信用暗号鍵との、排他的論理和演算により、ブロック毎の復号データが生成される。そして、当該生成されたブロック毎の復号データは、出力端子９４から後段の図示しない信号処理系の構成へ送られる。
【００６３】
図４には、上記図３の構成における、鍵要素の入力、鍵要素とブロックカウントの排他的論理和演算及びＫＡＳＵＭＩ演算による通信用暗号鍵の生成のタイミングチャートを表している。
【００６４】
暗号化又は復号化の開始時には、先ず、図４の（ａ）に示す要素演算Ｅ１により、鍵要素が生成され、図３の鍵要素記憶部８１に入力される。
【００６５】
次に、図４の（ａ）に示す鍵生成演算Ｋ１では、ブロックカウント（BlockCount=0)と鍵要素の排他的論理和演算、及び、その演算結果を用いたＫＡＳＵＭＩ演算により、通信用暗号鍵が生成される。また同時に、図４の（ｂ）に示す鍵生成演算Ｋ２では、ブロックカウント（BlockCount=1)と鍵要素の排他的論理和演算、及び、ＫＡＳＵＭＩ演算により、通信用暗号鍵が生成される。
【００６６】
そして、上記鍵生成演算Ｋ１及びＫ２により生成された通信用暗号鍵は、前記図３の切替出力部９１に一時的に記憶された後、図４の（ｃ）に示すように、先に鍵生成演算Ｋ１による通信用暗号鍵が読み出され、前記図３の排他的論理和演算器９３にて排他的論理和演算Ｘ１され、さらにその直後、鍵生成演算Ｋ２による通信用暗号鍵が読み出され、排他的論理和演算器９３にて排他的論理和演算Ｘ２される。
【００６７】
また、上記排他的論理和演算Ｘ１とＸ２が行われているとき、図４の（ａ）に示す鍵生成演算Ｋ３では、ブロックカウント（BlockCount=2)と鍵要素の排他的論理和演算、その演算結果と鍵生成演算Ｋ１の排他的論理和演算、さらにその演算結果を用いたＫＡＳＵＭＩ演算により、通信用暗号鍵が生成される。また同時に、図４の（ｂ）に示す鍵生成演算Ｋ４では、ブロックカウント（BlockCount=3)と鍵要素の排他的論理和演算、その演算結果と鍵生成演算Ｋ２の排他的論理和演算、さらにその演算結果を用いたＫＡＳＵＭＩ演算により、通信用暗号鍵が生成される。
【００６８】
そして、上記鍵生成演算Ｋ３及びＫ４により生成された通信用暗号鍵は、切替出力部９１に一時的に記憶された後、図４の（ｃ）に示すように、先に鍵生成演算Ｋ３による通信用暗号鍵が読み出され、排他的論理和演算器９３にて排他的論理和演算Ｘ３され、さらにその直後、鍵生成演算Ｋ４による通信用暗号鍵が読み出され、排他的論理和演算器９３にて排他的論理和演算Ｘ４される。
【００６９】
また、上記排他的論理和演算Ｘ３とＸ４が行われているとき、図４の（ａ）に示す鍵生成演算Ｋ５では、ブロックカウント（BlockCount=4)と鍵要素の排他的論理和演算、その演算結果と鍵生成演算Ｋ３の排他的論理和演算、さらにその演算結果を用いたＫＡＳＵＭＩ演算により、通信用暗号鍵が生成される。また同時に、図４の（ｂ）に示す鍵生成演算Ｋ６では、ブロックカウント（BlockCount=5)と鍵要素の排他的論理和演算、その演算結果と鍵生成演算Ｋ４の排他的論理和演算、さらにその演算結果を用いたＫＡＳＵＭＩ演算により、通信用暗号鍵が生成される。
【００７０】
そして、上記鍵生成演算Ｋ５及びＫ６により生成された通信用暗号鍵は、切替出力部９１に一時的に記憶された後、図４の（ｃ）に示すように、先に鍵生成演算Ｋ５による通信用暗号鍵が読み出され、排他的論理和演算器９３にて排他的論理和演算Ｘ５され、さらにその直後、鍵生成演算Ｋ６による通信用暗号鍵が読み出され、排他的論理和演算器９３にて排他的論理和演算Ｘ６される。
【００７１】
以下同様にして、鍵生成演算Ｋ７，Ｋ８と排他的論理和演算Ｘ７，Ｘ８以降の各演算処理が行われる。
【００７２】
［まとめ］
以上説明したように、本実施の形態によれば、複雑で且つ処理量が多く演算に長い時間がかかる通信用暗号鍵の生成を、初期の段階で分岐させて並列処理しているため、通信用暗号鍵を高速に生成でき、その結果、データの暗号化や復号化のリアルタイム処理と、高い転送効率が実現可能となっている。すなわち、本実施の形態の図３の例のように、２並列モードで通信用暗号鍵を生成すれば、前述の図７に示した従来の構成に比べて２倍の速度で通信用暗号鍵を生成可能となり、その結果、転送効率も２倍に高めることができる。もちろん、３並列モードにすれば、転送効率は従来の構成に比べて３倍になる。
【００７３】
また、本実施の形態の構成は、図３に示したように、排他的論理和演算器とＫＡＳＵＭＩ演算部を並列構成し、切替出力部により通信用暗号鍵の出力タイミングを調整する構成となされているため、現行の「ｆ８」アルゴリズムのシステムを殆ど変えることなく実現可能である。さらに本実施の形態によれば、大量の通信用暗号鍵を保持することなくリアルタイム復号処理を行えること、及び、先に生成された通信用暗号鍵を用いて次の通信用暗号鍵を生成してＫＡＳＵＭＩ演算を行っているため暗号強度を殆ど損なうことなくデータ通信が可能になっていることなど、ブロック暗号アルゴリズムの特徴を活かした処理が可能である。
【００７４】
なお、上述した実施の形態の説明は、本発明の一例である。このため、本発明は上述した実施の形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。
【００７５】
また、本実施の形態の暗号処理装置は、携帯電話端末や基地局以外に、第三世代無線通信に対応した通信機能を備えたカーナビゲーション装置等の移動体端末やＰＤＡ装置（PDA：Personal Digital Assistants）等であっても良い。
【００７６】
【発明の効果】
本発明においては、前の処理対象データ用に生成した鍵情報を用いて次の処理対象データ用の鍵情報を生成する鍵情報生成演算を並列して行うことで、演算量が多い鍵情報（通信用暗号鍵）の生成時間を短縮でき、その結果、全体的な転送効率を向上させることができる。
【図面の簡単な説明】
【図１】本実施の形態の無線通信システムの概略構成を示すブロック図である。
【図２】本実施の形態の通信用暗号鍵生成の並列処理の流れを各ブロック毎の処理に分けて機能的に説明するための図である。
【図３】本実施の形態における通信用暗号鍵生成の並列処理を実現する実装例を示すブロック図である。
【図４】本実施の形態における通信用暗号鍵生成の並列処理と暗号化又は復号化のタイミングチャートである。
【図５】「ｆ８」暗号アルゴリズムによるデータの暗号化と復号化の流れを機能的に説明するための図である。
【図６】「ｆ８」暗号アルゴリズムにおいて、従来の通信用暗号鍵の生成の流れを各ブロック毎の処理に分けて機能的に説明するための図である。
【図７】通信用暗号鍵生成処理を実現する従来の実装例を示すブロック図である。
【図８】「ｆ８」暗号アルゴリズムにおける、従来の通信用暗号鍵の生成と暗号化又は復号化のタイミングチャートである。
【符号の説明】
１…携帯電話端末、２…基地局、３…他通信装置、１１，２１…ＲＲＣレイヤ、１２，２２…ＲＬＣレイヤ、１３，２３…ＭＡＣレイヤ、１４，２４…ＰＨＹ（Ｌ１）レイヤ、８１…鍵要素記憶部、８２…ブロックカウンタ、８３，８４，８７，８８，９３…排他的論理和演算器、８５，８９…ＫＡＳＵＭＩ演算部、８６，９０…スイッチ、９１…切替出力部、９５…タイミング制御部
【図１】
2004205694.tif 000003
【図２】
2004205694.tif 000004
【図３】
2004205694.tif 000005
【図４】
2004205694.tif 000006
【図５】
2004205694.tif 000007
【図６】
2004205694.tif 000008
【図７】
2004205694.tif 000009
【図８】
2004205694.tif 000010