(57)【特許請求の範囲】
【請求項１】
入力データが入力されるとともに出力データを出力する処理要素を有するブロック暗号処理であって複数のブロックを拡散符号系列として出力するブロック暗号処理を用いて、複数の拡散符号系列を生成する符号生成装置において、
前記複数の拡散符号系列の各拡散符号系列に一意に対応する系列パラメータを選択するパラメータ選択部と、
秘密鍵を取得する秘密鍵取得部と、
前記系列パラメータと前記秘密鍵とを用いて前記ブロック暗号処理を実行することにより前記複数の拡散符号系列の各拡散符号系列を生成する符号系列生成部であって、各拡散符号系列を生成する際、前記系列パラメータを用いて前記処理要素から出力される前記出力データを変更する符号系列生成部と
を備えた符号生成装置。
【請求項２】
前記符号系列生成部は、
前記ブロック暗号処理をＣＴＲ（Ｃｏｕｎｔｅｒ）モードで実行することにより前記複数の拡散符号系列の各拡散符号系列を生成し、
前記符号生成装置は、
ＣＴＲモードで用いられるカウンタ値をカウントアップし、閾値時間ごとに前記カウンタ値を前記符号系列生成部に出力する時間演算部を備えた請求項１に記載の符号生成装置。
【請求項３】
前記ブロック暗号処理は、前記処理要素として、前記入力データを置換テーブルに基づいてビット単位に置換する置換処理を有し、
前記符号系列生成部は、
前記置換処理から出力される前記出力データと前記系列パラメータの少なくとも一部とをビット単位に演算することにより、前記出力データを変更する請求項１に記載の符号生成装置。
【請求項４】
前記ブロック暗号処理は、前記処理要素として、前記入力データを置換テーブルに基づいてビット単位に置換する置換処理を有し、
前記符号系列生成部は、
前記置換処理から出力される前記出力データと前記系列パラメータの少なくとも一部とをビット単位に入れ替えることにより、前記出力データを変更する請求項１に記載の符号生成装置。
【請求項５】
前記パラメータ選択部は、
複数の系列パラメータであって、各々が複数の拡散符号系列の各々と一意に対応する複数の系列パラメータを選択し、
前記符号生成装置は、
複数の符号系列生成部を備え、前記パラメータ選択部により前記複数の系列パラメータの各々を前記複数の符号系列生成部の各々に出力することにより、前記複数の拡散符号系列を生成する請求項１から４のいずれか１項に記載の符号生成装置。
【請求項６】
入力データが入力されるとともに出力データを出力する処理要素を有するブロック暗号処理であって複数のブロックを拡散符号系列として出力するブロック暗号処理を用いて、複数の拡散符号系列を生成する符号生成装置の符号生成方法において、
パラメータ選択部が、前記複数の拡散符号系列の各拡散符号系列に一意に対応する系列パラメータを選択し、
秘密鍵取得部が、秘密鍵を取得し、
符号系列生成部が、前記系列パラメータと前記秘密鍵とを用いて前記ブロック暗号処理を実行することにより前記複数の拡散符号系列の各拡散符号系列を生成し、
符号系列生成部が、各拡散符号系列を生成する際、前記系列パラメータを用いて前記処理要素から出力される前記出力データを変更する符号生成方法。
【請求項７】
入力データが入力されるとともに出力データを出力する処理要素を有するブロック暗号処理であって複数のブロックを拡散符号系列として出力するブロック暗号処理を用いて、複数の拡散符号系列を生成する符号生成装置の符号生成プログラムにおいて、
前記複数の拡散符号系列の各拡散符号系列に一意に対応する系列パラメータを選択するパラメータ選択処理と、
秘密鍵を取得する秘密鍵取得処理と、
前記系列パラメータと前記秘密鍵とを用いて前記ブロック暗号処理を実行することにより前記複数の拡散符号系列の各拡散符号系列を生成する符号系列生成処理であって、各拡散符号系列を生成する際、前記系列パラメータを用いて前記処理要素から出力される前記出力データを変更する符号系列生成処理と
をコンピュータである符号生成装置に実行させる符号生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、秘匿性が高い複数の拡散符号系列を生成する符号生成装置、符号生成方法および符号生成プログラムに関する。
【背景技術】
【０００２】
近年、衛星通信あるいは無線通信を利用した様々なサービスが提供されている。これらのサービスでは、通信の接続性および秘匿性を実現するために、スペクトル拡散方式が用いられている。スペクトル拡散方式には、直接拡散方式と周波数ホッピング方式がある。直接拡散方式では、送信データそのものよりも広い周波数にエネルギーを拡散してデータを通信する。周波数ホッピング方式では、周波数を一定の規則に従い高速に切り替え、送受信機間で通信を行う。
直接拡散方式では、拡散符号系列を用いて、伝送したい信号を広帯域に広げている。これにより、直接拡散方式は、伝送したい信号が雑音のように見えるという特性を有する。この特性が、伝送したい信号が傍受されることを困難にし、ジャミング耐性を高くさせる。これにより、直接拡散方式は、狭帯域信号に対する干渉を起こりにくくする。このように、直接拡散方式における拡散符号系列は、他の信号との高い干渉を生じることなく、信頼できる安全な伝送を実現するために重要である。【０００３】
一般的に利用されている直接拡散方式では、周期性の短い拡散符号系列が用いられることにより、通信の接続性が高められる。しかし、周期性の短い拡散符号系列は、一定期間観測されることにより、推測される可能性が高くなり、秘匿性が低い。しかし、妨害電波からの耐性を上げるために、秘匿性を高めることが必要である。そのため、拡散符号系列の周期を長くするという方法が用いられる。あるいは、第三者が予測できない秘密情報を用いた拡散符号系列を採用するという方法が用いられる。特許文献１には、拡散符号系列の秘匿性を高める技術として、カオス系列を用いる方法が開示されている。【０００４】
特許文献１には、衛星ナビゲーションシステムおよびＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）通信システムに適したカオス拡散符号の生成方法が開示されている。特許文献１には、カオス系列による拡散符号が自己相関特性および相互相関特性を有し、秘匿性が向上することが開示されている。カオス系列による拡散符号の秘匿性は、疑似ランダム性を有する乱数性を示す。しかし、カオス系列による拡散符号の秘匿性は、暗号技術を用いた場合に示される厳密的な安全性は示されていない。また、カオス系列による拡散符号を用いて秘匿性の高いスペクトル拡散通信を行うためには、カオス系列の同期確立が必要である。しかし、特許文献１には、同期確立のための有効な方式は示されていない。
また、特許文献２から特許文献７における従来技術には、カオス系列を用いて秘匿性の向上を実現する方式が開示されている。しかし、特許文献２から特許文献７における従来技術には、カオス系列の同期確立のための有効な方式は示されていない。
カオス系列の同期確立のための有効な方式として、ｎビットブロック暗号アルゴリズムのＣＴＲ（Ｃｏｕｎｔｅｒ）モードを利用する方式が考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１０−５１１３３６号公報
【特許文献２】特開平９−１８６６３０号公報
【特許文献３】特開平１１−２６６１７９号公報
【特許文献４】特開２０００−２５２７５１号公報
【特許文献５】特開２００１−２９２１２９号公報
【特許文献６】特開２００２−２９０２７４号公報
【特許文献７】特開２００７−９６８１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、カオス系列あるいは長いレジスタサイズのフィードバックシフトレジスタを用いる符号生成方式が提案されている。従来の符号生成方式を利用した通信システムでは、拡散符号系列の秘匿性を高める、あるいは、拡散符号系列の周期を大きくすることが行われる。これにより、符号全体をサーチすることができなくなり、同期確立が困難になる。そこで、実データ送信のための拡散符号系列と同期補足のためのパイロット系列とを用いた通信システムが提案されている。
しかし、この通信システムでは、１つの通信帯域を２分割して信号を送信するため、通信効率が低下する。また、パイロット系列を用いる場合、通信システムの受信側では、一定時間経過後の拡散符号系列を導出するための専用演算機能と導出時間とが必要となる。【０００７】
複数の衛星間を中継する通信システムでは、通信を中継する中継衛星は、通信相手の衛星数および地上の管制局数に応じて、同時に複数の拡散符号系列を生成する必要がある。従来の秘匿性が高い符号生成方式では、拡散符号系列ごとに異なるカオス系列、長いレジスタサイズのフィードバックシフトレジスタ、あるいは非線形変換関数が必要となり、拡散符号系列ごとに生成装置が必要となる。よって、衛星に搭載する際の実装規模に大きな制約が出てしまうという課題があった。【０００８】
本発明では、ブロック暗号アルゴリズムの構成の一部を変更することにより、秘匿性が高い複数の拡散符号系列を生成する符号生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る符号生成装置は、入力データが入力されるとともに出力データを出力する処理要素を有するブロック暗号処理であって複数のブロックを拡散符号系列として出力するブロック暗号処理を用いて、複数の拡散符号系列を生成する符号生成装置において、
前記複数の拡散符号系列の各拡散符号系列に一意に対応する系列パラメータを選択するパラメータ選択部と、
秘密鍵を取得する秘密鍵取得部と、
前記系列パラメータと前記秘密鍵とを用いて前記ブロック暗号処理を実行することにより前記複数の拡散符号系列の各拡散符号系列を生成する符号系列生成部であって、各拡散符号系列を生成する際、前記系列パラメータを用いて前記処理要素から出力される前記出力データを変更する符号系列生成部と
を備えた。
【発明の効果】
【００１０】
本発明に係る符号生成装置は、複数のブロックを拡散符号系列として出力するブロック暗号処理を用いて、複数の拡散符号系列を生成する。パラメータ選択部は、複数の拡散符号系列の各拡散符号系列に一意に対応する系列パラメータを選択する。秘密鍵取得部は、秘密鍵を取得する。符号系列生成部は、系列パラメータと秘密鍵とを用いてブロック暗号処理を実行することにより複数の拡散符号系列の各拡散符号系列を生成する。符号系列生成部は、各拡散符号系列を生成する際、系列パラメータを用いて処理要素から出力される出力データを変更する。このように、本発明に係る符号生成装置によれば、拡散符号系列に一意に対応する系列パラメータを用いてブロック暗号処理の処理要素の一部を変更することで、複数の拡散符号系列を生成することができる。よって、本発明に係る符号生成装置によれば、秘匿性の高い複数の拡散符号系列を生成することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る符号生成装置１００の構成図。
【図２】実施の形態１に係る符号生成装置１００の符号生成処理Ｓ１００を示すフロー図。
【図３】実施の形態１に係る符号生成装置１００と比較するための比較例の拡散符号生成方式を示した図。
【図４】実施の形態１に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合の具体的構成図。
【図５】実施の形態１に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合のＳＢＯＸの出力構成例１−１を示す図。
【図６】実施の形態１に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合のＳＢＯＸの出力構成例１−２を示す図。
【図７】実施の形態１に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合のＳＢＯＸの出力構成例２を示す図。
【図８】実施の形態１に係る符号系列生成部１４０において図７の出力構成例２を採用する場合のＳ７関数の出力構成例２−１を示す図。
【図９】実施の形態１に係る符号系列生成部１４０において図７の出力構成例２を採用する場合のＳ９関数の出力構成例２−２を示す図。
【図１０】実施の形態１の変形例に係る符号生成装置１００の構成図。
【図１１】実施の形態２に係る符号生成装置１００ａの構成図。
【図１２】実施の形態２に係る符号生成装置１００ａの符号生成処理Ｓ１００ａを示すフロー図。
【図１３】実施の形態２に係る符号生成装置１００ａの効果の例を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１３】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係る符号生成装置１００の構成を説明する。
本実施の形態に係る符号生成装置１００は、秘匿性が高い複数の拡散符号系列を生成できる拡散符号方式を実現する。符号生成装置１００は、複数のブロックを拡散符号系列として出力するブロック暗号処理を用いて、複数の拡散符号系列を生成する。ブロック暗号処理は、複数の処理要素を有する。以下において、ブロック暗号処理をブロック暗号アルゴリズムともいう。また、ブロック暗号処理の処理要素を、ブロック暗号アルゴリズムの内部構成要素ともいう。
【００１４】
符号生成装置１００は、コンピュータである。符号生成装置１００は、プロセッサ９１０を備えるとともに、メモリ９２１、補助記憶装置９２２、入力インタフェース９３０および出力インタフェース９４０といった他のハードウェアを備える。プロセッサ９１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１５】
符号生成装置１００は、機能要素として、初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０とを備える。初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０との機能は、ソフトウェアにより実現される。
【００１６】
プロセッサ９１０は、符号生成プログラムを実行する装置である。符号生成プログラムは、初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０との機能を実現するプログラムである。
プロセッサ９１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ９１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１７】
メモリ９２１は、データを一時的に記憶する記憶装置である。メモリ９２１の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１８】
補助記憶装置９２２は、データを保管する記憶装置である。補助記憶装置９２２の具体例は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、補助記憶装置９２２は、ＳＤ（登録商標）（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記憶媒体であってもよい。
【００１９】
入力インタフェース９３０は、マウス、キーボード、タッチパネルといった入力装置と接続されるポートである。入力インタフェース９３０は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。なお、入力インタフェース９３０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
【００２０】
出力インタフェース９４０は、ディスプレイといった表示機器のケーブルが接続されるポートである。出力インタフェース９４０は、具体的には、ＵＳＢ端子またはＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。ディスプレイは、具体的には、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２１】
符号生成プログラムは、プロセッサ９１０に読み込まれ、プロセッサ９１０によって実行される。メモリ９２１には、符号生成プログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ９１０は、ＯＳを実行しながら、符号生成プログラムを実行する。符号生成プログラムおよびＯＳは、補助記憶装置９２２に記憶されていてもよい。補助記憶装置９２２に記憶されている符号生成プログラムおよびＯＳは、メモリ９２１にロードされ、プロセッサ９１０によって実行される。なお、符号生成プログラムの一部または全部がＯＳに組み込まれていてもよい。
【００２２】
符号生成装置１００は、プロセッサ９１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、符号生成プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ９１０と同じように、符号生成プログラムを実行する装置である。
【００２３】
符号生成プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ９２１、補助記憶装置９２２、または、プロセッサ９１０内のレジスタあるいはキャッシュメモリに記憶される。
【００２４】
符号生成プログラムは、初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０との各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。また、符号生成方法は、コンピュータである符号生成装置１００が符号生成プログラムを実行することにより行われる方法である。
符号生成プログラムは、コンピュータ読取可能な記憶媒体に記録されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
【００２５】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る符号生成装置１００の各部の動作について説明する。
図２は、本実施の形態に係る符号生成装置１００の符号生成処理Ｓ１００を示す図である。
図１および図２を用いて、本実施の形態に係る符号生成装置１００の符号生成処理Ｓ１００について説明する。
符号生成処理Ｓ１００は、時間演算部１２０による時間演算処理Ｓ１２０と、パラメータ選択部１３０によるパラメータ選択処理Ｓ１３０と、符号系列生成部１４０による符号系列生成処理Ｓ１４０とを有する。
【００２６】
初期値取得部１１０は、入力インタフェース９３０を介して、初期値Ｔ０を取得する。初期値取得部１１０は、取得した初期値Ｔ０を時間演算部１２０に出力する。初期値Ｔ０は、ブロック暗号処理のＣＴＲモードで用いられるカウンタ値の初期値である。
【００２７】
＜時間演算処理Ｓ１２０＞
時間演算部１２０は、ＣＴＲモードで用いられるカウンタ値をカウントアップし、閾値時間ｔごとにカウンタ値Ｃｔを符号系列生成部１４０に出力する。時間演算部１２０は、初期値取得部１１０から初期値Ｔ０を受け取る。また、時間演算部１２０は、拡散符号を生成する間隔である閾値時間ｔを取得する。時間演算部１２０は、ｔ時間後の初期値Ｔ０をカウンタ値Ｃｔとして演算し、カウンタ値Ｃｔを符号系列生成部１４０に出力する。その後は、時間演算部１２０は、カウンタ値をカウントアップし、ｔ時間ごとにカウンタ値Ｃｔを符号系列生成部１４０に出力する。時間演算部１２０は、ｔ時間後初期値演算部ともいう。
【００２８】
図３は、比較例の拡散符号生成方式を示した図である。図３に示すように、比較例の拡散符号生成方式は、ｔ時間後の初期値を生成する専用演算機能を有する。また、比較例の拡散符号生成方式は、同期を取るための同期補足機能を有する。また、比較例の符号生成方式は、生成する拡散符号系列ごとに異なるアルゴリズムを有する複数の符号系列生成部を有する。
【００２９】
時間演算処理Ｓ１２０では、時間演算部１２０は、ｔ時間後のカウンタ値Ｃｔを導出する。具体的には、時間演算部１２０は、ｔ時間分のカウンタインクリメントを実施することにより、ｔ時間後のカウンタ値Ｃｔを導出する。よって、図３のように専用演算機能を用いる必要がない。また、このように正確な時間の推移が同期されていれば、拡散符号系列は時間の推移分カウントアップしたカウンタ値から導出可能である。よって、同期を補足するための同期補足機能を用いる必要もない。
【００３０】
＜パラメータ選択処理Ｓ１３０＞
パラメータ選択処理Ｓ１３０において、パラメータ選択部１３０は、複数の拡散符号系列の各拡散符号系列に一意に対応する系列パラメータＫＰを選択する。具体的には、パラメータ選択部１３０は、入力インタフェース９３０を介して、系列パラメータＫＰを取得する。パラメータ選択部１３０は、系列パラメータＫＰに基づいて、アルゴリズム構成要素１３１を選択、または、生成する。アルゴリズム構成要素１３１は、系列パラメータＫＰに応じた拡散符号系列を生成するために用いられる。パラメータ選択部１３０は、アルゴリズム構成要素１３１を符号系列生成部１４０に出力する。
アルゴリズム構成要素１３１は、拡散符号系列に一意に対応する系列パラメータＫＰから求められた情報である。具体的には、アルゴリズム構成要素１３１は、符号系列生成処理Ｓ１４０で使用するブロック暗号アルゴリズムの処理要素から出力される出力データを変更するために用いられる。ここで、ブロック暗号アルゴリズムは、処理要素として、入力された入力データを置換テーブルに基づいてビット単位に置換する置換処理を有する。置換処理の具体例は、ＳＢＯＸである。
【００３１】
パラメータ選択部１３０は、入力された系列パラメータＫＰに基づいて、出力パラメータＯｐを選択、あるいは、生成する。出力パラメータＯｐは、ＳＢＯＸから出力される出力データの複数のビットを変更するために用いられる。そして、パラメータ選択部１３０は、出力パラメータＯｐをアルゴリズム構成要素１３１として符号系列生成部１４０に出力する。
なお、ブロック暗号アルゴリズムが証明可能安全性を保持していれば、ＳＢＯＸから出力される出力データを系列パラメータＫＰに基づいて変更した場合でも、差分解読法の差分特性確率あるいは線形解読法の線形特性確率の安全性は低下しない。ここで、証明可能安全性を保持しているブロック暗号アルゴリズムの具体例として、ＭＩＳＴＹ（登録商標）が挙げられる。ブロック暗号アルゴリズムにＭＹＳＴＹを採用することにより、差分解読法の差分特性確率あるいは線形解読法の線形特性確率の安全性を低下させずに、ＳＢＯＸの出力データを変更することができる。
【００３２】
秘密鍵取得部１５０は、入力インタフェース９３０を介して、秘密鍵Ｋを取得する。秘密鍵取得部１５０は、取得した秘密鍵Ｋを、符号系列生成部１４０に出力する。
【００３３】
＜符号系列生成処理Ｓ１４０＞
符号系列生成処理Ｓ１４０において、符号系列生成部１４０は、系列パラメータＫＰと秘密鍵Ｋとを用いたブロック暗号アルゴリズムにより、複数の拡散符号系列の各拡散符号系列を生成する。符号系列生成部１４０は、拡散符号系列を生成する際、系列パラメータＫＰを用いて処理要素から出力される出力データを変更する。
具体的には、符号系列生成部１４０は、時間演算部１２０よりｔ時間後のカウンタ値Ｃｔを受け取り、秘密鍵取得部１５０より秘密鍵Ｋを受け取る。また、符号系列生成部１４０は、パラメータ選択部１３０よりアルゴリズム構成要素１３１として系列パラメータＫＰを受け取る。符号系列生成部１４０は、ｔ時間後のカウンタ値Ｃｔと、秘密鍵Ｋと、系列パラメータＫＰとに基づいて、拡散符号系列を生成する。符号系列生成部１４０は、生成した拡散符号系列を符号系列出力部１６０に出力する。また、符号系列生成部１４０は、ブロック暗号アルゴリズムをＣＴＲモードで実行することにより出力されるブロックを拡散符号系列として生成する。
【００３４】
具体的には、符号系列生成部１４０は、ｎビットブロック暗号アルゴリズムのＣＴＲモードを利用して、ｎビット単位の拡散符号系列を生成する。
ＣＴＲモードのブロック暗号方式では、ブロック暗号アルゴリズムのカウンタ（以下、ＣＴＲと表記する）に初期値が入力され、秘密鍵に秘密情報が入力される。そして、ＣＴＲモードのブロック暗号方式は、ｎビットのランダムデータ列を生成する。そして、ＣＴＲモードのブロック暗号方式では、ＣＴＲが１ビットインクリメントされ、ＣＴＲがブロック暗号アルゴリズムに入力される。そして、ＣＴＲモードのブロック暗号方式は、次の異なるｎビットのランダムデータ列を生成する。ｎビットブロック暗号の場合は、２ｎ回のインクリメント分のｎビットランダムデータを生成することができる。したがって、ｎビット×２ｎ回のランダムデータを拡散符号系列として利用することができる。一般的なブロック暗号アルゴリズムは、現在、ブロックサイズが６４ビットのＭＩＳＴＹ（登録商標）およびＫＡＳＵＭＩ、あるいは、ブロックサイズが１２８ビットのＡＥＳおよびＣａｍｅｌｌｉａ（登録商標）が利用されている。これらのブロック暗号アルゴリズムのＣＴＲモードを採用した符号系列生成処理Ｓ１４０では、符号系列生成部１４０は、６４ビット×２６４＝２７０の周期をもつ秘匿性の高い拡散符号系列を生成することができる。または、符号系列生成部１４０は、１２８ビット×２１２８＝２１３５の周期をもつ秘匿性の高い拡散符号系列を生成することができる。
このように、本実施の形態に係る符号系列生成処理Ｓ１４０では、符号系列生成部１４０は、系列パラメータＫＰにより処理要素の出力を変化させることで、１種類のブロック暗号アルゴリズムのみを用いて、複数の拡散符号系列を生成することができる。
【００３５】
符号系列出力部１６０は、符号系列生成部１４０から拡散符号系列を受け取る。符号系列出力部１６０は、出力インタフェース９４０を介して、拡散符号系列を出力する。拡散符号系列は、通信システムにおいてスペクトラム拡散の直接拡散方式を実施するために用いられる。
【００３６】
次に、本実施の形態に係る符号系列生成処理Ｓ１４０の具体例について説明する。
図４は、本実施の形態に係る符号系列生成処理Ｓ１４０においてＭＩＳＴＹ（登録商標）を用いた場合の具体的構成を示す図である。
図４に示すように、ＭＩＳＴＹ（登録商標）では、ＦＩ関数の処理要素ＳＢＯＸは、７ビットの入力と７ビットの出力を有するＳ７関数と、９ビットの入力と９ビットの出力を有するＳ９関数とから成る。符号系列生成部１４０は、このＳ７関数とＳ９関数の出力データの合計１６ビットに対し、１６ビットの系列パラメータＫＰを用いて演算を行い、出力データの構成を変更する。
【００３７】
図５は、本実施の形態に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合のＳＢＯＸの出力構成例１−１を示す図である。
図５のＳＢＯＸの出力構成例１−１では、符号系列生成部１４０が、置換処理であるＳＢＯＸの出力データを系列パラメータＫＰの少なくとも一部でマスクすることにより、ＳＢＯＸの出力データを変更している。具体的には、符号系列生成部１４０は、系列パラメータＫＰの１６ビットのうち７ビットの情報をマスク情報として用いている。系列パラメータＫＰの１６ビットのうちの７ビットから成るマスク情報は、１から１２７の１２７通り生成することが可能である。図５では、ＭＩＳＴＹ（登録商標）のＳ７関数のマスク情報が２７、すなわち１６進表現０ｘ１ｂである場合を示している。また、符号系列生成部１４０は、系列パラメータＫＰの１６ビットのうち９ビットの情報をマスク情報として用いている。系列パラメータＫＰの１６ビットのうち９ビットの情報を用いたマスク情報は、１から５１１の５１１通り生成することが可能である。図５では、ＭＩＳＴＹ（登録商標）のＳ９関数のマスク情報が４５１、すなわち１６進表現０ｘ１ｃ３である場合を示している。
なお、マスク情報のビットの組み合わせとしては０も取りうるが、暗号学的な安全性の観点から、０そのものは使用すべきでないため、０は系列パラメータＫＰから排除する。
パラメータ選択処理Ｓ１３０では、パラメータ選択部１３０が、入力された系列パラメータＫＰを７ビットと９ビットの情報に分割して、分割により得られた７ビットの情報と９ビットの情報を出力パラメータＯｐとして出力する。つまり、これらのマスク情報が、系列パラメータＫＰから選択、あるいは生成された出力パラメータＯｐの例である。
なお、これらのマスク情報を用いてＭＩＳＴＹ（登録商標）を処理する場合でも、これらのマスク情報を用いないでＭＩＳＴＹ（登録商標）を処理する場合とほぼ同等の処理性能および実装性能が得られる。
【００３８】
図６は、本実施の形態に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合のＳＢＯＸの出力構成例１−２を示す図である。
図６のＳ７関数テーブルは、ＭＩＳＴＹ（登録商標）のＳ７関数をテーブル形式で表現した置換テーブルである。符号生成機能がハードウェア実装で実現される場合は、図６に示すようなＡＮＤ−ＸＯＲ表現でＳ７関数が表現される。この場合は、ｙ０からｙ６の７ビットがＳ７関数の出力データとなる。図６のＳＢＯＸの出力構成例１−２では、ｙ０からｙ６の７ビットの各式の最後の整数項の０または１の表現を、系列パラメータＫＰの１６ビットのうちの７ビットの情報に置き換える。
図６ではＳ７関数の場合のみを記載しているが、Ｓ９関数もＳ７関数と同様に、ｙ０からｙ８の９ビットのＡＮＤ−ＸＯＲ表現で表される。この場合は、ｙ０からｙ８の９ビットがＳ９関数の出力データである。出力構成例１−２では、ｙ０からｙ８の９ビットの各式の最後の整数項の０または１の表現を、系列パラメータＫＰの１６ビットのうちの９ビットの情報に置き換える。
【００３９】
図７は、本実施の形態に係る符号系列生成部１４０においてＭＩＳＴＹ（登録商標）を用いた場合のＳＢＯＸの出力構成例２を示す図である。
図７のＳＢＯＸの出力構成例２では、符号系列生成部１４０は、ＳＢＯＸから出力される出力データと系列パラメータＫＰの少なくとも一部とをビット単位に入れ替えることにより、出力データを変更する。符号系列生成部１４０は、Ｓ７関数の出力データ７ビットを７ｔｏ１セレクタに入力し、Ｓ７関数の出力データをビット単位に入れ替える。符号系列生成部１４０は、Ｓ７関数の出力データをビット単位に入れ替える際、系列パラメータＫＰを用いて入れ替えを制御する。この場合、Ｓ７関数の出力データは７！（＞２の１２乗）通りの組み合わせが可能である。
同様に、符号系列生成部１４０は、Ｓ９関数の出力データ９ビットを９ｔｏ１セレクタに入力し、Ｓ９関数の出力データをビット単位に入れ替える。符号系列生成部１４０は、Ｓ９関数の出力データをビット単位に入れ替える際、系列パラメータＫＰを用いて入れ替えを制御する。この場合、Ｓ９関数の出力データは９！（＞２の１８乗）通りの組み合わせが可能である。
【００４０】
次に、図７のＳＢＯＸの出力構成例２の具体的な実装構成について説明する。
図８は、図７のＳ７関数の出力構成例２における具体的な実装構成２−１を示す図である。
図８の実装構成２−１は、Ｓ７関数の出力データの上位１ビット目と２ビット目の各々を反転するかどうかを選択する２ｔｏ１セレクタを有する。この２ｔｏ１セレクタの選択は、系列パラメータＫＰの１６ビットの内の最上位ビットのＫＰ１の値により制御される。具体的には、ＫＰ１が０ならばビットは反転されない。ＫＰ１が１ならばビットは反転される。同じように、図８の実装構成２−１は、Ｓ７関数の出力データの上位３ビット目と４ビット目の各々を反転するかどうかを選択する２ｔｏ１セレクタを有する。この２ｔｏ１セレクタの選択は、系列パラメータＫＰの１６ビットの内の上位２ビット目のＫＰ２の値により制御される。具体的には、ＫＰ２が０ならばビットは反転されない。ＫＰ２が１ならばビットは反転される。図８に示すように、実装構成２−１は複数のセレクタを有し、各セレクタをＫＰ１からＫＰ６のそれぞれの値を用いて制御する。最後のセレクタから出力された出力データは、系列パラメータＫＰの１６ビットのうち上位７ビットを用いてマスクされ、ビット反転回路に入力される。ビット反転回路は、ＫＰ７が０であれば、ビットを反転せずに出力し、ＫＰ７が１であればすべてのビットを反転する。図８では、系列パラメータＫＰの１６ビットが０ｘ８５２３（１６進表現）の場合の具体例を示している。
【００４１】
図９は、図７のＳ９関数の出力構成例２における具体的な実装構成２−２を示す図である。
図９の実装構成２−２は、Ｓ９関数の出力データの上位１ビット目と２ビット目の各々を反転するかどうかを選択する２ｔｏ１セレクタを有する。この２ｔｏ１セレクタの選択は、系列パラメータＫＰの１６ビットの内の下位９ビットの中の最上位ビットのＫＰ８の値により制御される。下位９ビットの中の最上位ビットとは、系列パラメータＫＰの１６ビットの内の上位８ビット目のビットである。具体的には、ＫＰ８が０ならばビットは反転されない。ＫＰ８が１ならばビットは反転される。同じように、図９の実装構成２−２は、Ｓ９関数の出力データの上位３ビット目と４ビット目の各々を反転するかどうかを選択する２ｔｏ１セレクタを有する。この２ｔｏ１セレクタの選択は、系列パラメータＫＰの１６ビットの内の上位９ビット目のＫＰ９の値により制御される。具体的には、ＫＰ９が０ならばビットは反転されない。ＫＰ９が１ならばビットは反転される。図９に示すように、実装構成２−２は複数のセレクタを有し、各セレクタをＫＰ８からＫＰ１５のそれぞれの値を用いて制御する。最後のセレクタから出力された出力データは、系列パラメータＫＰの１６ビットのうち下位９ビットを用いてマスクされ、ビット反転回路に入力される。ビット反転回路は、ＫＰ１６が０であれば、ビットを反転せずに出力し、ＫＰ１６が１であればすべてのビットを反転する。図９では、系列パラメータＫＰの１６ビットが０ｘ８５２３（１６進表現）の場合の具体例を示している。
【００４２】
図８の実装構成２−１の出力データの組み合わせ数は、出力構成例１の場合とほぼ同じであり、２の１６乗通りである。また、図８の実装構成２−１により実現される処理性能および実装性能は出力構成例１よりも劣る。しかし、図８の実装構成２−１では、出力データのビット位置が入れ替えられているので、出力構成例１と比較して拡散符号系列の推測困難性の向上が期待できる。
【００４３】
＊＊＊他の構成＊＊＊
＜変形例１＞
なお、図４に示すように、ＭＩＳＴＹ（登録商標）はＦＩ関数に２つのＳ９関数を有する。このため、図５の出力構成例１−１と図６の出力構成例１−２とにおいて、系列パラメータＫＰのビット数を１６ビットから２５ビットに増加させ、１つ目のＳ９関数と２つ目のＳ９関数との出力データの出力選択方法を変更してもよい。この場合、１つの符号生成装置で約２の２５乗通りの秘匿性の高い異なる拡散符号系列を生成することができる。
【００４４】
＜変形例２＞
図５のＳＢＯＸの出力構成例１−１は、パラメータ選択部１３０により分割された系列パラメータＫＰを用いて、符号系列生成部１４０がＳ７関数およびＳ９関数の出力にマスクした結果を示している。すなわち、パラメータ選択部１３０は、分割された系列パラメータＫＰをそのまま符号系列生成部１４０に渡している。しかし、パラメータ選択部１３０が、Ｓ７関数およびＳ９関数の出力にマスクした結果として得られる新たなＳＢＯＸ情報を生成し、生成したＳＢＯＸ情報を符号系列生成部１４０に渡してもよい。
【００４５】
＜変形例３＞
本実施の形態では、符号生成装置１００の機能がソフトウェアで実現されるが、変形例として、符号生成装置１００の機能がハードウェアで実現されてもよい。
【００４６】
図１０は、本実施の形態の変形例に係る符号生成装置１００の構成を示す図である。
符号生成装置１００は、電子回路９０９、補助記憶装置９２２、入力インタフェース９３０および出力インタフェース９４０を備える。
【００４７】
電子回路９０９は、初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０との機能を実現する専用の電子回路である。
電子回路９０９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、または、ＦＰＧＡである。ＧＡは、Ｇａｔｅ  Ａｒｒａｙの略語である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略語である。ＦＰＧＡは、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略語である。
符号生成装置１００の構成要素の機能は、１つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、符号生成装置１００の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
【００４８】
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、符号生成装置１００において、初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０との機能は、プロセッシングサーキットリにより実現される。
【００４９】
符号生成装置１００において、初期値取得部１１０と、時間演算部１２０と、パラメータ選択部１３０と、符号系列生成部１４０と、秘密鍵取得部１５０と、符号系列出力部１６０との「部」を「工程」に読み替えてもよい。また、符号生成処理、時間演算処理、パラメータ選択処理、および符号系列生成処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてもよい。
【００５０】
＊＊＊本実施の形態の効果の説明＊＊＊
本実施の形態に係る符号生成装置１００によれば、証明可能安全性を保持するブロック暗号処理のＣＴＲモードを採用しているので、拡散符号系列の安全性を低下させることがない。また、本実施の形態に係る符号生成装置１００によれば、ブロック暗号処理の構成の一部を変更することで、全く異なる複数の拡散符号系列を生成することができる。よって、本実施の形態に係る符号生成装置１００は、拡散符号系列を生成する回路の数を、必要な拡散符号系列数より少なくすることができる。よって、本実施の形態に係る符号生成装置１００によれば、回路規模の増大を抑えつつ、秘匿性の高い複数の拡散符号系列を生成することができる。さらに、本実施の形態に係る符号生成装置１００によれば、秘匿性の高い拡散符号系列が要求される通信システムにおいて、通信システム全体の安全性を担保することができる。
【００５１】
また、本実施の形態に係る符号生成装置１００によれば、ブロック暗号アルゴリズムのＳＢＯＸの出力データを系列パラメータにより変更するだけで、複数の拡散符号系列を生成することができる。よって、本実施の形態に係る符号生成装置１００は、１種類のブロック暗号アルゴリズムを有していればよい。特に、本実施の形態に係る符号生成装置１００を、実装規模の制約が大きい衛星搭載機器に適用することは効果的である。
【００５２】
実施の形態２．
本実施の形態では、実施の形態１とは異なる点について説明する。なお、実施の形態１と同様の構成には同一の符号を付し、その説明を省略する場合がある。
図１１は、本実施の形態に係る符号生成装置１００ａの構成を示す図である。また、図１２は、本実施の形態に係る符号生成処理Ｓ１００ａを示す図である。
図１１および図１２を用いて、本実施の形態に係る符号生成装置１００ａの構成および動作について説明する。
【００５３】
パラメータ選択処理Ｓ１３０ａにおいて、パラメータ選択部１３０は、複数の系列パラメータ１〜ｍを取得する。複数の系列パラメータ１〜ｍの各々は、複数の拡散符号系列の各々を一意に識別する。
秘密鍵取得部１５０は、複数の秘密鍵Ｋ１〜Ｋｍを取得する。
符号系列生成部１４０は、複数の符号系列生成処理Ｓ４０１〜Ｓ４０ｍを実行する複数の符号系列生成部４０１〜４０ｍを備える。パラメータ選択部１３０は、複数の系列パラメータ１〜ｍの各々を複数の符号系列生成部４０１〜４０ｍの各々に出力する。また、秘密鍵取得部１５０は、複数の秘密鍵Ｋ１〜Ｋｍの各々を複数の符号系列生成部４０１〜４０ｍの各々に出力する。
【００５４】
符号系列生成処理Ｓ１４０ａにおいて、複数の符号系列生成部４０１〜４０ｍの各々は、拡散符号系列を生成する。このように、符号生成装置１００ａは、ｍ通りの秘匿性の高い拡散符号系列Ｄ１〜Ｄｍを生成する。
【００５５】
図１３を用いて、本実施の形態に係る符号生成装置１００ａの具体的な効果について説明する。
図１３に示すように、複数の周回衛星が１つのデータ中継衛星を介して複数の地上局と通信を行う場合を想定する。データ中継衛星は、Ｘ通りの通信経路の各々で、秘匿性の高い互いに異なる拡散符号系列を利用するとする。また、同時に行われる中継およびダウンリンクに用いられる経路はＹ個あるものとする。このとき、図３の比較例の拡散符号生成方式では、通信経路に対応するＸ個の拡散生成回路が必要であった。そして、比較例の拡散符号生成方式は、Ｘ個の拡散生成回路から、同時に行われる中継およびダウンリンクに用いられるＹ個の拡散生成回路を選択し、Ｙ個の拡散符号系列を生成していた。
一方、本実施の形態に係る符号生成処理Ｓ１００ａでは、同時に行われる中継およびダウンリンクに用いられる経路がＹ個ならば、拡散生成回路をＹ個実装すればよい。そして、符号生成処理Ｓ１００ａでは、拡散生成回路の各々にＸ通りの系列パラメータを入力することで、同時に中継およびダウンリンクする場合に対応することができる。一般的には通信経路の組み合わせ数よりも、同時に行われる中継およびダウンリンクに用いられる経路の数の方が圧倒的に小さい。このため、本実施の形態に係る符号生成装置１００ａを、実装規模の制約が大きい衛星搭載機器に適用することは、特に効果的である。
【００５６】
実施の形態１および２では、符号生成装置の各部を独立した機能ブロックとして説明した。しかし、符号生成装置の構成は、上述した実施の形態のような構成でなくてもよい。符号生成装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。
【００５７】
実施の形態１および２のうち、複数の部分を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つの部分を実施しても構わない。その他、これらの実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
【符号の説明】
【００５８】
１００，１００ａ  符号生成装置、１１０  初期値取得部、１２０  時間演算部、１３０  パラメータ選択部、１３１  アルゴリズム構成要素、１４０  符号系列生成部、１５０  秘密鍵取得部、１６０  符号系列出力部、９０９  電子回路、９１０  プロセッサ、９２１  メモリ、９２２  補助記憶装置、９３０  入力インタフェース、９４０  出力インタフェース。
【図１】
0006584732.tif 000002
【図２】
0006584732.tif 000003
【図３】
0006584732.tif 000004
【図４】
0006584732.tif 000005
【図５】
0006584732.tif 000006
【図６】
0006584732.tif 000007
【図７】
0006584732.tif 000008
【図８】
0006584732.tif 000009
【図９】
0006584732.tif 000010
【図１０】
0006584732.tif 000011
【図１１】
0006584732.tif 000012
【図１２】
0006584732.tif 000013
【図１３】
0006584732.tif 000014