JPS6358538A - ソフトウエア保護方式 - Google Patents

ソフトウエア保護方式

Info

Publication number
JPS6358538A
JPS6358538A JP61202995A JP20299586A JPS6358538A JP S6358538 A JPS6358538 A JP S6358538A JP 61202995 A JP61202995 A JP 61202995A JP 20299586 A JP20299586 A JP 20299586A JP S6358538 A JPS6358538 A JP S6358538A
Authority
JP
Japan
Prior art keywords
instruction
software
decoder
encrypted
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
JP61202995A
Other languages
English (en)
Inventor
Hiroshi Watanabe
坦 渡辺
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61202995A priority Critical patent/JPS6358538A/ja
Publication of JPS6358538A publication Critical patent/JPS6358538A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、暗号化された命令列に対する復号化機能を有
する計算機システムのソフトウェア保護方式に関し、特
に、1つの計算機システム上のソフトウェアを、他の計
算機システム上で不正使用することを防止するソフトウ
ェア保護方式に関する。
〔従来技術〕
パーソナルコンピュータ等の普及に伴い、その装置に対
応したソフトウェアも多数販売されている。しかし、そ
のソフトウェアがコピーされ不正使用されると、製造元
にとっては販売数低下を生じ、制作者にとっては著作権
問題を生じるため、ソフトウェアの不正使用を防止する
方法が種々行われている。
例えば、゛′ソフトウェアセキュリティ、弁上書院。
1985年、第28ページ″に記載されている方法では
、外部ファイルに暗号化したプログラムを記録し、その
プログラムを主記憶装置にロードする際に、ローダによ
り復号化して実行している。また、特開昭59−231
650号公報に記載されている方法では、CPUに処理
装置i!識別情報を保持する回路を設け、提供ソフトウ
ェアの命令データが格納される記録媒体において、その
識別情報を削除エリアに保持し、それらの情報を比較チ
ェックすることにより、提供ソフトウェアの無断読み出
しを防止している。
〔発明が解決しようとする問題点〕
上記従来技術においては、主記憶装置に復号化したプロ
グラムを取り出した後は、そのプログラムをコピーする
ことが可能であり、ソフトウェアの不正使用を完全に防
止することができなかった。
本発明の目的は、このような問題点を改善し、ソフトウ
ェアの不正使用を完全に防止することが可能なソフトウ
ェア保護方式を提供することにある。
〔問題を解決するための手段〕
上記目的を達成するため、本発明のソフトウェア保護方
式は、命令実行器と命令解読器とを備えた複数の計算機
システムにおいて、提供ソフトウェアの一部の命令を暗
号化する手段と、それぞれの計算機ごとに固有であり、
その暗号化手段により、予め一部の命令が暗号化されて
いる該ソフトウェアを、暗号化前の原ソフトウェアに復
元するため、その暗号化された命令を復号化する手段(
復号器)とを設け、その暗号化手段により、それらの計
算機毎に設定した固有の識別記号と、その暗号化の対象
となる命令の命令番地情報とから合成したキーを用いて
、原ソフトウェアの一部の命令を予め暗号化し、上記復
号器は、その識別記号を内蔵し、その識別記号と命令番
地情報とからそのキーを合成して、そのキーにより、暗
号化された命令を復号化し、上記命令解読器により、復
号化された該ソフトウェアの命令を解読して、上記命令
実行器により実行することに特徴がある。
また、上記キーは、上記識別記号と番地情報とに対し、
論理和、論理積、排他的論理和、混ぜ合わせ2区画分割
、および、それらの組み合わせを行って合成し、上記暗
号化、および復号化の操作は、そのキーを用い、回転2
反転、排他的論理和。
区画分割、および、それらの組み合わせにより行うこと
に特徴がある。  ゛ さらに、上記復号器のみが1つのLSIチップに内蔵さ
れるか、あるいは、上記命令実行器、命令解読器、およ
び復号器が1つのLSIチップに内蔵されることに特徴
がある。
〔作  用〕
本発明においては、それぞれの計算機システムは、主記
憶装置から一部の命令が暗号化されたソフトウェアを取
り出して実行する。命令解読器は、取り出したソフトウ
ェアの命令が暗号化されているか否かを判定し、暗号化
されていなければ、命令実行器がそのまま実行する。暗
号化さ九でいれば、復号器により復号化し、同様に実行
する。
また、それぞれの計算機は、各々に固有の識別記号を持
ち、その復号器により復号化を行う場合。
その識別記号と暗号化された命令の命令番地情報とから
合成したキーを用いる。さらに、記憶装置に格納された
ソフトウェアは、そのキーにより、一部の命令を予め暗
号化されている。
なお、それらの識別記号、および命令番地情報は、暗号
化された命令を受けた時点で確定しているため、その命
令を一意的に復元でき、誤動作することがない。
〔実施例〕
本発明の一実施例を図面により説明する。
第1図は本発明の第1の実施例における計算機システム
の構成図である。
本実施例の計算機システムは、命令実行装置1゜および
主記憶装置10を備え、命令実行装置1は、命令実行器
2.命令解読器3.および復号器4を備える。また、命
令実行器2.命令解読器3.および復号器4は、1つの
LSIチップに内蔵されている。
復号器4は、その計算機システムに固有の識別記号を格
納し、主記憶装置10は、部分的1;暗号化された命令
列を格納している。
第2図は、本発明の第2の実施例における計算機システ
ムの構成図である。
本実施例の計算機システムは、命令実行装置11、復号
器12.および主記憶装置10を備え、さらに、命令実
行装置11は、命令実行器2.および命令解読器3を備
える@京だ、復号器12は、命令実行装置11から分前
され、1つのLSIチップに内蔵されている。このため
、命令実行器=11の製造コストを押さえ、復号器4の
みを取り外して交換することができる。
第1の実施例と同様に、復号器12は、その計算機シス
テムに固有の識別記号を格納し、主記憶装置10は、部
分的に暗号化された命令列を格納している。
第5図は5本発明におけるキーの合成例図である。
本実施例のキーは、それぞれの計算機システムに固有の
識別記号IDと、暗号化の対象となる命令の命令番地情
報nとから合成する。
合成されるキーは、(1)のように、その識別記号ID
と命令番地情報nとの論理積をとって得たキー153.
(n)のように、それらの論理和をとって得たキー16
3.および、(III)のように、その識別記号ID、
および命令番地情報nをそれぞれ小区画に分け、その小
区画に分けられたm51+J記号dl”’−dL+およ
び命令番地情報n1〜nt  を交互に混ぜ合わせて得
たキー173である。また、(IV)のように、こうし
て作成したキー180を1次キーとし、さらに、その1
次キー180を複数の小区画に分け、その中からいくつ
かの区画を取り出して2次キー181〜183とする方
法もある。
なお、論理和の代りに排他的論理和をとることもでき、
さらに、上記の方法を組み合わせて新らしいキーを合成
することも可能である。
第6図は、本発明における命令列の暗号化、および復号
化の説明図である。
本実施例の計算機システムは、第5図のように合成され
たキーを用いて、命令列の暗号化、および復号化を行う
第5図では、各命令が暗号化された命命であるか否かを
示す部分は表示していないが、その部分は各命令の前部
あるいは後部の特定位置にある。
すなわち、第5図では、各命令のうち、暗号化された命
令であるか否かを示す部分を除いた残りの部分の暗号化
と復合化の実施例を示す。
(1)では、キーkが示すビット数だけ、原命令201
の内容a、bを左へ回転させて、暗号化された命令20
2を得る。その命令202を復号化するときは、キーk
が示すビット数だけ、右へ回転させて原命令201を得
る。
(n)では、原命令211の内容a、bを、暗号キーk
が示すビット数だけ右へ回転させて、暗号化された命令
212を得る。その命令212を復号化するときは、キ
ーkが示すビット数だけ、左へ回転させて原命令211
を得る。
(III)では、2つのキーに1+およびに2を用いる
。原命令221の内容a、b、eの中、キーに1が示す
ビット数からキーに2が示すビット数までの区間を反転
させて、暗号化された命令222を得る。その命令22
2を復号化するときは、キーに、が示すビット数からキ
ーに2が示すビット数までの区間を再度反転させて、原
命令221を得る。
(IV)では、原命令231の内容Xに対し、キーkに
よる排他的論理和をとって、暗号化された命令232を
得る。その命令232を復号化するときは、その命令2
32に対し、再度キーkによる排他的論理和をとって、
原命令231を得る。
(V)では、3つのキーkGy kl + k2を用い
、内容a、b、cで示される原命令241を暗号化する
。原命令241の中、キーに1が示すビット数からキー
に2が示すビット数までの区間すに対し、キーに、によ
る排他的論理和をとって、暗号化された命令242を得
る。その命令242を復号化するときは、その命令24
2の中、キーに□が示すビット数からキーに2が示すビ
ット数までの区間(b  XORko)に対し、キーに
、による排他的論理和をとって、原命令241を得る。
このように、暗号化のキーは、識別記号と命令番地情報
とから実行時に合成されるため、識別記号を知らずに復
号化することは困難であり、また、暗号化の対象は、ソ
フトウェアの命令列の一部であるため、暗号化に伴う実
行速度の低下は殆んどない、さらに、復号化の処理も論
理演算や回転等の単純操作であるため、高速な処理が可
能である。
第4図は1本発明における命令の暗号化を示すフローチ
ャートである。
第1図、および第2図のように1本実施例の計算機シス
テムにおける主記憶袋2!10は、一部の命令が暗号化
されたソフトウェアを格納している。
なお、そのように暗号化される前の原ソフトウェアの命
令の一部は、中央処理装置のソフトウェアによって暗号
化される。暗号化が行なわれる命令は、実行回数は少い
が確実に実行される命令であり1例えば、副プログラム
呼び出し命令、ジャンプ命令、スタックポインタ設定命
令等である。
ソフトウェアを暗号化する場合は、暗号化の対象となる
ソフトウェアの選定、およびセット等の初期処理を行い
(121)、そのソフトウェアの次命令を取り出す(1
22)。
次に、その命令が暗号化するべき命令か否かを判定しく
123)、暗号化しない命令ならば、その命令に処理を
加えず、主記憶装置10に出力する(126)。暗号化
すべき命令ならば、その計算機システムに固有の識別記
号IDと、その命令の命令番地nとから、第5図のよう
に、論理和、論理積、排他的論理和、混ぜ合わせ9区画
分割、および、それらの組み合わせ等によってキーを合
成しく124)、そのキーを用い、第6図のように、回
転2反転、排他的論理和2区画分割、および、それらの
組み合わせ等によって、その命令を暗号化する(125
)。
こうして暗号化した結果を、主記憶装置1(DC出力し
く126)、次に暗号化すべき命令があるか否かを判定
する(127)、次に暗号化すべき命令があれば、次の
命令を取り出しく122)、なければ、終了処理を行う
(128)。
第3図は、本発明の第1.および第2の実施例の計算機
システムにおける命令の復号化を示すフローチャートで
ある。
第4図のように暗号化されたソフトウェアを復号化する
ため、第1図のように、命令実行器[1゜11は5次に
実行すべき命令の命令番地nを決定しく101)、その
命令を主記憶装置10から取り出して、命令解読器3に
渡す(102)。
命令解読器3は、その命令の命令コード部を見て、暗号
化された命令か否かを判定しく103)、暗合化されて
いなければ、その命令を解読し、命令実行器2はその命
令を実行する(107)。
暗合化されていれば、その命令を復号器4,12へ送る
(104)。復号器4,12は、その計算機に固有の識
別記号IDと命令番地情報nとから、第5図のようにキ
ーを合成し、そのキーを用いて、第6図のように、与え
られた命令を暗号化以前の命令に復合化しく105)、
その復号化された命令を命令解読器3に戻す(106)
命令解読器3は、その命令を解読して命令実行器2に伝
え、命令実行器2は、その命令を実行する(107)。
命令実行器FR1,11は、実行すべき次の命令が残っ
ているか否かを確め(108)、残っていれば、次の命
令の番地を決定しく101)、残っていなければ、処理
を終了する。
〔発明の効果〕
本発明によれば、ソフトウェアは、特定の計算機上での
み走行可能であり、外部ファイル、および主記憶装置内
に復号化されたプログラムを残さないため、ソフトウェ
アを無断でコピーしても、そのソフトウェアを他の計算
機上で走行することはできない。
また、暗号化の操作は、そのソフトウェアの命令列の一
部であり、復号化の手順も単純であるため、これらの処
理についての実行速度の低下は殆んどなく、復号器も安
価に製造することが可能である。
このように、計算機の実行速度、および製造コストに負
荷を加えることなく、ソフトウェアの不正使用を完全に
防ぐことができる。
【図面の簡単な説明】
第1図は本発明の第1の実施例における計算機システム
の構成図、第2図は本発明の第2の実施例における計算
機システムの構成図、第3図は本発明の第1.および第
2の実施例の計算機システムにおける命令の復号化を示
すフローチャート。 第4図は本発明における命令の暗号化を示すフローチャ
ート、第5図は本発明におけるキーの合成側図、第6図
は本発明における命令列の暗号化。 および復号化の説明図である。 1.11:命令実行装置、2:命令実行器、3:命令解
読器、4,12 :復号器、lO:主記憶装置。 153:論理積によるキー、163:論理和によるキー
、173:混ぜ合わせによるキー、180:1次キー、
181〜183:1次キーの分割による2次キー、20
1,211,221,231゜241:原命令、202
,212,222,232゜242=暗号化された命令
+ kt ko ’=に2 ’キl al bHCg 
X :命令の内容、ID、d□〜dl:識別記号yn、
nl””n工:命令番地情報。 第     1     図 第     2     図

Claims (1)

  1. 【特許請求の範囲】 1、命令実行器と命令解読器とを備えた複数の計算機シ
    ステムの中で、特定の計算機システムのみが提供ソフト
    ウェアの利用を許可されるソフトウェア保護方式におい
    て、該ソフトウェアの一部の命令を暗号化するための手
    段と、それぞれの計算機ごとに固有であり、暗号化され
    た該ソフトウェアを、暗号化前の原ソフトウェアに復元
    するための復号化を行う手段とを設け、該暗号化手段に
    よって、予め原ソフトウェアの一部の命令を暗号化し、
    上記解読器は、暗号化された該命令を識別し、該命令を
    該復号化手段により復号化して、該原ソフトウェアの命
    令を上記命令実行器により実行することを特徴とするソ
    フトウェア保護方式。 2、上記複数の計算機システムは、それぞれ固有の識別
    記号を上記復号器に内蔵し、上記原ソフトウェアの一部
    の命令は、該識別記号と該命令の命令番地情報とから合
    成したキーを用いて、予め該暗号化手段により暗号化さ
    れ、該復号化手段は、該キーを用いて暗号化された該命
    令を復号化することを特徴とする特許請求範囲第1項記
    載のソフトウェア保護方式。 3、上記キーは、上記識別記号と上記命令番地情報とに
    対して、論理和、論理積、排他的論理和、混ぜ合わせ、
    区画分割、および、それらの組み合わせを行い、合成さ
    れることを特徴とする特許請求範囲第2項記載の計算機
    システム。 4、上記原ソフトウェアの一部の命令の暗号化、および
    、上記暗号化された命令の復号化は、上記キーを用い、
    回転、反転、排他的論理和、区画分割、および、それら
    の組み合わせによって行うことを特徴とする特許請求範
    囲第3項記載のソフトウェア保護方式。 5、上記復号化手段は、1つのLSIチップに内蔵され
    ることを特徴とする特許請求範囲第1項記載のソフトウ
    ェア保護方式。 6、上記命令実行器、命令解読器、および復号手段は、
    1つのLSIチップに内蔵されることを特徴とする特許
    請求範囲第1項記載のソフトウェア保護方式。
JP61202995A 1986-08-29 1986-08-29 ソフトウエア保護方式 Pending JPS6358538A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61202995A JPS6358538A (ja) 1986-08-29 1986-08-29 ソフトウエア保護方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61202995A JPS6358538A (ja) 1986-08-29 1986-08-29 ソフトウエア保護方式

Publications (1)

Publication Number Publication Date
JPS6358538A true JPS6358538A (ja) 1988-03-14

Family

ID=16466588

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61202995A Pending JPS6358538A (ja) 1986-08-29 1986-08-29 ソフトウエア保護方式

Country Status (1)

Country Link
JP (1) JPS6358538A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995029438A1 (fr) * 1994-04-22 1995-11-02 Kabushiki Kaisya Advance Systeme de protection des donnees
KR19990075747A (ko) * 1998-03-24 1999-10-15 구자홍 메모리 복사 방지장치 및 방법
US6871192B2 (en) * 2001-12-20 2005-03-22 Pace Anti-Piracy System and method for preventing unauthorized use of protected software utilizing a portable security device
JP2013047854A (ja) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc 情報秘匿化方法および情報秘匿化装置
JP2014123323A (ja) * 2012-12-21 2014-07-03 Ntt Data Corp ソフトウェア不正使用防止機能を備えた情報処理装置、ソフトウェア不正使用防止方法及びプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5189364A (ja) * 1975-02-03 1976-08-05
JPS5541598A (en) * 1978-09-14 1980-03-24 Thomas William J Method and apparatus for controlling use of programmable computing machine
JPS5865470A (ja) * 1981-10-15 1983-04-19 日本電気株式会社 ソフトウエア保護回路
JPS59112341A (ja) * 1982-12-18 1984-06-28 Fuji Electric Co Ltd ソフトウエア機密漏洩防止方法
JPS59173847A (ja) * 1983-03-23 1984-10-02 Oyo Syst Kenkyusho:Kk コンピユ−タソフトウエアの保護方法およびその装置
JPS6083157A (ja) * 1983-10-14 1985-05-11 Toshiba Corp ワンチツプマイクロコンピユ−タ
JPS6123188A (ja) * 1984-07-12 1986-01-31 日本電気株式会社 暗号化コンピユ−タ機器およびシステム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5189364A (ja) * 1975-02-03 1976-08-05
JPS5541598A (en) * 1978-09-14 1980-03-24 Thomas William J Method and apparatus for controlling use of programmable computing machine
JPS5865470A (ja) * 1981-10-15 1983-04-19 日本電気株式会社 ソフトウエア保護回路
JPS59112341A (ja) * 1982-12-18 1984-06-28 Fuji Electric Co Ltd ソフトウエア機密漏洩防止方法
JPS59173847A (ja) * 1983-03-23 1984-10-02 Oyo Syst Kenkyusho:Kk コンピユ−タソフトウエアの保護方法およびその装置
JPS6083157A (ja) * 1983-10-14 1985-05-11 Toshiba Corp ワンチツプマイクロコンピユ−タ
JPS6123188A (ja) * 1984-07-12 1986-01-31 日本電気株式会社 暗号化コンピユ−タ機器およびシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995029438A1 (fr) * 1994-04-22 1995-11-02 Kabushiki Kaisya Advance Systeme de protection des donnees
US5751805A (en) * 1994-04-22 1998-05-12 Kabushiki Kaisya Advance Data-protecting system
KR19990075747A (ko) * 1998-03-24 1999-10-15 구자홍 메모리 복사 방지장치 및 방법
US6871192B2 (en) * 2001-12-20 2005-03-22 Pace Anti-Piracy System and method for preventing unauthorized use of protected software utilizing a portable security device
JP2013047854A (ja) * 2012-11-22 2013-03-07 Kyocera Document Solutions Inc 情報秘匿化方法および情報秘匿化装置
JP2014123323A (ja) * 2012-12-21 2014-07-03 Ntt Data Corp ソフトウェア不正使用防止機能を備えた情報処理装置、ソフトウェア不正使用防止方法及びプログラム

Similar Documents

Publication Publication Date Title
US4683968A (en) System for preventing software piracy employing multi-encrypted keys and single decryption circuit modules
EP0583140B1 (en) System for seamless processing of encrypted and non-encrypted data and instructions
EP0950941B1 (en) Method of and apparatus for protecting data on storage medium and storage medium
US20050010788A1 (en) System and method for authenticating software using protected master key
US6847948B1 (en) Method and apparatus for secure distribution of software/data
JP3481470B2 (ja) データ等の不正改竄防止システム及びそれと併用される暗号化装置
JPH08335182A (ja) ファイル保護システム及びそのファイル保護システムを用いたソフトウエア利用システム及びそのソフトウエア利用システムに用いられる記録媒体
JPH0383132A (ja) ソフトウェア保護制御方式
EP0008033B1 (en) Microprocessor for executing enciphered programs
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
CA2473122A1 (en) Method and device for protecting information against unauthorised use
JP2002244989A (ja) デバイスドライバ作動方法
JPH08185361A (ja) 半導体集積回路装置
JPS6358538A (ja) ソフトウエア保護方式
JPH0997175A (ja) ソフトウエア利用制御方法
JP2696219B2 (ja) 情報保護方法
KR20080096054A (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
JPS63182758A (ja) 情報記憶装置
CN113343215A (zh) 嵌入式软件的授权和认证方法及电子设备
JPS59173847A (ja) コンピユ−タソフトウエアの保護方法およびその装置
JP2002082732A (ja) プログラムコードの不正改竄防止システム及びその方法並びにその制御プログラムを記録した記録媒体
US7174464B1 (en) Method of making a user piece of software secure by means of a processing and secret memorizing unit, and a system constituting an application thereof
JPH043224A (ja) Icカードによるソフトモジュールの管理方法
WO1999008416A1 (en) Cell array providing non-persistent secret storage through a mutation cycle
JPS6010336A (ja) プログラム盗用防止モニタ方式