JP4267065B2 - 無許可使用に対するソフトウェアの保護 - Google Patents
無許可使用に対するソフトウェアの保護 Download PDFInfo
- Publication number
- JP4267065B2 JP4267065B2 JP50571097A JP50571097A JP4267065B2 JP 4267065 B2 JP4267065 B2 JP 4267065B2 JP 50571097 A JP50571097 A JP 50571097A JP 50571097 A JP50571097 A JP 50571097A JP 4267065 B2 JP4267065 B2 JP 4267065B2
- Authority
- JP
- Japan
- Prior art keywords
- algorithm
- key
- software
- external unit
- computer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/109—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/77—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/127—Trusted platform modules [TPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0442—Network 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)
- Technology Law (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
- Emergency Protection Circuit Devices (AREA)
- Devices For Executing Special Programs (AREA)
- Moving Of Heads (AREA)
- Orthopedics, Nursing, And Contraception (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Description
本発明は、著作権保有者の許可のない使用に対する、ソフトウェア、特に無償で配布されるアプリケーションソフトウェアの保護に関する。特に、コンピュータにおけるソフトウェアの無権限使用を防止するための方法、相応の権限がある場合にのみコンピュータで使用されるソフトウェアを作成するための方法及び装置、並びに本発明の一側面に従って作成されたソフトウェアのコンピュータにおける権限ある使用を許可するための方法及び装置に関するものである。
ソフトウェア、特にパソコン上で走るよう適合されたソフトウェアについての海賊コピーは、ソフトウェアのベンダにとっては甚大な問題であり、毎年大きな金額についている。例えば、特定のコンピュータプログラム又はプログラムパッケージのインストール又は作動についてパスワードを要求することにより、無権限な使用からソフトウェアを保護するという、従来用いられている方法は、十分なセキュリティをもたらしてはいない。従って、著作権保有者の許可が現実に存在する場合にのみ、特定のコンピュータプログラム又はコンピュータプログラムパッケージを使用することを可能にするような構成は、極めて重要である。
背景技術
必要なパスワードを単に打ち込んだだけでは、プログラムに対してアクセスを行うには不十分であるという構成を確立するために、既に幾つかの試みがなされている。例えば、所与のプログラムを用いることを可能にするために、コンピュータに対して特別のハードウェアユニットが接続されていることを必要とするシステムが提案されている。このユニットは例えば盲プラグ(「ドングル(dongle)」とも呼ばれる)の形態を有し、コンピュータの入出力端子の一つに直接に接続され、内部メモリに格納された固定のテーブル、識別番号その他を有していて、該当するアプリケーションプログラム内にその目的で含まれているプログラムされた追加的なルーチンの要求に応じて、情報がそこから読み出される。このユニットはまた、カードリーダステーションその他の形態を取ることもできる。その場合、カードが差し込まれ、カードに格納されている事項は概ね、上記の盲プラグに格納されているのと類似したものである。通常のチェック手順は、プログラムの追加的なルーチンが、例えばプログラムの識別と、格納されているテーブル中に存在する対応する情報項目を直接に比較することを含む。
こうした構成の一例は、ドイツ特許出願公開第44 19 115号に記載されており、そこではチップカードに格納された事項が読み取られ、予想された内容が存在する場合には、この事実をもって、プログラムを使用するための識別の十分な証拠であるとする。このチェックは、プログラムのインストールの際、或いはその使用中に行うことができる。ドイツ特許出願公開第42 39 865号は類似のシステムを開示しており、これは付加的に、実行されたソフトウェアのインストール回数を記録し、その数を制限することを可能にする構成を提供している。
上記のような公知の装置の全てについて、ソフトウェア中に含まれねばならない付加的なルーチンは、主たる欠点を構成するものとなっている。こうしたルーチンを単に取り除けば、ソフトウェアは通常通り動作し、無権限使用に対する保護は失われる。また、コンピュータのプロセッサと、ユニット又はカードのメモリとの間でデータが交換される間に、その情報を見ることが可能であり、さらにプログラムが使用される度毎にこの情報が交換される経路は同一であるから、外部メモリに格納された事項を暴くことも可能である。メモリの内容が何らかの手法により暗号化されていたとしても、通信インタフェースを介してのこうした種類の繰り返しは、例えば対応するハードウェアユニットをシミュレートすることを可能なものとし、或いは比較的高くはないコンピュータパワーによって「コードを破る」ことを可能にする。
英国特許公開第2 163 577号に記載された構成においては、特定の暗号技術を用い、また幾つかの記憶手段をそれ自体のプロセッサと共に改竄防止ハウジングに収容することにより、上述したタイプのハードウェアユニットの欠点の幾つかが回避されている。ハウジング内のプロセッサは、ハウジング内に格納された解読キーと、やはりハウジング内に格納された命令とを用いて、ハウジングが接続されているホストコンピュータから転送されてくる暗号化されたアプリケーションプログラム又はプログラムモジュールを解読し、それ自体によって実行する。暗号技術それ自体については、英国特許公開第2 163 577号による構成は、アプリケーションソフトウェアの暗号化のために、いわゆるDESアルゴリズム(DES−Data Encryption Standard(データ暗号化標準)、1977年米国標準化局)を用い、またこれを解読するために、対応する逆のDESアルゴリズムを用いているため、暗号化と解読の両方について、全く同じキーが用いられている。よってDES標準は対称的なものであり、セキュリティはキーそれ自体のみに存している。従って、このセキュリティを漏らすことがないように、この英国特許出願においては、このDESキーそれ自体の暗号化も提案されている。その目的のためにこれは、二つの異なるキー、つまり一方は暗号化用で他方は解読用のキーを有する、いわゆるRSAアルゴリズム(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)と、及び
− さらなる使用のための解読されたデータの出力ステップとからなる。
本発明の図示の実施形態の例においては、スマートカードが以下の請求項に示した外部ユニットの好ましい実現形態を構成している。これは極めて単純に、スマートカード技術が、以下の請求項に従って外部ユニット又は別個の物品中に必然的に格納されねばならないアルゴリズム、キーその他について、最も「改竄防止」保護されていると考えられるからである。こうしたカードの製造業者の数が世界中で少ないこと、そしてなかでもこうしたカード、特に支払い取引カードの形態を有するカードの使用により取り扱われる価値が大きいことは、こうしたスマートカードを偽造するのに必要な知識が、不正な意図を有する人物に容易には入手できないという事実に強く寄与している。しかしながらこのことは、本発明の目的に対して同程度に、或いはより適した新たな技術が開発される可能性を妨げるものではない。従って特許請求の範囲は、今現在好ましいスマートカードと少なくとも同程度のセキュリティをもたらすことのできる、請求項に示されたそうした将来的な外部ユニット及び別個の物品をもカバーすることを意図したものである。
Claims (16)
- コンピュータにおけるソフトウェアの無権限使用を防止する方法であって、
前記ソフトウェアの少なくとも一部を第一のアルゴリズム(g1)、及び第一のキー(k1)に従って暗号化すると同時に、前記コンピュータに接続可能な外部ユニットとの間の通信に関連するオブジェクトコードに対するコールシーケンスを前記ソフトウェアのソースコードに埋め込み、さらに該オブジェクトコードを実行可能なプログラムのデータライブラリに追加するステップであって、前記暗号化が、前記ソフトウェアのソースコードのコンパイル、及びリンクに先立って、前記ソフトウェアのソースコードに対して実施されるステップと、
前記外部ユニットにおいて、前記ソフトウェアの暗号化された部分を前記外部ユニットに格納された第二のアルゴリズム(g2)、及び第二のキー(k2)に従って解読するステップであって、前記第二のキー(k2)が、前記第一のキー(k1)とは異なるものである、解読するステップと
を含み、
前記解読するステップは、前記ソフトウェアの実行可能なプログラムの実行中に前記コンピュータが、前記追加されたオブジェクトコードの対応するエントリポイントへのジャンプを生じさせる前記コールシーケンスに遭遇したときに実施され、それによって、前記コンピュータは、追加された前記オブジェクトコードを使用して前記コンピュータと前記外部ユニットとの間に通信路を確立し、前記ソフトウェアの暗号化された部分を前記外部ユニットのプロセッサにより解読するために第一の転送セッションにおいて前記通信路を通して前記外部ユニットへと転送し、解読された前記ソフトウェアの部分が前記外部ユニットにおいて処理され、その結果が、前記コンピュータにおける更なる使用のために、第二の転送セッションにおいて前記通信路を通じて逆方向に転送されることを特徴とする方法。 - 前記第一のアルゴリズム(g1)により暗号化されたソフトウェアの部分が、前記第一の転送セッションに先立って、第三のアルゴリズム(g3)と第三のキー(k3)に従ってスクランブルされ、前記第三のキー(k3)が、それぞれの転送セッションについてランダムに選択され好ましくは外部ユニットにより生成される数に基づいているステップと、
前記第一のアルゴリズム(g1)により暗号化され、前記第三のアルゴリズム(g3)によりスクランブルされ、前記第一の転送セッションにおいて外部ユニットへと転送されたソフトウェアの部分が、外部ユニットにおいて第四のアルゴリズム(g4)と第四のキー(k4)に従って脱スクランブルされ、前記第四のキー(k4)が前記第三のキー(k3)についてランダムに選択された前記数に基づいており、前記第四のアルゴリズム(g4)が前記第三のアルゴリズム(g3)の逆アルゴリズムであるステップと
をさらに含む、請求項1に記載の方法。 - 前記第二のアルゴリズム(g2)により解読されたソフトウェアの部分に基づいて外部ユニットで生成された前記結果が、前記第二の転送セッションに先立って、第五のアルゴリズム(g5)と第五のキー(k5)に従ってスクランブルされ、前記第五のキー(k5)が、それぞれの転送セッションについてランダムに選択され好ましくは外部ユニットにより生成される数に基づいているステップと、及び
前記第二のアルゴリズム(g2)により解読されたソフトウェアの部分に基づいて外部ユニットで生成され、前記第五のアルゴリズム(g5)によりスクランブルされ、前記第二の転送セッションにおいてコンピュータへと転送された、前記結果が、コンピュータにおいて第六のアルゴリズム(g6)と第六のキー(k6)に従って脱スクランブルされ、前記第六のキー(k6)が前記第五のキー(k5)についてランダムに選択された前記数に基づいており、前記第六のアルゴリズム(g6)が前記第五のアルゴリズム(g5)の逆アルゴリズムであるステップとをさらに含む、請求項1又は請求項2に記載の方法。 - 第三及び第四のキー(k3,k4)についてランダムに選択された前記数と、第五及び第六のキー(k5,k6)についてランダムに選択された前記数が同じ数であることを特徴とする、請求項2又は請求項3に記載の方法。
- ソフトウェア、特に無償で配布されるソフトウェアの、コンピュータにおける権限ある使用を可能にする方法であって、前記ソフトウェアが、ソフトウェアの少なくとも一部を第一のアルゴリズム(g1)、及び第一のキー(k1)に従って暗号化すると同時に、前記コンピュータに接続可能な外部ユニットとの間の通信に関連するオブジェクトコードに対するコールシーケンスを前記ソフトウェアのソースコードに埋め込み、さらに該オブジェクトコードを実行可能なプログラムのデータライブラリに追加するステップを含むソフトウェアの作成方法に従って作成され、前記暗号化が、前記ソフトウェアのソースコードのコンパイル、及びリンクに先立って、前記ソフトウェアのソースコードに対して実施され、前記第一のアルゴリズム(g1)による暗号化に使用される前記第一のキー(k1)が、前記外部ユニットにおける第二のアルゴリズム(g2)による解読に使用される第二のキー(k2)とは異なるものにおいて、
外部ユニットを前記コンピュータに接続するステップを含み、該外部ユニットは、コンピュータ読み取り可能な記憶媒体、及びプロセッサを少なくとも含み、前記第二のアルゴリズム(g2)、及び前記ソフトウェアの暗号化された部分の解読に使用される前記第二のキー(k2)が、前記外部ユニットに格納され、
前記コールシーケンスは、前記ソフトウェアの実行可能なプログラムの実行中に前記コンピュータが前記コールシーケンスに遭遇したときに、前記追加されたオブジェクトコードの対応するエントリポイントへのジャンプを生じさせ、それによって、前記コンピュータは、前記追加されたオブジェクトコードを使用して前記外部ユニットとの間に通信路を確立し、該通信路を通じて前記ソフトウェアの暗号化された部分を第一の転送セッションにおいて前記外部ユニットへと転送し、前記外部ユニットは、前記ソフトウェアの暗号化された部分を前記外部ユニットに格納されている第二のアルゴリズム(g2)、及び第二のキー(k2)に従って前記外部ユニットのプロセッサにより解読し、解読されたソフトウェアの部分を前記外部ユニットにおいて処理し、その結果が、前記コンピュータにおける更なる使用のために、第二の転送セッションにおいて前記通信路を通じて逆方向に転送され、前記第二のキー(k2)は、第一のアルゴリズム(g1)によるソフトウェアの暗号化に使用される前記第一のキー(k10)とは異なるものであることを特徴とする方法。 - 前記ソフトウェアが、ソフトウェアの少なくとも一部を第一のアルゴリズム(g1)、及び第一のキー(k1)に従って暗号化すると同時に、前記コンピュータに接続可能な外部ユニットとの間の通信に関連するオブジェクトコードに対するコールシーケンスを前記ソフトウェアのソースコードに埋め込み、さらに該オブジェクトコードを実行可能なプログラムのデータライブラリに追加するステップを含むソフトウェアの作成方法に従って作成され、前記暗号化が、前記ソフトウェアのソースコードのコンパイル、及びリンクに先立って、前記ソフトウェアのソースコードに対して実施され、前記第一のアルゴリズム(g1)による暗号化に使用される前記第一のキー(k1)が、前記外部ユニットにおける第二のアルゴリズム(g2)による解読に使用される第二のキー(k2)とは異なり、前記ソフトウェアの作成方法が、第一のアルゴリズム(g1)に従って暗号化されるソフトウェアの前記部分に第三のキー(k3)が挿入されるステップをさらに含み、前記第三のキー(k3)が、前記外部ユニットに対する転送に先立ってソフトウェアの前記部分をスクランブリングする第三のアルゴリズム(g3)において用いることを意図したものであり、
− 接続された外部ユニットに対する前記第一の転送セッションに先立って、第一のアルゴリズム(g1)により暗号化されたソフトウェアの部分が、前記第三のアルゴリズム(g3)と前記第三のキー(k3)に従ってスクランブルされ、前記第三のキー(k3)が、それぞれの転送セッションについてランダムに選択され好ましくは外部ユニットにより生成される数に基づき、及び
− 第一のアルゴリズム(g1)により暗号化され、前記第三のアルゴリズム(g3)によりスクランブルされ、前記第一の転送セッションにおいて外部ユニットへと転送された、ソフトウェアの前記部分が、外部ユニットにおいて第四のアルゴリズム(g4)と第四のキー(k4)に従って脱スクランブルされ、前記第四のキー(k4)が前記第三のキー(k3)についてランダムに選択された前記数に基づいており、前記第四のアルゴリズム(g4)が前記第三のアルゴリズム(g3)の逆アルゴリズムであることを特徴とする請求項5に記載の方法。 - 前記第二のアルゴリズム(g2)により解読されたソフトウェアの前記部分に基づいて外部ユニットで生成された前記結果が、前記第二の転送セッションに先立って、第五のアルゴリズム(g5)と第五のキー(k5)に従ってスクランブルされ、前記第五のキー(k5)が、それぞれの転送セッションについてランダムに選択され好ましくは外部ユニットにより生成される数に基づいているステップと、
前記第二のアルゴリズム(g2)により解読されたソフトウェアの前記部分に基づいて外部ユニットで生成され、前記第五のアルゴリズム(g5)によりスクランブルされ、前記第二の転送セッションにおいてコンピュータへと転送された、前記結果が、コンピュータにおいて第六のアルゴリズム(g6)と第六のキー(k6)に従って脱スクランブルされ、前記第六のキー(k6)が前記第五のキー(k5)についてランダムに選択された前記数に基づいており、前記第六のアルゴリズム(g6)が前記第五のアルゴリズム(g5)の逆アルゴリズムであるステップと
をさらに含むことを特徴とする、請求項6に記載の方法。 - 前記第一及び第二のアルゴリズム(g1,g2)並びに前記第一及び第二のキー(k1,k2)が、RSA暗号システムの如き非対称の二重キー暗号構成(公的キー/私的キー暗号システム)に従って決定され、第一のキー(k1)が好ましくは既知のキー(公的キー)であり、第二のキー(k2)が暗号構成の秘密キー(私的キー)であることを特徴とする、請求項1〜7のうちの何れか一項に記載の方法。
- 前記第一のアルゴリズム(g1)に従って暗号化されるソフトウェアの前記部分が、コンピュータによるそれぞれのソフトウェアの使用について完全に決定的となるように選択され、好ましくは.COM又は.EXEファイルの如きコマンド又は実行ファイルにある一つ又はより多くの命令を含むことを特徴とする、請求項1〜8のうちの何れか一項に記載の方法。
- ソフトウェア、特に無償で配布されるソフトウェアの権限ある使用を可能にする装置であって、前記ソフトウェアが、ソフトウェアの少なくとも一部を第一のアルゴリズム(g1)、及び第一のキー(k1)に従って暗号化すると同時に、前記コンピュータに接続可能な外部ユニットとの間の通信に関連するオブジェクトコードに対するコールシーケンスを前記ソフトウェアのソースコードに埋め込み、さらに該オブジェクトコードを実行可能なプログラムのデータライブラリに追加するステップを含むソフトウェアの作成方法に従って作成され、前記暗号化が、前記ソフトウェアのソースコードのコンパイル、及びリンクに先立って、前記ソフトウェアのソースコードに対して実施され、前記第一のアルゴリズム(g1)による暗号化に使用される前記第一のキー(k1)が、前記外部ユニットにおける第二のアルゴリズム(g2)による解読に使用される第二のキー(k2)とは異なるものにおいて、
前記コンピュータに接続するように構成された外部ユニットであって、プロセッサ、並びに第二のアルゴリズム(g2)、及び第二のキー(k2)を格納するためのコンピュータ読み取り可能な記憶媒体を有し、前記第二のアルゴリズム(g2)、及び第二のキー(k2)に従って前記ソフトウェアの暗号化された部分の解読を実行するよう構成された外部ユニットと、
前記第二のアルゴリズム(g2)、及び該第二のアルゴリズム(g2)による前記ソフトウェアの暗号化された部分の解読に使用される前記第二のキー(k2)を生成するための発生手段と、
前記外部ユニットに対してホストコンピュータとして機能するよう構成されたコンピュータと
を含み、
前記外部ユニットは、プロセッサ、及びコンピュータ読み取り可能な記憶媒体を少なくとも含み、前記コンピュータとの間の通信のために、前記ホストコンピュータに接続されるように構成され、
前記外部ユニットは、前記第二のアルゴリズム(g2)、及び前記発生手段により生成された前記第二のキー(k2)に従って解読を実施するように構成された解読手段を含み、
前記コールシーケンスは、前記ソフトウェアの実行可能なプログラムの実行中に前記コンピュータが前記コールシーケンスに遭遇したときに、前記追加されたオブジェクトコードの対応するエントリポイントへのジャンプを生じさせ、それによって、前記コンピュータは、前記追加されたオブジェクトコードを使用して前記外部ユニットとの間に通信路を確立し、前記ソフトウェアの暗号化された部分を前記外部ユニットにおいて解読するために前記通信路を通じて第一の転送セッションにおいて前記外部ユニットへと転送し、前記外部ユニットのプロセッサは、前記ソフトウェアの解読された部分を処理し、その結果を前記コンピュータにおける更なる使用のために、第二の通信セッションにおいて前記通信路を通じて逆方向に転送するように構成されることを特徴とする装置。 - 前記第一のアルゴリズム(g1)、及び前記第一のキー(k1)による暗号化の際に、前記第一のアルゴリズム(g1)に従って暗号化されるソフトウェアの前記部分に、第三のキー(k3)が入力され、これが前記外部ユニットに対する転送に先立ってソフトウェアの前記部分をスクランブリングするために第三のアルゴリズム(g3)において用いることを意図したものであり、
前記外部ユニットが、前記第一のアルゴリズム(g1)により暗号化され、前記第一の転送セッションに先立ってホストコンピュータにより前記第三のアルゴリズム(g3)に従ってスクランブルされ、前記第一の転送セッションにおいて外部ユニットへと転送された、ソフトウェアの前記部分を、第四のアルゴリズム(g4)と第四のキー(k4)に従って脱スクランブルする脱スクランブリング手段を含み、このスクランブリングにおいてホストコンピュータにより使用された前記第三のキー(k3)が、それぞれの転送セッションについてランダムに選択され好ましくは外部ユニットの数発生器により提供される数に基づき、及び外部ユニットにおいて脱スクランブリング手段により用いられる前記第四のキー(k4)が前記第三のキー(k3)についてのものと同じランダムに選択された数に基づいており、前記第四のアルゴリズム(g4)が前記第三のアルゴリズム(g3)の逆アルゴリズムであることを特徴とする、請求項10に記載の装置。 - 前記外部ユニットがさらに、当該外部ユニットが前記第二のアルゴリズム(g2)に従って解読したソフトウェアの前記部分に基づいて前記外部ユニットで生成された前記結果を、前記第二の転送セッションに先立って、第五のアルゴリズム(g5)と第五のキー(k5)に従ってスクランブルするスクランブリング手段を含み、このスクランブルに際しスクランブリング手段により用いられる前記第五のキー(k5)が、それぞれの転送セッションについてランダムに選択され好ましくは外部ユニットの数発生器により生成される数に基づいており、前記ホストコンピュータが前記外部ユニットで生成された前記結果を、前記ホストコンピュータにおいてさらに使用するために第六のアルゴリズム(g6)と第六のキー(k6)に従って脱スクランブルすることができ、前記結果が前記第二の転送セッションに先立って、前記外部ユニットのスクランブリング手段により前記第五のアルゴリズム(g5)に従ってスクランブルされ、第二の転送セッションにおいてコンピュータへと転送され、前記第六のキー(k6)が前記第五のキー(k5)についてと同じランダムに選択された数に基づいており、前記第六のアルゴリズム(g6)が前記第五のアルゴリズム(g5)の逆アルゴリズムであることを特徴とする、請求項10又は請求項11に記載の装置。
- 前記外部ユニットが、好ましくは改竄防止用に作成されたアダプタ手段と別個の物品とを含み、少なくとも外部ユニットのプロセッサとコンピュータ読み取り可能なメモリからなる電子回路がそこに配置され、前記物品がアダプタ手段のスロット内に挿入された場合又は他の仕方によりアダプタ手段と接続された場合に、前記別個の物品の回路と前記ホストコンピュータとの間に通信路を確立可能なように配置され、前記第二のアルゴリズム(g2)と前記第二のキー(k2)が前記メモリ内に、好ましくは別個の物品のプロセッサ以外の手段によっては読み取り不能であり、別個の物品の外部では入手不能となる仕方で格納されていることを特徴とする、請求項10〜12のうちの何れか一項に記載の装置。
- 前記別個の物品が、通常のクレジットカードの大きさを有する、プラスチックカードの如き小さな基板プレート、即ちスマートカードの形態を取り、アダプタ手段が前記基板プレートのためのカードリーダステーションからなり、これが任意選択的にホストコンピュータ又はそれに接続された周辺ユニットに取り込まれることを特徴とする、請求項13に記載の装置。
- 前記別個の物品が、拡張カードのためにホストコンピュータに設けられたカード位置又はスロットに配置されるよう適合された電子回路カードの形態を取り、携帯型ホストコンピュータの場合に、この回路カードがPCMCIA標準の如き、こうした挿入可能なカードのための標準設計の一つに従って構成されることを特徴とする、請求項13に記載の装置。
- 前記別個の物品が電子的盲プラグなどの形態を取り、前記アダプタ手段がホストコンピュータの入出力端子からなる、請求項13に記載の装置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NO952795A NO302388B1 (no) | 1995-07-13 | 1995-07-13 | Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse |
| NO952795 | 1995-07-13 | ||
| 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 JPH11509023A (ja) | 1999-08-03 |
| JP4267065B2 true 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 (1) | 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) |
Families Citing this family (141)
| 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 |
| EP1211681B1 (en) | 1998-01-20 | 2007-02-14 | 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 |
| US7565546B2 (en) | 1999-03-30 | 2009-07-21 | Sony Corporation | System, method and apparatus for secure digital content transmission |
| 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 |
| US7225164B1 (en) | 2000-02-15 | 2007-05-29 | Sony Corporation | Method and apparatus for implementing revocation in broadcast networks |
| 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 |
| AU2001261616A1 (en) * | 2000-05-17 | 2001-11-26 | Smart Modular Technologies, (Ma) | Programming a memory based on information obtained from a remote location |
| WO2002005203A1 (fr) * | 2000-07-07 | 2002-01-17 | Fujitsu Limited | Dispositif terminal pour carte a circuit integre |
| 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 |
| CN1442005A (zh) * | 2001-05-15 | 2003-09-10 | 三菱电机株式会社 | 内容再生装置、内容分发服务器和内容分发系统 |
| US7350082B2 (en) | 2001-06-06 | 2008-03-25 | Sony Corporation | Upgrading of encryption |
| US7336787B2 (en) | 2001-06-06 | 2008-02-26 | Sony Corporation | Critical packet partial encryption |
| 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 |
| 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 | 주식회사 휴맥스 | 디지털 방송 프로그램에서의 데이터 암호화 기록 방법 |
| CN1559026A (zh) * | 2001-11-12 | 2004-12-29 | �����о�ʵ��������˾ | 防止非法使用信息的方法和装置 |
| 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 | 한국전자통신연구원 | 디지털 컨텐츠 저작권 보호 장치 및 방법 |
| US7039938B2 (en) | 2002-01-02 | 2006-05-02 | Sony Corporation | Selective encryption for video on demand |
| US7233669B2 (en) | 2002-01-02 | 2007-06-19 | Sony Corporation | Selective encryption to enable multiple decryption keys |
| US7292691B2 (en) | 2002-01-02 | 2007-11-06 | Sony Corporation | Progressive video refresh slice detection |
| US7215770B2 (en) | 2002-01-02 | 2007-05-08 | Sony Corporation | System and method for partially encrypted multimedia stream |
| US7823174B2 (en) | 2002-01-02 | 2010-10-26 | Sony Corporation | Macro-block based content replacement by PID mapping |
| US7155012B2 (en) | 2002-01-02 | 2006-12-26 | Sony Corporation | Slice mask and moat pattern partial encryption |
| US7765567B2 (en) | 2002-01-02 | 2010-07-27 | Sony Corporation | Content replacement by PID mapping |
| US7376233B2 (en) | 2002-01-02 | 2008-05-20 | Sony Corporation | Video slice and active region based multiple partial encryption |
| US7242773B2 (en) | 2002-09-09 | 2007-07-10 | Sony Corporation | Multiple partial encryption using retuning |
| US7218738B2 (en) | 2002-01-02 | 2007-05-15 | Sony Corporation | Encryption and content control in a digital broadcast system |
| US7302059B2 (en) | 2002-01-02 | 2007-11-27 | Sony Corporation | Star pattern partial encryption |
| 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 |
| US7530084B2 (en) | 2002-05-28 | 2009-05-05 | Sony Corporation | Method and apparatus for synchronizing dynamic graphics |
| 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 |
| DE50302771D1 (de) * | 2003-01-14 | 2006-05-18 | Aladdin Knowledge Systems Gmbh | Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion |
| US7409702B2 (en) | 2003-03-20 | 2008-08-05 | Sony Corporation | Auxiliary program association table |
| US7292692B2 (en) | 2003-03-25 | 2007-11-06 | Sony Corporation | Content scrambling with minimal impact on legacy devices |
| WO2005022341A2 (en) | 2003-08-29 | 2005-03-10 | Tgbw Inc. | Flash memory distribution of digital content |
| US7286667B1 (en) | 2003-09-15 | 2007-10-23 | Sony Corporation | Decryption system |
| US8220058B2 (en) * | 2003-09-25 | 2012-07-10 | Oracle America, Inc. | Rendering and encryption engine for application program obfuscation |
| US20050069138A1 (en) * | 2003-09-25 | 2005-03-31 | Sun Microsystems, Inc., A Delaware Corporation | Application program obfuscation |
| US7353499B2 (en) * | 2003-09-25 | 2008-04-01 | Sun Microsystems, Inc. | Multiple instruction dispatch tables for 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 |
| 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 |
| US7263187B2 (en) | 2003-10-31 | 2007-08-28 | Sony Corporation | Batch mode session-based encryption of video on demand content |
| US7343013B2 (en) | 2003-12-16 | 2008-03-11 | Sony Corporation | Composite session-based encryption of video on demand content |
| US7346163B2 (en) | 2003-10-31 | 2008-03-18 | Sony Corporation | Dynamic composition of pre-encrypted video on demand content |
| US7620180B2 (en) | 2003-11-03 | 2009-11-17 | Sony Corporation | Preparation of content for multiple conditional access methods in video on demand |
| US7853980B2 (en) | 2003-10-31 | 2010-12-14 | Sony Corporation | Bi-directional indices for trick mode video-on-demand |
| US20070198857A1 (en) * | 2003-12-22 | 2007-08-23 | Koninklijke Philips Electronic, N.V. | Software execution protection using an active entity |
| US20050204405A1 (en) * | 2004-03-04 | 2005-09-15 | Brian Wormington | Method and system for digital rights management |
| FR2867635B1 (fr) * | 2004-03-11 | 2006-09-22 | Oberthur Card Syst Sa | Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique |
| US8452986B2 (en) * | 2004-07-02 | 2013-05-28 | Nxp B.V. | Security unit and protection system comprising such security unit as well as 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程序加密方法和系统 |
| EP2194476B1 (en) | 2005-03-22 | 2014-12-03 | Hewlett-Packard Development Company, L.P. | Method and apparatus for creating a record of a software-verification attestation |
| 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 |
| US7555464B2 (en) | 2006-03-01 | 2009-06-30 | Sony Corporation | Multiple DRM management |
| 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 | Общество с ограниченной ответственностью "АСТРОМА" | Способ и средство защиты программного обеспечения от несанкционированного использования |
| US8963932B1 (en) | 2006-08-01 | 2015-02-24 | Nvidia Corporation | Method and apparatus for visualizing component workloads in a unified shader GPU architecture |
| US8607151B2 (en) * | 2006-08-01 | 2013-12-10 | Nvidia Corporation | Method and system for debugging a graphics pipeline subunit |
| 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 |
| 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 | 株式会社リコー | 画像形成装置、アクセス制御方法、及びアクセス制御プログラム |
| KR101224717B1 (ko) * | 2008-12-26 | 2013-01-21 | 에스케이플래닛 주식회사 | 소프트웨어 라이센스 보호 방법과 그를 위한 시스템, 서버,단말기 및 컴퓨터로 읽을 수 있는 기록매체 |
| 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 |
| EP2689375B1 (en) * | 2011-03-21 | 2021-09-15 | Irdeto B.V. | 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 | 株式会社デンソー | ソフトウェア複製防止システム |
| US9881142B2 (en) * | 2015-09-11 | 2018-01-30 | Patrick Robert Koren | Method and apparatus for preventing and investigating software piracy |
| US11829454B2 (en) * | 2018-03-09 | 2023-11-28 | Patrick Robert Koren | Method and apparatus for preventing and investigating software piracy |
| JP6381857B1 (ja) * | 2017-06-23 | 2018-08-29 | 三菱電機株式会社 | ラダープログラム不正利用防止システム、ラダープログラム不正利用防止方法、およびエンジニアリングツール |
| 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)
| 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 |
| EP0175487A3 (en) * | 1984-08-23 | 1989-03-08 | Btg International Limited | 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 |
| US5109413A (en) * | 1986-11-05 | 1992-04-28 | International Business Machines Corporation | Manipulating rights-to-execute in connection with a software copy protection mechanism |
| 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 |
| EP0266748B1 (en) | 1986-11-05 | 1995-02-08 | International Business Machines Corporation | A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
| 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 |
-
1995
- 1995-07-13 NO NO952795A patent/NO302388B1/no not_active IP Right Cessation
-
1996
- 1996-07-10 ES ES96925180T patent/ES2194109T3/es not_active Expired - Lifetime
- 1996-07-10 IL IL12288896A patent/IL122888A/xx not_active IP Right Cessation
- 1996-07-10 PL PL96324525A patent/PL187088B1/pl not_active IP Right Cessation
- 1996-07-10 PT PT96925180T patent/PT855052E/pt unknown
- 1996-07-10 NZ NZ313319A patent/NZ313319A/en not_active IP Right Cessation
- 1996-07-10 JP JP50571097A patent/JP4267065B2/ja not_active Expired - Fee Related
- 1996-07-10 US US08/983,461 patent/US6266416B1/en not_active Expired - Fee Related
- 1996-07-10 AU AU65357/96A patent/AU713872B2/en not_active Ceased
- 1996-07-10 AT AT96925180T patent/ATE233916T1/de not_active IP Right Cessation
- 1996-07-10 CN CNB96196247XA patent/CN1155866C/zh not_active Expired - Fee Related
- 1996-07-10 KR KR1019980700233A patent/KR19990028931A/ko not_active Ceased
- 1996-07-10 EP EP96925180A patent/EP0855052B1/en not_active Expired - Lifetime
- 1996-07-10 WO PCT/NO1996/000171 patent/WO1997003398A1/en not_active Ceased
- 1996-07-10 EP EP02010974A patent/EP1253503A3/en not_active Withdrawn
- 1996-07-10 DK DK96925180T patent/DK0855052T3/da active
- 1996-07-10 DE DE69626530T patent/DE69626530T2/de not_active Expired - Fee Related
-
1998
- 1998-08-29 HK HK02108918.0A patent/HK1048674A1/en unknown
-
2001
- 2001-06-05 US US09/873,351 patent/US20030190043A1/en not_active Abandoned
-
2004
- 2004-01-06 US US10/752,429 patent/US20040193987A1/en not_active Abandoned
Also Published As
| Publication number | Publication date |
|---|---|
| US20030190043A1 (en) | 2003-10-09 |
| US20040193987A1 (en) | 2004-09-30 |
| EP0855052B1 (en) | 2003-03-05 |
| EP0855052A1 (en) | 1998-07-29 |
| ATE233916T1 (de) | 2003-03-15 |
| NO952795D0 (no) | 1995-07-13 |
| MX9800385A (es) | 1998-09-30 |
| DE69626530T2 (de) | 2003-11-13 |
| IL122888A (en) | 2000-10-31 |
| AU713872B2 (en) | 1999-12-09 |
| PL187088B1 (pl) | 2004-05-31 |
| DE69626530D1 (de) | 2003-04-10 |
| AU6535796A (en) | 1997-02-10 |
| CN1192814A (zh) | 1998-09-09 |
| KR19990028931A (ko) | 1999-04-15 |
| ES2194109T3 (es) | 2003-11-16 |
| PT855052E (pt) | 2003-06-30 |
| EP1253503A2 (en) | 2002-10-30 |
| NZ313319A (en) | 1999-10-28 |
| NO302388B1 (no) | 1998-02-23 |
| PL324525A1 (en) | 1998-06-08 |
| EP1253503A3 (en) | 2004-07-14 |
| HK1048674A1 (en) | 2003-04-11 |
| HK1009533A1 (en) | 1999-06-04 |
| WO1997003398A1 (en) | 1997-01-30 |
| JPH11509023A (ja) | 1999-08-03 |
| DK0855052T3 (da) | 2003-07-07 |
| IL122888A0 (en) | 1998-08-16 |
| NO952795L (no) | 1997-01-14 |
| CN1155866C (zh) | 2004-06-30 |
| US6266416B1 (en) | 2001-07-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4267065B2 (ja) | 無許可使用に対するソフトウェアの保護 | |
| CN100592683C (zh) | 来自数字权利管理加密解密器的受保护的返回路径 | |
| US7716487B2 (en) | License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer | |
| US6801999B1 (en) | Passive and active software objects containing bore resistant watermarking | |
| White et al. | ABYSS: An architecture for software protection | |
| US6684198B1 (en) | Program data distribution via open network | |
| CN1997953B (zh) | 用于保护移动应用中数字内容的方法和设备 | |
| US20060149683A1 (en) | User terminal for receiving license | |
| WO2004006075A1 (ja) | 開放型汎用耐攻撃cpu及びその応用システム | |
| KR20090014575A (ko) | Drm 에이전트의 공유장치 및 방법 | |
| CN116167020A (zh) | 一种软件授权方法及系统 | |
| EP1471405A1 (en) | Method and device for protecting information against unauthorised use | |
| US20070198857A1 (en) | Software execution protection using an active entity | |
| JP2005215945A (ja) | 情報処理装置、ソフトウェアの実行を許可する記憶装置、および、ソフトウェア実行方法 | |
| KR100310445B1 (ko) | Pc 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어방법 | |
| CA2226386C (en) | Protection of software against use without permit | |
| CN100410831C (zh) | 随机捆绑软件安装方法 | |
| HK1009533B (en) | Protection of software against use without permit | |
| JPH11196083A (ja) | スクランブルキー転送方法 | |
| US20080289046A1 (en) | Method and device for the prevention of piracy, copying and unauthorized execution of computer-readable media | |
| RU98102405A (ru) | Защита программного обеспечения от использования без разрешения |
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 |
