JP2006235995A - Signal processing device - Google Patents
Signal processing device Download PDFInfo
- Publication number
- JP2006235995A JP2006235995A JP2005049561A JP2005049561A JP2006235995A JP 2006235995 A JP2006235995 A JP 2006235995A JP 2005049561 A JP2005049561 A JP 2005049561A JP 2005049561 A JP2005049561 A JP 2005049561A JP 2006235995 A JP2006235995 A JP 2006235995A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- bus
- counter value
- counter
- signal processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本発明は信号処理装置に関し、特に擬似乱数を生成する信号処理装置に適用して好適なものである。 The present invention relates to a signal processing apparatus, and is particularly suitable for application to a signal processing apparatus that generates pseudo-random numbers.
近年、インターネット等のネットワークを介した種々のコンテンツ配信サービスが広く普及している。このようなコンテンツ配信サービスでは、CDやDVDといった媒体を介してではなく、コンテンツのデータ(以下、これをコンテンツデータとも呼ぶ)そのものを所定のサーバからネットワークを介してユーザの端末に提供するようになされているため、コンテンツの不正利用を防止することがいっそう強く求められており、このため様々なセキュリティ対策が講じられている。 In recent years, various content distribution services via networks such as the Internet have become widespread. In such a content distribution service, content data (hereinafter also referred to as content data) itself is provided from a predetermined server to a user terminal via a network, not via a medium such as a CD or a DVD. Therefore, there is a strong demand for preventing unauthorized use of content, and various security measures have been taken.
かかるセキュリティ対策としては、例えばサーバ及び端末間でのユーザ認証処理やデータの送受信処理等に擬似乱数を用いた暗号化を利用することで、これらの処理が外部から解析・改竄されることを防止して、コンテンツの不正利用を防止する方法が広く知られている。 As such security measures, for example, by using encryption using pseudo-random numbers for user authentication processing and data transmission / reception processing between the server and the terminal, it is possible to prevent these processing from being analyzed and falsified from the outside. Thus, a method for preventing unauthorized use of content is widely known.
ところで、このように擬似乱数を利用する場合、いかに予測が困難で乱数性の高い擬似乱数を生成し得るかがセキュリティの上でも重要となる。そこで従来、例えば、RTC(リアル・タイム・クロック)から得られる現在時刻を、擬似乱数の乱数種(以下、これをseedとも呼ぶ)とし、このseedから擬似乱数を生成することで、擬似乱数の乱数性を高めるようになされたものがある(例えば特許文献1参照)。
しかしながら、このようにRTCを利用する場合、擬似乱数を生成する装置(例えばユーザの端末)に、RTCを別途実装する必要があり、しかもこのRTCは他の回路との統合が難しいため、実装が複雑になり、結果として端末のコストが上がるという問題があった。 However, when the RTC is used in this way, it is necessary to separately mount the RTC in a device for generating a pseudo random number (for example, a user terminal), and this RTC is difficult to integrate with other circuits. There is a problem that it becomes complicated and the cost of the terminal increases as a result.
本発明は以上の点を考慮してなされたもので、簡易な構成でありながら、一段と乱数性の高い乱数を生成し得る信号処理装置を提案しようするものである。 The present invention has been made in consideration of the above points, and proposes a signal processing apparatus that can generate a random number having a higher randomness with a simple configuration.
かかる課題を解決するため本発明の信号処理装置においては、信号処理部と、信号処理部とバスを介して接続されるメモリとを設け、信号処理部が、バスの処理時間のゆらぎよりもカウント周期の短いカウンタと、乱数種から乱数を生成する乱数生成部と、外部からの要求に応じて乱数生成部の動作を制御する制御部とを有し、カウンタが、信号処理部の起動と共にカウントを開始し、制御部が、外部からの乱数を要求する乱数要求情報に応じて、乱数生成部に対して当該乱数要求情報を転送し、乱数生成部が、乱数要求情報に応じて、バスを介してメモリとデータの送受信をしてからカウンタのカウンタ値を取得し、当該取得したカウンタ値に対応する乱数種から乱数を生成するようにした。 In order to solve such a problem, in the signal processing device of the present invention, a signal processing unit and a memory connected to the signal processing unit via a bus are provided, and the signal processing unit counts more than the fluctuation of the bus processing time. It has a counter with a short cycle, a random number generator that generates random numbers from random number seeds, and a controller that controls the operation of the random number generator in response to an external request, and the counter counts with the activation of the signal processor The control unit transfers the random number request information to the random number generation unit according to the random number request information requesting a random number from the outside, and the random number generation unit uses the bus according to the random number request information. The counter value of the counter is acquired after transmitting and receiving data to and from the memory, and a random number is generated from the random number seed corresponding to the acquired counter value.
このようにこのデータ処理回路では、バスを介してメモリとデータの送受信をしてからカウンタのカウンタ値を取得することにより、バスの処理時間のゆらぎをカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値に対応する乱数種から乱数を生成することにより、一段と乱数性の高い乱数を生成することができる。 In this way, in this data processing circuit, the counter value of the counter is acquired after transmitting and receiving data to and from the memory via the bus, thereby reflecting the fluctuation in the processing time of the bus in the counter value and generating an indefinite counter value. A random number having higher randomness can be generated by generating a random number from a random number seed corresponding to the indefinite counter value.
また、このデータ処理回路では、多くの一般的な信号処理回路に実装されるバスと、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよく、別途RTCを実装する場合と比して、構成を簡略化することができる。 Further, in this data processing circuit, it is only necessary to mount a bus mounted in many general signal processing circuits and a counter having a shorter count cycle than fluctuations in processing time of the bus. As compared with the above, the configuration can be simplified.
本発明によれば、バスを介してメモリとデータの送受信をしてからカウンタのカウンタ値を取得することにより、バスの処理時間のゆらぎをカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値に対応する乱数種から乱数を生成することにより、一段と乱数性の高い乱数を生成することができ、また多くの一般的な信号処理回路に実装されるバスと、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよいため、別途RTCを実装する場合と比して、構成を簡略化することができ、かくして、簡易な構成でありながら、一段と乱数性の高い乱数を生成し得る信号処理装置を実現することができる。 According to the present invention, it is possible to obtain an indefinite counter value by reflecting the fluctuation of the processing time of the bus in the counter value by acquiring the counter value after transmitting / receiving data to / from the memory via the bus. And by generating a random number from a random number seed corresponding to this indefinite counter value, a random number with higher randomness can be generated, and a bus implemented in many general signal processing circuits, Since it is only necessary to mount a counter having a shorter count cycle than the fluctuation in bus processing time, the configuration can be simplified as compared with the case of separately mounting an RTC, and thus the configuration is simple. Thus, it is possible to realize a signal processing apparatus that can generate a random number with higher randomness.
以下図面について、本発明の一実施の形態を詳述する。 Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
(1)第1の実施の形態
(1―1)コンテンツ再生装置の構成
図1において、1は全体としてネットワークNTを介して配信される楽曲コンテンツを再生可能なコンテンツ再生装置を示し、当該コンテンツ再生装置1の筐体表面やリモートコントローラ(図示せず)に設けられた各種操作ボタンでなる操作入力部2がユーザによって操作されると、当該操作入力部2でこれを認識し、この操作に応じた操作入力信号を入力処理部3に送出する。入力処理部3は、供給される操作入力信号に対して所定の処理を施すことによりこの操作入力信号を操作コマンドに変換し、これをバス4を介してホストCPU(Central Processing Unit)5に送出する。
(1) First Embodiment (1-1) Configuration of Content Playback Device In FIG. 1,
ホストCPU5は、ROM(Read Only Memory)6又はハードディスクドライブ7に予め記憶されている基本プログラムやアプリケーションプログラム等の各種プログラムをバス4を介してRAM(Random Access Memory)8に読み出す。そしてこのホストCPU5は、これら各種プログラムをRAM7上に展開し、展開した各種プログラムに従って全体を制御すると共に、所定の演算処理や、入力処理部3から与えられる操作コマンドに応じた処理(例えばコンテンツ取得処理やコンテンツ再生処理等)を実行する。
The
実際上、ホストCPU5は、例えば、ユーザにより操作入力部2を介して楽曲コンテンツの取得操作が行われると、これに応じて、通信処理部9及びネットワークインタフェース10を順次介して、ネットワークNT上のコンテンツ配信サーバ(図示せず)にアクセスし、このコンテンツ配信サーバに対して楽曲コンテンツの配信を要求する要求信号を送信する。
In practice, for example, when the user performs an operation for acquiring music content via the
コンテンツ配信サーバは、所定の暗号化を施したコンテンツデータ(以下、これを暗号化コンテンツデータとも呼ぶ)を蓄積しており、コンテンツ再生装置1からアクセスされると、このコンテンツ再生装置1との間で所定のユーザ認証処理を行い、コンテンツ再生装置1が正規ユーザであると確認できた場合にのみ、コンテンツ再生装置1から送られてくる要求信号に応じて、要求された楽曲コンテンツに対応する暗号化コンテンツデータを、ネットワークNTを介してコンテンツ再生装置1に送信する。またこのときコンテンツ配信サーバは、例えば要求された楽曲コンテンツが有料であれば、この楽曲コンテンツの配信にともなう対価をコンテンツ再生装置1のユーザに対して課金するための課金処理を実行する。
The content distribution server stores content data subjected to predetermined encryption (hereinafter also referred to as encrypted content data), and when accessed from the
コンテンツ再生装置1のホストCPU5は、コンテンツ配信サーバから配信される暗号化コンテンツデータをネットワークインタフェース10及び通信処理部9を順次介して取り込み、これをハードディスクドライブ7に記録する。
The
そしてホストCPU5は、ユーザにより操作入力部2を介してハードディスクドライブ7内の暗号化コンテンツデータに対する再生操作が行われると、これに応じて、指定された暗号化コンテンツデータをハードディスクドライブ7から読み出し、この暗号化コンテンツデータをデータ処理回路11に送出する。データ処理回路11は、暗号化コンテンツデータを復号することでコンテンツデータに戻し、これを音声処理部12に送出する。音声処理部12は、データ処理回路11から与えられるコンテンツデータに対してデジタルアナログ変換処理やイコライジング処理等の音声処理を施し、この結果得られる音声信号をスピーカSPに送出して、スピーカSPからこの音声信号に基づく音声を出力する。
When the user performs a reproduction operation on the encrypted content data in the
また、本実施の形態のデータ処理回路11は、内部に擬似乱数生成器(詳細については後述する)を有しており、ホストCPU5からの命令に応じて擬似乱数を生成するようにもなされている。この擬似乱数は、コンテンツ再生装置1及びコンテンツ配信サーバ間でのユーザ認証処理や各種データの送受信処理等をホストCPU5が行う際に用いられ、またデータ処理回路11内で行う復号処理やその他の処理等にも用いられる。
Further, the data processing circuit 11 of the present embodiment has a pseudo random number generator (details will be described later) inside, and is also adapted to generate pseudo random numbers in response to a command from the
このように、このコンテンツ再生装置1では、データ処理回路11で擬似乱数を生成し、この擬似乱数を、種々の処理で用いることにより、例えばユーザ認証処理やデータ処理回路11内での処理等で扱うデータを、この擬似乱数で暗号化することにより、これらの処理及びこれらの処理で扱うデータが外部から容易に解析・改竄されることを防止して、楽曲コンテンツの不正利用を防止し得るようになされている。
As described above, in the
ここで、実際上、データ処理回路11内でどのように擬似乱数を生成するのかを、データ処理回路11の内部構成と合わせて説明する。 Here, how the pseudo random numbers are actually generated in the data processing circuit 11 will be described together with the internal configuration of the data processing circuit 11.
(1−2)データ処理回路の内部構成及び擬似乱数の生成手順
まず、データ処理回路11の内部構成について、図2を用いて説明する。この図2に示すように、データ処理回路11は、DSP(Digital Signal Processor)20を構成するIC(Integrated Circuit)チップと、不揮発性メモリ21を構成するICチップとを実装した回路基板として形成されている。また、これらDSP20及び不揮発性メモリ21は、回路基板上のシリアルバス22によってシリアル接続されている。この不揮発性メモリ21には、例えばDSP20上で扱う各種データが記録されている。
(1-2) Internal Configuration of Data Processing Circuit and Pseudorandom Number Generation Procedure First, the internal configuration of the data processing circuit 11 will be described with reference to FIG. As shown in FIG. 2, the data processing circuit 11 is formed as a circuit board on which an IC (Integrated Circuit) chip constituting a DSP (Digital Signal Processor) 20 and an IC chip constituting a
DSP20は、自身の内部メモリ(図示せず)等に書き込まれるファームウェアに従って、種々の処理(上述の復号処理や擬似乱数の生成処理等)をソフトウェア的に実行し得る汎用のプロセッサであるが、ここではDSP20が、擬似乱数生成用のファームウェアに従って動作する場合について説明するものとし、また説明の便宜上、擬似乱数を生成するためのソフトウェア的な機能を、機能ブロック(命令処理部20a、擬似乱数生成器20b、フリーランカウンタ20c)に見立てて説明する。
The DSP 20 is a general-purpose processor that can execute various processes (such as the above-described decryption process and pseudo-random number generation process) in software according to firmware written in its own internal memory (not shown). Now, the case where the DSP 20 operates in accordance with the pseudo random number generation firmware will be described. For convenience of explanation, software functions for generating the pseudo random numbers are represented by function blocks (
DSP20は、ホストCPU5からの各種命令に応じて、命令処理部20aが全体(擬似乱数生成器20b及びフリーランカウンタ20c)を制御するようになされている。まず命令処理部20aは、ホストCPU5からの起動命令に応じて起動する(すなわちDSP20が起動する)と共に、このときフリーランカウンタ20cを起動させて、このフリーランカウンタ20cにカウントを開始させる。
In the
その後、命令処理部20aは、ホストCPU5から乱数を要求する乱数要求命令を受け取ると、この乱数要求命令を擬似乱数生成器20bに転送する。擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、まずシリアルバス22を介して不揮発性メモリ21の所定アドレスから所定データを読み出す。そしてこの擬似乱数生成器20bは、所定データの読み出しが完了した時点で、起動中のフリーランカウンタ20cからカウンタ値を取得する。
Thereafter, upon receiving a random number request command for requesting a random number from the
このとき所定データの読出にかかる時間は、シリアルバス22の処理時間のゆらぎによって変化するため不定であり、このためDSP20が起動してから所定データの読み出しが完了するまでの時間も不定となる。
At this time, the time required for reading the predetermined data is indefinite because it changes due to fluctuations in the processing time of the
ここで、本実施の形態のデータ処理回路11では、このシリアルバス22の処理時間のゆらぎをフリーランカウンタ20cのカウンタ値にも反映させるために、このゆらぎよりもカウンタ周期の短いフリーランカウンタ20cを用いるようにした。これによりDSP20が起動してから所定データの読み出しが完了するまでの間に、このフリーランカウンタ20cによってカウントされるカウンタ値も、シリアルバス22の処理時間のゆらぎにともなって不定となる。
Here, in the data processing circuit 11 of this embodiment, in order to reflect the fluctuation of the processing time of the
このようにしてカウンタ値を取得した擬似乱数生成器20bは、このカウンタ値をseedとして自身のseed保持領域30に格納した後、このseedから擬似乱数を生成し、これを命令処理部20aに送る。またこのとき擬似乱数生成器20bは、生成した擬似乱数で、seed保持領域30に格納されたseedを更新する。つまり、擬似乱数生成器20bは、擬似乱数を生成する度に、生成した擬似乱数でseedを更新するようになされている。
The
擬似乱数生成器20bから擬似乱数を受け取った命令処理部20aは、この擬似乱数をホストCPU5へ送る。
The
このように、擬似乱数生成器20bは、乱数を要求されると、まずシリアルバス22を介して不揮発性メモリ21の所定アドレスから所定データを読み出す。この場合の所定データの読出は、シリアルバス22の処理時間のゆらぎを利用してフリーランカウンタ20cのカウンタ値を不定にするための処理であり、以下、これを空読みとも呼ぶ。このようにして不揮発性メモリ21を空読みした後、擬似乱数生成器20bは、空読みによって不定となるフリーランカウンタ20cのカウンタ値を取得し、この不定なカウンタ値をseedとして擬似乱数を生成する。こうすることで擬似乱数生成器20bは、不定なseedをもとに一段と乱数性の高い擬似乱数を生成することができる。
As described above, when a random number is requested, the pseudo
ここで、データ処理回路11による擬似乱数の生成手順(以下、これを擬似乱数生成処理手順とも呼ぶ)について、図3のシーケンスチャートを用いて、より詳しく説明する。このシーケンスチャートは、ホストCPU5と、データ処理回路11を構成するDSP20(命令処理部20a、擬似乱数生成器20b及びフリーランカウンタ20c)及び不揮発性メモリ21とによる擬似乱数生成処理手順を示すものであり、このときホストCPU5はROM6に記録してあるプログラムに従って、またDSP20は内部メモリ(図示せず)に書き込まれたファームウェアに従って動作するようになされている。
Here, the pseudo-random number generation procedure (hereinafter also referred to as pseudo-random number generation procedure) by the data processing circuit 11 will be described in more detail with reference to the sequence chart of FIG. This sequence chart shows a pseudo-random number generation processing procedure by the
ホストCPU5は、例えば電源投入時、あるいは操作入力部2を介した手動操作に応じて、ステップSP1において、DSP20を起動させるためのDSP起動命令を、DSP20の命令処理部20aに送信する。
The
命令処理部20aは、ステップSP2において、ホストCPU5からのDSP起動命令に応じて起動する(すなわちDSP20が起動する)と共に、このときフリーランカウンタ20cでカウントを開始させるためのカウンタ起動命令を、フリーランカウンタ20cに送信する。フリーランカウンタ20cは、ステップSP3において、命令処理部20aからのカウンタ起動命令に応じて起動することにより、カウントを開始する。
In step SP2, the
その後、ホストCPU5は、例えば、擬似乱数を用いる特定の処理(ユーザ認証処理や各種データの送受信処理等)を実行するために擬似乱数が必要になると、ステップSP4において、乱数要求命令を命令処理部20aに送信する。命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、ステップSP5において、この乱数要求命令を擬似乱数生成器20bに転送する。
After that, for example, when the pseudo-random number is necessary to execute a specific process using the pseudo-random number (such as a user authentication process or various data transmission / reception process), the
擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、ステップSP6において、不揮発性メモリ21の所定アドレスから所定データを読み出すため(すなわち空読みするため)のデータ読出命令を、シリアルバス22を介して、不揮発性メモリ21に送信する。不揮発性メモリ21は、擬似乱数生成器20bからデータ読出命令を受け取ると、ステップSP7において、このデータ読出命令に応じて、所定アドレスに記録している所定データを、シリアルバス22を介して擬似乱数生成器20bに送信する。すなわち、擬似乱数生成器20bが、不揮発性メモリ21からシリアルバス22を介して所定データを読み出す。
When the
ここで、このステップSP6及びステップSP7の処理に要する時間は、上述したようにシリアルバス22の処理時間のゆらぎにより不定となる。
Here, the time required for the processing of step SP6 and step SP7 becomes indefinite due to fluctuations in the processing time of the
そして、所定データの読み出しを完了すると、擬似乱数生成器20bは、つづくステップSP8(図4)に移り、このステップSP8において、カウンタ値を要求するためのカウンタ値要求命令をフリーランカウンタ20cに送信する。フリーランカウンタ20cは、擬似乱数生成器20bからカウンタ値要求命令を受け取ると、ステップSP9において、このカウンタ値要求命令に応じて、この時点のカウンタ値を取得し、このカウンタ値を擬似乱数生成器20bへ送信する。
When the reading of the predetermined data is completed, the pseudo
ここで得られるカウンタ値は、ステップSP3−SP4−SP5−SP6−SP7−SP8−SP9の処理に要した時間を示すものである。そして、このステップSP3からステップSP9までの処理の一部であるステップSP6及びステップSP7の処理に要する時間が不定であるため、処理全体の時間を示すカウンタ値も不定となる。 The counter value obtained here indicates the time required for the processing of steps SP3-SP4-SP5-SP6-SP7-SP8-SP9. Since the time required for the processing of step SP6 and step SP7, which is a part of the processing from step SP3 to step SP9, is indefinite, the counter value indicating the entire processing time is also indefinite.
擬似乱数生成器20bは、フリーランカウンタ20cからカウンタ値を受け取ると、ステップSP10において、このカウンタ値でseed保持領域30のseedを初期化し、次のステップSP11に移る。つまり、フリーランカウンタ20cから得たカウンタ値を、seedの初期値とする。このときカウンタ値は不定であるため、seedの初期値も不定となり、この結果、擬似乱数生成器20bでは、DSP20を起動する度に毎回異なるseedを得ることができる。
When the pseudo
ステップSP11において、擬似乱数生成器20bは、seed保持領域30に格納したseedから擬似乱数を生成し、次のステップSP12に移る。ステップSP12において、擬似乱数生成器20bは、ステップSP11で生成した擬似乱数でseed保持領域30のseedを更新し、次のステップSP13に移る。ステップSP13において、擬似乱数生成器20bは、生成した擬似乱数を命令処理部20aに対して出力する。
In step SP11, the pseudo
命令処理部20aは、擬似乱数生成器20bから出力された擬似乱数を受け取ると、ステップSP14(図5)において、この擬似乱数をホストCPU5に返信する。
Upon receiving the pseudo random number output from the pseudo
このように、データ処理回路11では、シリアルバス22の処理時間のゆらぎを利用して、不定なseedを得ることができ、この不定なseedをもとに一段と乱数性の高い擬似乱数を生成することができる。
In this way, the data processing circuit 11 can obtain an indefinite seed by using fluctuations in the processing time of the
その後、再び擬似乱数を用いる特定の処理を実行するために擬似乱数が必要になると、ホストCPU5は、ステップSP15において、再度、乱数要求命令を命令処理部20aに送信する。命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、ステップSP16において、この乱数要求命令を擬似乱数生成器20bに転送する。
Thereafter, when a pseudo random number is required to execute a specific process using the pseudo random number again, the
擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、ステップSP17において、seed保持領域30に格納したseedから擬似乱数を生成し、次のステップSP18に移る。ステップSP18において、擬似乱数生成器20bは、ステップSP17で生成した擬似乱数でseed保持領域30のseedを更新し、次のステップSP19に移る。ステップSP19において、擬似乱数生成器20bは、生成した擬似乱数を命令処理部20aに対して出力する。
When receiving the random number request command from the
命令処理部20aは、擬似乱数生成器20bから出力された擬似乱数を受け取ると、ステップSP20において、この擬似乱数をホストCPU5に返信する。
Upon receiving the pseudo random number output from the pseudo
このように、データ処理回路11では、DSP20の起動後、初回の擬似乱数生成時にのみ、フリーランカウンタ20cから得られるカウンタ値をseedとして擬似乱数を生成し、2回目以降の擬似乱数生成時には、前回生成した擬似乱数をseedとして擬似乱数を生成するようになされている。
As described above, the data processing circuit 11 generates a pseudo random number with the counter value obtained from the free-
(1−3)動作及び効果
以上の構成においてデータ処理回路11では、ホストCPU5からのDSP起動命令に応じてDSP20を起動させると共に、このときDSP20の命令処理部20aによって、フリーランカウンタ20cを起動させてカウントを開始させる。
(1-3) Operation and Effect In the configuration described above, the data processing circuit 11 activates the
その後、データ処理回路11の命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、これを擬似乱数生成器20bに転送する。擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、シリアルバス22を介して不揮発性メモリ21のへの空読みを行い、この空読みが完了した時点で、起動中のフリーランカウンタ20cからカウンタ値を取得する。
Thereafter, upon receiving a random number request command from the
ここで取得するカウンタ値は、空読みした際のシリアルバス22の処理時間のゆらぎによって不定となる。実際上、このシリアルバス22の処理時間のゆらぎは、シリアルバス22に接続された機器間(ここではDSP20と不揮発性メモリ21)での通信タイミングの調整、データ衝突防止のための調停、及びクロック信号のズレ等によって生じるものである。このような要因によってゆらぎが生じ、このゆらぎによってカウンタ値が不定となるのであり、このことを明確にするために、ここでは、DSP20起動直後に、フリーランカウンタ20cでカウントを開始し、つづけて不揮発性メモリ21への空読みを1回行い、この空読みが完了した時点でフリーランカウンタ20cからカウンタ値を取得するといった一連の処理を10回試行する実験を行った。
The counter value acquired here is indefinite due to fluctuations in the processing time of the
この実験の結果、図6に示すように、カウンタ値は、1回目が「734599」、2回目が「734557」、3回目が「734419」、4回目が「734517」、5回目が「734675」、6回目が「734542」、7回目が「734535」、8回目が「734586」、9回目が「734500」、10回目が「734493」というように毎回異なる不規則な値となった。 As a result of this experiment, as shown in FIG. 6, the counter value is “734599” for the first time, “734557” for the second time, “734419” for the third time, “734517” for the fourth time, and “734675” for the fifth time. The sixth time is “734542”, the seventh time is “734535”, the eighth time is “734586”, the ninth time is “734500”, the tenth time is “734493”, and the irregular values are different every time.
従って、この実験結果からも、シリアルバス22の処理時間のゆらぎによって、フリーランカウンタ20cのカウンタ値が不定となることが確認できた。
Therefore, also from this experimental result, it was confirmed that the counter value of the free-
そして擬似乱数生成器20bは、このように予測が困難で不定なカウンタ値をseedの初期値として、このseedから擬似乱数を生成する。
Then, the pseudo
このように、データ処理回路11では、シリアルバス22の処理時間のゆらぎをカウンタ値に反映させることで、DSP20を起動する度に異なるカウンタ値を得ることができ、この不定なカウンタ値をseedの初期値とすることで、一段と乱数性の高い擬似乱数を生成することができる。
In this way, the data processing circuit 11 can obtain a different counter value every time the
また、このデータ処理回路11では、データ処理回路11内部に設けられたシリアルバス22の処理時間のゆらぎといった、データ処理回路11の外部のハードウェア及びプログラムから制御することのできない不定な時間を利用するようにしたことにより、例えばコンテンツを不正に利用しようとして、ホストCPU5及びバス4を不正に制御して上述の擬似乱数生成処理手順におけるステップSP1からステップSP4の開始までの時間を一定にさせても、常に不定なseedを確実に得ることができるので、コンテンツの不正利用をより確実に防止することができる。
In addition, the data processing circuit 11 uses an indefinite time that cannot be controlled from the hardware and program external to the data processing circuit 11, such as fluctuations in the processing time of the
さらに、このデータ処理回路11では、多くの一般的なデータ処理回路に実装されるバス(シリアルバス22)の処理時間のゆらぎを利用してseedを得るようにしたことにより、回路に、このようなバス(シリアルバス22)に加えて、ゆらぎをカウンタ値に反映し得るカウンタ(フリーランカウンタ20c)が実装されていればよく、RTCを実装することなく、一段と簡易な構成で、高品質な擬似乱数を生成する回路を実現することができる。
Further, in the data processing circuit 11, since the seed is obtained by using the fluctuation of the processing time of the bus (serial bus 22) mounted on many general data processing circuits, the circuit has the following configuration. In addition to a simple bus (serial bus 22), a counter (free-
以上の構成によれば、シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得することにより、シリアルバス22の処理時間のゆらぎをこのカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値をseedとして、このseedから擬似乱数を生成することにより、一段と乱数性の高い乱数を生成することができ、また多くの一般的なデータ処理回路に実装されるバス(この場合シリアルバス22)と、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよいため、別途RTCを実装する場合と比して、構成を簡略化することができ、かくして、簡易な構成でありながら、一段と乱数性の高い乱数を生成することができる。
According to the above configuration, the processing time fluctuation of the
(2)第2の実施の形態
次に、本発明の第2の実施の形態を詳述する。この第2の実施の形態においては、データ処理回路11に実装されるDSP20の構成が異なる点以外は、上述の第1の実施の形態と同様であるので、同様部分の説明は省略する。
(2) Second Embodiment Next, a second embodiment of the present invention will be described in detail. Since the second embodiment is the same as the first embodiment except that the configuration of the
(2−1)データ処理回路の内部構成
図2との同一部分に同一符号を付した図7に示すように、この第2の実施の形態のデータ処理回路11には、DSP20内の擬似乱数生成器20bとフリーランカウンタ20cとの間に、新たにハッシュ値生成部40を設けるようにした。このハッシュ値生成部40は、フリーランカウンタ20cで取得したカウンタ値を離散化するために、取得したカウンタ値に対してハッシュ関数(一方向性関数)を適用するようになされている。こうすることでハッシュ値生成部40は、離散化したカウンタ値となるハッシュ値を生成し、このハッシュ値を擬似乱数生成器20bに送信する。
(2-1) Internal Configuration of Data Processing Circuit As shown in FIG. 7 in which the same reference numerals are given to the same parts as those in FIG. 2, the data processing circuit 11 of the second embodiment includes a pseudo random number in the
そして擬似乱数生成器20bは、ハッシュ値生成部40から得られるハッシュ値をseedの初期値として、このseedから擬似乱数を生成する。
Then, the pseudo
このようにこの第2の実施の形態では、ハッシュ値生成部40により、カウンタ値を離散化したハッシュ値を生成し、このハッシュ値をseedの初期値とすることで、よりいっそう乱数性の高い擬似乱数を生成することができる。
As described above, in the second embodiment, the hash
なお、ここでは、カウンタ値を離散化させるために、ハッシュ関数を用いた場合について述べたが、本発明はこれに限らず、例えば、MAC関数のような、種々の離散化関数を用いるようにしてもよい。 Although the case where a hash function is used to discretize the counter value has been described here, the present invention is not limited to this, and various discretization functions such as a MAC function are used. May be.
(3)他の実施の形態
なお上述の実施の形態においては、DSP20と不揮発性メモリ21とをシリアルバス22で接続し、このシリアルバス22の処理時間のゆらぎを利用するようにした場合について述べたが、本発明はこれに限らず、例えばDSP20と不揮発性メモリ21とをパラレルバスで接続し、このパラレルバスの処理時間のゆらぎを利用するようにしてもよいし、この他種々のバスでDSP20と不揮発性メモリ21とを接続し、このバスの処理時間のゆらぎを利用するようにしてもよい。
(3) Other Embodiments In the above-described embodiment, the case where the
また上述の実施の形態においては、シリアルバス22を介して不揮発性メモリ21へ空読みを1回行ってからカウンタ値を取得するようにした場合について述べたが、本発明はこれに限らず、例えば空読みを複数回行ってからカウンタ値を取得するようにしてもよいし、不揮発性メモリ21への空読みに加えて、バス4を介してROM6、HDD7、あるいはハードディスクドライブ7に対してデータの送受信(すなわち空読み)を行ってからカウンタ値を取得するようにしてもよい。このようにすれば、擬似乱数生成器20bが生成する擬似乱数の乱数性をより高めることができる。
Further, in the above-described embodiment, the case where the counter value is acquired after performing the idle reading once to the
さらに上述の実施の形態においては、擬似乱数生成処理手順の説明で、データ処理回路のDSP20が、ホストCPU5からの乱数要求命令に応じて擬似乱数を生成し、生成した擬似乱数をホストCPU5に返信するようにした場合について述べたが、本発明はこれに限らず、例えば、ホストCPU5から、DSP20に対して、擬似乱数を用いた特定処理の実行命令を送信し、DSP20が、この実行命令に応じて擬似乱数を生成すると共に、この擬似乱数を用いた特定処理を実行し、この処理結果、あるいは処理完了通知をホストCPU5に返信するようにしてもよい。
Furthermore, in the above-described embodiment, in the explanation of the pseudo random number generation processing procedure, the
さらに上述の実施の形態においては、データ処理回路11のDSP20内にソフトウェア的な機能として、命令処理部20a、擬似乱数生成器20b、及びフリーランカウンタ20cを設けるようにした場合について述べたが、本発明はこれに限らず、これら命令処理部20a、擬似乱数生成器20b、及びフリーランカウンタ20cの一部または全部を、データ処理回路11にハードウェアとして実装するようにしてもよい。
Furthermore, in the above-described embodiment, the case where the
さらに上述の実施の形態においては、命令処理部20aがホストCPU5から乱数要求命令を受け取ると、これを擬似乱数生成器20bに転送し、擬似乱数生成器20bがこの乱数要求命令に応じて、不揮発性メモリ21への空読みを行い、この空読み完了後、フリーランカウンタ20cからカウンタ値を取得して擬似乱数を生成するようにした場合について述べたが、本発明はこれに限らず、命令処理部20aがホストCPU5から乱数要求命令を受け取ると、この命令処理部20aが不揮発性メモリ21への空読みを行い、この空読み完了後、乱数要求命令を擬似乱数生成器20bに転送し、擬似乱数生成器20bがこの乱数要求命令に応じて、フリーランカウンタ20cからカウンタ値を取得して擬似乱数を生成するようにしてもよい。
Furthermore, in the above-described embodiment, when the
さらに上述の実施の形態においては、信号処理部としてのDSP20と、バスとしてのシリアルバス22と、メモリとしての不揮発性メモリ21とによって、信号処理装置としてのデータ処理回路及びコンテンツ再生装置1を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
Furthermore, in the above-described embodiment, the
さらに上述の実施の形態においては、制御部としての命令処理部20aと、フリーランカウンタ20cと、ホストCPU5から命令処理部20aを介して転送される乱数要求情報としての乱数要求命令に応じて、シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得し、取得したカウンタ値をseedとして乱数を生成する乱数生成部としての擬似乱数生成器20bとによって、DSP20を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。
Furthermore, in the above-described embodiment, in response to the
本発明は、擬似乱数を生成する様々な回路及び装置で広く利用できる。 The present invention can be widely used in various circuits and devices for generating pseudo-random numbers.
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……スピーカ。
DESCRIPTION OF
Claims (6)
上記信号処理部とバスを介して接続されるメモリと
を具え、
上記信号処理部は、
上記バスの処理時間のゆらぎよりもカウント周期の短いカウンタと、
乱数種から乱数を生成する乱数生成部と、
外部からの要求に応じて上記乱数生成部の動作を制御する制御部と
を有し、
上記カウンタは、上記信号処理部の起動と共にカウントを開始し、
上記制御部は、外部からの乱数を要求する乱数要求情報に応じて、上記乱数生成部に対して当該乱数要求情報を転送し、
上記乱数生成部は、上記乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから上記カウンタのカウンタ値を取得し、当該取得したカウンタ値に対応する乱数種から乱数を生成する
ことを特徴とする信号処理装置。 A signal processing unit;
Comprising the signal processing unit and a memory connected via a bus,
The signal processor is
A counter having a shorter count cycle than fluctuations in the processing time of the bus,
A random number generator for generating random numbers from random number seeds;
A control unit that controls the operation of the random number generation unit in response to an external request,
The counter starts counting with the activation of the signal processing unit,
The control unit transfers the random number request information to the random number generation unit in response to random number request information for requesting a random number from the outside,
In response to the random number request information, the random number generation unit obtains a counter value of the counter after transmitting / receiving data to / from the memory via the bus, and generates a random number from a random seed corresponding to the acquired counter value. A signal processing device.
ことを特徴とする請求項1に記載の信号処理装置。 The signal processing apparatus according to claim 1, wherein the random number generation unit reads data from a specific position of the memory via the bus according to the random number request information.
上記乱数生成部は、上記乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから上記ハッシュ値生成部のハッシュ値を取得し、当該取得したハッシュ値に対応する乱数種から乱数を生成する
ことを特徴とする請求項1に記載の信号処理装置。 A hash value generator for generating a hash value from the counter value,
The random number generation unit obtains a hash value of the hash value generation unit after transmitting / receiving data to / from the memory via the bus according to the random number request information, and a random number corresponding to the acquired hash value The signal processing device according to claim 1, wherein a random number is generated from a seed.
ことを特徴とする請求項1に記載の信号処理装置。 The signal processing apparatus according to claim 1, wherein the bus is a serial bus.
起動時に、上記バスの処理時間のゆらぎよりも短いカウント周期でカウントを開始するカウント開始ステップと、
外部からの乱数を要求する乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから、上記カウンタのカウンタ値を取得するカウンタ値取得ステップと、
上記カウンタ値取得ステップで取得した上記カウンタ値に対応する乱数種から乱数を生成する乱数生成ステップと
を具える
ことを特徴とする信号処理方法。 In a signal processing method by a signal processing device having a memory connected via a bus,
At the time of start-up, a count start step for starting counting at a count cycle shorter than the fluctuation of the bus processing time,
In response to random number request information for requesting a random number from the outside, after transmitting and receiving data to and from the memory via the bus, a counter value acquisition step for acquiring the counter value of the counter;
A signal processing method comprising: a random number generation step for generating a random number from a random number seed corresponding to the counter value acquired in the counter value acquisition step.
起動時に、上記バスの処理時間のゆらぎよりも短いカウント周期でカウントを開始するカウント開始ステップと、
外部からの乱数を要求する乱数要求情報に応じて、上記バスを介して上記メモリとデータの送受信をしてから、上記カウンタのカウンタ値を取得するカウンタ値取得ステップと、
上記カウンタ値取得ステップで取得した上記カウンタ値に対応する乱数種から乱数を生成する乱数生成ステップと
を実行させることを特徴とする信号処理プログラム。
For a signal processing device having a memory connected via a bus,
At the time of start-up, a count start step for starting counting at a count cycle shorter than the fluctuation of the bus processing time,
In response to random number request information for requesting a random number from the outside, after transmitting and receiving data to and from the memory via the bus, a counter value acquisition step for acquiring the counter value of the counter;
And a random number generation step of generating a random number from a random number seed corresponding to the counter value acquired in the counter value acquisition step.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005049561A JP4465610B2 (en) | 2005-02-24 | 2005-02-24 | Signal processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005049561A JP4465610B2 (en) | 2005-02-24 | 2005-02-24 | Signal processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006235995A true JP2006235995A (en) | 2006-09-07 |
JP4465610B2 JP4465610B2 (en) | 2010-05-19 |
Family
ID=37043575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005049561A Active JP4465610B2 (en) | 2005-02-24 | 2005-02-24 | Signal processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4465610B2 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008203581A (en) * | 2007-02-21 | 2008-09-04 | Matsushita Electric Works Ltd | Network system |
JP2013191907A (en) * | 2012-03-12 | 2013-09-26 | Kddi Corp | Stream encryption processing system, anti-tamper device, and stream encryption processing method |
CN103885746A (en) * | 2012-12-21 | 2014-06-25 | 株式会社牧田 | Random number generating device |
WO2014138221A1 (en) * | 2013-03-08 | 2014-09-12 | Mcafee, Inc. | Data protection using programmatically generated key pairs from a master key and a descriptor |
JP2014222420A (en) * | 2013-05-13 | 2014-11-27 | 株式会社メガチップス | Semiconductor storage device and data processing system |
US11080020B2 (en) | 2019-04-26 | 2021-08-03 | Megachips Corporation | Information processing device and random number generating method |
-
2005
- 2005-02-24 JP JP2005049561A patent/JP4465610B2/en active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008203581A (en) * | 2007-02-21 | 2008-09-04 | Matsushita Electric Works Ltd | Network system |
JP2013191907A (en) * | 2012-03-12 | 2013-09-26 | Kddi Corp | Stream encryption processing system, anti-tamper device, and stream encryption processing method |
CN103885746A (en) * | 2012-12-21 | 2014-06-25 | 株式会社牧田 | Random number generating device |
JP2014123284A (en) * | 2012-12-21 | 2014-07-03 | Makita Corp | Random number generation device |
WO2014138221A1 (en) * | 2013-03-08 | 2014-09-12 | Mcafee, Inc. | Data protection using programmatically generated key pairs from a master key and a descriptor |
US9106412B2 (en) | 2013-03-08 | 2015-08-11 | Mcafee, Inc. | Data protection using programmatically generated key pairs from a master key and a descriptor |
JP2014222420A (en) * | 2013-05-13 | 2014-11-27 | 株式会社メガチップス | Semiconductor storage device and data processing system |
US11080020B2 (en) | 2019-04-26 | 2021-08-03 | Megachips Corporation | Information processing device and random number generating method |
Also Published As
Publication number | Publication date |
---|---|
JP4465610B2 (en) | 2010-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103620609B (en) | DRM(digital rights management is utilized for playing) method of digital content of scheme protection and corresponding system | |
US11294989B2 (en) | Content usage monitor | |
RU2542930C2 (en) | Booting and configuring subsystem securely from non-local storage | |
JP5556895B2 (en) | Content data reproducing apparatus, update management method, and update management program | |
CN101243434B (en) | Remotely accessing protected files via streaming | |
JP4465610B2 (en) | Signal processing device | |
JP4922787B2 (en) | Verification method, information processing apparatus, recording medium, verification system, certification program, and verification program | |
US8532290B2 (en) | Content playback APIS using encrypted streams | |
WO2016091034A1 (en) | Method and device for providing application channel packet | |
WO2014146527A1 (en) | Method and device for intercepting embedded information in application program | |
CN1541391A (en) | System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks or other media | |
CN101578608B (en) | Methods and apparatuses for accessing content based on a session ticket | |
JP2007164595A (en) | Function calling method of computer system, computer system and library | |
CN105912889A (en) | Electronic device and method for providing DRM content | |
JP4900276B2 (en) | Electronic music apparatus, music content providing system, and music content use program | |
JP2007086957A (en) | Information processing system, client device, server device, information processing method and computer program | |
CN109040087A (en) | File encryption and decryption method and device | |
JP5307825B2 (en) | System and method for tracking downloaded digital media files | |
JP2009075922A (en) | Server device, terminal device, leakage protection system for taken-out information, server processing program, and terminal processing program | |
JP6203532B2 (en) | Semiconductor memory device and data processing system | |
US20060224894A1 (en) | Methods, devices and computer programs for creating ciphertext, plaintext and a cryptographic key | |
KR100885722B1 (en) | System and method for UCC contents protection | |
CN101617318A (en) | Be used for method and apparatus that content and licence are linked | |
JP2006209690A (en) | Data processing circuit | |
JP2005204000A (en) | Data-decoding method and data-decoding system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070910 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100119 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100128 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100210 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130305 Year of fee payment: 3 |