(57)【特許請求の範囲】
【請求項１】
ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうち、いずれか１つを識別する分析部と、
前記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付けするプロファイリング部と、
プロファイリングされた機能モジュールに属性情報とユーザフィードバックによる点数を与える評価部と、
前記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する抽出部と、
前記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入するインターフェーシング部と、
前記インターフェーシングコードが挿入された機能モジュールの命令語のセットをスマートカードのアーキテクチャに従って変換する変換部と、
異種のアーキテクチャを仮想的に操作するエミュレーション部を含み、
前記抽出部は、前記ソフトウェアから前記最も高い点数を獲得した機能モジュールを分離する過程で、アーキテクチャ特殊命令語使用情報、及びシステムコール（System Call）に対する構成要素を分離しないことを特徴とする、ソフトウェア分離実行装置。
【請求項２】
前記評価部は、
入出力ダイナミシティ属性情報、特定の進行状態に到達するための必須要素有無属性情報、スタック使用量、メモリーレファレンス回数属性情報、アーキテクチャ特殊命令語使用有無属性情報、使用頻度属性情報、使用時点属性情報、実行負荷属性情報、制御流れ属性情報、モジュール内の独立変数個数属性情報、及び分離実行時の実行遅延時間属性情報のうち、１つ以上の属性情報によって前記点数を算出することを特徴とする、請求項１に記載のソフトウェア分離実行装置。
【請求項３】
前記ソフトウェアは、
ダイナミックコードインジェクションを通じたインストルメンテーション、ランタイムデバッガ、仮想マシン、及び実行状態予測のための要約実行インタープリターのうち、少なくとも１つ以上のソフトウェアを含むことを特徴とする、請求項１に記載のソフトウェア分離実行装置。
【請求項４】
ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうちのいずれか１つを識別するステップと、
前記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付けするステップと、
プロファイリングされた機能モジュールに属性情報とユーザフィードバックによる点数を与えるステップと、
前記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離するステップと、
前記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入するステップと、
前記インターフェーシングコードが挿入された機能モジュールの命令語のセットをスマートカードのアーキテクチャに従って変換するステップと、
前記変換されたコードと原本コードとを同時に実行して前記変換されたコードの確認を行い、前記変換されたコードの正常動作を検証するステップを含み、
前記分離するステップにおいて、前記ソフトウェアから前記最も高い点数を獲得した機能モジュールを分離する過程で、アーキテクチャ特殊命令語使用情報、及びシステムコール（System Call）に対する構成要素を分離しないことを特徴とする、
ソフトウェア分離実行方法。
【請求項５】
請求項４によるソフトウェア分離実行方法の各ステップを実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本特許出願は、２００８年１２月２９日に韓国に出願した特許出願番号第１０−２００８−０１３５３０８号に対し、米国特許法１１９（ａ）条（３５ Ｕ．Ｓ．Ｃ§１１９（ａ））に従って優先権を主張しており、その全ての内容は参考文献として本特許出願に取り込まれる。併せて、本特許出願は、米国以外の国家に対しても上記と同一理由により優先権を主張し、その全ての内容は参考文献として本特許出願に取り込まれる。
【０００２】
本発明は、ソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体に関し、より詳しくは、特定のソフトウェアに対し、静的バイナリ（Static Binary）分析（Static Analysis）、またはランタイムプロファイリング（Runtime Profiling）（即ち、ダイナミック分析）を通じて制御流れ、データ流れ、及びモジュール構造を分析して重要モジュールを識別し、該当モジュールを本体から分離して安全（Secure）な実行環境を有するスマートカードに格納し、ユーザ端末機には、該当モジュールが除去され、インターフェースコードに取り替えられた修正された本体を格納して、ソフトウェアの使用時、ユーザ端末とスマートカードがコプロセッシング（Co-Processing）することで、スマートカードがユーザ端末機に締結される場合のみに実行可能であるように具体化するソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体に関する。
【背景技術】
【０００３】
一般に、ソフトウェアは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの媒体を通じてオフライン（Off-line）上で直接販売されたり、該当ソフトウェア会社のインターネットサイトを用いて消費者がダウンロードする方式により販売がなされる。ソフトウェア（Ｓ／Ｗ）製品を購入したユーザが製品を設置し、使用するためには、ソフトウェア製造会社でＣＤ−ＲＯＭなどと共に提供する正規商品認証用ＣＤ−キー（CD-Key）の入力を必要とする。
【０００４】
しかしながら、正規商品認証用ＣＤ−キーは一般テキスト形式でユーザが入力するよう露出されているので、ＣＤ−キーとＣＤ−ＲＯＭをそのままコピーして第３者が不法的に使用する事例が頻繁に発生する問題を抱いている。更に、このようなユーザはＣＤ−キーのない場合でも不法に作られたＣＤ−キー生成プログラムを利用したり、ＣＤ−キー認証プログラムをクラッキング（cracking）する方法などを動員してソフトウェアの正規商品認証方法をハッキングしているので、Ｐ２Ｐサイトなどを通じて不法な共有がなされてソフトウェア著作権保護に大きい被害を与えている。
【０００５】
ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭの特別なトラックに認証情報を格納し、ソフトウェア駆動時、該当認証情報無しで駆動できないようにする、即ち正規商品ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭがユーザ端末機に挿入されていなければ実行できないようにする方法も使われているが、本体ソフトウェアから該当認証部分を削除するクラック方法を通じて容易に無力化されている。
【０００６】
ここに、プリントポート（Printer Port）やＵＳＢポートに別途のハードウェア装置を連結し、ソフトウェアで該当装置の存在有無を確認したり、該当装置に暗号化、復号化用のキー値とアルゴリズムを内蔵して実行時点で暗号されたコードを解除する方式のソフトウェア複製防止装置も使われている。しかしながら、実行時点にソフトウェアが結局は復号化されてメモリーにロードせざるを得ない構造的な問題によって、該当装置無しでソフトウェアを使用することができるようにするハッキング事例がよく発生し、甚だしくは有名なソフトウェア複製防止技術の場合、専門技術のない一般人もハッキングすることができる自動化されたハッキング道具が配布される事例もある。その他にも、仮想の実行環境（Virtual Machine）を通じてリバースエンジニアリング（Reverse Engineering）を難しくしてソフトウェアの認証キー確認ロジックを保護する方法が試図されたが、これもまたハッキング事例及び自動化されたハッキング道具配布事例が存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した問題点を解決するために、本発明は、スマートカードがユーザ端末機に締結される場合のみに実行可能であるように具体化するソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体を提供して不法複製を防止することを主な目的とする。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために、本発明は、ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうち、いずれか１つを識別する分析（Analysis）部と、上記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付け（Tagging）するプロファイリング（Profiling）部と、プロファイリングされた機能モジュール（Function Module）に属性情報とユーザフィードバックによる点数を与える評価（Assessment）部と、上記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディー（Body）から分離する抽出（Extraction）部と、上記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを連結するための入出力インターフェーシングコードを挿入するインターフェーシング（Interfacing）部と、を含むことを特徴とする、ソフトウェア分離実行装置を提供する。
【０００９】
また、本発明の他の目的によれば、ソフトウェアの制御流れ、データ流れ、及びモジュール構造のうちのいずれか１つを識別するステップと、上記ソフトウェアの各モジュール別に実行状態及び属性情報をタグ付け（Tagging）するステップと、プロファイリングされた機能モジュールに属性情報とユーザフィードバックによる点数を与えるステップと、上記評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディー（Body）から分離するステップと、上記本体ボディーから分離されたモジュールとユーザ端末機用バイナリコードとを連結するための入出力インターフェーシングコードを挿入するステップと、を含むことを特徴とする、ソフトウェア分離実行方法を提供する。
【００１０】
また、本発明の他の目的によれば、前述したソフトウェア分離実行方法の各ステップを実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供する。
【発明の効果】
【００１１】
以上、説明したように、本発明によれば、既存のソフトウェア複製防止技術に比べて、スマートカードという物理的に安全な実行環境でコードを保護することで、リバースエンジニアリングを通じたクラック（Crack）を根本的に防止できる効果がある。また、本発明によれば、スマートカードとユーザ端末との間のクライアント（Client-Server）方式のコプロセッシング技法（Co-Processing Scheme）で複製防止効果が生じるので、システムアーキテクチャに依存するアンチデバッギング（Anti-Debugging）技法や、効果が不明で、かつ複雑なコード暗復号化方法に依存する必要がなくなり、これによってクラック技法との消耗的な保安パッチ作業の手間を省くことができる効果がある。また、本発明によれば、ドングルまたは光メディアの特殊トラックとのデータ通信保護、リバースエンジニアリングツール（Reverse Engineering Tool）探知などのために、ユーザ端末環境に付加的な機能を設置することによって、発生していた誤りの可能性を避けることができる効果がある。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係るソフトウェア分離実行装置を概略的に示すブロック構成図である。
【図２】本発明の実施形態に係るソフトウェア分離実行方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の一部の実施形態を添付した図面を参照しつつ詳細に説明する。各図面の構成要素に参照符号を付加するに当たって、同一な構成要素に対してはたとえ他の図面上に表示されても、できる限り同一な符号を有するようにしていることに留意しなければならない。また、本発明を説明するに当たって、関連した公知構成または機能に対する具体的な説明が本発明の要旨を曖昧にすることができると判断される場合にはその詳細な説明は省略する。
【００１４】
また、本発明の構成要素を説明するに当たって、第１、第２、Ａ、Ｂ、（ａ）、（ｂ）などの用語を使用することができる。このような用語はその構成要素を他の構成要素と区別するためのものであり、その用語により当該構成要素の本質や回順序または順序などが限定されない。どの構成要素が他の構成要素に“連結（connected）”、“結合（coupled）”、または“接続（linked）”されると記載された場合、その構成要素はその他の構成要素に直接的に連結、または接続できるが、各構成要素の間に更に他の構成要素が“連結”、“結合”、または“接続”されることもできると理解されるべきである。
【００１５】
図１は、本発明の実施形態に係るソフトウェア分離実行装置を概略的に示すブロック構成図である。
【００１６】
本実施形態に係るソフトウェア分離実行装置１００は、分析（Analysis）部１１０、プロファイリング（Profiling）部１２０、評価（Assessment）部１３０、抽出（Extraction）部１４０、インターフェーシング（Interfacing）部１５０、変換（Transformation）部１６０、及び検証（Verification）部１７０を含む。
【００１７】
本実施形態ではソフトウェア分離実行装置１００が分析部１１０、プロファイリング部１２０、評価部１３０、抽出部１４０、インターフェーシング部１５０、変換部１６０、及び検証部１７０のみを含んで構成されるものと記載しているが、これは本実施形態の技術事象を例示的に説明したものに過ぎないものであって、本実施形態が属する技術分野で通常の知識を有する者であれば、本実施形態の本質的な特性から逸脱しない範囲でソフトウェア分離実行装置１００に含まれる構成要素に対して多様に修正及び変形して適用可能である。
【００１８】
分析部１１０は、オブジェクトコード（Object Code）でビルド（Build）されたバイナリファイル（Binary File）を逆アセンブル（Disassemble）状態、またはソースファイル（Source File）状態で、セマンチック（Semantic）分析、またはインタープリター（Interpreter）を通じた要約実行（インプットデータ（Input Data）と制御流れ（Control Flow）を見積もって実行）をして見たり（以上、セマンチック分析）、分析対象ソフトウェアをソース状態またはバイナリコード（Binary Code）で機能モジュール（Function Module）を追跡（Tracing）するための追跡コードを挿入し、実際に実行して見ながらログ（Log）を蓄積して（以上、ダイナミック分析）実行流れ（Control）、データ流れ（Data Flow）、モジュール構造（Module Structure）を解き明かす作業を遂行する。分析部１１０は、ダイナミックコードインジェクション（Dynamic Code Injection）またはソース（source）修正を通じたインストルメンテーション（instrumentation）、ランタイム（runtime）デバッガ（Debugger）、仮想マシン（Virtual Machine）、実行状態の予測のための要約実行インタープリターのうち、少なくとも１つ以上の技術を活用してソフトウェアの動作状態をモニターリングまたは予測して分析する。一方、本発明の分析部１１０は、本発明の本質的な特性から逸脱しない範囲で計測部（Instrumentation）として具体化できる。計測部は、ソフトウェアのバイナリコード（Binary Code）を読み込んだ後、ファンクションモジュール（Function Module）を追跡（Tracing）するための追跡コードを挿入する機能を遂行することで具体化できる。
【００１９】
プロファイリング部１２０は、各モジュール別に実行状態及び属性情報タグ（Tag）を生成する機能を遂行する。一方、プロファイリング部１２０は、本発明の本質的な特性から逸脱しない範囲でソフトウェアを実行して追跡ログ（Tracing Log）情報を生成し、ソフトウェアの進行状態別に各ログにタグ（Tag）を生成する機能を遂行することで具体化できる。
【００２０】
評価部１３０は、プロファイリングされた機能モジュールに特定の属性情報とユーザフィードバックに基づいて点数を与える機能を遂行する。評価部１３０は、入出力ダイナミシティ（Input/Output Dynamicity）属性情報、特定進行状態に到達するための必須要素有無属性情報、スタック使用量、メモリーレファレンス（Memory Reference）回数属性情報、アーキテクチャ特殊命令語（Architecture Specific Instruction）使用有無属性情報、使用頻度属性情報、使用時点属性情報、実行負荷属性情報、制御流れ属性情報、モジュール内の独立変数個数属性情報、及び分離実行時の実行遅延時間属性情報のうち、１つ以上の属性情報によって点数を算出する機能を遂行する。一方、評価部１３０は、本発明の本質的な特性から逸脱しない範囲でプロファイリングされたファンクションモジュールに特定の属性情報に基づいて算出した点数を与える機能を遂行することで具体化できる。また、評価部１３０は、入出力ダイナミシティ属性情報、コードランタイムロード（Code Runtime Load）属性情報、特定の進行状態に到達するための必須要素有無属性情報、メモリーレファレンス回数属性情報、アーキテクチャ特殊命令語使用有無属性情報、及び使用頻度属性情報のうち、１つ以上の属性情報によって点数を算出することで具体化できる。
【００２１】
抽出部１４０は、評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディー（Body）から分離する機能を遂行する。抽出部１４０は、最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する過程でアーキテクチャ特殊命令語使用情報及びシステムコール（System Call）に対する構成要素を分離しない。一方、抽出部１４０は、本発明の本質的な特性から逸脱しない範囲で、評価部１３０で最も高い点数を獲得したファンクションモジュールのボディーを分離する機能を遂行することで具体化でき、ボディーを分離する過程でメモリーレファレンス、アーキテクチャ特殊命令語使用情報、及びシステムコール（System Call）に対する構成要素は分離しないことで具体化できる。
【００２２】
インターフェーシング部１５０は、スタックプッシュ／ポップ（Stack Push/Pop）、レジスタ（Register）変数等、コードモジュール間の入出力をスマートカードとのリモートプロシージャコール（Remote Procedure Call）に取り替える。ここで、ユーザ端末機はソフトウェアを演算、制御、及び格納するためのメモリー、プログラムを実行して演算及び制御するためのマイクロプロセッサーなどを具備している端末機をいうものであり、個人用コンピュータ（ＰＣ：Personal Computer）、ノートブック、個人携帯用情報端末機（ＰＤＡ：Personal Digital Assistant）、及び移動通信端末機（Mobile Communication Terminal）等のうちのいずれか１つでありうる。一方、本発明でのインターフェーシング部１５０は、本発明の本質的な特性から逸脱しない範囲でボディーが分離されたファンクションモジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入する機能を遂行することで具体化できる。また、インターフェーシング部１５０は、スタックプッシュ／ポップ（Stack Push/Pop）を通じた入出力をＵＳＢ入出力に取り替えるように具体化できる。
【００２３】
変換部１６０は、インターフェーシングコードが挿入された機能モジュールの命令語のセット（Instruction Set）をスマートカード（Smart Card）のアーキテクチャに応じて変換するように機能する。ここで、スマートカードとは、マイクロプロセッサー、カード運営体制、保安モジュール、メモリーなどを具備することによって、特定の業務を処理することができる集積回路チップ（IC Chip）を内蔵したプラスチック形式のカードをいう。検証部１７０は、変換部で変換されたコードを実行して正常動作か否かを検証する機能を遂行する。
【００２４】
一方、ソフトウェア分離実行装置１００は、異種のアーキテクチャを仮想的に操作するエミュレーション部を更に含むことができる。
【００２５】
図２は、本発明の実施形態に係るソフトウェア分離実行方法を説明するためのフローチャートである。
【００２６】
分析部１１０は、ソフトウェアの制御流れ、データ流れ、及びモジュール構造を分析する（Ｓ２１０）。一方、分析部１１０が本発明の本質的な特性から逸脱しない範囲で計測部として具体化される場合、計測部はソフトウェアのバイナリコード（Binary Code）を読み込んだ後、ファンクションモジュール（Function Module）を追跡（Tracing）するための追跡コードを挿入することができる。
【００２７】
プロファイリング部１２０は、ソフトウェアの各モジュール毎に実行状態及び属性情報タグ（Tag）を生成する（Ｓ２２０）。一方、プロファイリング部１２０は本発明の本質的な特性から逸脱しない範囲でソフトウェアを実行して追跡ログ（Tracing Log）情報を生成し、ソフトウェアの進行状態別に各ログにタグ（Tag）を生成することができる。ここで、評価部１３０は入出力ダイナミシティ（Input/Output Dynamicity）属性情報、特定進行状態に到達するための必須要素有無属性情報、スタック使用量、メモリーレファレンス（Memory Reference）回数属性情報、アーキテクチャ特殊命令語（Architecture Specific Instruction）使用有無属性情報、モジュールで使われる独立変数の数、実行時間、演算量、及び使用頻度属性情報のうち、１つ以上の属性情報によって点数を算出することができる。一方、評価部１３０は、本発明の本質的な特性から逸脱しない範囲で入出力ダイナミシティ属性情報、コードランタイムロード（Code Runtime Load）属性情報、特定の進行状態に到達するための必須要素有無属性情報、メモリーレファレンス回数属性情報、アーキテクチャ特殊命令語使用有無属性情報、及び使用頻度属性情報のうち、１つ以上の属性情報によって点数を算出することで具体化できる。
【００２８】
抽出部１４０は、評価部で最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する（Ｓ２４０）。一方、抽出部１４０は、最も高い点数を獲得したモジュールをソフトウェアの本体ボディーから分離する過程でメモリーレファレンス、アーキテクチャ特殊命令語使用情報、及びシステムコール（System Call）に対する構成要素を分離しない。
【００２９】
インターフェーシング部１５０は、本体ボディーから分離された機能モジュールとユーザ端末機用バイナリコードとを接続するための入出力インターフェーシングコードを挿入する（Ｓ２５０）。例えば、インターフェーシング部１５０は、スタックプッシュ／ポップ（Stack Push/Pop）、レジスタ変数等、モジュール間の入出力をリモートプロシージャコール形態に取り替える。一方、インターフェーシング部１５０は、本発明の本質的な特性から逸脱しない範囲でボディーが分離されたファンクションモジュールとユーザ端末機用バイナリコードとを連結するための入出力インターフェーシングコードを挿入することで具体化できる。即ち、インターフェーシング部１５０は、スタックプッシュ／ポップ（Stack Push/Pop）を通じた入出力をＵＳＢ入出力に取り替えることができる。
【００３０】
変換部１６０は、インターフェーシングコードが挿入された機能モジュールの命令語のセット（Instruction Set）をスマートカード（Smart Card）のアーキテクチャに応じて変換する（Ｓ２６０）。検証部１７０は、変換部で変換されたコードと原本コードとを同時に実行して原本コードの実行結果と比較して変換されたコードが正常動作か否かを検証する（Ｓ２７０）。一方、検証部１７０は、本発明の本質的な特性から逸脱しない範囲で、変換部１６０で変換されたコードを実行して正常動作か否かを検証することで具体化できる。
【００３１】
図２ではソフトウェア分離実行方法がステップＳ２１０乃至ステップＳ２７０を順次に実行するものと記載しているが、これは本実施形態の技術事象を例示的に説明したものに過ぎないものであって、本実施形態が属する技術分野で通常の知識を有する者であれば、本実施形態の本質的な特性から逸脱しない範囲でソフトウェア分離実行方法が図２に記載された順序を変更して実行したり、ステップＳ２１０乃至ステップＳ２７０のうち、１つ以上のステップを並列的に実行することによって多様に修正及び変形して適用可能であるので、図２の時系列的な順序に限定されるものではない。
【００３２】
前述したように、図２に記載された本実施形態に係るソフトウェア分離実行方法はプログラムで具体化され、コンピュータで読み取り可能な記録媒体に記録されることができる。
【００３３】
本実施形態に係るソフトウェア分離実行方法を具体化するためのプログラムが記録され、コンピュータが読み取り可能な記録媒体は、コンピュータシステムによって読み取り可能なデータが格納される全ての種類の記録装置を含む。
【００３４】
このようなコンピュータが読み取り可能な記録媒体の例には、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ格納装置などがあり、また、キャリアウェーブ（例えば、インターネットを通じた転送）の形態で具体化されるものも含む。また、コンピュータが読み取り可能な記録媒体は、ネットワークにより連結された分散型コンピュータシステムにおいて提供され、分散された場所でコンピュータ読み取り可能なコードが格納され、実行されても良い。
【００３５】
また、本実施形態を具体化するための機能的な（Functional）プログラム、コード、及びコードセグメントは、本実施形態が属する技術分野のプログラマーにより容易に推論できるものである。
【００３６】
以上、本発明の実施形態を構成する全ての構成要素が１つに結合されるか、結合されて動作することと説明されたが、本発明が必ずこのような実施形態に限定されるものではない。即ち、本発明の目的範囲内であれば、その全ての構成要素が１つ以上に選択的に結合して動作することもできる。また、その全ての構成要素が各々１つの独立的なハードウェアで具体化されることができるが、各構成要素のその一部または全部が選択的に組み合わせて１つまたは複数個のハードウェアで組み合わせた一部または全部の機能を遂行するプログラムモジュールを有するコンピュータプログラムとして具体化されることもできる。そのコンピュータプログラムを構成するコード及びコードセグメントは本発明の技術分野の当業者により容易に推論できるものである。このようなコンピュータプログラムは、コンピュータが読取可能な格納媒体（Computer Readable Media）に格納されてコンピュータによって読取され、実行されることによって、本発明の実施形態を具体化することができる。コンピュータプログラムの格納媒体としては、磁気記録媒体、光記録媒体、キャリアウェーブ媒体などを含むことができる。
【００３７】
また、以上で記載された“含む（include）”、“構成する（comprise）”、または“有する（have）”などの用語は、特別に反対になる記載がない限り、該当構成要素が内在できることを意味するものであるので、他の構成要素を除外するのでなく、他の構成要素を更に含むことができることと解釈されるべきである。技術的または科学的な用語を含んだ全ての用語は、異に定義されない限り、本発明が属する技術分野で通常の知識を有する者により一般的に理解されることと同一な意味を有する。事前に定義された用語のように、一般的に使われる用語は関連技術の文脈上の意味と一致するものと解釈されるべきであり、本発明で明らかに定義しない限り、理想的であるとか、過度に形式的な意味として解釈されない。
【００３８】
以上の説明は、本発明の技術思想を例示的に説明したことに過ぎないものであって、本発明が属する技術分野で通常の知識を有する者であれば、本発明の本質的な特性から逸脱しない範囲で多様な修正及び変形が可能である。したがって、本発明に開示された実施形態は本発明の技術思想を限定するためのものではなく、説明するためのものであり、このような実施形態により本発明の技術思想の範囲が限定されるのではない。本発明の保護範囲は請求範囲により解釈されなければならず、それと同等な範囲内にある全ての技術思想は本発明の権利範囲に含まれるものと解釈されるべきである。
【産業上の利用可能性】
【００３９】
以上、説明したように、本発明はスマートカードがユーザ端末機に締結される場合のみに実行可能であるようにする多様な分野に適用されて、ソフトウェアをＰＣのような開放型コンピューティング環境とスマートカードのようなカバーされたコンピューティング環境に分離して実行することができる効果を発生する有用な発明である。
【図１】
0005346386.tif 000002
【図２】
0005346386.tif 000003