JPH0816385A - ソフトウェア解析保護方法 - Google Patents

ソフトウェア解析保護方法

Info

Publication number
JPH0816385A
JPH0816385A JP7105177A JP10517795A JPH0816385A JP H0816385 A JPH0816385 A JP H0816385A JP 7105177 A JP7105177 A JP 7105177A JP 10517795 A JP10517795 A JP 10517795A JP H0816385 A JPH0816385 A JP H0816385A
Authority
JP
Japan
Prior art keywords
software
terminal
center
protection method
memory
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.)
Granted
Application number
JP7105177A
Other languages
English (en)
Other versions
JP3463963B2 (ja
Inventor
Hironobu Okuyama
浩伸 奥山
Kenji Moriyasu
健治 森保
Atsushi Kanai
敦 金井
Nobuhisa Miyake
延久 三宅
Atsushi Terauchi
敦 寺内
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.)
NTT Inc
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 JP10517795A priority Critical patent/JP3463963B2/ja
Publication of JPH0816385A publication Critical patent/JPH0816385A/ja
Application granted granted Critical
Publication of JP3463963B2 publication Critical patent/JP3463963B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 ソフトウェア自体を複雑にすることなく、ま
た暗号化することもなく、その解析を困難にし、ソフト
ウェアの不正利用を適確に防止するソフトウェア解析保
護方法を提供する。 【構成】 アプリケーションソフトウェアをセンタ1と
端末3の両方で分割して、それぞれセンタサブソフトウ
ェア格納部11および端末サブソフトウェアメモリ32
に保持し、端末3にダウンロードするアプリケーション
ソフトウェアの欠落パートをセンタ1の乱数発生部13
およびセンタサブソフトウェア選択部12によって適宜
選択して、端末3にダウンロードすることにより、端末
3におけるメモリ上のアプリケーションソフトウェアの
配置を使用する度に異なるように設定し、すべてのアプ
リケーションソフトウェアが同時にメモリ上に展開され
ないようにする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、センタと複数の端末か
らなるシステムにおいて端末で保存され実行されるアプ
リケーションプログラム等のソフトウェアが端末で解析
されないように保護して端末におけるアプリケーション
プログラム等のソフトウェアの不正利用を防止するソフ
トウェア解析保護方法に関する。
【0002】
【従来の技術】一般に、端末上にあるソフトウェアに対
しては、悪意のある端末使用者による不正利用(ソフト
ウェア解析/改ざん)がありうる。ソフトウェアの不正
利用は、デバッガなどのツールによってメモリ上、ディ
スク上のソフトウェアを解析することから始まる。この
ソフトウェア解析を困難にするには、ソフトウェア自体
を複雑にする方法がある。しかしながら、この方法の効
力は程度の問題であると同時に、この方法は短いソフト
ウェアに適用することができず、万全とはいえない。ま
た、ソフトウェアを暗号化する方法は、そのソフトウェ
アを復号化する機構が必要となるが、その機構自身は暗
号化することができないため、その出力部分を解析する
ことにより、生のソフトウェアが明らかになってしまう
という欠点がある。
【0003】
【発明が解決しようとする課題】上述したように、端末
上のソフトウェアの不正利用を防止するために、ソフト
ウェア自体を複雑にする方法や暗号化する方法が考えら
れるが、複雑化する方法は程度の問題であるとともに短
いソフトウェアには適用することができないという問題
があり、また暗号化する方法はソフトウェアを複合化す
る機構が必要となり、この機構自身は暗号化できないた
め、その出力部分を解析することによりソフトウェアが
明らかになってしまうという問題があり、いずれの方法
も問題がある。
【0004】本発明は、上記に鑑みてなされたもので、
その目的とするところは、ソフトウェア自体を複雑にす
ることなく、また暗号化することもなく、その解析を困
難にし、ソフトウェアの不正利用を適確に防止するソフ
トウェア解析保護方法を提供することにある。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、本発明(請求項1)は、センタと、該センタに接続
された複数の端末で構成されたシステムにおいて、端末
で使用されるソフトウェアが端末で解析されないように
保護するソフトウェア解析保護方法であって、端末で使
用されるソフトウェアを分割したソフトウェア部分を端
末とセンタとに分配して保持し、端末において前記ソフ
トウェアを使用する毎に、端末からセンタに保持された
ソフトウェア部分を要求し、端末からの要求に応じてセ
ンタに保持されたソフトウェア部分を端末に送信し、セ
ンタから送信されたソフトウェア部分をメモリ上の端末
に保持されたソフトウェア部分中の欠落部分にロードす
ることにより、前記ソフトウェアの前記メモリ上に展開
された配置パターンを前記ソフトウェアが端末で使用さ
れる毎に変更しながら、前記ソフトウェアを端末上で動
作可能とし、前記メモリ上に展開された前記ソフトウェ
アを端末上で動作させる、ことからなるソフトウェア解
析保護方法。
【0006】又、本発明(請求項2)は、上記のソフト
ウェア解析保護方法において、センタに保持されたソフ
トウェア部分は異なる機能を持った複数のソフトウェア
部分の組を含み、センタは端末に送信する一つのソフト
ウェア部分の組を端末からの要求又はセンタの判断によ
り選択することにより、端末で動作させる前記ソフトウ
ェアの機能を変更することを特徴とする。
【0007】又、本発明(請求項3)は、上記のソフト
ウェア解析保護方法において、センタに保持されたソフ
トウェア部分は同じ機能を持った複数のソフトウェア部
分の組を含み、センタは端末に送信する一つのソフトウ
ェア部分の組を乱数に基づいて選択することにより、前
記ソフトウェアの前記メモリ上に展開された配置パター
ンを前記ソフトウェアが端末で使用される毎に変更する
ことを特徴とする。
【0008】又、本発明(請求項4)は、上記のソフト
ウェア解析保護方法において、センタに保持されたソフ
トウェア部分は複数のソフトウェア部分の組を含み、セ
ンタは端末に送信する一つのソフトウェア部分の組を選
択し、前記ソフトウェアはセンタから送信された該ソフ
トウェア部分の組が前記メモリ上の対応する欠落部分に
ロードされた時に端末上で少なくとも部分的に動作可能
となることを特徴とする。
【0009】又、本発明(請求項5)は、上記のソフト
ウェア解析保護方法において、センタは前記複数のソフ
トウェア部分の組を、前記ソフトウェアの動作の進行に
伴う端末からの要求に応じて順次送信することを特徴と
する。
【0010】又、本発明(請求項6)は、上記のソフト
ウェア解析保護方法において、欠落部分にロードされた
ソフトウェア部分は前記ソフトウェアの使用終了後に前
記メモリからクリアされることを特徴とする。
【0011】又、本発明(請求項7)は、上記のソフト
ウェア解析保護方法において、欠落部分にロードされた
ソフトウェア部分は前記ソフトウェアの以降の動作に不
必要となるに従い前記ソフトウェアの動作中に順次前記
メモリからクリアされることを特徴とする。
【0012】又、本発明(請求項8)は、上記のソフト
ウェア解析保護方法において、欠落部分にロードされた
ソフトウェア部分は端末に保持されたソフトウェア部分
に設けられたコマンドにより前記メモリからクリアされ
ることを特徴とする。
【0013】又、本発明(請求項9)は、上記のソフト
ウェア解析保護方法において、欠落部分にロードされた
ソフトウェア部分はセンタに保持され欠落部分にロード
されたソフトウェア部分に設けられたコマンドにより前
記メモリからクリアされることを特徴とする。
【0014】又、本発明(請求項10)は、上記のソフ
トウェア解析保護方法において、センタに保持された各
ソフトウェア部分は既知の該各ソフトウェア部分の最大
使用回数と、該各ソフトウェア部分の実使用回数のカウ
ントとを有し、欠落部分にロードされた該各ソフトウェ
ア部分は前記実使用回数のカウントが前記最大使用回数
に達した時に前記メモリからクリアされることを特徴と
する。
【0015】又、本発明(請求項11)は、上記のソフ
トウェア解析保護方法において、端末に保持されたソフ
トウェア部分は前記ソフトウェア中の複数の非連続なブ
ロックであることを特徴とする。
【0016】又、本発明(請求項12)は、上記のソフ
トウェア解析保護方法において、センタに保持されたソ
フトウェア部分は前記ソフトウェア中の複数の非連続な
ブロックであり、センタに保持されたソフトウェア部分
の非連続なブロックは該非連続なブロック同志間の順序
と異なる順番で送信されることを特徴とする。
【0017】又、本発明(請求項13)は、上記のソフ
トウェア解析保護方法において、センタに保持された各
ソフトウェア部分はそれがセンタに保持されたソフトウ
ェア部分であることを示す或る固定値を返す或るコード
を該各ソフトウェア部分内の所定のアドレスに有し、前
記メモリ上の各欠落部分はそれが欠落部分であることを
示す別の固定値を返す別のコードを該各欠落部分内の所
定のアドレスに有し、端末上で前記ソフトウェアの動作
中に前記別の固定値が返された時に前記ソフトウェアの
動作が中断されることを特徴とする。
【0018】更に本発明は、本発明(請求項14)は、
センタと、該センタに接続された複数の端末で構成され
たシステムにおいて、端末で使用されるソフトウェアが
端末で解析されないように保護するソフトウェア解析保
護方法であって、端末で使用されるソフトウェアを分割
したソフトウェア部分を端末とセンタとに分配して保持
し、センタに保持されたソフトウェア部分を端末に送信
し、センタから送信されたソフトウェア部分をメモリ上
の端末に保持されたソフトウェア部分中の欠落部分にロ
ードすることにより、前記ソフトウェアを端末上で動作
可能とし、前記メモリ上に展開された前記ソフトウェア
を端末上で動作させる、ことからなるソフトウェア解析
保護方法を提供する。
【0019】又、本発明(請求項15)は、上記のソフ
トウェア解析保護方法において、センタに保持されたソ
フトウェア部分は端末において前記ソフトウェアを使用
する毎に、端末からの要求に応じてセンタから端末に送
信されることを特徴とする。
【0020】又、本発明(請求項16)は、上記のソフ
トウェア解析保護方法において、センタに保持されたソ
フトウェア部分は複数のブロックに分けて送信されるこ
とを特徴とする。
【0021】又、本発明(請求項17)は、上記のソフ
トウェア解析保護方法において、前記ソフトウェアの前
記メモリ上に展開された配置パターンは前記ソフトウェ
アが端末で使用される毎に変更されることを特徴とす
る。
【0022】又、本発明(請求項18)は、上記のソフ
トウェア解析保護方法において、センタに保持されたソ
フトウェア部分は複数のソフトウェア部分の組を含み、
センタは端末に送信する一つのソフトウェア部分の組を
選択し、前記ソフトウェアはセンタから送信された該ソ
フトウェア部分の組が前記メモリ上の対応する欠落部分
にロードされた時に端末上で少なくとも部分的に動作可
能となることを特徴とする。
【0023】又、本発明(請求項19)は、上記のソフ
トウェア解析保護方法において、欠落部分にロードされ
たソフトウェア部分は前記ソフトウェアの使用終了後に
前記メモリからクリアされることを特徴とする。
【0024】又、本発明(請求項20)は、上記のソフ
トウェア解析保護方法において、欠落部分にロードされ
たソフトウェア部分は前記ソフトウェアの以降の動作に
不必要となるに従い前記ソフトウェアの動作中に順次前
記メモリからクリアされることを特徴とする。
【0025】
【作用】本発明のソフトウェア解析保護方法では、端末
で使用されるソフトウェアを端末とセンタの両方で分割
して保持し、ソフトウェア使用時にセンタの保持してい
る部分を端末に送信し使用する。このときメモリ上の端
末で使用されるソフトウェアの配置を使用する度に異な
らせ、あるいはユーザの要求やセンタの判断によりソフ
トウェアの機能を変更し、また端末で使用されるソフト
ウェアのうちセンタから送信された部分で必要のなくな
ったものについては逐次クリアすることで同時にメモリ
上にソフトウェアイメージが展開される機会を最小限に
する。さらにソフトウェアの使用終了後は必ずセンタか
ら送信された部分はクリアする。
【0026】
【実施例】以下、図面を用いて本発明の実施例を説明す
る。
【0027】図1は、本発明の一実施例に係わるソフト
ウェア解析保護方法を実施するシステムの構成を示す図
である。本システムは、センタ1と、該センタ1と公衆
回線2を介して接続された複数の端末3とから構成され
ている。
【0028】各端末3で使用されるアプリケーションプ
ログラム等のソフトウェアは、端末3とセンタ1とに分
割されて保存され、この分割されて保存され端末3で使
用されるソフトウェアのうち、端末3に保存され端末3
で使用されるソフトウェアの一部を端末サブソフトウェ
アと称し、センタ1に保存され端末3で使用されるソフ
トウェアの一部をセンタサブソフトウェアと称すること
にする。ここで、センタサブソフトウェアは、端末サブ
ソフトウェアを補完するソフトウェアである。
【0029】ここで、上述した端末3で使用されるソフ
トウェアとは、センタ1と端末3間のデータ転送を制御
するプロトコル制御ソフトウェアの主要部分を除く全て
のソフトウェアを対象とする。例えば、端末3で使用さ
れる各種アプリケーションプログラム、あるいは転送制
御の主要部分を除くオペレーションシステムレベルのプ
ログラム、データベースなどに使用されるデータ等を意
味しており、これらは全て本発明の適用対象となる。
【0030】また本発明が適用され得るセンタ1と端末
3とからなるシステムとは、例えばパソコン通信ネット
ワークの場合もあり、センタ1側からアプリケーション
ソフトウェアを配送するシステムである場合もある。
【0031】特に本発明は、アプリケーションソフトウ
ェアシステムを使用のたび毎に端末3に配送し、使用料
を徴収するようなソフトウェア流通システムに好適なも
のである。
【0032】図1に示すように、センタ1はセンタサブ
ソフトウェアを格納するセンタサブソフトウェア格納部
11、このセンタサブソフトウェア格納部11に格納さ
れたセンタサブソフトウェアを選択するセンタサブソフ
トウェア選択部12、乱数発生部13、および公衆回線
2を介して端末3と通信するための通信制御部14を有
し、また端末3は公衆回線2を介してセンタ1と通信す
るための通信制御部31および端末サブソフトウェアメ
モリ32を有する。
【0033】初期状態において、端末サブソフトウェア
は、複数の非連続なブロックとしてある程度の大きさの
領域を複数箇所空けてメモリ32上に展開される。図2
はこの様子を示しているが、番地A000,B000,
C000,D000,E000で始まる斜線を施したエ
リア(以下では、欠落パートと称する)がそれに当た
る。このように、端末サブソフトウェアは欠落パートを
有しているため、この端末サブソフトウェアだけを実行
しても、アプリケーションソフトウェアとしては正常な
動作をしない。
【0034】端末3上の欠落パートを含む端末サブソフ
トウェアは、例えば、フロッピーディスクやCD−RO
Mの形で配布され端末3のドライブからロードしたり、
センタ1からのファイル転送で配布される方法がある。
あるいは端末3のハードディスク上にあらかじめ記憶し
ておき、システム立上げ時やソフトウェア起動時にメモ
リ上に配置される場合もある。なお、ここでメモリ上の
欠落パートのアドレスと各パートのエリアの大きさのデ
ータは、センタ1側にあらかじめ設定されている。
【0035】端末サブソフトウェアの欠落パートに入る
ソフトウェアは、センタ1に非連続なブロックの形でセ
ンタサブソフトウェアとして保持されており、これらが
端末3の欠落パートにロードされることにより、アプリ
ケーションソフトウェアは完全なものとなる。しかしア
プリケーションソフトウェアは、全ての欠落パートにそ
れに対応するセンタサブソフトウェアが入らなければ動
作しないという訳ではない。
【0036】全センタサブソフトウェア分の欠落パート
を設ける方法では、センタ1側から全センタサブソフト
ウェアを一括して転送する方法もあるが、全ての欠落パ
ートにそれに対応するセンタサブソフトウェアが入らな
くても動作する構成にする方法もある。
【0037】例えば、センタサブソフトウェアが、アプ
リケーションの基本機能のソフトウェア部と拡張機能の
ソフトウェア部とを含んでいた場合、少なくとも基本機
能のソフトウェア部が端末3のメモリ上に格納されれ
ば、端末3のアプリケーションソフトウェアが使用可能
となる構成方法がある。
【0038】あるいは、ある特定の欠落パート(の組)
が埋められれば、端末3のアプリケーションソフトウェ
アは使用可能となる構成方法がある。
【0039】すなわち、図2のように番地A000から
始まる欠落パートと番地C000から始まる欠落パート
とがセンタサブソフトウェアで埋まるか、あるいは番地
B000から始まる欠落パートと番地D000から始ま
る欠落パートと番地E000から始まる欠落パートとが
センタサブソフトウェアで埋まるかのいずれの場合にも
動作する、という構成方法である。
【0040】ここで番地A000用と番地C000用の
センタサブソフトウェアの組と、番地B000用と番地
D000用と番地E000用のセンタサブソフトウェア
の組とは、各々サブソフトウェアの機能として完結して
おり、ソフトウェアの他の部分に影響がないインプリメ
ントであれば、機能的には同等でも異なっていても構わ
ない。
【0041】機能的に同等なセンタサブソフトウェアの
組をいくつか用意するのは、メモリ上に展開されるアプ
リケーションのイメージが毎回変わることで、イメージ
からの解析の解析の危険性を低減するためである。
【0042】いずれの組がダウンロードされるかは、セ
ンタ1側が決定し、その方法は例えばセンタ1側の乱数
計算による。一般にセンタサブソフトウェアの組がN個
ある場合は、あらかじめ各組に0からN−1の番号が与
えられており、乱数発生部13で発生した乱数をmod
Nで計算し、それに対応するセンタサブソフトウェア
の組をダウンロードする。
【0043】センタサブソフトウェアの組によって機能
が異なる場合も各センタサブソフトウェアの組には番号
が与えられている。センタ1側がどの機能のサブソフト
ウェアの組を端末3側に送信するかをユーザ側の要求、
あるいはセンタ1側の判断により決定することになる。
【0044】この場合、最初のダウンロードで基本的な
機能がダウンロードされ、後に端末3からの要求があっ
た場合、順次拡張機能をダウンロードしていく構成も可
能である。
【0045】機能的に異なるセンタサブソフトウェアの
組をいくつか用意するのは、似ているが異なった部分も
持ついくつかのアプリケーションについて、異なった部
分のみをセンタサブソフトウェアとすることで必要な機
能をダウンロードして、ソフトウェアの保護と同時に資
源の有効化を計るためである。
【0046】各センタサブソフトウェアの組に与えられ
た番号を以下ではセンタサブソフトウェア番号と呼ぶ。
これは端末3の通信制御部31が、どのセンタサブソフ
トウェアの組がダウンロードされたかを認識し、メモリ
上のどの位置の欠落パートに展開するかを決定するため
に使用される。
【0047】以下では各センタサブソフトウェアの組
が、互いに同じ機能を持つ場合について述べる。
【0048】すなわち図2において、太い矢印で示すダ
ウンロードかまたは点線の矢印で示すダウンロードのい
ずれかが行なわれれば同じ機能を持つようなアプリケー
ションソフトウェアが使用される。
【0049】それぞれのセンタサブソフトウェアの組、
すなわち番地A000用と番地C000用のセンタサブ
ソフトウェアの組と、番地B000用と番地D000用
と番地E000用のセンタサブソフトウェアの組の、い
ずれがダウンロードされるかは、例えばセンタ1側の乱
数計算による。
【0050】あらかじめ前者を0番、後者を1番として
おき、発生した乱数をmod 2で剰余計算する。これ
が0か1かにより、対応する番号の欠落パートの組を選
びダウンロードする。
【0051】図2の状態で、端末3がアプリケーション
ソフトウェアの使用を開始した場合、欠落パート部にセ
ンタサブソフトウェアが格納されているのか、あるいは
空きエリアであるのかを判定するためには以下の方法が
ある。
【0052】例えば、端末サブソフトウェアを端末3の
メモリに格納する初期設定時、欠落パート部の全ての領
域あるいは先頭番地などの特定の固定番地に“0”など
の固定値をリターンするコードを設定しておく。
【0053】又、センタサブソフトウェアの各ブロック
の固定番地、例えば先頭番地や最終番地などには、
“1”などの固定値をリターンするコードを設定してお
く。
【0054】このような設定により、センタ1から端末
3へセンタサブソフトウェアが転送され欠落パートに格
納されると、前記の欠落パートの内容がセンタサブソフ
トウェアに書き換えられることとなる。端末3内の端末
サブソフトウェアでは、センタサブソフトウェアの格納
エリア(番地A000や番地B000)内の固定番地か
らのデータやリターンされた値を調べ、センタサブソフ
トウェアが格納されていることを示す固定値(例えば
“1”)であればソフトウェアの使用を続行し、欠落パ
ートであることを示す固定値(例えば“0”)であれば
ソフトウェア使用を中止する。
【0055】例えば、端末サブソフトウェアの構造とし
ては、番地A000,番地B000は必ず”0”,”
1”のいずれかを返すとした場合、以下のものが考えら
れる。 if A000=“1” run from A000 if A000=“0” go to B000 if B000=“1” run from B000 if B000=“0” end この設定を行なうことで、正常に動作するためのパート
が欠落している場合に、システムが異常な動作を行なう
こと無しに、アプリケーションソフトウェアの動作を途
中で停止することができる。
【0056】さらに端末サブソフトウェアは、センタサ
ブソフトウェアの内それ以降の動作に必要のない部分を
ソフトウェアの動作中に逐次クリアする。
【0057】例えば図2において、センタサブソフトウ
ェアが番地A000から始まる欠落パートと番地C00
0から始まる欠落パートとにダウンロードされたとき、
端末3においてアプリケーションソフトウェアが使用さ
れ、番地A000から始まる欠落パートのセンタサブソ
フトウェアが使用完了すると、この欠落パートのセンタ
サブソフトウェアはクリアされる。これによりアプリケ
ーションソフトウェア全体がなるべくメモリ上に同時に
展開されないようにする。
【0058】一方、センタサブソフトウェアとして、ソ
フトウェア使用時の最大使用回数が事前に分かるような
性質を持つものを設定しておくと共に、それぞれ自分自
身の使用回数をカウントする領域を設ける。そしてソフ
トウェア使用時に、カウントが事前に設定された最大使
用回数に達すると、そのセンタサブソフトウェアをクリ
アする構造にしておく。このようにして、センタサブソ
フトウェアの内以降のソフトウェアの使用に不必要な部
分をメモリ上から順次クリアすることができる。
【0059】最大使用回数が事前に分かるような性質を
持つサブソフトウェアとしては次のようなものがある。 (1)ソフトウェアの構成上、明らかにある回数以上は
使用されないもの。
【0060】一回の実行について冒頭の一回だけ呼び出
されるソフトウェアの初期化機能の部分など。 (2)著作権管理者の要求として、ある回数以上は使用
させたくないもの。
【0061】一つのソフトウェアの使用中に呼び出され
るサブソフトウェアで、動画・静止画・音声・ゲームプ
ログラム等を使用回数に応じて料金を徴収する場合、あ
るいは試用ソフトウェアで使用回数を制限したい場合な
ど。尚、上記のようなセンタサブソフトウェアのクリア
の方法には次の二つがある。
【0062】一つは図3に示すようにセンタサブソフト
ウェア自身が自分を消す方法である。この方法では、セ
ンタサブソフトウェアの最終行の一行前に自分自身のク
リア命令が記述されており、最終行に端末サブソフトウ
ェアへ戻る命令が書かれている。この方法では最終行の
みはクリアされず残ることとなる。
【0063】もう一つは図4に示すように端末サブソフ
トウェアがセンタサブソフトウェアを消去する方法であ
る。
【0064】以上のようにしてソフトウェアの使用が終
わった時、ダウンロードされた全てのセンタサブソフト
ウェアは消去され、ダウンロード前の状態に初期化され
る。
【0065】ここで初期化されるとは、欠落パートをセ
ンタサブソフトウェアが展開される前の状態に戻すこと
である。これは例えば、欠落パートの全ての領域あるい
は先頭番地等の特定の固定番地に、欠落パートであるこ
とを示す“0”などの固定値をリターンするコードが再
び設定されることを意味する。
【0066】以下では、図5のシーケンスチャートに従
い上記のシステム全体の動作例を示す。
【0067】端末サブソフトウェアは起動後、センタ1
に接続され、”センタソフトウェア要求信号”をセンタ
1に送る(S101)。”センタサブソフトウェア要求
信号”を受信したセンタ1は乱数発生部13で乱数を発
生させた後、センタサブソフトウェア選択部12にて発
生した乱数に基づき、どのセンタサブソフトウェアの組
を選択するかを決定し(S102)、センタサブソフト
ウェア格納部11から、そのメモリ展開位置とともに取
り出し、通信制御部14を通して端末3に“センタサブ
ソフトウェア信号”としダウンロードする(S10
3)。
【0068】端末3の通信制御部31は、送信されてき
たセンタサブソフトウェアを、センタサブソフトウェア
番号に応じてメモリ上に展開し、使用する(S10
4)。
【0069】拡張機能としての別のセンタサブソフトウ
ェアの組が必要な時は、再度”センタサブソフトウェア
要求信号”をセンタ1に送りダウンロードを行ない、ソ
フトウェアを使用する(S105,S106,S10
7,S108)。
【0070】ソフトウェアの使用中に必要なくなったセ
ンタサブソフトウェアは使用中に随時クリアされる。ま
た、ダウンロードされたセンタサブソフトウェアで、ソ
フトウェア使用終了後に消去されていなかったものは全
てクリアされる(S109)。そしてセンタサブソフト
ウェアが消去された欠落パートは初期化される。
【0071】
【発明の効果】本発明によれば、アプリケーションソフ
トウェアは端末とセンタの両方に分割されて保持され、
端末上のソフトウェアは単独で動作することができなた
め、ソフトウェアが動作していない時に、端末において
解析しただけでは、アプリケーションソフトウェア全体
の構成を知ることは不可能である。
【0072】また端末利用者がアプリケーションソフト
ウェアを動作させる時には必ずセンタと回線を利用して
接続し、センタ上のソフトウェアをダウンロードして端
末上のソフトウェアと結合する必要があるとともに、ダ
ウンロードされるソフトウェアは毎回異なるように設定
され、結合された結果のソフトウェア配置も毎回異な
り、さらにメモリ上の使用済みの部分は適宜消去される
ため、ソフトウェア解析を困難なものとしている。
【0073】このためアプリケーションソフトウェアの
構造自体を複雑にすることなく、また暗号化することな
く、アプリケーションソフトウェアの解析を困難にし、
端末におけるアプリケーションソフトウェアの不正利用
を防止することができる。
【図面の簡単な説明】
【図1】本発明の一実施例に係わるソフトウェア解析保
護方法を実施するシステムの構成を示すブロック図であ
る。
【図2】上記実施例において端末サブソフトウェアとセ
ンタサブソフトウェアの関係を示す模式図である。
【図3】上記実施例において、センタサブソフトウェア
をクリアする方法の一例を示す模式図である。
【図4】上記実施例において、センタサブソフトウェア
をクリアする方法の他の例を示す模式図である。
【図5】上記実施例におけるシステム全体の動作例を示
すシーケンスチャートである。
【符号の説明】
1 センタ 2 公衆回線 3 端末 11 センタサブソフトウェア格納部 12 センタサブソフトウェア選択部 13 乱数発生部 14,31 通信制御部 32 端末サブソフトウェアメモリ
フロントページの続き (72)発明者 三宅 延久 東京都千代田区内幸町1丁目1番6号 日 本電信電話株式会社内 (72)発明者 寺内 敦 東京都千代田区内幸町1丁目1番6号 日 本電信電話株式会社内

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 センタと、該センタに接続された複数の
    端末で構成されたシステムにおいて、端末で使用される
    ソフトウェアが端末で解析されないように保護するソフ
    トウェア解析保護方法であって、 端末で使用されるソフトウェアを分割したソフトウェア
    部分を端末とセンタとに分配して保持し、 端末において前記ソフトウェアを使用する毎に、端末か
    らセンタに保持されたソフトウェア部分を要求し、 端末からの要求に応じてセンタに保持されたソフトウェ
    ア部分を端末に送信し、センタから送信されたソフトウ
    ェア部分をメモリ上の端末に保持されたソフトウェア部
    分中の欠落部分にロードすることにより、前記ソフトウ
    ェアの前記メモリ上に展開された配置パターンを前記ソ
    フトウェアが端末で使用される毎に変更しながら、前記
    ソフトウェアを端末上で動作可能とし、 前記メモリ上に展開された前記ソフトウェアを端末上で
    動作させる、 ことからなるソフトウェア解析保護方法。
  2. 【請求項2】 請求項1記載のソフトウェア解析保護方
    法において、センタに保持されたソフトウェア部分は異
    なる機能を持った複数のソフトウェア部分の組を含み、
    センタは端末に送信する一つのソフトウェア部分の組を
    端末からの要求又はセンタの判断により選択することに
    より、端末で動作させる前記ソフトウェアの機能を変更
    することを特徴とするもの。
  3. 【請求項3】 請求項1記載のソフトウェア解析保護方
    法において、センタに保持されたソフトウェア部分は同
    じ機能を持った複数のソフトウェア部分の組を含み、セ
    ンタは端末に送信する一つのソフトウェア部分の組を乱
    数に基づいて選択することにより、前記ソフトウェアの
    前記メモリ上に展開された配置パターンを前記ソフトウ
    ェアが端末で使用される毎に変更することを特徴とする
    もの。
  4. 【請求項4】 請求項1記載のソフトウェア解析保護方
    法において、センタに保持されたソフトウェア部分は複
    数のソフトウェア部分の組を含み、センタは端末に送信
    する一つのソフトウェア部分の組を選択し、前記ソフト
    ウェアはセンタから送信された該ソフトウェア部分の組
    が前記メモリ上の対応する欠落部分にロードされた時に
    端末上で少なくとも部分的に動作可能となることを特徴
    とするもの。
  5. 【請求項5】 請求項1記載のソフトウェア解析保護方
    法において、センタは前記複数のソフトウェア部分の組
    を、前記ソフトウェアの動作の進行に伴う端末からの要
    求に応じて順次送信することを特徴とするもの。
  6. 【請求項6】 請求項1記載のソフトウェア解析保護方
    法において、欠落部分にロードされたソフトウェア部分
    は前記ソフトウェアの使用終了後に前記メモリからクリ
    アされることを特徴とするもの。
  7. 【請求項7】 請求項1記載のソフトウェア解析保護方
    法において、欠落部分にロードされたソフトウェア部分
    は前記ソフトウェアの以降の動作に不必要となるに従い
    前記ソフトウェアの動作中に順次前記メモリからクリア
    されることを特徴とするもの。
  8. 【請求項8】 請求項1記載のソフトウェア解析保護方
    法において、欠落部分にロードされたソフトウェア部分
    は端末に保持されたソフトウェア部分に設けられたコマ
    ンドにより前記メモリからクリアされることを特徴とす
    るもの。
  9. 【請求項9】 請求項1記載のソフトウェア解析保護方
    法において、欠落部分にロードされたソフトウェア部分
    はセンタに保持され欠落部分にロードされたソフトウェ
    ア部分に設けられたコマンドにより前記メモリからクリ
    アされることを特徴とするもの。
  10. 【請求項10】 請求項1記載のソフトウェア解析保護
    方法において、センタに保持された各ソフトウェア部分
    は既知の該各ソフトウェア部分の最大使用回数と、該各
    ソフトウェア部分の実使用回数のカウントとを有し、欠
    落部分にロードされた該各ソフトウェア部分は前記実使
    用回数のカウントが前記最大使用回数に達した時に前記
    メモリからクリアされることを特徴とするもの。
  11. 【請求項11】 請求項1記載のソフトウェア解析保護
    方法において、端末に保持されたソフトウェア部分は前
    記ソフトウェア中の複数の非連続なブロックであること
    を特徴とするもの。
  12. 【請求項12】 請求項1記載のソフトウェア解析保護
    方法において、センタに保持されたソフトウェア部分は
    前記ソフトウェア中の複数の非連続なブロックであり、
    センタに保持されたソフトウェア部分の非連続なブロッ
    クは該非連続なブロック同志間の順序と異なる順番で送
    信されることを特徴とするもの。
  13. 【請求項13】 請求項1記載のソフトウェア解析保護
    方法において、センタに保持された各ソフトウェア部分
    はそれがセンタに保持されたソフトウェア部分であるこ
    とを示す或る固定値を返す或るコードを該各ソフトウェ
    ア部分内の所定のアドレスに有し、前記メモリ上の各欠
    落部分はそれが欠落部分であることを示す別の固定値を
    返す別のコードを該各欠落部分内の所定のアドレスに有
    し、端末上で前記ソフトウェアの動作中に前記別の固定
    値が返された時に前記ソフトウェアの動作が中断される
    ことを特徴とするもの。
  14. 【請求項14】 センタと、該センタに接続された複数
    の端末で構成されたシステムにおいて、端末で使用され
    るソフトウェアが端末で解析されないように保護するソ
    フトウェア解析保護方法であって、 端末で使用されるソフトウェアを分割したソフトウェア
    部分を端末とセンタとに分配して保持し、 センタに保持されたソフトウェア部分を端末に送信し、
    センタから送信されたソフトウェア部分をメモリ上の端
    末に保持されたソフトウェア部分中の欠落部分にロード
    することにより、前記ソフトウェアを端末上で動作可能
    とし、 前記メモリ上に展開された前記ソフトウェアを端末上で
    動作させる、ことからなるソフトウェア解析保護方法。
  15. 【請求項15】 請求項14記載のソフトウェア解析保
    護方法において、センタに保持されたソフトウェア部分
    は端末において前記ソフトウェアを使用する毎に、端末
    からの要求に応じてセンタから端末に送信されることを
    特徴とするもの。
  16. 【請求項16】 請求項14記載のソフトウェア解析保
    護方法において、センタに保持されたソフトウェア部分
    は複数のブロックに分けて送信されることを特徴とする
    もの。
  17. 【請求項17】 請求項14記載のソフトウェア解析保
    護方法において、前記ソフトウェアの前記メモリ上に展
    開された配置パターンは前記ソフトウェアが端末で使用
    される毎に変更されることを特徴とするもの。
  18. 【請求項18】 請求項14記載のソフトウェア解析保
    護方法において、センタに保持されたソフトウェア部分
    は複数のソフトウェア部分の組を含み、センタは端末に
    送信する一つのソフトウェア部分の組を選択し、前記ソ
    フトウェアはセンタから送信された該ソフトウェア部分
    の組が前記メモリ上の対応する欠落部分にロードされた
    時に端末上で少なくとも部分的に動作可能となることを
    特徴とするもの。
  19. 【請求項19】 請求項14記載のソフトウェア解析保
    護方法において、欠落部分にロードされたソフトウェア
    部分は前記ソフトウェアの使用終了後に前記メモリから
    クリアされることを特徴とするもの。
  20. 【請求項20】 請求項14記載のソフトウェア解析保
    護方法において、欠落部分にロードされたソフトウェア
    部分は前記ソフトウェアの以降の動作に不必要となるに
    従い前記ソフトウェアの動作中に順次前記メモリからク
    リアされることを特徴とするもの。
JP10517795A 1994-04-28 1995-04-28 ソフトウェア解析保護方法 Expired - Fee Related JP3463963B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10517795A JP3463963B2 (ja) 1994-04-28 1995-04-28 ソフトウェア解析保護方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9213494 1994-04-28
JP6-92134 1994-04-28
JP10517795A JP3463963B2 (ja) 1994-04-28 1995-04-28 ソフトウェア解析保護方法

Publications (2)

Publication Number Publication Date
JPH0816385A true JPH0816385A (ja) 1996-01-19
JP3463963B2 JP3463963B2 (ja) 2003-11-05

Family

ID=26433612

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10517795A Expired - Fee Related JP3463963B2 (ja) 1994-04-28 1995-04-28 ソフトウェア解析保護方法

Country Status (1)

Country Link
JP (1) JP3463963B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11312081A (ja) * 1998-04-28 1999-11-09 Sharp Corp データ処理装置
JP2003271255A (ja) * 2002-03-12 2003-09-26 Ntt Comware Corp 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体
JP2007514193A (ja) * 2003-12-11 2007-05-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
JP2010250444A (ja) * 2009-04-13 2010-11-04 Ccr Co Ltd コンピューター実行コードの分析及び操作防止のための任意コード実行システム
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
US7930743B2 (en) 2006-09-01 2011-04-19 Fuji Xerox Co., Ltd. Information processing system, information processing method, information processing program, computer readable medium and computer data signal
JP2017505930A (ja) * 2014-10-21 2017-02-23 スンシル ユニバーシティー リサーチ コンソルティウム テクノ−パークSoongsil University Research Consortium Techno−Park ユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11312081A (ja) * 1998-04-28 1999-11-09 Sharp Corp データ処理装置
JP2003271255A (ja) * 2002-03-12 2003-09-26 Ntt Comware Corp 実行プログラム作成システム、実行プログラム販売方法、実行プログラム作成システム用プログラム、実行プログラム作成システム用記録媒体
JP2007514193A (ja) * 2003-12-11 2007-05-31 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
US8023651B2 (en) 2003-12-11 2011-09-20 Irdeto B.V. Block ciphering system, using permutations to hide the core ciphering function of each encryption round
JP2012037904A (ja) * 2003-12-11 2012-02-23 Irdeto Corporate Bv 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
JP4884976B2 (ja) * 2003-12-11 2012-02-29 イルデト・コーポレート・ビー・ヴイ 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
US7930743B2 (en) 2006-09-01 2011-04-19 Fuji Xerox Co., Ltd. Information processing system, information processing method, information processing program, computer readable medium and computer data signal
EP2420949A1 (en) 2006-09-01 2012-02-22 Fuji Xerox Co., Ltd. Information processing system, information processing method, information processing program, computer readable medium and computer data signal
EP2420950A1 (en) 2006-09-01 2012-02-22 Fuji Xerox Co., Ltd. Information processing system, information processing method, information processing program, computer readable medium and computer data signal
JP2010250444A (ja) * 2009-04-13 2010-11-04 Ccr Co Ltd コンピューター実行コードの分析及び操作防止のための任意コード実行システム
JP2017505930A (ja) * 2014-10-21 2017-02-23 スンシル ユニバーシティー リサーチ コンソルティウム テクノ−パークSoongsil University Research Consortium Techno−Park ユーザ端末機及びそれを用いた応用プログラムの核心コード保護方法

Also Published As

Publication number Publication date
JP3463963B2 (ja) 2003-11-05

Similar Documents

Publication Publication Date Title
US6457126B1 (en) Storage device, an encrypting/decrypting device and method of accessing a non-volatile memory
JP3638770B2 (ja) テスト機能を備える記憶装置
EP1361511A1 (en) Data processing method and its apparatus
JPH08305558A (ja) 暗号化プログラム演算装置
RU2265961C2 (ru) Улучшения в распределении контента и относящиеся к нему операции
US7953985B2 (en) Memory card, application program holding method, and holding program
JP2001356963A (ja) 半導体装置およびその制御装置
JP2001184186A5 (ja) 画像処理装置、画像処理方法及び記憶媒体
JP3463963B2 (ja) ソフトウェア解析保護方法
KR100346411B1 (ko) 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
US7000144B2 (en) Information management apparatus, information management system, and information management software
CN112311536A (zh) 密钥分级管理方法及系统
JPH10271107A (ja) データ暗号化方法及び装置
JP2006146608A (ja) メモリ情報保護システムおよびメモリ情報の保護方法
US20060129845A1 (en) Memory information protection system and methods
JP3034118B2 (ja) Icカードシステム及びicカード
JP2779092B2 (ja) Icカードとそのデータ記憶用メモリの消去方法
JP4831957B2 (ja) コピー防止回路装置およびコピー防止方法
JP2002169740A (ja) 情報再生端末及びicカード
JP2006059227A (ja) Icカード
JP5339860B2 (ja) 取り外し可能な不揮発性補助記憶装置
US7744003B2 (en) Microcircuit card whereof the performances can be modified after personalization
US20040005055A1 (en) Method and system for digital watermarking
CN1894647B (zh) Java应用所使用数据的保护系统
JP4183982B2 (ja) デジタル署名システム

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080822

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees