JP4186381B2 - プログラムを格納する記録媒体及びその実行方法 - Google Patents

プログラムを格納する記録媒体及びその実行方法 Download PDF

Info

Publication number
JP4186381B2
JP4186381B2 JP2000136549A JP2000136549A JP4186381B2 JP 4186381 B2 JP4186381 B2 JP 4186381B2 JP 2000136549 A JP2000136549 A JP 2000136549A JP 2000136549 A JP2000136549 A JP 2000136549A JP 4186381 B2 JP4186381 B2 JP 4186381B2
Authority
JP
Japan
Prior art keywords
program
code
executed
encrypted
processing
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
Application number
JP2000136549A
Other languages
English (en)
Other versions
JP2001318786A (ja
Inventor
隆士 佐藤
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2000136549A priority Critical patent/JP4186381B2/ja
Priority to US09/846,833 priority patent/US6934850B2/en
Publication of JP2001318786A publication Critical patent/JP2001318786A/ja
Application granted granted Critical
Publication of JP4186381B2 publication Critical patent/JP4186381B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress

Description

【0001】
【発明の属する技術分野】
本発明はプログラムを格納する記録媒体及びその実行方法に関し、特にソフトウェアの動的な解析を阻止するための技術に関する。
【0002】
【従来の技術】
従来、ソフトウェアに関する不正利用への対抗技術としては、例えば「逆解析や改変からソフトを守る−タンパレジスタントソフトウェア技術−」(1998年1月、日経エレクトロニクス通巻706号,pp.209〜220)に記載されているように、第三者が秘密性の高いプログラムを解析し、不正利用することを防ぐために用いられている。
【0003】
その中でも、実行中のプログラムに対してソフトウェアデバッガ等を用いることによって接触し、プログラムを一文ずつ実行させて、その挙動を調べるやりかたは、完全な回避方法のない強力な解析手段である。
【0004】
上記の文献に記載されている不正利用への対抗技術における動的な解析への対抗手段について説明する。その構成を図8に示す。この図8において、プログラム10,20は不正利用への対抗技術を適用して保護するべきプログラムであり、プログラム60は不正利用への対抗技術のために用意した監視プログラムである。尚、プログラム10,20,60は自分自身の改ざんを検出する改ざん検出コード32をそれぞれ含んでいる。
【0005】
これらの認証について説明する。プログラム10とプログラム60とはディジタル署名による通信プロトコルによって互いの改ざん検出コード32を認証する。その際、改ざん検出コード32が壊れたり、改ざんされている場合にはそこで処理を終了する。
【0006】
プログラム20とプログラム60とはディジタル署名による通信プロトコルによって互いの改ざん検出コード33を認証する。その際、改ざん検出コード32が壊れたり、改ざんされている場合にはそこで処理を終了する。
【0007】
これらの方法によって、改ざん検出コード32が動的な解析を検出した場合には処理を中断することができる。また、2つの組と相互に認証を行うことで、通信プロトコルのメッセージを模倣してなりすます第三者のプログラムにも対応することができる。
【0008】
【発明が解決しようとする課題】
上述した従来のソフトウェアに関する不正利用への対抗技術では、ソフトウェアデバッガによる解析でトレースのみを行っている場合、改ざん検出コードがプログラムの改ざんを検出するのみであるので、デバッガ側がプログラムのどこかを改ざんしなくてはその改ざんを検出することができないという問題がある。
【0009】
そこで、本発明の目的は上記の問題点を解消し、ソフトウェアデバッガによる動的なソフトウェア解析を不可能にすることができるプログラムを格納する記録媒体及びその実行方法を提供することにある。
【0010】
【課題を解決するための手段】
本発明によるプログラムを格納する記録媒体は、コンピュータに実行されることで全体の処理動作を行うプログラムを格納する記録媒体であって、
前記全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
から構築され、
前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしている。
【0011】
本発明による実行方法は、全体の処理動作をコンピュータに実行させるプログラムによる実行方法であって、
全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
によって構築されるプログラムにより実行され、
前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしている。
【0012】
すなわち、本発明のプログラム構築方法は、2つのプログラムがそれぞれ暗号化したプログラムコードを持ち、実行時に暗号化したプログラムコードを相互に解除していくことで、ソフトウェアデバッガによるプログラムの動的な解析を妨ぐことができるように構築している。
【0013】
より具体的に、本発明のプログラム構築方法では、第1のプログラムが全体の処理動作において奇数の順序で実行される暗号化コードを含み、第2のプログラムが全体の処理動作において偶数の順序で実行される暗号化コードを含んでいる。第1及び第2のプログラムにおいては各々の暗号化コードを互いに交互に実行するように組まれている。暗号化コードはどれも第1及び第2のプログラムの両方で復号しないと元のコードに戻らないようにしておく。
【0014】
第1及び第2のプログラムは起動されると、まず1番目の暗号化コードを復号し、第1のプログラムはその復号されたコードを実行する。次に、第1及び第2のプログラムは2番目の暗号化コードを復号し、第2のプログラムはその復号されたコードを実行する。
【0015】
上記の処理を繰り返すことで、ソフトウェアデバッガによって第1のプログラムに動的な解析が行われた場合、暗号化コードが完全に復号されなくなり、それを実行しようとした第2のプログラムは不正なコードを実行したことによって終了し、以後の暗号化コードが完全に復号されなくなった第1のプログラムも終了することになる。
【0016】
本発明では、ソフトウェアデバッガが起動しているひとつのプログラムしか解析することができない点と、動的な解析が通常にプログラムが実行されるよりも時間がかかるという点の2つの特徴を利用している。これによって、不正な動的解析を妨げる構造が可能となる。
【0017】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例によるプログラムの構造を示す図である。図1において、プログラム10は暗号化コード11,13,15と、暗号化コード12,14,16の解除コード12a,14a,16aと、復号処理コード30とを含んでおり、プログラム20は暗号化コード12,14,16と、暗号化コード11,13,15の解除コード11a,13a,15aと、復号処理コード31とを含んでいる。
【0018】
図2は図1の暗号化をする前のプログラムを示す図である。図2において、暗号化コード11〜16はそれぞれ任意の処理コード1〜6を暗号化したコードであり、どれも復号処理コード30及び復号処理コード31で復号しなければ元の処理を行う処理コード1〜6に戻らない。
【0019】
その場合、復号処理コード30は解除コード12a,14a,16aでプログラム20の暗号化コード12,14,16の解除を行い、復号処理コード31は解除コード11a,13a,15aでプログラム10の暗号化コード11,13,15の解除を行う。
【0020】
図3は図1のプログラムが実行される順番を示す図である。図3においては、プログラム10,20で時間的にそれぞれ暗号化コード11,12,13,14,15,16の順番で実行するように構成されていることを示している。
【0021】
異なるプログラムにおいて順番に実行される暗号化コードを構築するには、システムタイマ等の同期機構を利用してプログラムを構築する方法や、初期設定処理、画面描画処理、終了処理等の実行される順番が決まっている処理に、暗号化コードを組込む等の方法があるが、ソフトウェアデバッガによる解析で停止をしない仕組みでなければならない。実際にはシステムタイマ等を用いた時間によるウェイトが望ましい。
【0022】
図4は図1のプログラムが正しく動作している場合を示す図であり、図5は図1のプログラムの動作を示すフローチャートである。これら図1と図4と図5とを参照して本発明の一実施例の全体の動作について説明する。
【0023】
まず、プログラム10とプログラム20とが起動されると、復号処理コード30による解除と、解除コード11aを用いた復号処理コード31による解除とによって暗号化コード11の暗号が解除されて処理コード1となる(図5ステップS1,S11)。
【0024】
この時、暗号解除を待つ側はウェイト機構で待機する(図5ステップS2)。このウェイト機構は並立して動作する2つのプログラム10,20において、同期をとるためのルーチンである。プログラム20による暗号化コード11の解除が行われるまで、予め算出した時間だけ待機する。その算出時間がすぎると、暗号化解除の有無にかかわらず、次のステップを実行する。
【0025】
この後に、プログラム10によって処理コード1が実行される(図5ステップS3)。続いて、解除コード12aを用いた復号処理コード30による解除と復号処理コード31の解除とによって暗号化コード12が解除されて処理コード2となる(図5ステップS4,S12)。
【0026】
この時、暗号解除を待つ側はウェイト機構で待機し(図5ステップS13)、その後に、プログラム20によって処理コード2が実行される(図5ステップS14)。続いて、復号処理コード30による解除と、解除コード13aを用いた復号処理コード31による解除とによって暗号化コード13が解除されて処理コード3となる(図5ステップS5,S15)。
【0027】
この時、暗号解除を待つ側はウェイト機構で待機し(図5ステップS6)、その後に、プログラム10によって処理コード3が実行される(図5ステップS7)。続いて、解除コード14aを用いた復号処理コード30による解除と復号処理コード31による解除とによって暗号化コード14が解除されて処理コード4となる(図5ステップS8,S16)。
【0028】
この時、暗号解除を待つ側はウェイト機構で待機し(図5ステップS17)、その後に、プログラム20によって処理コード4が実行される。というように、プログラム10,20の処理が続けられていく。
【0029】
この手続きによって、プログラム10とプログラム20とのどちらかがデバッガ(図示せず)によって動的なデバッグが行われても、これらプログラム10,20の解析を防ぐことができる。
【0030】
図6は図1のプログラムが動的にデバッグされている場合を示す図である。図6においては、例えばプログラム20が実行中にデバッガ40によって動的に解析されそうになった場合を示している。
【0031】
この場合、プログラム10とプログラム20とが起動されて処理を始めると、復号処理コード30,31によって暗号化コード11が解除されて処理コード1になり、プログラム10によって処理コード1が実行される。
【0032】
デバッガ40によってプログラム20はデバッグされると、プログラム20の実行は一時停止するか、デバッガ40の使用者によってステップ実行され、ゆっくりとした処理速度になる。
【0033】
復号処理コード30によって暗号化コード12は一部の暗号が解除されるとともに(不完全な処理コード2)、復号処理コード30によって暗号化コード13も一部の暗号が解除される(不完全な処理コード3)。プログラム10によって不完全な処理コード3が実行されると、不正な処理を行ったとして、オペレーティングシステムによってプログラム10が終了させられる。
【0034】
復号処理コード31によって不完全な処理コード2は処理コード2になり、プログラム20はその処理コード2を実行する。また、復号処理コード31によって暗号化コード14は一部の暗号が解除され(不完全な処理コード4)、プログラム20によってその不完全な処理コード4が実行されると、不正な処理を行ったとして、オペレーティングシステムによってプログラム20が終了させられる。
【0035】
上記のように、プログラム20がデバッガ40のデバッグによって、処理の流れが図3の流れよりも遅れると、プログラム10は一部しか解除されない処理コードを実行し、不正な処理によって終了する。それによって、プログラム20も一部しか解除されない処理コードを実行し、不正な処理によって終了する。デバッガ40の解析もそこで終了することになる。
【0036】
このように、2つのプログラム10,20が互いのプログラムに対して、段階的に暗号解除処理を行うことで、どちらのプログラムがデバッグされても、暗号解除処理の手順がずれて、不正な処理によって終了するという構造を持つことによって、ソフトウェアデバッガ40による動的なソフトウェア解析を不可能にすることができる。
【0037】
尚、上記の説明では2個のプログラム10,20について述べているが、それらのプログラムは2個ではなく、N個(Nは3以上の整数)でもかまわない。その場合、プログラムをN個に増やすと、プログラム10とプログラム20とが相互の暗号解除を行い、プログラムN−1とプログラムNとが相互の暗号解除を行い、プログラムNとプログラム10とが相互の暗号解除を行うという形になる。これによって、全体的にさらに解析しにくいプログラムとなる。
【0038】
また、図1及び図2において、復号処理コード30,31は処理コード1〜6に含めてもかまわない。このように、任意の処理コード1〜6に復号処理コード30,31を含めると、第三者による解析の危険をさらに減らすことができる。
【0039】
さらに、図5に示すフローチャートにおいて、ウェイト機構は時間による待機以外にも、第三のプログラムによる同期処理でもかまわない。この場合、このプログラムはプログラム10とプログラム20とに暗号解除を許可するメッセージを順番に送信する。例えば、ステップS11の終了を確認したら、ステップS2で待機しているプログラム10にウェイト終了のメッセージを送信する。
【0040】
この方法を使用した場合にも、ウェイト機構に、一定時間メッセージを受信しなかったら、次のステップに進む処理を入れることで、第三のプログラムへの動的な解析に対抗することができる。
【0041】
図7は本発明の他の実施例によるプログラムの構造を示す図である。図7において、本発明の他の実施例によるプログラム10,20にはそれぞれ復号処理コード30,31を含んでおり、相互に解除する暗号化コード11〜13はプログラム10,20上ではなく、別に配設した共有領域50上にある。
【0042】
図7に示すように、プログラム10、20は共有領域50にある暗号化コード11〜13を解除し、それぞれの処理コードを実行していく。オペレーティングシステムの仕様で相手のプログラム上の暗号化コードの書き換えが困難な場合には、この方法によって上記と同様の効果が得られる。
【0043】
【発明の効果】
以上説明したように本発明によれば、各々対応する処理コードを暗号化した暗号化コードをその実行時に相互に解除する第1及び第2のプログラムで構築することによって、ソフトウェアデバッガによる動的なソフトウェア解析を不可能にすることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例によるプログラムの構造を示す図である。
【図2】図1の暗号化をする前のプログラムを示す図である。
【図3】図1のプログラムが実行される順番を示す図である。
【図4】図1のプログラムが正しく動作している場合を示す図である。
【図5】図1のプログラムの動作を示すフローチャートである。
【図6】図1のプログラムが動的にデバッグされている場合を示す図である。
【図7】本発明の他の実施例によるプログラムの構造を示す図である。
【図8】従来の動的解析防止方法を示す図である。
【符号の説明】
1〜6 処理コード
11〜16 暗号化コード
11a,12a,
13a,14a,
15a,16a 解除コード
10,20 プログラム
30,31 復号処理コード
40 デバッガ
50 共有領域

Claims (10)

  1. コンピュータに実行されることで全体の処理動作を行うプログラムを格納する記録媒体であって、
    前記全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
    前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
    から構築され、
    前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
    前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
    前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
    前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムを格納する記録媒体
  2. コンピュータに実行されることで全体の処理動作を行うプログラムを格納する記録媒体であって、
    前記全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードと、前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードとを含む共有領域と、
    前記第2の暗号化コードの解除を行わせる第1の復号処理コードを含む第1のプログラムと、
    前記第1の暗号化コードの解除を行わせる第2の復号処理コードを含む第2のプログラムと
    から構築され、
    前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
    前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムを格納する記録媒体
  3. 前記第1のプログラムは、前記コンピュータに、前記第2の復号処理コードによって前記第1の暗号化コードの暗号化が解除された処理コードを実行させ、
    前記第2のプログラムは、前記コンピュータに、前記第1の復号処理コードによって前記第2の暗号化コードの暗号化が解除された処理コードを実行させることを特徴とする請求項1または請求項2記載のプログラムを格納する記録媒体
  4. 前記第1及び第2のプログラム各々は、ソフトウェアデバッガによる動的な解析で前記第1及び第2の暗号化コードの解除に遅れが生じた時に異常終了するよう構築したことを特徴とする請求項1から請求項3のいずれか記載のプログラムを格納する記録媒体
  5. 前記第1及び第2のプログラムの起動時に、前記第2のプログラムによって1番目の暗号化コードを復号して得た1番目の処理コードを前記第1のプログラムにより実行させ、前記第1のプログラムによって2番目の暗号化コードを復号して得た2番目の処理コードを前記第2のプログラムにより実行させ、前記第1のプログラムによる処理コードの実行と前記第2のプログラムによる処理コードの実行とを交互に行わせるよう構築したことを特徴とする請求項1から請求項4のいずれか記載のプログラムを格納する記録媒体
  6. 全体の処理動作をコンピュータに実行させるプログラムによる実行方法であって、
    全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
    前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
    によって構築されるプログラムにより実行され、
    前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
    前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
    前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
    前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムによる実行方法。
  7. 全体の処理動作をコンピュータに実行させるプログラムによる実行方法であって、
    全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードと、前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードとを含む共有領域と、
    前記第2の暗号化コードの解除を行わせる第1の復号処理コードを含む第1のプログラムと、
    前記第1の暗号化コードの解除を行わせる第2の復号処理コードを含む第2のプログラムと
    によって構築されるプログラムにより実行され、
    前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
    前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムによる実行方法。
  8. 前記第1のプログラムは、前記コンピュータに、前記第2の復号処理コードによって前記第1の暗号化コードの暗号化が解除された処理コードを実行させ、
    前記第2のプログラムは、前記コンピュータに、前記第1の復号処理コードによって前記第2の暗号化コードの暗号化が解除された処理コードを実行させることを特徴とする請求項6または請求項7記載のプログラムによる実行方法。
  9. 前記第1及び第2のプログラム各々は、ソフトウェアデバッガによる動的な解析で前記第1及び第2の暗号化コードの解除に遅れが生じた時に異常終了するようにしたことを特徴とする請求項6から請求項8のいずれか記載のプログラムによる実行方法。
  10. 前記第1及び第2のプログラムの起動時に、前記第2のプログラムによって1番目の暗号化コードを復号して得た1番目の処理コードを前記第1のプログラムにより実行させ、前記第1のプログラムによって2番目の暗号化コードを復号して得た2番目の処理コードを前記第2のプログラムにより実行させ、前記第1のプログラムによる処理コードの実行と前記第2のプログラムによる処理コードの実行とを交互に行わせるようにしたことを特徴とする請求項6から請求項9のいずれか記載のプログラムによる実行方法。
JP2000136549A 2000-05-10 2000-05-10 プログラムを格納する記録媒体及びその実行方法 Expired - Fee Related JP4186381B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000136549A JP4186381B2 (ja) 2000-05-10 2000-05-10 プログラムを格納する記録媒体及びその実行方法
US09/846,833 US6934850B2 (en) 2000-05-10 2001-05-01 Program creation method and program execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000136549A JP4186381B2 (ja) 2000-05-10 2000-05-10 プログラムを格納する記録媒体及びその実行方法

Publications (2)

Publication Number Publication Date
JP2001318786A JP2001318786A (ja) 2001-11-16
JP4186381B2 true JP4186381B2 (ja) 2008-11-26

Family

ID=18644475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000136549A Expired - Fee Related JP4186381B2 (ja) 2000-05-10 2000-05-10 プログラムを格納する記録媒体及びその実行方法

Country Status (2)

Country Link
US (1) US6934850B2 (ja)
JP (1) JP4186381B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293587A (ja) * 1999-04-09 2000-10-20 Sony Corp 情報処理装置および方法、管理装置および方法、並びに提供媒体
US7346896B2 (en) * 2002-04-22 2008-03-18 Sun Microsystems, Inc. Slowing network connection for application optimization
CN100359425C (zh) * 2002-08-01 2008-01-02 松下电器产业株式会社 用于解密已加密数据并在存储器空间中定位用于执行的解密数据的方法和设备
US20040064712A1 (en) * 2002-09-27 2004-04-01 Intel Corporation Systems and methods for protecting media content
US7426634B2 (en) * 2003-04-22 2008-09-16 Intruguard Devices, Inc. Method and apparatus for rate based denial of service attack detection and prevention
US7500108B2 (en) 2004-03-01 2009-03-03 Microsoft Corporation Metered execution of code
JP2006339988A (ja) * 2005-06-01 2006-12-14 Sony Corp ストリーム制御装置、ストリーム暗号化/復号化装置、および、ストリーム暗号化/復号化方法
JP4727366B2 (ja) * 2005-09-28 2011-07-20 株式会社デジタル 情報処理装置、情報処理システム、プログラムおよび記録媒体
US8862893B2 (en) * 2008-06-11 2014-10-14 Microsoft Corporation Techniques for performing symmetric cryptography
JP5493235B2 (ja) * 2011-10-04 2014-05-14 株式会社ハイパーテック 処理装置及び処理方法
EP2831787B1 (en) 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
US9172721B2 (en) 2013-07-16 2015-10-27 Fortinet, Inc. Scalable inline behavioral DDOS attack mitigation
JP6478724B2 (ja) * 2015-03-09 2019-03-06 Kddi株式会社 情報処理装置、情報処理方法、及びコンピュータプログラム
US9973528B2 (en) 2015-12-21 2018-05-15 Fortinet, Inc. Two-stage hash based logic for application layer distributed denial of service (DDoS) attack attribution

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58116571A (ja) * 1981-12-29 1983-07-11 富士通株式会社 マイクロコンピユ−タに於ける命令暗号化方式及びその実施に使用されるマイクロコンピユ−タ
US6205550B1 (en) * 1996-06-13 2001-03-20 Intel Corporation Tamper resistant methods and apparatus
US5892899A (en) * 1996-06-13 1999-04-06 Intel Corporation Tamper resistant methods and apparatus
US6049613A (en) * 1997-03-07 2000-04-11 Jakobsson; Markus Method and apparatus for encrypting, decrypting, and providing privacy for data values
US6772419B1 (en) * 1997-09-12 2004-08-03 Hitachi, Ltd. Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS

Also Published As

Publication number Publication date
US20010042209A1 (en) 2001-11-15
JP2001318786A (ja) 2001-11-16
US6934850B2 (en) 2005-08-23

Similar Documents

Publication Publication Date Title
JP4186381B2 (ja) プログラムを格納する記録媒体及びその実行方法
JP3779837B2 (ja) コンピュータ及びプログラム記録媒体
US7215771B1 (en) Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
JP4451884B2 (ja) コンピュータ保安装置、コンピュータ保安方法、及び記録媒体
CN100452075C (zh) 软件保护装置数据传输过程的安全控制方法及其设备
KR101054318B1 (ko) 정보 처리 시스템 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
CN106663163B (zh) 保障音频通信安全
CN1909447B (zh) 使用动态加密算法进行网络数据通讯的方法
EP1126355A1 (en) Method and system for distributing programs using tamper resistant processor
US7464171B2 (en) Effective protection of computer data traffic in constrained resource scenarios
US20090183263A1 (en) Simultaneous tamper-proofing and anti-piracy protection of software
CN113268715A (zh) 软件加密方法、装置、设备及存储介质
JP2009501470A (ja) マルチメディア・データの保護
JPH08166879A (ja) 提供用ソフトウェアの安全性強化方法及び装置
EP3683712B1 (en) Protecting integrity of log data
KR20010032955A (ko) 상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법및 장치
CN101278517B (zh) 安全设备和建立分组功能
Kotov et al. Understanding crypto-ransomware
WO2007086469A1 (ja) 情報通信システム
Whittaker Why secure applications are difficult to write
JP2002244989A (ja) デバイスドライバ作動方法
US7636838B2 (en) Method and system for handling operation of multiple devices within a single system-on-chip (SoC) integrated circuit (IC)
JP2009252142A (ja) データ処理装置
JP2002082732A (ja) プログラムコードの不正改竄防止システム及びその方法並びにその制御プログラムを記録した記録媒体
CN113507479B (zh) 针对web代码和数据的网关型加解密透明sdk方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080722

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: 20080819

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080901

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees