JP2000056963A - マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体 - Google Patents

マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体

Info

Publication number
JP2000056963A
JP2000056963A JP10235034A JP23503498A JP2000056963A JP 2000056963 A JP2000056963 A JP 2000056963A JP 10235034 A JP10235034 A JP 10235034A JP 23503498 A JP23503498 A JP 23503498A JP 2000056963 A JP2000056963 A JP 2000056963A
Authority
JP
Japan
Prior art keywords
microprocessor
memory
bit
program
data
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
JP10235034A
Other languages
English (en)
Inventor
Masami Urano
正美 浦野
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 JP10235034A priority Critical patent/JP2000056963A/ja
Priority to EP98310514A priority patent/EP0929040A3/en
Priority to US09/219,953 priority patent/US6526511B1/en
Publication of JP2000056963A publication Critical patent/JP2000056963A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 プログラムを読み取られても、マイクロプロ
セッサの動作を解析されないように、メモリ上およびバ
ス上のプログラムの解析が困難であるマイクロプロセッ
サシステム、マイクロプロセッサ動作解析防止方法およ
びマイクロプロセッサ動作解析防止プログラムを記録し
た記録媒体を提供するものである。 【解決手段】 マイクロプロセッサと、上記マイクロプ
ロセッサで実行可能なプログラム、データのうちの少な
くとも一方を保存するメモリと、上記マイクロプロセッ
サと上記メモリとを接続するアドレスバスとデータバス
とによって構成されているシステムにおいて、上記マイ
クロプロセッサのデータバスの端子のビット順と上記メ
モリのデータバスの端子のビット順とを変えるものであ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ICカード等に用
いるマイクロプロセッサに関するものである。
【0002】
【従来の技術】図19は、従来のマイクロプロセッサシ
ステムMSの構成の一例を示す図である。
【0003】ここでは、8ビットのマイクロプロセッサ
であるZ80を例にとって説明するが、さらに多ビット
のマイクロプロセッサを使用した場合も、上記の場合と
同様に考えることができる。
【0004】従来のマイクロプロセッサシステムMS
は、マイクロプロセッサ4とメモリ1とによって構成さ
れ、マイクロプロセッサ4のアドレスバス端子とメモリ
1のアドレスバス端子とがアドレスバスによって接続さ
れ、マイクロプロセッサ4のデータバス端子4tとメモ
リ1のデータバス端子1tとがデータバス2によって接
続されている。
【0005】図20は、上記従来例におけるマイクロプ
ロセッサのデータバス端子とメモリのデータバス端子と
の接続を示す図である。
【0006】上記従来例において、マイクロプロセッサ
4側のデータバス2のMSBの配線D7とメモリ1側の
データバスのMSBの配線D7とが接続されている。配
線D6、D5、…D0のそれぞれも、上記と同様に、同
じビット順同士が接続されている。
【0007】図21は、従来例におけるメモリ1の内容
を示す図である。
【0008】マイクロプロセッサ4が実行するプログラ
ムは、図21に示すように、メモリ1中に保存され、こ
こでは、8ビットマイクロプロセッサ4であるZ80を
例にとって説明するが、他のマイクロプロセッサでも、
上記と同様である。
【0009】ここに示した例では、0番地に16進数で
31(以下、16進数で示す)(00110001)、
1番地にFF、2番地に7F、3番地に06等が格納さ
れている。また、4番地以降にも、上記と同様に、プロ
グラムが格納されている。これらは、Z80の機械語で
は、LD SP,7FFF、LD B,11等を示して
いる。
【0010】マイクロプロセッサ4がリセット信号によ
りリセットされ、次にリセットが解除されると、マイク
ロプロセッサ4はアドレスバスに0を出力する。このデ
ータをアドレスとして、メモリ1がその0番地の内容3
1をデータバス2に出力すると、マイクロプロセッサ4
は、そのデータを内部に取り込んでデコードし、さらに
オペランドを取得するために、1、2をアドレスバスに
出力し、それぞれの番地の内容のFF、7Fをメモリ1
から読み出す。
【0011】マイクロプロセッサ4は、これらの読み出
されたデータをLD SP,7FFFという命令である
と解釈し、自分自身のSPに7FFFを設定する。その
後、次の命令を取得するために、4をアドレスバスに出
力し、メモリ1の4番地の内容の06を読み出す。以上
のようにして、マイクロプロセッサ4は順次アドレスを
出力し、メモリ1の該当する番地の内容を読み出して命
令を実行していく。
【0012】上記のように、従来のマイクロプロセッサ
4では、データバス2を介して、メモリ1の内容を順次
読み出し、その値をマイクロプロセッサ4内部で解釈
し、そのデータに対応する命令を順次実行する。プログ
ラム自体は、実行する順番で、メモリ1上に格納されて
いる。また、各番地には、プログラムの各ステップの命
令コードが格納され、メモリ1のMSB側(ここではビ
ット7とする)に命令コードのMSB(ビット7)が格
納され、メモリ1のビット6には命令コードのビット6
が格納され、同様に、LSBまで順番に格納されてい
る。
【0013】ところで、近年ICカードの応用分野が拡
大しつつあるが、これにつれてICカードのセキュリテ
ィの問題が重視されている。ICカード内に納められて
いる機密情報を解読しようとする場合、マイクロプロセ
ッサ4の論理回路、プログラムを容易に解読することが
できると、この情報を元に内部を解析し、機密情報を解
読される可能性がある。
【0014】
【発明が解決しようとする課題】従来のマイクロプロセ
ッサ4のように、プログラムがメモリ1上に順番に、か
つ各ワード内でもビット順に格納されている場合、該当
するメモリセルのデータを順番に読み取ることによって
プログラムが容易に解読される可能性がある。
【0015】また、上記のように、プログラムはメモリ
1からデータバス2を介してマイクロプロセッサ4に送
られ、この場合、メモリ1のデータを解析しなくても、
データバス2を観測することによって、プログラムを順
次読み取ることができ、これをもとに動作を容易に解析
される可能性がある。
【0016】本発明は、プログラムを読み取られても、
マイクロプロセッサの動作を解析されないように、メモ
リ上およびバス上のプログラムの解析が困難であるマイ
クロプロセッサシステム、マイクロプロセッサ動作解析
防止方法およびマイクロプロセッサ動作解析防止プログ
ラムを記録した記録媒体を提供するものである。
【0017】
【課題を解決するための手段】本発明は、マイクロプロ
セッサと、上記マイクロプロセッサで実行可能なプログ
ラム、データのうちの少なくとも一方を保存するメモリ
と、上記マイクロプロセッサと上記メモリとを接続する
アドレスバスとデータバスとによって構成されているシ
ステムにおいて、上記マイクロプロセッサのデータバス
の端子のビット順と上記メモリのデータバスの端子のビ
ット順とを変えるものである。
【0018】
【発明の実施の形態および実施例】図1は、本発明の第
1の実施例であるマイクロプロセッサシステムMS1を
示す図である。
【0019】マイクロプロセッサシステムMS1は、基
本的には、従来例と同様のシステムであるが、データバ
ス20とマイクロプロセッサ40のデータバス端子40
tとの間に、ビット順入れ換えブロック30が接続され
ている点が、上記従来例とは異なる。
【0020】メモリ10側において、データバス20の
各ビットが、従来例と同様に、メモリ10のデータバス
端子10tの同じビットに順番に接続されている。ま
た、マイクロプロセッサ40のアドレスバスの端子にお
けるビット順と、メモリ10のアドレスバスの端子にお
けるビット順とは、同じ順序で接続されている。つま
り、アドレスに関して、ビット順入れ換えブロックが設
けられていない。
【0021】図2は、上記実施例におけるビット順入れ
換えブロック30の具体例を示す図である。
【0022】図2に示す例では、ビット順入れ換えブロ
ック30によって、マイクロプロセッサ40のデータバ
ス端子40t側の配線D7をメモリ10のデータバス端
子10t側の配線D5へ入れ換え、以下それぞれ、D6
をD2へ、D5をD1へ、D4をD6へ、D3をD0
へ、D2をD4へ、D1をD3へ、D0をD7へ入れ換
えて接続している。
【0023】なお、図2では、1種類の接続法が記載さ
れいるが、データバス20の各ビットと、マイクロプロ
セッサ40のデータバス端子40tの各ビットとを、
1:1に接続するものであれば、図2に示すブロック3
0における接続法以外の接続法を採用するようにしても
よい。
【0024】図3は、上記実施例におけるメモリ10に
格納すべきデータの例を示す図である。
【0025】上記実施例では、メモリ10のデータバス
端子10tのビット順と、マイクロプロセッサ40のデ
ータバス端子40tのビット順とが互いに異なるので、
従来と同様の命令コードをメモリ10に格納しても、マ
イクロプロセッサ40が正常には動作しない。
【0026】つまり、メモリ10の0番地に、従来例と
同様に、たとえば、31(00100001)を格納し
ても、ビット順入れ換えブロック30によって、データ
が入れ換えられ、マイクロプロセッサ40のデータバス
端子40tでは8C(10001000)になり、マイ
クロプロセッサ40は、これをADC A,Hという命
令と解釈する。したがって、正常に動作させるために
は、命令コードのビット順を予め入れ換えた後に、メモ
リ10に格納する必要がある。この場合、0番地にデー
タC2を格納し、1番地にデータFFを格納し、2番地
にデータDFを格納し、以下各番地に、データ18、C
0、19、0A、88、B4、F4を格納する。
【0027】図4は、メモリ10のデータバス端子10
tにおけるプログラムのビット順と、マイクロプロセッ
サ40のデータバス端子40tにおけるプログラムのビ
ット順とが、どのように変換されているかを具体的に示
す図である。
【0028】メモリ10のデータバス端子10tに、0
番地のデータとして、10000010(C2)のデー
タが出力されたとすると、各ビットはビット順入れ換え
ブロック30を介して、マイクロプロセッサ40のデー
タバス端子40tに到達し、その値はビット7から順番
に00100001(31)になり、LD SP,nn
(nnは16bit の値)という命令であり、この命令コ
ードは、従来例における命令コードと同じ命令コードで
ある。
【0029】ここで、まず、元となるプログラムにおけ
る各ワード内のビット順を予め入れ換え、このようにビ
ット順を入れ換えたデータを、メモリ10に格納してお
く。マイクロプロセッサ40が、従来例と同様に各番地
のデータを順次読み出し、このデータ読み出し時に、メ
モリ10のデータバス端子10tや、データバス20に
出現するデータのビット順は、元のプログラムのビット
順とは入れ替わっているので、データバス20に出現す
るデータをマイクロプロセッサ40がそのまま実行して
も、元のプログラムと同じ動作をすることはできない。
【0030】すなわち、第三者がメモリ10の内容や、
データバス20の内容を何らかの方法で観測し、マイク
ロプロセッサ40の動作を解析しようとしても、メモリ
10に格納されているデータや、データバス20上のデ
ータは、そのビット順が入れ換えられたデータであり、
元のプログラムのビット順とは異なっているので、元の
プログラムの動作を解析することは困難である。
【0031】ところが、データバス20に出現するデー
タが、ビット順入れ換えブロック30を介して、マイク
ロプロセッサ40のデータバス端子40tに到達する
と、ビット順入れ換えブロック30で各ワード内のビッ
ト順が入れ換えられ、その後、マイクロプロセッサ40
に到達するので、マイクロプロセッサ40のデータバス
端子40tでは元のプログラムと同じビット順になる。
したがって、マイクロプロセッサ40は元のプログラム
と同じ動作を実行することができる。
【0032】図5は、上記実施例におけるビット順入れ
換えブロック30の具体例を示す図である。
【0033】ビット順入れ換えブロック30は、1層メ
タル配線と2層メタル配線とを有し、1層メタル配線と
2層メタル配線とが基板を挟んで配置されているブロッ
クである。なお、図5において、1層メタル配線が水平
に描かれ、2層メタル配線が垂直に描かれている。そし
て、データバス20の各配線が1層メタル配線に接続さ
れ、マイクロプロセッサ40のデータバス端子40tに
接続されている各配線が2層メタル配線に接続されてい
る。
【0034】そして、1層メタル配線の配線D7は、デ
ータバス20の配線D7に接続され、1層メタル配線の
配線D6は、データバス20の配線D6に接続され、以
下、上記と同様に配線D0まで接続されている。また、
2層メタル配線の配線D7は、マイクロプロセッサ40
のデータバス端子40tの配線D7に接続され、2層メ
タル配線の配線D6は、マイクロプロセッサ40のデー
タバス端子40tの配線D6に接続され、以下、上記と
同様に配線D0まで接続されている。
【0035】そして、1層メタル配線と2層メタル配線
とが絶縁性の基板を挟んで重なる場所のうちで、所定の
場所にスルーホールを設け、このスルーホールによって
1層メタル配線と2層メタル配線とが接続され、これに
よって、ビット順入れ換えを行う。
【0036】つまり、ビット順入れ換えブロック30に
おいて、2層メタル配線の配線D7と1層メタル配線の
配線D5とが接続され、2層メタル配線の配線D6と1
層メタル配線の配線D2とが接続され、2層メタル配線
の配線D5と1層メタル配線の配線D1とが接続され、
2層メタル配線の配線D4と1層メタル配線の配線D6
とが接続され、2層メタル配線の配線D3と1層メタル
配線の配線D0とが接続され、2層メタル配線の配線D
2と1層メタル配線の配線D4とが接続され、2層メタ
ル配線の配線D1と1層メタル配線の配線D3とが接続
され、2層メタル配線の配線D0と1層メタル配線の配
線D7とが接続されている。
【0037】このように接続することによって、図4に
示すビット順入れ換えブロック30と同様なビット順の
入れ換えが行われる。
【0038】すなわち、ビット順入れ換えブロック30
は、マイクロプロセッサ40に接続されている第1のメ
タル配線と、メモリ10に接続されている第2のメタル
配線と、上記第1のメタル配線の所定部分と上記第2の
メタル配線の所定部分とを接続するスルーホールとを有
するブロックである。
【0039】なお、上記実施例は、1層メタル配線、2
層メタル配線、1層メタル配線と2層メタル配線との間
のスルーホールを用いた例であるが、これ以外の配線層
を用いて、ビット毎に異なった配線を行うブロックを採
用するようにしてもよい。
【0040】図6は、ビット順入れ換えブロック30の
代わりに使用することができるビット順入れ換えブロッ
ク30aの構成を示す図である。
【0041】ビット順入れ換えブロック30aは、Nチ
ャネルMOSトランジスタによって、データバス20の
配線の1つと、マイクロプロセッサ40のデータバス端
子40tの配線の1つとを接続するブロックである。
【0042】つまり、図6に示す例では、マイクロプロ
セッサ40側の配線D7とデータバス20側の配線D7
〜D0のそれぞれとに、NチャネルMOSトランジスタ
のソースとドレインとが接続されている。マイクロプロ
セッサ40側の配線D6とデータバス20側の配線D7
〜D0のそれぞれとに、上記と同様に、NチャネルMO
Sトランジスタが接続されている。配線D5〜D0のそ
れぞれについても、上記と同様に、NチャネルMOSト
ランジスタが接続されている。
【0043】そして、上記NチャネルMOSトランジス
タのうちの所定のNチャネルMOSトランジスタのゲー
ト電極に0または1(制御信号)を印加する(すなわ
ち、GNDまたはVDDに接続する)。これによって、
マイクロプロセッサ40のデータバス端子40tとデー
タバス20との接続を行い、所定のビット順入れ換えを
行う。
【0044】この場合、D0−D7に1を印加し(マイ
クロプロセッサ40側の配線D0とデータバス20側の
配線D7とを接続するNチャネルMOSトランジスタの
ゲート電極に1を印加し)、またD4−D6、D7−D
5、D2−D4、D1−D3、D6−D2、D5−D
1、D3−D0にも1を印加し(VDDに接続し)、そ
の他に、0を印加する(GNDに接続する)。これによ
って、図4に示すビット順入れ換えブロック30と同じ
ビット順の入れ換えを行うことができる。
【0045】つまり、ビット順入れ換えブロック30a
は、マイクロプロセッサに接続されている第1のメタル
配線と、上記メモリに接続されている第2のメタル配線
と、上記第1のメタル配線と上記第2のメタル配線との
相互間に接続されているMOSトランジスタと、上記M
OSトランジスタのゲートを制御する制御手段とを有
し、上記MOSトランジスタのゲートに所望の制御信号
を与えることによって、ビット順を入れ換えるビット順
入れ換えブロックの例である。
【0046】なお、ビット順入れ換えブロック30aで
は、NチャネルMOSトランジスタを使用しているが、
NチャネルMOSトランジスタの代わりにPチャネルM
OSトランジスタを使用し、ゲートに印加する信号(制
御信号)の1と0とを反転させるようにしてもよく、こ
れによって、ビット順入れ換えブロック30aにおける
動作と同様の動作を実現することができる。
【0047】さらに、PチャネルMOSトランジスタと
NチャネルMOSトランジスタとの両者を用いて、デー
タバス20の配線の1つと、マイクロプロセッサ40の
データバス端子40tの1つの配線とを接続し、Pチャ
ネルMOSトランジスタのゲートには、NチャネルMO
Sトランジスタのゲートに印加する制御信号の反転信号
を印加してもよく、これによっても、ビット順入れ換え
ブロック30aにおける動作と同様の動作を実現するこ
とができる。
【0048】また、ビット順入れ換えブロック30aに
使用されている各MOSトランジスタの制御信号を、メ
モリ10の所定領域に格納するようにしてもよい。
【0049】図7は、ビット順入れ換えブロック30a
に使用されている各MOSトランジスタの制御信号が、
メモリ10に格納されている例を示す図である。
【0050】メモリ10の0番地のビット7には、7−
0の制御信号(マイクロプロセッサ40側の配線D7と
データバス20側の配線D0との断続を制御する制御信
号)が格納され、ビット6には6−0の制御信号(マイ
クロプロセッサ40側の配線D6とデータバス20側の
配線D0との断続を制御する制御信号)が格納され、以
下、上記と同様にして、64ビットの制御信号が、メモ
リ10の0番地から7番地に格納されている。
【0051】図8は、図2に示したビット順の入れ換え
をするために、ビット順入れ換えブロック30aに供給
する制御信号を示す図である。
【0052】上記制御信号は、メモリ10の0番地から
7番地に格納されているデータであり、その0番地から
順に、00001000、00100000、0100
0000、00000010、00000100、10
000000、00010000、00000001が
格納されている。
【0053】図9は、図7に示すトランジスタの制御信
号を使用して、ビット順入れ換えブロック30aを制御
する場合に必要なメモリセルMCの具体例と、メモリセ
ルMCとトランジスタとの接続関係を示す図である。
【0054】メモリ10の各ビット内の所定のノード
と、対応するトランジスタのゲート電極とを接続するこ
とによって、所定のトランジスタをオンさせ、ビット順
の入れ換えを可能にする。なお、ここでは、メモリセル
MCとして1ポートのSRAMを示してあるが、1ポー
トのSRAMの代わりに、2ポートSRAM、EEPR
OM、ROM等を使用してもよく、このようにしても、
1ポートのSRAMを使用した場合の効果と同様の効果
を得ることができる。また、特にSRAMを使用し、そ
のSRAMに書き込むデータを変更すればビット順の入
れ換えが可能であるので、所定の時点で、上記SRAM
に書き込まれているデータを書き換えることによって、
ビット順の入れ換えの順番を変更することも可能であ
る。
【0055】図10は、上記実施例において、メモリ1
0に格納されるビット順変換プログラムの作成法の一例
を示す図である。
【0056】プログラムP1は、従来のマイクロプロセ
ッサ4で動作可能なプログラムであり、プログラムP2
は、上記実施例におけるマイクロプロセッサ40で動作
可能なプログラムであり、プログラムPは、プログラム
P1をプログラムP2に変換するビット順変換プログラ
ムである。つまり、同一ワード内のビット位置を変換す
るビット順変換プログラムPによって、元のプログラム
P1からプログラムP2を作成する。このビット順変換
プログラムPを格納するマスクROM61を作成し、こ
のマスクROM61をマイクロプロセッサ40と接続す
る。
【0057】また、ROMライタを用い、上記変換後の
プログラムP2をEPROM62やEEPROM63に
書き込み、これを上記実施例のマイクロプロセッサ40
と接続するようにしてもよい。
【0058】さらに、上記変換後のプログラムP2を読
込可能なローダープログラム、またはマイクロプロセッ
サ40で動作しているローダープログラムを使用し、上
記変換後のプログラムP2をRAMに読み込めば、上記
変換後のプログラムP2を実行することができる。さら
に、ローダープログラムまたはモニタプログラムがビッ
ト順変換機能を備えたものであれば、元のプログラムP
1を直接変換し、この変換後のプログラムP2をRAM
にロードし、マイクロプロセッサ40で実行するように
してもよい。
【0059】図11は、上記実施例において、ビット順
変換プログラムPによるビット順変換動作を示すフロー
チャートである。
【0060】上記ビット順変換プログラムPは、所定の
記録媒体に記録され、この記録されたビット順変換プロ
グラムを、マイクロプロセッサ40とは異なるコンピュ
ータで実行するものである。上記所定の記録媒体とし
て、図10に示すマスクROM61、EPROM62、
EEPROM63等と、図示しないFD、CD−ROM
等との2種類が考えられる。
【0061】まず、ビット順変換前のプログラムである
元のプログラムP1を1バイトを読み込み(S1)、読
み込んだ1バイトの中でビット位置の入れ換えを行う。
ここでは、図2に示すビット順入れ換えブロック30に
おけるビット順変換と同じ順で変換する場合を示してあ
る(S2)。すなわち、ビット7のデータをビット5に
変更し、ビット6のデータをビット2に変更し、ビット
5のデータをビット1に変更し、ビット4のデータをビ
ット6に変更し、ビット3のデータをビット0に変更
し、ビット2のデータをビット4に変更し、ビット1の
データをビット3に変更し、ビット0のデータをビット
7に変更し、これによって、新しいデータを1バイト作
成する。次に、このデータを書き出し(S3)、ファイ
ル全体の処理が終わっていなければ(S4)、さらに1
バイトのデータについて、上記と同様の処理(S1〜S
3)を実行する。
【0062】上記実施例において、ビット順変換プログ
ラムPの代わりに、ローダーまたはモニタプログラムを
使用するようにしてもよい。
【0063】つまり、上記マスクROM61、EPRO
M62、EEPROM63等と、図示しないFD、CD
−ROM等は、ビット順変換前のデータまたはプログラ
ムを所定バイト、読み込む読み込み手順と、上記読み込
んだ所定バイトの中でビット位置の入れ換えを行うビッ
ト位置入れ換え手順と、上記ビット位置の入れ換えが行
われたデータまたはプログラムを書き出す書き出し手順
とをコンピュータに実行させるマイクロプロセッサ動作
解析防止プログラムが記録されているコンピュータ読み
取り可能な記録媒体の例である。
【0064】図12は、本発明の第2の実施例であるマ
イクロプロセッサシステムMS2を示す図である。
【0065】マイクロプロセッサシステムMS2は、メ
モリ10と、データバス20と、マイクロプロセッサ4
1とを有するものである。マイクロプロセッサ41は、
マイクロプロセッサコア41cと、ビット順入れ換えブ
ロック30とを有するものである。
【0066】第1の実施例であるマイクロプロセッサシ
ステムMS1では、データバス20とマイクロプロセッ
サ40のデータバス端子40tとの間に、ビット順入れ
換えブロック30を接続してあるが、マイクロプロセッ
サシステムMS2では、マイクロプロセッサ41内にビ
ット順入れ換えブロック30を配置し、マイクロプロセ
ッサコア41cとデータバス端子41との間でビット順
が入れ換えられ、データバス端子10tとマイクロプロ
セッサ41のデータバス端子41tとは、同じビット順
で1:1に接続されている。
【0067】図13は、マイクロプロセッサシステムM
S2に使用されているビット順入れ換えブロック30の
具体例を示す図である。
【0068】マイクロプロセッサコア41cのデータバ
ス端子41ctの配線D7は、ビット順入れ換えブロッ
ク30を介して、マイクロプロセッサ41のデータバス
端子41tの配線D5に接続されている。
【0069】このデータバス端子41tの配線D5は、
データバス20の配線D5を介して、メモリ10のデー
タバス端子10tの端子D5に接続されている。すなわ
ち、マイクロプロセッサコア41cのデータバス端子4
1ctの配線D7は、メモリ10の配線D5に接続され
ている。
【0070】上記と同様に、マイクロプロセッサコア4
1cの配線D6は、マイクロプロセッサ41のデータバ
ス端子41tの配線D2に接続され、これはデータバス
20の配線D2を介して、メモリ10のデータバス端子
10tの配線D2に接続されている。また、上記と同様
に、マイクロプロセッサコア41cの各端子が、メモリ
10のデータバス端子10tの所定の端子に接続されて
いる。
【0071】上記のようにすると、マイクロプロセッサ
コア41cのデータバス端子41ctと、メモリ10の
データバス端子10tとの間で、図2に示す接続と同等
の接続を実現することができる。また、マイクロプロセ
ッサシステムMS2におけるビット順入れ換えブロック
30として、図5に示すビット順入れ換えブロック3
0、図6に示すビット順入れ換えブロック30aを使用
することができる。
【0072】図14は、従来のマイクロプロセッサの内
部におけるマイクロプロセッサコアと双方向バッファと
を示す図である。
【0073】マイクロプロセッサ41では、マイクロプ
ロセッサ41内部の論理回路とメモリとを有するマイク
ロプロセッサコア41cと、その端子を外部と接続する
入力バッファ、出力バッファ、双方向バッファ等とによ
って構成されている。図14では、説明に必要な双方向
バッファのみを示してある。上記双方向バッファは、通
常、トライステート出力バッファと入力バッファとで構
成され、入力端子Iは、トライステート出力バッファを
介して入出力端子IOに接続され、入出力端子IOは、
入力バッファを介して出力端子Oに接続されている。ま
た、制御端子IOCONTによって、トライステートバ
ッファは、出力またはハイインピーダンス状態に制御さ
れている。入力端子Iは、マイクロプロセッサコア41
cのデータ出力端子に接続され、出力端子Oは、マイク
ロプロセッサコア41cのデータ入力端子に接続され、
入出力端子IOは、マイクロプロセッサ41のデータバ
ス端子41tに接続されている。
【0074】図15は、図14に示すマイクロプロセッ
サ41において、図13に示す実施例を実現する具体的
な回路を示す図である。
【0075】図15では、双方向バッファとマイクロプ
ロセッサ41のデータバス端子41tとの間に、ビット
順入れ換えブロック30を置いたものである。
【0076】図16は、図14に示すマイクロプロセッ
サ41において、図13に示す実施例を実現する別の具
体的な回路を示す図である。
【0077】図16では、双方向バッファとマイクロプ
ロセッサコア41cとの間に、ビット順入れ換えブロッ
ク30を置いたものである。
【0078】図15、図16のいずれの方法によって
も、図2で示した場合と同様のビット順入れ換えが可能
になる。
【0079】図17は、本発明の第3の実施例であるマ
イクロプロセッサシステムMS3を示す図である。
【0080】マイクロプロセッサシステムMS3は、4
つのビット順入れ換えブロック31、32、33、34
を有する。つまり、マイクロプロセッサ42の内部にビ
ット順入れ換えブロック31が設けられ、マイクロプロ
セッサ42のデータバス端子42tとデータバス20と
の間にビット順入れ換えブロック32が設けられ、デー
タバス20とメモリ11のデータバス端子11tとの間
にビット順入れ換えブロック33が設けられ、メモリ1
1の内部にビット順入れ換えブロック34が設けられて
いる。
【0081】図18は、マイクロプロセッサシステムM
S3におけるビット順の入れ換えをより具体的に示す図
である。
【0082】ビット順入れ換えブロック31〜34にお
いて、それぞれ個別にビット順を入れ換え、マイクロプ
ロセッサコア42cのデータバス端子42ctとメモリ
コア11cのデータバス端子11ctとの間で、最終的
に、図2に示すビット順の入れ換えと同様のビット順の
入れ換えを行っている。
【0083】ここで、ビット順入れ換えブロック31〜
34のそれぞれの構成として、ビット順入れ換えブロッ
ク30、30aの構成を採用してもよく、また、各種ビ
ット順を入れ換える他の構成を採用するようにしてもよ
い。
【0084】また、マイクロプロセッサシステムMS3
において、4つのビット順入れ換えブロック31〜34
のうちで、少なくとも1つのビット順入れ換えブロック
を使用するようにしてもよい。この場合、各ブロック内
の入れ換えを適切にすることによって、任意の入れ換え
が可能になる。ただし、ビット順入れ換えブロック33
のみで構成した場合、またはビット順入れ換えブロック
34のみで構成した場合、またはビット順入れ換えブロ
ック33と34とで構成した場合、データバス20上に
おけるデータは、ビット順が正しく並べ替えられたデー
タになるので、メモリ11内のデータ観測を阻止するこ
とができるが、データバス20を観測されると、正しい
プログラムを読み出されてしまう。
【0085】
【発明の効果】本発明によれば、メモリの内容またはデ
ータバス上のデータを読み取られたとしても、第三者が
プログラムを解析することが困難であり、ICカード等
のプロセッサのセキュリティを向上させることができる
という効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1の実施例であるマイクロプロセッ
サシステムMS1を示す図である。
【図2】上記実施例中のビット順入れ換えブロック30
の具体例を示す図である。
【図3】上記実施例におけるメモリ10に格納すべきデ
ータの例を示す図である。
【図4】上記実施例において、メモリ10のデータバス
端子10tにおけるプログラムのビット順と、マイクロ
プロセッサ40のデータバス端子40tにおけるプログ
ラムのビット順とが、どのように変換されているかを具
体的に示す図である。
【図5】上記実施例中のビット順入れ換えブロック30
の具体例を示す図である。
【図6】ビット順入れ換えブロック30の代わりに使用
することができるビット順入れ換えブロック30aの構
成を示す図である。
【図7】ビット順入れ換えブロック30aに使用されて
いる各MOSトランジスタの制御信号が、メモリ10に
格納されている例を示す図である。
【図8】ビット順入れ換えブロック30aを使用し、図
2に示したビット順の入れ換えをするために、ビット順
入れ換えブロック30aに供給する制御信号を示す図で
ある。
【図9】図7に示すトランジスタの制御信号を使用し
て、ビット順入れ換えブロック30aを制御する場合に
必要なメモリセルMCの具体例と、メモリセルMCとト
ランジスタとの接続関係を示す図である。
【図10】上記実施例において、メモリ10に格納され
るビット順変換プログラムの作成法の一例を示す図であ
る。
【図11】上記実施例において、ビット順変換プログラ
ムPによるビット順変換動作を示すフローチャートであ
る。
【図12】本発明の第2の実施例であるマイクロプロセ
ッサシステムMS2を示す図である。
【図13】マイクロプロセッサシステムMS2に使用さ
れているビット順入れ換えブロック30の具体例を示す
図である。
【図14】従来のマイクロプロセッサの内部におけるマ
イクロプロセッサコアと双方向バッファとを示す図であ
る。
【図15】図14に示すマイクロプロセッサ41におい
て、図13に示す実施例を実現する具体的な回路を示す
図である。
【図16】図14に示すマイクロプロセッサ41におい
て、図13に示す実施例を実現する別の具体的な回路を
示す図である。
【図17】本発明の第3の実施例であるマイクロプロセ
ッサシステムMS3を示す図である。
【図18】マイクロプロセッサシステムMS3における
ビット順の入れ換えをより具体的に示す図である。
【図19】従来のマイクロプロセッサシステムMSの構
成の一例を示す図である。
【図20】上記従来例におけるマイクロプロセッサのデ
ータバス端子とメモリのデータバス端子との接続を示す
図である。
【図21】上記従来例におけるメモリ1の内容を示す図
である。
【符号の説明】
MS1〜MS3…マイクロプロセッサシステム、 10…メモリ、 10t…メモリのデータバス端子、 20…データバス、 30、31a、31、32、33、34…ビット順入れ
換えブロック、 40、41、42…マイクロプロセッサ、 40t、41t、42t…マイクロプロセッサのデータ
バス端子、 41c、42c…マイクロプロセッサコア、 P…ビット順変換プログラム、 P1…ビット順変換前のプログラム、 P2…ビット順変換後のプログラム。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサと、上記マイクロプ
    ロセッサで実行可能なプログラム、データのうちの少な
    くとも一方を保存するメモリと、上記マイクロプロセッ
    サと上記メモリとを接続するアドレスバスとデータバス
    とによって構成されているマイクロプロセッサシステム
    において、 上記マイクロプロセッサが処理する上記データまたは上
    記プログラムのビット順と、上記メモリに格納されてい
    る上記データまたは上記プログラムのビット順とを異な
    らせることを特徴とするマイクロプロセッサ動作解析防
    止方法。
  2. 【請求項2】 請求項1において、 上記メモリに格納されている上記データまたは上記プロ
    グラムの同一ワード内におけるビット順を入れ換えるこ
    とによって、上記マイクロプロセッサが処理する上記デ
    ータまたは上記プログラムのビット順と同一になること
    を特徴とするマイクロプロセッサ動作解析防止方法。
  3. 【請求項3】 請求項1において、 上記マイクロプロセッサに接続されている第1のメタル
    配線と、上記メモリに接続されている第2のメタル配線
    と、上記第1のメタル配線と上記第2のメタル配線との
    相互間に接続されているMOSトランジスタと、上記M
    OSトランジスタのゲートを制御する制御手段とによっ
    てビット順入れ換えブロックが構成され、上記MOSト
    ランジスタのゲートに所望の制御信号を与えることによ
    って、ビット順を入れ換えることを特徴とするマイクロ
    プロセッサ動作解析防止方法。
  4. 【請求項4】 請求項1において、 上記メモリのデータバス端子と上記マイクロプロセッサ
    のデータバス端子との接続順に基づいて、上記マイクロ
    プロセッサのプログラムの各ワード内のビット順を変更
    することを特徴とするマイクロプロセッサ動作解析防止
    方法。
  5. 【請求項5】 ビット順変換前のデータまたはプログラ
    ムを所定バイト、読み込む読み込み手順と;上記読み込
    んだ所定バイトの中でビット位置の入れ換えを行うビッ
    ト位置入れ換え手順と;上記ビット位置の入れ換えが行
    われたデータまたはプログラムを書き出す書き出し手順
    と;をコンピュータに実行させるマイクロプロセッサ動
    作解析防止プログラムが記録されているコンピュータ読
    み取り可能な記録媒体。
  6. 【請求項6】 マイクロプロセッサと、上記マイクロプ
    ロセッサで実行可能なプログラム、データのうちの少な
    くとも一方を保存するメモリと、上記マイクロプロセッ
    サと上記メモリとを接続するアドレスバスとデータバス
    とによって構成されているマイクロプロセッサシステム
    において、 上記マイクロプロセッサが処理するプログラム、データ
    のうちの少なくとも一方のビット順と、上記メモリに格
    納されているプログラム、データのうちの少なくとも一
    方のビット順とを異ならせるビット順入れ換えブロック
    を有することを特徴とするマイクロプロセッサシステ
    ム。
  7. 【請求項7】 請求項6において、 上記ビット順入れ換えブロックは、上記マイクロプロセ
    ッサのデータバス端子と上記データバスとの間の領域、
    または、マイクロプロセッサコアとマイクロプロセッサ
    のデータバス端子との間の領域に設けられていることを
    特徴とするマイクロプロセッサシステム。
  8. 【請求項8】 請求項6において、 上記メモリは、上記ビット順入れ換えブロックによっ
    て、ワード内のビットが入れ換えられたプログラム、デ
    ータのうちの少なくとも一方を格納するメモリであるこ
    とを特徴とするマイクロプロセッサシステム。
  9. 【請求項9】 請求項6において、 上記ビット順入れ換えブロックは、 上記マイクロプロセッサに接続されている第1のメタル
    配線と;上記メモリに接続されている第2のメタル配線
    と;上記第1のメタル配線の所定部分と上記第2のメタ
    ル配線の所定部分とを接続するスルーホールと;を有す
    るブロックであることを特徴とするマイクロプロセッサ
    システム。
  10. 【請求項10】 請求項6において、 上記ビット順入れ換えブロックは、 上記マイクロプロセッサに接続されている第1のメタル
    配線と;上記メモリに接続されている第2のメタル配線
    と;上記第1のメタル配線と上記第2のメタル配線との
    相互間に接続されているMOSトランジスタと;上記M
    OSトランジスタのゲートを制御する制御手段と;を有
    し、上記MOSトランジスタのゲートに所望の制御信号
    を与えることによって、ビット順を入れ換えるブロック
    であることを特徴とするマイクロプロセッサシステム。
  11. 【請求項11】 請求項10において、 上記制御信号は、上記メモリの所定のワード内の所定の
    ビットに格納されていることを特徴とするマイクロプロ
    セッサシステム。
  12. 【請求項12】 請求項6において、 上記メモリに格納されているプログラムまたはデータ
    は、同一ワード内のビット順を入れ換えることができる
    プログラムによって生成されたものか、または上記ビッ
    ト順を入れ換えることができる機能を持つプログラムに
    よって、上記メモリ上にロードされているものであるこ
    とを特徴とするマイクロプロセッサシステム。
JP10235034A 1997-12-25 1998-08-06 マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体 Pending JP2000056963A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10235034A JP2000056963A (ja) 1998-08-06 1998-08-06 マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体
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
JP10235034A JP2000056963A (ja) 1998-08-06 1998-08-06 マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2000056963A true JP2000056963A (ja) 2000-02-25

Family

ID=16980115

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10235034A Pending JP2000056963A (ja) 1997-12-25 1998-08-06 マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2000056963A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003098443A1 (en) * 2002-05-21 2003-11-27 Matsushita Electric Industrial Co., Ltd. Circuit apparatus and method for operating the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003098443A1 (en) * 2002-05-21 2003-11-27 Matsushita Electric Industrial Co., Ltd. Circuit apparatus and method for operating the same
US7446413B2 (en) 2002-05-21 2008-11-04 Matsushita Electric Industrial Co., Ltd. Circuit apparatus and method for operating the same

Similar Documents

Publication Publication Date Title
KR940002754B1 (ko) 반도체 집적회로 장치의 제어방법
JP2000056963A (ja) マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体
JPH0765139A (ja) Icメモリカード
JPS6325748A (ja) 電子回路の制御方法およびこの制御方法を実施するための回路
JPS642177Y2 (ja)
JP2000056964A (ja) マイクロプロセッサシステム、マイクロプロセッサ動作解析防止方法およびマイクロプロセッサ動作解析防止プログラムを記録した記録媒体
JP2000029790A (ja) データセキュリティシステム
JPS62279598A (ja) 読出し専用メモリ
JPH11297066A (ja) 半導体装置
JP3931593B2 (ja) データ書込回路
JP4663859B2 (ja) プログラム変換装置
JP2530810B2 (ja) 記憶素子及びその使用方法
JP3057749B2 (ja) 入出力ポート
JPH07122814B2 (ja) シ−ケンスコントロ−ラ
JPH058457B2 (ja)
JPS6364141A (ja) 記憶装置
JPS6329295B2 (ja)
JPS62151968A (ja) マイクロコンピユ−タ
JPH10326186A (ja) プログラム記憶装置およびその記憶方法
JPH0855011A (ja) 異機種間データ変換方法
JPS59198598A (ja) 読み出し専用メモリ
JPH0224748A (ja) アドレス切替回路
JPS58192071A (ja) 機密保持回路
JPS6313200A (ja) 集積回路
JPH01248258A (ja) 入出力ポート多重化方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040521