説明

信号処理装置

【課題】
簡易な構成でありながら、一段と乱数性の高い乱数を生成し得る信号処理装置を実現する。
【解決手段】
シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得することにより、シリアルバス22の処理時間のゆらぎをこのカウンタ値に反映させて不定なカウンタ値を得ることができると共に、この不定なカウンタ値をseedとして擬似乱数を生成することにより、一段と乱数性の高い乱数を生成することができ、また多くの一般的なデータ処理回路に実装されるバスと、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよいため、別途RTCを実装する場合と比して、構成を簡略化することができ、かくして、簡易な構成でありながら、一段と乱数性の高い乱数を生成することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は信号処理装置に関し、特に擬似乱数を生成する信号処理装置に適用して好適なものである。
【背景技術】
【0002】
近年、インターネット等のネットワークを介した種々のコンテンツ配信サービスが広く普及している。このようなコンテンツ配信サービスでは、CDやDVDといった媒体を介してではなく、コンテンツのデータ(以下、これをコンテンツデータとも呼ぶ)そのものを所定のサーバからネットワークを介してユーザの端末に提供するようになされているため、コンテンツの不正利用を防止することがいっそう強く求められており、このため様々なセキュリティ対策が講じられている。
【0003】
かかるセキュリティ対策としては、例えばサーバ及び端末間でのユーザ認証処理やデータの送受信処理等に擬似乱数を用いた暗号化を利用することで、これらの処理が外部から解析・改竄されることを防止して、コンテンツの不正利用を防止する方法が広く知られている。
【0004】
ところで、このように擬似乱数を利用する場合、いかに予測が困難で乱数性の高い擬似乱数を生成し得るかがセキュリティの上でも重要となる。そこで従来、例えば、RTC(リアル・タイム・クロック)から得られる現在時刻を、擬似乱数の乱数種(以下、これをseedとも呼ぶ)とし、このseedから擬似乱数を生成することで、擬似乱数の乱数性を高めるようになされたものがある(例えば特許文献1参照)。
【特許文献1】特開2002−344444公報(段落番号〔0053〕)
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、このようにRTCを利用する場合、擬似乱数を生成する装置(例えばユーザの端末)に、RTCを別途実装する必要があり、しかもこのRTCは他の回路との統合が難しいため、実装が複雑になり、結果として端末のコストが上がるという問題があった。
【0006】
本発明は以上の点を考慮してなされたもので、簡易な構成でありながら、一段と乱数性の高い乱数を生成し得る信号処理装置を提案しようするものである。
【課題を解決するための手段】
【0007】
かかる課題を解決するため本発明の信号処理装置においては、信号処理部と、信号処理部とバスを介して接続されるメモリとを設け、信号処理部が、バスの処理時間のゆらぎよりもカウント周期の短いカウンタと、乱数種から乱数を生成する乱数生成部と、外部からの要求に応じて乱数生成部の動作を制御する制御部とを有し、カウンタが、信号処理部の起動と共にカウントを開始し、制御部が、外部からの乱数を要求する乱数要求情報に応じて、乱数生成部に対して当該乱数要求情報を転送し、乱数生成部が、乱数要求情報に応じて、バスを介してメモリとデータの送受信をしてからカウンタのカウンタ値を取得し、当該取得したカウンタ値に対応する乱数種から乱数を生成するようにした。
【0008】
このようにこのデータ処理回路では、バスを介してメモリとデータの送受信をしてからカウンタのカウンタ値を取得することにより、バスの処理時間のゆらぎをカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値に対応する乱数種から乱数を生成することにより、一段と乱数性の高い乱数を生成することができる。
【0009】
また、このデータ処理回路では、多くの一般的な信号処理回路に実装されるバスと、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよく、別途RTCを実装する場合と比して、構成を簡略化することができる。
【発明の効果】
【0010】
本発明によれば、バスを介してメモリとデータの送受信をしてからカウンタのカウンタ値を取得することにより、バスの処理時間のゆらぎをカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値に対応する乱数種から乱数を生成することにより、一段と乱数性の高い乱数を生成することができ、また多くの一般的な信号処理回路に実装されるバスと、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよいため、別途RTCを実装する場合と比して、構成を簡略化することができ、かくして、簡易な構成でありながら、一段と乱数性の高い乱数を生成し得る信号処理装置を実現することができる。
【発明を実施するための最良の形態】
【0011】
以下図面について、本発明の一実施の形態を詳述する。
【0012】
(1)第1の実施の形態
(1―1)コンテンツ再生装置の構成
図1において、1は全体としてネットワークNTを介して配信される楽曲コンテンツを再生可能なコンテンツ再生装置を示し、当該コンテンツ再生装置1の筐体表面やリモートコントローラ(図示せず)に設けられた各種操作ボタンでなる操作入力部2がユーザによって操作されると、当該操作入力部2でこれを認識し、この操作に応じた操作入力信号を入力処理部3に送出する。入力処理部3は、供給される操作入力信号に対して所定の処理を施すことによりこの操作入力信号を操作コマンドに変換し、これをバス4を介してホストCPU(Central Processing Unit)5に送出する。
【0013】
ホストCPU5は、ROM(Read Only Memory)6又はハードディスクドライブ7に予め記憶されている基本プログラムやアプリケーションプログラム等の各種プログラムをバス4を介してRAM(Random Access Memory)8に読み出す。そしてこのホストCPU5は、これら各種プログラムをRAM7上に展開し、展開した各種プログラムに従って全体を制御すると共に、所定の演算処理や、入力処理部3から与えられる操作コマンドに応じた処理(例えばコンテンツ取得処理やコンテンツ再生処理等)を実行する。
【0014】
実際上、ホストCPU5は、例えば、ユーザにより操作入力部2を介して楽曲コンテンツの取得操作が行われると、これに応じて、通信処理部9及びネットワークインタフェース10を順次介して、ネットワークNT上のコンテンツ配信サーバ(図示せず)にアクセスし、このコンテンツ配信サーバに対して楽曲コンテンツの配信を要求する要求信号を送信する。
【0015】
コンテンツ配信サーバは、所定の暗号化を施したコンテンツデータ(以下、これを暗号化コンテンツデータとも呼ぶ)を蓄積しており、コンテンツ再生装置1からアクセスされると、このコンテンツ再生装置1との間で所定のユーザ認証処理を行い、コンテンツ再生装置1が正規ユーザであると確認できた場合にのみ、コンテンツ再生装置1から送られてくる要求信号に応じて、要求された楽曲コンテンツに対応する暗号化コンテンツデータを、ネットワークNTを介してコンテンツ再生装置1に送信する。またこのときコンテンツ配信サーバは、例えば要求された楽曲コンテンツが有料であれば、この楽曲コンテンツの配信にともなう対価をコンテンツ再生装置1のユーザに対して課金するための課金処理を実行する。
【0016】
コンテンツ再生装置1のホストCPU5は、コンテンツ配信サーバから配信される暗号化コンテンツデータをネットワークインタフェース10及び通信処理部9を順次介して取り込み、これをハードディスクドライブ7に記録する。
【0017】
そしてホストCPU5は、ユーザにより操作入力部2を介してハードディスクドライブ7内の暗号化コンテンツデータに対する再生操作が行われると、これに応じて、指定された暗号化コンテンツデータをハードディスクドライブ7から読み出し、この暗号化コンテンツデータをデータ処理回路11に送出する。データ処理回路11は、暗号化コンテンツデータを復号することでコンテンツデータに戻し、これを音声処理部12に送出する。音声処理部12は、データ処理回路11から与えられるコンテンツデータに対してデジタルアナログ変換処理やイコライジング処理等の音声処理を施し、この結果得られる音声信号をスピーカSPに送出して、スピーカSPからこの音声信号に基づく音声を出力する。
【0018】
また、本実施の形態のデータ処理回路11は、内部に擬似乱数生成器(詳細については後述する)を有しており、ホストCPU5からの命令に応じて擬似乱数を生成するようにもなされている。この擬似乱数は、コンテンツ再生装置1及びコンテンツ配信サーバ間でのユーザ認証処理や各種データの送受信処理等をホストCPU5が行う際に用いられ、またデータ処理回路11内で行う復号処理やその他の処理等にも用いられる。
【0019】
このように、このコンテンツ再生装置1では、データ処理回路11で擬似乱数を生成し、この擬似乱数を、種々の処理で用いることにより、例えばユーザ認証処理やデータ処理回路11内での処理等で扱うデータを、この擬似乱数で暗号化することにより、これらの処理及びこれらの処理で扱うデータが外部から容易に解析・改竄されることを防止して、楽曲コンテンツの不正利用を防止し得るようになされている。
【0020】
ここで、実際上、データ処理回路11内でどのように擬似乱数を生成するのかを、データ処理回路11の内部構成と合わせて説明する。
【0021】
(1−2)データ処理回路の内部構成及び擬似乱数の生成手順
まず、データ処理回路11の内部構成について、図2を用いて説明する。この図2に示すように、データ処理回路11は、DSP(Digital Signal Processor)20を構成するIC(Integrated Circuit)チップと、不揮発性メモリ21を構成するICチップとを実装した回路基板として形成されている。また、これらDSP20及び不揮発性メモリ21は、回路基板上のシリアルバス22によってシリアル接続されている。この不揮発性メモリ21には、例えばDSP20上で扱う各種データが記録されている。
【0022】
DSP20は、自身の内部メモリ(図示せず)等に書き込まれるファームウェアに従って、種々の処理(上述の復号処理や擬似乱数の生成処理等)をソフトウェア的に実行し得る汎用のプロセッサであるが、ここではDSP20が、擬似乱数生成用のファームウェアに従って動作する場合について説明するものとし、また説明の便宜上、擬似乱数を生成するためのソフトウェア的な機能を、機能ブロック(命令処理部20a、擬似乱数生成器20b、フリーランカウンタ20c)に見立てて説明する。
【0023】
DSP20は、ホストCPU5からの各種命令に応じて、命令処理部20aが全体(擬似乱数生成器20b及びフリーランカウンタ20c)を制御するようになされている。まず命令処理部20aは、ホストCPU5からの起動命令に応じて起動する(すなわちDSP20が起動する)と共に、このときフリーランカウンタ20cを起動させて、このフリーランカウンタ20cにカウントを開始させる。
【0024】
その後、命令処理部20aは、ホストCPU5から乱数を要求する乱数要求命令を受け取ると、この乱数要求命令を擬似乱数生成器20bに転送する。擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、まずシリアルバス22を介して不揮発性メモリ21の所定アドレスから所定データを読み出す。そしてこの擬似乱数生成器20bは、所定データの読み出しが完了した時点で、起動中のフリーランカウンタ20cからカウンタ値を取得する。
【0025】
このとき所定データの読出にかかる時間は、シリアルバス22の処理時間のゆらぎによって変化するため不定であり、このためDSP20が起動してから所定データの読み出しが完了するまでの時間も不定となる。
【0026】
ここで、本実施の形態のデータ処理回路11では、このシリアルバス22の処理時間のゆらぎをフリーランカウンタ20cのカウンタ値にも反映させるために、このゆらぎよりもカウンタ周期の短いフリーランカウンタ20cを用いるようにした。これによりDSP20が起動してから所定データの読み出しが完了するまでの間に、このフリーランカウンタ20cによってカウントされるカウンタ値も、シリアルバス22の処理時間のゆらぎにともなって不定となる。
【0027】
このようにしてカウンタ値を取得した擬似乱数生成器20bは、このカウンタ値をseedとして自身のseed保持領域30に格納した後、このseedから擬似乱数を生成し、これを命令処理部20aに送る。またこのとき擬似乱数生成器20bは、生成した擬似乱数で、seed保持領域30に格納されたseedを更新する。つまり、擬似乱数生成器20bは、擬似乱数を生成する度に、生成した擬似乱数でseedを更新するようになされている。
【0028】
擬似乱数生成器20bから擬似乱数を受け取った命令処理部20aは、この擬似乱数をホストCPU5へ送る。
【0029】
このように、擬似乱数生成器20bは、乱数を要求されると、まずシリアルバス22を介して不揮発性メモリ21の所定アドレスから所定データを読み出す。この場合の所定データの読出は、シリアルバス22の処理時間のゆらぎを利用してフリーランカウンタ20cのカウンタ値を不定にするための処理であり、以下、これを空読みとも呼ぶ。このようにして不揮発性メモリ21を空読みした後、擬似乱数生成器20bは、空読みによって不定となるフリーランカウンタ20cのカウンタ値を取得し、この不定なカウンタ値をseedとして擬似乱数を生成する。こうすることで擬似乱数生成器20bは、不定なseedをもとに一段と乱数性の高い擬似乱数を生成することができる。
【0030】
ここで、データ処理回路11による擬似乱数の生成手順(以下、これを擬似乱数生成処理手順とも呼ぶ)について、図3のシーケンスチャートを用いて、より詳しく説明する。このシーケンスチャートは、ホストCPU5と、データ処理回路11を構成するDSP20(命令処理部20a、擬似乱数生成器20b及びフリーランカウンタ20c)及び不揮発性メモリ21とによる擬似乱数生成処理手順を示すものであり、このときホストCPU5はROM6に記録してあるプログラムに従って、またDSP20は内部メモリ(図示せず)に書き込まれたファームウェアに従って動作するようになされている。
【0031】
ホストCPU5は、例えば電源投入時、あるいは操作入力部2を介した手動操作に応じて、ステップSP1において、DSP20を起動させるためのDSP起動命令を、DSP20の命令処理部20aに送信する。
【0032】
命令処理部20aは、ステップSP2において、ホストCPU5からのDSP起動命令に応じて起動する(すなわちDSP20が起動する)と共に、このときフリーランカウンタ20cでカウントを開始させるためのカウンタ起動命令を、フリーランカウンタ20cに送信する。フリーランカウンタ20cは、ステップSP3において、命令処理部20aからのカウンタ起動命令に応じて起動することにより、カウントを開始する。
【0033】
その後、ホストCPU5は、例えば、擬似乱数を用いる特定の処理(ユーザ認証処理や各種データの送受信処理等)を実行するために擬似乱数が必要になると、ステップSP4において、乱数要求命令を命令処理部20aに送信する。命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、ステップSP5において、この乱数要求命令を擬似乱数生成器20bに転送する。
【0034】
擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、ステップSP6において、不揮発性メモリ21の所定アドレスから所定データを読み出すため(すなわち空読みするため)のデータ読出命令を、シリアルバス22を介して、不揮発性メモリ21に送信する。不揮発性メモリ21は、擬似乱数生成器20bからデータ読出命令を受け取ると、ステップSP7において、このデータ読出命令に応じて、所定アドレスに記録している所定データを、シリアルバス22を介して擬似乱数生成器20bに送信する。すなわち、擬似乱数生成器20bが、不揮発性メモリ21からシリアルバス22を介して所定データを読み出す。
【0035】
ここで、このステップSP6及びステップSP7の処理に要する時間は、上述したようにシリアルバス22の処理時間のゆらぎにより不定となる。
【0036】
そして、所定データの読み出しを完了すると、擬似乱数生成器20bは、つづくステップSP8(図4)に移り、このステップSP8において、カウンタ値を要求するためのカウンタ値要求命令をフリーランカウンタ20cに送信する。フリーランカウンタ20cは、擬似乱数生成器20bからカウンタ値要求命令を受け取ると、ステップSP9において、このカウンタ値要求命令に応じて、この時点のカウンタ値を取得し、このカウンタ値を擬似乱数生成器20bへ送信する。
【0037】
ここで得られるカウンタ値は、ステップSP3−SP4−SP5−SP6−SP7−SP8−SP9の処理に要した時間を示すものである。そして、このステップSP3からステップSP9までの処理の一部であるステップSP6及びステップSP7の処理に要する時間が不定であるため、処理全体の時間を示すカウンタ値も不定となる。
【0038】
擬似乱数生成器20bは、フリーランカウンタ20cからカウンタ値を受け取ると、ステップSP10において、このカウンタ値でseed保持領域30のseedを初期化し、次のステップSP11に移る。つまり、フリーランカウンタ20cから得たカウンタ値を、seedの初期値とする。このときカウンタ値は不定であるため、seedの初期値も不定となり、この結果、擬似乱数生成器20bでは、DSP20を起動する度に毎回異なるseedを得ることができる。
【0039】
ステップSP11において、擬似乱数生成器20bは、seed保持領域30に格納したseedから擬似乱数を生成し、次のステップSP12に移る。ステップSP12において、擬似乱数生成器20bは、ステップSP11で生成した擬似乱数でseed保持領域30のseedを更新し、次のステップSP13に移る。ステップSP13において、擬似乱数生成器20bは、生成した擬似乱数を命令処理部20aに対して出力する。
【0040】
命令処理部20aは、擬似乱数生成器20bから出力された擬似乱数を受け取ると、ステップSP14(図5)において、この擬似乱数をホストCPU5に返信する。
【0041】
このように、データ処理回路11では、シリアルバス22の処理時間のゆらぎを利用して、不定なseedを得ることができ、この不定なseedをもとに一段と乱数性の高い擬似乱数を生成することができる。
【0042】
その後、再び擬似乱数を用いる特定の処理を実行するために擬似乱数が必要になると、ホストCPU5は、ステップSP15において、再度、乱数要求命令を命令処理部20aに送信する。命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、ステップSP16において、この乱数要求命令を擬似乱数生成器20bに転送する。
【0043】
擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、ステップSP17において、seed保持領域30に格納したseedから擬似乱数を生成し、次のステップSP18に移る。ステップSP18において、擬似乱数生成器20bは、ステップSP17で生成した擬似乱数でseed保持領域30のseedを更新し、次のステップSP19に移る。ステップSP19において、擬似乱数生成器20bは、生成した擬似乱数を命令処理部20aに対して出力する。
【0044】
命令処理部20aは、擬似乱数生成器20bから出力された擬似乱数を受け取ると、ステップSP20において、この擬似乱数をホストCPU5に返信する。
【0045】
このように、データ処理回路11では、DSP20の起動後、初回の擬似乱数生成時にのみ、フリーランカウンタ20cから得られるカウンタ値をseedとして擬似乱数を生成し、2回目以降の擬似乱数生成時には、前回生成した擬似乱数をseedとして擬似乱数を生成するようになされている。
【0046】
(1−3)動作及び効果
以上の構成においてデータ処理回路11では、ホストCPU5からのDSP起動命令に応じてDSP20を起動させると共に、このときDSP20の命令処理部20aによって、フリーランカウンタ20cを起動させてカウントを開始させる。
【0047】
その後、データ処理回路11の命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、これを擬似乱数生成器20bに転送する。擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、シリアルバス22を介して不揮発性メモリ21のへの空読みを行い、この空読みが完了した時点で、起動中のフリーランカウンタ20cからカウンタ値を取得する。
【0048】
ここで取得するカウンタ値は、空読みした際のシリアルバス22の処理時間のゆらぎによって不定となる。実際上、このシリアルバス22の処理時間のゆらぎは、シリアルバス22に接続された機器間(ここではDSP20と不揮発性メモリ21)での通信タイミングの調整、データ衝突防止のための調停、及びクロック信号のズレ等によって生じるものである。このような要因によってゆらぎが生じ、このゆらぎによってカウンタ値が不定となるのであり、このことを明確にするために、ここでは、DSP20起動直後に、フリーランカウンタ20cでカウントを開始し、つづけて不揮発性メモリ21への空読みを1回行い、この空読みが完了した時点でフリーランカウンタ20cからカウンタ値を取得するといった一連の処理を10回試行する実験を行った。
【0049】
この実験の結果、図6に示すように、カウンタ値は、1回目が「734599」、2回目が「734557」、3回目が「734419」、4回目が「734517」、5回目が「734675」、6回目が「734542」、7回目が「734535」、8回目が「734586」、9回目が「734500」、10回目が「734493」というように毎回異なる不規則な値となった。
【0050】
従って、この実験結果からも、シリアルバス22の処理時間のゆらぎによって、フリーランカウンタ20cのカウンタ値が不定となることが確認できた。
【0051】
そして擬似乱数生成器20bは、このように予測が困難で不定なカウンタ値をseedの初期値として、このseedから擬似乱数を生成する。
【0052】
このように、データ処理回路11では、シリアルバス22の処理時間のゆらぎをカウンタ値に反映させることで、DSP20を起動する度に異なるカウンタ値を得ることができ、この不定なカウンタ値をseedの初期値とすることで、一段と乱数性の高い擬似乱数を生成することができる。
【0053】
また、このデータ処理回路11では、データ処理回路11内部に設けられたシリアルバス22の処理時間のゆらぎといった、データ処理回路11の外部のハードウェア及びプログラムから制御することのできない不定な時間を利用するようにしたことにより、例えばコンテンツを不正に利用しようとして、ホストCPU5及びバス4を不正に制御して上述の擬似乱数生成処理手順におけるステップSP1からステップSP4の開始までの時間を一定にさせても、常に不定なseedを確実に得ることができるので、コンテンツの不正利用をより確実に防止することができる。
【0054】
さらに、このデータ処理回路11では、多くの一般的なデータ処理回路に実装されるバス(シリアルバス22)の処理時間のゆらぎを利用してseedを得るようにしたことにより、回路に、このようなバス(シリアルバス22)に加えて、ゆらぎをカウンタ値に反映し得るカウンタ(フリーランカウンタ20c)が実装されていればよく、RTCを実装することなく、一段と簡易な構成で、高品質な擬似乱数を生成する回路を実現することができる。
【0055】
以上の構成によれば、シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得することにより、シリアルバス22の処理時間のゆらぎをこのカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値をseedとして、このseedから擬似乱数を生成することにより、一段と乱数性の高い乱数を生成することができ、また多くの一般的なデータ処理回路に実装されるバス(この場合シリアルバス22)と、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよいため、別途RTCを実装する場合と比して、構成を簡略化することができ、かくして、簡易な構成でありながら、一段と乱数性の高い乱数を生成することができる。
【0056】
(2)第2の実施の形態
次に、本発明の第2の実施の形態を詳述する。この第2の実施の形態においては、データ処理回路11に実装されるDSP20の構成が異なる点以外は、上述の第1の実施の形態と同様であるので、同様部分の説明は省略する。
【0057】
(2−1)データ処理回路の内部構成
図2との同一部分に同一符号を付した図7に示すように、この第2の実施の形態のデータ処理回路11には、DSP20内の擬似乱数生成器20bとフリーランカウンタ20cとの間に、新たにハッシュ値生成部40を設けるようにした。このハッシュ値生成部40は、フリーランカウンタ20cで取得したカウンタ値を離散化するために、取得したカウンタ値に対してハッシュ関数(一方向性関数)を適用するようになされている。こうすることでハッシュ値生成部40は、離散化したカウンタ値となるハッシュ値を生成し、このハッシュ値を擬似乱数生成器20bに送信する。
【0058】
そして擬似乱数生成器20bは、ハッシュ値生成部40から得られるハッシュ値をseedの初期値として、このseedから擬似乱数を生成する。
【0059】
このようにこの第2の実施の形態では、ハッシュ値生成部40により、カウンタ値を離散化したハッシュ値を生成し、このハッシュ値をseedの初期値とすることで、よりいっそう乱数性の高い擬似乱数を生成することができる。
【0060】
なお、ここでは、カウンタ値を離散化させるために、ハッシュ関数を用いた場合について述べたが、本発明はこれに限らず、例えば、MAC関数のような、種々の離散化関数を用いるようにしてもよい。
【0061】
(3)他の実施の形態
なお上述の実施の形態においては、DSP20と不揮発性メモリ21とをシリアルバス22で接続し、このシリアルバス22の処理時間のゆらぎを利用するようにした場合について述べたが、本発明はこれに限らず、例えばDSP20と不揮発性メモリ21とをパラレルバスで接続し、このパラレルバスの処理時間のゆらぎを利用するようにしてもよいし、この他種々のバスでDSP20と不揮発性メモリ21とを接続し、このバスの処理時間のゆらぎを利用するようにしてもよい。
【0062】
また上述の実施の形態においては、シリアルバス22を介して不揮発性メモリ21へ空読みを1回行ってからカウンタ値を取得するようにした場合について述べたが、本発明はこれに限らず、例えば空読みを複数回行ってからカウンタ値を取得するようにしてもよいし、不揮発性メモリ21への空読みに加えて、バス4を介してROM6、HDD7、あるいはハードディスクドライブ7に対してデータの送受信(すなわち空読み)を行ってからカウンタ値を取得するようにしてもよい。このようにすれば、擬似乱数生成器20bが生成する擬似乱数の乱数性をより高めることができる。
【0063】
さらに上述の実施の形態においては、擬似乱数生成処理手順の説明で、データ処理回路のDSP20が、ホストCPU5からの乱数要求命令に応じて擬似乱数を生成し、生成した擬似乱数をホストCPU5に返信するようにした場合について述べたが、本発明はこれに限らず、例えば、ホストCPU5から、DSP20に対して、擬似乱数を用いた特定処理の実行命令を送信し、DSP20が、この実行命令に応じて擬似乱数を生成すると共に、この擬似乱数を用いた特定処理を実行し、この処理結果、あるいは処理完了通知をホストCPU5に返信するようにしてもよい。
【0064】
さらに上述の実施の形態においては、データ処理回路11のDSP20内にソフトウェア的な機能として、命令処理部20a、擬似乱数生成器20b、及びフリーランカウンタ20cを設けるようにした場合について述べたが、本発明はこれに限らず、これら命令処理部20a、擬似乱数生成器20b、及びフリーランカウンタ20cの一部または全部を、データ処理回路11にハードウェアとして実装するようにしてもよい。
【0065】
さらに上述の実施の形態においては、命令処理部20aがホストCPU5から乱数要求命令を受け取ると、これを擬似乱数生成器20bに転送し、擬似乱数生成器20bがこの乱数要求命令に応じて、不揮発性メモリ21への空読みを行い、この空読み完了後、フリーランカウンタ20cからカウンタ値を取得して擬似乱数を生成するようにした場合について述べたが、本発明はこれに限らず、命令処理部20aがホストCPU5から乱数要求命令を受け取ると、この命令処理部20aが不揮発性メモリ21への空読みを行い、この空読み完了後、乱数要求命令を擬似乱数生成器20bに転送し、擬似乱数生成器20bがこの乱数要求命令に応じて、フリーランカウンタ20cからカウンタ値を取得して擬似乱数を生成するようにしてもよい。
【0066】
さらに上述の実施の形態においては、信号処理部としてのDSP20と、バスとしてのシリアルバス22と、メモリとしての不揮発性メモリ21とによって、信号処理装置としてのデータ処理回路及びコンテンツ再生装置1を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
【0067】
さらに上述の実施の形態においては、制御部としての命令処理部20aと、フリーランカウンタ20cと、ホストCPU5から命令処理部20aを介して転送される乱数要求情報としての乱数要求命令に応じて、シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得し、取得したカウンタ値をseedとして乱数を生成する乱数生成部としての擬似乱数生成器20bとによって、DSP20を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
【産業上の利用可能性】
【0068】
本発明は、擬似乱数を生成する様々な回路及び装置で広く利用できる。
【図面の簡単な説明】
【0069】
【図1】コンテンツ再生装置の全体構成を示す略線図である。
【図2】第1の実施の形態によるデータ処理回路の内部構成を示す略線図である。
【図3】擬似乱数生成処理手順を示すシーケンスチャートである。
【図4】図3につづく擬似乱数生成処理手順を示すシーケンスチャートである。
【図5】図4につづく擬似乱数生成処理手順を示すシーケンスチャートである。
【図6】実験結果を示す表である。
【図7】第2の実施の形態によるデータ処理回路の内部構成を示す略線図である。
【符号の説明】
【0070】
1……コンテンツ再生装置、2……操作入力部、3……入力処理部、4……バス、5……ホストCPU、6……ROM、7……ハードディスクドライブ、8……RAM、9……通信処理部、10……ネットワークインタフェース、11……データ処理回路、12……音声処理部、20……DSP、20a……命令処理部、20b…擬似乱数生成器、20c……フリーランカウンタ、30……seed保持領域、40……ハッシュ値生成部、NT……ネットワーク、SP……スピーカ。

【特許請求の範囲】
【請求項1】
信号処理部と、
上記信号処理部とバスを介して接続されるメモリと
を具え、
上記信号処理部は、
上記バスの処理時間のゆらぎよりもカウント周期の短いカウンタと、
乱数種から乱数を生成する乱数生成部と、
外部からの要求に応じて上記乱数生成部の動作を制御する制御部と
を有し、
上記カウンタは、上記信号処理部の起動と共にカウントを開始し、
上記制御部は、外部からの乱数を要求する乱数要求情報に応じて、上記乱数生成部に対して当該乱数要求情報を転送し、
上記乱数生成部は、上記乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから上記カウンタのカウンタ値を取得し、当該取得したカウンタ値に対応する乱数種から乱数を生成する
ことを特徴とする信号処理装置。
【請求項2】
上記乱数生成部は、上記乱数要求情報に応じて、上記バスを介して上記メモリの特定位置からデータを読み出す
ことを特徴とする請求項1に記載の信号処理装置。
【請求項3】
上記カウンタ値からハッシュ値を生成するハッシュ値生成部を具え、
上記乱数生成部は、上記乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから上記ハッシュ値生成部のハッシュ値を取得し、当該取得したハッシュ値に対応する乱数種から乱数を生成する
ことを特徴とする請求項1に記載の信号処理装置。
【請求項4】
上記バスは、シリアルバスである
ことを特徴とする請求項1に記載の信号処理装置。
【請求項5】
バスを介して接続されるメモリを有する信号処理装置による信号処理方法において、
起動時に、上記バスの処理時間のゆらぎよりも短いカウント周期でカウントを開始するカウント開始ステップと、
外部からの乱数を要求する乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから、上記カウンタのカウンタ値を取得するカウンタ値取得ステップと、
上記カウンタ値取得ステップで取得した上記カウンタ値に対応する乱数種から乱数を生成する乱数生成ステップと
を具える
ことを特徴とする信号処理方法。
【請求項6】
バスを介して接続されるメモリを有する信号処理装置に対して、
起動時に、上記バスの処理時間のゆらぎよりも短いカウント周期でカウントを開始するカウント開始ステップと、
外部からの乱数を要求する乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから、上記カウンタのカウンタ値を取得するカウンタ値取得ステップと、
上記カウンタ値取得ステップで取得した上記カウンタ値に対応する乱数種から乱数を生成する乱数生成ステップと
を実行させることを特徴とする信号処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−235995(P2006−235995A)
【公開日】平成18年9月7日(2006.9.7)
【国際特許分類】
【出願番号】特願2005−49561(P2005−49561)
【出願日】平成17年2月24日(2005.2.24)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】