JPH11509023A - 無許可使用に対するソフトウェアの保護 - Google Patents

無許可使用に対するソフトウェアの保護

Info

Publication number
JPH11509023A
JPH11509023A JP9505710A JP50571097A JPH11509023A JP H11509023 A JPH11509023 A JP H11509023A JP 9505710 A JP9505710 A JP 9505710A JP 50571097 A JP50571097 A JP 50571097A JP H11509023 A JPH11509023 A JP H11509023A
Authority
JP
Japan
Prior art keywords
algorithm
software
key
computer
external unit
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
JP9505710A
Other languages
English (en)
Other versions
JP4267065B2 (ja
Inventor
シグヨーンセン,シガード
ハーランド,マーン,アリル
オレシュチュク,ブラディミール・アー
Original Assignee
シグヨーンセン,シガード
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 シグヨーンセン,シガード filed Critical シグヨーンセン,シガード
Publication of JPH11509023A publication Critical patent/JPH11509023A/ja
Application granted granted Critical
Publication of JP4267065B2 publication Critical patent/JP4267065B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • 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/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • 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/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Storage Device Security (AREA)
  • Emergency Protection Circuit Devices (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
  • Moving Of Heads (AREA)
  • Orthopedics, Nursing, And Contraception (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 ソフトウェア、特に無償で頒布されるアプリケーションソフトウェアを、著作権保有者の許可なしに使用することに対して保護するための構成。解読キーがユーザに対して秘密に保持されるならば、ソフトウェアを、解読に用いられるキー(k2)と異なるキー(k1)を用いて暗号化することにより、無権限使用に対するより良好な保護が得られる。付加的に、ソフトウェアが用いられるコンピュータと、解読キーが格納されている外部ユニットとの間の通信に対する、スクランブリング−脱スクランブリングを実行することにより、さらに改良されたセキュリテイが達成される。また、外部ユニットは、ホストから受け取ったデータをそれが処理した結果を、ホストコンピュータに戻すように構成され、この結果は次いで、それぞれのプログラムのさらなる実行において用いられる。

Description

【発明の詳細な説明】 無許可使用に対するソフトウェアの保護 技術分野 本発明は、著作権保有者の許可のない使用に対する、ソフトウェア、特に無償 で配布されるアプリケーションソフトウェアの保護に関する。特に、コンピュー タにおけるソフトウェアの無権限使用を防止するための方法、相応の権限がある 場合にのみコンピュータで使用されるソフトウェアを作成するための方法及び装 置、並びに本発明の一側面に従って作成されたソフトウェアのコンピュータにお ける権限ある使用を許可するための方法及び装置に関するものである。 ソフトウェア、特にパソコン上で走るよう適合されたソフトウェアについての 海賊コピーは、ソフトウェアのベンダにとっては甚大な問題であり、毎年大きな 金額についている。例えば、特定のコンピュータプログラム又はプログラムパッ ケージのインストール又は作動についてパスワードを要求することにより、無権 限な使用からソフトウェアを保護するという、従来用いられている方法は、十分 なセキュリティをもたらしてはいない。従って、著作権保有者の許可が現実に存 在する場合にのみ、特定のコンピュータプログラム又はコンピュータプログラム パッケージを使用することを可能にするような構成は、極めて重要である。 背景技術 必要なパスワードを単に打ち込んだだけでは、プログラムに対してアクセスを 行うには不十分であるという構成を確立するために、既に幾つかの試みがなされ ている。例えば、所与のプログラムを用いることを可能にするために、コンピュ ータに対して特別のハードウェアユニットが接続されていることを必要とするシ ステムが提案されている。このユニットは例えば盲プラグ(「ドングル(dongle)」 とも呼ばれる)の形態を有し、コンピュータの入出力端子の一つに直接に接続さ れ、内部メモリに格納された固定のテーブル、識別番号その他を有していて、該 当するアプリケーションプログラム内にその目的で含まれているプログラムされ た追加的なルーチンの要求に応じて、情報がそこから読み出される。このユニッ トはまた、カードリーダステーションその他の形態を取ることもできる。その場 合、カードが差し込まれ、カードに格納されている事項は概ね、上記の盲プラグ に格納されているのと類似したものである。通常のチェック手順は、プログラム の追加的なルーチンが、例えばプログラムの識別と、格納されているテーブル中 に存在する対応する情報項目を直接に比較することを含む。 こうした構成の一例は、ドイツ特許出願公開第44 19 115号に記載されており 、そこではチップカードに格納された事項が読み取られ、予想された内容が存在 する場合には、この事実をもって、プログラムを使用するための識別の十分な証 拠であるとする。このチェックは、プログラムのインストールの際、或いはその 使用中に行うことができる。ドイツ特許出願公開第42 39 865号は類似のシステ ムを開示しており、これは付加的に、実行されたソフトウェアのインストール回 数を記録し、その数を制限することを可能にする構成を提供している。 上記のような公知の装置の全てについて、ソフトウェア中に含まれねばならな い付加的なルーチンは、主たる欠点を構成するものとなっている。こうしたルー チンを単に取り除けば、ソフトウェアは通常通り動作し、無権限使用に対する保 護は失われる。また、コンピュータのプロセッサと、ユニット又はカードのメモ リとの間でデータが交換される間に、その情報を見ることが可能であり、さらに プログラムが使用される度毎にこの情報が交換される経路は同一であるから、外 部メモリに格納された事項を暴くことも可能である。メモリの内容が何らかの手 法により暗号化されていたとしても、通信インタフェースを介してのこうした種 類の繰り返しは、例えば対応するハードウェアユニットをシミュレートすること を可能なものとし、或いは比較的高くはないコンピュータパワーによって「コー ドを破る」ことを可能にする。 英国特許公開第2 163 577号に記載された構成においては、特定の暗号技術を 用い、また幾つかの記憶手段をそれ自体のプロセッサと共に改竄防止ハウジング に収容することにより、 上述したタイプのハードウェアユニットの欠点の幾つかが回避されている。ハウ ジング内のプロセッサは、ハウジング内に格納された解読キーと、やはりハウジ ング内に格納された命令とを用いて、ハウジングが接続されているホストコンピ ュータから転送されてくる暗号化されたアプリケーションプログラム又はプログ ラムモジュールを解読し、それ自体によって実行する。暗号技術それ自体につい ては、英国特許公開第2 163 577号による構成は、アプリケーションソフトウェ アの暗号化のために、いわゆるDESアルゴリズム(DES−Data Encryptio n Standard(データ暗号化標準)、1977年米国標準化局)を用い、またこれを 解読するために、対応する逆のDESアルゴリズムを用いているため、暗号化と 解読の両方について、全く同じキーが用いられている。よってDES標準は対称 的なものであり、セキュリティはキーそれ自体のみに存している。従って、この セキュリティを漏らすことがないように、この英国特許出願においては、このD ESキーそれ自体の暗号化も提案されている。その目的のためにこれは、二つの 異なるキー、つまり一方は暗号化用で他方は解読用のキーを有する、いわゆるR SAアルゴリズム(RSA−Rivest,Shamir,Adleman)を用いており、一方の キーから他方のキーを推理することは実際的には不可能になっている。かくして RSA暗号システムは非対称であり、キー二つのシステムであり(公的キー/私 的キー暗号システムとも呼 ばれる)、この英国特許公開第2 163 577号による構成の場合には、それ自体知ら れていてもよい一つのキー(公的キー)のみが用いられてDESキーが暗号化され 、他方、ユーザが知ってはならない別のキー(私的又は秘密キー)が、DESキ ーの解読に用いられる。後者のキー、即ち秘密キーは、改竄防止ハウジングのメ モリ内に格納され、暗号化されたDESキーの解読に必要とされる場合に、ハウ ジング内のプロセッサによりフェッチ(取り出し)される。DESキーの各々は 、暗号化されたアプリケーションプログラムの実行を可能とする目的でもって、 そのアプリケーションプログラムに属している。 しかしながら、英国特許公開第2 163 577号による構成でも、外部ユニットと ホストコンピュータとの間の通信をモニタすることが可能であり、また同じ暗号 化されたプログラムモジュールが実行される度毎に、通信の経路は同一のもので ある。プログラムモジュールは全体として暗号化され、こうしたモジュールがソ フトウェアの比較的大きな部分を占めることになるので、通信インタフェースを 介してのこの種の予測可能な繰り返しは、プログラムモジュールのそれぞれを識 別する助けとなる。識別されてしまうと、暗号化されたプログラムモジュールを 最終的に解読する目的で、例えばオフラインモードにおいて処理される残りのプ ログラムから簡単に分離可能である。さらにまた、アプリケーションプログラム モジュール全体を外部で暗号化し、格納し、実行することは、ハウジング内の回 路が十分に高いデータ処理能力を有し、プログラムモジュールのソースであるホ ストコンピュータとの通信が非常に速いのでなければ、受け入れ難いほど長い時 間を必要とする。 本発明の一つの目的は、ソフトウェアを無制限にコピーし配布することができ るが、必要な許可が存在しなければ使用できないという仕方でもって、ソフトウ ェアの販売者及び/又は所有者に対し、彼等の製品を無権限な使用から保護する より良い可能性を与え、しかも従来技術の欠点を蒙ることのない暗号化構成を提 供することである。 本発明の別の目的は、個々のソフトウェアモジュールだけではなくプログラム パッケージ全体に対処することができ、使用許可を異なるレベルで、例えばプロ グラムパッケージの選ばれた部分について割り当てることが可能な、一般的な性 質の暗号化構成を提供することである。 これらの、及びその他の目的は、添付図面に関連して行われる本発明の好まし い実施形態の例についての、以下の説明からより明らかとなろう。 発明の開示 本発明の第一の一般的な側面は、コンピュータにおけるソフトウェアの無権限 使用の防止方法に関し、この方法は、 − 前記ソフトウェアの少なくとも一部を第一のアルゴリズ ムに従って暗号化するステップと、及び − ソフトウェアの暗号化された部分を第二のアルゴリズムに従って解読するス テップとからなり、この第二のアルゴリズムがソフトウェアの暗号化された部分 の解読に用いられるキーと共に、前記コンピュータに接続されるよう適合された 外部ユニットに格納されており、この外部ユニットが少なくともコンピュータ読 み取り可能な記憶媒体とそれ自体のプロセッサとからなり、 上記の方法が、第二のアルゴリズムによる前記解読が前記外部ユニットに格納 された第二のキーを用いて実行され、この第二のキーが第一のアルゴリズムによ るソフトウェアの前記部分の暗号化の実行において用いられた第一のキーと異な ることを特徴とする。 本発明の別の側面は、ソフトウェア、特に相応の権限がある場合にのみコンピ ュータで使用される無償頒布を意図したソフトウェアの作成方法に関するもので あり、この方法は、前記ソフトウェアの少なくとも一部を第一のアルゴリズムに 従って暗号化し、これを前記コンピュータにおける使用により第二のアルゴリズ ムに従って解読することからなり、この方法は、第一のアルゴリズムによる前記 暗号化に用いられるキーが第一のキーであり、この第一のキーが、第一のアルゴ リズムと第一のキーに従って暗号化されるソフトウェアの部分の第二のアルゴリ ズムに従う解読の実行に用いられる第二 のキーと異なることを特徴とする。 この第二の側面において、本発明はまたソフトウェア、特に相応の権限がある 場合にのみコンピュータで使用される無償頒布を意図したソフトウェアの作成の ための装置にも関するものであり、この装置は、 − 前記ソフトウェアの少なくとも一部の暗号化を第一のアルゴリズムと第一の キーに従って実行する暗号手段と、及び − 前記コンピュータに接続するよう適合された外部ユニットからなり、この外 部ユニットが少なくとも、それ自体のプロセッサと、第二のアルゴリズム及びキ ーを格納するためのコンピュータ読み取り可能な記憶媒体とを有し、前記第二の アルゴリズム及びキーに従ってソフトウェアの暗号化された部分の解読を実行す るよう配置されており、 上記の装置が、第二のアルゴリズムによる前記解読に用いることを意図した前 記第二のアルゴリズム及び第二のキーをもたらす発生手段をさらに含み、この第 二のキーが第一のアルゴリズムによるソフトウェアの前記部分の暗号化の実行に おいて前記暗号手段により用いられた第一のキーと異なることを特徴とする。 本発明の第三の側面は、本発明の第二の側面の一つのモードに従って作成され たソフトウェア、特に無償で配布されるソフトウェアの、コンピュータにおける 権限ある使用を可能 にする方法に関するものであり、この方法は、外部ユニットを前記コンピュータ に接続し、この外部ユニットが少なくともコンピュータ読み取り可能な記憶媒体 とそれ自体のプロセッサとからなり、第二のアルゴリズムとソフトウェアの暗号 化された一部の解読に用いられるキーが前記外部ユニットに格納されている。本 発明によれば、この方法は、第一のアルゴリズムに従って暗号化されたソフトウ ェアの部分を実行するに際して、コンピュータがコールシーケンス又は追加のオ ブジェクトコードに対応するエントリポイントへのジャンプを生じさせる類似の 命令に遭遇した場合、このオブジェクトコードがコンピュータにより用いられて 外部ユニットへの通信チャンネルを確立し、このチャンネルを通じてソフトウェ アの暗号化された部分が第一の転送セッションにおいて外部ユニットへと転送さ れて前記外部ユニットに格納されている第二のアルゴリズムと第二のキーの両者 に従って外部ユニット自体のプロセッサにより解読され、この第二のキーが第一 のアルゴリズムによるソフトウェアの前記部分の暗号化の実行に用いられた第一 のキーと異なり、次いで解読されたソフトウェアの部分が外部ユニットにおいて 処理され、その結果がコンピュータにおいてさらに用いるために通信チャンネル を通じて反対方向へと第二の転送セッションにおいて転送されることを特徴とす る。 この第三の側面において本発明はまた、本発明の第二の側 面に従う装置により作成されたソフトウェア、特に無償で配布されるソフトウェ アの、コンピュータにおける権限ある使用を可能にする装置に関するものであり 、この装置は、少なくともそれ自体のプロセッサとコンピュータ読み取り可能な 記憶媒体とからなり、ホストコンピュータとの通信のためにホストコンピュータ に接続することを意図した外部ユニットのための、ホストコンピュータとして作 用するよう適合されたコンピュータを含む。本発明によれば、この装置は、前記 外部ユニットが前記発生手段により生成された前記第二のアルゴリズムと前記第 二のキーに従って解読を実行するよう適合された解読手段を含み、この第二のキ ーが、第一のアルゴリズムに従うソフトウェアの前記部分の暗号化の実行におい て前記暗号手段により用いられた第一のキーと異なることを特徴とする。 本発明による方法及び装置によれば、著作権保有者の許可が存在しなければ、 コンピュータプログラム又はコンピュータプログラムパッケージの如き形態のソ フトウェアを使用することを極めて困難にする構成が達成される。以下の説明と 他の特許請求項から明らかになるように、本発明による無権限使用に対するこの 障害はまた、さらにより安全に行うことも可能であり、かくしてこのような本発 明のさらなる特徴により処理されたソフトウェアを使用することは、必要な権限 がなければ殆ど不可能となる。 図面の簡単な説明 以下の説明においては、添付図面に対する参照が行われる。図面中、 図1は本発明による好ましいハードウェア構成を示し、 図2は本発明による簡単化された一般的なソフトウェアのダイヤグラムであり 、 図3は一般的なコマンド又は実行ファイル(.EXEファイル)が暗号化なしに どのように発生されるかを概略的に示し、 図4及び5は本発明によりソースコードレベルの暗号化がどのようにして実行 されるかを概略的に示し、 図6は磁気記憶ディスク及びランダムアクセスメモリ(RAM)のそれぞれに 対するソフトウェアの区分化を概略的に示し、 図7はプロテクトされたソフトウェアのコンピュータにおける使用を概略的に 示し、 図8は図4及び5に示したタイプの暗号化プロセスの一例を示し、 図9はプロテクトされたソフトウェアのコンピュータにおける使用を概略的に 示し、 図10はアクセスチェック又は認証を含む適用領域を概略的に示し、 図11は本発明の好ましい実施例による暗号化−解読及びスクランブリング−脱 スクランブリングを含めて、プロセス の過程を概略的に例示するフローチャートである。 好ましい実施例の説明 最初に図1を参照すると、本発明の好ましいハードウェア構成が示されており 、本発明によりホストコンピュータとして作用する、ワーキングステーション又 はパーソナルコンピュータ(PC)の形態を有するコンピュータが示されている 。この図においては、本発明による外部ユニットは、特にスマートカード用の、 市販の集積されたマイクロプロセッサ、例えばCCA12103タイプを備えたカー ドリーダ又はプロセッサの形態をとるものとして示されており、このユニットは 図示のコンピュータに含まれ、或いはシリアル又はパラレル接続によりこのコン ピュータに接続される別個の設備ユニットに配置される。 図1はまた、安全保護されたソフトウェアを今や、広域ネットワーク(WAN) 、ローカルエリアネットワーク(LAN)、そして特にインターネットのような、 コンピュータが接続を確立することのできる種々のタイプのデータネットワーク を介して配布可能であることを示している。またこのソフトウェアは実際、通常 のように、フレキシブルディスク及び/又はCD-ROM(読み取り専用、コン パクトレーザーディスク)で配布することも可能である。何れの場合でも、この ソフトウェアは無制限にコピーし、インストールすることができる。 このソフトウェアは無権限の使用に対して保護されている から、そうでない場合にしばしば必要とされる、ソフトウェアのコピーに対する 保護はどのようなものも必要でない。ここで、この権限はスマートカードに埋め 込まれており、自分自身で必要な解読アルゴリズムとキーをこのカードにインス トールした、ソフトウェアの供給者以外には、この権限は入手不能である。従っ て、特定のコンピュータプログラムの使用に対する許可は、カード上に見出され るものであり、それぞれのプログラムや、ソフトウェアの別の部分に見出される ものではない。 単純化された一般的なダイヤグラムを示す図2から、本発明による構成が、 1.無権限の使用に対して保護されたソフトウェア(しかしながらこの保護は、 そのコピーを妨げない)、 2.当該のソフトウェアの解読のためのアルゴリズムとキーを保持したスマート カード(その他)、及び 3.保護されたソフトウェア(1)とスマートカード(2)との間での通信のため の専用ソフトウェア(即ち請求項で特定した追加のオブジェクトコード)からな ることが看取される。 保護は、スマートカード、即ちカードに配置された専用ソフトウェアに対する プログラムコール(呼び出し)を、ソフトウェアの種々の個所に挿入することに よって行われ、それにより保護されたプログラムの実行に際して、正しく進むた めに必要な情報が得られる。例えばこの情報は、プログラムが実行される場合に 用いられ、自分のソフトウェアを保護しようとすることを望む者によって決定さ れる、ある種のパラメータであることができる。こうした情報はソフトウェアの 適切な動作に必要なものであるから、かかるプログラムコールを除去することは できない。 保護されたプログラムとスマートカードとの相互作用は、元のプログラムが暗 号化される場合にそのプログラムのデータライブラリに入力される、専用ソフト ウェア(オブジェクトコード)によって制御される。この専用ソフトウェアはま た、コンピュータとスマートカードとの間の通信に対するスクランブリングをも 提供することができる。 図3は、一般的なコマンド又は実行ファイル(.EXEファイル)が暗号化な しにどのように発生されるかを概略的に示し、図4及び5はそれぞれ独自の仕方 でもって、本発明によりソースコードレベルの暗号化がどのようにして実行され るかを概略的に示している。 図6は、ソフトウェアそれ自体は磁気記憶ディスク上にあり、専用ソフトウェ ア(オブジェクトコード又はデータライブラリ)がコンピュータのランダムアク セスメモリ(RAM)に供給されることを示している。 図7及び9は、プロテクトされたソフトウェアがコンピュータにおいて使用さ れた場合に生ずるプロセスを示してい る。 図8は、図4及び5に示したタイプの暗号化プロセスの一例を示している。こ こで、ソースコードがPascal、C、Modulaのような高級プログラミング言語で 存在していると仮定する。暗号化され、かくしていわゆる無権限使用に対して保 護されるのは、このソースコードである。ソースコードにおいて、幾つかのパラ メータが選択され、暗号化関数gを用いて暗号化される。例えば、保護されてい ないソースコードのあるコマンド中に存在する式、x: =y+10は、次のように表 すことができる。 C: =decrypt(g(10)+t) x: =y+(C‐T) 式中、g(10)は暗号化パラメータであり、Tは変数であり、そのランダム値はこ の場合、スマートカードからフェッチされている。 xの正しい値を得るためには、保護されたプログラムは、10+Tに等しいCの 値に「到達」しなければならない。その解読プログラムは、保護されたソフトウ ェアの一部を構成している「専用ソフトウェア」(付加されたオブジェクトコー ド)に配置されている(図5参照)。この専用ソフトウェアはまた、スマートカー ドとの通信のためのプログラムと共に、ここではf及びf-1として示されるスクラ ンブリング及び脱スクランブリング関数機能を含んでいる(図7参照)。 スマートカードとの通信において、関数f及びf-1はスマートカードからフェッチ されるキーを用い、スマートカードそれ自体は、 − 保護されたソフトウェアに配置されている変数Tのランダム値を生成するた めの数発生器と、 − 解読関数g-1のための秘密キーと、 − 解読関数g-1のためのアルゴリズムと、 − 関数f及びf-1のための一つ又はより多くのキーとを含んでいる。 暗号化関数gと解読関数g-1が、対称的ではない公的キー暗号システムを表すこ とが重要であることに注意しなければならない。このことは、暗号化関数gが、 公知であってもよい公的キーを用いるが、しかしこのキーが、解読関数g-1(そ のアルゴリズムにも、そのキーにも)到達するには十分でないことを意味してい る。こうして解読関数g-1のためのアルゴリズムとキーはスマートカードに配置 され、そこから転送されることはない。 関数f,f-1,g,g-1は、可変である(即ち、値を変えることなしに交換可能であ る)ことが必要とされる。ここではこのことは、それらが次の性質を有していな ければならないことを示している。 f-1(g-1(f(g(x))))=x このようにして保護されたプログラムをコンピュータで使 用する際、このプログラムの実行は、通常の通りに開始される(図7)。スマート カードとの通信を介して、変数Tの値と、関数f又はf-1のためのキーが、ソフト ウェアに入力される。プログラムの実行は、次いで普通通りに続けられる。実行 中に暗号化パラメータ(図示の例ではg(10))に行き着いた時点で、値(g(10)+ T)が専用ソフトウェアに送られ、この専用ソフトウェアはさらにf(g(10)+T) ‐T)をスマートカードに伝える。スマートカードでは、g-1((10)+T)‐T)が 計算され、この値が専用ソフトウェアに戻される。専用ソフトウェアにより、次 いでf-1(g-1((10)+T)‐T)))が計算され、これはx及びx+Tに等しい。そして この結果が、プログラム中で用いるためのパラメータCとして、保護されたプロ グラムに対して供給される。 本発明によるこの種の暗号化−解読構成を有することにより、以下の利点及び 可能性が実現される。 − スマートカードの使用による多大な融通性。 − ソフトウェア制作者と契約した輸入者又は代理店により、スマートカード( 即ちユーザ)に対してライセンス契約を行う。その場合にスマートカードは、同 じ認証フォーマット及びアルゴリズムを有する各種のソフトウェアパッケージに ついて、数レベルのライセンス、又は許可を含むことができる。 − 第一のレベルの暗号化に、RSA暗号システムのような、 非対称の二重キー暗号化構成(公的キー/私的キー暗号システム)を用い、そこ において公的キーをソフトウェア制作者のみに入手可能なものとし、私的キーは 秘密キーであって、ソフトウェア制作者により与えられる仕様に従って、スマー トカードの製造者によりスマートカードのリードオンリーメモリ(ROM)に入 力される秘密キーとする。 − 保護されたソフトウェアの実行が開始された時に、非対称な暗号化された認 証キーをスマートカードに転送し、これを私的キーNo.0によりスマートカード で解読して、スマートカードにおける認証プロセスを開始させる。 − ソースコードレベルにおける暗号化により、この構成をオペレーティングシ ステムに依存しないものとする。コマンドファイルの如きファイルのみの、小部 分、又は断片を暗号化することにより、何とかしてこうした部分を攻撃しようと する目的で、暗号化されたソフトウェアのこれらの部分を識別することは困難に なる。また、解読アルゴリズム及びキーは、スマートカード上に容易に入力する ことができる。 − 第二のレベルの暗号化により、ホストコンピュータとスマートカードとの間 の通信を、ログをとることによってその通信から何か意味のあるものをトレース しようとすることを困難にするようにできる。用いられるアルゴリズムは、保護 されたプログラムとスマートカードの両者に配置され、 暗号化キーと解読キーは両方ともスマートカードに配置され、即ちユーザに対し て隠される。暗号化アルゴリズムとキーは、種々のタイプのソフトウェアについ て異なるものとすることができる。 図10は、本発明による構成の適用領域が、存在するであろうさらなる可能性と して、例えばアクセスチェック又は認証をもカバーするように拡げることができ ることを例証している。本発明のこうした実施例においては、保護されるべきソ フトウェアには、いわゆる公的キーを用いて暗号化された認証キーと、当該のソ フトウェアパッケージ用の識別番号とが備えられる。この場合に、スマートカー ドの如き外部ユニットは、好ましくはマスクプログラムされた解読アルゴリズム と、認証キーを解読するのに用いる私的キーNo.0(ROM内)と、さらに以下 に示すように構成可能なアクセス又は認証テーブルとを含む。 この表において、PIDはソフトウェアの識別番号を表しており、異なるプロ グラムには違う識別番号が付与され、またこの識別番号は、例えばそれぞれのソ フトウェア製品のバージョン番号その他を含むこともできる。AcLは次のよう なアクセスレベル又は状態、 − 二つの異なるレベル、即ちアクセス許可とアクセス不許可、 − それぞれのプログラムを実行することのできる制限された回数、 − 例えば許可満了日のような、プログラムの使用についての時間的期限、 − 例えばいわゆるデモ版(variant)のような、そのプログラムのみの縮小版 に対するアクセス を示している。この表のアクセスレベルの欄のエントリAcLは、例えばソフト ウェア製品の輸入者又は代理店が修正することができる。 私的キーPKの欄において、ソフトウェア制作者は、そのソフトウェアの識別 番号PIDに基づいて、暗号化されたフラグメントの解読に用いられる秘密キー を特定する。この秘密キーはスマートカードにマスクプログラムされ、誰も入手 することはできない。 図11は、本発明の好ましい実施例による、原理的には完結している処理過程を 概略的に示すフローチャートであり、 − ソースコードの暗号化ステップ(g1,k1)と、 − 暗号化されたデータのスクランブリングステップ(g3,k3)と、 − スクランブルされた暗号化されたデータの外部ユニットに対する転送とその 解読ステップ(g4,k4)と、 − 転送された脱スクランブルされたデータの解読ステップ(g2,k2)と、 − 解読されたデータの処理及びその結果のスクランブリングステップ(g5,k5 )と、 − スクランブルされた結果のホストコンピュータに対する転送及びその脱スク ランブリングステップ(g6,k6)と、及び − さらなる使用のための解読されたデータの出力ステップとからなる。 本発明の図示の実施形態の例においては、スマートカードが以下の請求項に示 した外部ユニットの好ましい実現形態を構成している。これは極めて単純に、ス マートカード技術が、以下の請求項に従って外部ユニット又は別個の物品中に必 然的に格納されねばならないアルゴリズム、キーその他について、最も「改竄防 止」保護されていると考えられるからである。こうしたカードの製造業者の数が 世界中で少ないこと、そしてなかでもこうしたカード、特に支払い取引カードの 形態を有するカードの使用により取り扱われる価値が大きいこ とは、こうしたスマートカードを偽造するのに必要な知識が、不正な意図を有す る人物に容易には入手できないという事実に強く寄与している。しかしながらこ のことは、本発明の目的に対して同程度に、或いはより適した新たな技術が開発 される可能性を妨げるものではない。従って特許請求の範囲は、今現在好ましい スマートカードと少なくとも同程度のセキュリティをもたらすことのできる、請 求項に示されたそうした将来的な外部ユニット及び別個の物品をもカバーするこ とを意図したものである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AU,AZ ,BB,BG,BR,BY,CA,CH,CN,CZ, DE,DK,EE,ES,FI,GB,GE,HU,I L,IS,JP,KE,KG,KP,KR,KZ,LK ,LR,LS,LT,LU,LV,MD,MG,MK, MN,MW,MX,NO,NZ,PL,PT,RO,R U,SD,SE,SG,SI,SK,TJ,TM,TR ,TT,UA,UG,US,UZ,VN

Claims (1)

  1. 【特許請求の範囲】 1.コンピュータにおけるソフトウェアの無権限使用の防止方法であって、この 方法が、 − 前記ソフトウェアの少なくとも一部を第一のアルゴリズムに従って暗号化 するステップと、及び − ソフトウェアの暗号化された部分を第二のアルゴリズムに従って解読する ステップとからなり、この第二のアルゴリズムがソフトウェアの暗号化された部 分の解読に用いられるキーと共に、前記コンピュータに接続されるよう適合され た外部ユニットに格納されており、この外部ユニットが少なくともコンピュータ 読み取り可能な記憶媒体とそれ自体のプロセッサとからなり、 第二のアルゴリズム(g2)による前記解読が前記外部ユニットに格納された第 二のキー(k2)を用いて実行され、この第二のキーが第一のアルゴリズム(g1) によるソフトウェアの前記部分の暗号化の実行において用いられた第一のキー( k1)と異なることを特徴とする方法。 2.第一のアルゴリズム(g1)によるソフトウェアの前記部分の暗号化が、コン パイル及びリンクに先立って、或いは実行可能なプログラムを作成する同様の処 理ステップの間に、それぞれのソフトウェアのソースコードに対して実行され、 また同時に、実行可能なプログラムのデータライブラリに対して外部ユニットと の通信に関するオブジェクト コードが付加されることを特徴とする、請求項1の方法。 3.第二のアルゴリズム(g2)により実行される、ソフトウェアの暗号化された 部分の前記解読が、前記ソフトウェアの実行に際してコンピュータがコールシー ケンス又は前記付加されたオブジェクトコードに対応するエントリポイントへの ジャンプを生じさせる類似の命令に遭遇した場合に行われ、この付加されたオブ ジェクトコードの使用によりコンピュータと外部ユニットとの間の通信チャンネ ルが確立され、この通信チャンネルを通じてソフトウェアの暗号化された部分が 第一の転送セッションにおいて外部ユニットへと転送されて当該外部ユニット自 体のプロセッサにより解読され、次いで解読されたソフトウェアの部分が外部ユ ニットにおいて処理され、その結果がコンピュータにおけるさらなる使用のため に通信チャンネルを通じて反対方向へと第二の転送セッションにおいて転送され ることを特徴とする、請求項1又は2の方法。 4.請求項3の方法であって、さらに − 第一のアルゴリズム(g1)により暗号化されたソフトウェアの前記部分が 、前記第一の転送セッションに先立って、第三のアルゴリズム(g3)と第三のキ ー(k3)に従ってスクランブルされ、前記第三のキー(k3)が、それぞれの転送 セッションについてランダムに選択され好ましくは外部ユニットにより生成され る数に基づいて いるステップと、及び − 第一のアルゴリズム(g1)により暗号化され、第三のアルゴリズム(g3) によりスクランブルされ、前記第一の転送セッションにおいて外部ユニットへと 転送された、ソフトウェアの前記部分が、外部ユニットにおいて第四のアルゴリ ズム(g4)と第四のキー(k4)に従って脱スクランブルされ、前記第四のキー( k4)が前記第三のキー(k3)についてランダムに選択された前記数に基づいてお り、前記第四のアルゴリズム(g4)が前記第三のアルゴリズム(g3)の逆アルゴ リズムであるステップを含むことを特徴とする方法。 5.請求項3又は4の方法であって、さらに − 前記第二のアルゴリズム(g2)により解読されたソフトウェアの前記部分 に基づいて外部ユニットで生成された前記結果が、前記第二の転送セッションに 先立って、第五のアルゴリズム(g5)と第五のキー(k5)に従ってスクランブル され、前記第五のキー(k5)が、それぞれの転送セッションについてランダムに 選択され好ましくは外部ユニットにより生成される数に基づいているステップと 、及び − 前記第二のアルゴリズム(g2)により解読されたソフトウェアの前記部分 に基づいて外部ユニットで生成され、前記第五のアルゴリズム(g5)によりスク ランブル され、前記第二の転送セッションにおいてコンピュータへと転送された、前記結 果が、コンピュータにおいて第六のアルゴリズム(g6)と第六のキー(k6)に従 って脱スクランブルされ、前記第六のキー(k6)が前記第五のキー(k5)につい てランダムに選択された前記数に基づいており、前記第六のアルゴリズム(g6) が前記第五のアルゴリズム(g5)の逆アルゴリズムであるステップを含むことを 特徴とする方法。 6.第三及び第四のキー(k3,k4)についてランダムに選択された前記数と、第 五及び第六のキー(k5,k6)についてランダムに選択された前記数が同じ数であ ることを特徴とする、請求項4又は5の方法。 7.ソフトウェア、特に相応の権限がある場合にのみコンピュータで使用するた めの無償頒布を意図したソフトウェアの作成方法であって、この方法が、前記ソ フトウェアの少なくとも一部を第一のアルゴリズムに従って暗号化し、これを前 記コンピュータにおける使用により第二のアルゴリズムに従って解読することか らなり、 第一のアルゴリズム(g1)による前記暗号化に用いられるキーが第一のキー( k1)であり、この第一のキーが、第一のアルゴリズムと第一のキーに従って暗号 化されるソフトウェアの部分の第二のアルゴリズム(g2)に従う解読の実行に用 いられる第二のキー(k2)と異なることを特 徴とする方法。 8.第一のアルゴリズム(g1)によるソフトウェアの前記部分の前記暗号化が、 実行可能なプログラムに対するコンパイル及びリンクに先立って、或いは実行可 能なプログラムを作成する同様の処理ステップの間に、それぞれのソフトウェア のソースコードそれ自体に対して実行され、また同時に、実行可能なプログラム のデータライブラリに対して、前記コンピュータに接続されるよう適合された外 部ユニットとの通信に関するオブジェクトコードが付加されることを特徴とする 、請求項7の方法。 9.実行可能なプログラムに対するソースコードの前記コンパイル及び/又はリ ンク、或いは実行可能なプログラムを作成する同様の処理ステップにおいて、コ ールシーケンス又は類似の命令が挿入され、これが実行可能なプログラムをコン ピュータで実行するに際して前記付加されたオブジェクトコードの対応するエン トリポイントに対するジャンプを生じさせ、このオブジェクトコードが、コンピ ュータと、第二のアルゴリズム(g2)に従って前記解読が行われる外部ユニット との間に通信チャンネルを確立するのに用いられることを特徴とする、請求項7 又は8の方法。 10.第一のアルゴリズム(g1)に従って暗号化されるソフトウェアの前記部分に 第三のキー(k3)が挿入されるステップをさらに含み、前記第三のキー(k3)が 、前記外 部ユニットに対する転送に先立ってソフトウェアの前記部分をスクランブリング する第三のアルゴリズム(g3)において用いることを意図したものであることを 特徴とする、請求項9の方法。 11.請求項9に従って作成されたソフトウェア、特に無償で配布されるソフトウ ェアの、コンピュータにおける権限ある使用を可能にする方法であって、この方 法が、外部ユニットを前記コンピュータに接続し、この外部ユニットが少なくと もコンピュータ読み取り可能な記憶媒体とそれ自体のプロセッサとからなり、第 二のアルゴリズムとソフトウェアの暗号化された部分の解読に用いられるキーが 前記外部ユニットに格納されているものであって、 第一のアルゴリズム(g1)に従って暗号化されたソフトウェアの部分を実行 するに際してコンピュータがコールシーケンス又は類似の命令に遭遇した場合、 追加のオブジェクトコードに対応するエントリポイントへのジャンプを生じさせ 、このオブジェクトコードがコンピュータにより用いられて外部ユニットへの通 信チャンネルを確立し、このチャンネルを通じてソフトウェアの暗号化された部 分が第一の転送セッションにおいて外部ユニットへと転送されて前記外部ユニッ トに格納されている第二のアルゴリズム(g2)と第二のキー(k2)の両者に従っ て外部ユニット自体のプロセッサにより解読され、この第二のキー(k2) が第一のアルゴリズム(g1)によるソフトウェアの前記部分の暗号化の実行に用 いられた第一のキー(k1)と異なり、次いで解読されたソフトウェアの部分が外 部ユニットにおいて処理され、その結果がコンピュータにおいてさらに用いるた めに通信チャンネルを通じて反対方向へと第二の転送セッションにおいて転送さ れることを特徴とする方法。 12.請求項10に従って作成されたソフトウェアの権限ある使用を可能にするため の、請求項11による方法であって、 − 接続された外部ユニットに対する前記第一の転送セッションに先立って、 第一のアルゴリズム(g1)により暗号化されたソフトウェアの部分が、前記第三 のアルゴリズム(g3)と前記第三のキー(k3)に従ってスクランブルされ、前記 第三のキー(k3)が、それぞれの転送セッションについてランダムに選択され好 ましくは外部ユニットにより生成される数に基づき、及び − 第一のアルゴリズム(g1)により暗号化され、前記第三のアルゴリズム( g3)によりスクランブルされ、前記第一の転送セッションにおいて外部ユニット へと転送された、ソフトウェアの前記部分が、外部ユニットにおいて第四のアル ゴリズム(g4)と第四のキー(k4)に従って脱スクランブルされ、前記第四のキ ー(k4)が前記第三のキー(k3)についてランダムに選択された前記数 に基づいており、前記第四のアルゴリズム(g4)が前記第三のアルゴリズム(g3 )の逆アルゴリズムであることを特徴とする方法。 13.請求項12の方法であって、さらに − 前記第二のアルゴリズム(g2)により解読されたソフトウェアの前記部分 に基づいて外部ユニットで生成された前記結果が、前記第二の転送セッションに 先立って、第五のアルゴリズム(g5)と第五のキー(k5)に従ってスクランブル され、前記第五のキー(k5)が、それぞれの転送セッションについてランダムに 選択され好ましくは外部ユニットにより生成される数に基づいているステップと 、及び − 前記第二のアルゴリズム(g2)により解読されたソフトウェアの前記部分 に基づいて外部ユニットで生成され、前記第五のアルゴリズム(g5)によりスク ランブルされ、前記第二の転送セッションにおいてコンピュータへと転送された 、前記結果が、コンピュータにおいて第六のアルゴリズム(g6)と第六のキー( k6)に従って脱スクランブルされ、前記第六のキー(k6)が前記第五のキー(k5 )についてランダムに選択された前記数に基づいており、前記第六のアルゴリズ ム(g6)が前記第五のアルゴリズム(g5)の逆アルゴリズムであるステップを含 むことを特徴とする方法。 14.前記第一及び第二のアルゴリズム(g1,g2)並びに前記第一及び第二のキー (k1,k2)が、RSA暗号システムの如き非対称の二重キー暗号構成(公的キー /私的キー暗号システム)に従って決定され、第一のキー(k1)が好ましくは既 知のキー(公的キー)であり、第二のキー(k2)が暗号構成の秘密キー(私的キ ー)であることを特徴とする、請求項1から13の何れか1の方法。 15.前記第一のアルゴリズム(g1)に従って暗号化されるソフトウェアの前記部 分が、コンピュータによるそれぞれのソフトウェアの使用について完全に決定的 となるように選択され、好ましくは.COM又は.EXEファイルの如きコマンド 又は実行ファイルにある一つ又はより多くの命令を含むことを特徴とする、請求 項1から14の何れか1の方法。 16.相応の権限がある場合にのみコンピュータで使用されるソフトウェア、特に 無償頒布を意図したソフトウェアの作成のための装置であって、この装置が、 − 前記ソフトウェアの少なくとも一部の暗号化を第一のアルゴリズムと第一 のキーに従って実行する暗号手段と、及び − 前記コンピュータに接続するよう適合された外部ユニットからなり、この 外部ユニットが少なくとも、それ自体のプロセッサと、第二のアルゴリズム及び キーを格納 するためのコンピュータ読み取り可能な記憶媒体とを有し、前記第二のアルゴリ ズム及びキーに従ってソフトウェアの暗号化された部分の解読を実行するよう配 置されており、 当該装置が、第二のアルゴリズム(g2)による前記解読に用いることを意図 した前記第二のアルゴリズム(g2)及び第二のキー(k2)をもたらす発生手段を さらに含み、この第二のキーが第一のアルゴリズム(g1)によるソフトウェアの 前記部分の暗号化の実行において前記暗号手段により用いられた第一のキー(k1 )と異なることを特徴とする装置。 17.前記暗号手段が、第一のアルゴリズム(g1)によるソフトウェアの前記部分 の前記暗号化を、コンパイル及びリンクに先立って、或いは何らかの他の形態で 実行可能なプログラムに変形される前に、それぞれのソフトウェアのソースコー ドそれ自体に対して実行するよう適合され、前記暗号手段が同時に、実行可能な プログラムのデータライブラリに対する、前記外部ユニットとの通信に関するオ ブジェクトコードの付加を行うことを特徴とする、請求項16の装置。 18.前記暗号手段が、実行可能なプログラムに対するソースコードの前記コンパ イル及び/又はリンク、或いは実行可能なプログラムを作成する同様の処理ステ ップの間に、 コールシーケンス又は類似の命令を挿入するよう適合され、これが実行可能なプ ログラムを前記コンピュータで実行するに際して前記付加されたオブジェクトコ ードの対応するエントリポイントに対するジャンプを生じさせ、このオブジェク トコードが前記コンピュータに用いられて、接続された外部ユニットへの通信チ ャンネルが確立されることを特徴とする、請求項16又は17の装置。 19.前記暗号手段が第一のアルゴリズム(g1)に従って暗号化されるソフトウェ アの前記部分に第三のキー(k3)を入力するように適合され、これが前記外部ユ ニットに対する転送に先立ってソフトウェアの前記部分をスクランブリングする ために第三のアルゴリズム(g3)において用いることを意図したものであること を特徴とする、請求項18の装置。 20.請求項16による装置により作成されたソフトウェア、特に無償で配布される ソフトウェアの権限ある使用を可能にする装置であって、この装置が、少なくと もそれ自体のプロセッサとコンピュータ読み取り可能な記憶媒体とからなり、ホ ストコンピュータとの通信のためにホストコンピュータに接続することを意図し た外部ユニットのための、ホストコンピュータとして作用するよう適合されたコ ンピュータを含むものにおいて、 前記外部ユニットが前記発生手段により生成された前記 第二のアルゴリズム(g2)と前記第二のキー(k2)に従って解読を実行するよう 適合された解読手段を含み、この第二のキーが、第一のアルゴリズム(g1)に従 うソフトウェアの前記部分の暗号化の実行において前記暗号手段により用いられ た第一のキー(k1)と異なることを特徴とする装置。 21.前記解読手段が、第一のアルゴリズム(g1)により暗号化された前記ソフト ウェアの部分の実行に際してホストコンピュータがコールシーケンス又は前記付 加されたオブジェクトコードに対応するエントリポイントへのジャンプを生じさ せる類似物に遭遇した場合に、第二のアルゴリズム(g2)により前記解読を実行 するよう適合されており、ホストコンピュータがこのオブジェクトコードを使用 して外部ユニットへの通信チャンネルを確立し、この通信チャンネルを通じてホ ストコンピュータがソフトウェアの暗号化された部分の第一の転送セッションに おける外部ユニットへの転送と前記解読を生じさせ、前記外部ユニットのそれ自 体のプロセッサがソフトウェアの解読された部分を処理し、その結果をコンピュ ータにおけるさらなる使用のために通信チャンネルを通じて反対方向へと第二の 転送セッションにおいて転送するよう適合されていることを特徴とする、請求項 20の装置。 22.請求項19に従う装置により作成されたソフトウェアの 権限ある使用を可能にするよう適合された、請求項21による装置であって、 外部ユニットが、第一のアルゴリズム(g1)により暗号化され、前記第一の 転送セッションに先立ってホストコンピュータにより前記第三のアルゴリズム( g3)に従ってスクランブルされ、前記第一の転送セッションにおいて外部ユニッ トへと転送された、ソフトウェアの前記部分を、第四のアルゴリズム(g4)と第 四のキー(k4)に従って脱スクランブルする脱スクランブリング手段を含み、こ のスクランブリングにおいてホストコンピュータにより使用された前記第三のキ ー(k3)が、それぞれの転送セッションについてランダムに選択され好ましくは 外部ユニットの数発生器により提供される数に基づき、及び外部ユニットにおい て脱スクランブリング手段により用いられる前記第四のキー(k4)が前記第三の キー(k3)についてのものと同じランダムに選択された数に基づいており、前記 第四のアルゴリズム(g4)が前記第三のアルゴリズム(g3)の逆アルゴリズムで あることを特徴とする装置。 23.外部ユニットがさらに、当該ユニットが前記第二のアルゴリズム(g2)に従 って解読したソフトウェアの前記部分に基づいて外部ユニットで生成された前記 結果を、前記第二の転送セッションに先立って、第五のアルゴリズム(g5)と第 五のキー(k5)に従ってスクランブルするス クランブリング手段を含み、このスクランブルに際しスクランブリング手段によ り用いられる前記第五のキー(k5)が、それぞれの転送セッションについてラン ダムに選択され好ましくは外部ユニットの数発生器により生成される数に基づい ており、ホストコンピュータが外部ユニットで生成された前記結果を、ホストコ ンピュータにおいてさらに使用するために第六のアルゴリズム(g6)と第六のキ ー(k6)に従って脱スクランブルすることができ、前記結果が前記第二の転送セ ッションに先立って、外部ユニットのスクランブリング手段により前記第五のア ルゴリズム(g5)に従ってスクランブルされ、第二の転送セッションにおいてコ ンピュータへと転送され、前記第六のキー(k6)が前記第五のキー(k5)につい てと同じランダムに選択された数に基づいており、前記第六のアルゴリズム(g6 )が前記第五のアルゴリズム(g5)の逆アルゴリズムであることを特徴とする、 請求項21又は22の装置。 24.前記外部ユニットが、好ましくは改竄防止用に作成されたアダプタ手段と別 個の物品とを含み、少なくとも外部ユニットのプロセッサとコンピュータ読み取 り可能なメモリからなる電子回路がそこに配置され、前記物品がアダプタ手段の スロット内に挿入された場合又は他の仕方によりアダプタ手段と接続された場合 に、前記別個の物品の回路と前記ホストコンピュータとの間に通信チャンネルを 確立 可能なように配置され、前記第二のアルゴリズム(g2)と前記第二のキー(k2) が前記メモリ内に、好ましくは別個の物品のプロセッサ以外の手段によっては読 み取り不能であり、別個の物品の外部では入手不能となる仕方で格納されている ことを特徴とする、請求項16から23の何れかの装置。 25.前記別個の物品が、通常のクレジットカードの大きさを有する、プラスチッ クカードの如き小さな基板プレート、即ちスマートカードの形態を取り、アダプ タ手段が前記基板プレートのためのカードリーダステーションからなり、これが 任意選択的にホストコンピュータ又はそれに接続された周辺ユニットに取り込ま れることを特徴とする、請求項24の装置。 26.前記別個の物品が、拡張カードのためにホストコンピュータに設けられたカ ード位置又はスロットに配置されるよう適合された電子回路カードの形態を取り 、携帯型ホストコンピュータの場合に、この回路カードがPCMCIA標準の如 き、こうした挿入可能なカードのための標準設計の一つに従って構成されること を特徴とする、請求項24の装置。 27.前記別個の物品が電子的盲プラグなどの形態を取り、前記アダプタ手段がホ ストコンピュータの入出力端子からなる、請求項24の装置。
JP50571097A 1995-07-13 1996-07-10 無許可使用に対するソフトウェアの保護 Expired - Fee Related JP4267065B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NO952795 1995-07-13
NO952795A NO302388B1 (no) 1995-07-13 1995-07-13 Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
PCT/NO1996/000171 WO1997003398A1 (en) 1995-07-13 1996-07-10 Protection of software against use without permit

Publications (2)

Publication Number Publication Date
JPH11509023A true JPH11509023A (ja) 1999-08-03
JP4267065B2 JP4267065B2 (ja) 2009-05-27

Family

ID=19898393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50571097A Expired - Fee Related JP4267065B2 (ja) 1995-07-13 1996-07-10 無許可使用に対するソフトウェアの保護

Country Status (17)

Country Link
US (3) US6266416B1 (ja)
EP (2) EP0855052B1 (ja)
JP (1) JP4267065B2 (ja)
KR (1) KR19990028931A (ja)
CN (1) CN1155866C (ja)
AT (1) ATE233916T1 (ja)
AU (1) AU713872B2 (ja)
DE (1) DE69626530T2 (ja)
DK (1) DK0855052T3 (ja)
ES (1) ES2194109T3 (ja)
HK (2) HK1048674A1 (ja)
IL (1) IL122888A (ja)
NO (1) NO302388B1 (ja)
NZ (1) NZ313319A (ja)
PL (1) PL187088B1 (ja)
PT (1) PT855052E (ja)
WO (1) WO1997003398A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007515723A (ja) * 2003-12-22 2007-06-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アクティブなエンティティを使用するソフトウェア実行保護
JP2012514277A (ja) * 2008-12-26 2012-06-21 エスケーテレコム株式会社 ソフトウェアライセンス保護方法、そのためのシステム、サーバ、端末機、及びコンピュータで読み取り可能な記録媒体

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US6523119B2 (en) 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
FR2760871B1 (fr) * 1997-03-13 1999-04-16 Bull Cp8 Procede de stockage et d'exploitation d'une information sensible dans un module de securite, et module de securite associe
SG67401A1 (en) * 1997-07-07 1999-09-21 Low Huan Khing A method and system for protecting intellectual property products distributed in mass market
US6442276B1 (en) 1997-07-21 2002-08-27 Assure Systems, Inc. Verification of authenticity of goods by use of random numbers
US6643775B1 (en) * 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
EP0930616B1 (en) 1998-01-20 2005-07-13 Fujitsu Limited Data storage device and control method therefor
EP1004979A1 (en) * 1998-11-24 2000-05-31 CANAL+ Société Anonyme Portable electronic card
US7140005B2 (en) * 1998-12-21 2006-11-21 Intel Corporation Method and apparatus to test an instruction sequence
US6697489B1 (en) 1999-03-30 2004-02-24 Sony Corporation Method and apparatus for securing control words
US7730300B2 (en) 1999-03-30 2010-06-01 Sony Corporation Method and apparatus for protecting the transfer of data
JP2001016195A (ja) * 1999-04-27 2001-01-19 Matsushita Electric Ind Co Ltd 情報利用制御装置
FR2793050B1 (fr) * 1999-04-28 2001-08-17 Fingerprint Procede pour securiser un logiciel d'utilisation a partir d'une unite de traitement et de memorisation d'un secret et systeme en faisant application
US7117369B1 (en) * 1999-05-03 2006-10-03 Microsoft Corporation Portable smart card secured memory system for porting user profiles and documents
US7036738B1 (en) 1999-05-03 2006-05-02 Microsoft Corporation PCMCIA-compliant smart card secured memory assembly for porting user profiles and documents
US6681214B1 (en) * 1999-06-29 2004-01-20 Assure Systems, Inc. Secure system for printing authenticating digital signatures
JP4127587B2 (ja) * 1999-07-09 2008-07-30 株式会社東芝 コンテンツ管理方法およびコンテンツ管理装置および記録媒体
US7351919B1 (en) * 1999-07-15 2008-04-01 Thomson Licensing Port cover for limiting transfer of electromagnetic radiation from a port defined in a host device
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
EP1076279A1 (en) * 1999-08-13 2001-02-14 Hewlett-Packard Company Computer platforms and their methods of operation
GB9922665D0 (en) 1999-09-25 1999-11-24 Hewlett Packard Co A method of enforcing trusted functionality in a full function platform
US6912513B1 (en) * 1999-10-29 2005-06-28 Sony Corporation Copy-protecting management using a user scrambling key
US7039614B1 (en) 1999-11-09 2006-05-02 Sony Corporation Method for simulcrypting scrambled data to a plurality of conditional access devices
US6304972B1 (en) * 2000-01-03 2001-10-16 Massachusetts Institute Of Technology Secure software system and related techniques
DE10003086A1 (de) * 2000-01-25 2001-08-02 Infineon Technologies Ag Datenverarbeitungssystem
SE0000871L (sv) * 2000-03-13 2001-09-14 Oerjan Vestgoete Ett förfarande och system för att vid elektronisk handel förhindra ej auktoriserad användning av programvara
KR20000053933A (ko) * 2000-05-10 2000-09-05 류종렬 소프트웨어의 정품인증시스템 및 그 방법
DE10023820B4 (de) * 2000-05-15 2006-10-19 Siemens Ag Software-Schutzmechanismus
WO2001088732A1 (en) * 2000-05-17 2001-11-22 Smart Modular Technologies, (Ma) Inc. Programming a memory based on information obtained from a remote location
CN1302427C (zh) * 2000-07-07 2007-02-28 富士通株式会社 集成电路卡终端
MD1871G2 (ro) * 2000-07-28 2002-08-31 Компания ДЕКАРТ с ограниченной ответственностью Procedeu de protecţie contra copierii bazelor de date şi a programelor pentru calculator
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
JP2004537095A (ja) * 2001-04-24 2004-12-09 ヒューレット・パッカード・カンパニー 情報セキュリティシステム
DK1305708T3 (da) 2001-05-11 2003-07-14 Sospita As Rækkefølge-nummereringsmekanisme til at sikre integriteten af eksekveringsrækkefølgen for indbyrdes afhængige smartcard-applikationer
WO2002093825A1 (fr) * 2001-05-15 2002-11-21 Mitsubishi Denki Kabushiki Kaisha Appareil de reproduction de contenu, serveur et systeme de distribution de contenu
US7895616B2 (en) 2001-06-06 2011-02-22 Sony Corporation Reconstitution of program streams split across multiple packet identifiers
US7747853B2 (en) 2001-06-06 2010-06-29 Sony Corporation IP delivery of secure digital content
US7127619B2 (en) 2001-06-06 2006-10-24 Sony Corporation Decoding and decryption of partially encrypted information
US7146340B1 (en) * 2001-07-25 2006-12-05 Novell, Inc. Method and systems for licensing electronic data
KR100435918B1 (ko) * 2001-11-09 2004-06-16 주식회사 휴맥스 디지털 방송 프로그램에서의 데이터 암호화 기록 방법
EP1471405A4 (en) * 2001-11-12 2010-01-13 Gerite Associates Ltd METHOD AND SYSTEM FOR PROTECTING INFORMATION AGAINST UNAUTHORIZED USE
CA2363795A1 (en) * 2001-11-26 2003-05-26 Cloakware Corporation Computer system protection by communication diversity
WO2003055132A1 (en) * 2001-12-21 2003-07-03 Sony Computer Entertainment Inc. Methods and apparatus for secure distribution of program content
KR20030055713A (ko) * 2001-12-27 2003-07-04 한국전자통신연구원 디지털 컨텐츠 저작권 보호 장치 및 방법
US7823174B2 (en) 2002-01-02 2010-10-26 Sony Corporation Macro-block based content replacement by PID mapping
US7765567B2 (en) 2002-01-02 2010-07-27 Sony Corporation Content replacement by PID mapping
JP2003280754A (ja) * 2002-03-25 2003-10-02 Nec Corp 隠蔽化ソースプログラム、ソースプログラム変換方法及び装置並びにソース変換プログラム
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US20030200449A1 (en) * 2002-04-17 2003-10-23 International Business Machines Corporation Method of accessing a shared subroutine of computer system
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US7093119B2 (en) 2002-07-16 2006-08-15 International Business Machines Corporation Methods and computer program products for protecting source code of an interpreted programming language
AU2003268037A1 (en) * 2002-07-30 2004-02-16 Digital Interactive Streams, Inc. Digital content security system and method
WO2004013744A2 (en) 2002-08-01 2004-02-12 Matsushita Electric Industrial Co., Ltd. Apparatuses and methods for decrypting encrypted blocks of data and locating the decrypted blocks of data in memory space used for execution
GB2392262A (en) * 2002-08-23 2004-02-25 Hewlett Packard Co A method of controlling the processing of data
US8818896B2 (en) 2002-09-09 2014-08-26 Sony Corporation Selective encryption with coverage encryption
US7724907B2 (en) * 2002-11-05 2010-05-25 Sony Corporation Mechanism for protecting the transfer of digital content
US8572408B2 (en) 2002-11-05 2013-10-29 Sony Corporation Digital rights management of a digital device
AR042599A1 (es) * 2002-11-19 2005-06-29 Schiavoni Juan Jose Metodo de proteccion de programas y equipo para realizarlo
JP2004171367A (ja) * 2002-11-21 2004-06-17 Matsushita Electric Ind Co Ltd 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム
JP3878542B2 (ja) * 2002-11-29 2007-02-07 株式会社東芝 記録装置
US8667525B2 (en) 2002-12-13 2014-03-04 Sony Corporation Targeted advertisement selection from a digital stream
US8645988B2 (en) 2002-12-13 2014-02-04 Sony Corporation Content personalization for digital content
EP1439446B1 (de) * 2003-01-14 2006-03-29 Aladdin Knowledge Systems GmbH& Co. KG Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
WO2005022341A2 (en) * 2003-08-29 2005-03-10 Tgbw Inc. Flash memory distribution of digital content
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US20050071656A1 (en) * 2003-09-25 2005-03-31 Klein Dean A. Secure processor-based system and method
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
WO2005091636A1 (en) * 2004-03-04 2005-09-29 Cloakx, Llc. A method and system for digital rights management and digital content distribution
FR2867635B1 (fr) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
WO2006003632A2 (en) * 2004-07-02 2006-01-12 Philips Intellectual Property & Standards Gmbh Security unit and method for protecting data
US20060020552A1 (en) * 2004-07-26 2006-01-26 James Sloan Copy-restriction system for digitally recorded, computer disk-based music recordings
US8041190B2 (en) 2004-12-15 2011-10-18 Sony Corporation System and method for the creation, synchronization and delivery of alternate content
US7895617B2 (en) 2004-12-15 2011-02-22 Sony Corporation Content substitution editor
US20060137016A1 (en) * 2004-12-20 2006-06-22 Dany Margalit Method for blocking unauthorized use of a software application
CN100373376C (zh) * 2005-01-21 2008-03-05 深圳市致芯微电子有限公司 加密芯片、利用该加密芯片的cpu程序加密方法和***
WO2006100522A1 (en) 2005-03-22 2006-09-28 Hewlett-Packard Development Company, L.P. Methods, devices and data structures for trusted data
EP1717723A1 (en) 2005-04-29 2006-11-02 ST Incard S.r.l. Improved virtual machine or hardware processor for IC-card portable electronic devices
JP2007065850A (ja) * 2005-08-30 2007-03-15 Fujitsu Ltd 情報処理装置、情報処理方法およびプログラム
US20070074050A1 (en) * 2005-09-14 2007-03-29 Noam Camiel System and method for software and data copy protection
JP4631658B2 (ja) * 2005-11-09 2011-02-16 ソニー株式会社 デジタル放送受信システム及びデジタル放送受信装置
CN100446016C (zh) * 2005-11-17 2008-12-24 北京兆维电子(集团)有限责任公司 一种实现数据安全保护的***
US7991159B2 (en) * 2005-12-09 2011-08-02 Alcatel-Lucent Usa Inc. Layered mobile application security system
US8701091B1 (en) 2005-12-15 2014-04-15 Nvidia Corporation Method and system for providing a generic console interface for a graphics application
EP1798653B1 (de) 2005-12-16 2011-08-03 Aladdin Europe GmbH Verfahren, Computerprogrammprodukt und Vorrichtung zum Schützen eines einen Funktionsblock aufweisenden Programms
US8185921B2 (en) 2006-02-28 2012-05-22 Sony Corporation Parental control of displayed content using closed captioning
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
RU2296363C1 (ru) * 2006-04-27 2007-03-27 Общество с ограниченной ответственностью "АСТРОМА" Способ и средство защиты программного обеспечения от несанкционированного использования
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US8436870B1 (en) 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
US8607151B2 (en) * 2006-08-01 2013-12-10 Nvidia Corporation Method and system for debugging a graphics pipeline subunit
US8963932B1 (en) 2006-08-01 2015-02-24 Nvidia Corporation Method and apparatus for visualizing component workloads in a unified shader GPU architecture
CN100428262C (zh) * 2006-09-22 2008-10-22 中山大学 一种基于改进的一次一密乱码本的软件保护方法
US20080133419A1 (en) * 2006-12-05 2008-06-05 Brian Wormington Secure financial transaction system and method
US8479020B2 (en) * 2007-07-25 2013-07-02 Motorola Mobility Llc Method and apparatus for providing an asymmetric encrypted cookie for product data storage
DE102007059798B3 (de) * 2007-12-11 2009-04-09 Ascolab Gmbh Verfahren zur Verschlüsselung von ausführbarem Programmcode, insbesondere als Schutz gegen unautorisierte Vervielfältigung, Manipulation und unautorisierten Betrieb
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules
JP5037422B2 (ja) * 2008-04-30 2012-09-26 株式会社リコー 画像形成装置、アクセス制御方法、及びアクセス制御プログラム
KR101049718B1 (ko) * 2008-12-29 2011-07-19 에스케이 텔레콤주식회사 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체
US20130283396A1 (en) * 2009-07-30 2013-10-24 Rascalim Software Security Ltd. System and method for limiting execution of software to authorized users
WO2012126077A1 (en) 2011-03-21 2012-09-27 Irdeto Canada Corporation System and method for securely binding and node-locking program execution to a trusted signature authority
KR20140054158A (ko) 2011-08-05 2014-05-08 케이피아이티 테크놀로지스 엘티디. 임베디드 소프트웨어 코드의 보호를 위한 시스템
US9489541B2 (en) * 2011-09-09 2016-11-08 Nvidia Corporation Content protection via online servers and code execution in a secure operating system
ITMI20120561A1 (it) 2012-04-05 2013-10-06 St Microelectronics Srl Metodo per proteggere un programma applicativo
US9323315B2 (en) 2012-08-15 2016-04-26 Nvidia Corporation Method and system for automatic clock-gating of a clock grid at a clock source
US8850371B2 (en) 2012-09-14 2014-09-30 Nvidia Corporation Enhanced clock gating in retimed modules
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
CN103324871A (zh) * 2013-05-23 2013-09-25 董礼貌 一种软件万变链接设备、***和方法
CN104462990B (zh) * 2013-09-13 2019-02-26 腾讯科技(深圳)有限公司 字符串加解密方法和装置
JP6287964B2 (ja) * 2015-06-09 2018-03-07 株式会社デンソー ソフトウェア複製防止システム
US11829454B2 (en) * 2018-03-09 2023-11-28 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
US9881142B2 (en) * 2015-09-11 2018-01-30 Patrick Robert Koren Method and apparatus for preventing and investigating software piracy
US20190362085A1 (en) * 2017-06-23 2019-11-28 Mitsubishi Electric Corporation Ladder program unauthorized-use prevention system and ladder program unauthorized-use prevention method
US20220374512A1 (en) * 2021-05-21 2022-11-24 Vmware, Inc. Software-based hardware security module (hsm) for a virtualized computing environment

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2523745B1 (fr) * 1982-03-18 1987-06-26 Bull Sa Procede et dispositif de protection d'un logiciel livre par un fournisseur a un utilisateur
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4799258A (en) * 1984-02-13 1989-01-17 National Research Development Corporation Apparatus and methods for granting access to computers
GB2163577B (en) * 1984-08-23 1988-01-13 Nat Res Dev Software protection device
GB8423784D0 (en) * 1984-09-20 1984-10-24 Fifield K J Processing device
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US5109413A (en) * 1986-11-05 1992-04-28 International Business Machines Corporation Manipulating rights-to-execute in connection with a software copy protection mechanism
DE3751047T2 (de) 1986-11-05 1995-08-10 Ibm Softwareschutzsystem einschliesslich eines Einschlüsselkryptosystems, eines auf Hardware beruhenden Genehmigungssystems und eines geschützten Zusatzprozessors.
US5081676A (en) * 1990-10-04 1992-01-14 Chou Wayne W Method and apparatus for protecting multiple copies of computer software from unauthorized use
US5410717A (en) * 1991-03-22 1995-04-25 Allen-Bradley Company, Inc. Removable function card for a programmable controller processor
US5485519A (en) * 1991-06-07 1996-01-16 Security Dynamics Technologies, Inc. Enhanced security for a secure token code
US5222133A (en) * 1991-10-17 1993-06-22 Wayne W. Chou Method of protecting computer software from unauthorized execution using multiple keys
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
DE4239865A1 (de) 1992-11-27 1994-06-01 Heinz Johann Verfahren zur Verhinderung der Anwendung eines unberechtigt auf einen Datenträger kopierten Programms und Vorrichtung zur Durchführung des Verfahrens
US5337357A (en) * 1993-06-17 1994-08-09 Software Security, Inc. Method of software distribution protection
US5319704A (en) * 1993-06-17 1994-06-07 Exar Corporation Control circuit for voltage controlled attenuator for speakerphones
US5343527A (en) * 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5398285A (en) * 1993-12-30 1995-03-14 Motorola, Inc. Method for generating a password using public key cryptography
DE4419115A1 (de) * 1994-06-01 1994-10-20 Michael Doelker Verfahren zum hochwirksamen Schutz vor unauthorisierter Benutzung von Softwarekopien
US5651068A (en) * 1995-03-08 1997-07-22 Hewlett-Packard Company International cryptography framework
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007515723A (ja) * 2003-12-22 2007-06-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アクティブなエンティティを使用するソフトウェア実行保護
JP2012514277A (ja) * 2008-12-26 2012-06-21 エスケーテレコム株式会社 ソフトウェアライセンス保護方法、そのためのシステム、サーバ、端末機、及びコンピュータで読み取り可能な記録媒体

Also Published As

Publication number Publication date
CN1192814A (zh) 1998-09-09
DE69626530D1 (de) 2003-04-10
US6266416B1 (en) 2001-07-24
WO1997003398A1 (en) 1997-01-30
NO952795D0 (no) 1995-07-13
IL122888A (en) 2000-10-31
ATE233916T1 (de) 2003-03-15
EP0855052A1 (en) 1998-07-29
PL324525A1 (en) 1998-06-08
NO302388B1 (no) 1998-02-23
AU713872B2 (en) 1999-12-09
PT855052E (pt) 2003-06-30
EP0855052B1 (en) 2003-03-05
US20030190043A1 (en) 2003-10-09
PL187088B1 (pl) 2004-05-31
HK1009533A1 (en) 1999-06-04
DK0855052T3 (da) 2003-07-07
IL122888A0 (en) 1998-08-16
JP4267065B2 (ja) 2009-05-27
DE69626530T2 (de) 2003-11-13
NZ313319A (en) 1999-10-28
ES2194109T3 (es) 2003-11-16
CN1155866C (zh) 2004-06-30
KR19990028931A (ko) 1999-04-15
NO952795L (no) 1997-01-14
EP1253503A3 (en) 2004-07-14
HK1048674A1 (zh) 2003-04-11
US20040193987A1 (en) 2004-09-30
EP1253503A2 (en) 2002-10-30
AU6535796A (en) 1997-02-10
MX9800385A (es) 1998-09-30

Similar Documents

Publication Publication Date Title
JPH11509023A (ja) 無許可使用に対するソフトウェアの保護
US7549147B2 (en) Security framework for protecting rights in computer software
JP4073913B2 (ja) 開放型汎用耐攻撃cpu及びその応用システム
EP0556305B1 (en) A secure system for activating personal computer software at remote locations
EP1423771B1 (en) Method to protect software against unauthorized use
US7516331B2 (en) Tamper-resistant trusted java virtual machine and method of using the same
US5625690A (en) Software pay per use system
US20080256368A1 (en) Method and Device For Protecting Digital Content in Mobile Applications
JP2015079527A (ja) 将来作成されるディジタル・コンテンツの使用権を設定する方法および装置
WO2002052386A2 (en) Method and system for software integrity control using secure hardware assisting device
EP1837789A2 (en) Method and apparatus for temporarily accessing content using temporary license
JP2002526822A (ja) セキュリティ処理環境を提供するための装置
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
EP1471405A1 (en) Method and device for protecting information against unauthorised use
KR100310445B1 (ko) Pc 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어방법
CA2226386C (en) Protection of software against use without permit
AU2168599A (en) Simultaneous protection for several types of software of several software designers
MXPA98000385A (en) Protection of computer programs against unauthorized use

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060718

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061013

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080201

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20080221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080722

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081022

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090108

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees