JPH11191065A - マイクロプロセッサを用いたシステムのランダム化方法およびその装置 - Google Patents

マイクロプロセッサを用いたシステムのランダム化方法およびその装置

Info

Publication number
JPH11191065A
JPH11191065A JP9367296A JP36729697A JPH11191065A JP H11191065 A JPH11191065 A JP H11191065A JP 9367296 A JP9367296 A JP 9367296A JP 36729697 A JP36729697 A JP 36729697A JP H11191065 A JPH11191065 A JP H11191065A
Authority
JP
Japan
Prior art keywords
microprocessor
program
randomizing
randomized
key
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.)
Pending
Application number
JP9367296A
Other languages
English (en)
Inventor
Masami Urano
正美 浦野
Tomoo Fukazawa
友雄 深沢
Takeshi Takeya
健 武谷
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP9367296A priority Critical patent/JPH11191065A/ja
Priority to EP98310514A priority patent/EP0929040A3/en
Priority to US09/219,953 priority patent/US6526511B1/en
Publication of JPH11191065A publication Critical patent/JPH11191065A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 たとえ第三者によってマイクロプロセッサと
プログラムとを読み取られ、解析されたとしても、現用
のマイクロプロセッサとは異なるマイクロプロセッサと
現用のプログラムとは異なるプログラムとで構成される
システムであって、現用のシステムと同じ機能を果たす
システムを容易かつ迅速に生成することができるシステ
ムを提供することを目的とするものである。 【解決手段】 マイクロプロセッサをランダム化してラ
ンダム化マイクロプロセッサを作成し、プログラムをラ
ンダム化してランダム化プログラムを作成し、ランダム
化マイクロプロセッサの作成とランダム化プログラムの
作成とを繰り返し、ランダム化マイクロプロセッサとラ
ンダム化プログラムとによって構成されるランダム化シ
ステムは、マイクロプロセッサとプログラムとによって
構成されるシステムと同じ機能を実現するシステムであ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ICカード等マイ
クロプロセッサとプログラムとによって構成されるシス
テムに関するものである。
【0002】
【従来の技術】図9は、マイクロプロセッサを用いたシ
ステムの従来の設計法を示すフローチャートである。
【0003】マイクロプロセッサ等の論理LSIを設計
する場合、通常、図9に示す手順で設計される。まず、
LSIの仕様に基づいて機能設計、論理設計を行う(S
41〜S43)。機能設計する場合、近年は、Hard
ware Description Language
(HDL)を用い、LSIの動作を機能記述し、機能シ
ミュレータを用い、仕様を満足していることの検証を行
う。次に、論理合成ツールを用い、機能記述に基づい
て、ゲートレベルのネットリストを生成する(S4
4)。なお、「ネットリスト」は、セルライブラリに含
まれているNAND、NOR、フリップフロップ等、単
純な論理機能を持つセルについて、それらの相互の接続
関係を記述したものである。このネットリストが生成さ
れると、ネットリスト、遅延ライブラリ等を用いて論理
シミュレーションを行い、動作の検証を行う。そして、
上記ネットリストを用いて、配置配線ツールを用い、レ
イアウト設計を行い(S45)、マスクパタンを作成す
る(S46)。このデータに基づいて、マスクを作成
し、LSIを製造する(S47)。
【0004】一方、マイクロプロセッサ20を用いたシ
ステム10で使用するプログラム40を作成する場合、
FortranやC言語等の高級言語で記述を行い(S
51)、この記述をコンパイルし(S52)、マイクロ
プロセッサ20で実行可能な機械語のプログラム40を
作成し、この作成されたプログラム40がメモリ30に
格納される。
【0005】上記のようして開発されたマイクロプロセ
ッサ20とプログラム40とを用いてシステム10を構
成する。通常、マイクロプロセッサ20とメモリ30と
を、データバスとアドレスバスとによって接続し、上記
作成されたプログラム40をローダ等によってメモリ3
0にロードし、このメモリ30をマイクロプロセッサ2
0がアクセスしながら命令を実行し、システム10の機
能を実現する。
【0006】1種類のマイクロプロセッサ20に着目す
ると、その機能記述、ネットリスト、マスクパタンのそ
れぞれは、通常、1種類のみが存在する。これと同様
に、1つの高級言語を用いて記述されたプログラムをコ
ンパイルして作成されるプログラム40は、ただ1種類
のみが存在する。
【0007】
【発明が解決しようとする課題】近年ICカードの応用
分野が拡大しつつあり、これに伴って、ICカードのセ
キュリティが重視されるようになっている。通常、IC
カードにはマイクロプロセッサと、メモリ上にロードさ
れたプログラムとが搭載されているが、上記のように、
同一の機能を有する複数のICカードにおいて、マイク
ロプロセッサ20が1種類であり、また、メモリ30上
のプログラム40も1種類であるので、マイクロプロセ
ッサ20の論理構造とメモリ30上のプログラム40と
を第三者に解読されると、解読されたICカードと同種
のICカードの機能をその第三者に解読される可能性が
高い。
【0008】また、マイクロプロセッサ20の論理構造
とメモリ30上のプログラム40とが第三者に解読され
たことが判明された場合、現用のマイクロプロセッサを
用いた現用システムを、現用のマイクロプロセッサとは
異なる種類のマイクロプロセッサを用いた新たなシステ
ムに切り替えることが考えられ、このように新たなシス
テムに切り替える場合、解読されたシステムと同じ機能
を実現するためには、新しいマイクロプロセッサで実現
可能なプログラムを新規に開発する必要がある。一般
に、プログラムを新たに開発するには長い期間が必要で
あり、またバグが混入する可能性もあり、プログラムを
別途開発することは、非常に困難であるという問題があ
る。
【0009】つまり、マイクロプロセッサとプログラム
とによって構成されるICカード等のシステムにおい
て、そのシステムを即刻変更することは困難であるとい
う問題がある。
【0010】本発明は、たとえ第三者によってマイクロ
プロセッサとプログラムとを読み取られ、解析されたと
しても、現用のマイクロプロセッサとは異なるマイクロ
プロセッサと現用のプログラムとは異なるプログラムと
で構成されるシステムであって、現用のシステムと同じ
機能を果たすシステムを容易かつ迅速に生成することが
できるマイクロプロセッサを用いたシステムのランダム
化方法およびその装置を提供することを目的とするもの
である。
【0011】
【課題を解決するための手段】本発明は、マイクロプロ
セッサと、上記マイクロプロセッサにおいて実行可能な
プログラムとによって構成されるシステムにおいて、上
記マイクロプロセッサをランダム化してランダム化マイ
クロプロセッサを作成し、上記プログラムをランダム化
してランダム化プログラムを作成し、上記ランダム化マ
イクロプロセッサの作成と上記ランダム化プログラムの
作成とを繰り返し、上記ランダム化マイクロプロセッサ
と上記ランダム化プログラムとによって構成されるラン
ダム化システムは、上記マイクロプロセッサと上記プロ
グラムとによって構成される上記システムと同じ機能を
実現するシステムである。
【0012】
【発明の実施の形態および実施例】図1は、本発明の一
実施例であるマイクロプロセッサを用いたシステムをラ
ンダム化する方法の説明図であり、システムを構成する
マイクロプロセッサ、プログラムをランダム化する方法
の概念を示す図である。
【0013】通常、あるシステムは、マイクロプロセッ
サとメモリとを用いて構成され、メモリ上にはマイクロ
プロセッサ用のプログラムがロードされている。
【0014】図1に示すランダム化方法では、所定の鍵
60を用いてマイクロプロセッサの内部論理を変更す
る。所定の鍵60A を用いて、マイクロプロセッサ20
をランダム化したものが、ランダム化マイクロプロセッ
サ20A であり、鍵60A とは異なる鍵60B を用い
て、マイクロプロセッサ20をランダム化したものが、
ランダム化マイクロプロセッサ20B である。鍵60
C 、60D を用いて、マイクロプロセッサ20をランダ
ム化したものが、それぞれランダム化マイクロプロセッ
サ20C 、20D である。
【0015】また、ランダマイザ50は、鍵60を用い
てプログラム40を変更するものでもある。鍵60A
用いて、プログラム40をランダム化すれば、ランダム
化プログラム40A を得ることができ、鍵60A とは異
なる鍵60B を用いて、プログラム40をランダム化す
れば、ランダム化プログラム40B を得ることができ
る。鍵60C 、60D を用いて、プログラム40をラン
ダム化したものが、それぞれランダム化プログラム40
C 、40D である。
【0016】なお、マイクロプロセッサ20をランダム
化する場合に使用する鍵と、プログラム40をランダム
化する場合に使用する鍵とは、互いに同一のものでもよ
く、また、互いに異なるものでもよい。
【0017】ただし、ランダム化によって生成されたラ
ンダム化マイクロプロセッサ20Aとランダム化プログ
ラム40A とを組み合わせて構成されたランダム化シス
テム10A は、マイクロプロセッサ20とプログラム4
0とによって構成されるシステム10(ランダム化する
前のシステム)と同じ機能を実現するものであり、ま
た、ランダム化マイクロプロセッサ20B とランダム化
プログラム40B とを組み合わせて構成したランダム化
システム10B は、マイクロプロセッサ20とプログラ
ム40とによって構成されるシステム10と同じ機能を
実現するものである。ただし、ランダム化マイクロプロ
セッサ20A とランダム化マイクロプロセッサ20B
は、互いに異なるハードウェアであり、ランダム化プロ
グラム40A とランダム化プログラム40B とは、互い
に異なるプログラムである。つまり、ランダム化プログ
ラム40A と40B との間では、各命令そのものは同じ
であるが、各命令を配列してある順番が異なる。上記と
同様に、ランダム化システム10C 、10D は、システ
ム10と同じ機能を実現するものである。
【0018】次に、ランダマイザ50について説明す
る。
【0019】図2は、上記実施例におけるマイクロプロ
セッサ中に設けられる疑似乱数発生器70を示す図であ
る。
【0020】疑似乱数発生器70は、上記実施例におけ
るマイクロプロセッサに設けられ、プログラムカウンタ
に相当するものであり、この疑似乱数発生器70を変化
させることによって、発生される疑似乱数の数列が異な
り、変化された疑似乱数発生器70を含むマイクロプロ
セッサがランダム化マイクロプロセッサに変化するもの
である。
【0021】疑似乱数発生器70は、LFSR(Linear
Feedback Shift Register)で構成され、この場合、4
つのDフリップフロップFF1〜FF4が直列に接続さ
れ、3つの論理回路E1、E2、E3と、接続点C0、
C1、C2、C3とが設けられ、鍵60(図3において
詳述する)に応じて、接続点C0、C1、C2、C3の
接続の有無、論理回路E1、E2、E3の種類が定ま
る。また、DフリップフロップFF1、FF2、FF
3、FF4のそれぞれから信号Q4、Q3、Q2、Q1
が出力され、信号Q4、Q3、Q2、Q1が4ビットの
アドレスとして使用され、この4ビットのアドレスが疑
似乱数である。
【0022】図3は、上記実施例において使用される鍵
60の例としての鍵60A 、60B、60C の具体例を
示す図である。
【0023】図3において、接続点C0は常に接続状態
にセットされ、接続点C1、C2、C3のそれぞれを指
定する鍵60が「1」であれば、その接続点が接続状態
にセットされ、鍵60が「0」であれば、その接続点は
非接続状態にセットされる。また、論理回路E1、E
2、E3のそれぞれを指定する鍵60が「1」であれ
ば、EXNORにセットされ、論理回路E1、E2、E
3のそれぞれを指定する鍵60が「0」であれば、EX
ORにセットされる。
【0024】図4は、上記実施例において、図3に示す
鍵60A を使用して生成されたランダム化マイクロプロ
セッサ20A 中の疑似乱数発生器70A と、疑似乱数発
生器70A によって発生されるアドレスとを示す図であ
る。
【0025】鍵60A は、図3に示されているように、
接続点C0、C3のみを接続し、論理回路E1をEXN
OR回路にセットし、論理回路E2、E3をEXOR回
路にセットする鍵である。ここで、接続点C1、C2が
接続されないので、論理回路E1であるEXNOR回路
が短絡され、論理回路E2であるEXOR回路が短絡さ
れる。そして、この疑似乱数発生器70A によれば、ク
ロックCL1、CL2、CL3、……が発生すると、ア
ドレス「0001」、「1000」、「1100」、…
…が出力される。
【0026】つまり、図3に示す鍵鍵60A 、60B
60C に基づいてLFSRのネットリストを作成し、図
示しない論理シミュレータに渡すと、疑似乱数発生器が
作成され、この疑似乱数発生器をアドレスカウンタとし
て使用するランダム化マイクロプロセッサ20A 〜20
D が作成される(つまり、鍵鍵60A 、60B 、60C
を、ランダマイザ50中の第1のランダマイザに入力す
ると、ランダム化マイクロプロセッサ20A 〜20D
作成される)。
【0027】そして、作成された疑似乱数発生器が出力
するアドレスに従って命令の配列を変える。この作成さ
れた疑似乱数発生器が出力するアドレスに従って命令の
配列を変えるものが、第2のランダマイザである。たと
えば、図4(2)に着目し、Q4、Q3、Q2、Q1が
4ビットのアドレスとして使用される場合、クロックC
L1で発生するアドレス「0001」に命令OP1を対
応させ、クロックCL2で発生するアドレス「100
0」に命令OP2を対応させ、クロックCL3で発生す
るアドレス「1100」に命令OP3を対応させ、クロ
ックCL4で発生するアドレス「1111」に命令OP
4を対応させ、……のようにする。
【0028】このようにすれば、クロックCL1、CL
2、CL3、CL4、……が発生すると、それぞれ、命
令OP1、OP2、OP3、OP4、……というよう
に、システム10において発生する命令の順序と同じ順
序で命令が発生する。つまり、ランダム化マイクロプロ
セッサ20A とランダム化プログラム40A とによって
構成されるランダム化システム10A の機能と、マイク
ロプロセッサ20とプログラム40とによって構成され
るシステム10の機能とが同じになる。
【0029】図5は、上記実施例において、図3に示す
鍵60B を使用して生成されたランダム化マイクロプロ
セッサ20B 中の疑似乱数発生器70B と、疑似乱数発
生器70B によって発生されるアドレスとを示す図であ
る。
【0030】鍵60B は、図3に示されているように、
接続点C0、C3のみを接続し、論理回路E1をEXO
R回路にセットし、論理回路E2、E3をEXNOR回
路にセットする鍵である。ここで、接続点C1、C2が
接続されないので、論理回路E1であるEXOR回路が
短絡され、論理回路E2であるEXNOR回路が短絡さ
れる。そして、この疑似乱数発生器70B によれば、ク
ロックCL1、CL2、CL3、……が発生すると、ア
ドレス「0000」、「0100」、「1100」、…
…が出力される。これらのアドレス「0000」、「0
100」、「1100」、……は、鍵60A を使用して
生成されたランダム化マイクロプロセッサ20A 中の疑
似乱数発生器70A が発生したアドレス「0001」、
「1000」、「1100」、……とは異なる。
【0031】図6は、上記実施例において、図3に示す
鍵60C を使用して生成されたランダム化マイクロプロ
セッサ20C 中の疑似乱数発生器70C と、疑似乱数発
生器70C によって発生されるアドレスとを示す図であ
る。
【0032】鍵60C は、図3に示されているように、
接続点C0、C1のみを接続し、論理回路E1、E3を
EXOR回路にセットし、論理回路E2をEXNOR回
路にセットする鍵である。ここで、接続点C2、C3が
接続されないので、論理回路E2であるEXNOR回路
が短絡され、論理回路E3であるEXOR回路が短絡さ
れる。そして、この疑似乱数発生器70C によれば、ク
ロックCL1、CL2、CL3、……が発生すると、ア
ドレス「0001」、「1000」、「1010」、…
…が出力される。これらのアドレス「0001」、「1
000」、「1010」、……は、鍵60A を使用して
生成されたランダム化マイクロプロセッサ20A 中の疑
似乱数発生器70A が発生したアドレス「0001」、
「1000」、「1100」、……とは異なる。
【0033】つまり、ランダマイザ50は、LFSR
(Linear Feedback Shift Register)の構成を変更する
ことによって、プログラムカウンタに相当する疑似乱数
発生回路が発生するアドレスを異ならせるものであり、
ランダム化マイクロプロセッサのネットリストを生成す
るものである。
【0034】また、ランダム化プログラムを生成する場
合、ランダマイザ50は、各ランダム化マイクロプロセ
ッサ毎に、LFSRが発生するアドレスの順に、プログ
ラムを構成する命令をメモリに格納するものであり、ま
たは、上記順にメモリに格納できるように、プログラム
を入れ替えるものである。なお、この場合、プログラム
のプログラムカウンタをLFSRで構成しておくことが
前提である。
【0035】上記実施例において、互いに異なる鍵60
A 〜60D を用いることによって、互いに異なるランダ
ム化マイクロプロセッサ20A 〜20D 、互いに異なる
ランダム化プログラム40A 〜40D を作成することが
できるにも関わらず、それぞれを組み合わせると同じ機
能のシステムを構築することができる。したがって、た
とえ、所定のランダム化マイクロプロセッサ20とラン
ダム化プログラム40とによって構成されるランダム化
システム10が解読された場合、異なる鍵から生成され
た異なるランダム化マイクロプロセッサ20A とランダ
ム化プログラム40A とからなるシステム10A に置き
換えることによって、ハードウェア、ソフトウェア的に
は、それまでとは異なっているにも関わらず、ランダム
化システム10と同じ機能を実現することができる。し
たがって、ハードウェア、ソフトウェアの新規開発期
間、コストを殆どかけずに、新しいシステムに置き換え
ることができる。これによって、ICカードの内容を解
読されても、その被害を最小限に抑えることができる。
【0036】また、マイクロプロセッサ20またはラン
ダム化プログラム40が実際には解読されていなくて
も、これらマイクロプロセッサ20またはランダム化プ
ログラム40を解読するのに要するであろう期間よりも
十分に短い期間を周期として、マイクロプロセッサ20
を他のマイクロプロセッサ20A に変更するとともに、
プログラム40を他のプログラム40A に変更すれば、
マイクロプロセッサ20とランダム化プログラム40と
によって構成されるシステム10が解読されたときに
は、マイクロプロセッサ20A とプログラム40A とに
よって構成されるシステム10A が使用されており、解
読した結果は無効となり、被害を被ることはなくなる。
【0037】つまり、鍵60は、プログラムカウンタと
してマイクロプロセッサが用いるLFSRの構造を定義
するものであり、LFSRが発生する疑似乱数列は、L
FSRの構造に依存する。したがって、ランダム化プロ
グラムは、与えられた鍵60からLFSRの構造を決定
し、このLFSRが発生する疑似乱数列を求める。この
疑似乱数列に従って、プログラムの内容を、メモリのど
の番地に格納するかを決定する。鍵60によって定義さ
れているLFSRの動作をシミュレーションし、その順
に命令を並び替えるものである。
【0038】図7は、上記実施例のより具体的な実施例
であるマイクロプロセッサを用いたシステムのランダム
化方法を示す図である。
【0039】マイクロプロセッサの開発フローチャート
の中では、論理設計が終了した(S1、S2)時点のネ
ットリスト(S3)に対してランダム化を行い(S
4)、ランダム化ネットリストS5A 、S5B 、S5C
を生成する。それぞれのランダム化ネットリストS5A
〜S5C を用いてレイアウト設計を行い(S6A 〜S6
C)、マスクパタンを製造し(S7A 〜S7C S8A
S8C )、ランダム化マイクロプロセッサ20A 、20
B 、20C を作成する。プログラムについては、高級言
語で記述されたソースプログラムをコンパイルし、この
コンパイルされたプログラムをランダマイザ50でラン
ダム化し(S14)、ランダム化プログラム40A 、4
B 、40C が作成される。
【0040】上記実施例は、ネットリストに基づいてラ
ンダム化を行った例であるが、機能設計によって生成さ
れる機能記述についてランダム化を行い、このようにし
て作成されたランダム化機能記述RFDA 、RFDB
RFDC のそれぞれについて論理設計、レイアウトを行
い、ランダム化マイクロプロセッサを作成するようにし
てもよい。また、レイアウトについてランダム化を行
い、ランダム化マスクパタンを用いてランダム化マイク
ロプロセッサを作成するようにしてもよい。
【0041】図8は、本発明の他の実施例であるマイク
ロプロセッサを用いたシステムのランダム化方法を示す
図である。
【0042】図8に示すマイクロプロセッサを用いたシ
ステムのランダム化方法において、プログラムのランダ
ム化方法は、図7で示したシステムのランダム化方法に
おけるプログラムのランダム化方法と同じである。
【0043】図8に示すマイクロプロセッサを用いたシ
ステムのランダム化方法において、マイクロプロセッサ
の中のランダム化する部分を、予めFPGA(Field Pr
ogramable Gate Array)によって構成しておく。
【0044】論理設計によって作成されたネットリスト
(S3)のうちで、FPGAで実現する部分のみランダ
マイザ50によってランダム化する。このランダム化結
果から、FPGAのプログラムを作成する。ランダム化
マイクロプロセッサ20A に対してはFPGAプログラ
ム40A を使用し、ランダム化マイクロプロセッサ20
B に対してはFPGAプログラム40B を使用し、ラン
ダム化マイクロプロセッサ20C に対してはFPGAプ
ログラム40C を使用する。これらFPGAプログラム
40A 〜40C を、マイクロプロセッサのFPGA部分
にロードすることによって、ランダム化マイクロプロセ
ッサ20A 、20B 、20C を作成することができる。
【0045】つまり、マイクロプロセッサ20をランダ
ム化する場合、ランダマイザ50は、LFSRの構成を
変更するものであり、これによって、プログラムカウン
タが発生するアドレスが異なり、ランダム化マイクロプ
ロセッサのネットリストを生成することができる。ま
た、LFSRのフィードバック部をFPGA化している
場合には、そのプログラムデータを生成する。
【0046】また、ランダマイザ50は、LFSR(Li
near Feedback Shift Register)の構成を変更すること
によって、プログラムカウンタに相当する疑似乱数発生
回路が発生するアドレスを異ならせるものであり、LF
SRのフィードバック部をFPGA化している場合は、
そのプログラムデータを生成するものである。
【0047】上記実施例において、マイクロプロセッサ
20とソフトウェア40とに対してランダマイズを行っ
ているが、ランダム化マイクロプロセッサ(たとえば2
A)とランダム化プログラム(たとえば40A )とに
よって構成されるランダム化システム(たとえば10
A )は、マイクロプロセッサ20とソフトウェア40と
によって構成されるシステム10と同一の機能を実現す
ることができるので、たとえ、所定のランダム化マイク
ロプロセッサ(たとえば20A )と所定のランダム化プ
ログラム(たとえば40A )とが解析されたとしても、
その時点で、異なる鍵データを用いたランダム化マイク
ロプロセッサ(たとえば20B )とランダム化プログラ
ム(たとえば40B )とに切り替えることによって、シ
ステムを構成するランダム化マイクロプロセッサとラン
ダム化ソフトウェアは、既に内容が解析されたランダム
化マイクロプロセッサとランダム化プログラムと全く異
なるものとなるので、解析によって得られた情報は無効
となる。
【0048】また、上記実施例を装置として把握する
と、マイクロプロセッサと、上記マイクロプロセッサに
おいて実行可能なプログラムとによって構成されるシス
テムにおいて、上記マイクロプロセッサをランダム化し
てランダム化マイクロプロセッサを作成する第1のラン
ダマイザと、上記第1のランダマイザに所定のランダム
化マイクロプロセッサを作成させる第1の鍵と、上記プ
ログラムをランダム化してランダム化プログラムを作成
する第2のランダマイザと、上記第2のランダマイザに
所定のランダム化プログラムを作成させる第2の鍵とを
有し、上記ランダム化マイクロプロセッサと上記ランダ
ム化プログラムとによって構成されるランダム化システ
ムは、上記マイクロプロセッサと上記プログラムとによ
って構成される上記システムと同じ機能を実現するシス
テムであるマイクロプロセッサを用いたランダム化シス
テムである。
【0049】
【発明の効果】本発明によれば、たとえ第三者によって
マイクロプロセッサとプログラムとを読み取られ、解析
されたとしても、現用のシステムと同じ機能を果たすシ
ステムであって、現用のマイクロプロセッサとは異なる
マイクロプロセッサと、現用のプログラムとは異なるプ
ログラムとを容易に生成することができ、したがって、
システムを構成するマイクロプロセッサ、プログラムを
迅速に変更することによってハードウェア、ソフトウェ
ア的には異なっても、現用のシステムと同じ機能を有す
るシステムを迅速、安価に生成することができるという
効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例であるマイクロプロセッサを
用いたシステムをランダム化する方法の説明図であり、
システムを構成するマイクロプロセッサ、プログラムを
ランダム化する方法の概念を示す図である。
【図2】上記実施例におけるマイクロプロセッサ中に設
けられる疑似乱数発生器70を示す図である。
【図3】上記実施例において使用される鍵60の例とし
ての鍵60A 、60B 、60Cの具体例を示す図であ
る。
【図4】上記実施例において、図3に示す鍵60A を使
用して生成されたランダム化マイクロプロセッサ20A
中の疑似乱数発生器70A と、疑似乱数発生器70A
よって発生されるアドレスとを示す図である。
【図5】上記実施例において、図3に示す鍵60B を使
用して生成されたランダム化マイクロプロセッサ20B
中の疑似乱数発生器70B と、疑似乱数発生器70B
よって発生されるアドレスとを示す図である。
【図6】上記実施例において、図3に示す鍵60C を使
用して生成されたランダム化マイクロプロセッサ20C
中の疑似乱数発生器70C と、疑似乱数発生器70C
よって発生されるアドレスとを示す図である。
【図7】上記実施例のより具体的な実施例であるマイク
ロプロセッサを用いたシステムのランダム化方法を示す
図である。
【図8】本発明の他の実施例であるマイクロプロセッサ
を用いたシステムのランダム化方法を示す図である。
【図9】マイクロプロセッサを用いたシステムの従来の
設計法を示すフローチャートである。
【符号の説明】
10A 〜10D …マイクロプロセッサを用いたランダム
化システム、 20A 〜20D …ランダム化マイクロプロセッサ、 40A 〜40D …ランダム化プログラム、 50…ランダマイザ、 60、60A 〜60C …鍵、 70A 〜70C …疑似乱数発生器。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサと、上記マイクロプ
    ロセッサにおいて実行可能なプログラムとによって構成
    されるシステムにおいて、 上記マイクロプロセッサをランダム化してランダム化マ
    イクロプロセッサを作成するランダム化マイクロプロセ
    ッサ作成段階と;上記プログラムをランダム化してラン
    ダム化プログラムを作成するランダム化プログラム作成
    段階と;上記ランダム化マイクロプロセッサ作成段階と
    上記ランダム化プログラム作成段階とを繰り返す繰り返
    し段階と;を有し、上記ランダム化マイクロプロセッサ
    と上記ランダム化プログラムとによって構成されるラン
    ダム化システムは、上記マイクロプロセッサと上記プロ
    グラムとによって構成される上記システムと同じ機能を
    実現するシステムであることを特徴とするマイクロプロ
    セッサを用いたシステムのランダム化方法。
  2. 【請求項2】 請求項1において、 上記ランダム化マイクロプロセッサ作成段階は、出力す
    べきアドレスの順番がランダム化されているマイクロプ
    ロセッサを作成する段階であり、 上記ランダム化プログラム作成段階は、命令の順序がラ
    ンダム化されているプログラムを作成する段階であるこ
    とを特徴とするマイクロプロセッサを用いたシステムの
    ランダム化方法。
  3. 【請求項3】 マイクロプロセッサと、上記マイクロプ
    ロセッサにおいて実行可能なプログラムとによって構成
    されるシステムにおいて、 上記マイクロプロセッサをランダム化してランダム化マ
    イクロプロセッサを作成する第1のランダマイザと;上
    記第1のランダマイザに所定のランダム化マイクロプロ
    セッサを作成させる第1の鍵と;上記プログラムをラン
    ダム化してランダム化プログラムを作成する第2のラン
    ダマイザと;上記第2のランダマイザに所定のランダム
    化プログラムを作成させる第2の鍵と;を有し、上記ラ
    ンダム化マイクロプロセッサと上記ランダム化プログラ
    ムとによって構成されるランダム化システムは、上記マ
    イクロプロセッサと上記プログラムとによって構成され
    る上記システムと同じ機能を実現するシステムであるこ
    とを特徴とするマイクロプロセッサを用いたランダム化
    システム。
  4. 【請求項4】 請求項3において、 互いに異なる複数の上記第1の鍵のうちの1つの鍵が上
    記第1のランダマイザに入力されることによって生成さ
    れるランダム化マイクロプロセッサと、上記互いに異な
    る複数の上記第1の鍵のうちの他の鍵が上記第1のラン
    ダマイザに入力されることによって生成されるランダム
    化マイクロプロセッサとは異なり、 互いに異なる複数の上記第2の鍵のうちの1つの鍵が上
    記第2のランダマイザに入力されることによって生成さ
    れるランダム化プログラムと、上記互いに異なる複数の
    上記第2の鍵のうちの他の鍵が上記第2のランダマイザ
    に入力されることによって生成されるランダム化プログ
    ラムとは異なり、 同一の鍵を上記第1のランダマイザと上記第2のランダ
    マイザとに入力して生成されるランダム化マイクロプロ
    セッサとランダム化プログラムとによって構成されるラ
    ンダム化システムの機能は、上記マイクロプロセッサと
    上記プログラムとによって構成される上記システムの機
    能と同じであることを特徴とするマイクロプロセッサを
    用いたランダム化システム。
  5. 【請求項5】 請求項3において、 上記第1のランダマイザは、LFSRにおけるEXOR
    回路の配置位置、個数を設定する手段であり、 上記第2のランダマイザは、上記第1のランダマイザが
    出力するアドレスに応じて、プログラムを構成する各命
    令の配列を代える手段であることを特徴とするマイクロ
    プロセッサを用いたランダム化システム。
  6. 【請求項6】 請求項3において、 上記ランダム化マイクロプロセッサは、FPGAである
    ことを特徴とするマイクロプロセッサを用いたランダム
    化システム。
JP9367296A 1997-12-25 1997-12-25 マイクロプロセッサを用いたシステムのランダム化方法およびその装置 Pending JPH11191065A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP9367296A JPH11191065A (ja) 1997-12-25 1997-12-25 マイクロプロセッサを用いたシステムのランダム化方法およびその装置
EP98310514A EP0929040A3 (en) 1997-12-25 1998-12-21 Microprocessor with data randomizing
US09/219,953 US6526511B1 (en) 1997-12-25 1998-12-23 Apparatus and method for modifying microprocessor system at random and maintaining equivalent functionality in spite of modification, and the same microprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9367296A JPH11191065A (ja) 1997-12-25 1997-12-25 マイクロプロセッサを用いたシステムのランダム化方法およびその装置

Publications (1)

Publication Number Publication Date
JPH11191065A true JPH11191065A (ja) 1999-07-13

Family

ID=18488968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9367296A Pending JPH11191065A (ja) 1997-12-25 1997-12-25 マイクロプロセッサを用いたシステムのランダム化方法およびその装置

Country Status (1)

Country Link
JP (1) JPH11191065A (ja)

Similar Documents

Publication Publication Date Title
Cheng et al. A partial scan method for sequential circuits with feedback
US5831866A (en) Method and apparatus for removing timing hazards in a circuit design
US20060242385A1 (en) Dynamically reconfigurable processor
Fallah et al. Functional vector generation for HDL models using linear programming and 3-satisfiability
Ghosh et al. A fast and low cost testing technique for core-based system-on-chip
Gschwind et al. FPGA prototyping of a RISC processor core for embedded applications
US6301553B1 (en) Method and apparatus for removing timing hazards in a circuit design
EP1964266B1 (en) A method for multi-cycle clock gating
Slobodová et al. A flexible formal verification framework for industrial scale validation
Devadas Delay test generation for synchronous sequential circuits
Sklyarov Reconfigurable models of finite state machines and their implementation in FPGAs
Bhandari et al. Exploring eFPGA-based redaction for IP protection
Hulgaard et al. Equivalence checking of combinational circuits using boolean expression diagrams
Pundir et al. Secure high-level synthesis: Challenges and solutions
Wagner Hardware verification
Sidhu et al. Genetic programming using self-reconfigurable FPGAs
US20110154062A1 (en) Protection of electronic systems from unauthorized access and hardware piracy
Jiang et al. PyH2: Using PyMTL3 to create productive and open-source hardware testing methodologies
US7213220B2 (en) Method for verification of gate level netlists using colored bits
Monahan et al. Symbolic modeling and evaluation of data paths
Kishinevsky et al. Partial-scan delay fault testing of asynchronous circuits
KR20070097051A (ko) 동적으로 재구성 가능한 프로세서
Drechsler Verification of multi-valued logic networks
JPH11191065A (ja) マイクロプロセッサを用いたシステムのランダム化方法およびその装置
Golubcovs et al. STG-based resynthesis for balsa circuits

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040827