JP2006235995A - Signal processing device - Google Patents

Signal processing device Download PDF

Info

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
Application number
JP2005049561A
Other languages
Japanese (ja)
Other versions
JP4465610B2 (en
Inventor
Tsurayuki Oishi
貫之 大石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005049561A priority Critical patent/JP4465610B2/en
Publication of JP2006235995A publication Critical patent/JP2006235995A/en
Application granted granted Critical
Publication of JP4465610B2 publication Critical patent/JP4465610B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To realize a signal processing device which can generate random numbers whose randomness is further higher although it is a simple composition. <P>SOLUTION: This device can generate random numbers whose randomness is further higher by generating pseudo-random number assuming uncertain counter value as seed, while the uncertain counter value being able to be obtained reflecting fluctuation of processing time of serial bus 22 to this counter value by obtaining counter value of free run counter 20c after performing empty reading to a nonvolatile memory 21 through a serial bus 22. Moreover, since it is required only to mount a bus mounted to many general data processing circuits and a counter whose count cycle is shorter than fluctuation of processing time of the bus, the composition of this device can be simplified compared with the case that RTC (Real Time Clock) is mounted separately. In this way, this device can generate random numbers whose randomness is further higher although it has a simple composition. <P>COPYRIGHT: (C)2006,JPO&NCIPI

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参照)。
特開2002−344444公報(段落番号〔0053〕)
By the way, when using pseudo-random numbers in this way, it is important in terms of security how difficult to predict and to generate pseudo-random numbers with high randomness. Therefore, conventionally, for example, the current time obtained from an RTC (real time clock) is set as a pseudorandom number random seed (hereinafter also referred to as seed), and pseudorandom numbers are generated from the seeds. Some are designed to improve randomness (see, for example, Patent Document 1).
JP 2002-344444 A (paragraph number [0053])

しかしながら、このように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, reference numeral 1 denotes a content playback device capable of playing back music content distributed via the network NT as a whole. When the operation input unit 2 including various operation buttons provided on the housing surface of the apparatus 1 or a remote controller (not shown) is operated by the user, the operation input unit 2 recognizes this and responds to this operation. The operation input signal is sent to the input processing unit 3. The input processing unit 3 performs predetermined processing on the supplied operation input signal to convert the operation input signal into an operation command, and sends the operation command to a host CPU (Central Processing Unit) 5 via the bus 4. To do.

ホストCPU5は、ROM(Read Only Memory)6又はハードディスクドライブ7に予め記憶されている基本プログラムやアプリケーションプログラム等の各種プログラムをバス4を介してRAM(Random Access Memory)8に読み出す。そしてこのホストCPU5は、これら各種プログラムをRAM7上に展開し、展開した各種プログラムに従って全体を制御すると共に、所定の演算処理や、入力処理部3から与えられる操作コマンドに応じた処理(例えばコンテンツ取得処理やコンテンツ再生処理等)を実行する。   The host CPU 5 reads various programs such as basic programs and application programs stored in advance in a ROM (Read Only Memory) 6 or a hard disk drive 7 into a RAM (Random Access Memory) 8 via the bus 4. The host CPU 5 develops these various programs on the RAM 7 and controls the whole in accordance with the developed various programs, and also performs predetermined arithmetic processing and processing (for example, content acquisition) according to an operation command given from the input processing unit 3. Processing, content reproduction processing, etc.).

実際上、ホストCPU5は、例えば、ユーザにより操作入力部2を介して楽曲コンテンツの取得操作が行われると、これに応じて、通信処理部9及びネットワークインタフェース10を順次介して、ネットワークNT上のコンテンツ配信サーバ(図示せず)にアクセスし、このコンテンツ配信サーバに対して楽曲コンテンツの配信を要求する要求信号を送信する。   In practice, for example, when the user performs an operation for acquiring music content via the operation input unit 2, the host CPU 5 responds to the request on the network NT via the communication processing unit 9 and the network interface 10 sequentially. A content distribution server (not shown) is accessed, and a request signal for requesting distribution of music content is transmitted to the content distribution server.

コンテンツ配信サーバは、所定の暗号化を施したコンテンツデータ(以下、これを暗号化コンテンツデータとも呼ぶ)を蓄積しており、コンテンツ再生装置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 content playback device 1, The encryption corresponding to the requested music content is performed in response to the request signal sent from the content reproduction apparatus 1 only when the predetermined user authentication process is performed and it is confirmed that the content reproduction apparatus 1 is an authorized user. The encrypted content data is transmitted to the content reproduction apparatus 1 via the network NT. At this time, if the requested music content is charged, for example, the content distribution server executes a charging process for charging the user of the content reproduction apparatus 1 for the fee associated with the distribution of the music content.

コンテンツ再生装置1のホストCPU5は、コンテンツ配信サーバから配信される暗号化コンテンツデータをネットワークインタフェース10及び通信処理部9を順次介して取り込み、これをハードディスクドライブ7に記録する。   The host CPU 5 of the content reproduction apparatus 1 takes in the encrypted content data distributed from the content distribution server via the network interface 10 and the communication processing unit 9 in order, and records them in the hard disk drive 7.

そしてホスト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 hard disk drive 7 via the operation input unit 2, the host CPU 5 reads the specified encrypted content data from the hard disk drive 7 in response to this. This encrypted content data is sent to the data processing circuit 11. The data processing circuit 11 decrypts the encrypted content data to return it to the content data, and sends it to the audio processing unit 12. The sound processing unit 12 performs sound processing such as digital-analog conversion processing and equalizing processing on the content data given from the data processing circuit 11, and sends out the sound signal obtained as a result to the speaker SP. Outputs audio based on the audio signal.

また、本実施の形態のデータ処理回路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 host CPU 5. Yes. This pseudo-random number is used when the host CPU 5 performs user authentication processing and various data transmission / reception processing between the content reproduction apparatus 1 and the content distribution server, and also includes decryption processing and other processing performed in the data processing circuit 11. Etc.

このように、このコンテンツ再生装置1では、データ処理回路11で擬似乱数を生成し、この擬似乱数を、種々の処理で用いることにより、例えばユーザ認証処理やデータ処理回路11内での処理等で扱うデータを、この擬似乱数で暗号化することにより、これらの処理及びこれらの処理で扱うデータが外部から容易に解析・改竄されることを防止して、楽曲コンテンツの不正利用を防止し得るようになされている。   As described above, in the content reproduction apparatus 1, the data processing circuit 11 generates a pseudo random number and uses the pseudo random number in various processes, for example, in a user authentication process or a process in the data processing circuit 11. By encrypting the data to be handled with this pseudo-random number, it is possible to prevent these processes and the data handled in these processes from being easily analyzed and falsified from the outside, and to prevent unauthorized use of music contents. Has been made.

ここで、実際上、データ処理回路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 nonvolatile memory 21 are mounted. ing. The DSP 20 and the nonvolatile memory 21 are serially connected by a serial bus 22 on the circuit board. In the nonvolatile memory 21, for example, various data handled on the DSP 20 are recorded.

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 (instruction processing unit 20a, pseudo random number generator). 20b, free run counter 20c).

DSP20は、ホストCPU5からの各種命令に応じて、命令処理部20aが全体(擬似乱数生成器20b及びフリーランカウンタ20c)を制御するようになされている。まず命令処理部20aは、ホストCPU5からの起動命令に応じて起動する(すなわちDSP20が起動する)と共に、このときフリーランカウンタ20cを起動させて、このフリーランカウンタ20cにカウントを開始させる。   In the DSP 20, the instruction processing unit 20 a controls the whole (pseudo random number generator 20 b and free run counter 20 c) in accordance with various instructions from the host CPU 5. First, the instruction processing unit 20a is activated in response to an activation instruction from the host CPU 5 (that is, the DSP 20 is activated), and at this time, activates the free-run counter 20c and causes the free-run counter 20c to start counting.

その後、命令処理部20aは、ホストCPU5から乱数を要求する乱数要求命令を受け取ると、この乱数要求命令を擬似乱数生成器20bに転送する。擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、まずシリアルバス22を介して不揮発性メモリ21の所定アドレスから所定データを読み出す。そしてこの擬似乱数生成器20bは、所定データの読み出しが完了した時点で、起動中のフリーランカウンタ20cからカウンタ値を取得する。   Thereafter, upon receiving a random number request command for requesting a random number from the host CPU 5, the command processing unit 20a transfers the random number request command to the pseudo-random number generator 20b. When the pseudo random number generator 20b receives a random number request command from the command processing unit 20a, the pseudo random number generator 20b first reads predetermined data from a predetermined address of the nonvolatile memory 21 via the serial bus 22. The pseudo-random number generator 20b acquires the counter value from the activated free-run counter 20c when the reading of the predetermined data is completed.

このとき所定データの読出にかかる時間は、シリアルバス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 serial bus 22, and therefore the time from the start of the DSP 20 until the reading of the predetermined data is also indefinite.

ここで、本実施の形態のデータ処理回路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 serial bus 22 in the counter value of the free-run counter 20c, the free-run counter 20c having a shorter counter cycle than this fluctuation. Was used. As a result, the counter value counted by the free-run counter 20c from when the DSP 20 is activated until the reading of the predetermined data is completed also becomes indefinite due to fluctuations in the processing time of the serial bus 22.

このようにしてカウンタ値を取得した擬似乱数生成器20bは、このカウンタ値をseedとして自身のseed保持領域30に格納した後、このseedから擬似乱数を生成し、これを命令処理部20aに送る。またこのとき擬似乱数生成器20bは、生成した擬似乱数で、seed保持領域30に格納されたseedを更新する。つまり、擬似乱数生成器20bは、擬似乱数を生成する度に、生成した擬似乱数でseedを更新するようになされている。   The pseudo-random number generator 20b that has acquired the counter value in this way stores the counter value as seed in its own holding area 30, and then generates a pseudo-random number from the seed and sends it to the instruction processing unit 20a. . At this time, the pseudo random number generator 20b updates the seed stored in the seed holding area 30 with the generated pseudo random number. That is, the pseudo random number generator 20b updates seed with the generated pseudo random number every time it generates a pseudo random number.

擬似乱数生成器20bから擬似乱数を受け取った命令処理部20aは、この擬似乱数をホストCPU5へ送る。   The instruction processing unit 20 a that has received the pseudo random number from the pseudo random number generator 20 b sends the pseudo random number to the host CPU 5.

このように、擬似乱数生成器20bは、乱数を要求されると、まずシリアルバス22を介して不揮発性メモリ21の所定アドレスから所定データを読み出す。この場合の所定データの読出は、シリアルバス22の処理時間のゆらぎを利用してフリーランカウンタ20cのカウンタ値を不定にするための処理であり、以下、これを空読みとも呼ぶ。このようにして不揮発性メモリ21を空読みした後、擬似乱数生成器20bは、空読みによって不定となるフリーランカウンタ20cのカウンタ値を取得し、この不定なカウンタ値をseedとして擬似乱数を生成する。こうすることで擬似乱数生成器20bは、不定なseedをもとに一段と乱数性の高い擬似乱数を生成することができる。   As described above, when a random number is requested, the pseudo random number generator 20 b first reads predetermined data from a predetermined address of the nonvolatile memory 21 via the serial bus 22. The reading of the predetermined data in this case is a process for making the counter value of the free-run counter 20c indefinite using the fluctuation of the processing time of the serial bus 22, and this is also referred to as idle reading hereinafter. After the non-volatile memory 21 is read idle in this way, the pseudo random number generator 20b acquires the counter value of the free-run counter 20c that becomes indefinite due to the idle reading, and generates the pseudo random number using the indefinite counter value as seed. To do. By doing so, the pseudo-random number generator 20b can generate a pseudo-random number with higher randomness based on an indefinite seed.

ここで、データ処理回路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 host CPU 5, the DSP 20 (the instruction processing unit 20 a, the pseudo-random number generator 20 b and the free-run counter 20 c) constituting the data processing circuit 11 and the nonvolatile memory 21. At this time, the host CPU 5 operates in accordance with a program recorded in the ROM 6, and the DSP 20 operates in accordance with firmware written in an internal memory (not shown).

ホストCPU5は、例えば電源投入時、あるいは操作入力部2を介した手動操作に応じて、ステップSP1において、DSP20を起動させるためのDSP起動命令を、DSP20の命令処理部20aに送信する。   The host CPU 5 transmits a DSP activation command for activating the DSP 20 to the instruction processing unit 20a of the DSP 20 in step SP1, for example, when the power is turned on or in response to a manual operation via the operation input unit 2.

命令処理部20aは、ステップSP2において、ホストCPU5からのDSP起動命令に応じて起動する(すなわちDSP20が起動する)と共に、このときフリーランカウンタ20cでカウントを開始させるためのカウンタ起動命令を、フリーランカウンタ20cに送信する。フリーランカウンタ20cは、ステップSP3において、命令処理部20aからのカウンタ起動命令に応じて起動することにより、カウントを開始する。   In step SP2, the instruction processing unit 20a is activated in response to a DSP activation instruction from the host CPU 5 (that is, the DSP 20 is activated). At this time, a free counter counter 20c is used to start counting. Transmit to the run counter 20c. In step SP3, the free-run counter 20c starts counting in response to being started according to a counter starting instruction from the instruction processing unit 20a.

その後、ホスト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 host CPU 5 sends a random number request command to the command processing unit in step SP4. To 20a. When receiving the random number request command from the host CPU 5, the command processing unit 20a transfers the random number request command to the pseudo random number generator 20b in step SP5.

擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、ステップSP6において、不揮発性メモリ21の所定アドレスから所定データを読み出すため(すなわち空読みするため)のデータ読出命令を、シリアルバス22を介して、不揮発性メモリ21に送信する。不揮発性メモリ21は、擬似乱数生成器20bからデータ読出命令を受け取ると、ステップSP7において、このデータ読出命令に応じて、所定アドレスに記録している所定データを、シリアルバス22を介して擬似乱数生成器20bに送信する。すなわち、擬似乱数生成器20bが、不揮発性メモリ21からシリアルバス22を介して所定データを読み出す。   When the pseudo-random number generator 20b receives the random number request command from the command processing unit 20a, in step SP6, the pseudo-random number generator 20b reads a data read command for reading predetermined data from a predetermined address of the nonvolatile memory 21 (that is, for empty reading). The data is transmitted to the nonvolatile memory 21 via the bus 22. When the nonvolatile memory 21 receives the data read command from the pseudo random number generator 20b, in step SP7, in response to the data read command, the non-volatile memory 21 transfers the predetermined data recorded at a predetermined address via the serial bus 22. It transmits to the generator 20b. That is, the pseudo random number generator 20 b reads predetermined data from the nonvolatile memory 21 via the serial bus 22.

ここで、このステップ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 serial bus 22 as described above.

そして、所定データの読み出しを完了すると、擬似乱数生成器20bは、つづくステップSP8(図4)に移り、このステップSP8において、カウンタ値を要求するためのカウンタ値要求命令をフリーランカウンタ20cに送信する。フリーランカウンタ20cは、擬似乱数生成器20bからカウンタ値要求命令を受け取ると、ステップSP9において、このカウンタ値要求命令に応じて、この時点のカウンタ値を取得し、このカウンタ値を擬似乱数生成器20bへ送信する。   When the reading of the predetermined data is completed, the pseudo random number generator 20b proceeds to step SP8 (FIG. 4), and in this step SP8, transmits a counter value request command for requesting a counter value to the free-run counter 20c. To do. When the free-run counter 20c receives the counter value request command from the pseudo random number generator 20b, the free run counter 20c acquires the counter value at this point in response to the counter value request command in step SP9, and uses the counter value as the pseudo random number generator. To 20b.

ここで得られるカウンタ値は、ステップ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 random number generator 20b receives the counter value from the free-run counter 20c, in step SP10, the pseudo random number generator 20b initializes seed in the seed holding area 30 with the counter value, and proceeds to the next step SP11. That is, the counter value obtained from the free-run counter 20c is used as the initial value of seed. At this time, since the counter value is indefinite, the initial value of seed is also indefinite. As a result, the pseudorandom number generator 20b can obtain a different seed every time the DSP 20 is activated.

ステップSP11において、擬似乱数生成器20bは、seed保持領域30に格納したseedから擬似乱数を生成し、次のステップSP12に移る。ステップSP12において、擬似乱数生成器20bは、ステップSP11で生成した擬似乱数でseed保持領域30のseedを更新し、次のステップSP13に移る。ステップSP13において、擬似乱数生成器20bは、生成した擬似乱数を命令処理部20aに対して出力する。   In step SP11, the pseudo random number generator 20b generates a pseudo random number from the seed stored in the seed holding area 30, and proceeds to the next step SP12. In step SP12, the pseudo random number generator 20b updates the seed in the seed holding area 30 with the pseudo random number generated in step SP11, and proceeds to the next step SP13. In step SP13, the pseudo random number generator 20b outputs the generated pseudo random number to the instruction processing unit 20a.

命令処理部20aは、擬似乱数生成器20bから出力された擬似乱数を受け取ると、ステップSP14(図5)において、この擬似乱数をホストCPU5に返信する。   Upon receiving the pseudo random number output from the pseudo random number generator 20b, the instruction processing unit 20a returns this pseudo random number to the host CPU 5 in step SP14 (FIG. 5).

このように、データ処理回路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 serial bus 22, and generates a pseudo-random number with higher randomness based on the indefinite seed. be able to.

その後、再び擬似乱数を用いる特定の処理を実行するために擬似乱数が必要になると、ホスト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 host CPU 5 transmits a random number request command to the command processing unit 20a again in step SP15. Upon receiving the random number request command from the host CPU 5, the command processing unit 20a transfers this random number request command to the pseudo random number generator 20b in step SP16.

擬似乱数生成器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 command processing unit 20a, the pseudo random number generator 20b generates a pseudo random number from the seed stored in the seed holding area 30 in step SP17, and proceeds to the next step SP18. In step SP18, the pseudo random number generator 20b updates the seed in the seed holding area 30 with the pseudo random number generated in step SP17, and proceeds to the next step SP19. In step SP19, the pseudo random number generator 20b outputs the generated pseudo random number to the instruction processing unit 20a.

命令処理部20aは、擬似乱数生成器20bから出力された擬似乱数を受け取ると、ステップSP20において、この擬似乱数をホストCPU5に返信する。   Upon receiving the pseudo random number output from the pseudo random number generator 20b, the instruction processing unit 20a returns this pseudo random number to the host CPU 5 in step SP20.

このように、データ処理回路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-run counter 20c as seed only when generating the first pseudo random number after starting the DSP 20, and when generating the second or subsequent pseudo random number, A pseudo random number is generated by using the previously generated pseudo random number as seed.

(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 DSP 20 in response to a DSP activation instruction from the host CPU 5, and activates the free-run counter 20c by the instruction processing unit 20a of the DSP 20 at this time. To start counting.

その後、データ処理回路11の命令処理部20aは、ホストCPU5から乱数要求命令を受け取ると、これを擬似乱数生成器20bに転送する。擬似乱数生成器20bは、命令処理部20aから乱数要求命令を受け取ると、シリアルバス22を介して不揮発性メモリ21のへの空読みを行い、この空読みが完了した時点で、起動中のフリーランカウンタ20cからカウンタ値を取得する。   Thereafter, upon receiving a random number request command from the host CPU 5, the command processing unit 20a of the data processing circuit 11 transfers the random number request command to the pseudo random number generator 20b. When the pseudo-random number generator 20b receives a random number request command from the command processing unit 20a, the pseudo-random number generator 20b performs idle reading to the nonvolatile memory 21 via the serial bus 22, and when this idle reading is completed, A counter value is acquired from the run counter 20c.

ここで取得するカウンタ値は、空読みした際のシリアルバス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 serial bus 22 at the time of idle reading. In practice, the fluctuation of the processing time of the serial bus 22 is caused by adjustment of communication timing between devices connected to the serial bus 22 (here, the DSP 20 and the nonvolatile memory 21), arbitration for preventing data collision, and clock. This is caused by signal misalignment or the like. The fluctuation is caused by such a factor, and the counter value becomes indefinite due to the fluctuation. To clarify this, here, immediately after the DSP 20 is started, the free-run counter 20c starts counting and continues. An experiment was performed in which a series of processes such as performing a blank reading to the nonvolatile memory 21 once and acquiring a counter value from the free-run counter 20c when the blank reading was completed 10 times.

この実験の結果、図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-run counter 20c becomes indefinite due to fluctuations in the processing time of the serial bus 22.

そして擬似乱数生成器20bは、このように予測が困難で不定なカウンタ値をseedの初期値として、このseedから擬似乱数を生成する。   Then, the pseudo random number generator 20b generates a pseudo random number from the seed using the counter value that is difficult and uncertain as described above as an initial value of the seed.

このように、データ処理回路11では、シリアルバス22の処理時間のゆらぎをカウンタ値に反映させることで、DSP20を起動する度に異なるカウンタ値を得ることができ、この不定なカウンタ値をseedの初期値とすることで、一段と乱数性の高い擬似乱数を生成することができる。   In this way, the data processing circuit 11 can obtain a different counter value every time the DSP 20 is activated by reflecting the fluctuation of the processing time of the serial bus 22 in the counter value. By setting the initial value, it is possible to generate a pseudo-random number with higher randomness.

また、このデータ処理回路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 serial bus 22 provided in the data processing circuit 11. By doing so, for example, in an attempt to illegally use content, the host CPU 5 and the bus 4 are illegally controlled, and the time from the start of step SP1 to the start of step SP4 in the above-described pseudorandom number generation processing procedure is made constant. However, since an indefinite seed can always be obtained reliably, unauthorized use of the content can be prevented more reliably.

さらに、このデータ処理回路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-run counter 20c) that can reflect fluctuations in the counter value only needs to be mounted. A circuit that generates pseudo-random numbers can be realized.

以上の構成によれば、シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得することにより、シリアルバス22の処理時間のゆらぎをこのカウンタ値に反映させて不定なカウンタ値を得ることができ、そしてこの不定なカウンタ値をseedとして、このseedから擬似乱数を生成することにより、一段と乱数性の高い乱数を生成することができ、また多くの一般的なデータ処理回路に実装されるバス(この場合シリアルバス22)と、バスの処理時間のゆらぎよりもカウント周期の短いカウンタとを実装するだけでよいため、別途RTCを実装する場合と比して、構成を簡略化することができ、かくして、簡易な構成でありながら、一段と乱数性の高い乱数を生成することができる。   According to the above configuration, the processing time fluctuation of the serial bus 22 is obtained by obtaining the counter value of the free-run counter 20c after performing idle reading into the nonvolatile memory 21 via the serial bus 22. It is possible to obtain an indefinite counter value by reflecting it in the above, and by generating a pseudo-random number from this seed with this indefinite counter value as a seed, a random number with higher randomness can be generated. In this case, it is only necessary to mount a bus (in this case, the serial bus 22) mounted on the general data processing circuit and a counter whose count cycle is shorter than the fluctuation of the bus processing time. Compared with this, the configuration can be simplified, and thus a random number with higher randomness can be generated while having a simple configuration. It can be.

(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 DSP 20 mounted on the data processing circuit 11 is different, the description of the same parts is omitted.

(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 DSP 20. A hash value generation unit 40 is newly provided between the generator 20b and the free-run counter 20c. The hash value generator 40 applies a hash function (one-way function) to the acquired counter value in order to discretize the counter value acquired by the free-run counter 20c. By doing so, the hash value generation unit 40 generates a hash value that becomes a discretized counter value, and transmits this hash value to the pseudo-random number generator 20b.

そして擬似乱数生成器20bは、ハッシュ値生成部40から得られるハッシュ値をseedの初期値として、このseedから擬似乱数を生成する。   Then, the pseudo random number generator 20b uses the hash value obtained from the hash value generation unit 40 as an initial value of seed, and generates a pseudo random number from the seed.

このようにこの第2の実施の形態では、ハッシュ値生成部40により、カウンタ値を離散化したハッシュ値を生成し、このハッシュ値をseedの初期値とすることで、よりいっそう乱数性の高い擬似乱数を生成することができる。   As described above, in the second embodiment, the hash value generation unit 40 generates a hash value obtained by discretizing the counter value, and uses this hash value as an initial value of seed, thereby further increasing randomness. A pseudo-random number can be generated.

なお、ここでは、カウンタ値を離散化させるために、ハッシュ関数を用いた場合について述べたが、本発明はこれに限らず、例えば、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 DSP 20 and the nonvolatile memory 21 are connected by the serial bus 22 and the processing time fluctuation of the serial bus 22 is used is described. However, the present invention is not limited to this. For example, the DSP 20 and the nonvolatile memory 21 may be connected by a parallel bus, and the processing time fluctuation of the parallel bus may be used. The DSP 20 and the nonvolatile memory 21 may be connected to use the fluctuation in processing time of the bus.

また上述の実施の形態においては、シリアルバス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 nonvolatile memory 21 via the serial bus 22 is described, but the present invention is not limited to this. For example, the counter value may be obtained after performing idle reading a plurality of times, or in addition to empty reading to the nonvolatile memory 21, data is sent to the ROM 6, HDD 7, or hard disk drive 7 via the bus 4. The counter value may be acquired after transmitting / receiving (that is, idle reading). In this way, the randomness of the pseudo random number generated by the pseudo random number generator 20b can be further enhanced.

さらに上述の実施の形態においては、擬似乱数生成処理手順の説明で、データ処理回路の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 DSP 20 of the data processing circuit generates a pseudo random number in response to a random number request command from the host CPU 5 and returns the generated pseudo random number to the host CPU 5. However, the present invention is not limited to this. For example, the host CPU 5 transmits an execution instruction for a specific process using a pseudo-random number to the DSP 20, and the DSP 20 receives the execution instruction. In response, a pseudo random number may be generated, a specific process using the pseudo random number may be executed, and a process result or a process completion notification may be returned to the host CPU 5.

さらに上述の実施の形態においては、データ処理回路11のDSP20内にソフトウェア的な機能として、命令処理部20a、擬似乱数生成器20b、及びフリーランカウンタ20cを設けるようにした場合について述べたが、本発明はこれに限らず、これら命令処理部20a、擬似乱数生成器20b、及びフリーランカウンタ20cの一部または全部を、データ処理回路11にハードウェアとして実装するようにしてもよい。   Furthermore, in the above-described embodiment, the case where the instruction processing unit 20a, the pseudo random number generator 20b, and the free-run counter 20c are provided as software functions in the DSP 20 of the data processing circuit 11 has been described. The present invention is not limited to this, and a part or all of the instruction processing unit 20a, the pseudo random number generator 20b, and the free-run counter 20c may be mounted on the data processing circuit 11 as hardware.

さらに上述の実施の形態においては、命令処理部20aがホストCPU5から乱数要求命令を受け取ると、これを擬似乱数生成器20bに転送し、擬似乱数生成器20bがこの乱数要求命令に応じて、不揮発性メモリ21への空読みを行い、この空読み完了後、フリーランカウンタ20cからカウンタ値を取得して擬似乱数を生成するようにした場合について述べたが、本発明はこれに限らず、命令処理部20aがホストCPU5から乱数要求命令を受け取ると、この命令処理部20aが不揮発性メモリ21への空読みを行い、この空読み完了後、乱数要求命令を擬似乱数生成器20bに転送し、擬似乱数生成器20bがこの乱数要求命令に応じて、フリーランカウンタ20cからカウンタ値を取得して擬似乱数を生成するようにしてもよい。   Furthermore, in the above-described embodiment, when the instruction processing unit 20a receives a random number request command from the host CPU 5, it transfers this to the pseudo random number generator 20b, and the pseudo random number generator 20b responds to the random number request command with a non-volatile function. In the above description, a case has been described where idle reading is performed to the volatile memory 21, and after completion of the idle reading, the counter value is acquired from the free-run counter 20c to generate a pseudo-random number. When the processing unit 20a receives a random number request command from the host CPU 5, the command processing unit 20a performs idle reading to the nonvolatile memory 21, and after the idle reading is completed, the random number request command is transferred to the pseudo random number generator 20b. The pseudo random number generator 20b may acquire a counter value from the free-run counter 20c and generate a pseudo random number in response to the random number request command.

さらに上述の実施の形態においては、信号処理部としてのDSP20と、バスとしてのシリアルバス22と、メモリとしての不揮発性メモリ21とによって、信号処理装置としてのデータ処理回路及びコンテンツ再生装置1を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。   Furthermore, in the above-described embodiment, the DSP 20 as the signal processing unit, the serial bus 22 as the bus, and the nonvolatile memory 21 as the memory constitute the data processing circuit and the content reproduction device 1 as the signal processing device. Although the case of doing so has been described, the present invention is not limited to this, and various other configurations may be used.

さらに上述の実施の形態においては、制御部としての命令処理部20aと、フリーランカウンタ20cと、ホストCPU5から命令処理部20aを介して転送される乱数要求情報としての乱数要求命令に応じて、シリアルバス22を介して不揮発性メモリ21への空読みを行ってからフリーランカウンタ20cのカウンタ値を取得し、取得したカウンタ値をseedとして乱数を生成する乱数生成部としての擬似乱数生成器20bとによって、DSP20を構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を用いるようにしてもよい。   Furthermore, in the above-described embodiment, in response to the command processing unit 20a as the control unit, the free-run counter 20c, and the random number request command as the random number request information transferred from the host CPU 5 via the command processing unit 20a, A pseudo random number generator 20b serving as a random number generation unit that obtains a counter value of the free-run counter 20c after performing idle reading to the nonvolatile memory 21 via the serial bus 22 and generates a random number using the acquired counter value as seed. However, the present invention is not limited to this, and various other configurations may be used.

本発明は、擬似乱数を生成する様々な回路及び装置で広く利用できる。   The present invention can be widely used in various circuits and devices for generating pseudo-random numbers.

コンテンツ再生装置の全体構成を示す略線図である。It is a basic diagram which shows the whole structure of a content reproduction apparatus. 第1の実施の形態によるデータ処理回路の内部構成を示す略線図である。It is a basic diagram which shows the internal structure of the data processing circuit by 1st Embodiment. 擬似乱数生成処理手順を示すシーケンスチャートである。It is a sequence chart which shows a pseudorandom number generation processing procedure. 図3につづく擬似乱数生成処理手順を示すシーケンスチャートである。FIG. 4 is a sequence chart showing a pseudo-random number generation processing procedure continued from FIG. 3. 図4につづく擬似乱数生成処理手順を示すシーケンスチャートである。5 is a sequence chart showing a pseudo-random number generation processing procedure continued from FIG. 4. 実験結果を示す表である。It is a table | surface which shows an experimental result. 第2の実施の形態によるデータ処理回路の内部構成を示す略線図である。It is a basic diagram which shows the internal structure of the data processing circuit by 2nd Embodiment.

符号の説明Explanation of symbols

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 SYMBOLS 1 ... Content reproduction apparatus, 2 ... Operation input part, 3 ... Input processing part, 4 ... Bus, 5 ... Host CPU, 6 ... ROM, 7 ... Hard disk drive, 8 ... RAM, 9 ... ... Communication processing unit, 10 ... Network interface, 11 ... Data processing circuit, 12 ... Audio processing unit, 20 ... DSP, 20a ... Command processing unit, 20b ... Pseudo-random number generator, 20c ... Free-run counter , 30 ... seed holding area, 40 ... hash value generator, NT ... network, SP ... speaker.

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.
JP2005049561A 2005-02-24 2005-02-24 Signal processing device Active JP4465610B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (8)

* Cited by examiner, † Cited by third party
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