JP3642533B2 - Program card and computer using the same - Google Patents
Program card and computer using the same Download PDFInfo
- Publication number
- JP3642533B2 JP3642533B2 JP08706394A JP8706394A JP3642533B2 JP 3642533 B2 JP3642533 B2 JP 3642533B2 JP 08706394 A JP08706394 A JP 08706394A JP 8706394 A JP8706394 A JP 8706394A JP 3642533 B2 JP3642533 B2 JP 3642533B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- address value
- program information
- instruction
- card
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
【0001】
【産業上の利用分野】
この発明は、プログラムカード及びこれを用いた計算機に関するものである。
【0002】
【従来の技術】
近年、集積回路(LSI,VLSI等を含む。以下「IC等」という)に対する集積化技術の発達はめざましく、カートリッジ又は薄型のカード(以下「カード等」という)内にROM型又はRAM型のIC等を設け、これに計算の手順を示すプログラムと計算データとを(以下「プログラム情報」という)記憶させることにより、容易に着脱可能な計算機の主記憶装置や補助記憶装置(以下「記憶装置」という)として利用することが一般的となっている。
【0003】
ところで、このIC等に記憶されるプログラム情報等は、2進数で表現されており、このプログラム情報は、一括して計算機内のメインメモリに読み込まれる。そして、このメインメモリから計算機の中央処理装置(以下「CPU」という)が逐次読み出しながら、その内容を解釈して命令を実行する。このように、プログラム情報を計算機の記憶装置の中に読み込んで、それを逐次読み出しながら、解釈実行していく計算機をノイマン(Neumann )型計算機と呼ばれている。
【0004】
しかしながら、上記ノイマン型計算機における従来の着脱可能な記憶装置では、計算機本体のCPUとの間で所定の信号線を介してプログラム情報の通信を行う必要がある。従って、この信号線を介してあたかもCPUがプログラム情報を読み出すのと同じように、ユーザはプログラム解読装置によりプログラム情報を読み出してプログラム情報の解読を行うことが可能である。このことは、たとえIC化されていても、プログラム情報を信号線を介して通信する限り、プログラム情報の解読が可能であることを意味し、莫大な開発費をかけて生産したプログラム情報を、第三者による不正な複製又は改造から保護することが困難であった。
【0005】
【発明が解決しようとする課題】
上記ノイマン型計算機における従来の着脱可能な記憶装置では、計算機本体のCPUとの間で所定の信号線を介してプログラム情報の通信を行う必要がある。従って、この信号線を介してあたかもCPUがプログラム情報を読み出すのと同じように、ユーザはプログラム解読装置によりプログラム情報を読み出してプログラム情報の解読を行うことが可能である。このことは、たとえIC化されていても、プログラム情報を信号線を介して通信する限り、プログラム情報の解読が可能であることを意味し、莫大な開発費をかけて生産したプログラム情報を、第三者による不正な複製又は改造等から保護することが困難であった。
そこで、本発明は、プログラム情報の不正な複製又は改造等を困難とする記憶装置及びこれを用いた計算機を提供するものである。
【0006】
【課題を解決するための手段】
第1発明のうち請求項1に係る発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記計算機本体から送出される前記アドレスを示すアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報を前記計算機本体に送出する手段とを備えたプログラムカードである。
【0007】
ここで、プログラムカード内の単位記憶セル群は、以下の実施例中、プログラム記憶装置に対応する。そして、外部からのアドレス指定信号(アドレス値)及び読み出し/書き込み信号により、アドレス指定信号の示すアドレスの割り当てられた単位記憶セルからプログラム情報を読み出し、また、単位記憶セルに書き込むことができる
また、第1発明のうち請求項2に係る発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報を前記計算機本体に送出する手段とを備え、前記計算機本体は、前記アドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、前記プログラム情報送出手段から送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【0008】
第2発明のうち請求項3に係る発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記計算機本体から送出された前記アドレスを示すアドレス値を、所定の暗号キーに基づいて復号化する復号化手段と、この手段により復号化されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と、この手段により読出されたプログラム情報のうち、命令コード部とアドレスオペランド部とを識別する手段と、この手段により識別されたアドレスオペランド部を、所定の暗号キーに基づいて暗号化する暗号化手段と、前記命令コード部及び前記暗号化手段により暗号化されたアドレスオペランド部を前記計算機本体に送出するプログラム情報送出手段とを備えたプログラムカードである。
【0009】
また、第2発明のうち請求項4に係る発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値を所定の暗号キーに基づいて復号化する復号化手段と、この手段により復号化されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報のうち、命令コード部とアドレスオペランド部とを識別する手段と、この手段により識別されたアドレスオペランド部を、所定の暗号キーに基づいて暗号化する暗号化手段と、前記命令コード部及び前記暗号化手段により暗号化されたアドレスオペランド部を前記計算機本体に送出するプログラム情報送出手段とを備え、前記計算機本体は、前記アドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレスオペランド部に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【0010】
第3発明のうち請求項5に係る発明は、アドレスの付された単位記憶セル群にプログラム情報が記憶され、計算機本体からの指令により所定のインターフェースを介して前記プログラム情報が読出されるプログラムカードにおいて、前記アドレスを示すアドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報が所定の条件を満たす場合に、前記アドレス値保持手段に保持されているアドレス値を変更するアドレス値変更手段と、前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備えたプログラムカードである。
【0011】
また、第3発明のうち請求項6に係る発明は、アドレスの付された単位記憶セル群にプログラム情報を記憶したプログラムカードと、このプログラムカードに記憶されたプログラム情報を所定のインターフェースを介して読み出して、解釈・実行する計算機本体とを備えたプログラムカード及びこれを用いた計算機であって、前記プログラムカードは、前記アドレスを示すアドレス値を保持するアドレス値保持手段と、この手段に保持されたアドレス値に従って前記単位記憶セルからプログラム情報を読出すプログラム情報読出手段と、この手段により読出されたプログラム情報が所定の条件を満たす場合に、前記アドレス値保持手段に保持されているアドレス値を変更するアドレス値変更手段と、前記プログラム情報読出手段により読出されたプログラム情報を前記計算機本体に送出するプログラム情報送出手段とを備え、前記計算機本体は、前記プログラム情報送出手段により送出されたプログラム情報に基づいて命令制御を実行する命令制御実行手段とを備えたプログラムカード及びこれを用いた計算機である。
【0012】
【作用】
第1発明によれば、プログラム情報を格納したプログラム記憶装置と機械語命令読み出し装置とをプログラムカード内に設けて、1ステップずつ計算機本体に機械語命令を送出する。これによって、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。
【0013】
第2発明によれば、プログラムカード内に暗号化装置、暗号キー発生装置及び復号化装置を設け、プログラムカウンタの内容を暗号化装置により暗号化する。ここで、生成される暗号キーは毎回変化するので、もとのアドレス値が同じであっても毎回異なる暗号化されたアドレス値になる。従って、外部からはプログラム上のどの場所に戻ったのかがわからなくなり、プログラムの実行制御を外部から隠ぺいすることができる。
【0014】
第3発明によれば、プログラムカウンタ及びこのプログラムカウンタの内容を制御するプログラムカウンタ計算装置をプログラムカード内に設けているので、プログラムの実行制御が計算機本体と完全に分離されることになる。これにより、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、JUMP命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【0015】
【実施例】
以下、図面を参照しながら本発明の一実施例について説明する。
図1は、本発明に係るプログラムカード及びこれを用いた計算機の適用対象を示す図である。同図に示すように、本発明は、プログラム情報が記憶されたプログラムカード1をプログラムカードリーダ2に装着することにより計算機本体3からアクセス可能とし、該プログラム情報に従ってプログラムを実行するものに関するものである。
【0016】
ここで、プログラムカード1は、内部に設けられたROMやRAM、EEPROM等の集積回路によりプログラム情報を記憶することが可能ないわゆるICカードであり、カード型のみならずカートリッジ型のものも含まれるものとする。また、このプログラムカード1は、外部ケースにより内部の集積回路が保護されているが、外部ケースを開封するとICカードの内容が消失するような構造になっている方が好ましい。
【0017】
また、プログラムカードリーダ2は、プログラムカード1を着脱することができ、装着されたプログラムカード1内に記憶されたプログラム情報を読出し、また、計算機本体3からのプログラム情報を書込む場合の入出力装置の役目を果たしている。
【0018】
計算機本体3は、キーボートやディスプレイ、補助記憶装置、主記憶装置、中央処理装置等から構成され、通常の計算機の機能を備えているものとし、本発明ではそれに加え、プログラムカードリーダ2を介して後述するプログラムカード1とアクセスするための機能を備えている。
[第1発明]
図2は、第1発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【0019】
本発明は、プログラムカード内にプログラム情報を記憶し、計算機本体からの読み出し要求により、プログラムカード内に格納されたプログラム情報をその都度計算機本体に送出する
即ち、同図において、命令制御装置201は、プログラムカウンタ(PC)202の内容(アドレス値)をプログラムリーダ2を介してプログラムカード1内の機械語命令読み出し装置203に送出する。機械語命令読み出し装置203は、アドレス値に従ってプログラム記憶装置204から機械語命令を読み出し、これをプログラムリーダ2を介して計算機本体3の命令解釈実行装置205に送出する。命令解釈実行装置は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置206をアクセスする。
【0020】
以上のような本発明に係るプログラムカード及びこれを用いた計算機の構成をさらに詳述する。
図3は、第1発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図である。
【0021】
同図において、計算機本体に設けられている演算装置(ALU)301は、Lバス及びRバスで与えられたデータに対し演算指定により指定された演算を行って、演算結果をOバスに出力する。
【0022】
条件コードレジスタ(CCR)302は、演算装置301で行われた演算結果の状態(例えば、N,Z,V,C)を後述する命令制御装置201からの指定によりセットすることができる。
【0023】
アキュムレータレジスタ(ACC)303は、いわゆる作業用レジスタであり、Oバスから取り込んだデータをLバスに出力することができる。
上述したプログラムカウンタ202は、命令制御装置201からの指令により、そのアドレス値を1増加することができるようになっている。プログラムカウンタ202の内容は、Lバス及びA1 バスに出力することができるようになっている。
【0024】
主記憶番地レジスタ(MAR)304、読み出し用データレジスタ(RDR)305、書き込み用データレジスタ(WDR)306は、それぞれ主記憶装置の読み書きに使われる。
【0025】
命令レジスタ(IR)307は、命令コード部とオペランド部とから構成される機械語命令をセットすることができ、命令コード部は命令制御装置201に、オペランド部はLバスに送出される。
【0026】
命令制御装置201は、命令コード部や条件コードレジスタ302の内容により、上記各レジスタから各バスへの出力、各バスから各レジスタへの入力、演算の指定、主記憶装置206の読み書き制御等を行うことができる。このための制御信号線は、命令制御装置201から各レジスタに配線されているが、ここでは省略する。
【0027】
一方、プログラムカード内に設けられている機械語命令読み出し装置203は、計算機本体に設けられたプログラムカウンタ202からアドレス値を取り込み、これをプログラム記憶装置204に送出する。同時に、機械語命令読み出し装置203は、そのアドレス値を受けることによって、読み出し信号線308aを読み出し状態(例えば、「H」)に、選択信号線309aをアクティブ(例えば、「L」)にして、プログラム記憶装置204からデータを読み出し、これを計算機本体の命令レジスタ307に送出する。
【0028】
以上のように構成された本発明に係るプログラムカーと及びこれを用いた計算機は、以下のように動作する。
即ち、命令制御装置201は、まずプログラムカウンタ202の内容をA1 バスに出力する。A1 バスに出力されたアドレス値は、プログラムカードリーダ(図示せず)を介して命令読み出し装置203に送出される。命令読み出し装置203は、プログラムカウンタ202からのアドレス値をプログラム記憶装置204に送出するとともに、読み出し信号線308aを「H」に、選択信号線309bをアクティブにする。そして、プログラム記憶装置読み出し時間だけ待った後、つまり、読み出されたデータが命令読み出し装置203に取り込まれるであろう時間後に、これを取り込む。さらに命令読み出し装置203は、読み出されたデータをプログラムカードリーダを介して命令レジスタ307に送出し、命令レジスタ307はこれを取り込む。この動作は、通常の計算機でいう命令フェッチに相当する。命令フェッチの後、次の命令の実行へ移る準備としてプログラムカウンタ202の内容を1増加させる。
【0029】
命令レジスタ307は、取り込まれたデータのうち命令コード部を命令制御装置201に送出することにより、命令制御装置201ではその命令コードを解釈し、その結果に従って動作を行う。
【0030】
例えば、命令レジスタに取り込まれたデータがLOAD命令であるとする。すると命令制御装置201は、命令レジスタ307のオペランド部をRバスに出力し、Lバスには何も出力せずに、演算指定を加算にする。これによってLバスのデータはそのままOバスに出力されるので、このデータを主記憶番地レジスタ304に取り込む。
【0031】
次に、主記憶番地レジスタ5の内容をA2 バスに出力し、読み出し信号線308bを「H」に選択信号線309bをアクティブにして主記憶装置206を読む。これによって主記憶番地レジスタ304の内容、つまりLOAD命令のオペランド部で示された値に従って主記憶装置から読み出される。この動作は、通常の計算機でいうオペランドフェッチに相当する。そして、記憶装置の読み出し時間だけ待った後、Dバス上に読み出されたデータを読み出し用データレジスタ305に取り込む。
【0032】
次に、読み出し用データレジスタ305の内容をRバスに出力し、Lバスには何も出力せずに、演算指定を加算にする。この結果、Rバス上のデータはそのままOバスに出力されるので、Oバス上のデータをアキュムレータレジスタ303に取り込む。また、演算装置の演算結果の状態のうちの「N」と「Z」に対応する部分を条件コードレジスタ302に取り込む。この動作は、命令実行に相当する。
【0033】
このようにしてLOAD命令の実行が完了するので、命令制御装置201は、命令フェッチ、オペランドフェッチ、命令実行を繰り返す。
なお、本実施例においては、LOAD命令のみ示したが、主記憶装置206に書込む命令であるSTORE命令や実行順序を制御するJUMP命令においても同様に動作する。
【0034】
以上のように、第1の発明によれば、プログラム情報を格納したプログラム記憶装置311と機械語命令読み出し装置とをプログラムカード内に設けて、1ステップずつ計算機本体に機械語命令を送出しているので、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。従って、ユーザは、プログラム情報の特定の実行系列については把握することができるが、たかだか1回の実行では全ての命令が実行されず、プログラム全体がどのようになっているかを容易に解読することができない。
[第2発明]
図4は、第2発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図である。
【0035】
本発明は、プログラムカード内に格納されたプログラム情報を特定の実行系列に対しても解読を困難とすべく、第1発明に対しさらに暗号化・復号化に関する構成を加えている。なお、第1発明と同じものに対しては、同じ符号を付している。
【0036】
即ち、同図において、プログラムカウンタ202からの内容をプログラムリーダ2を介してプログラムカード1内の復号化装置401に送出する。ここで、プログラムカウンタ202の内容は、後述する暗号化装置402により暗号化されたアドレス値X(Xは任意のビット数)とインデックス値C(Cは任意のビット数)とから構成されており、これを「(X,C)」と表すこととする。
【0037】
復号化装置401では、暗号化されたアドレス値Xを復号化し、この復号化された値xにインデックス値Cを加えた値を本来のアドレス値として、機械語命令読み出し装置203に送出する。機械語命令読み出し装置203は、このアドレス値に従ってプログラム記憶装置204から機械語命令を読み出し、これを暗号化装置402に送出する。
【0038】
暗号化装置402では、機械語命令のうちオペランド部の値を暗号キー発生装置403により生成された暗号キーに従って暗号化した後、この暗号化されたアドレス値X’をプログラムリーダ2を介して計算機本体3の命令解釈実行装置205に送出する。
【0039】
命令解釈実行装置205は、この機械語命令を解釈し、その結果に基づいて命令の実行を行い、必要であれば主記憶装置206をアクセスする。また、本発明では、命令解釈実行装置205によって実行制御命令(例えば、JUMP命令等)であると解釈された場合には、オペランド部に記述されている暗号化されたアドレス値X’をプログラムカウンタ202に新たにセットする。これに対して、実行制御命令以外の命令(例えば、LOAD命令等)の場合には、プログラムカウンタ202の内容のインデックス値を1つ増やす。
【0040】
例えば、プログラムの実行アドレスを図5(a)に示すプログラムに従って説明する。即ち、同図(a)に示すプログラムは、メモリM2の内容にメモリM3の内容を乗じた値をメモリM1の内容とするプログラムである。今、メモリM3の内容が「2」の場合、プログラムカウンタ202の内容は同図(b)のようになる。つまり、S5やS9のJUMP命令(BLE、JMP)を解釈実行する際に、オペランド部に記述されたアドレス値「S10」や「S2」が暗号化されるので、外部からはプログラム上のどの場所に戻ったのかがわからなくなる。これによって、S2乃至S9のループ構造が隠ぺいすることができ、プログラムの解読画より一層困難なものとなる。
【0051】
【発明の効果】
以上のように、第1発明によれば、プログラム情報を格納したプログラム記憶装置と機械語命令読み出し装置とをプログラムカード内に設けて、1ステップずつ計算機本体に機械語命令を送出しているので、全プログラム情報を計算機の主記憶装置にロードする必要がなくなる。従って、ユーザは、プログラム情報の特定の実行系列については把握することができるが、たかだか1回の実行では全ての命令が実行されず、プログラム全体がどのようになっているかを容易に解読することができなくなる。
【0052】
第2発明によれば、実行制御命令であるJUMP命令等を解釈実行する際に、オペランド部に記述されたアドレス値が暗号化されるので、外部からはプログラム上のどの場所に戻ったのかがわからなくなる。これによって、プログラムのループ構造が隠ぺいすることができ、プログラムの解読画より一層困難なものとなる。
【0053】
第3発明によれば、通常のプログラムカウンタの更新及び実行制御命令に基づくプログラムカウンタの更新をプログラムカード内で行うので、実行制御命令であるJUMP命令等によりプログラムを実行する場合にも実行制御を完全に隠ぺいすることができるようになる。
【図面の簡単な説明】
【図1】 本発明に係るプログラムカード及びこれを用いた計算機の適用対象を示す図。
【図2】 第1発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図3】 第1発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図。
【図4】 第2発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図5】 実行制御を説明するためのプログラムを示す図。
【図6】 第3発明に係るプログラムカード及びこれを用いた計算機の構成を示す概念図。
【図7】 第3発明に係るプログラムカード及びこれを用いた計算機の構成を示す詳細図。
【符号の説明】
1…プログラムカード
2…プログラムカードリーダ
3…計算機本体
201…命令制御装置
202…プログラムカウンタ
203…機械語命令読みだし装置
204…プログラム記憶装置
205…命令解釈実行装置
206…主記憶装置[0001]
[Industrial application fields]
The present invention relates to a program card and a computer using the program card.
[0002]
[Prior art]
In recent years, the integration technology for integrated circuits (including LSI, VLSI, etc., hereinafter referred to as “ICs”) has been remarkably developed. Etc., and a program and calculation data (hereinafter referred to as “program information”) indicating a calculation procedure are stored therein, thereby easily detachable computer main storage device or auxiliary storage device (hereinafter referred to as “storage device”). It has become common to use as
[0003]
By the way, the program information and the like stored in the IC and the like are expressed in binary numbers, and the program information is collectively read into the main memory in the computer. Then, the central processing unit (hereinafter referred to as “CPU”) of the computer sequentially reads from the main memory, interprets the contents and executes the instructions. A computer that reads program information into a storage device of a computer and interprets it while sequentially reading it is called a Neumann computer.
[0004]
However, in the conventional removable storage device in the Neumann computer, it is necessary to communicate program information with a CPU of the computer main body via a predetermined signal line. Therefore, the user can read out the program information by the program decoding device and decode the program information as if the CPU read out the program information through the signal line. This means that program information can be decoded as long as the program information is communicated via a signal line even if it is integrated into an IC. It was difficult to protect against unauthorized duplication or modification by a third party.
[0005]
[Problems to be solved by the invention]
In the conventional removable storage device in the Neumann computer, it is necessary to communicate program information with a CPU of the computer main body via a predetermined signal line. Therefore, the user can read out the program information by the program decoding device and decode the program information as if the CPU read out the program information through the signal line. This means that program information can be decoded as long as the program information is communicated via a signal line even if it is integrated into an IC. It was difficult to protect against unauthorized duplication or modification by a third party.
Therefore, the present invention provides a storage device that makes it difficult to illegally copy or remodel program information, and a computer using the same.
[0006]
[Means for Solving the Problems]
The invention according to
[0007]
Here, the unit storage cell group in the program card corresponds to a program storage device in the following embodiments. The program information can be read from the unit storage cell to which the address indicated by the address specification signal is assigned and written to the unit storage cell by an external address specification signal (address value) and a read / write signal. The invention according to
[0008]
The invention according to
[0009]
According to a fourth aspect of the second invention, a program card storing program information in an addressed unit storage cell group and the program information stored in the program card via a predetermined interface are provided. A program card having a computer main body for reading, interpreting and executing, and a computer using the program card, wherein the program card decrypts an address value indicating the address based on a predetermined encryption key And program information reading means for reading program information from the unit memory cell according to the address value decoded by the means, and an instruction code portion and an address operand portion of the program information read by the means are identified. Means and an address operand part identified by the means are connected to a predetermined encryption key. Encryption means for encrypting based on the command code, and program information sending means for sending the instruction code part and the address operand part encrypted by the encryption means to the computer main body, the computer main body comprising the address An address value holding means for holding a value, an address value sending means for sending the address value held in this means to the program information reading means of the program card, and an instruction code part and a cipher sent by the program information sending means And a computer using the program card including instruction control execution means for executing instruction control based on the converted address operand part.
[0010]
The invention according to claim 5 of the third invention is a program card in which program information is stored in an addressed unit storage cell group, and the program information is read out via a predetermined interface in response to a command from the computer main body. The address value holding means for holding the address value indicating the address, the program information reading means for reading the program information from the unit memory cell according to the address value held in the means, and the program information read by the means , The address value changing means for changing the address value held in the address value holding means, and the program information for sending the program information read by the program information reading means to the computer main body A program card comprising sending means.
[0011]
The invention according to
[0012]
[Action]
According to the first invention, the program storage device storing the program information and the machine language command reading device are provided in the program card, and the machine language command is sent to the computer main body step by step. This eliminates the need to load all program information into the main memory of the computer.
[0013]
According to the second invention, the encryption device, the encryption key generation device, and the decryption device are provided in the program card, and the contents of the program counter are encrypted by the encryption device. Here, since the generated encryption key changes every time, even if the original address value is the same, it becomes a different encrypted address value every time. Therefore, it is not possible to know where the program has returned from the outside, and the execution control of the program can be hidden from the outside.
[0014]
According to the third invention, since the program counter and the program counter calculation device for controlling the contents of the program counter are provided in the program card, the program execution control is completely separated from the computer main body. As a result, the normal program counter update and the update of the program counter based on the execution control instruction are performed in the program card, so that the execution control can be completely hidden even when the program is executed by the JUMP instruction or the like. Become.
[0015]
【Example】
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
FIG. 1 is a diagram showing an application target of a program card according to the present invention and a computer using the program card. As shown in the figure, the present invention relates to an apparatus for making a
[0016]
Here, the
[0017]
The
[0018]
The computer
[First invention]
FIG. 2 is a conceptual diagram showing the configuration of the program card according to the first invention and a computer using the program card.
[0019]
The present invention stores program information in a program card, and sends the program information stored in the program card to the computer main body each time a read request is received from the computer main body. That is, in FIG. The contents (address value) of the program counter (PC) 202 are sent to the machine language
[0020]
The configuration of the program card according to the present invention as described above and a computer using the program card will be further described in detail.
FIG. 3 is a detailed view showing the configuration of the program card according to the first invention and a computer using the program card.
[0021]
In the figure, an arithmetic unit (ALU) 301 provided in the computer main body performs an operation designated by the operation designation on the data given by the L bus and the R bus, and outputs the operation result to the O bus. .
[0022]
The condition code register (CCR) 302 can set the state (for example, N, Z, V, C) of the result of the operation performed by the
[0023]
The accumulator register (ACC) 303 is a so-called working register, and can output data fetched from the O bus to the L bus.
The
[0024]
A main storage address register (MAR) 304, a read data register (RDR) 305, and a write data register (WDR) 306 are used for reading and writing of the main storage device.
[0025]
The instruction register (IR) 307 can set a machine language instruction composed of an instruction code part and an operand part. The instruction code part is sent to the
[0026]
The
[0027]
On the other hand, the machine language
[0028]
The program car according to the present invention configured as described above and the computer using the same operate as follows.
That is, the
[0029]
The
[0030]
For example, assume that the data fetched into the instruction register is a LOAD instruction. Then, the
[0031]
Next, the contents of the main memory address register 5 are output to the
[0032]
Next, the contents of the read
[0033]
Since the execution of the LOAD instruction is completed in this way, the
In this embodiment, only the LOAD instruction is shown, but a STORE instruction that is an instruction to be written in the
[0034]
As described above, according to the first invention, the program storage device 311 storing the program information and the machine language instruction reading device are provided in the program card, and the machine language instructions are sent to the computer main body step by step. This eliminates the need to load all program information into the main memory of the computer. Therefore, the user can grasp the specific execution sequence of the program information, but it is easy to decipher what the entire program looks like, as not all instructions are executed at most once. I can't.
[Second invention]
FIG. 4 is a conceptual diagram showing the configuration of a program card according to the second invention and a computer using the program card.
[0035]
The present invention further adds a configuration related to encryption / decryption to the first invention in order to make it difficult to decrypt the program information stored in the program card even for a specific execution sequence. In addition, the same code | symbol is attached | subjected about the same thing as 1st invention.
[0036]
That is, in the figure, the content from the
[0037]
The
[0038]
The
[0039]
The instruction
[0040]
For example, the execution address of the program will be described according to the program shown in FIG. That is, the program shown in FIG. 5A is a program in which the content of the memory M1 is obtained by multiplying the content of the memory M2 by the content of the memory M3. If the contents of the memory M3 are “2”, the contents of the
[0051]
【The invention's effect】
As described above, according to the first invention, the program storage device storing the program information and the machine language instruction reading device are provided in the program card, and the machine language instructions are sent to the computer main body step by step. This eliminates the need to load all program information into the main memory of the computer. Therefore, the user can grasp the specific execution sequence of the program information, but it is easy to decipher how the entire program is, because not all instructions are executed in one execution at most. Can not be.
[0052]
According to the second invention, when interpreting and executing a JUMP instruction or the like which is an execution control instruction, the address value described in the operand part is encrypted. become unable to know. As a result, the loop structure of the program can be concealed, which is more difficult than the decoded picture of the program.
[0053]
According to the third invention, normal program counter updating and program counter updating based on execution control instructions are performed in the program card. Therefore, even when a program is executed by a JUMP instruction or the like as an execution control instruction, execution control is performed. Can be completely hidden.
[Brief description of the drawings]
FIG. 1 is a diagram showing an application target of a program card according to the present invention and a computer using the program card.
FIG. 2 is a conceptual diagram showing the configuration of a program card according to the first invention and a computer using the program card.
FIG. 3 is a detailed view showing the configuration of a program card according to the first invention and a computer using the program card.
FIG. 4 is a conceptual diagram showing the configuration of a program card according to a second invention and a computer using the program card.
FIG. 5 is a diagram showing a program for explaining execution control.
FIG. 6 is a conceptual diagram showing the configuration of a program card according to a third invention and a computer using the program card.
FIG. 7 is a detailed view showing the configuration of a program card according to a third invention and a computer using the program card.
[Explanation of symbols]
DESCRIPTION OF
Claims (4)
前記計算機本体から送出された前記アドレスを示すアドレス値を、所定の暗号キーに基づいて復号化する復号化手段と、
この手段により復号化されたアドレス値に対応する前記単位記憶セルからプログラム情報を1ステップずつ読出すプログラム情報読出し手段と、
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と、
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と、
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備えたことを特徴とするプログラムカード。 Program information consisting of machine language instructions constituting a program is stored in a unit memory cell group consisting of unit memory cells in which one-step program information is stored and addressed, and through a predetermined interface in response to a command from the computer main body. In the program card from which the program information is read,
Decryption means for decrypting an address value indicating the address sent from the computer main body based on a predetermined encryption key;
Program information reading means for reading program information step by step from the unit storage cell corresponding to the address value decoded by the means;
Of the program information read by the means, means for identifying the instruction code portion and the address value;
Encryption means for encrypting an address value based on a predetermined encryption key when the instruction code identified by the means is an execution control instruction ;
A program card comprising: a program information sending means for sending an address value encrypted by the instruction code part and the encryption means to the computer main body.
前記プログラムカードは、
前記アドレスを示すアドレス値を所定の暗号キーに基づいて復号化する復号化手段と、
この手段により復号化されたアドレス値に対応する前記単位記憶セルからプログラム情報を1ステップずつ読出すプログラム情報読出手段と、
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と、
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と、
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備え、
前記計算機本体は、
前記アドレス値を保持するアドレス値保持手段と、
この手段に保持されたアドレス値を前記プログラムカードのプログラム情報読出し手段に送出するアドレス値送出手段と、
前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレス値に基づいて命令制御を実行する命令制御実行手段とを備えたことを特徴とするプログラムカードを用いた計算機。A program card storing program information in a unit memory cell group comprising machine language instruction sequences constituting an addressed program comprising unit memory cells to which program information of one step is stored and addressed, and the program card A program card including a computer main body for reading, interpreting and executing the program information stored in the computer via a predetermined interface, and a computer using the program card,
The program card is
Decryption means for decrypting an address value indicating the address based on a predetermined encryption key;
Program information reading means for reading program information step by step from the unit storage cell corresponding to the address value decoded by the means;
Of the program information read by the means, means for identifying the instruction code portion and the address value;
Encryption means for encrypting an address value based on a predetermined encryption key when the instruction code identified by the means is an execution control instruction ;
Program information sending means for sending the instruction code part and the address value encrypted by the encryption means to the computer main body,
The computer body is
Address value holding means for holding the address value;
Address value sending means for sending the address value held in this means to the program information reading means of the program card;
A computer using a program card, comprising: an instruction code portion sent by the program information sending means; and an instruction control execution means for executing instruction control based on an encrypted address value.
前記計算機本体から送出された前記アドレスを示すアドレス値とこのアドレス値との相対位置を示すインデックス値とを受け取り、所定の暗号キーに基づいて前記アドレス値を復号化する復号化手段と;Decryption means for receiving an address value indicating the address sent from the computer main body and an index value indicating a relative position of the address value, and decrypting the address value based on a predetermined encryption key;
この復号化手段により復号化されたアドレス値と前記インデックス値から計算されるアドレスに対応する前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と;Program information reading means for reading program information from the unit memory cell corresponding to an address calculated from the address value decoded by the decoding means and the index value;
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と;Means for identifying an instruction code portion and an address value in the program information read by the means;
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と、Encryption means for encrypting an address value based on a predetermined encryption key when the instruction code identified by the means is an execution control instruction;
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備えたことを特徴とするプログラムカード。A program card comprising: a program information sending means for sending an address value encrypted by the instruction code part and the encryption means to the computer main body.
前記プログラムカードは、The program card is
前記計算機本体から送出された前記アドレスを示すアドレス値とこのアドレス値との相対位置を示すインデックス値とを受け取り、所定の暗号キーに基づいて前記アドレス値を復号化する復号化手段と;Decryption means for receiving an address value indicating the address sent from the computer main body and an index value indicating a relative position of the address value, and decrypting the address value based on a predetermined encryption key;
前記復号化手段により復号化されたアドレス値と前記インデックス値から計算されるアドレスに対応する前記単位記憶セルからプログラム情報を読出すプログラム情報読出し手段と;Program information reading means for reading program information from the unit memory cell corresponding to an address calculated from the address value decoded by the decoding means and the index value;
この手段により読出されたプログラム情報のうち、命令コード部とアドレス値とを識別する手段と;Means for identifying an instruction code portion and an address value in the program information read by the means;
この手段により識別された命令コードが実行制御命令の場合にアドレス値を、所定の暗号キーに基づいて暗号化する暗号化手段と;Encryption means for encrypting an address value based on a predetermined encryption key when the instruction code identified by the means is an execution control instruction;
前記命令コード部及び前記暗号化手段により暗号化されたアドレス値を前記計算機本体に送出するプログラム情報送出手段とを備え、Program information sending means for sending the instruction code part and the address value encrypted by the encryption means to the computer main body,
前記計算機本体は、The computer body is
前記アドレス値を保持するアドレス値保持手段と;Address value holding means for holding the address value;
前記アドレス値とこのアドレス値との相対位置を示すインデックス値とを前記プログラムカードのプログラム情報読み出し手段に送出するアドレス値送出手段と;Address value sending means for sending the address value and an index value indicating a relative position of the address value to the program information reading means of the program card;
前記プログラム情報送出手段により送出された命令コード部及び暗号化されたアドレス値に基づいて命令制御を実行する命令制御実行手段とを備えたことを特徴とするプログラムカードを用いた計算機。A computer using a program card, comprising: an instruction code portion sent by the program information sending means; and an instruction control execution means for executing instruction control based on an encrypted address value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08706394A JP3642533B2 (en) | 1994-04-26 | 1994-04-26 | Program card and computer using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08706394A JP3642533B2 (en) | 1994-04-26 | 1994-04-26 | Program card and computer using the same |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004279924A Division JP2005122723A (en) | 2004-09-27 | 2004-09-27 | Program card and computer using the same |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07295802A JPH07295802A (en) | 1995-11-10 |
JP3642533B2 true JP3642533B2 (en) | 2005-04-27 |
Family
ID=13904488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08706394A Expired - Fee Related JP3642533B2 (en) | 1994-04-26 | 1994-04-26 | Program card and computer using the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3642533B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4556277B2 (en) * | 1999-03-30 | 2010-10-06 | ソニー株式会社 | Information processing apparatus and method, information processing system, and program storage medium |
US8156343B2 (en) * | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
CN100424611C (en) | 2005-07-28 | 2008-10-08 | 国际商业机器公司 | Method and central processing unit for processing encryption software |
JP2008033457A (en) * | 2006-07-26 | 2008-02-14 | Internatl Business Mach Corp <Ibm> | Method and central processing unit for processing encrypted software |
-
1994
- 1994-04-26 JP JP08706394A patent/JP3642533B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07295802A (en) | 1995-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6158004A (en) | Information storage medium and security method thereof | |
US7065215B2 (en) | Microprocessor with program and data protection function under multi-task environment | |
US9471513B2 (en) | Cache structure for a computer system providing support for secure objects | |
US7107459B2 (en) | Secure CPU and memory management unit with cryptographic extensions | |
US8261048B2 (en) | Optional function multi-function instruction in an emulated computing environment | |
US5237616A (en) | Secure computer system having privileged and unprivileged memories | |
US5301231A (en) | User defined function facility | |
US8191155B2 (en) | Microprocessor | |
US7707645B2 (en) | Microprocessor | |
US9280675B2 (en) | Encrypting and storing confidential data | |
JPH08305558A (en) | Ciphering program arithmetic unit | |
US20050105738A1 (en) | On-chip multi-core type tamper resistant microprocessor | |
JPH06112937A (en) | System and method for data processing | |
JP2005521942A (en) | System and method for providing domain granular, hardware controlled memory encryption | |
US7409251B2 (en) | Method and system for writing NV memories in a controller architecture, corresponding computer program product and computer-readable storage medium | |
EP1717723A1 (en) | Improved virtual machine or hardware processor for IC-card portable electronic devices | |
JP4591163B2 (en) | Bus access control device | |
JP2723231B2 (en) | Software rights management control method | |
JP2007310601A (en) | Microcomputer and method for protecting its software | |
JP2005216027A (en) | Encryption device, encryption system therewith, decryption device and semiconductor system therewith | |
JP3642533B2 (en) | Program card and computer using the same | |
JP4047281B2 (en) | How to synchronize cache memory with main memory | |
JPH1079000A (en) | Program writable ic card | |
US8171311B2 (en) | Transferring data values via a data bus or storing data values using a selectable representation | |
JP2005122723A (en) | Program card and computer using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041220 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050124 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090204 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |