JP2009199114A - Information processor and design device - Google Patents

Information processor and design device

Info

Publication number
JP2009199114A
JP2009199114A JP2008036978A JP2008036978A JP2009199114A JP 2009199114 A JP2009199114 A JP 2009199114A JP 2008036978 A JP2008036978 A JP 2008036978A JP 2008036978 A JP2008036978 A JP 2008036978A JP 2009199114 A JP2009199114 A JP 2009199114A
Authority
JP
Japan
Prior art keywords
instruction
circuit
information
watermark information
bit
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.)
Withdrawn
Application number
JP2008036978A
Other languages
Japanese (ja)
Inventor
Masakazu Shirai
正和 白井
Fumio Sako
文雄 左光
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2008036978A priority Critical patent/JP2009199114A/en
Publication of JP2009199114A publication Critical patent/JP2009199114A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an information processor for making it difficult to analyze the buried place of electronic watermark information, and for making it difficult to alter the watermark information. <P>SOLUTION: This information processor 10 is provided with a storage circuit (random gate circuit 12) for storing a program and an arithmetic circuit (CPU 11) for executing the program. The arithmetic circuit accepts the input of read information for reading the watermark information, and the storage circuit is configured as a random gate circuit as the combination circuit of logic elements, and when readout information is inputted through the arithmetic circuit, information having the watermark information is outputted. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

情報処理装置および設計装置に係り、特に電子機器の出所などを特定するための透かし
情報を埋め込むための技術に関する。
The present invention relates to an information processing apparatus and a design apparatus, and more particularly to a technique for embedding watermark information for specifying the origin of an electronic device.

従来、プログラム制作者とは別個のプログラム販売者が、販売対象のプログラムに自己
の電子署名を自由に追加して、当該販売対象のプログラムの出所を明らかにするに際し、
動作に影響を与えないダミーモジュールをプログラムに追加し、当該ダミーモジュール内
に電子署名を電子透かしとして埋め込むものが提案されている(例えば、特許文献1参照
)。
特開2005−100347号公報
Traditionally, when a program seller, separate from the program creator, freely adds his / her digital signature to the program to be sold to clarify the source of the program being sold,
It has been proposed to add a dummy module that does not affect the operation to a program and embed an electronic signature as an electronic watermark in the dummy module (see, for example, Patent Document 1).
Japanese Patent Laid-Open No. 2005-100347

上記従来の手法によれば、プログラムに追加されたダミーモジュール内に電子署名を埋
め込む構成を採っているため、プログラムコードを解析して、実際の動作に影響を与えな
い領域を特定することにより、電子署名の埋め込まれている領域を容易に特定される可能
性があり、電子署名を容易に改竄されるおそれがあった。
そこで、本発明の目的は、電子的な透かし情報の埋込場所の解析が困難であり、ひいて
は、透かし情報の改竄が困難となるプログラムを有する情報処理装置および設計装置を提
供することにある。
According to the above-described conventional method, since the digital signature is embedded in the dummy module added to the program, by analyzing the program code and identifying the area that does not affect the actual operation, There is a possibility that the area where the electronic signature is embedded may be easily specified, and the electronic signature may be easily tampered.
SUMMARY OF THE INVENTION An object of the present invention is to provide an information processing apparatus and a design apparatus having a program that makes it difficult to analyze the place where electronic watermark information is embedded, and thus makes it difficult to alter the watermark information.

上記課題を解決するため、本発明の第1態様は、プログラムを格納するための記憶回路
と、前記プログラムを実行する演算回路とを有する情報処理装置において、前記演算回路
は、透かし情報を読み出すための読出情報の入力を受け、前記記憶回路は、論理素子の組
み合わせ回路としてのランダムゲート回路として構成されるとともに、前記演算回路を介
して前記読出情報が入力された場合には、前記透かし情報を有する情報を出力する、こと
を特徴としている。
上記構成によれば、透かし情報は、論理素子の組み合わせ回路としてのランダムゲート
回路に保持される。このため、通常のROMに透かし情報を保持させた場合に比較して、
回路パターン上における透かし情報の位置を特定されることを防止できる。この結果、透
かし情報の解析が困難となり、透かし情報の改竄、除去などを抑制することができる。
In order to solve the above problem, according to a first aspect of the present invention, there is provided an information processing apparatus having a storage circuit for storing a program and an arithmetic circuit for executing the program, wherein the arithmetic circuit reads watermark information. When the read information is input via the arithmetic circuit, the memory circuit is configured as a random gate circuit as a combination circuit of logic elements. It is characterized by outputting the information it has.
According to the above configuration, the watermark information is held in the random gate circuit as a combinational circuit of logic elements. For this reason, compared with the case where watermark information is held in a normal ROM,
It is possible to prevent the position of the watermark information on the circuit pattern from being specified. As a result, it becomes difficult to analyze the watermark information, and tampering and removal of the watermark information can be suppressed.

また、本発明の第2の態様は、第1の態様において、前記記憶回路に格納されているプ
ログラムを構成する命令は、不使用ビットに透かし情報を有しており、前記演算回路は、
前記命令のうち、前記透かし情報を除く情報に基づいて演算処理を実行する、ことを特徴
としている。
上記構成によれば、透かし情報は、プログラムを構成する命令の不使用ビットに格納さ
れている。このため、回路規模を拡大することなく、透かし情報を格納することができる
According to a second aspect of the present invention, in the first aspect, the instructions constituting the program stored in the storage circuit have watermark information in unused bits, and the arithmetic circuit is
An arithmetic process is executed based on information excluding the watermark information among the instructions.
According to the above configuration, the watermark information is stored in the unused bits of the instructions constituting the program. For this reason, watermark information can be stored without increasing the circuit scale.

また、本発明の第3の態様は、第1の態様において、前記命令は、条件分岐命令を含み
、前記透かし情報は、前記条件分岐命令の分岐に影響を与える所定の条件の下において、
前記演算回路によって実行される前記命令の順番に応じて格納されている、ことを特徴と
している。
上記構成によれば、透かし情報は、条件分岐命令に影響を与える所定の条件の下におい
て、演算回路によって読み出される命令の順番に応じて格納されている。このため、所定
の条件が分からなければ、透かし情報を取り出すことができないため、透かし情報の解析
が更に困難となり、透かし情報の改竄、除去を抑制することができる。
According to a third aspect of the present invention, in the first aspect, the instruction includes a conditional branch instruction, and the watermark information is under a predetermined condition that affects a branch of the conditional branch instruction.
It is stored according to the order of the instructions executed by the arithmetic circuit.
According to the above configuration, the watermark information is stored in accordance with the order of instructions read by the arithmetic circuit under a predetermined condition that affects the conditional branch instruction. For this reason, since the watermark information cannot be extracted unless the predetermined condition is known, the analysis of the watermark information becomes more difficult, and the falsification and removal of the watermark information can be suppressed.

また、本発明の第4の態様は、第3の態様において、前記所定の条件は、前記条件分岐
命令の分岐に影響を与える所定の入力が前記演算回路に与えられていることであることを
特徴としている。
上記構成によれば、所定の条件は、条件分岐命令の分岐に影響を与える所定の入力とさ
れる。このため、演算回路に与える入力を、例えば、複数の入力の組み合わせとして設定
することにより、透かし情報の解析が更に困難となり、透かし情報の改竄、除去を抑制す
ることができる。
According to a fourth aspect of the present invention, in the third aspect, the predetermined condition is that a predetermined input that affects a branch of the conditional branch instruction is given to the arithmetic circuit. It is a feature.
According to the above configuration, the predetermined condition is a predetermined input that affects the branch of the conditional branch instruction. For this reason, by setting the input given to the arithmetic circuit as, for example, a combination of a plurality of inputs, it becomes more difficult to analyze the watermark information, and tampering and removal of the watermark information can be suppressed.

また、本発明の第5の態様は、第2乃至4の態様において、前記命令を構成する命令コ
ードは、前記プログラム中における当該命令の出現頻度が高いほど、短いコード長を有す
るように設定されていることを特徴としている。
上記構成によれば、命令を構成する命令コードは、プログラム中への出現頻度が高いほ
ど、短いコード長を有するように設定される。このため、ランダムゲート回路が保持する
命令の平均のコード長が短くなるため、情報処理装置の回路規模を縮小することができる
According to a fifth aspect of the present invention, in the second to fourth aspects, the instruction code constituting the instruction is set to have a shorter code length as the frequency of occurrence of the instruction in the program increases. It is characterized by having.
According to the above configuration, the instruction code constituting the instruction is set to have a shorter code length as the appearance frequency in the program increases. For this reason, since the average code length of the instructions held by the random gate circuit is shortened, the circuit scale of the information processing apparatus can be reduced.

また、本発明の第6の態様は、第1乃至4の態様において、前記記憶回路は、格納して
いるビット情報に基づく論理圧縮が施されていることを特徴としている。
上記構成によれば、ランダムゲート回路には論理圧縮が施される。この構成によれば、
ランダムゲート回路の回路規模を縮小することができる。
According to a sixth aspect of the present invention, in the first to fourth aspects, the storage circuit is subjected to logical compression based on stored bit information.
According to the above configuration, logic compression is performed on the random gate circuit. According to this configuration,
The circuit scale of the random gate circuit can be reduced.

また、本発明の第7の態様は、プログラムを格納するための記憶回路と、前記プログラ
ムを実行する演算回路とを有する情報処理装置を設計する設計装置において、透かし情報
の入力を受ける入力手段と、前記入力手段を介して入力された透かし情報を格納した前記
記憶回路を、論理素子の組み合わせ回路としてのランダムゲート回路として構成し、当該
ランダムゲート回路の設計情報を生成する生成手段と、を有することを特徴としている。
上記構成によれば、透かし情報の入力を入力手段が受け、生成手段が透かし情報を格納
した記憶回路を、論理素子の組み合わせ回路としてのランダムゲート回路として構成し、
当該ランダムゲート回路の設計情報を生成する。
このため、通常のROMに透かし情報を保持させた場合に比較して、回路パターン上に
おける透かし情報の位置を特定されることを防止できる回路情報を生成できる。この結果
、透かし情報の解析が困難となり、透かし情報の改竄、除去などを抑制することができる
According to a seventh aspect of the present invention, there is provided a design apparatus for designing an information processing apparatus having a storage circuit for storing a program and an arithmetic circuit for executing the program; The storage circuit storing the watermark information input via the input means is configured as a random gate circuit as a combinational circuit of logic elements, and generating means for generating design information of the random gate circuit It is characterized by that.
According to the above configuration, the input means receives the input of watermark information, and the generation means stores the memory circuit storing the watermark information as a random gate circuit as a combination circuit of logic elements,
Design information of the random gate circuit is generated.
Therefore, it is possible to generate circuit information that can prevent the position of the watermark information on the circuit pattern from being specified as compared with the case where the watermark information is held in a normal ROM. As a result, it becomes difficult to analyze the watermark information, and tampering and removal of the watermark information can be suppressed.

次に図面を参照して本発明の好適な実施の形態について説明する。
図1は、実施形態の情報処理装置の概要構成ブロック図である。
情報処理装置10は、例えば、ワンチップのマイクロコンピュータとして構成され、図
1に示すように、CPU(Central Processing Unit)11(請求項中「演算回路」に対
応)、ランダムゲート回路12(請求項中「ランダムゲート回路」に対応)、レジスタ群
13、周辺回路14、および、I/O(Input Output)回路15を有している。ここで、
CPU11は、ランダムゲート回路12に格納されているプログラムおよびデータに基づ
いて、各種情報処理を実行するとともに、装置の各部を制御する。ランダムゲート回路1
2は、論理素子の組み合わせによって構成され、入力の値によって、その時点における出
力が定まる論理回路をいう。すなわち、ランダムゲート回路12は、通常のROM(Read
Only Memory)のように、内部状態を記憶する機能を有し、入力と内部状態の双方により
、その出力が定まる順序回路ではなく、ある入力が与えられたときに、当該入力のみに依
存して定まる出力が与えられる回路である。したがって、ランダムゲート回路12は、通
常のROMのように、マトリクス状に配置された記憶素子としてのセルを有しておらず、
論理素子の組み合わせによって構成される。
Next, preferred embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a schematic configuration block diagram of an information processing apparatus according to an embodiment.
The information processing apparatus 10 is configured, for example, as a one-chip microcomputer, and as shown in FIG. 1, a CPU (Central Processing Unit) 11 (corresponding to “arithmetic circuit” in the claims), a random gate circuit 12 (claims) A register group 13, a peripheral circuit 14, and an I / O (Input Output) circuit 15. here,
The CPU 11 executes various types of information processing based on programs and data stored in the random gate circuit 12 and controls each unit of the apparatus. Random gate circuit 1
Reference numeral 2 denotes a logic circuit that is configured by a combination of logic elements, and an output at that time is determined by an input value. That is, the random gate circuit 12 is connected to a normal ROM (Read
It has a function to memorize the internal state like (Only Memory), and it depends on only the input when a certain input is given, not a sequential circuit where the output is determined by both the input and the internal state. It is a circuit that gives a fixed output. Therefore, the random gate circuit 12 does not have cells as memory elements arranged in a matrix like a normal ROM,
It is composed of a combination of logic elements.

レジスタ群13は、複数のレジスタによって構成され、CPU11によって実行される
プログラムおよびデータを一時的に格納するメモリとして機能する。周辺回路14は、割
り込み回路、タイマ回路、DMA(Direct Memory Access)回路を有している。割り込み
回路は、例えば、タイマ回路、DMA回路、または、I/O回路15を介して接続された
外部機器に起因する割り込みを発生し、CPU11に通知する。タイマ回路は、例えば、
日時情報を生成してCPU11に供給する。DMA回路は、CPU11を介さずに、レジ
スタ群13のレジスタ間で情報を転送したり、I/O回路15に接続された外部機器とレ
ジスタ群13との間で情報を転送したりする回路である。I/O回路15は、図示せぬ外
部機器との間で情報を授受する際の制御を行う回路である。なお、周辺回路14として、
これ以外の回路(例えば、コプロセッサ(Co-Processor))を有していてもよい。あるい
は、周辺回路14自体を有しない構成としてもよい。すなわち、周辺回路14は必須の構
成要素ではない。
The register group 13 includes a plurality of registers, and functions as a memory that temporarily stores programs and data executed by the CPU 11. The peripheral circuit 14 includes an interrupt circuit, a timer circuit, and a DMA (Direct Memory Access) circuit. The interrupt circuit generates an interrupt caused by an external device connected via, for example, a timer circuit, a DMA circuit, or an I / O circuit 15 and notifies the CPU 11 of the interrupt. The timer circuit is, for example,
Date and time information is generated and supplied to the CPU 11. The DMA circuit is a circuit that transfers information between registers of the register group 13 without passing through the CPU 11, and transfers information between the external device connected to the I / O circuit 15 and the register group 13. is there. The I / O circuit 15 is a circuit that performs control when exchanging information with an external device (not shown). As the peripheral circuit 14,
Other circuits (for example, a co-processor) may be included. Or it is good also as a structure which does not have the peripheral circuit 14 itself. That is, the peripheral circuit 14 is not an essential component.

ここで、具体的な説明に先立ち、本発明の原理について説明する。
通常、CPU11等のプロセッサにおいては、処理の簡略化のため、固定ビット長で命
令(=命令コード+オペランド)を定義している。このため命令の種類によっては、当該
命令の動作に影響を与えない、すなわち、機能、役割を与えられていないビットが命令の
命令コード中に含まれる。これらのビットは、各命令の実行において用いられることはな
いため、以下においては、不使用ビットという。不使用ビットのビット数は、命令により
異なり、1ビット〜複数ビットがある。
Here, prior to specific description, the principle of the present invention will be described.
In general, in a processor such as the CPU 11, an instruction (= instruction code + operand) is defined with a fixed bit length in order to simplify processing. For this reason, depending on the type of instruction, bits that do not affect the operation of the instruction, that is, are not given a function or role, are included in the instruction code of the instruction. Since these bits are not used in the execution of each instruction, they will be referred to as unused bits in the following. The number of unused bits varies depending on the instruction and ranges from 1 to multiple bits.

図2は、16ビット長の命令を有するプロセッサの命令セットの例を説明する図である

上述したように、各命令は、命令コードを含んでおり、さらに必要に応じて、オペラン
ドを含んでいる。例えば、and命令は、16ビット中、第6ビット〜第15ビット(M
SB)が命令コードであり、第0ビット〜第5ビットは、オペランドである。また、jm
p命令は、16ビット中、第10ビット〜第15ビット(MSB)が命令コードであり、
第0ビット〜第9ビットは、オペランドである。また、nop命令は、オペランドが存在
せず、16ビット全部が命令コードである。
図2に示すように、命令のうち、li命令(即値ロード命令)、ld命令(データロー
ド命令)、st命令(データストア命令)については、不使用ビットが存在していない。
これに対し、add命令(加算命令)、sub命令(減算命令)、and命令(論理積
命令)、or命令(論理和命令)およびxor命令(排他的論理和命令)については、図
2に斜線部分で示すように、第6ビットから第10ビットの5ビットの不使用ビットが存
在している。
FIG. 2 is a diagram illustrating an example of an instruction set of a processor having an instruction having a 16-bit length.
As described above, each instruction includes an instruction code, and further includes an operand as necessary. For example, the and instruction includes 6th to 15th bits (M
SB) is an instruction code, and the 0th to 5th bits are operands. Jm
In the p instruction, the 10th to 15th bits (MSB) of 16 bits are instruction codes.
The 0th to 9th bits are operands. The nop instruction has no operand and all 16 bits are an instruction code.
As shown in FIG. 2, there are no unused bits for the li instruction (immediate load instruction), the ld instruction (data load instruction), and the st instruction (data store instruction).
On the other hand, the add instruction (add instruction), sub instruction (subtract instruction), and instruction (logical product instruction), or instruction (logical sum instruction) and xor instruction (exclusive logical sum instruction) are hatched in FIG. As shown in the portion, there are 5 unused bits from the 6th bit to the 10th bit.

また、jmp命令(ジャンプ命令)及びjz命令(零時ジャンプ命令(請求項中「条件
分岐命令」に対応))については、図2に斜線部分で示すように、第10ビットの1ビッ
トの不使用ビットが存在している。
また、nop命令(ノーオペレーション命令)については、図2に斜線部分で示すよう
に、第0ビットから第10ビットの11ビットの不使用ビットが存在している。
これらの不使用ビットは、その値を書き換えたとしても命令の実行に何ら影響を与えな
い。
そこで、本実施形態においては、これらの不使用ビットの少なくとも一部に透かし情報
データを構成するビットを書き込むことにより、元のプログラムのサイズ、動作に影響を
与えることなく、透かし情報を埋め込む。そして、透かし情報が埋め込まれたプログラム
を構成する命令コードに基づいて、ランダムゲート回路12を構成する回路情報を生成し
、この回路情報に基づいて情報処理装置10を製造する。このようにして製造された情報
処理装置10のランダムゲート回路12に格納されているプログラムには、透かし情報が
含まれているので、当該透かし情報を読み出すことにより、情報処理装置10が複製によ
り製造されたものであるか否かを判定することができる。また、透かし情報は、プログラ
ムの不使用ビットに埋め込まれているので、プログラムのデータ量を増加させることがな
い。また、透かし情報は、不使用ビットに拡散されて埋め込まれていることから、透かし
情報の存在を第三者に気付かれ、当該透かし情報が削除または改竄されることを防止でき
る。また、メモリアレイを有しないランダムゲート回路12に透かし情報を格納すること
により、回路パターンを解析された場合であっても、透かし情報の存在に気付かれたり、
あるいは、透かし情報を削除または改竄されたりすることを防止できる。
As for the jmp instruction (jump instruction) and the jz instruction (zero jump instruction (corresponding to “conditional branch instruction” in the claims)), as shown by the hatched portion in FIG. A used bit exists.
As for the nop instruction (no operation instruction), there are 11 unused bits from the 0th bit to the 10th bit as shown by the hatched portion in FIG.
These unused bits have no effect on instruction execution even if the value is rewritten.
Therefore, in the present embodiment, the watermark information is embedded without affecting the size and operation of the original program by writing the bits constituting the watermark information data in at least some of these unused bits. Then, circuit information constituting the random gate circuit 12 is generated based on the instruction code constituting the program in which the watermark information is embedded, and the information processing apparatus 10 is manufactured based on the circuit information. Since the program stored in the random gate circuit 12 of the information processing apparatus 10 manufactured in this way includes watermark information, the information processing apparatus 10 is manufactured by copying by reading the watermark information. It can be determined whether or not it has been done. Further, since the watermark information is embedded in the unused bits of the program, the data amount of the program is not increased. Further, since the watermark information is diffused and embedded in the unused bits, the presence of the watermark information can be noticed by a third party, and the watermark information can be prevented from being deleted or tampered. Further, by storing the watermark information in the random gate circuit 12 having no memory array, even when the circuit pattern is analyzed, the presence of the watermark information is noticed,
Alternatively, it is possible to prevent the watermark information from being deleted or altered.

図3は、透かし情報埋込処理の機能説明図である。
また、図4は透かし情報埋込処理の処理フローチャートである。なお、図4に示す処理
は、情報処理装置10の回路情報を生成する図示せぬ設計装置20において実行される処
理である。なお、設計装置20は、CPU(請求項中「生成手段」に対応)、ROM、R
AM(Random Access Memory)、HDD(Hard Disk Drive)、入力デバイスとしてのキ
ーボード(請求項中「入力手段」に対応)等を有する一般的なパーソナルコンピュータに
よって構成されている。
まず、プログラムのソースを読み込み(ステップS1)、コンパイルしてバイナリコー
ドとする(ステップS2)。
一方、透かし情報としての認証情報を読み込み(ステップS3)、透かし情報データに
変換する(ステップS4)。なお、透かし情報としては、認証情報に限らず、所望の情報
をデータ化したものであればよい。
つづいて、プログラムのバイナリコードに含まれる命令コードおよび対応する不使用ビ
ットの位置を検索する(ステップS5)。
この場合において、命令コード及び不使用ビットの位置の検索の手順としては、以下の
(A1)〜(A3)のようなものが考えられる。
FIG. 3 is a functional explanatory diagram of the watermark information embedding process.
FIG. 4 is a process flowchart of the watermark information embedding process. Note that the process shown in FIG. 4 is a process executed in the design apparatus 20 (not shown) that generates circuit information of the information processing apparatus 10. The design device 20 includes a CPU (corresponding to “generating means” in the claims), ROM, R
It is constituted by a general personal computer having an AM (Random Access Memory), an HDD (Hard Disk Drive), a keyboard as an input device (corresponding to “input means” in the claims), and the like.
First, the program source is read (step S1) and compiled into a binary code (step S2).
On the other hand, authentication information as watermark information is read (step S3) and converted into watermark information data (step S4). Note that the watermark information is not limited to authentication information, but may be any information obtained by converting desired information into data.
Subsequently, the position of the instruction code included in the binary code of the program and the corresponding unused bit is searched (step S5).
In this case, the following procedures (A1) to (A3) are conceivable as procedures for searching the position of the instruction code and the unused bit.

(A1) プログラムの格納アドレスにしたがって、命令コード及び当該命令コードに
おける不使用ビット位置を検索する。
例えば、アドレスの先頭から最後尾に向かって順に命令コードを検索し、各命令コード
を構成する不使用ビットもアドレスの先頭から最後尾に向かって順に検索する。
(A1) The instruction code and the unused bit position in the instruction code are searched according to the storage address of the program.
For example, the instruction code is searched in order from the head of the address to the tail, and the unused bits constituting each instruction code are also searched in order from the head of the address to the tail.

(A2) プログラムの格納アドレスにしたがって、所定の種類の命令コード及び当該
命令コードにおける不使用ビット位置を検索する。
例えば、所定の種類の命令コードとして、add命令及びsub命令を検索対象とする
場合、アドレスの先頭から最後尾に向かって順にadd命令及びsub命令の命令コード
を検索し、各命令コードを構成する不使用ビットもアドレスの先頭から最後尾に向かって
順に検索する。
(A2) A predetermined type of instruction code and an unused bit position in the instruction code are searched according to the storage address of the program.
For example, when an add instruction and a sub instruction are searched for as a predetermined type of instruction code, the instruction code of the add instruction and the sub instruction is searched in order from the head to the tail of the address, and each instruction code is configured. Unused bits are also searched in order from the beginning to the end of the address.

(A3) プログラムに予め定めた特定のデータを予め定めた特定の順番で入力して処
理を行わせたと仮定した場合の処理実行順に命令コード及び当該命令コードにおける不使
用ビット位置を検索する。
例えば、入力データとして“0”を入力し続けた場合にプログラムが実行される順番で
命令コードを検索し、各命令コードを構成する不使用ビットについてはアドレスの先頭か
ら最後尾に向かって順に検索する。
(A3) The instruction code and the unused bit position in the instruction code are searched in the processing execution order when it is assumed that processing is performed by inputting predetermined specific data to the program in a predetermined specific order.
For example, when "0" is continuously input as input data, the instruction codes are searched in the order in which the program is executed, and the unused bits that make up each instruction code are searched in order from the beginning to the end of the address. To do.

つづいて設計装置20は、検索された不使用ビットに透かし情報データを構成するビッ
ト列を順に埋め込む(ステップS6)。
この場合において、透かし情報データを構成するビット列を埋め込む手順としては、以
下の(B1)〜(B3)のようなものが考えられる。
Subsequently, the design device 20 sequentially embeds a bit string constituting the watermark information data in the searched unused bits (step S6).
In this case, the following (B1) to (B3) can be considered as a procedure for embedding the bit string constituting the watermark information data.

(B1) 検索された各命令コードを構成する不使用ビットのうち、LSB側(第0ビ
ット側)からMSB側に向かって、あるいは、MSB側からLSB側に向かって順に透か
し情報データを構成するビット列を埋め込む。
例えば、各命令が16ビット長の固定ビット長で形成されている場合に、第6ビットか
ら第10ビットが不使用ビットである場合に、LSB側から埋め込む場合、第6ビットか
ら第10ビットに向かってビット列を順に埋め込むこととなる。
(B1) Among the unused bits constituting each searched instruction code, the watermark information data is constructed in order from the LSB side (0th bit side) to the MSB side or from the MSB side to the LSB side. Embed a bit string.
For example, when each instruction is formed with a fixed bit length of 16 bits, when the 6th to 10th bits are unused bits, and embedded from the LSB side, the 6th bit to the 10th bit The bit strings are embedded sequentially.

(B2) 少なくとも透かし情報データを構成するビット列を埋め込むのに十分な数の
不使用ビットが検索された時点で、検索された不使用ビットを含む命令コードについて、
命令コードが検索された順番で下位ビット側あるいは上位ビット側から順番に透かし情報
データを構成するビット列を埋め込む。
例えば、add命令→sub命令→nop命令が順番に検索された場合、上述の例の場
合、add命令及びsub命令については、第6ビットから第10ビットの5ビットの不
使用ビットが存在し、nop命令については、第0ビットから第10ビットの11ビット
の不使用ビットが存在しているので、下位ビット側から順番に透かし情報データを構成す
るビット列を埋め込む場合には、nop命令の第0ビット→nop命令の第1ビット→…
→nop命令の第4ビット→nop命令の第5ビット→add命令の第6ビット→sub
命令の第6ビット→nop命令の第6ビット→add命令の第7ビット→sub命令の第
7ビット→nop命令の第7ビット→…→add命令の第10ビット→sub命令の第1
0ビット→nop命令の第10ビットの順番でビット列を順に埋め込むこととなる。
(B2) At least when a sufficient number of unused bits are embedded to embed a bit string constituting the watermark information data, the instruction code including the searched unused bits is
A bit string constituting the watermark information data is embedded in order from the lower bit side or the upper bit side in the order in which the instruction codes are searched.
For example, when an add instruction → sub instruction → nop instruction is searched in order, in the case of the above example, there are 5 unused bits from the 6th bit to the 10th bit for the add instruction and the sub instruction, For the nop instruction, there are 11 unused bits from the 0th bit to the 10th bit. Therefore, when the bit string constituting the watermark information data is embedded in order from the lower bit side, the 0th bit of the nop instruction is used. Bit → First bit of nop instruction →
→ 4th bit of nop instruction → 5th bit of nop instruction → 6th bit of add instruction → sub
6th bit of instruction → 6th bit of nop instruction → 7th bit of add instruction → 7th bit of sub instruction → 7th bit of nop instruction → ... → 10th bit of add instruction → 1st bit of sub instruction
The bit string is sequentially embedded in the order of 0 bit to 10th bit of the nop instruction.

(B3) 検索された各命令コードを構成する不使用ビットのうち、所定の位置の所定
数のビットに順に透かし情報データを構成するビット列を埋め込む。
例えば、検索された各命令コードの不使用ビットのうち、それぞれ最上位ビット(上述
のadd命令の場合、第10ビット)に1ビットの透かし情報データを構成するビットを
埋め込む。
(B4) 上記(B1)〜(B3)の手順において、残りの不使用ビットには、透かし
情報データを構成するビット列を繰り返し埋め込んだり、任意のデータをランダムに書き
込んだりするように構成してもよい。
(B3) Among the unused bits constituting each searched instruction code, the bit string constituting the watermark information data is embedded in the predetermined number of bits at the predetermined positions in order.
For example, among the unused bits of the retrieved instruction codes, the bits constituting the 1-bit watermark information data are embedded in the most significant bits (the 10th bit in the case of the add instruction described above).
(B4) In the above procedures (B1) to (B3), the remaining unused bits may be configured such that a bit string constituting the watermark information data is repeatedly embedded or arbitrary data is randomly written. Good.

これらの結果、透かし情報を埋め込んだバイナリコードのプログラムが生成される。こ
のようにして生成された透かし入りバイナリコードは、RTL(Register Transfer Leve
l)情報に変換される(ステップS7)。なお、RTLとは、集積回路設計において同期
デジタル回路を記述する手法の一種である。このようなRTLを用いた設計では、回路の
動作をハードウェアレジスタ(フリップフロップ等)と、組み合わせ回路であるブール論
理回路との間の信号の流れ(データ転送)として定義する。ステップS7の処理では、R
TL情報は、図9を参照して後述するように、ランダムゲート回路12に関する情報とし
て生成される。
As a result, a binary code program in which watermark information is embedded is generated. The watermarked binary code generated in this way is RTL (Register Transfer Leve).
l) Conversion into information (step S7). Note that RTL is a type of technique for describing a synchronous digital circuit in integrated circuit design. In such a design using RTL, the operation of a circuit is defined as a signal flow (data transfer) between a hardware register (such as a flip-flop) and a Boolean logic circuit that is a combinational circuit. In the process of step S7, R
The TL information is generated as information regarding the random gate circuit 12, as will be described later with reference to FIG.

つづいて、設計装置20は、CPU11およびその他の部分に対応するRTL情報と、
ステップS7において生成されたRTL情報とを合成する(ステップS8)。このように
して合成されたRTL情報は、図示せぬ論理合成ソフトウェアツールにより論理ゲートを
組み合わせた回路としてのランダムゲートに変換される(ステップS9)。合成結果は、
図示せぬ物理レイアウトを行うツールに渡され、集積回路のパターンが作成される。この
ようにして作成された集積回路のパターンに基づいて製造された集積回路は、電子機器に
組み込まれることとなる(ステップS10)。そして、図3に示すように、その後、複製
されたことが疑われる複製機器が見いだされた場合には、書き込んだ場合と同様の手順で
、ランダムゲート回路12から透かし情報を抽出して読み出し(ステップS21)、書き
込んだ透かし情報と照合し(ステップS22)、書き込んだ透かし情報と同一の透かし情
報あるいは同一の透かし情報と特定可能な程度の透かし情報の一部が読み出された場合に
は複製がなされたと容易に判別することが可能となる。
この結果、不法な複製がなされることを抑止できると共に、不法な複製がなされた場合
に対処することが可能となる。
Subsequently, the design apparatus 20 includes RTL information corresponding to the CPU 11 and other parts,
The RTL information generated in step S7 is synthesized (step S8). The RTL information synthesized in this way is converted into a random gate as a circuit combining logic gates by a logic synthesis software tool (not shown) (step S9). The synthesis result is
An integrated circuit pattern is created by passing to a tool for performing physical layout (not shown). The integrated circuit manufactured based on the pattern of the integrated circuit created in this way is incorporated into an electronic device (step S10). Then, as shown in FIG. 3, when a duplicating device suspected of having been duplicated is found, watermark information is extracted from the random gate circuit 12 and read out in the same procedure as in the case of writing ( In step S21), the written watermark information is compared (step S22). If the same watermark information as the written watermark information or a part of the watermark information that can be identified as the same watermark information is read, the copy is performed. It is possible to easily determine that the error has occurred.
As a result, it is possible to prevent illegal copying, and to deal with illegal copying.

ここで、具体的な透かし情報の埋込処理の具体例について説明する。
図5は、プログラムのソースコードの一例の説明図である。
図5に示すプログラムにおいて、途中には条件分岐命令として、演算結果が0であった
場合にラベルLABELに分岐させるjz命令が記載されている。
図6は、図5に示したプログラムのメインルーチンであるSTARTルーチンをコンパ
イルした場合の、バイナリコードのビット配列を説明するための図である。
図6中、ハッチングで示した部分は、命令コード中の不使用ビット位置を表しており、
図6の場合、全部で27ビットの不使用ビットが含まれている。
Here, a specific example of a specific watermark information embedding process will be described.
FIG. 5 is an explanatory diagram of an example of the source code of the program.
In the program shown in FIG. 5, a jz instruction that branches to the label LABEL when the operation result is 0 is described as a conditional branch instruction in the middle.
FIG. 6 is a diagram for explaining the bit arrangement of the binary code when the START routine which is the main routine of the program shown in FIG. 5 is compiled.
In FIG. 6, the hatched portion represents the unused bit position in the instruction code.
In the case of FIG. 6, a total of 27 unused bits are included.

図7は、透かし情報データのビット列の説明図である。
図7においては、透かし情報データのビット列は、26ビットで構成されており、理解
を容易にするため各ビットをアルファベット「A」〜「Z」で表記している。すなわち、
「A」〜「Z」は、それぞれ1ビットであり、その値は“0”又は“1”である。
FIG. 7 is an explanatory diagram of a bit string of watermark information data.
In FIG. 7, the bit string of the watermark information data is composed of 26 bits, and each bit is represented by alphabets “A” to “Z” for easy understanding. That is,
Each of “A” to “Z” is 1 bit, and its value is “0” or “1”.

図8は、第1具体例の透かし情報データのビット列の埋込状態の説明図である。
第1具体例は、上述した(A1)の手順で命令コード及び不使用ビットを検索し、上述
した(B1)の手順に従ってLSB側から命令コード中の不使用ビットに透かし情報デー
タのビット列を埋め込んだ場合のものである。
この場合には、第1番目にアドレス=“0”に格納されているand命令が検索され、
and命令を構成する不使用ビットの第6ビットから第10ビットに対し、第6ビットか
ら第10ビットに向かう順番で透かし情報データビット列のうち、「A」〜「E」の5ビ
ット分を順次埋め込むこととなる。
つづいて、第2番目にアドレス=“1”に格納されているadd命令が検索され、ad
d命令を構成する不使用ビットの第6ビットから第10ビットに対し、第6ビットから第
10ビットに向かう順番で透かし情報データビット列のうち、「F」〜「J」の5ビット
分を順次埋め込むこととなる。
FIG. 8 is an explanatory diagram of the embedded state of the bit string of the watermark information data of the first specific example.
In the first specific example, the instruction code and the unused bits are searched by the procedure (A1) described above, and the bit string of the watermark information data is embedded in the unused bits in the instruction code from the LSB side according to the procedure (B1) described above. Is the case.
In this case, the AND instruction stored at the address = “0” is searched first,
For the 6th to 10th bits of the unused bits that constitute the and instruction, 5 bits “A” to “E” of the watermark information data bit string are sequentially applied in the order from the 6th bit to the 10th bit. Will be embedded.
Subsequently, the add instruction stored in the second address = “1” is retrieved, and the ad is searched.
In order from the 6th bit to the 10th bit of the unused bits constituting the d instruction, 5 bits “F” to “J” of the watermark information data bit sequence in order from the 6th bit to the 10th bit are sequentially Will be embedded.

同様に、アドレス=“3”に格納されているxor命令を構成する不使用ビットの第6
ビットから第10ビットに対し、透かし情報データビット列のうち、「K」〜「O」の5
ビット分が順次埋め込まれ、アドレス=“4”に格納されているsub命令を構成する不
使用ビットの第6ビットから第10ビットに対し、透かし情報データビット列のうち、「
P」〜「T」の5ビット分が順次埋め込まれ、アドレス=“5”に格納されているjz命
令を構成する不使用ビットの第10ビットに対し、透かし情報データビット列のうち、「
U」の1ビット分が埋め込まれ、アドレス=“8”に格納されているor命令を構成する
不使用ビットの第6ビットから第10ビットに対し、透かし情報データビット列のうち、
「V」〜「Z」の5ビット分が順次埋め込まれることとなる。
Similarly, the sixth unused bit constituting the xor instruction stored at address = “3”.
From the bit to the 10th bit, 5 of “K” to “O” in the watermark information data bit string
For the 6th to 10th bits of the unused bits that constitute the sub instruction stored in the address = “4” in the order of bits, the watermark information data bit string “
5 bits of “P” to “T” are sequentially embedded, and with respect to the 10th bit of the unused bits constituting the jz instruction stored at the address = “5”, “
1 bit of “U” is embedded, and the 6th to 10th bits of the unused bits constituting the or instruction stored in the address = “8” are included in the watermark information data bit string,
5 bits from “V” to “Z” are sequentially embedded.

このようにして透かし情報が埋め込まれたプログラムは、RTL情報に変換されてCP
U11その他のRTL情報と合成された後、図示せぬ論理合成ソフトウェアツールによっ
てランダムゲートに変換される。図9は、ランダムゲート回路12に対応するランダムゲ
ートのハードウエア記述言語による記述例を示す図である。この例では、ランダムゲート
回路12は、「romadrs」の入力に対して、「romout」を出力するランダム
ゲートとして記述されている。より詳細には、「romadrs」の値に応じて、0〜1
0に記述された「ROMOUTS」の値が選択されて出力される。例えば、「romad
rs」の値が“0”である場合には、16ビットの情報である「0001_1EDC_B
A00_1000」が出力される。A〜Eは、透かし情報のビットに対応している。なお
、case文の最後に記述されているように、デフォルト(default)値は、「0
000_0000_0000_0000」とされている。
The program in which watermark information is embedded in this way is converted into RTL information and CP
After being synthesized with U11 and other RTL information, it is converted into a random gate by a logic synthesis software tool (not shown). FIG. 9 is a diagram showing a description example of the random gate corresponding to the random gate circuit 12 in the hardware description language. In this example, the random gate circuit 12 is described as a random gate that outputs “romout” in response to an input of “romadrs”. More specifically, 0-1 depending on the value of “romadrs”
The value of “ROMOUTS” described in 0 is selected and output. For example, “romad
When the value of “rs” is “0”, “0001_1EDC_B” which is 16-bit information
A00_1000 "is output. A to E correspond to watermark information bits. As described at the end of the case statement, the default value is “0”.
000 — 0000 — 0000 — 0000 ”.

このようにして生成されたランダムゲートに基づいて、物理レイアウトを行うツールが
集積回路のパターンを作成する。そして、作成された集積回路のパターンに基づいて、集
積回路としての情報処理装置10が製造され、対象となる電子機器に組み込まれる。
Based on the random gate generated in this way, a tool for performing physical layout creates an integrated circuit pattern. Based on the created pattern of the integrated circuit, the information processing apparatus 10 as an integrated circuit is manufactured and incorporated into a target electronic device.

ところで、以上のようにして製造された情報処理装置10が、正当な使用権原を有しな
い第三者によって複製された場合には、複製された可能性がある情報処理装置10のI/
O回路15に対して、図示せぬパーソナルコンピュータを接続する。そして、パーソナル
コンピュータからI/O回路15を介して、ランダムゲート回路12に格納されているプ
ログラムを読み出すようにCPU11に指示を行う。その結果、CPU11は、ランダム
ゲート回路12に格納されているプログラムを読み出し、I/O回路15を介してパーソ
ナルコンピュータに転送する。パーソナルコンピュータでは、転送されたプログラムから
、埋め込んだ場合と同様の手順に基づいて透かし情報を抽出する。この結果、抽出された
透かし情報が、埋め込まれた透かし情報と一致する場合には、情報処理装置10が複製さ
れたものであると判断することができる。
By the way, when the information processing apparatus 10 manufactured as described above is copied by a third party who does not have a legitimate use right, the I / O of the information processing apparatus 10 that may have been copied.
A personal computer (not shown) is connected to the O circuit 15. Then, the CPU 11 is instructed to read the program stored in the random gate circuit 12 from the personal computer via the I / O circuit 15. As a result, the CPU 11 reads the program stored in the random gate circuit 12 and transfers it to the personal computer via the I / O circuit 15. In the personal computer, watermark information is extracted from the transferred program based on the same procedure as in the case of embedding. As a result, if the extracted watermark information matches the embedded watermark information, it can be determined that the information processing apparatus 10 has been copied.

図10は、第2具体例の透かし情報データのビット列の埋込状態の説明図である。
第2具体例は、上述した(A1)の手順で命令コード及び不使用ビットを検索し、上述
した(B2)の手順に従って下位ビット側から命令コード中の不使用ビットに透かし情報
データのビット列を埋め込んだ場合のものである。
この場合には、第1番目にアドレス=“0”に格納されているand命令が検索され、
第2番目にアドレス=“1”に格納されているadd命令が検索され、第3番目にアドレ
ス=“3”に格納されているxor命令が検索され、第4番目にアドレス=“4”に格納
されているsub命令が検索され、第5番目にアドレス=“5”に格納されているjz命
令が検索され、第6番目にアドレス=“8”に格納されているor命令が検索される。
FIG. 10 is an explanatory diagram of the embedding state of the bit string of the watermark information data of the second specific example.
In the second specific example, the instruction code and the unused bits are searched by the procedure of (A1) described above, and the bit string of the watermark information data is set to the unused bits in the instruction code from the lower bit side according to the procedure of (B2) described above. This is the case when it is embedded.
In this case, the AND instruction stored at the address = “0” is searched first,
The add instruction stored at the address = “1” is searched second, the xor instruction stored at the address = “3” is searched third, and the address = “4” is searched fourth. The stored sub instruction is searched, the jz instruction stored at the address = “5” is searched fifth, and the or instruction stored at the address = “8” is searched sixth. .

これらの検索された命令のうち、不使用ビットの中で最も下位ビット側に位置するのは
、第6ビット目であるので、命令コードが検索された順番で第6ビットから順番に透かし
情報データを構成するビット列を埋め込むこととなり、アドレス=“0”に格納されてい
るand命令を構成する不使用ビットの第6ビットに対し、透かし情報データビット列の
うち、「A」の1ビット分が埋め込まれることとなる。
つづいて、第2番目に検索されたアドレス=“1”に格納されているadd命令を構成
する不使用ビットの第6ビットに透かし情報データビット列のうち、「B」の1ビット分
を埋め込むこととなる。
Among these retrieved instructions, the least significant bit of the unused bits is located at the sixth bit, so the watermark information data is sequentially from the sixth bit in the order in which the instruction codes are retrieved. Is embedded, and one bit of “A” in the watermark information data bit string is embedded in the sixth bit of the unused bits constituting the “and” instruction stored at the address = “0”. Will be.
Subsequently, one bit of “B” in the watermark information data bit string is embedded in the sixth bit of the unused bits constituting the add instruction stored in the second searched address = “1”. It becomes.

同様に、アドレス=“3”に格納されているxor命令を構成する不使用ビットの第6
ビットに透かし情報データビット列のうち「C」の1ビット分が埋め込まれ、アドレス=
“4”に格納されているsub命令を構成する不使用ビットの第6ビットに透かし情報デ
ータビット列のうち「D」の1ビット分が埋め込まれ、アドレス=“8”に格納されてい
るor命令を構成する不使用ビットの第6ビットに透かし情報データビット列のうち「E
」の1ビット分が埋め込まれる。これにより検索された命令に含まれる第6ビット目に位
置する不使用ビットは全て透かし情報データビット列を構成するビットが埋め込まれたの
で、次に第7ビット目に不使用ビットが存在する命令を検索し、アドレス=“0”に格納
されているand命令を構成する不使用ビットの第7ビットに対し、透かし情報データビ
ット列のうち、「F」の1ビット分が埋め込まれることとなる。
以下、同様にして検索された命令のうち、第7ビット目に不使用ビットを有する命令の
第7ビット目に検索順で透かし情報データビット列がそれぞれ埋め込まれ、つづいて第8
ビット目→第9ビット目→第10ビット目の順番で、検索された命令順に1ビットずつ、
透かし情報データビット列を構成するビットが順次埋め込まれ、最終的には、図10に示
すような状態で処理が完了する。
Similarly, the sixth unused bit constituting the xor instruction stored at address = “3”.
One bit of “C” in the watermark information data bit string is embedded in the bit, and the address =
An or instruction stored at address = “8” with one bit of “D” embedded in the watermark information data bit string in the sixth bit of the unused bits constituting the sub instruction stored in “4” Of the watermark information data bit string in the sixth bit of the unused bits constituting
1 bit is embedded. As a result, all the unused bits located in the sixth bit included in the retrieved instruction are embedded with the bits that make up the watermark information data bit string. As a result of searching, one bit of “F” in the watermark information data bit string is embedded in the seventh bit of the unused bits constituting the “and” instruction stored at the address = “0”.
Hereinafter, among the instructions searched in the same manner, the watermark information data bit string is embedded in the seventh bit of the instruction having the unused bit in the seventh bit in the search order,
Bits → 9th → 10th bit
The bits constituting the watermark information data bit string are sequentially embedded, and the process is finally completed in the state shown in FIG.

図11は、第3具体例の透かし情報データのビット列の埋込状態の説明図である。
第3具体例は、上述した(A3)の手順で命令コード及び不使用ビットを検索し、上述
した(B1)の手順に従ってLSB側から命令コード中の不使用ビットに透かし情報デー
タのビット列を埋め込んだ場合のものである。
この場合には、プログラムに予め定めた特定のデータを予め定めた特定の順番で入力し
て処理を行わせた場合に、不使用ビットを有する命令であって、第1番目に実行される命
令は、アドレス=“0”に格納されているand命令であるので、このand命令が第1
番目に検索され、and命令を構成する不使用ビットの第6ビットから第10ビットに対
し、第6ビットから第10ビットに向かう順番で透かし情報データビット列のうち、「A
」〜「E」の5ビット分を順次埋め込むこととなる。
FIG. 11 is an explanatory diagram of the embedded state of the bit string of the watermark information data of the third specific example.
In the third specific example, the instruction code and the unused bits are searched in the procedure (A3) described above, and the bit string of the watermark information data is embedded in the unused bits in the instruction code from the LSB side according to the procedure (B1) described above. Is the case.
In this case, when a specific data predetermined in the program is input in a predetermined specific order and the process is performed, the instruction having an unused bit and executed first Is an and instruction stored at address = “0”.
“A” in the watermark information data bit string in the order from the 6th bit to the 10th bit with respect to the 6th to 10th bits of the unused bits constituting the AND instruction.
”To“ E ”are sequentially embedded.

つづいて、不使用ビットを有する命令であって、第2番目に実行される命令は、アドレ
ス=“1”に格納されているadd命令であるので、検索されて、このadd命令を構成
する不使用ビットの第6ビットから第10ビットに対し、第6ビットから第10ビットに
向かう順番で透かし情報データビット列のうち、「F」〜「J」の5ビット分を順次埋め
込むこととなる。
同様に、不使用ビットを有する命令であって、第3番目に実行される命令は、アドレス
=“3”に格納されているxor命令であるので、このxor命令を構成する不使用ビッ
トの第6ビットから第10ビットに対し、透かし情報データビット列のうち、「K」〜「
O」の5ビット分が順次埋め込まれる。
Subsequently, since the second instruction to be executed that has an unused bit is the add instruction stored at the address = “1”, it is searched and the instruction that constitutes this add instruction is searched. For the 6th to 10th bits of the used bits, 5 bits “F” to “J” of the watermark information data bit string are sequentially embedded in the order from the 6th bit to the 10th bit.
Similarly, an instruction having an unused bit and the third instruction to be executed is the xor instruction stored at the address = “3”. Therefore, the number of unused bits constituting the xor instruction is From the 6th bit to the 10th bit, “K” to “K” in the watermark information data bit string.
5 bits of “O” are sequentially embedded.

さらに不使用ビットを有する命令であって、第4番目に実行される命令は、アドレス=
“4”に格納されているsub命令であるので、このsub命令を構成する不使用ビット
の第6ビットから第10ビットに対し、透かし情報データビット列のうち、「P」〜「T
」の5ビット分が順次埋め込まれる。
このとき、sub命令の演算結果が0となり、図示しないゼロフラグがセットされたも
のとする。
そして、不使用ビットを有する命令であって、第5番目に実行される命令は、アドレス
=“5”に格納されているjz命令であるので、このjz命令を構成する不使用ビットの
第10ビットに対し、透かし情報データビット列のうち、「U」の1ビット分が埋め込ま
れる。
Further, an instruction having a non-use bit and the fourth instruction to be executed has an address =
Since it is a sub instruction stored in “4”, “P” to “T” of the watermark information data bit string with respect to the 6th to 10th bits of the unused bits constituting this sub instruction.
Are sequentially embedded.
At this time, it is assumed that the operation result of the sub instruction is 0 and a zero flag (not shown) is set.
Since the fifth instruction to be executed which has an unused bit is the jz instruction stored at the address = “5”, the tenth unused bit constituting this jz instruction is used. One bit of “U” in the watermark information data bit string is embedded in the bit.

そして、第4番目に実行されたアドレス=“4”に格納されているsub命令の演算結
果により、図示しないゼロフラグがセットされているので、jz命令の実行の結果、処理
がメインルーチンSTARTからアドレス=“10”に格納されたサブルーチンLABE
Lに分岐されることとなる。
この結果、第6番目に実行される命令は、アドレス=“10”に格納されているjmp
命令であるので、このjmp命令を構成する不使用ビットの第10ビットに対し、透かし
情報データビット列のうち、「V」の1ビット分が埋め込まれる。
本例によれば、CPU11にどのような特定のデータを予め定めたどのような特定の順
番で入力するかがわからなければ、透かし情報を解析することはできず、改竄が非常に困
難となる。一方、プログラムの改竄が行われた場合には、透かし情報を所定の手順で検出
して容易に改竄が行われた旨を特定することが可能となる。なお、CPU11に入力する
データとしては、例えば、I/O回路15から入力するデータ等がある。
Then, since the zero flag (not shown) is set according to the operation result of the sub instruction stored in the fourth executed address = “4”, the processing is started from the main routine START as a result of the execution of the jz instruction. = Subroutine LABE stored in “10”
Branch to L.
As a result, the sixth instruction to be executed is jmp stored at address = “10”.
Since this is an instruction, one bit of “V” in the watermark information data bit string is embedded in the 10th unused bit constituting the jmp instruction.
According to this example, if it is not known what specific data is input to the CPU 11 in a predetermined specific order, the watermark information cannot be analyzed and falsification becomes very difficult. . On the other hand, when the program is falsified, it is possible to easily detect that the falsification has been performed by detecting the watermark information in a predetermined procedure. Examples of data input to the CPU 11 include data input from the I / O circuit 15.

以上の説明のように、本実施形態によれば、プログラムの動作に影響を与えず、かつ、
透かし情報の埋め込み対象のプログラムのサイズも変更せずに透かし情報を埋め込むこと
ができるので、仮に第三者がプログラムの複製を行うに際し、プログラムの出所を誤魔化
すために、透かし情報の除去あるいは透かし情報の改竄を試みた場合に、従来よりも解析
が困難となり、ひいては、透かし情報の除去あるいは改竄が困難となり、プログラムの複
製を牽制することが可能となる。
さらに同一の透かし情報であっても、様々な埋込態様が可能となるため、プログラムの
配布ルートあるいは販売ルート等の流通ルート毎に透かし情報の埋込態様を変更すること
により、複製がなされたプログラムの流通ルートをより容易に特定することが可能となる
As described above, according to the present embodiment, the operation of the program is not affected, and
Since watermark information can be embedded without changing the size of the target program for embedding the watermark information, if the third party duplicates the program, the watermark information may be removed or the watermark information may be used to mislead the source of the program. When trying to falsify, the analysis becomes more difficult than in the past, and as a result, the removal or falsification of the watermark information becomes difficult, and the duplication of the program can be suppressed.
Furthermore, even with the same watermark information, various embedding modes are possible. Therefore, the watermark information was embedded by changing the embedding mode of the watermark information for each distribution route such as a program distribution route or a sales route. It becomes possible to specify the distribution route of the program more easily.

また、本実施形態では、透かし情報が埋め込まれたプログラムを、ランダムゲート回路
12に保持させるようにした。ランダムゲート回路12では、一般的なROMのように、
メモリアレイを有しないことから、回路パターンを見た場合に、プログラムコードがどこ
に格納されているかを回路パターンから判別することが非常に困難となる。このため、第
三者によって透かし情報が特定されたり、削除されたり、改竄されることを防止できる。
また、ランダムゲート回路12は、他のランダムゲートと混在するように配置されること
から、透かし情報の特定を一層困難とすることができる。さらに、ランダムゲート回路1
2では、集積回路のパターンを生成するまでの過程で、論理圧縮が施される。このため、
透かし情報が埋め込まれた状態で、論理圧縮が施されることから、透かし情報が埋め込ま
れた場合であっても、回路規模が大きくなることを防止できる。
In the present embodiment, the random gate circuit 12 holds the program in which the watermark information is embedded. In the random gate circuit 12, like a general ROM,
Since there is no memory array, it is very difficult to determine from the circuit pattern where the program code is stored when the circuit pattern is viewed. For this reason, it is possible to prevent the watermark information from being specified, deleted, or tampered by a third party.
Further, since the random gate circuit 12 is arranged so as to be mixed with other random gates, it is possible to make it more difficult to specify watermark information. Furthermore, the random gate circuit 1
2, logical compression is performed in the process until the pattern of the integrated circuit is generated. For this reason,
Since the logical compression is performed in a state where the watermark information is embedded, it is possible to prevent an increase in circuit scale even when the watermark information is embedded.

なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の
範囲内で任意に変形および応用が可能であることは勿論である。
例えば、以上の実施の形態では、プログラムの不使用ビットに透かし情報を埋め込むよ
うにしたが、ランダムゲート回路12の特定の領域に、透かし情報を保持させるようにし
てもよい。例えば、プログラムの冒頭、中央、末尾の領域に、透かし情報を埋め込むよう
にしてもよい。
It should be noted that the above-described embodiment is merely an aspect of the present invention, and can be arbitrarily modified and applied within the scope of the present invention.
For example, in the above embodiment, the watermark information is embedded in the unused bits of the program. However, the watermark information may be held in a specific area of the random gate circuit 12. For example, watermark information may be embedded in the beginning, center, and end areas of the program.

また、以上の実施の形態では、プログラムを構成する各命令コードのコード長は、固定
長としたが、プログラムに出現する命令コードの出現頻度等に応じて、命令コードのコー
ド長を変化させるようにしてもよい。具体的には、例えば、出現頻度が高い命令コードに
対して短いコード長を与えることにより、ランダムゲート回路12のゲート数を減少させ
、その結果、情報処理装置10の回路規模を小さくすることができる。この結果、透かし
情報を埋め込んだ場合であっても、回路規模が拡大することを防止できる。
In the above embodiment, the code length of each instruction code constituting the program is fixed, but the code length of the instruction code is changed according to the appearance frequency of the instruction code appearing in the program. It may be. Specifically, for example, by giving a short code length to an instruction code having a high appearance frequency, the number of gates of the random gate circuit 12 can be reduced, and as a result, the circuit scale of the information processing apparatus 10 can be reduced. it can. As a result, even when watermark information is embedded, the circuit scale can be prevented from increasing.

実施形態の情報処理装置の概要構成ブロック図である。It is a general | schematic block diagram of the information processing apparatus of embodiment. 16ビット長の命令を有するプロセッサの命令セットの例を説明する図である。It is a figure explaining the example of the instruction set of the processor which has a 16-bit length instruction. 透かし情報埋込処理の機能説明図である。It is a function explanatory view of watermark information embedding processing. 透かし情報埋込処理の処理フローチャートである。It is a processing flowchart of watermark information embedding processing. プログラムのソースコードの一例の説明図である。It is explanatory drawing of an example of the source code of a program. 図5に示したプログラムのメインルーチンであるSTARTルーチンをコンパイルした場合の、バイナリコードのビット配列を説明するための図である。It is a figure for demonstrating the bit arrangement | sequence of a binary code at the time of compiling the START routine which is the main routine of the program shown in FIG. 透かし情報データのビット列の説明図である。It is explanatory drawing of the bit sequence of watermark information data. 第1具体例の透かし情報データのビット列の埋込状態の説明図である。It is explanatory drawing of the embedding state of the bit sequence of the watermark information data of a 1st specific example. 図8に示すプログラムを有する組み合わせ回路ROMのRTL情報である。It is RTL information of the combinational circuit ROM having the program shown in FIG. 第2具体例の透かし情報データのビット列の埋込状態の説明図である。It is explanatory drawing of the embedding state of the bit sequence of the watermark information data of the 2nd specific example. 第3具体例の透かし情報データのビット列の埋込状態の説明図である。It is explanatory drawing of the embedding state of the bit sequence of the watermark information data of a 3rd example.

符号の説明Explanation of symbols

10…情報処理装置、11…CPU、12…ランダムゲート回路、13…レジスタ群、
14…周辺回路、15…I/O回路。
DESCRIPTION OF SYMBOLS 10 ... Information processing apparatus, 11 ... CPU, 12 ... Random gate circuit, 13 ... Register group,
14: Peripheral circuit, 15: I / O circuit.

Claims (7)

プログラムを格納するための記憶回路と、前記プログラムを実行する演算回路とを有す
る情報処理装置において、
前記演算回路は、透かし情報を読み出すための読出情報の入力を受け、
前記記憶回路は、論理素子の組み合わせ回路としてのランダムゲート回路として構成さ
れるとともに、前記演算回路を介して前記読出情報が入力された場合には、前記透かし情
報を有する情報を出力する、
ことを特徴とする情報処理装置。
In an information processing apparatus having a storage circuit for storing a program and an arithmetic circuit for executing the program,
The arithmetic circuit receives read information for reading watermark information,
The storage circuit is configured as a random gate circuit as a combination circuit of logic elements, and outputs the information having the watermark information when the read information is input through the arithmetic circuit.
An information processing apparatus characterized by that.
請求項1に記載の情報処理装置において、
前記記憶回路に格納されているプログラムを構成する命令は、不使用ビットに透かし情
報を有しており、
前記演算回路は、前記命令のうち、前記透かし情報を除く情報に基づいて演算処理を実
行する、
ことを特徴とする情報処理装置。
The information processing apparatus according to claim 1,
The instructions constituting the program stored in the storage circuit have watermark information in unused bits,
The arithmetic circuit executes arithmetic processing based on information excluding the watermark information among the instructions.
An information processing apparatus characterized by that.
請求項2記載の情報処理装置において、
前記命令は、条件分岐命令を含み、
前記透かし情報は、前記条件分岐命令の分岐に影響を与える所定の条件の下において、
前記演算回路によって実行される前記命令の順番に応じて格納されている、
ことを特徴とする情報処理装置。
The information processing apparatus according to claim 2,
The instruction includes a conditional branch instruction,
The watermark information is under a predetermined condition that affects the branch of the conditional branch instruction,
Stored according to the order of the instructions executed by the arithmetic circuit,
An information processing apparatus characterized by that.
請求項3記載の情報処理装置において、
前記所定の条件は、前記条件分岐命令の分岐に影響を与える所定の入力が前記演算回路
に与えられていることであることを特徴とする情報処理装置。
The information processing apparatus according to claim 3,
The information processing apparatus according to claim 1, wherein the predetermined condition is that a predetermined input that affects a branch of the conditional branch instruction is given to the arithmetic circuit.
請求項2乃至4記載の情報処理装置において、
前記命令を構成する命令コードは、前記プログラム中における当該命令の出現頻度が高
いほど、短いコード長を有するように設定されていることを特徴とする情報処理装置。
The information processing apparatus according to claim 2, wherein
The information processing apparatus, wherein the instruction code constituting the instruction is set to have a shorter code length as the frequency of appearance of the instruction in the program is higher.
請求項1乃至4のいずれか1項に記載の情報処理装置において、
前記記憶回路は、格納しているビット情報に基づく論理圧縮が施されていることを特徴
とする情報処理装置。
The information processing apparatus according to any one of claims 1 to 4,
The information processing apparatus, wherein the storage circuit is subjected to logical compression based on stored bit information.
プログラムを格納するための記憶回路と、前記プログラムを実行する演算回路とを有す
る情報処理装置を設計する設計装置において、
透かし情報の入力を受ける入力手段と、
前記入力手段を介して入力された透かし情報を格納した前記記憶回路を、論理素子の組
み合わせ回路としてのランダムゲート回路として構成し、当該ランダムゲート回路の設計
情報を生成する生成手段と、
を有することを特徴とする設計装置。
In a design apparatus for designing an information processing apparatus having a storage circuit for storing a program and an arithmetic circuit for executing the program,
Input means for receiving input of watermark information;
The storage circuit that stores the watermark information input through the input unit is configured as a random gate circuit as a combinational circuit of logic elements, and a generation unit that generates design information of the random gate circuit;
The design apparatus characterized by having.
JP2008036978A 2008-02-19 2008-02-19 Information processor and design device Withdrawn JP2009199114A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008036978A JP2009199114A (en) 2008-02-19 2008-02-19 Information processor and design device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008036978A JP2009199114A (en) 2008-02-19 2008-02-19 Information processor and design device

Publications (1)

Publication Number Publication Date
JP2009199114A true JP2009199114A (en) 2009-09-03

Family

ID=41142578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008036978A Withdrawn JP2009199114A (en) 2008-02-19 2008-02-19 Information processor and design device

Country Status (1)

Country Link
JP (1) JP2009199114A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115795418A (en) * 2023-01-17 2023-03-14 泉州艾奇科技有限公司 Watermark embedding method, watermark embedding apparatus, computer, storage medium, and program product

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115795418A (en) * 2023-01-17 2023-03-14 泉州艾奇科技有限公司 Watermark embedding method, watermark embedding apparatus, computer, storage medium, and program product
CN115795418B (en) * 2023-01-17 2023-04-14 泉州艾奇科技有限公司 Watermark embedding method, device, computer and storage medium

Similar Documents

Publication Publication Date Title
Clow et al. A pythonic approach for rapid hardware prototyping and instrumentation
Corno et al. Automatic test program generation: a case study
Bansal et al. Automatic generation of peephole superoptimizers
US4899273A (en) Circuit simulation method with clock event suppression for debugging LSI circuits
US6625780B1 (en) Watermarking based protection of virtual component blocks
JP2009520287A (en) Method and apparatus for multi-cycle clock gating
JP2006350686A (en) Instruction set simulator generation device and simulator generation method
JP2007034584A (en) High order composition device, automatic high order composition method, high order composition program, and gate net list automatic verifying method
US20120246606A1 (en) Generation of an end point report for a timing simulation of an integrated circuit
US7523029B2 (en) Logic verification and logic cone extraction technique
Subramanyan et al. Template-based parameterized synthesis of uniform instruction-level abstractions for SoC verification
Meng et al. Unlocking hardware security assurance: The potential of llms
Paria et al. Divas: An llm-based end-to-end framework for soc security analysis and policy-based protection
US5673425A (en) System for automatic generating instruction string to verify pipeline operations of a processor by inputting specification information having time for the processor to access hardware resources
JP4530883B2 (en) Simulation model generation method
De Grandmaison et al. ARMISTICE: Microarchitectural leakage modeling for masked software formal verification
Chen et al. Practical IP watermarking and fingerprinting methods for ASIC designs
Endoh ASystemC: an AOP extension for hardware description language
JP2009199114A (en) Information processor and design device
Chang et al. Logic synthesis and circuit customization using extensive external don't-cares
JP2009517759A (en) IC design method and IC design tool
JP2004070457A (en) Device and method for calculating coverage for simulation
Zulkifli et al. Reduced stall MIPS architecture using pre-fetching accelerator
JP2010086168A (en) Information processor, control method for the information processor and control program
Refan et al. Bridging presilicon and postsilicon debugging by instruction-based trace signal selection in modern processors

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110510