JP3570781B2 - Software protection system - Google Patents

Software protection system Download PDF

Info

Publication number
JP3570781B2
JP3570781B2 JP15653895A JP15653895A JP3570781B2 JP 3570781 B2 JP3570781 B2 JP 3570781B2 JP 15653895 A JP15653895 A JP 15653895A JP 15653895 A JP15653895 A JP 15653895A JP 3570781 B2 JP3570781 B2 JP 3570781B2
Authority
JP
Japan
Prior art keywords
order
software
unit
executor
execution right
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP15653895A
Other languages
Japanese (ja)
Other versions
JPH096608A (en
Inventor
なつめ 松崎
基司 大森
誠 館林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP15653895A priority Critical patent/JP3570781B2/en
Publication of JPH096608A publication Critical patent/JPH096608A/en
Application granted granted Critical
Publication of JP3570781B2 publication Critical patent/JP3570781B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、ソフトウェア保護システムに関し、より特定的には、ソフトウェアを不活性な状態で配付しておき、電話などの通信路を用いてソフトウェアを活性化するための実行権を獲得するソフトウェア保護システムに関する。
【0002】
【従来の技術】
近年、種々のマルチメディア機器が開発され、ゲームや教育用のソフトウェアを始めとする多くの有償マルチメディアソフトウェアが販売されている。ところが、そのソフトウェアの保護は不完全であり、不正にコピーされたソフトウェアが数多く出回っているのが現状である。このような不正コピーを防ぐために特許法や著作権法等法律の規制があるが、同時にメカニズム面からのソフトウェア保護が強く要望されている。
【0003】
例えば、フロッピーディスク等の、ソフトウェアを格納する記録媒体のフォーマットを特殊なものにすることによって、OS(オペレーティング・システム)で提供されているコピー機能では複製ができないようにする方法がある。しかしながら、このような方法でもビットごとにコピーを行なうタイプのコピーツールを用いれば、多くの場合複製が可能である。また、正規のユーザにとっては、バックアップが作れないといった不都合も生じる。
【0004】
また、ソフトウェアを暗号化してコピー防止を行なう方法が提案されている。この方法では、ソフトウェアは暗号化されて不活性な状態でユーザに配付される。そして、ユーザの注文により、そのソフトウェアを特定の機器で活性化するための実行権(以下の従来例では、暗号化ファイルキー)が配付される。この実行権は、特定の機器に依存した情報なので、これを用いて他の機器で同じソフトウェアを活性化することはできない。この方法は、例えば特公平2−60007号公報に開示されている。その構成を図6に示す。なおこの図6は、特公平2−60007号公報の第1〜第6図から説明上必要な部分を取り出して、1つの図にまとめ直したものである。
【0005】
図6において、このソフトウェア保護システムは、ソフトウェアを実行するソフト実行器601と、ソフト実行器601に対してソフトウェアを配付する注文管理器602とを備えている。
【0006】
ソフト実行器601は、暗号化ソフトウェア格納部603と、注文作成部604と、実行器ID格納部605と、実行器IDに対応した固有の実行器暗号キーを格納する暗号キー格納部606と、注文管理器602から受け取った暗号化ファイルキーを格納する暗号化ファイルキー格納部607と、暗号化ファイルキーを実行器暗号キーで復号してファイルキーを獲得する暗号化ファイルキー復号部608と、ファイルキーを用いて暗号化ソフトウェアを復号し実行するソフト復号実行部609とを含む。このような構成のソフト実行器601は、注文作成部604での注文と、実行器IDとを注文管理器602に伝えて、暗号化ソフトウェアを実行するための暗号化ファイルキーを要求する。
【0007】
注文管理器602は、すべてのソフトウェアのファイルキーを格納しているファイルキー格納部610と、すべてのソフト実行器の実行器暗号キーを格納している実行器暗号キー格納部611と、ファイルキーを指定の実行器暗号キーで暗号化して暗号化ファイルキーを生成する暗号化ファイルキー生成部612とを含む。このような構成の注文管理器602は、ソフト実行器601から指定されたソフトウェアのファイルキーをファイルキー格納部610から取り出し、また実行器暗号キー格納部611から実行器IDに対応した暗号キーを取り出す。
【0008】
次に、図6に示す従来のソフトウェア保護システムの動作を説明する。暗号化ソフトウェアは、ソフトウェア固有のファイルキーで元のソフトウェアを暗号化したものである。この暗号化ソフトウェアは、複数個まとめられて、予め例えばCD−ROMなどの記録媒体に格納され、ソフト実行器601に配付されている。配布された暗号化ソフトウェアは、暗号化ソフトウェア格納部603に格納されている。暗号化ソフトウェアは、これだけでは実行ができない不活性のソフトウェアである。実行を希望する場合には、注文作成部604で、注文のソフトウェアのIDを指定し、また、実行器ID格納部605に格納されているIDを注文管理器602に通知して注文を行なう。なお、この注文は、実用的には電話などを用いて行なわれる。
【0009】
注文管理器602において、ファイルキー格納部610は、ソフトIDを索引としてすべてのソフトウェアのファイルキーを格納している。また、実行器暗号キー格納部611は、実行器IDを索引としてすべての実行器暗号キーを格納して管理している。そして、ソフト実行器601から注文を受け取った注文管理器602は、ファイルキー格納部610から注文のソフトウェアのファイルキーを獲得し、暗号化フィイルキー生成部612において、このファイルキーを、該当の実行器の暗号キーで暗号化して暗号化ファイルキーを作成する。そして、この暗号化ファイルキーをソフト実行器601に通知する。
【0010】
暗号化ファイルキーを受け取ったソフト実行器100は、これを暗号化ファイルキー格納部107に格納しておく。そして、ソフトウェア実行時に、暗号化ファイルキー復号部108は、暗号化ファイルキー格納部107に格納された暗号化ファイルキーを、実行器暗号キー格納部106に格納された自分の暗号キーで復号して、ファイルキーを獲得する。ソフト復号実行部109は、暗号化ファイルキー復号部108で求められたファイルキーで暗号化ソフトウェアを復号し、ソフトウェアを実行する。なお、暗号化ファイルキーは、その実行器にのみ有効な情報なので、通信路や格納部から他人に獲得されても使用はできない。
【0011】
【発明が解決しようとする課題】
しかしながら、上記のような従来のソフトウェア保護システムでは、ソフトウェアの注文と、暗号化ファイルキーの受け取りとがすべて電話を介して行われるものとすると、以下に説明するように電話で伝える情報が多くなり、実用性に欠けたものになる。
【0012】
まず、ファイルキーと実行器暗号キーのビット数について述べる。ファイルキーは、元のソフトウェアを暗号化するための鍵である。また、実行器暗号キーは、このファイルキーを暗号化するための鍵である、ところで、ここでの暗号化には、秘密鍵ブロック暗号を用いるのが一般的である。秘密鍵ブロック暗号としては、米国で最も普及している暗号方式であるDES(Data Encryption Standard)、その後日本で開発されたFEAL(Fast data Encipherment Algorithm)などが挙げられる。これらいずれの暗号化方式を採用する場合でも、安全性を確保するため、鍵のビット数は64ビット程度必要であるというのが現状での認識である。従って、ファイルキーと実行器暗号キーとは、それぞれ64ビット程度のデータとなる。なお、DESについてはFIP PUB 46, NBS Jan.,1977 に、FEALについてはA.Shimizu & S.Miyaguchi: “Fast Data Encipherment Algorithm FEAL”, Advances in Cryptology−EUROCRYPT’87, Springer書店に、それぞれ詳細に述べられている。
【0013】
次に、暗号化ファイルキーのビット数について述べる。暗号化ファイルキーは、ファイルキーを実行器暗号キーで暗号化したものである。上述したように、ファイルキーおよび実行器暗号キーは、64ビット程度は必要であるため、この暗号化ファイルキーも64ビット程度の値となる。64ビットは、例えば10進の数字で表すとすると、ほぼ20桁くらいである。ところで、この暗号化ファイルキーは、注文管理器602を操作するオペレータから、ソフト実行器601を操作するユーザに対して、電話により口頭で伝えられる。さらに、ソフト実行器601のオペレータは、伝えられた暗号化ファイルキーを、ソフト実行器601に入力する必要がある。しかしながら、このように長い桁になると、言い間違え、聞き間違え、入力間違えの可能性が非常に大きくなり、実用的に問題が生じる。
【0014】
逆に、上記実用性を考慮して暗号化ファイルキーの桁数を小さくすると、これに伴いファイルキーや実行暗号キーのビット数が少なくなり、安全性が低下してしまう。
【0015】
また、上記従来例では、1つのソフトウェアの注文に対して1つの暗号化ファイルキーが対応する。従って、N個のソフトウェアの注文に対しては、伝える情報量はN倍となる。
【0016】
なお、上記従来例では、ソフトウェアに対する暗号化ファイルキーを一旦獲得した後は、そのソフトウェアを何度でも実行できる、いわば「実行権買い取り式」になっている。しかしながら、ソフトウェアの種類によっては、ソフトウェアの使用量に応じて料金を支払う形態の方がむしろ都合が良い場合がある。この形態では、たとえば、注文管理器からうけとった実行権を用いて、所定の回数だけの実行が可能となる。
【0017】
本発明の第1の目的は、安全性を劣化させずに(例えば、暗号の鍵のビット数を削減せずに)、ソフト実行器と注文管理器との間の情報量を削減することのできるソフトウェア保護システムを提供することである。
【0018】
本発明の第2の目的は、ソフト実行器と注文管理器との間の情報量が、注文するソフトの個数に依存しない(すなわち、N個のソフトを注文する場合の情報量が、1個ソフトを注文する場合の情報量と同じになる)ようなソフトウェア保護システムを提供することである。
【0019】
本発明の第3の目的は、回数制限等の条件付きの実行権に柔軟に対応するソフトウェア保護システムを提供することである。
【0020】
【課題を解決するための手段】
請求項1に係る発明は、提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
実行器IDおよび注文情報、通信路を介して注文管理器に送付する第1の送付手段とを含み
注文管理器は、
各ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報およびソフト実行器から受け取った注文情報に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
実行権生成パスワード、通信路を介してソフト実行器に送付する第2の送付手段とを含み
各ソフト実行器は、さらに
注文作成手段に蓄積保持された注文情報と、第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
実行権生成パスワード検査手段による検査の結果、実行権生成パスワードの正当性が確認されたときに、注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
実行権が存在するソフトウェアを実行するソフト実行手段とを含んでいる。
【0021】
請求項2に係る発明は、請求項1の発明において、
実行権生成パスワード生成手段は、ソフト実行器から受け取った注文情報と、第2の秘密情報格納手段から獲得した実行器秘密情報とを、出力が入力ビットのすべてに関係するようなデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力し、
実行権生成パスワード検査手段は、注文作成手段に蓄積保持された注文情報と、第1の秘密情報格納手段に格納された実行器秘密情報とを、実行権生成パスワード生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。
【0022】
請求項3に係る発明は、請求項1の発明において、
注文管理器は、公開鍵署名方式に用いられる秘密情報を格納する第3の秘密情報格納手段をさらに含み、
実行権生成パスワード生成手段は、第3の秘密情報格納手段に格納された秘密情報と、第2の秘密情報格納手段から獲得した実行器秘密情報と、ソフト実行器から受け取った注文情報と用いて、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成し、
ソフト実行器は、公開鍵署名方式に用いられる秘密情報に対応した公開情報を格納する公開情報格納手段をさらに含み、
実行権生成パスワード検査手段は、さらに、公開情報格納手段に格納された公開情報を用いて、公開鍵署名方式に対応した署名確認方式によって、注文管理器から受け取った実行権生成パスワードの正当性を検査する。
【0023】
請求項4に係る発明は、提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
注文作成手段で注文情報が作成される毎に変化する変化値を生成して蓄積保持する変化値生成手段と、
実行器ID注文情報および変化値、通信路を介して注文管理器に送付する第1の送付手段とを含み
注文管理器は、
各ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報,ソフト実行器から受け取った注文情報および変化値に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
実行権生成パスワード、通信路を介してソフト実行器に送付する第2の送付手段とを含み、
各ソフト実行器は、さらに
注文作成手段に蓄積保持された注文情報と、変化値生成手段に蓄積保持された変化値と、第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
実行権生成パスワード検査手段による検査の結果、実行権生成パスワードの正当性が確認されたときに、注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
実行権が存在するソフトウェアを実行するソフト実行手段とを含んでいる。
【0024】
請求項5に係る発明は、請求項4の発明において、
実行権生成パスワード生成手段は、ソフト実行器から受け取った注文情報および変化値と、第2の秘密情報格納手段から獲得した実行器秘密情報とを、出力が入力ビットのすべてに関係するようなデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力し、
実行権生成パスワード検査手段は、注文作成手段に蓄積保持された注文情報と、変化値生成手段に蓄積保持された変化値と、第1の秘密情報格納手段に格納された実行器秘密情報とを、実行権生成パスワード生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。
【0025】
請求項6に係る発明は、提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
注文作成手段で注文情報が作成される毎にタイムスタンプを生成して蓄積保持する第1のタイムスタンプ生成手段と、
実行器IDおよび注文情報、通信路を介して注文管理器に送付する第1の送付手段とを含み
注文管理器は、
ソフト実行器から実行器IDおよび注文情報を受け取ると、タイムスタンプを生成する第2のタイムスタンプ生成手段と、
各ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報と、ソフト実行器から受け取った注文情報と、第2のタイムスタンプ生成手段で生成されたタイムスタンプとに依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
実行権生成パスワード、通信路を介してソフト実行器に送付する第2の送付手段とを含み
各ソフト実行器は、さらに
注文作成手段に蓄積保持された注文情報と、第1のタイムスタンプ生成手段に蓄積保持されたタイムスタンプと、第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
実行権生成パスワード検査手段による検査の結果、実行権生成パスワードの正当性が確認されたときに、注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
実行権が存在するソフトウェアを実行するソフト実行手段とを含んでいる。
【0026】
請求項7に係る発明は、提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
注文情報と実行器秘密情報に依存した注文認証情報を生成して蓄積保持する注文認証情報生成手段と、
実行器ID注文情報および注文認証情報、通信路を介して注文管理器に送付する第1の送付手段とを含み
注文管理器は、
各ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報,ソフト実行器から受け取った注文情報および注文認証情報を用いて、ソフト実行器および注文情報の認証を行い、この認証結果が正当である場合に、当該注文認証情報を注文を識別する注文識別情報として扱う実行器認証手段と、
実行器認証手段における認証結果が正当である場合にのみ、注文情報および注文識別情報に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
実行権生成パスワード、注文識別情報と共に、通信路を介してソフト実行器に送付する第2の送付手段を含み
各ソフト実行器は、さらに
注文作成手段に蓄積保持された注文情報と、注文認証情報生成手段に蓄積保持された注文認証情報とを用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
実行権生成パスワード検査手段による検査の結果、実行権生成パスワードの正当性が確認されたときに、注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
実行権が存在するソフトウェアを実行するソフト実行手段とを含んでいる。
【0027】
請求項8に係る発明は、請求項7の発明において、
注文認証情報生成手段は、注文作成手段によって作成された注文情報と、第1の秘密情報格納手段に格納された実行器秘密情報とを、出力が入力ビットのすべてに関係するようなデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、注文認証情報として出力し、
実行器認証手段は、第2の秘密情報格納手段から獲得した実行器秘密情報と、ソフト実行器から受け取った注文情報とを、注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、このデータ圧縮関数の出力結果がソフト実行器から受け取った注文認証情報と一致する場合に、注文を行ったソフト実行器および注文情報が正当であることを認証し、
実行権生成パスワード生成手段は、ソフト実行器から受け取った注文情報および注文識別情報を、注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力し、
実行権生成パスワード検査手段は、注文作成手段に蓄積保持された注文情報と、注文認証情報生成手段に蓄積保持された注文認証情報とを、注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。
【0028】
請求項9に係る発明は、提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
注文作成手段で注文情報が作成される毎に変化し、所定のデータ構造または意味を有する変化値を生成して蓄積保持する変化値生成手段と、
注文情報および実行器秘密情報に依存した値を求め、この求めた値によって変化値を変換することにより、注文認証情報を生成して蓄積保持する注文認証情報生成手段と、
実行器ID注文情報および注文認証情報、通信路を介して注文管理器に送付する第1の送付手段とを含み、
注文管理器は、
各ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報とソフト実行器からの注文情報とに依存した値を求め、この値を用いてソフト実行器からの注文認証情報を逆変換する逆変換手段と、
逆変換手段の出力が変化値と同じデータ構造または意味を有する場合に、ソフト実行器および注文情報が正当であることを認証する実行器認証手段と、
実行器認証手段における認証結果が正当である場合にのみ、注文情報に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
実行権生成パスワード、通信路を介してソフト実行器に送付する第2の送付手段とを含み
各ソフト実行器は、さらに
注文作成手段に蓄積保持された注文情報と、注文認証情報生成手段に蓄積保持された注文認証情報とを用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
実行権生成パスワード検査手段による検査の結果、実行権生成パスワードの正当性が確認されたときに、注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
実行権が存在するソフトウェアを実行するソフト実行手段とを含んでいる。
【0029】
請求項10に係る発明は、請求項9の発明において、
注文認証情報生成手段は、注文作成手段によって作成された注文情報と、第1の秘密情報格納手段に格納された実行器秘密情報とを、出力が各入力ビットのすべてに関係するようなデータ圧縮関数に入力し、その出力結果と変化値との排他的論理和を注文認証情報として出力し、
逆変換手段は、ソフト実行器からの注文情報と、第2の秘密情報格納手段から獲得した実行器秘密情報とを、注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果とソフト実行器からの注文認証情報との排他的論理和を演算することにより、当該注文認証情報を逆変換し、
実行権生成パスワード生成手段は、ソフト実行器から受け取った注文情報および注文識別情報を、注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力し、
実行権生成パスワード検査手段は、注文作成手段に蓄積保持された注文情報と、注文認証情報生成手段に蓄積保持された注文認証情報とを、注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。
【0030】
請求項11に係る発明は、請求項7または9の発明において、
実行権生成パスワード生成手段は、ソフト実行器から受け取った注文情報に加えて、第2の秘密情報格納手段から獲得した実行器秘密情報に依存した実行権生成パスワードを生成し、
実行権生成パスワード検査手段は、注文作成手段に蓄積保持された注文情報と、第1の秘密情報格納手段に格納されている実行器秘密情報とを用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する。
【0031】
請求項12に係る発明は、請求項7または9の発明において、
注文管理器は、公開鍵署名方式に用いられる秘密情報を格納する第3の秘密情報格納手段をさらに含み、
実行権生成パスワード生成手段は、第3の秘密情報格納手段に格納された秘密情報と、第2の秘密情報格納手段から獲得した実行器秘密情報と、ソフト実行器から受け取った注文情報および注文認証情報とを用いて、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成し、
ソフト実行器は、公開鍵署名方式に用いられる秘密情報に対応した公開情報を格納する公開情報格納手段をさらに含み、
実行権生成パスワード検査手段は、さらに、公開情報格納手段に格納された公開情報と、第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、公開鍵署名方式に対応した署名確認方式によって、注文管理器から受け取った実行権生成パスワードの正当性を検査する。
【0032】
請求項13に係る発明は、提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
実行器IDおよび注文情報、通信路を介して注文管理器に送付する第1の送付手段とを含み、
注文管理器は、
第1の実行権生成モジュールを格納する第1のモジュール格納手段と、
各ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
ソフト実行器からの注文情報と、第2の秘密情報格納手段から獲得した実行器秘密情報とに依存した値を計算する第1の計算手段と、
第1の計算手段の計算結果を用いて、第1の実行権生成モジュールを変換することにより、実行権生成パスワードを生成する実行権生成パスワード生成手段と、
実行権生成パスワード、通信路を介してソフト実行器に送付する第2の送付手段とを含み、
各ソフト実行器は、さらに
第2の実行権生成モジュールを格納する第2のモジュール格納手段と、
注文作成手段に蓄積保持された注文情報と、第1の秘密情報格納手段に格納された実行器秘密情報とに依存した値を計算する第2の計算手段と、
第2の計算手段の計算結果を用いて、注文管理器からの実行権生成パスワードを逆変換することにより、第1の実行権生成モジュールを生成する実行権生成パスワード逆変換手段と、
実行権生成パスワード逆変換手段により生成された第1の実行権生成モジュールと、第2のモジュール格納手段に格納されている第2の実行権生成モジュールとを用いて、注文作成手段に蓄積保持された注文情報に基づくソフトウェアの実行権を生成する実行権生成手段と、
実行権生成後、第一の実行権生成モジュールを消去するモジュール消去手段と、
実行権が存在するソフトウェアを実行するソフト実行手段とを含んでいる。
【0033】
請求項14に係る発明は、請求項13の発明において、
第1のモジュール格納手段に格納されている第1の実行権生成モジュールは、所定のデータ構造や意味をもっており、
実行権生成手段は、実行権生成パスワード逆変換手段の逆変換結果が第1の実行権生成モジュールと同じデータ構造や意味を持っている場合にのみ、第1の実行権生成モジュールと、第2の実行権生成モジュールとを用いて、注文作成手段に蓄積保持された注文情報に基づくソフトウェアの実行権を生成する。
【0035】
請求項1に係る発明は、請求項1〜1のいずれかに記載の発明において、
ソフト実行器に提供されるソフトウェアは、ソフト固有情報を含んで暗号化されており、
実行権生成手段は、実行権生成パスワード検査手段が注文管理器からの実行権生成パスワードの正当性を確認したとき、注文作成手段に蓄積保持された注文情報に対応する暗号化ソフトウェアを復号してソフト固有情報を獲得し、この獲得したソフト固有情報を実行器秘密情報で暗号化することによって、注文されたソフトウェアの実行権を生成し、
ソフト実行手段は、注文作成手段に蓄積保持された注文情報に対応する暗号化ソフトウェアを復号してソフトウェアとソフト固有情報とを獲得し、実行権を実行器秘密情報を用いて復号してソフト固有情報を獲得し、これら復号によって獲得したソフト固有情報が一致している場合にのみ、復号されたソフトウェアを実行する。
【0036】
請求項1に係る発明は、請求項1〜1のいずれかに記載の発明において、
注文作成手段は、作成した注文情報を不揮発的に蓄積保持し、実行権生成手段が対応するソフトウェアの実行権を生成した後に当該注文情報を消去する。
【0037】
請求項1に係る発明は、請求項1〜1のいずれかに記載の発明において、
ソフト実行器および注文管理器は、それぞれ相互間でやりとりされた情報の履歴を保持している。
【0038】
請求項1に係る発明は、請求項1〜1のいずれかに記載の発明において、
ソフト実行器および注文管理器は、すべてのソフトウェアの組み合わせに対応するコードをテーブルとして保持しており、
ソフト実行器は、テーブルから得たコードを、注文情報として注文管理器に送付する。
【0039】
【作用】
請求項1に係る発明では、ソフト実行器は、実行器IDおよび注文情報を生成し、これらを注文管理器に送付することにより、ソフトウェアの注文を行なう。注文管理器は、受け取った注文情報と、実行IDに対応する実行器秘密情報とに依存した情報である実行権生成パスワードを生成し、ソフト実行器に送付する。ソフト実行器は、この実行権生成パスワードが、注文管理器に先に送付した注文情報や、自分自身の実行器秘密情報と整合している否かを判断し、整合している場合は、注文情報に対応したソフトウェアの実行権を生成し、当該ソフトウェアを実行する。このように、注文管理器からソフト実行器には、実行権生成パスワード、すなわちソフト実行器が注文情報に対応したソフト実行権を生成するための許可を与える情報だけが送付されるため、実行権そのものを送付する場合に比べて、桁数を削減できる。また、ソフト実行器が複数のソフトウェアの注文を1回に行なっても、その情報量は1つのソフトウェアを注文した場合の情報量と同じになる。
【0040】
請求項2に係る発明では、注文管理器は、ソフト実行器から受け取った注文情報と、実行器IDに対応する実行器秘密情報とを、所定のデータ圧縮関数(例えば、ハッシュ関数)に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力する。一方、ソフト実行器は、内部に蓄積保持された注文情報と、自分自身の実行器秘密情報とを、上記と同様のデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。このように、データ圧縮関数を用いて実行権生成パスワードが生成されるので、その桁数をより一層削減できる。
【0041】
請求項3に係る発明では、注文管理器は、公開鍵署名方式に用いられる秘密情報を保持し、この秘密情報と、実行器IDに対応する実行器秘密情報と、ソフト実行器から受け取った注文情報と用いて、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成する。一方、ソフト実行器は、公開鍵署名方式に用いられる秘密情報に対応した公開情報を保持し、この公開情報と、注文情報と、自分自身の実行器秘密情報とを用いて、公開鍵署名方式に対応した署名確認方式によって、注文管理器から受け取った実行権生成パスワードの正当性を検査する。このように、ソフト実行器には、デジタル署名された実行権生成パスワードが送付されるので、ソフト実行器側で実行権生成パスワードを偽造することがほとんど不可能となり、極めて安全性の高いソフトウェア保護システムが実現できる。
【0042】
請求項4に係る発明では、注文情報を作成する毎に変化する変化値が注文情報と共に、ソフト実行器から注文管理器に送付される。そして、注文管理器は、実行器秘密情報,注文情報および変化値に依存した実行権生成パスワードを生成し、注文管理器に送付する。ソフト実行器は、注文情報,変化値および実行器秘密情報を用いて、実行権生成パスワードの正当性を検査する。従って、注文管理器からの実行権生成パスワードは、対応する変化値を保持するソフト実行器でのみ有効となる。そのため、異なる時期に同じ注文を作成し、以前の実行権生成パスワードを入力しても、後の注文時に生成される変化値は、以前の注文時に生成される変化値とは異なっているため、入力したパスワードが有効にはならない。
【0043】
請求項5に係る発明では、注文管理器は、注文情報,変化値および実行器秘密情報を、ハッシュ関数等のデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力する。一方、ソフト実行器は、内部に保持している注文情報,変化値および実行器秘密情報を、上記と同様のデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。このように、データ圧縮関数を用いて実行権生成パスワードが生成されるので、その桁数をより一層削減できる。
【0044】
請求項6に係る発明では、請求項4における変化値の代わりにタイムスタンプを用いている。このタイムスタンプは、ソフト実行器と注文管理器とに共通に保持されているため、請求項4のようにソフト実行器から注文管理器に変化値を送付する必要がなくなる。
【0045】
請求項7に係る発明では、注文情報および実行器秘密情報に依存した注文認証情報を導入することにより、注文管理器側で実行権生成パスワードの発行に先だって、注文情報とソフト実行器の認証を行うことができる。そして、注文管理器は、認証結果がOKの場合には、上記注文認証情報を注文を識別する注文識別情報として扱い、これら注文情報および注文識別情報に依存した実行権生成パスワードを生成してソフト実行器に送付する。ソフト実行器は、内部に保持している注文情報および注文認証情報を用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査し、この検査結果がOKのときに、ソフトウェアの実行権を生成し、対応するソフトウェアを実行する。
【0046】
請求項8に係る発明では、ソフト実行器は、注文情報および実行器秘密情報を、ハッシュ関数等のデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、注文認証情報として得ている。また、注文管理器は、実行器秘密情報と、ソフト実行器から受け取った注文情報とを、上記と同様のデータ圧縮関数に入力し、その出力結果がソフト実行器から受け取った注文認証情報と一致する場合に、ソフト実行器および注文情報が正当であることを認証する。さらに、注文管理器は、注文情報および注文識別情報を、上記と同様のデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力し、ソフト実行器に送付する。一方、ソフト実行器は、注文情報および注文認証情報を、上記と同様のデータ圧縮関数に入力し、その出力結果が注文管理器からの実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。
【0047】
請求項9に係る発明では、ソフト実行器は、注文情報の作成毎に変化しかつ所定のデータ構造または意味を有する変化値を、注文情報および実行器秘密情報に依存した値によって変換することにより、注文認証情報を生成する。この注文認証情報は、実行器IDおよび注文情報と共に、注文管理器に送付される。注文管理器は、実行器IDに対応する実行器秘密情報と、ソフト実行器からの注文情報とに依存した値を求め、この値を用いてソフト実行器からの注文認証情報を逆変換し、この逆変換結果が上記変化値と同じデータ構造または意味を有する場合に、ソフト実行器および注文情報が正当であることを認証する。そして、注文管理器は、この認証結果が正当である場合にのみ、注文情報に依存した実行権生成パスワードを生成してソフト実行器に送付する。ソフト実行器は、内部に保持している注文情報および注文認証情報を用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査し、実行権生成パスワードの正当性が確認されたときに、注文されたソフトウェアの実行権を生成する。このような構成により、ソフト実行器と注文管理器間でやりとりされる情報量を増やすことなく、回数制限機能およびユーザ認証機能を実現できる。
【0048】
請求項10に係る発明では、ソフト実行器は、注文情報および実行器秘密情報を、ハッシュ関数等のデータ圧縮関数に入力し、その出力結果と変化値との排他的論理和を注文認証情報として得ている。注文管理器は、ソフト実行器からの注文情報と、実行器IDに対応する実行器秘密情報とを、上記と同様のデータ圧縮関数に入力し、その出力結果とソフト実行器からの注文認証情報との排他的論理和を演算することにより、当該注文認証情報を逆変換している。また、注文管理器は、ソフト実行器からの注文情報および注文識別情報を、上記と同様のデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、実行権生成パスワードとして出力するようにしている。ソフト実行器は、内部に保持している注文情報および注文認証情報を、上記と同様のデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する。
【0049】
請求項11に係る発明では、注文管理器は、ソフト実行器から受け取った注文情報と、実行器IDに対応する実行器秘密情報とに依存した実行権生成パスワードを生成する。一方、ソフト実行器は、内部に保持している注文情報および実行器秘密情報を用いて、注文管理器から受け取った実行権生成パスワードの正当性を検査する。
【0050】
請求項12に係る発明では、注文管理器は、公開鍵署名方式に用いられる秘密情報と、実行器IDに対応する実行器秘密情報と、ソフト実行器から受け取った注文情報および注文認証情報とを用いて、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成し、ソフト実行器に送付する。ソフト実行器は、公開鍵署名方式に用いられる秘密情報に対応した公開情報と、内部に保持している注文情報,注文認証情報および実行器秘密情報とを用い、公開鍵署名方式に対応した署名確認方式によって、注文管理器から受け取った実行権生成パスワードの正当性を検査する。このように、ソフト実行器には、デジタル署名された実行権生成パスワードが送付されるので、ソフト実行器側で実行権生成パスワードを偽造することがほとんど不可能となり、極めて安全性の高いソフトウェア保護システムが実現できる。
【0051】
請求項13に係る発明では、ソフト実行器側に格納された第2の実行権生成モジュールだけでは、実行権の生成はできない。注文管理器は、この第2の実行権生成モジュールを活性化させるための第1の実行権生成モジュールを、ソフト実行器からの注文情報と実行器秘密情報に依存した形に変換して実行権生成パスワードとして送付する。ソフト実行器側では、正しい注文情報と実行器である場合、この実行権生成パスワードを用いて、内部に保持している第2の実行権生成モジュールを活性化させることができる。この場合、ソフト実行器が不正に実行権を生成しようとしても、情報量的に第2の実行権生成モジュールにそのための情報が不足しているため不正はできない。そのため、より一層安全なソフトウェア保護システムが実現できる。
【0052】
請求項14に係る発明では、注文管理器に格納されている第1の実行権生成モジュールは、所定のデータ構造や意味をもっており、ソフト実行器は、実行権生成パスワードの逆変換結果が第1の実行権生成モジュールと同じデータ構造や意味を持っている場合にのみ、第1の実行権生成モジュールと、第2の実行権生成モジュールとを用いて、ソフトウェアの実行権を生成する。
【0053】
請求項15に係る発明では、注文管理器は、公開鍵署名方式に用いられる秘密情報と、注文情報および実行器秘密情報に依存した値である第1の計算手段の計算結果とを用いて、第1の実行権生成モジュールを変換することにより、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成する。一方、ソフト実行器は、公開鍵署名方式に用いられる秘密情報に対応した公開情報と、注文情報および実行器秘密情報に依存した値である第2の計算手段の計算結果とを用い、公開鍵署名方式に対応した署名確認方式によって、注文管理器からの実行権生成パスワードを逆変換する。
【0054】
請求項16に係る発明では、ソフト実行器に提供されるソフトウェアは、ソフト固有情報を含んで暗号化されている。そして、ソフト実行器は、注文管理器からの実行権生成パスワードの正当性を確認したとき、内部に保持している注文情報に対応する暗号化ソフトウェアを復号してソフト固有情報を獲得し、この獲得したソフト固有情報を実行器秘密情報で暗号化することによって、注文されたソフトウェアの実行権を生成する。また、ソフト実行器は、内部に保持している注文情報に対応する暗号化ソフトウェアを復号してソフトウェアとソフト固有情報とを獲得し、実行権を実行器秘密情報を用いて復号してソフト固有情報を獲得し、これら復号によって獲得したソフト固有情報が一致している場合にのみ、復号されたソフトウェアを実行する。
【0055】
請求項17に係る発明では、ソフト実行器は、作成した注文情報を不揮発的に蓄積保持し、対応するソフトウェアの実行権を生成した後に当該注文情報を消去する。これによって、とりあえず注文だけを連続して送付し、後に返送されてくる実行権生成パスワードに基づいて、ソフトウェアの実行を制御することができる。
【0056】
請求項18に係る発明では、ソフト実行器および注文管理器は、それぞれ相互間でやりとりされた情報の履歴を保持している。これによって、後に生じるトラブル等に柔軟に対処できる。
【0057】
請求項19に係る発明では、ソフト実行器および注文管理器は、すべてのソフトウェアの組み合わせに対応するコードをテーブルとして保持しており、ソフト実行器は、テーブルから得たコードを、注文情報として注文管理器に送付するようにしている。これによって、注文情報のデータ量をより一層削減できる。
【0058】
【実施例】
(1)第1の実施例
図1は、本発明の第1の実施例に係るソフトウェア保護システムの構成を示すブロック図である。図1において、本実施例のソフトウェア保護システムは、ソフトウェアを実行するソフト実行器101と、ソフト実行器101に対してソフトウェアを配付する注文管理器102とを備えている。
【0059】
ソフト実行器101は、暗号化ソフトウェア格納部3と、注文作成部4と、実行器ID格納部5と、実行器IDに対応した実行器暗号キー(実行器秘密情報の一例)を格納する実行器暗号キー格納部6と、注文管理器102から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査部7と、注文情報に基づいて実行器暗号キーを使用して実行権を生成する実行権生成部8と、生成した実行権を格納する実行権格納部9と、ソフトウェア実行時に対応する実行権が有効である場合に上記暗号化ソフトウェアを復号して実行するソフト復号実行部10とを含む。このような構成のソフト実行器101において、注文作成部4で作成された注文情報と、実行器IDとは、注文管理器102に伝えられ、暗号化ソフトウェアを実行するための実行権生成パスワードが要求される。
【0060】
一方、注文管理器102は、すべてのソフト実行器の実行器暗号キーを格納している実行器暗号キー格納部11と、注文情報および該当のソフト実行器の実行器暗号鍵に依存した実行権生成パスワードを生成する実行権生成パスワード生成部12とを含む。
【0061】
次に、図1に示す第1の実施例のソフトウェア保護システムの動作を説明する。なお、以下の説明では、ソフト実行器101と注文管理器102との間の通信は、それらを操作している人間が電話を介して行なうものとする。
【0062】
まず、暗号化ソフトウェアの生成方法について説明する。ソフトウェアSoftAに対して固有の認証子authAが定められる。そして、SoftAと、認証子authAとが結合され、この結合されたデータがシステム内で共通の秘密情報S(図示せず)を用いて暗号化され、暗号化ソフトウェアが生成される。式で表現すると、暗号化ソフトESoftAは、
ESoftA=E(S,authA‖SoftA)
となる。なお、上式において、E(S,*)はSを鍵とした暗号関数を、‖は結合を示す。同様に、他のソフトウェアSoftBに関しても、固有の認証子authBを対応させて暗号化ソフトウェアが作成される。以下、同じような手続きで作成された複数の暗号化ソフトウェアが、例えば1枚のCD−ROMに格納され、予めソフト実行器101に配付される。図1の実施例においては、この暗号化ソフトウェアは、暗号化ソフトウェア格納部3に格納されている。
【0063】
ソフト実行器101のユーザは、ソフト実行器101を操作することにより、暗号化ソフトウェア格納部3に格納されているソフトウェアの中から、実行することを希望するソフトウェアを指定する。例えば、ソフトウェアAとソフトウェアCという具合にである。応じて、注文作成部4は、対応する注文情報を生成する。この注文情報は、注文作成部4内に一旦蓄積される。そして、ソフト実行器101のユーザは、この注文情報と、ソフト実行器101に固有の実行器ID(実行器ID格納部5に格納されている)とを、注文管理器102のオペレータに電話で通知する。これによって、注文が完了する。
【0064】
注文管理器102内の実行権生成パスワード生成部12は、ソフト実行器101から通知された注文情報が入力されると、まず注文を出したソフト実行器101の認証(または、ユーザ認証)を行ない、次に、実行器暗号キー格納部11から該当のソフト実行器101の暗号キーを獲得する。次に、実行権生成パスワード生成部12は、ソフト実行器101から受け取った注文情報と、実行器暗号キー格納部11から獲得した実行器暗号キーとを結合して、この結合データを予め定められたハッシュ関数に入力する。このハッシュ関数の出力は、実行権生成パスワードとして、電話でソフト実行器101のユーザに伝えられる。
【0065】
ここで、ハッシュ関数は、データ圧縮型暗号処理であり、その出力が入力のすべてのビットに依存しており、出力が同じとなる異なる入力ペアを容易には見付けることができないという性質を持っている。その具体的な構成方法については、例えば池野、小山共著の「現代暗号理論」、電子通信学会発行の224ページから225ページに詳しく記述されている。なお、本実施例で用いるハッシュ関数は、例えば入力を10進10桁くらいの値に圧縮する関数とする。
【0066】
ソフト実行器101のユーザは、電話で受け取った実行権生成パスワードを、実行権生成パスワード検査部7に入力する。この実行権生成パスワード検査部7には、注文管理器102で用いているのと同じハッシュ関数が格納されている。そして、実行権生成パスワード検査部7は、このハッシュ関数に、注文作成部4内に蓄積されている注文情報と、実行器暗号キー格納部6内に格納されている実行器暗号キーとを結合したデータを入力する。次に、実行権生成パスワード検査部7は、このハッシュ関数の出力結果を、注文管理器102から得た実行権生成パスワードと比較する。このとき、注文作成部4内に蓄積されている注文情報が実際に注文管理器102に伝えられた内容と違っていたり、ソフト実行器101内に格納されている実行器暗号キーが注文管理器102内で獲得された実行器暗号キーと異なっている場合には、この比較結果は、NG(不一致)となる。
【0067】
実行権生成部8は、上記実行権生成パスワード検査部7での検査結果がOK(一致)のときにのみ、起動されて実行権の生成を行なう。その方法は、次のとおりである。まず、実行権生成部8は、注文作成部4内に蓄積されている注文情報を参照して、対応する暗号化ソフトウェアを暗号化ソフト格納部3から取り出す。例えば、暗号化ソフトウェアとして、ESoftAを取り出したと想定すると、実行権生成部8は、この取り出した暗号化ソフトウェアESoftAを、システム内で共通の秘密鍵S(図示せず)を用いて復号し、対応する認証子authAを得る。次に、実行権生成部8は、この認証子authAを、実行器暗号キー格納部6に格納されている実行器暗号キーを用いて暗号化し、この暗号化で得た認証子を、実行権として実行権格納部9に格納する。一般的に、特定の実行器暗号キーSxを備えたソフト実行器Xの場合、ソフトAの実行権は、E(Sx,authA)となる。この実行権は、実行器X固有の暗号キーSxで暗号化されているため、実行権格納部9として、外部からの読出プロテクトが施されていない一般のメモリを用いた場合でも、機密漏洩の問題は生じない。
【0068】
ソフトウェアAを実行する際には、ソフト復号実行部10は、まず暗号化ソフトウェアESoftAをシステム内で共通の秘密鍵Sを用いて復号し、認証子authAとSoftAとを得る。次に、ソフト復号実行部10は、ソフトウェアAに対応する実行権E(Sx,authA)を、実行権格納部9から取り出す。次に、ソフト復号実行部10は、実行権E(Sx,authA)を実行器暗号キーSxで復号して得た値と、先に得ていた認証子とを比較する。そして、ソフト復号実行部10は、両者が一致するときに、ソフトウェアSoftAを実行する。
【0069】
以上説明したように、本発明の第1の実施例では、従来システムにおいて注文管理器が行なっていた実行権の生成(従来例では、暗号化ファイルキーの生成に相当する)を、ソフト実行器側で行なっている。すなわち、本実施例では、注文管理器102は、実行権生成部8に対して起動の許可を与えるだけの機能を有している。ここで、許可情報となる実行権生成パスワードは、注文情報と実行器の暗号キーとに依存したハッシュ関数の出力であるため、10進10桁程度の値で実現でき、電話での伝え間違え、入力間違えが少なくなり、ユーザインタフェースも良好になる。また、注文情報および実行器の認証が可能となる。また、注文管理器102は、実行権生成部8に対し起動の許可を与えるだけなので、実行権生成パスワードは、注文するソフトの個数に依存せず、いつも少ない桁数で実現できる。
【0070】
次に、上記第1の実施例のソフトウェア保護システムにおいて、不正行為に対する安全性について説明する。第1の実施例のシステムでは、注文管理器102がソフト実行器101から注文を受けて、それに対する実行権生成パスワードを発行する際に、注文に対応した課金がなされるものとしている。支払の方法としては、一般的にはクレジット等の方法が採用されるであろう。従って、ソフト実行器101において、課金の対象とならない不正な実行権を勝手に生成することが困難であれば、システムの安全性が高いということになる。
【0071】
まず、不正な実行権を生成させるための外部からの攻撃として、ソフト実行器101内の実行権生成部8を単独で動作させることが考えられる。また、注文作成部4で作成した注文以外のソフトウェアの実行権を、実行権生成部8で作成させるという攻撃も考えられる。これらの攻撃に対しては、ユーザがソフト実行器101内の各構成要素を変更できないようにすることにより対処できる。
【0072】
第1の実施例では、実行権生成部8は、注文作成部4において注文が行なわれ、次にそれに対応する実行権生成パスワードの検査が通るという一連の作業を経た後でなければ起動しない。すなわち、第1の実施例では、実行権生成部8だけが単独で動作するように変更することはできない。また、第1の実施例では、上記一連の作業から注文作成を除いて、実行権生成パスワードの検査と実行権生成部8だけを動作させることもできない。さらに、注文作成部4において作成された注文情報が、実行権生成パスワード検査部7と実行権生成部8とで用いられる際、そのいずれにおいてもユーザは、注文情報の内容を変更できない。従って、第1の実施例では、上記のような不正な攻撃が行われても、実行権が生成されることはない。
【0073】
なお、ソフト実行器101が専用器である場合や、ソフト実行器内のプログラムがCD−ROMなどで実現されている場合が非常に一般的であるということを考慮すると、ユーザがソフト実行器内の各構成要素を変更できないようにすることは、現実に即したものである。
【0074】
また、ソフトウェアを不正に実行するために、ある注文に対して受け取った実行権生成パスワードを、別の注文に対する実行権生成パスワードとして入力したり、また注文を出したソフト実行器以外のソフト実行器に入力してみるという攻撃も考えられる。ところが、第1の実施例のシステムでは、実行権生成パスワードは、注文情報と実行器暗号キーとに依存した値であるため、注文情報やソフト実行器が違う場合には、実行権生成パスワードの検査が通らない。従って、第1の実施例は、このような不正な攻撃に対しても対処できる。
【0075】
さらに、ソフトウェアを不正に実行するために、ある注文の実行権生成パスワードに対し、総当たり的に適当な値のパスワードを入力してみるという攻撃も考えられる。しかしながら、第1の実施例では、パスワードの桁数を10進で10桁くらいに設定しているため、不正ユーザが適当にパスワードを入力してみても、それがたまたま検査部7をパスする確率は、実際上0に近いと考えられる。従って、第1の実施例は、このような攻撃に対しても対処できる。
【0076】
さらに、ソフトウェアを不正に実行するために、ユーザが実行権生成パスワードを偽造することも考えられる。これに対しては、例えば公開鍵署名法を用いて対処することができる。公開鍵署名法を用いた場合、実行権生成パスワードを生成するためには、注文管理器102の秘密鍵が必要となるため、一般のユーザには、パスワードの偽造はできない。また、実行権生成パスワードを発行するための手続き(演算)を公開しないという方法でも対処できる。上記第1の実施例では、ソフト実行器2内の実行権生成パスワード検査部7は、実行権生成パスワードの生成と同じ手順で検査を行なうが、ユーザには実行権生成パスワード検査部7のアルゴリズムが公開されない。さらに、実行権生成パスワード検査部7が単独で使用する(すなわち、ソフト実行器101内の構成要素を変更する)ことができないため、パスワード偽造の問題は生じない。
【0077】
また、実行権格納部9を、読出プロテクト機能を持たない一般のメモリを用いて構成した場合、実行権格納部9に格納されている実行権を解析することにより、実行権を不正に生成するということも考えられる。しかしながら、第1の実施例では、実行権格納部9内に格納されている実行権は、対応するソフト実行器101の暗号キーで暗号化され、しかも実行器暗号キーが64ビット程度に設定されているので、容易には実行権を解析できない。さらに、ユーザが実行器暗号キーを観察できないようにする、またはユーザに対して復号処理を公開しないようにすることで、より安全性を高めることができる。
【0078】
以上の説明により、ソフト実行器101側で実行権を偽造することは、事実上不可能であることが分かる。
【0079】
なお、上記第1の実施例のシステムは、ユーザが実行権を手に入れたら、その実行権を無限回数使用できるようなシステム、すなわち「実行権買い取り式」のシステムとして構成されている。従って、同じ注文情報に対する実行権生成パスワードが複数回入力されてもかまわない。
【0080】
(2)第2の実施例
図2は、本発明の第2の実施例に係るソフトウェア保護システムの構成を示すブロック図である。この第2の実施例は、第1の実施例のような「実行権買い取り式」のシステムとは異なり、ソフトウェアの実行権に例えば実行回数などの条件が付加されている場合に有効となる。
【0081】
ところで、注文したソフトウェアの実行回数を制限するためには、実行権生成パスワードは、最初の入力時にのみ有効とならなければならない。これは2回目以降の入力時にも有効であれば、次のような不都合が生じるからである。例えば、あるソフト実行器がソフトウェアAを実行する注文を作成し、注文管理器から当該注文に対する実行権生成パスワードを手に入れたとする。ソフト実行器にこのパスワードが入力されると、ソフトウェアAを実行できる実行権が生成される。次に、この実行権がなくなった時点で、同じソフト実行器において再度ソフトウェアAを実行する注文を作成し、注文管理器には注文せずに、以前のパスワードを入力する。このパスワードがもし有効となり、再度ソフトウェアAの実行権が生成されると、実質的に実行回数の制限は意味がなくなってしまう。
【0082】
そこで、第2の実施例では、実行権生成パスワードを最初の入力時だけ有効とするために、第1の実施例の構成に加えて、注文ごとに変化する値を導入している。すなわち、第2の実施例では、個々の注文情報に対して、その都度値が変化する変化値を生成し、この変化値に対応した実行権生成パスワードだけが有効となるようにしている。この注文ごとに変化する変化値の実現方法としては種々考えられるが、第2の実施例では、注文ごとに乱数を発生し、この乱数を注文ごと変化する変化値として用いるようにしている。
【0083】
図2において、本実施例のソフトウェア保護システムは、ソフトウェアを実行するソフト実行器201と、ソフト実行器201に対してソフトウェアを配付する注文管理器202とを備えている。ソフト実行器201は、図1の実施例と同様の構成の、暗号化ソフトウェア格納部3と、注文作成部4と、実行器ID格納部5と、実行器暗号キー格納部6と、実行権生成部8と、実行権格納部9と、ソフト復号実行部10とを含む。さらに、ソフト実行器201は、注文のたびに起動する乱数生成器20と、受け取った実行権生成パスワードの正当性を、注文情報,実行器暗号キーおよび乱数データを用いて確かめる実行権生成パスワード検査部21とを含む。
【0084】
一方、注文管理器202は、図1の実施例と同様の構成の実行器暗号キー格納部11を含む。さらに、注文管理器202は、ソフト実行器201から送付された注文情報および乱数と、実行器暗号キー格納部11から獲得したソフト実行器202の暗号キーとを用いて、それらすべてに依存する実行権生成パスワードを生成する実行権パスワード生成部22を含む。
【0085】
以上述べたように、この第2の実施例では、注文のたびに新しい乱数が生成される。そして、ソフト実行器201のユーザは、第1の実施例における注文情報および実行器IDに加え、この乱数を、注文管理器202のオペレータに電話で通知する。なお、この乱数は、ユーザインタフェースを良好にするために、10進10桁程度の値とする。
【0086】
注文管理器202における実行権生成パスワード生成部22は、第1の実施例で用いたのと同様のハッシュ関数に、注文情報,乱数および該当するソフト実行器201の実行器暗号キーを結合したデータを入力する。そして、このハッシュ関数の出力結果である10進10桁の値は、実行権生成パスワードとして、ソフト実行器201のユーザに電話で通知される。
【0087】
通知を受けたソフト実行器201のユーザは、上記実行権生成パスワードを、ソフト実行器201の実行権生成パスワード検査部21に入力する。実行権生成パスワード検査部21は、注文作成部4および乱数発生部20から得た注文情報および乱数と、注文管理器202から得た実行器暗号キーとを結合して、注文管理器202で使用しているハッシュ関数と同様のハッシュ関数に入力する。そして、実行権生成パスワード検査部21は、このハッシュ関数の出力結果を、入力された実行権生成パスワードと比較し、両者が一致しているときのみ、実行権生成部8を起動する。これ以降の動作は、前述した第1の実施例と同様であるので、その説明を省略する。
【0088】
上記第2の実施例では、注文のたびに新しい乱数が自動的に生成される。そして、正規の手続きの場合、注文管理器202からは、この乱数(=注文ごとに変化する値)に依存した実行権生成パスワードが発行される。そして、この実行権作成パスワードは、対応する乱数を保持するソフト実行器201においてのみ有効となる。従って、2回目以降の注文発生時における乱数が、1回目の注文発生時に生成された乱数とは異なるため、1回目の注文発生時に得た実行権生成パスワードを、複数回不正使用することはできない。なお、第2の実施例では、第1の実施例において説明した安全性確保に対する対処に加え、上記乱数をユーザが勝手に変更したり設定できないようにすることが好ましい。
【0089】
なお、上記第2の実施例では、新しい注文が作成されるまでは、以前の乱数が残っているように構成されているが、一旦注文をセーブすることを可能とする場合には、実行権を生成した段階でそれに関与する乱数をクリアまたは更新するようにしてもよい。これによって、より一層安全性が高まる。
【0090】
(3)第3の実施例
図3は、本発明の第3の実施例に係るソフトウェア保護システムの構成を示すブロック図である。この第3の実施例は、前述の第1の実施例に効率のよい実行器認証を付加したものである。図3において、第3の実施例のソフトウェア保護システムは、ソフトウェアを実行するソフト実行器301と、ソフト実行器301に対してソフトウェアを配付する注文管理器302とを備えている。
【0091】
ソフト実行器301は、前述の第1の実施例と同様の構成の、暗号化ソフトウェア格納部3と、注文作成部4と、実行器ID格納部5と、実行器暗号キー格納部6と、実行権生成部8と、実行権格納部9と、ソフト復号実行部10とを含む。さらに、ソフト実行器301は、注文情報と実行器暗号キーに依存した注文認証情報を生成する注文認証情報生成部30と、注文管理器302から受け取った実行権生成パスワードの正当性を、注文情報,実行器暗号キーおよび注文認証情報を用いて検査する実行権生成パスワード検査部31とを含む。
【0092】
一方、注文管理器302は、図1の実施例と同様の構成の実行器暗号キー格納部11を含む。さらに、注文管理器302は、ソフト実行器301から受け取った注文情報および注文認証情報と、実行器暗号キー格納部11から獲得した実行器暗号キーとを用いてソフト実行器の認証を行なう実行器認証部32と、実行器認証結果がOKの場合に、注文認証情報を注文情報を識別する注文識別情報として用い、さらに注文情報と注文識別情報(=注文認証情報)とを用いて実行権生成パスワードを生成する実行権生成パスワード生成部33とを含む。
【0093】
次に、図3に示す第3の実施例のソフトウェア保護システムの動作を説明する。まず、ソフト実行器301の注文作成部4で注文情報が作成されると、注文認証情報生成部30は、第1の実施例で用いたのと同様のハッシュ関数に、注文情報と実行器暗号キー格納部6から得た実行器暗号キーとを結合したデータを入力する。そして、ソフト実行器301のユーザは、上記ハッシュ関数の出力結果を注文認証情報として、注文情報および実行器IDに加えて、注文管理器302のオペレータに電話で伝える。なお、注文情報および注文認証情報は、それぞれ、注文作成部4および注文認証情報生成部30に蓄積されている。
【0094】
注文管理器302では、まず実行器認証部32が、ソフト実行器301から受け取った実行器IDを鍵として、実行器暗号キー格納部11を検索し、該当するソフト実行器301の実行器暗号キーを獲得する。次に、実行器認証部32は、ソフト実行器301から受け取った注文情報と実行器暗号キーとを結合したデータを、ソフト実行器301で用いているのと同様のハッシュ関数に入力する。次に、実行器認証部32は、このハッシュ関数の出力結果を、ソフト実行器301から受け取った注文認証情報と比較する。そして、実行器認証部32は、比較結果が一致しているときのみ、相手が正しい実行器であり正しい注文を行なったものと判断し、注文認証情報を注文を識別する注文識別情報として、例えば注文情報およびこれに関連した情報の管理や授受に用いる。また、実行権生成パスワード生成部33は、注文情報と注文識別情報(=注文認証情報)とを結合したデータを、上記と同様のハッシュ関数に入力する。そして、注文管理器302のオペレータは、そのハッシュ関数の出力結果を、実行権生成パスワードとして、注文識別情報と対にしてソフト実行器301のユーザに電話で伝える。
【0095】
ソフト実行器301のユーザは、伝えられた実行権生成パスワードを、実行権生成パスワード検査部31に入力する。応じて、実行権生成パスワード検査部31は、注文作成部4に蓄積された注文情報と、注文認証情報生成部30に蓄積された注文認証情報とを結合したデータをハッシュ関数に入力し、その出力結果が入力された実行権生成パスワードと一致するか否かを検査する。そして、実行権生成パスワード検査部31は、この検査結果が一致している場合にのみ、実行権生成部8を起動する。これ以降の動作は、第1の実施例と同様であり、その説明を省略する。
【0096】
上記第3の実施例では、注文管理器302は、実行権生成パスワードの発行前に、注文情報およびソフト実行器の認証を行なう。実際のシステムでは、注文により課金がなされるため、いずれにせよ認証機能は必要である。この認証機能は、注文と切り離して別途設けることもできるが、例えば、チャレンジを行ないそれに対する応答により認証する方法では、これらチャレンジおよび応答のやりとりが、実際上、ソフト実行器のユーザに対してかなりの負担を与えることになる。そこで、第3の実施例では、注文情報およびソフト実行器の認証を、注文と同時に効率的に行なうようにしている。そのため、第3の実施例では、注文情報および実行器の暗号キーに依存した注文認証情報を導入している。そして、この注文認証情報は、注文情報および実行器IDに加えられて、注文管理器302に伝えられる。なお、この注文認証情報は、上記第3の実施例ではハッシュ関数の出力であるため、例えば10進10桁程度で実現でき、電話で伝える場合にもそれほどユーザに負担を与えない。
【0097】
注文管理器302は、上記注文認証情報を用いることにより、注文情報およびソフト実行器301の認証を行なっている。つまり、ソフト実行器301が注文作成部4で作成した注文情報と、注文管理器302に電話で伝えた注文情報とが異なっている場合には、注文管理器302の実行器認証部32において、NGが出力される。また、あるソフト実行器が自分の実行器IDと異なる情報を電話で伝えた場合にも、この実行器認証部32でチェックできる。
【0098】
上記認証結果がOKの場合にのみ、注文管理器302は、注文認証情報を注文を識別するための注文識別情報として用いる。そして、注文管理器302は、この注文に対応した実行権生成パスワードを生成する。この実行権生成パスワードは、ソフト実行器301に伝えられる。この実行権生成パスワードもハッシュ関数の出力であるため、10進10桁程度で実現できる。ソフト実行器301では、入力された実行権生成パスワードを、内部に蓄えている注文情報および注文認証情報(=注文識別情報)を用いて検査する。この検査を経た後、入力された実行権生成パスワードに対応した注文認証情報および注文情報を保持する特定のソフト実行器でのみ有効となる実行権が生成される。なお、ここでは、実行権生成パスワードの注文識別情報(=注文認証情報)の中に、実行器暗号キーの情報がすでに含まれているため、実行権生成パスワード自身に実行器暗号キーは含まれていない。
【0099】
上記第3の実施例では、ソフト実行器301のユーザは、注文時に第1の実施例で伝達すべき情報に加えて、注文認証情報を注文管理器302に伝えている。このことにより、注文管理器302は、実行権生成パスワードを発行する前に、注文情報およびソフト実行器の認証を行うことができる。この注文認証情報は、10進10桁程度の値であり、ソフト実行器301のユーザに対してそれほど負担を与えない。また、第1の実施例と同じ回数のやりとりで認証を実現でき、ユーザ認証を別途設ける場合に比べて効率がよい。そして、この注文認証情報は、注文情報を識別する注文識別情報として、注文情報やそれに関係する情報を管理するのに用いられる。
【0100】
(4)第4の実施例
図4は、本発明の第4の実施例に係るソフトウェア保護システムの構成を示すブロック図である。この第4の実施例は、乱数を導入した第2の実施例に、効率のよい実行器認証機能を付加したものである。第4の実施例も第2の実施例と同様に、例えばソフトの実行権に実行回数などの条件が付加されている場合に有効となる。図4において、第4の実施例のソフトウェア保護システムは、ソフトウェアを実行するソフト実行器401と、ソフト実行器401に対してソフトウェアを配付する注文管理器402とを備えている。
【0101】
ソフト実行器401は、前述の第1の実施例と同様の構成の、暗号化ソフトウェア格納部3と、注文作成部4と、実行器ID格納部5と、実行器暗号キー格納部6と、実行権生成部8と、実行権格納部9と、ソフト復号実行部10とを含む。さらに、ソフト実行器401は、注文情報および実行器暗号キーを結合してハッシュ演算を行う注文ハッシュ部40と、予め定められた構造や意味をもつ乱数を注文ごとに生成する乱数生成部41と、当該乱数および注文ハッシュ部40の出力の排他的論理和を演算する排他的論理和部42とを含む。
【0102】
一方、注文管理器402は、図1の実施例と同様の構成の実行器暗号キー格納部11を含む。さらに、注文管理器402は、実行器暗号キー格納部11から獲得した実行器暗号キーおよびソフト実行器401から受け取った注文情報を結合してソフト実行器401と同じハッシュ演算を行う注文ハッシュ部44と、ソフト実行器401から受け取った注文番号および注文ハッシュ部44の出力の排他的論理和を演算する排他的論理和部45と、排他的論理和部45の出力を入力しソフト実行器401の正当性を認証する実行器認証部46と、実行器認証部46の認証結果がOKのときのみに起動して実行権生成パスワードを発生する実行権生成パスワード生成部47とを含む。
【0103】
次に、図4に示す第4の実施例のソフトウェア保護システムの動作を説明する。まず、ソフト実行器401において、注文作成部4が注文情報を作成すると、注文ハッシュ部40は、第1の実施例で用いたのと同様のハッシュ関数に、当該注文情報と実行器暗号キー格納部6から得たソフト実行器の暗号キーとを結合したデータを入力する。また、乱数生成部41は、予め定められた構造や意味を持った乱数データを生成する。一例として、本実施例では、乱数データの最上位から3ビットを“0”とし、最下位から3ビットを“1”としている。その他のビットは乱数を格納する。この例の他、注文管理器402とソフト実行器401との間で予め取り決めしておいて、その乱数データのある部分に、実行器IDの一部のデータを対応させてもよい。次に、排他的論理和部42は、注文ハッシュ部40の出力と、乱数生成部41で生成された乱数データとの排他的論理和を演算する。ソフト実行器401のユーザは、この排他的論理和部42の演算結果を注文認証情報として、注文情報および実行器IDと共に、注文管理器402のオペレータに伝える。なお、上記乱数データのビット数を、注文ハッシュ部40の出力と同程度にとれば、注文認証情報は10進10桁程度となり、ソフト実行器401のユーザや注文管理器402のオペレータにそれほど大きな負担を与えない。
【0104】
注文管理器402では、実行器認証部46が実行器暗号キー格納部11から該当するソフト実行器の暗号キーを獲得し、これと注文情報とを結合して注文ハッシュ部44に入力する。そして、排他的論理和部45は、注文ハッシュ部44の出力と、ソフト実行器401から受け取った注文認証情報との排他的論理和を演算する。注文情報と実行器IDとが正しければ、注文ハッシュ部44の出力は、注文を行ったソフト実行器401内の注文ハッシュ部40の出力と同じになる。また、排他的論理和部45の出力は、注文を行ったソフト実行器401の乱数生成部41で生成した乱数データと同じになる。つまり、今の場合、乱数データの最上位から3ビットは“0”、最下位から3ビットは“1”となる。実行器認証部46は、排他的論理和部45の出力が、予め定められている乱数の構造や意味を持っているか否かを確認し、OKであれば、注文情報と実行器とが正しいと認証する。そして、この認証結果がOKの場合にのみ、実行権生成パスワード生成部47は、実行権生成パスワードを生成する。これ以降の動作は、第3の実施例と同じである。すなわち、注文管理器402で生成された実行権生成パスワードが、電話等によってソフト実行器401に伝えられ、ソフト実行器側でそれを検査して、OKの場合に対応するソフトの実行権が作成される。
【0105】
上記第4の実施例では、第2の実施例と同様に、乱数を導入して回数制限付きの実行権生成に対応できる。さらに、第4の実施例は、第3の実施例と同様に、ユーザ認証機能を備えている。このように第4の実施例は、第2および第3の実施例の機能を併せ持つにもかかわらず、ソフト実行器401と注文管理器402間でやり取りするデータ量、特にランダムな注文番号と実行権生成パスワードの桁数が増加していない。
【0106】
(5)第5の実施例
図5は、本発明の第5の実施例に係るソフトウェア保護システムの構成を示すブロック図である。この第5の実施例では、各ソフト実行器内に不活性状態の実行権生成モジュールが備えられており、注文管理器から与えられる実行権生成パスワードによりその実行権生成モジュールを活性化させて、そのモジュールで所定の実行権を生成することを特徴としている。なお、以下の説明では、実行権生成モジュールが2つの部分に分けられ、その一方である実行権生成モジュールAがソフト実行器に蓄えられ、もう一方の実行権生成モジュールBは、暗号化されてソフト実行器が注文管理器から受け取る。この実行権生成モジュールAおよびBは、両者が揃って初めて所定の実行権が生成できる。従って、ソフト実行器内に蓄えられた実行権生成モジュールAだけでは不活性な状態であり、実行権を生成できない。
【0107】
図5において、第5の実施例のソフトウェア保護システムは、ソフトウェアを実行するソフト実行器501と、ソフト実行器501に対してソフトウェアを配付する注文管理器502とを備えている。
【0108】
ソフト実行器501は、前述の第1の実施例と同様の構成の、暗号化ソフトウェア格納部3と、注文作成部4と、実行器ID格納部5と、実行器暗号キー格納部6と、実行権生成部8と、実行権格納部9と、ソフト復号実行部10とを含む。さらに、ソフト実行器501は、注文情報および実行器暗号キーを結合してハッシュ演算を施す注文ハッシュ部50と、実行権生成モジュールAを格納する格納部51と、注文管理器502から受け取った実行権生成パスワードを逆変換する逆変換部52と、逆変換部52の逆変換結果を格納する格納部53とを含む。なお、注文情報と実行器IDとが正しければ、この格納部53には、実行権生成モジュールBが格納されることになる。
【0109】
一方、注文管理器502は、図1の実施例と同様の構成の実行器暗号キー格納部11を含む。さらに、注文管理器502は、ソフト実行器501から受け取った注文情報と、実行器暗号キー格納部11から得た該当の実行器の暗号キーとを結合してハッシュ演算を施す注文ハッシュ部54と、実行権生成モジュールBを格納する格納部55と、モジュールBを注文ハッシュ部54の出力を用いて変換し、実行権生成パスワードを生成する実行権生成パスワード生成部56とを含む。
【0110】
次に、図5に示す第5の実施例のソフトウェア保護システムの動作を説明する。まず、ソフト実行器501のユーザは、ソフト実行器501を操作することにより、実行を希望するソフトウェアの注文を指定する。応じて、注文作成部4は、対応する注文情報を作成する。そして、当該ユーザは、注文情報とソフト実行器501に固有の実行器IDとを、電話等によって注文管理器502に通知する。
【0111】
ソフト実行器501からの通知を受け取ると、注文管理器502では、実行器IDに基づいて実行器暗号キー格納部11を検索し、該当するソフト実行器の暗号キーを獲得する。次に、注文ハッシュ部54は、ソフト実行器501から受け取った注文情報と、実行器暗号キー格納部11から得た実行器暗号キーとを結合して、第1の実施例で用いたのと同様のハッシュ関数に入力する。実行権生成パスワード生成部56は、注文ハッシュ部54から出力されるハッシュ値を鍵として、実行権生成モジュールBを変換し、実行権生成パスワードを発行する。注文管理器502のオペレータは、この実行権生成パスワードを、電話等によってソフト実行器501のユーザに伝える。
【0112】
次に、電話で実行権生成パスワードを受け取ったソフト実行器501のユーザは、ソフト実行器501の逆変換部52に、このパスワードを入力する。注文ハッシュ部50には、注文管理器502で用いたのと同じハッシュ関数が備えられている。そして、注文ハッシュ部50は、注文作成部4内に蓄積された注文情報と、実行器暗号キー格納部6から得た実行器暗号キーとを結合し、この結合データに対してハッシュ演算を施す。逆変換部52は、注文ハッシュ部50から出力されるハッシュ値を鍵として、注文管理器502から受け取った実行権生成パスワードを逆変換する。もし、注文情報と実行器暗号キーとが正当であるならば、注文ハッシュ部50から出力されるハッシュ値は、注文管理器502におけるハッシュ値(注文ハッシュ部54の出力)と同じになる。従って、逆変換部52の出力は、実行権生成モジュールBとなる。次に、実行権生成部8は、予め格納部51に格納されている実行権生成モジュールAと、獲得したモジュールBとを用いて、注文情報に対応した実行権を生成する。実行権生成部8によって実行権が生成された後は、実行権生成モジュールに従って、モジュールBが削除される。
【0113】
上記第5の実施例では、ソフト実行器側に予め格納されている実行権生成モジュールAは、不活性な状態であり、情報量的にこれだけでは動作できない。これを活性化するためのモジュールBは、注文管理器502において、ソフト実行器の注文情報と暗号キーとに依存した形に変換され、実行権生成パスワードとして送付される。前述した第1〜第4の実施例においては、実行権生成モジュールは、完全な形でソフト実行器内に存在した。ただし、これを起動するためには、実行権生成パスワードという許可が必要であった。これに対して第5の実施例の構成では、実行権生成モジュールは、情報量的に不足した状態でソフト実行器内に存在する。このため、第5の実施例は、第1〜第4の実施例に比べて、より実行権の不正生成に対する安全性が高い。なお、実行権生成モジュールAおよびBにより注文の実行権を生成した後は、元の状態に戻すために、モジュールBが削除される。
【0114】
第5の実施例において、実行権生成モジュールBは、注文情報と実行器の秘密キーとに依存して変換されるため、注文が異なったり実行器が異なる場合には、ソフト実行器のユーザは、正規のモジュールBを手に入れることができない。ただし、第5の実施例では、実行権生成パスワードの中にモジュールBが情報として含まれるため、許可情報だけが含まれていた第1〜第4の実施例に比べて、多少実行権生成パスワードの桁数を増やす必要がある。なお、この第5の実施例における実行権生成パスワードのデータ量は、注文するソフトの個数に依存しない。
【0115】
なお、第5の実施例では、ソフト実行器501は、注文管理器502から受け取った実行権生成パスワードをチェックすることなしに、逆変換後すぐにこれをモジュールBとして用いている。従って、もし注文情報や実行器暗号キーが、入力した実行権生成パスワードに適合しない場合には、実行権生成モジュールが正しく動作しない。ところで、例えばモジュールBがある特定の構造や意味を持っているとし、ソフト実行器501において逆変換後、これを使用する前に構造や意味をチェックすることも考えられる。例えば、モジュールBがある命令コードの場合には、そのコードには特定の構造があるはずである。従って、モジュールBがこの特定の構造を有しているか否かをチェックすることにより、実行権生成モジュールの実行前にエラーを処理することができる。
【0116】
なお、以上述べた第2および4の実施例において用いられる乱数は、注文ごとに変化する値であれば良く、カウンタなどを用いて発生してもよい。また、乱数に代えて、タイムスタンプを用いてもよい。タイムスタンプは、ソフト実行器と注文管理器とで共通に発生可能(時計回路によって発生可能)であるため、ソフト実行器から注文管理器に対して変化値を送付する必要がなくなる。
【0117】
また、第3および4の実施例において、実行権生成パスワードを生成する際、注文情報および注文識別情報に加えて、実行器暗号キーにも依存させるようにしてもよい。ソフト実行器にとって、自分の実行器暗号キーを知っているのは、自分以外には注文管理器だけなので、この実行権生成パスワードを作ることができるのは、注文管理器だけである。そのため、実行権生成パスワードを注文管理器の署名情報として考えることができ、トラブル等が生じたときに、この情報を第3者に証拠として提出することができる。また、このような秘密鍵暗号を用いた署名方法に代えて、公開鍵暗号を用いた署名方法を用いてもよい。この場合、注文管理器は秘密の情報を保持し、実行権生成パスワードの生成の際にこの秘密の情報を用いる。一方、ソフト実行器側では、注文管理器の秘密情報に対応する公開情報を保持しており、これを用いて実行権生成パスワードの正当性を確認する。注文管理器の秘密情報を用いた場合にのみ、実行権生成パスワードの正当性が確認できるため、この実行権生成パスワードを注文管理器の署名として考えることができる。
【0118】
また、第1〜4の実施例においては、元のソフトウェアSoftAと、対応する認証子authAとを結合し、この結合されたデータをシステム共通の鍵Sで暗号化することにより、ソフトウェアの暗号化を行うようにしていたが、また、この認証子を実行器暗号キーSxで暗号化したデータを実行権として用いるようにしていたが、本発明はこのような方法には限定されない。例えば、認証子と実行器IDとを結合し、この結合されたデータをシステム共通の鍵で暗号化したものを、実行権として用いてもよい。実行器Xの実行権を、式で記述すると、
E(S,authA ‖ IDx)
となる。この場合、実行権は、実行権と暗号化ソフトウェアとをシステム共通の鍵で復号し、両者から得られる認証子が一致しており、かつ、実行権の復号結果から実行器IDを獲得して、これが実行器内の実行器IDと一致している場合に認証され、ソフトウェアを実行する。いずれにせよ、暗号化ソフトウェアから実行器がすでに保持しているデータを用いて、実行権が生成できる暗号方式ならば、本発明を適用できる。
【0119】
また、上記第1〜4の実施例においては、電話の1通話で注文を行ない、それに対する実行権生成パスワードを受け取るとしていたが、これが別の通話であってもよい。つまり、まずソフト実行器から注文管理器に対して注文を行ない、この注文を一旦セーブする。次に、注文管理器がソフト実行器に電話をかけてきて、注文番号で照合を行ない実行権生成パスワードの通知を行なう。このことにより、ソフト実行器のユーザにとり、電話をかけている時間が短くなり、料金的にも都合がよい。また、ソフト実行器のユーザは、注文管理器のユーザから実行権生成パスワードが通知されるまで、別のソフト実行等の作業を行なうことができる。一方、注文管理器にとっても、コールバックを行なうことによってユーザ認証が行なえる。
【0120】
また、上記第1〜4の実施例において、ソフト実行器が実行権生成パスワードを検査して実行権を生成する場合には、予めセーブしておいた注文情報をロードして用いる。ただし、注文情報を再ロードし、パスワードを再度使われないようにするために、最初に実行権を生成した後、セーブしておいた注文情報を消去することが必要となる。
【0121】
また、上記各実施例において、ソフト実行器と注文管理器とのやり取りの履歴を、双方で残しておくことにより、注文に関するトラブル時の参考資料にすることが考えられる。また、ソフト実行器側には、例えば今までどんなソフトを購入したかを残しておくことにより、注文ガイダンスのユーザインタフェースを良好なものにすることができる。
【0122】
また、上記各実施例において、ソフト実行器から注文管理器への注文情報としては、例えばソフトAとソフトBという具合にソフトのIDを用いることにしていたが、この部分をコード化して、対応するソフト名とコードの対応表を用いることにより、より通信情報量の削減を行なうことも考えられる。つまり、ソフトAとソフトBならばコード2番、ソフトBだけならばコード10番といった具合いにである。
【0123】
また、上記各実施例では、ソフト実行器と注文管理器との間の情報のやりとりは、人間が電話を介して行うものとして説明したが、両者に送受信器を設け、通信路を介して情報の授受を行うようにしてもよい。
【0124】
【発明の効果】
請求項1の発明によれば、ソフト実行器は、注文に対応した正規の実行権生成パスワードを入力することによってのみソフトの実行権を生成する。そして、注文管理器からソフト実行器には、実行権生成パスワード、すなわちソフト実行器が注文情報に対応したソフト実行権を生成するための許可を与える情報だけが送付されるため、安全性を劣化させることなく、送付すべき情報量を大幅に削減することができる。また、実行権生成パスワードの情報量は、注文するソフトの個数に依存せずに、いつも少ない情報量で実現できる。すなわち、ソフト実行器が複数のソフトウェアの注文を1回に行なっても、その情報量は1つのソフトウェアを注文したの場合の情報量と同じになる。この情報量の削減により、特に電話でパスワードを送受信する場合、ユーザインタフェース的に都合がよい。また、注文管理器にとっては伝え間違えが少なくなる。またソフト実行器のユーザにとっては、聞き間違えおよびこれを実行器に入力する際に間違えが少なくなる。また、電話をつないでいる時間も削減できるため、料金的にもメリットがある。
【0125】
請求項2,5,8,10および15の発明によれば、データ圧縮関数を用いて実行権生成パスワードを生成するようにしているので、その情報量をより一層削減することができる。
【0126】
請求項3の発明によれば、ソフト実行器には、デジタル署名された実行権生成パスワードが送付されるので、ソフト実行器側で実行権生成パスワードを偽造することがほとんど不可能となり、極めて安全性の高いソフトウェア保護システムを実現することができる。
【0127】
請求項4の発明によれば、注文情報を作成する毎に変化する変化値を導入し、注文管理器からの実行権生成パスワードは、対応する変化値を保持するソフト実行器でのみ有効となるように構成されているため、異なる時期に同じ注文を作成し、以前の実行権生成パスワードを入力しても、後の注文時に生成される変化値は、以前の注文時に生成される変化値とは異なっており、入力したパスワードが有効にはならない。これによって、例えば実行の回数が制限されているような実行権が生成される場合、実行権生成パスワードを繰り返して用いるという不正を防止することができる。
【0128】
請求項6の発明によれば、異なる時期になされた注文を峻別するために、ソフト実行器と注文管理器とに共通に保持されているタイムスタンプを用いているので、ソフト実行器から注文管理器に峻別のための情報を送付する必要がない。
【0129】
請求項7の発明によれば、ソフト実行器側で注文情報および実行器秘密情報に依存した注文認証情報を生成し、注文管理器に送付するようにしているので、注文管理器側で実行権生成パスワードの発行に先だって、注文情報とソフト実行器の認証を行うことができる。注文情報とソフト実行器の認証は、実際上は課金に関係するため、必要不可欠な機能である。本発明では、注文と同時にソフト実行器から少ない桁数の注文認証情報を通知することによって、効率的にこの機能を実現している。また、注文認証情報を、注文を識別する注文識別情報としても用いることができる。
【0130】
請求項9の発明によれば、ソフト実行器と注文管理器間でやりとりされる情報の量を増やすことなく、回数制限機能およびユーザ認証機能の両方を実現することができる。
【0131】
請求項12の発明によれば、注文管理器からソフト実行器には、デジタル署名された実行権生成パスワードが送付されるので、ソフト実行器側で実行権生成パスワードを偽造することがほとんど不可能となり、極めて安全性の高いソフトウェア保護システムを実現することができる。
【0132】
請求項13の発明によれば、ソフト実行器側に格納された第2の実行権生成モジュールを活性化させるための第1の実行権生成モジュールを注文管理器に格納し、この第1の実行権生成モジュールを実行権生成パスワードに含めて送付するようにしているので、ソフト実行器側では、不正に実行権を生成しようとしても、情報量的に不足しているため、正しい実行権を生成することができない。従って、より一層安全なソフトウェア保護システムを実現することができる。
【0133】
請求項17の発明によれば、ソフト実行器は、作成した注文情報を不揮発的に蓄積保持し、対応するソフトウェアの実行権を生成した後に当該注文情報を消去するようにしているので、とりあえず注文だけを連続して送付し、後に返送されてくる実行権生成パスワードに基づいて、ソフトウェアの実行を制御することができる。
【0134】
請求項18の発明によれば、ソフト実行器および注文管理器は、それぞれ相互間でやりとりされた情報の履歴を保持しているので、後に生じるトラブル等に柔軟に対処することができる。
【0135】
請求項19の発明によれば、ソフト実行器および注文管理器は、すべてのソフトウェアの組み合わせに対応するコードをテーブルとして保持しており、ソフト実行器は、テーブルから得たコードを、注文情報として注文管理器に送付するようにしているので、注文情報のデータ量をより一層削減することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例に係るソフトウェア保護システムの構成を示すブロック図である。
【図2】本発明の第2の実施例に係るソフトウェア保護システムの構成を示すブロック図である。
【図3】本発明の第3の実施例に係るソフトウェア保護システムの構成を示すブロック図である。
【図4】本発明の第4の実施例に係るソフトウェア保護システムの構成を示すブロック図である。
【図5】本発明の第5の実施例に係るソフトウェア保護システムの構成を示すブロック図である。
【図6】従来のソフト保護システムの構成を示すブロック図である。
【符号の説明】
101〜501…ソフト実行器
102〜502…注文管理器
3…暗号化ソフトウェア格納部
4…注文作成部
5…実行器ID格納部
6…実行器暗号キー格納部
7、21、31、43…実行権生成パスワード検査部
8…実行権生成部
9…実行権格納部
10…ソフト復号実行部
11…実行器暗号キー格納部
12、22、33、47…実行権生成パスワード生成部
20…乱数生成部
30…注文認証情報生成部
32…実行器認証部
40、44、50、54…注文ハッシュ部
42、45…排他的論理和部
46…実行器認証部
51…実行権生成モジュールA格納部
52、55…実行権生成パスワード逆変換部
53…実行権生成モジュールB格納部
56…実行権生成パスワード生成部
[0001]
[Industrial applications]
The present invention relates to a software protection system, and more particularly, to a software protection system that distributes software in an inactive state and acquires an execution right to activate the software using a communication path such as a telephone. About.
[0002]
[Prior art]
In recent years, various multimedia devices have been developed, and many paid multimedia software including games and educational software have been sold. However, the protection of such software is incomplete, and a large number of illegally copied software is now available. In order to prevent such illegal copying, there are laws and regulations such as the Patent Law and the Copyright Law, but at the same time, there is a strong demand for software protection from the mechanism side.
[0003]
For example, there is a method in which a recording medium such as a floppy disk for storing software has a special format so that copying cannot be performed by a copy function provided by an OS (operating system). However, even in such a method, copying can be performed in many cases by using a copy tool of a type that performs copying bit by bit. In addition, for a regular user, there is a problem that a backup cannot be made.
[0004]
In addition, a method of encrypting software and performing copy protection has been proposed. In this method, the software is encrypted and distributed inactive to the user. Then, according to a user's order, an execution right (an encrypted file key in the following conventional example) for activating the software on a specific device is distributed. Since this execution right is information dependent on a specific device, it cannot be used to activate the same software on another device. This method is disclosed, for example, in Japanese Patent Publication No. 2-60007. FIG. 6 shows the configuration. FIG. 6 is a diagram obtained by extracting portions necessary for explanation from FIGS. 1 to 6 of Japanese Patent Publication No. 2-60007 and reassembling them into one diagram.
[0005]
6, the software protection system includes a software execution unit 601 that executes software, and an order management unit 602 that distributes software to the software execution unit 601.
[0006]
The software execution unit 601 includes an encryption software storage unit 603, an order creation unit 604, an execution unit ID storage unit 605, an encryption key storage unit 606 that stores a unique execution unit encryption key corresponding to the execution unit ID, An encrypted file key storage unit 607 for storing the encrypted file key received from the order manager 602, an encrypted file key decryption unit 608 for decrypting the encrypted file key with the executable device encryption key to obtain a file key, A software decryption execution unit 609 for decrypting and executing the encrypted software using the file key. The software execution unit 601 having such a configuration transmits the order in the order creation unit 604 and the execution unit ID to the order management unit 602, and requests an encrypted file key for executing the encryption software.
[0007]
The order management unit 602 includes a file key storage unit 610 storing file keys of all software, an execution unit encryption key storage unit 611 storing execution unit encryption keys of all software execution units, and a file key. And an encrypted file key generation unit 612 that generates an encrypted file key by encrypting the encrypted file key with a specified executor encryption key. The order manager 602 having such a configuration retrieves the file key of the specified software from the software executor 601 from the file key storage unit 610, and extracts the encryption key corresponding to the execution unit ID from the execution unit encryption key storage unit 611. Take out.
[0008]
Next, the operation of the conventional software protection system shown in FIG. 6 will be described. The encryption software is obtained by encrypting the original software with a file key unique to the software. A plurality of the encrypted software are collectively stored in a recording medium such as a CD-ROM in advance, and distributed to the software execution unit 601. The distributed encryption software is stored in the encryption software storage unit 603. The encryption software is inactive software that cannot be executed by itself. If execution is desired, the order creation unit 604 specifies the ID of the software of the order, and notifies the order management unit 602 of the ID stored in the execution unit ID storage unit 605 to place the order. This order is practically made using a telephone or the like.
[0009]
In the order manager 602, the file key storage unit 610 stores the file keys of all software using the software ID as an index. The executor encryption key storage unit 611 stores and manages all executor encryption keys using the executor ID as an index. Then, the order manager 602 receiving the order from the software executor 601 obtains the file key of the software of the order from the file key storage unit 610, and the encrypted file key generation unit 612 stores the file key in the corresponding execution unit. Create an encrypted file key by encrypting with the encryption key. Then, the encrypted file key is notified to the software execution unit 601.
[0010]
The software executor 100 that has received the encrypted file key stores it in the encrypted file key storage unit 107. Then, during execution of the software, the encrypted file key decryption unit 108 decrypts the encrypted file key stored in the encrypted file key storage unit 107 with its own encryption key stored in the executor encryption key storage unit 106. To get the file key. The software decryption execution unit 109 decrypts the encrypted software with the file key obtained by the encrypted file key decryption unit 108 and executes the software. It should be noted that the encrypted file key is information that is valid only for the execution unit, and cannot be used even if it is obtained by another person from the communication path or the storage unit.
[0011]
[Problems to be solved by the invention]
However, in the conventional software protection system as described above, if it is assumed that the order of the software and the reception of the encrypted file key are all performed via the telephone, a large amount of information is transmitted by telephone as described below. , Lacks practicality.
[0012]
First, the bit numbers of the file key and the executor encryption key will be described. The file key is a key for encrypting the original software. The executor encryption key is a key for encrypting the file key. Incidentally, the encryption here is generally performed using a secret key block cipher. Examples of the secret key block cipher include DES (Data Encryption Standard), which is the most widely used encryption system in the United States, and FEAL (Fast Data Enforcement Algorithm) developed in Japan after that. Regardless of which of these encryption methods is adopted, it is currently recognized that the number of bits of the key needs to be about 64 bits in order to ensure security. Therefore, each of the file key and the executor encryption key is data of about 64 bits. DES is described in FIP PUB 46, NBS Jan. , 1977; Shimizu & S.M. Miyaguchi: "Fast Data Enhancement Algorithm FEAL", Advances in Cryptology-EUROCRYPT'87, Springer bookstore, respectively, is described in detail.
[0013]
Next, the number of bits of the encrypted file key will be described. The encrypted file key is obtained by encrypting the file key with the execution unit encryption key. As described above, since the file key and the executor encryption key require about 64 bits, the encrypted file key also has a value of about 64 bits. If 64 bits are represented by, for example, a decimal number, it is approximately 20 digits. By the way, the encrypted file key is verbally transmitted by telephone from an operator who operates the order manager 602 to a user who operates the software executor 601. Further, the operator of the software executor 601 needs to input the transmitted encrypted file key to the software executor 601. However, with such a long digit, the possibility of mistakes, misunderstandings, and mistakes in input becomes extremely large, and a practical problem arises.
[0014]
Conversely, if the number of digits of the encrypted file key is reduced in consideration of the above practicality, the number of bits of the file key and the execution encryption key is reduced, and the security is reduced.
[0015]
Further, in the above conventional example, one encrypted file key corresponds to one software order. Therefore, for N software orders, the amount of information to be transmitted is N times.
[0016]
In the above-described conventional example, once the encrypted file key for the software is obtained, the software can be executed any number of times, that is, the execution right is purchased. However, depending on the type of software, it may be more convenient to pay a fee according to the amount of software used. In this mode, for example, execution can be performed a predetermined number of times using the execution right received from the order management device.
[0017]
A first object of the present invention is to reduce the amount of information between a software execution unit and an order management unit without deteriorating security (for example, without reducing the number of bits of a cryptographic key). It is to provide a software protection system that can.
[0018]
A second object of the present invention is that the amount of information between the software executor and the order manager does not depend on the number of software to be ordered (that is, the amount of information when ordering N software is one piece of information). (The amount of information is the same when ordering software).
[0019]
A third object of the present invention is to provide a software protection system that flexibly responds to a conditional execution right such as a limit on the number of times.
[0020]
[Means for Solving the Problems]
The invention according to claim 1 manages one or more software executors that execute the provided software, is connected to each software executor via a communication path, and manages software orders received from each software executor. A software protection system with an order manager
Each software executor
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information of one or more software execution rightsWhen,
Executor ID and order informationTo, Sent to order management device via communication channelThe first sending means to,
The order manager is
Second secret information storage means for storing all the executor secret information stored in each software executor;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and execution right generation is dependent on the obtained executor secret information and the order information received from the software executor. Execution right generation password generation means for generating a passwordWhen,
Execution right generation passwordTo, Sent to software executor via communication channelAnd second sending means,
Each soft executor further
Using the order information stored in the order creation means and the executor secret information stored in the first secret information storage means, an execution right for checking the validity of the execution right generation password received from the order manager. Generated password checking means,
When the execution right generation password checking unit checks the validity of the execution right generation password as a result of the check, the execution right is generated to generate the execution right of the ordered software based on the order information stored and held in the order creation unit. Right generation means;
Software for which execution rights existRealAnd software executing means for executing the software.
[0021]
The invention according to claim 2 is the invention according to claim 1,
The execution right generation password generation unit converts the order information received from the software execution unit and the execution unit secret information obtained from the second secret information storage unit into a data compression function whose output relates to all of the input bits. Input and output the output result of this data compression function as the execution right generation password,
The execution right generation password checking unit uses the order information stored and held in the order creation unit and the executor secret information stored in the first secret information storage unit to perform data compression using the execution right generation password generation unit. Input to the same data compression function as the function, and when the output result matches the execution right generation password received from the order management device, judge that the execution right generation password is valid.You.
[0022]
The invention according to claim 3 is the invention according to claim 1,
The order manager further includes third secret information storage means for storing secret information used for the public key signature scheme,
The execution right generating password generating means uses the secret information stored in the third secret information storing means, the executor secret information obtained from the second secret information storing means, and the order information received from the software executor. , Generate an execution right generation password digitally signed by a public key signature method,
The software executor further includes public information storage means for storing public information corresponding to secret information used for the public key signature scheme,
The execution right generation password checking means,further,Public information stored in public information storage meansInformationThe validity of the execution right generation password received from the order management device is confirmed by the signature confirmation method corresponding to the public key signature method.AlsoInspectYou.
[0023]
The invention according to claim 4 manages one or more software executors that execute the provided software, is connected to each software executor via a communication path, and manages an order of software received from each software executor. A software protection system with an order manager
Each software executor
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
Change value generating means for generating and storing a change value which changes each time order information is created by the order creating meansWhen,
Executor ID,Order information and change valuesTo, Sent to order management device via communication channelThe first sending means to,
Order Manager
Second secret information storage means for storing all the executor secret information stored in each software executor;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and the obtained executor secret information depends on the order information and the change value received from the software executor. Execution right generation password generation means for generating an execution right generation passwordWhen,
Execution right generation passwordTo, Sent to software executor via communication channelAnd a second sending means,
Each soft executor further
The order information is received from the order manager using the order information accumulated and held in the order creation means, the change value accumulated and held in the change value generation means, and the executor secret information stored in the first secret information storage means. Execution right generation password checking means for checking the validity of the execution right generation password,
When the execution right generation password checking unit checks the validity of the execution right generation password as a result of the check, the execution right is generated to generate the execution right of the ordered software based on the order information stored and held in the order creation unit. Right generation means;
Software for which execution rights existRealAnd software executing means for executing the software.
[0024]
The invention according to claim 5 is the invention according to claim 4,
The execution right generation password generation unit converts the order information and the change value received from the software execution unit and the execution unit secret information obtained from the second secret information storage unit into data whose output relates to all of the input bits. Input to the compression function, output the output result of this data compression function as the execution right generation password,
The execution right generation password checking unit compares the order information stored and held in the order creation unit, the change value stored and held in the change value generation unit, and the executor secret information stored in the first secret information storage unit. Input to the same data compression function as the data compression function used by the execution right generation password generation means, and when the output result matches the execution right generation password received from the order management device, the execution right generation password is valid. Judge that there isYou.
[0025]
The invention according to claim 6 manages one or more software executors for executing the provided software, is connected to each software executor via a communication path, and manages an order of software received from each software executor. A software protection system with an order manager
Each software executor
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
First time stamp generating means for generating and accumulating and holding a time stamp each time order information is generated by the order generating meansWhen,
Executor ID and order informationTo, Sent to order management device via communication channelThe first sending means to,
The order manager is
A second time stamp generating means for generating a time stamp upon receiving the executor ID and the order information from the software executor;
Second secret information storage means for storing all the executor secret information stored in each software executor;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and the obtained executor secret information, the order information received from the software executor, and the second Execution right generation password generation means for generating an execution right generation password dependent on the time stamp generated by the time stamp generation meansWhen,
Execution right generation passwordTo, Sent to software executor via communication channelAnd second sending means,
Each soft executor further
Order management using the order information stored and held in the order creation means, the time stamp stored and held in the first time stamp generation means, and the executor secret information stored in the first secret information storage means. Execution right generation password checking means for checking the validity of the execution right generation password received from the device;
When the execution right generation password checking unit checks the validity of the execution right generation password as a result of the check, the execution right is generated to generate the execution right of the ordered software based on the order information stored and held in the order creation unit. Right generation means;
Software for which execution rights existRealAnd software executing means for executing the software.
[0026]
The invention according to claim 7 manages one or more software executors that execute the provided software, is connected to each software executor via a communication path, and manages software orders received from each software executor. A software protection system with an order manager
Each software executor
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
Order authentication information generation means for generating, storing and holding order authentication information depending on order information and executor secret informationWhen,
Executor ID,Order information and order authentication informationTo, Sent to order management device via communication channelThe first sending means to,
The order manager is
Second secret information storage means for storing all the executor secret information stored in each software executor;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and the obtained executor secret information, the order information and the order authentication information received from the software executor are used. Executing the software execution unit and the order information, and if the authentication result is valid, an execution unit authentication unit that treats the order authentication information as order identification information for identifying the order;
Execution right generation password generation means for generating an execution right generation password depending on order information and order identification information only when the authentication result in the execution unit authentication means is validWhen,
Execution right generation passwordTo, Along with order identification information, sent to software executor via communication channelIncluding the second sending means,
Each soft executor further
An execution right generation password for checking the validity of the execution right generation password received from the order manager using the order information stored and held in the order creation means and the order authentication information stored and held in the order authentication information generation means. Inspection means;
When the execution right generation password checking unit checks the validity of the execution right generation password as a result of the check, the execution right is generated to generate the execution right of the ordered software based on the order information stored and held in the order creation unit. Right generation means;
Software for which execution rights existRealAnd software executing means for executing the software.
[0027]
The invention according to claim 8 is the invention according to claim 7,
The order authentication information generating means converts the order information created by the order creating means and the executor secret information stored in the first secret information storing means into a data compression function such that the output relates to all of the input bits. And outputs the output result of this data compression function as order authentication information,
The executor authentication unit converts the executor secret information obtained from the second secret information storage unit and the order information received from the software executor into the same data compression function as the data compression function used in the order authentication information generation unit. If the output result of this data compression function matches the order authentication information received from the software executor, authenticate the software executor that made the order and that the order information is valid,
The execution right generation password generation means inputs the order information and the order identification information received from the software executor to the same data compression function as the data compression function used in the order authentication information generation means, and outputs the data compression function. Is output as the execution right generation password,
The execution right generation password checking unit compares the order information stored and held in the order creation unit and the order authentication information stored and held in the order authentication information generation unit with the same data compression function used in the order authentication information generation unit. When input to the data compression function and the output result matches the execution right generation password received from the order management device, the execution right generation password is determined to be valid.You.
[0028]
According to a ninth aspect of the present invention, one or more software executors for executing the provided software are connected to each software executor via a communication path, and manage the order of software received from each software executor. A software protection system with an order manager
Each software executor
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
A change value generating unit that changes each time order information is created by the order creating unit, generates a change value having a predetermined data structure or meaning, accumulates and holds,
An order authentication information generating means for obtaining a value dependent on the order information and the executor secret information, and converting a change value by the obtained value to generate and store and hold the order authentication information;When,
Executor ID,Order information and order authentication informationTo, Sent to order management device via communication channelAnd a first sending means to
The order manager is
Second secret information storage means for storing all the executor secret information stored in each software executor;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and a value depending on the obtained executor secret information and the order information from the software executor is obtained. Reverse conversion means for reverse converting the order authentication information from the software execution device using this value,
When the output of the inverse conversion means has the same data structure or meaning as the change value, an execution unit authentication means for authenticating that the software execution unit and the order information are valid,
An execution right generation password generation unit that generates an execution right generation password depending on order information only when the authentication result of the execution unit authentication unit is valid.When,
Execution right generation passwordTo, Sent to software executor via communication channelAnd second sending means,
Each soft executor further
An execution right generation password for checking the validity of the execution right generation password received from the order manager using the order information stored and held in the order creation means and the order authentication information stored and held in the order authentication information generation means. Inspection means;
When the execution right generation password checking unit checks the validity of the execution right generation password as a result of the check, the execution right is generated to generate the execution right of the ordered software based on the order information stored and held in the order creation unit. Right generation means;
Software for which execution rights existRealAnd software executing means for executing the software.
[0029]
The invention according to claim 10 is the invention according to claim 9, wherein
The order authentication information generating means compresses the order information created by the order creating means and the executor secret information stored in the first secret information storage means such that the output relates to all of the input bits. Input to the function, output the exclusive OR of the output result and the change value as order authentication information,
The inverse conversion means inputs the order information from the software executor and the executor secret information obtained from the second secret information storage means to the same data compression function as the data compression function used in the order authentication information generation means. By performing an exclusive OR operation on the output result and the order authentication information from the software execution unit, the order authentication information is inversely transformed,
The execution right generation password generation means inputs the order information and the order identification information received from the software executor to the same data compression function as the data compression function used in the order authentication information generation means, and outputs the data compression function. Is output as the execution right generation password,
The execution right generation password checking unit compares the order information stored and held in the order creation unit and the order authentication information stored and held in the order authentication information generation unit with the same data compression function used in the order authentication information generation unit. When input to the data compression function and the output result matches the execution right generation password received from the order management device, the execution right generation password is determined to be valid.You.
[0030]
The invention according to claim 11 is the invention according to claim 7 or 9,
The execution right generation password generation means generates an execution right generation password dependent on the execution unit secret information obtained from the second secret information storage unit, in addition to the order information received from the software execution unit,
The execution right generation password checking unit uses the order information accumulated and held in the order creation unit and the execution unit secret information stored in the first secret information storage unit to execute the execution right generation password received from the order management unit. Check password validityYou.
[0031]
The invention according to claim 12 is the invention according to claim 7 or 9,
The order manager further includes third secret information storage means for storing secret information used for the public key signature scheme,
The execution right generation password generation means includes: secret information stored in the third secret information storage means; executor secret information obtained from the second secret information storage means; order information and order authentication received from the software executor. Using the information, generate an execution right generation password digitally signed by a public key signature method,
The software executor further includes public information storage means for storing public information corresponding to secret information used for the public key signature scheme,
The execution right generation password checking means,further,Public information stored in public information storage meansWhen,Using the executor secret information stored in the first secret information storage means, the validity of the execution right generation password received from the order manager is confirmed by a signature confirmation method corresponding to the public key signature method.AlsoInspectYou.
[0032]
The invention according to claim 13 manages one or more software executors that execute the provided software, is connected to each software executor via a communication path, and manages software orders received from each software executor. A software protection system with an order manager
Each software executor
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information of one or more software execution rightsWhen,
Executor ID and order informationTo, Sent to order management device via communication channelAnd a first sending means to
The order manager is
First module storage means for storing a first execution right generation module;
Second secret information storage means for storing all the executor secret information stored in each software executor;
First calculating means for calculating a value dependent on order information from the software executor and executor secret information obtained from the second secret information storage means;
An execution right generation password generation unit that generates an execution right generation password by converting a first execution right generation module using the calculation result of the first calculation unitWhen,
Execution right generation passwordTo, Sent to software executor via communication channelAnd a second sending means,
Each soft executor further
Second module storage means for storing a second execution right generation module;
Second calculating means for calculating a value dependent on the order information stored and held in the order creating means and the executor secret information stored in the first secret information storing means;
An execution right generation password reverse conversion unit that generates a first execution right generation module by inversely converting the execution right generation password from the order manager using the calculation result of the second calculation unit;
Using the first execution right generation module generated by the execution right generation password reverse conversion unit and the second execution right generation module stored in the second module storage unit, the order execution unit stores and holds the execution right generation module. Execution right generation means for generating software execution right based on the received order information;
Module erasing means for erasing the first execution right generation module after execution right generation;
Software for which execution rights existRealAnd software executing means for executing the software.
[0033]
The invention according to claim 14 is the invention according to claim 13,
The first execution right generation module stored in the first module storage means has a predetermined data structure and meaning,
The execution right generation module is configured to execute the first execution right generation module and the second execution right generation module only when the inverse conversion result of the execution right generation password reverse conversion unit has the same data structure and meaning as the first execution right generation module. A software execution right based on the order information stored and held in the order creation means by using the execution right generation module ofYou.
[0035]
Claim 15The invention according to claims 1 to 14In the invention according to any of the above,
The software provided to the software executor is encrypted including software-specific information,
The execution right generation means decrypts the encrypted software corresponding to the order information stored and held in the order creation means when the execution right generation password checking means confirms the validity of the execution right generation password from the order management device. By obtaining the software-specific information and encrypting the obtained software-specific information with the executor secret information, an execution right of the ordered software is generated,
The software execution means decrypts the encrypted software corresponding to the order information stored and held in the order creation means to obtain the software and software unique information, and decrypts the execution right using the executor secret information to decrypt the software unique information. Information, and execute the decrypted software only if the software-specific information obtained by decryption matches.You.
[0036]
Claim 16The invention according to claims 1 to 14In the invention according to any of the above,
The order creation means stores and holds the created order information in a nonvolatile manner, and deletes the order information after the execution right creation means generates the execution right of the corresponding software.You.
[0037]
Claim 17The invention according to claims 1 to 14In the invention according to any of the above,
The software executor and the order manager each maintain a history of information exchanged between them.You.
[0038]
Claim 18The invention according to claims 1 to 14In the invention according to any of the above,
The software executor and the order manager maintain the codes corresponding to all software combinations as tables,
The software executor sends the code obtained from the table to the order management device as order information.You.
[0039]
[Action]
According to the first aspect of the present invention, the software execution unit generates an execution unit ID and order information and sends them to the order management unit to order software. The order management unit generates an execution right generation password, which is information dependent on the received order information and the execution unit secret information corresponding to the execution ID, and sends it to the software execution unit. The software executor determines whether the execution right generation password is consistent with the order information previously sent to the order management device or its own executor secret information. An execution right for software corresponding to the information is generated, and the software is executed. As described above, only the execution right generation password, that is, the information that gives permission for the software execution unit to generate the software execution right corresponding to the order information is sent from the order management device to the software execution device. The number of digits can be reduced as compared with the case of sending the data itself. Even if the software executor orders a plurality of software at one time, the amount of information is the same as the amount of information when one software is ordered.
[0040]
In the invention according to claim 2, the order manager inputs the order information received from the software executor and the executor secret information corresponding to the executor ID to a predetermined data compression function (for example, a hash function). The output result of this data compression function is output as an execution right generation password. On the other hand, the soft executor inputs the order information stored and held therein and its own executor secret information to the same data compression function as described above, and the output result is the execution right received from the order manager. When the password matches the generated password, it is determined that the execution right generated password is valid. As described above, since the execution right generation password is generated using the data compression function, the number of digits can be further reduced.
[0041]
In the invention according to claim 3, the order manager holds the secret information used for the public key signature scheme, the secret information, the executor secret information corresponding to the executor ID, and the order received from the software executor. Using the information, an execution right generation password digitally signed by a public key signature scheme is generated. On the other hand, the software executor holds the public information corresponding to the secret information used in the public key signature scheme, and uses the public information, the order information, and its own executor secret information to perform the public key signature scheme. The validity of the execution right generation password received from the order management device is checked by the signature confirmation method corresponding to (1). As described above, since the execution right generation password digitally signed is sent to the software execution unit, it is almost impossible to forge the execution right generation password on the software execution unit side, and the extremely secure software protection is realized. The system can be realized.
[0042]
In the invention according to claim 4, a change value that changes each time order information is created is sent from the software execution unit to the order management unit together with the order information. Then, the order manager generates an execution right generation password depending on the executor secret information, the order information, and the change value, and sends it to the order manager. The software executor checks the validity of the execution right generation password using the order information, the change value, and the executor secret information. Therefore, the execution right generation password from the order manager becomes valid only in the software executor holding the corresponding change value. Therefore, even if you create the same order at different times and enter the previous execution right generation password, the change value generated at the time of the subsequent order is different from the change value generated at the time of the previous order, The entered password is not valid.
[0043]
In the invention according to claim 5, the order manager inputs the order information, the change value, and the executor secret information to a data compression function such as a hash function, and uses an output result of the data compression function as an execution right generation password. Output. On the other hand, the software executor inputs the order information, the change value, and the executor secret information held therein to the same data compression function as described above, and outputs the execution right generation password received from the order manager. When it matches, the execution right generation password is determined to be valid. As described above, since the execution right generation password is generated using the data compression function, the number of digits can be further reduced.
[0044]
In the invention according to claim 6, a time stamp is used instead of the change value in claim 4. Since the time stamp is held in common by the software execution unit and the order management unit, it is not necessary to send a change value from the software execution unit to the order management unit.
[0045]
In the invention according to claim 7, by introducing the order authentication information depending on the order information and the executor secret information, the order management device authenticates the order information and the software executor before issuing the execution right generation password. It can be carried out. If the authentication result is OK, the order manager treats the order authentication information as order identification information for identifying the order, generates an execution right generation password depending on the order information and the order identification information, and generates a software. Send to executor. The software executor checks the validity of the execution right generation password received from the order manager using the order information and the order authentication information held therein, and when the check result is OK, the software execution is executed. Generate rights and execute the corresponding software.
[0046]
In the invention according to claim 8, the software execution unit inputs the order information and the execution unit secret information to a data compression function such as a hash function, and obtains an output result of the data compression function as order authentication information. In addition, the order manager inputs the executor secret information and the order information received from the software executor to the same data compression function as described above, and the output result matches the order authentication information received from the software executor. If so, the software executor and the order information are authenticated as valid. Further, the order manager inputs the order information and the order identification information to the same data compression function as described above, outputs the output result of this data compression function as an execution right generation password, and sends it to the software execution unit. On the other hand, the software execution unit inputs the order information and the order authentication information to the same data compression function as described above, and when the output result matches the execution right generation password from the order management unit, the execution right generation password Judge as legitimate.
[0047]
In the invention according to claim 9, the software execution unit converts a change value that changes every time order information is created and has a predetermined data structure or meaning with a value that depends on the order information and the execution unit secret information. , Generate order authentication information. The order authentication information is sent to the order management device together with the execution device ID and the order information. The order manager obtains a value depending on the executor secret information corresponding to the executor ID and the order information from the software executor, and uses this value to inversely convert the order authentication information from the software executor, If the result of the inverse conversion has the same data structure or meaning as the change value, it verifies that the software executor and the order information are valid. Then, only when the authentication result is valid, the order management device generates an execution right generation password depending on the order information and sends it to the software execution device. The software executor checks the validity of the execution right generation password received from the order management device using the order information and the order authentication information held therein, and when the validity of the execution right generation password is confirmed. Then, the execution right of the ordered software is generated. With such a configuration, the number-of-times limiting function and the user authentication function can be realized without increasing the amount of information exchanged between the software execution unit and the order management unit.
[0048]
In the invention according to claim 10, the software execution unit inputs the order information and the execution unit secret information to a data compression function such as a hash function, and uses the exclusive OR of the output result and the change value as the order authentication information. It has gained. The order manager inputs the order information from the software executor and the executor secret information corresponding to the executor ID to the same data compression function as described above, and outputs the result and the order authentication information from the software executor. By performing an exclusive OR operation on the order authentication information, the order authentication information is inversely converted. Further, the order manager inputs the order information and the order identification information from the software executor to the same data compression function as described above, and outputs the output result of this data compression function as an execution right generation password. I have. The software executor inputs the order information and order authentication information held therein to the same data compression function as described above, and when the output result matches the execution right generation password received from the order management device, It is determined that the execution right generation password is valid.
[0049]
In the invention according to claim 11, the order management device generates an execution right generation password depending on the order information received from the software execution device and the execution device secret information corresponding to the execution device ID. On the other hand, the software executor checks the validity of the execution right generation password received from the order manager using the order information and the executor secret information held therein.
[0050]
In the invention according to claim 12, the order management device communicates secret information used in the public key signature scheme, executor secret information corresponding to the executor ID, and order information and order authentication information received from the software executor. To generate an execution right generation password digitally signed by a public key signature method and send it to the software execution unit. The software executor uses the public information corresponding to the secret information used in the public key signature scheme, and the order information, order authentication information and the executor secret information held therein, and performs the signature corresponding to the public key signature scheme. The validity of the execution right generation password received from the order management device is checked by the confirmation method. As described above, since the execution right generation password digitally signed is sent to the software execution unit, it is almost impossible to forge the execution right generation password on the software execution unit side, and the extremely secure software protection is realized. The system can be realized.
[0051]
In the invention according to claim 13, the execution right cannot be generated only by the second execution right generation module stored in the software execution unit. The order manager converts the first execution right generation module for activating the second execution right generation module into a form depending on the order information from the software execution unit and the execution unit secret information, and executes the execution right. Send as a generated password. On the software executor side, if the order information and the executor are correct, the second execution right generation module stored therein can be activated using this execution right generation password. In this case, even if the software executor attempts to generate an execution right illegally, the information cannot be used in the second execution right generation module in terms of the amount of information. Therefore, a more secure software protection system can be realized.
[0052]
In the invention according to claim 14, the first execution right generation module stored in the order management unit has a predetermined data structure and meaning, and the software execution unit determines that the inverse conversion result of the execution right generation password is the first conversion result. The software execution right is generated using the first execution right generation module and the second execution right generation module only when the data has the same data structure and meaning as the execution right generation module.
[0053]
In the invention according to claim 15, the order manager uses the secret information used for the public key signature scheme and the calculation result of the first calculation means that is a value dependent on the order information and the executor secret information, By converting the first execution right generation module, an execution right generation password digitally signed by a public key signature method is generated. On the other hand, the software executor uses the public information corresponding to the secret information used in the public key signature scheme and the calculation result of the second calculating means, which is a value dependent on the order information and the executor secret information, to obtain the public key. The execution right generation password from the order manager is inversely converted by the signature confirmation method corresponding to the signature method.
[0054]
In the invention according to claim 16, the software provided to the software execution unit is encrypted including the software-specific information. Then, when confirming the validity of the execution right generation password from the order management device, the software execution device obtains software-specific information by decrypting the encryption software corresponding to the order information held therein, The right to execute the ordered software is generated by encrypting the acquired software unique information with the executor secret information. Also, the software executor obtains the software and software unique information by decrypting the encrypted software corresponding to the order information held therein, and decrypts the execution right using the executor secret information to obtain the software unique information. Information is obtained, and the decrypted software is executed only when the software-specific information obtained by the decryption matches.
[0055]
In the invention according to claim 17, the software execution unit stores and stores the created order information in a nonvolatile manner, and deletes the order information after generating the execution right of the corresponding software. Thus, it is possible to send only the order continuously for the time being, and control the execution of the software based on the execution right generation password returned later.
[0056]
In the invention according to claim 18, the software execution unit and the order management unit hold a history of information exchanged between them. This makes it possible to flexibly deal with troubles that occur later.
[0057]
In the invention according to claim 19, the software execution device and the order management device hold codes corresponding to all combinations of software as a table, and the software execution device orders the code obtained from the table as order information. It is sent to the management device. Thereby, the data amount of the order information can be further reduced.
[0058]
【Example】
(1) First embodiment
FIG. 1 is a block diagram showing the configuration of the software protection system according to the first embodiment of the present invention. In FIG. 1, the software protection system of the present embodiment includes a software execution unit 101 that executes software, and an order management unit 102 that distributes software to the software execution unit 101.
[0059]
The software executor 101 stores an encrypted software storage unit 3, an order creation unit 4, an execution unit ID storage unit 5, and an execution unit encryption key (an example of execution unit secret information) corresponding to the execution unit ID. Device encryption key storage unit 6, an execution right generation password checking unit 7 for checking the validity of the execution right generation password received from the order management unit 102, and an execution right using the execution device encryption key based on the order information. An execution right generation unit 8 for generating, an execution right storage unit 9 for storing the generated execution right, and a software decryption execution unit for decrypting and executing the encrypted software when the corresponding execution right is valid when executing the software 10 is included. In the software execution unit 101 having such a configuration, the order information created by the order creation unit 4 and the execution unit ID are transmitted to the order management unit 102, and the execution right generation password for executing the encryption software is transmitted. Required.
[0060]
On the other hand, the order management unit 102 includes an execution unit encryption key storage unit 11 storing the execution unit encryption keys of all the software execution units, and an execution right depending on the order information and the execution unit encryption key of the corresponding software execution unit. An execution right generation password generation unit 12 that generates a generation password.
[0061]
Next, the operation of the software protection system of the first embodiment shown in FIG. 1 will be described. In the following description, communication between the software execution unit 101 and the order management unit 102 is performed by a person who operates them via a telephone.
[0062]
First, a method for generating encrypted software will be described. A unique authenticator authA is defined for the software SoftA. Then, SoftA and the authenticator authA are combined, and the combined data is encrypted using common secret information S (not shown) in the system to generate encrypted software. In terms of the expression, the encryption software ESSoftA is
ESSoftA = E (S, authA‖SoftA)
It becomes. In the above equation, E (S, *) indicates a cryptographic function using S as a key, and ‖ indicates a combination. Similarly, for the other software SoftB, encryption software is created in correspondence with the unique authenticator authB. Hereinafter, a plurality of encryption software created by the same procedure are stored in, for example, one CD-ROM and distributed to the software execution unit 101 in advance. In the embodiment shown in FIG. 1, the encryption software is stored in the encryption software storage unit 3.
[0063]
By operating the software executor 101, the user of the software executor 101 designates the software desired to be executed from the software stored in the encrypted software storage unit 3. For example, software A and software C. In response, order creation unit 4 generates corresponding order information. This order information is temporarily stored in the order creation unit 4. Then, the user of the software execution unit 101 sends the order information and the execution unit ID unique to the software execution unit 101 (stored in the execution unit ID storage unit 5) to the operator of the order management unit 102 by telephone. Notice. This completes the order.
[0064]
When the order information notified from the software execution unit 101 is input, the execution right generation password generation unit 12 in the order management unit 102 first performs authentication (or user authentication) of the software execution unit 101 that has placed the order. Next, the encryption key of the corresponding software execution unit 101 is obtained from the execution unit encryption key storage unit 11. Next, the execution right generation password generation unit 12 combines the order information received from the software execution unit 101 with the execution unit encryption key obtained from the execution unit encryption key storage unit 11, and determines the combined data in advance. Input to the hash function. The output of this hash function is transmitted to the user of the software execution unit 101 by telephone as an execution right generation password.
[0065]
Here, the hash function is a data compression type cryptographic process, whose output depends on all the bits of the input, and has a property that a different input pair having the same output cannot be easily found. I have. The specific configuration method is described in detail in, for example, “Modern Cryptography Theory” by Ikeno and Koyama, pages 224 to 225 published by the Institute of Electronics, Communication and Communication Engineers. The hash function used in this embodiment is, for example, a function that compresses an input into a value of about 10 decimal digits.
[0066]
The user of the software executor 101 inputs the execution right generation password received by telephone to the execution right generation password checking unit 7. This execution right generation password checking unit 7 stores the same hash function as that used in the order management unit 102. Then, the execution right generation password checking unit 7 combines the hash information with the order information stored in the order creation unit 4 and the execution unit encryption key stored in the execution unit encryption key storage unit 6. Enter the data. Next, the execution right generation password checking unit 7 compares the output result of the hash function with the execution right generation password obtained from the order manager 102. At this time, the order information stored in the order creation unit 4 is different from the content actually transmitted to the order management unit 102, or the execution unit encryption key stored in the software execution unit 101 is If it is different from the executor encryption key obtained in 102, the result of this comparison is NG (mismatch).
[0067]
The execution right generation unit 8 is activated and generates an execution right only when the check result of the execution right generation password check unit 7 is OK (match). The method is as follows. First, the execution right generation unit 8 refers to the order information stored in the order creation unit 4, and extracts the corresponding encryption software from the encryption software storage unit 3. For example, assuming that ESSoftA is extracted as encryption software, the execution right generation unit 8 decrypts the extracted encryption software ESSoftA using a common secret key S (not shown) in the system, and An authenticator authA is obtained. Next, the execution right generation unit 8 encrypts the authenticator authA using the execution unit encryption key stored in the execution unit encryption key storage unit 6, and authenticates the authenticator obtained by this encryption to the execution right. And stored in the execution right storage unit 9. In general, in the case of the soft executor X having a specific executor encryption key Sx, the execution right of the software A is E (Sx, authA). Since this execution right is encrypted with the encryption key Sx unique to the execution unit X, even if a general memory that is not protected from being read from the outside is used as the execution right storage unit 9, there is no security leak. No problem arises.
[0068]
When executing the software A, the software decryption execution unit 10 first decrypts the encrypted software ESSoftA using a common secret key S in the system, and obtains an authenticator authA and SoftA. Next, the software decryption execution unit 10 extracts the execution right E (Sx, authA) corresponding to the software A from the execution right storage unit 9. Next, the soft decryption execution unit 10 compares the value obtained by decrypting the execution right E (Sx, authA) with the executor encryption key Sx and the authenticator obtained earlier. Then, the software decryption execution unit 10 executes the software SoftA when they match.
[0069]
As described above, in the first embodiment of the present invention, the execution right generation (corresponding to the generation of an encrypted file key in the conventional example) performed by the order manager in the conventional system is performed by the software execution unit. The side is doing. That is, in the present embodiment, the order manager 102 has a function of only giving the execution right generation unit 8 permission to start. Here, since the execution right generation password serving as the permission information is an output of a hash function depending on the order information and the encryption key of the execution unit, it can be realized with a value of about 10 decimal digits, The number of input errors is reduced, and the user interface is improved. Also, authentication of the order information and the executor becomes possible. Further, since the order manager 102 only gives the permission to start to the execution right generation unit 8, the execution right generation password can always be realized with a small number of digits without depending on the number of software to be ordered.
[0070]
Next, in the software protection system of the first embodiment, security against fraudulent activities will be described. In the system of the first embodiment, when the order manager 102 receives an order from the software executor 101 and issues an execution right generation password for the order, a charge corresponding to the order is made. As a method of payment, generally, a method such as credit will be adopted. Therefore, if it is difficult for the software executor 101 to generate an unauthorized execution right that is not subject to billing, the security of the system is high.
[0071]
First, as an external attack for generating an unauthorized execution right, the execution right generation unit 8 in the software execution unit 101 may be operated alone. Further, an attack may be considered in which the execution right generation unit 8 creates an execution right of software other than the order created by the order creation unit 4. These attacks can be dealt with by preventing the user from changing each component in the software execution unit 101.
[0072]
In the first embodiment, the execution right generation unit 8 is activated only after a series of operations in which an order is placed in the order creation unit 4 and the corresponding execution right generation password is checked next. That is, in the first embodiment, it is not possible to make a change so that only the execution right generation unit 8 operates alone. In the first embodiment, the execution right generation password check and the execution right generation unit 8 alone cannot be operated except for the order creation from the above series of operations. Further, when the order information created by the order creation unit 4 is used by the execution right generation password checking unit 7 and the execution right generation unit 8, the user cannot change the contents of the order information in any of them. Therefore, in the first embodiment, the execution right is not generated even if the above-mentioned unauthorized attack is performed.
[0073]
Considering that it is very common that the software executor 101 is a special-purpose device or that the program in the software executor is realized on a CD-ROM or the like, it is very easy for the user to execute the software executor. The fact that each of the constituent elements cannot be changed is realistic.
[0074]
Also, in order to execute software illegally, enter the execution right generation password received for one order as the execution right generation password for another order, or execute the software execution unit other than the software execution unit that placed the order There is also an attack that attempts to enter the password. However, in the system of the first embodiment, the execution right generation password is a value dependent on the order information and the execution unit encryption key. Therefore, when the order information and the software execution unit are different, the execution right generation password is not changed. Inspection does not pass. Therefore, the first embodiment can cope with such an unauthorized attack.
[0075]
Furthermore, in order to illegally execute software, an attack may be considered in which a password having an appropriate value is brute force input for an execution right generation password of a certain order. However, in the first embodiment, the number of digits of the password is set to about 10 in decimal, so that even if an unauthorized user tries to input the password appropriately, the probability that the password accidentally passes through the inspection unit 7 is obtained. Is actually considered to be close to zero. Therefore, the first embodiment can cope with such an attack.
[0076]
Further, in order to illegally execute the software, the user may forge the execution right generation password. This can be dealt with by using, for example, a public key signature method. When the public key signature method is used, a private key of the order manager 102 is required to generate the execution right generation password, so that a general user cannot forge the password. In addition, a method of not disclosing a procedure (operation) for issuing an execution right generation password can be dealt with. In the first embodiment, the execution right generation password checking unit 7 in the software execution unit 2 checks the execution right generation password in the same procedure as the generation of the execution right generation password. Is not published. Furthermore, since the execution right generation password checking unit 7 cannot be used alone (that is, the components in the software execution unit 101 can be changed), the problem of password forgery does not occur.
[0077]
When the execution right storage unit 9 is configured using a general memory having no read protection function, the execution right stored in the execution right storage unit 9 is analyzed to generate the execution right illegally. It is also conceivable. However, in the first embodiment, the execution right stored in the execution right storage unit 9 is encrypted with the corresponding encryption key of the software execution unit 101, and the execution unit encryption key is set to about 64 bits. The execution right cannot be easily analyzed. Further, by preventing the user from observing the executor encryption key or not disclosing the decryption process to the user, security can be further improved.
[0078]
From the above description, it can be seen that it is practically impossible to forge the execution right on the software execution unit 101 side.
[0079]
It should be noted that the system of the first embodiment is configured as a system in which the user can use the execution right an infinite number of times when the user obtains the execution right, that is, a “execution right purchase type” system. Therefore, the execution right generation password for the same order information may be input a plurality of times.
[0080]
(2) Second embodiment
FIG. 2 is a block diagram showing the configuration of the software protection system according to the second embodiment of the present invention. The second embodiment is different from the “execution right purchase type” system as in the first embodiment, and is effective when a condition such as the number of executions is added to the software execution right.
[0081]
By the way, in order to limit the number of executions of the ordered software, the execution right generation password must be valid only at the first input. This is because the following inconvenience arises if it is effective at the time of the second and subsequent inputs. For example, a software executor is software ARealIt is assumed that an order to be executed is created, and an execution right generation password for the order is obtained from the order manager. When this password is entered into the software executor, the software ARealAn execution right that can be executed is generated. Then this execution rightGanaAt that point, the software A again runs on the same software executor.RealCreate an order to place and enter your previous password without placing an order in the Order Manager. If this password becomes valid, the software AFruitWhen authority is generated, the limit on the number of executions is practically meaningless.
[0082]
Therefore, in the second embodiment, in order to make the execution right generation password valid only at the first input, a value that changes for each order is introduced in addition to the configuration of the first embodiment. That is, in the second embodiment, for each order information, a change value whose value changes each time is generated, and only the execution right generation password corresponding to this change value is made valid. There are various methods for realizing the change value that changes for each order. In the second embodiment, a random number is generated for each order, and this random number is used as a change value that changes for each order.
[0083]
In FIG. 2, the software protection system of this embodiment includes a software execution unit 201 that executes software, and an order management unit 202 that distributes software to the software execution unit 201. The software executor 201 includes an encrypted software storage unit 3, an order creation unit 4, an execution unit ID storage unit 5, an execution unit encryption key storage unit 6, an execution right It includes a generation unit 8, an execution right storage unit 9, and a software decryption execution unit 10. Further, the software execution unit 201 includes a random number generator 20 that is activated every time an order is placed, and an execution right generation password check that verifies the validity of the received execution right generation password using the order information, the execution unit encryption key, and the random number data. Unit 21.
[0084]
On the other hand, the order management unit 202 includes the execution unit encryption key storage unit 11 having the same configuration as the embodiment of FIG. Further, the order manager 202 uses the order information and the random number sent from the software executor 201 and the encryption key of the software executor 202 obtained from the executor encryption key storage unit 11 to execute all of them. An execution right password generation unit 22 that generates a right generation password is included.
[0085]
As described above, in the second embodiment, a new random number is generated for each order. Then, the user of the software execution unit 201 notifies the operator of the order management unit 202 of this random number in addition to the order information and the execution unit ID in the first embodiment by telephone. The random number has a value of about 10 decimal digits in order to improve the user interface.
[0086]
The execution right generation password generation unit 22 in the order management unit 202 generates data obtained by combining order information, a random number, and an execution unit encryption key of the corresponding software execution unit 201 with a hash function similar to that used in the first embodiment. Enter Then, the 10-digit decimal value, which is the output result of the hash function, is notified to the user of the software execution unit 201 by telephone as an execution right generation password.
[0087]
The user of the software execution unit 201 that has received the notification inputs the execution right generation password into the execution right generation password checking unit 21 of the software execution unit 201. The execution right generation password checking unit 21 combines the order information and the random number obtained from the order creation unit 4 and the random number generation unit 20 with the executor encryption key obtained from the order management unit 202, and uses it in the order management unit 202. To a hash function similar to the hash function you are doing. Then, the execution right generation password checking unit 21 compares the output result of the hash function with the input execution right generation password, and activates the execution right generation unit 8 only when both match. Subsequent operations are the same as those in the first embodiment, and a description thereof will be omitted.
[0088]
In the second embodiment, a new random number is automatically generated for each order. In the case of a formal procedure, the order management unit 202 issues an execution right generation password depending on the random number (= value that changes for each order). This execution right creation password is valid only in the software execution unit 201 that holds the corresponding random number. Therefore, since the random number at the time of generating the second and subsequent orders is different from the random number generated at the time of generating the first order, the execution right generation password obtained at the time of generating the first order cannot be illegally used more than once. . In the second embodiment, in addition to the measures for ensuring the security described in the first embodiment, it is preferable that the user cannot change or set the random number without permission.
[0089]
In the second embodiment, the previous random number is configured to remain until a new order is created. However, if it is possible to save the order once, the execution right May be cleared or updated at the stage when is generated. This further enhances security.
[0090]
(3) Third embodiment
FIG. 3 is a block diagram showing the configuration of the software protection system according to the third embodiment of the present invention. The third embodiment is obtained by adding efficient execution unit authentication to the first embodiment. In FIG. 3, the software protection system according to the third embodiment includes a software execution unit 301 that executes software, and an order management unit 302 that distributes software to the software execution unit 301.
[0091]
The software executor 301 includes an encrypted software storage unit 3, an order creation unit 4, an executor ID storage unit 5, an executor encryption key storage unit 6, and a configuration similar to that of the first embodiment. An execution right generation unit 8, an execution right storage unit 9, and a software decryption execution unit 10 are included. Further, the software execution unit 301 generates an order authentication information generation unit 30 that generates order authentication information depending on the order information and the execution unit encryption key, and checks the validity of the execution right generation password received from the order management unit 302 with the order information. , An execution right generation password checking unit 31 for checking using an execution unit encryption key and order authentication information.
[0092]
On the other hand, the order manager 302 includes an execution unit encryption key storage unit 11 having the same configuration as that of the embodiment of FIG. Further, the order manager 302 authenticates the software executor using the order information and the order authentication information received from the software executor 301 and the executor encryption key obtained from the executor encryption key storage unit 11. When the execution unit authentication result is OK, the authentication unit 32 uses the order authentication information as order identification information for identifying the order information, and further generates the execution right using the order information and the order identification information (= order authentication information). And an execution right generation password generation unit 33 for generating a password.
[0093]
Next, the operation of the software protection system according to the third embodiment shown in FIG. 3 will be described. First, when order information is created by the order creation unit 4 of the software execution unit 301, the order authentication information generation unit 30 converts the order information and the execution unit encryption code into the same hash function as used in the first embodiment. The data obtained by combining the execution unit encryption key obtained from the key storage unit 6 is input. Then, the user of the software execution unit 301 transmits the output result of the hash function as order authentication information to the operator of the order management unit 302 by telephone in addition to the order information and the execution unit ID. The order information and the order authentication information are stored in the order creation unit 4 and the order authentication information generation unit 30, respectively.
[0094]
In the order manager 302, first, the executor authentication unit 32 searches the executor encryption key storage unit 11 using the executor ID received from the software executor 301 as a key, and executes the executor encryption key of the corresponding software executor 301. To win. Next, the executor authentication unit 32 inputs the data obtained by combining the order information and the executor encryption key received from the software executor 301 into a hash function similar to that used in the software executor 301. Next, the execution unit authentication unit 32 compares the output result of the hash function with the order authentication information received from the software execution unit 301. Then, only when the comparison results match, the executor authentication unit 32 determines that the other party is the correct executor and has placed the correct order, and uses the order authentication information as order identification information for identifying the order, for example, Used to manage and exchange order information and related information. In addition, the execution right generation password generation unit 33 inputs data obtained by combining the order information and the order identification information (= order authentication information) to the same hash function as described above. Then, the operator of the order manager 302 notifies the user of the software executor 301 of the output result of the hash function as an execution right generation password by pairing with the order identification information.
[0095]
The user of the software executor 301 inputs the transmitted execution right generation password to the execution right generation password checking unit 31. In response, the execution right generation password checking unit 31 inputs data obtained by combining the order information stored in the order creation unit 4 and the order authentication information stored in the order authentication information generation unit 30 into a hash function, and It checks whether the output result matches the input execution right generation password. Then, the execution right generation password check unit 31 activates the execution right generation unit 8 only when the check results match. Subsequent operations are the same as in the first embodiment, and a description thereof will be omitted.
[0096]
In the third embodiment, the order manager 302 authenticates the order information and the software executor before issuing the execution right generation password. In an actual system, an authentication function is required in any case because charging is performed according to an order. Although this authentication function can be provided separately from the order, for example, in a method in which a challenge is performed and authentication is performed by responding to the challenge, the exchange of the challenge and the response actually causes the user of the software execution device to have a considerable effect. Burden. Therefore, in the third embodiment, the order information and the authentication of the software executor are efficiently performed simultaneously with the order. Therefore, in the third embodiment, order authentication information dependent on the order information and the encryption key of the execution unit is introduced. Then, the order authentication information is transmitted to the order management unit 302 in addition to the order information and the execution unit ID. Since the order authentication information is an output of the hash function in the third embodiment, the order authentication information can be realized by, for example, about 10 decimal digits, and does not impose a great burden on the user even when transmitted by telephone.
[0097]
The order manager 302 authenticates the order information and the software executor 301 by using the order authentication information. In other words, if the order information created by the order execution unit 4 by the software execution unit 301 is different from the order information transmitted to the order management unit 302 by telephone, the execution unit authentication unit 32 of the order management unit 302 executes NG is output. Also, when a certain software execution unit transmits information different from its own execution unit ID by telephone, the execution unit authentication unit 32 can check the information.
[0098]
Only when the authentication result is OK, the order manager 302 uses the order authentication information as order identification information for identifying the order. Then, the order manager 302 generates an execution right generation password corresponding to the order. This execution right generation password is transmitted to the software execution unit 301. Since this execution right generation password is also an output of the hash function, it can be realized with about 10 decimal digits. The software execution unit 301 checks the input execution right generation password using order information and order authentication information (= order identification information) stored therein. After this inspection, the order authentication information corresponding to the input execution right generation password and an execution right that is valid only in a specific software executor that holds the order information are generated. In this case, since the information of the execution unit encryption key is already included in the order identification information (= order authentication information) of the execution right generation password, the execution unit generation key itself includes the execution unit encryption key. Not.
[0099]
In the third embodiment, the user of the software execution unit 301 transmits order authentication information to the order management unit 302 in addition to the information to be transmitted in the first embodiment when ordering. Thus, the order manager 302 can authenticate the order information and the software executor before issuing the execution right generation password. This order authentication information has a value of about 10 decimal digits, and does not impose a great burden on the user of the software execution unit 301. In addition, authentication can be realized by the same number of exchanges as in the first embodiment, which is more efficient than the case where user authentication is separately provided. The order authentication information is used as order identification information for identifying the order information to manage the order information and information related thereto.
[0100]
(4) Fourth embodiment
FIG. 4 is a block diagram showing the configuration of the software protection system according to the fourth embodiment of the present invention. In the fourth embodiment, an efficient execution unit authentication function is added to the second embodiment in which random numbers are introduced. Similarly to the second embodiment, the fourth embodiment is effective when, for example, a condition such as the number of executions is added to the software execution right. In FIG. 4, the software protection system according to the fourth embodiment includes a software execution unit 401 that executes software, and an order management unit 402 that distributes software to the software execution unit 401.
[0101]
The software executor 401 includes an encryption software storage unit 3, an order creation unit 4, an execution unit ID storage unit 5, an execution unit encryption key storage unit 6, and a configuration similar to that of the first embodiment. An execution right generation unit 8, an execution right storage unit 9, and a software decryption execution unit 10 are included. Further, the software execution unit 401 includes an order hash unit 40 that performs a hash operation by combining the order information and the execution unit encryption key, and a random number generation unit 41 that generates a random number having a predetermined structure and meaning for each order. And an exclusive OR unit 42 for calculating an exclusive OR of the random number and the output of the order hash unit 40.
[0102]
On the other hand, the order management unit 402 includes the execution unit encryption key storage unit 11 having the same configuration as the embodiment of FIG. Further, the order manager 402 combines the executor encryption key obtained from the executor encryption key storage unit 11 and the order information received from the software executor 401 to perform the same hash operation as the software executor 401. And an exclusive OR unit 45 for calculating the exclusive OR of the order number and the output of the order hash unit 44 received from the software executing unit 401, and inputting the output of the exclusive OR unit 45 to the software executing unit 401 An execution unit authentication unit 46 that authenticates the validity and an execution right generation password generation unit 47 that starts up only when the authentication result of the execution unit authentication unit 46 is OK and generates an execution right generation password are included.
[0103]
Next, the operation of the software protection system according to the fourth embodiment shown in FIG. 4 will be described. First, in the software execution unit 401, when the order creation unit 4 creates order information, the order hash unit 40 stores the order information and the execution unit encryption key in a hash function similar to that used in the first embodiment. The data obtained by combining with the encryption key of the software execution unit obtained from the unit 6 is input. Further, the random number generation unit 41 generates random number data having a predetermined structure and meaning. As an example, in this embodiment, the three most significant bits of the random number data are set to “0”, and the three least significant bits are set to “1”. Other bits store random numbers. In addition to this example, the order management unit 402 and the software execution unit 401 may be determined in advance, and some data of the execution unit ID may correspond to a part of the random number data. Next, the exclusive OR unit 42 calculates an exclusive OR of the output of the order hash unit 40 and the random number data generated by the random number generation unit 41. The user of the software execution unit 401 notifies the operator of the order management unit 402 of the operation result of the exclusive OR unit 42 as order authentication information together with the order information and the execution unit ID. If the number of bits of the random number data is set to be substantially the same as the output of the order hash unit 40, the order authentication information becomes about 10 decimal digits, which is very large for the user of the software execution unit 401 and the operator of the order management unit 402. No burden.
[0104]
In the order manager 402, the executor authentication unit 46 obtains the encryption key of the corresponding software executor from the executor encryption key storage unit 11, combines this with the order information, and inputs it to the order hash unit 44. Then, the exclusive OR unit 45 calculates an exclusive OR of the output of the order hash unit 44 and the order authentication information received from the software execution unit 401. If the order information and the execution unit ID are correct, the output of the order hash unit 44 is the same as the output of the order hash unit 40 in the software execution unit 401 that has placed the order. The output of the exclusive OR unit 45 is the same as the random number data generated by the random number generation unit 41 of the software execution unit 401 that has placed the order. That is, in this case, the three most significant bits of the random number data are "0" and the three least significant bits are "1". The executor authentication unit 46 checks whether or not the output of the exclusive OR unit 45 has a predetermined random number structure or meaning. If the output is OK, the order information and the executor are correct. And authenticate. Then, only when this authentication result is OK, the execution right generation password generation unit 47 generates an execution right generation password. Subsequent operations are the same as in the third embodiment. That is, the execution right generation password generated by the order management unit 402 is transmitted to the software execution unit 401 by telephone or the like, and the software execution unit checks the password and creates an execution right of the software corresponding to the case of OK. Is done.
[0105]
In the fourth embodiment, as in the second embodiment, random numbers can be introduced to cope with the execution right generation with a limited number of times. Further, the fourth embodiment has a user authentication function as in the third embodiment. As described above, the fourth embodiment has both the functions of the second and third embodiments, but the amount of data exchanged between the software executor 401 and the order manager 402, in particular, the random order number and the execution order. The number of digits of the right generation password has not increased.
[0106]
(5) Fifth embodiment
FIG. 5 is a block diagram showing the configuration of the software protection system according to the fifth embodiment of the present invention. In the fifth embodiment, an inactive execution right generation module is provided in each software execution unit, and the execution right generation module is activated by an execution right generation password given from the order management unit. The module is characterized in that a predetermined execution right is generated. In the following description, the execution right generation module is divided into two parts. One of the execution right generation modules A is stored in the software execution unit, and the other execution right generation module B is encrypted. The software executor receives from the order manager. The execution right generation modules A and B can generate a predetermined execution right only when both are prepared. Accordingly, only the execution right generation module A stored in the software execution unit is in an inactive state, and cannot generate an execution right.
[0107]
In FIG. 5, the software protection system according to the fifth embodiment includes a software execution unit 501 that executes software, and an order management unit 502 that distributes software to the software execution unit 501.
[0108]
The software executor 501 includes an encrypted software storage unit 3, an order creation unit 4, an executor ID storage unit 5, an executor encryption key storage unit 6, and a configuration similar to that of the first embodiment. An execution right generation unit 8, an execution right storage unit 9, and a software decryption execution unit 10 are included. Further, the software execution unit 501 combines the order information and the execution unit encryption key to perform a hash operation, an order hash unit 50, a storage unit 51 storing the execution right generation module A, and an execution unit received from the order management unit 502. It includes an inverse conversion unit 52 for inversely converting the right generation password, and a storage unit 53 for storing the result of the inverse conversion by the inverse conversion unit 52. If the order information and the execution unit ID are correct, the storage unit 53 stores the execution right generation module B.
[0109]
On the other hand, the order manager 502 includes an execution unit encryption key storage unit 11 having the same configuration as that of the embodiment of FIG. Further, the order manager 502 combines the order information received from the software executor 501 with the encryption key of the corresponding executor obtained from the executor encryption key storage unit 11 and performs an hash operation on the order hash unit 54. , A storage unit 55 for storing the execution right generation module B, and an execution right generation password generation unit 56 for converting the module B using the output of the order hash unit 54 and generating an execution right generation password.
[0110]
Next, the operation of the software protection system according to the fifth embodiment shown in FIG. 5 will be described. First, the user of the software executor 501 operates the software executor 501 to designate an order for software to be executed. In response, the order creation unit 4 creates corresponding order information. Then, the user notifies the order management device 502 of the order information and the execution device ID unique to the software execution device 501 by telephone or the like.
[0111]
Upon receiving the notification from the software executor 501, the order manager 502 searches the executor encryption key storage unit 11 based on the executor ID, and acquires the encryption key of the corresponding software executor. Next, the order hash unit 54 combines the order information received from the software executor 501 with the executor encryption key obtained from the executor encryption key storage unit 11 and uses it in the first embodiment. Input to a similar hash function. The execution right generation password generation unit 56 converts the execution right generation module B using the hash value output from the order hash unit 54 as a key, and issues an execution right generation password. The operator of the order management unit 502 transmits the execution right generation password to the user of the software execution unit 501 by telephone or the like.
[0112]
Next, the user of the software executor 501 that has received the execution right generation password by telephone inputs the password into the inverse conversion unit 52 of the software executor 501. The order hash unit 50 has the same hash function as that used by the order manager 502. Then, the order hash unit 50 combines the order information stored in the order creation unit 4 with the executor encryption key obtained from the executor encryption key storage unit 6, and performs a hash operation on the combined data. . The reverse conversion unit 52 reversely converts the execution right generation password received from the order management unit 502 using the hash value output from the order hash unit 50 as a key. If the order information and the executor encryption key are valid, the hash value output from the order hash unit 50 is the same as the hash value in the order manager 502 (the output of the order hash unit 54). Therefore, the output of the inverse conversion unit 52 is the execution right generation module B. Next, the execution right generation unit 8 generates an execution right corresponding to the order information by using the execution right generation module A stored in the storage unit 51 in advance and the obtained module B. After the execution right generation unit 8 generates the execution right, the module B is deleted according to the execution right generation module.
[0113]
In the fifth embodiment, the execution right generation module A pre-stored in the software execution unit is in an inactive state, and cannot operate with this alone in terms of information amount. The module B for activating this is converted in the order management unit 502 into a form depending on the order information of the software execution unit and the encryption key, and sent as an execution right generation password. In the first to fourth embodiments described above, the execution right generation module exists in the software executor in a complete form. However, in order to activate it, permission called an execution right generation password was required. On the other hand, in the configuration of the fifth embodiment, the execution right generation module exists in the software executor in a state where the information amount is insufficient. For this reason, the fifth embodiment is more secure against unauthorized generation of execution rights than the first to fourth embodiments. After the execution right generation modules A and B generate the execution right of the order, the module B is deleted in order to return to the original state.
[0114]
In the fifth embodiment, since the execution right generation module B is converted depending on the order information and the secret key of the execution unit, if the order is different or the execution unit is different, the user of the software execution unit is , The regular module B cannot be obtained. However, in the fifth embodiment, since the module B is included in the execution right generation password as information, the execution right generation password is slightly compared with the first to fourth embodiments in which only the permission information is included. Need to increase the number of digits. The data amount of the execution right generation password in the fifth embodiment does not depend on the number of software to be ordered.
[0115]
In the fifth embodiment, the software executor 501 uses the execution right generation password received from the order manager 502 as a module B immediately after the reverse conversion without checking the password. Therefore, if the order information and the execution device encryption key do not match the input execution right generation password, the execution right generation module does not operate properly. By the way, for example, assuming that the module B has a specific structure or meaning, it is also conceivable to check the structure or meaning after using the software executor 501 after performing the inverse conversion before using it. For example, if module B is an instruction code, that code must have a specific structure. Therefore, by checking whether the module B has this specific structure, it is possible to handle an error before the execution right generation module is executed.
[0116]
The random numbers used in the second and fourth embodiments described above need only be values that change for each order, and may be generated using a counter or the like. Further, a time stamp may be used instead of the random number. Since the time stamp can be generated in common by the software execution unit and the order management unit (can be generated by the clock circuit), there is no need to send a change value from the software execution unit to the order management unit.
[0117]
In the third and fourth embodiments, when the execution right generation password is generated, the execution right generation password may be made dependent on the execution device encryption key in addition to the order information and the order identification information. The software executor only knows his or her executor encryption key, except the order manager, so only the order manager can create this execution right generation password. Therefore, the execution right generation password can be considered as signature information of the order management device, and when trouble occurs, this information can be submitted to a third party as evidence. Further, instead of such a signature method using secret key cryptography, a signature method using public key cryptography may be used. In this case, the order manager holds the secret information and uses the secret information when generating the execution right generation password. On the other hand, the software executor holds public information corresponding to the secret information of the order manager, and uses this to confirm the validity of the execution right generation password. Only when the secret information of the order manager is used, the validity of the execution right generation password can be confirmed. Therefore, the execution right generation password can be considered as a signature of the order manager.
[0118]
Also, in the first to fourth embodiments, the original software SoftA and the corresponding authenticator authA are combined, and the combined data is encrypted with the system common key S, thereby encrypting the software. Although the data obtained by encrypting this authenticator with the executor encryption key Sx is used as the execution right, the present invention is not limited to such a method. For example, an authenticator and an executor ID may be combined, and the combined data encrypted with a key common to the system may be used as the execution right. When the execution right of the execution unit X is described by an expression,
E (S, authA @ IDx)
It becomes. In this case, the execution right is obtained by decrypting the execution right and the encrypted software with the common key of the system, the authenticators obtained from both are the same, and the execution unit ID is obtained from the decryption result of the execution right. , If this matches the executor ID in the executor, it is authenticated and executes the software. In any case, the present invention can be applied to any encryption method in which the execution right can be generated from the encryption software using the data already held by the execution unit.
[0119]
In the first to fourth embodiments, the order is placed in one telephone call and the execution right generation password is received for the order. However, this may be another call. That is, an order is first made from the software execution unit to the order management unit, and this order is temporarily saved. Next, the order manager calls the software executor, checks with the order number, and notifies the execution right generation password. This shortens the time during which the user of the software execution unit is making a phone call, which is convenient in terms of cost. In addition, the user of the software execution unit can perform another software execution operation or the like until the execution right generation password is notified from the user of the order management unit. On the other hand, the order manager can perform user authentication by performing the callback.
[0120]
In the first to fourth embodiments, when the software executor checks the execution right generation password to generate the execution right, the order information saved in advance is loaded and used. However, in order to reload the order information and prevent the password from being used again, it is necessary to first delete the saved order information after generating the execution right.
[0121]
Further, in each of the above embodiments, it is conceivable that the history of the exchange between the software execution unit and the order management unit is retained on both sides, so that it can be used as reference data in the event of trouble related to the order. In addition, by leaving what software has been purchased, for example, on the software executor side, it is possible to improve the user interface of the order guidance.
[0122]
Further, in each of the above embodiments, as the order information from the software execution unit to the order management unit, for example, software IDs such as software A and software B are used. It is also conceivable to further reduce the amount of communication information by using a correspondence table of software names and codes to be used. In other words, code 2 is used for software A and software B, and code 10 is used for software B only.
[0123]
Further, in each of the above embodiments, the exchange of information between the software execution unit and the order management unit has been described as being performed by a human through a telephone. May be transmitted and received.
[0124]
【The invention's effect】
According to the first aspect of the present invention, the software execution unit generates the software execution right only by inputting the regular execution right generation password corresponding to the order. Then, only the execution right generation password, that is, information giving permission for the software execution unit to generate the software execution right corresponding to the order information, is sent from the order manager to the software executor, which degrades security. The amount of information to be sent can be greatly reduced without causing this. Further, the information amount of the execution right generation password can always be realized with a small information amount without depending on the number of software to be ordered. That is, even if the software executor orders a plurality of software at one time, the amount of information is the same as the amount of information when one software is ordered. Due to this reduction in the amount of information, it is convenient in terms of a user interface particularly when transmitting and receiving a password by telephone. In addition, the order management device is less likely to make a mistake. Also, for the user of the soft executor, mistakes in hearing and mistakes in inputting this to the executor are reduced. In addition, there is also a merit in terms of charges because the time spent on the telephone can be reduced.
[0125]
According to the second, fifth, eighth, tenth, and fifteenth aspects, the execution right generation password is generated by using the data compression function, so that the information amount can be further reduced.
[0126]
According to the third aspect of the present invention, since the execution right generation password digitally signed is sent to the software execution unit, it is almost impossible to forge the execution right generation password on the software execution unit side, which is extremely safe. A software protection system with high reliability can be realized.
[0127]
According to the invention of claim 4, a change value that changes every time order information is created is introduced, and the execution right generation password from the order manager becomes valid only in the software execution device that holds the corresponding change value. Even if you create the same order at different times and enter the previous execution right generation password, the change value generated in the later order will be different from the change value generated in the previous order. Is different and the entered password is not valid. Thus, for example, when an execution right whose execution number is limited is generated, it is possible to prevent an unauthorized use of the execution right generation password repeatedly.
[0128]
According to the invention of claim 6, in order to distinguish orders placed at different times, a time stamp commonly held by the software execution unit and the order management unit is used. There is no need to send information for distinction to the vessel.
[0129]
According to the invention of claim 7, since the order execution information dependent on the order information and the execution device secret information is generated on the software execution device side and sent to the order management device, the order management device side has the execution right. Prior to issuing the generated password, order information and authentication of the software execution unit can be performed. The authentication of the order information and the software executor is an essential function since it is actually related to billing. In the present invention, this function is efficiently realized by notifying the order authentication information of a small number of digits from the software execution unit simultaneously with the order. The order authentication information can also be used as order identification information for identifying an order.
[0130]
According to the ninth aspect of the present invention, both the number-of-times limiting function and the user authentication function can be realized without increasing the amount of information exchanged between the software execution unit and the order management unit.
[0131]
According to the twelfth aspect of the present invention, since the execution right generation password digitally signed is sent from the order management unit to the software execution unit, it is almost impossible for the software execution unit to forge the execution right generation password. Thus, an extremely secure software protection system can be realized.
[0132]
According to the invention of claim 13, the first execution right generation module for activating the second execution right generation module stored on the software execution unit side is stored in the order management unit, and the first execution right generation module is stored in the order execution unit. Since the right generation module is included in the execution right generation password and sent, the software execution unit generates the correct execution right because the amount of information is insufficient even if it tries to generate the execution right illegally. Can not do it. Therefore, a more secure software protection system can be realized.
[0133]
According to the seventeenth aspect of the present invention, the software execution device stores and holds the created order information in a nonvolatile manner, and deletes the order information after generating the execution right of the corresponding software. And the execution of software can be controlled based on the execution right generation password returned later.
[0134]
According to the eighteenth aspect of the present invention, since the software execution unit and the order management unit each retain the history of information exchanged between them, it is possible to flexibly cope with troubles that occur later.
[0135]
According to the invention of claim 19, the software execution unit and the order management unit hold codes corresponding to all combinations of software as a table, and the software execution unit uses the code obtained from the table as order information. Since the data is sent to the order manager, the data amount of the order information can be further reduced.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a software protection system according to a first embodiment of the present invention.
FIG. 2 is a block diagram illustrating a configuration of a software protection system according to a second embodiment of the present invention.
FIG. 3 is a block diagram illustrating a configuration of a software protection system according to a third embodiment of the present invention.
FIG. 4 is a block diagram illustrating a configuration of a software protection system according to a fourth embodiment of the present invention.
FIG. 5 is a block diagram illustrating a configuration of a software protection system according to a fifth embodiment of the present invention.
FIG. 6 is a block diagram showing a configuration of a conventional software protection system.
[Explanation of symbols]
101-501: Software executor
102-502: Order management device
3. Encrypted software storage
4: Order creation department
5. Executor ID storage unit
6… Executor encryption key storage
7, 21, 31, 43 ... execution right generation password checking unit
8. Execution right generation unit
9: execution right storage unit
10: Software decryption execution unit
11 Executor encryption key storage
12, 22, 33, 47 ... execution right generation password generation unit
20: random number generator
30 ... Order authentication information generation unit
32 ... Executor authentication section
40, 44, 50, 54 ... order hash part
42, 45 ... Exclusive OR unit
46… Executor authentication section
51 ... Execution right generation module A storage unit
52, 55: execution right generation password reverse conversion unit
53 ... Execution right generation module B storage unit
56 ... Execution right generation password generation unit

Claims (18)

提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各前記ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
前記実行器IDおよび前記注文情報、前記通信路を介して前記注文管理器に送付する第1の送付手段とを含み
前記注文管理器は、
各前記ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
前記ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を前記第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報およびソフト実行器から受け取った注文情報に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
前記実行権生成パスワード、前記通信路を介して前記ソフト実行器に送付する第2の送付手段とを含み、
各前記ソフト実行器は、さらに
前記注文作成手段に蓄積保持された注文情報と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
前記実行権生成パスワード検査手段による検査の結果、前記実行権生成パスワードの正当性が確認されたときに、前記注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
前記実行権が存在するソフトウェアを実行するソフト実行手段とを含む、ソフトウェア保護システム。
One or more software executors for executing the provided software, and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. A software protection system,
Each of the soft executors is
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software ;
First sending means for sending the execution device ID and the order information to the order management device via the communication path,
The order manager includes:
Second secret information storage means for storing all the executor secret information stored in each of the software executors;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and execution depending on the obtained executor secret information and the order information received from the software executor is performed. Execution right generation password generation means for generating a right generation password ,
Second sending means for sending the execution right generation password to the software execution device via the communication path ,
Each of the software executors further uses the order information stored and held in the order creation means and the executor secret information stored in the first secret information storage means to execute the execution received from the order manager. Execution right generation password checking means for checking the validity of the right generation password;
As a result of the check by the execution right generation password checking unit, when the validity of the execution right generation password is confirmed, the execution right of the ordered software is determined based on the order information stored and held in the order creation unit. Execution right generating means for generating;
And a soft executing means for executing the software the execution right exists, the software protection system.
前記実行権生成パスワード生成手段は、前記ソフト実行器から受け取った注文情報と、前記第2の秘密情報格納手段から獲得した実行器秘密情報とを、出力が入力ビットのすべてに関係するようなデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、前記実行権生成パスワードとして出力し、
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを、前記実行権生成パスワード生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する、請求項1に記載のソフトウェア保護システム。
The execution right generating password generating means converts the order information received from the software executor and the executor secret information obtained from the second secret information storing means into data whose output relates to all of the input bits. Input to the compression function, and output the output result of the data compression function as the execution right generation password,
The execution right generation password checking unit uses the order information accumulated and held in the order creation unit and the executor secret information stored in the first secret information storage unit in the execution right generation password generation unit. enter the same data compression function and to have the data compression function, when the output result matches the execution right generated password received from the order management device, it determines that the execution right generated password is valid, according to claim 1 Software protection system as described in.
前記注文管理器は、公開鍵署名方式に用いられる秘密情報を格納する第3の秘密情報格納手段をさらに含み、
前記実行権生成パスワード生成手段は、前記第3の秘密情報格納手段に格納された秘密情報と、前記第2の秘密情報格納手段から獲得した実行器秘密情報と、前記ソフト実行器から受け取った注文情報と用いて、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成し、
前記ソフト実行器は、前記公開鍵署名方式に用いられる秘密情報に対応した公開情報を格納する公開情報格納手段をさらに含み、
前記実行権生成パスワード検査手段は、さらに、前記公開情報格納手段に格納された公開情報を用いて、前記公開鍵署名方式に対応した署名確認方式によって、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する、請求項1に記載のソフトウェア保護システム。
The order manager further includes a third secret information storage unit that stores secret information used for a public key signature scheme,
The execution right generating password generating means includes: secret information stored in the third secret information storing means; executor secret information obtained from the second secret information storing means; and an order received from the software executor. Using the information, generate an execution right generation password digitally signed by a public key signature scheme,
The software executor further includes public information storage means for storing public information corresponding to secret information used in the public key signature scheme,
The execution right generation password check means further the public information stored using the public information stored in means, said by signature verification method corresponding to the public key signature scheme, it generates execution rights received from the order management unit It examined also the validity of the password, the software protection system according to claim 1.
提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各前記ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
前記注文作成手段で注文情報が作成される毎に変化する変化値を生成して蓄積保持する変化値生成手段と、
前記実行器ID前記注文情報および前記変化値を、前記通信路を介して前記注文管理器に送付する第1の送付手段とを含み、
前記注文管理器は、
各前記ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
前記ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を前記第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報,ソフト実行器から受け取った注文情報および変化値に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
前記実行権生成パスワード、前記通信路を介して前記ソフト実行器に送付する第2の送付手段とを含み
各前記ソフト実行器は、さらに
前記注文作成手段に蓄積保持された注文情報と、前記変化値生成手段に蓄積保持された変化値と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
前記実行権生成パスワード検査手段による検査の結果、前記実行権生成パスワードの正当性が確認されたときに、前記注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
前記実行権が存在するソフトウェアを実行するソフト実行手段とを含む、ソフトウェア保護システム。
One or more software executors for executing the provided software, and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. A software protection system,
Each of the soft executors is
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
A change value generation unit that generates and stores a change value that changes each time order information is created by the order creation unit ;
First sending means for sending the execution device ID , the order information and the change value to the order management device via the communication path ,
The order manager includes:
Second secret information storage means for storing all the executor secret information stored in each of the software executors;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and the obtained executor secret information, the order information and the change value received from the software executor are added to the obtained secret information. An execution right generation password generating means for generating a dependent execution right generation password ,
Second sending means for sending the execution right generation password to the software execution device via the communication path,
Each of the software executors further includes an order information stored and held in the order creation means, a change value stored and held in the change value generation means, and an execution device secret stored in the first secret information storage means. Using the information, execution right generation password checking means for checking the validity of the execution right generation password received from the order management device,
As a result of the check by the execution right generation password checking unit, when the validity of the execution right generation password is confirmed, the execution right of the ordered software is determined based on the order information stored and held in the order creation unit. Execution right generating means for generating;
And a soft executing means for executing the software the execution right exists, the software protection system.
前記実行権生成パスワード生成手段は、前記ソフト実行器から受け取った注文情報および変化値と、前記第2の秘密情報格納手段から獲得した実行器秘密情報とを、出力が入力ビットのすべてに関係するようなデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、前記実行権生成パスワードとして出力し、
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記変化値生成手段に蓄積保持された変化値と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを、前記実行権生成パスワード生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する、請求項4に記載のソフトウェア保護システム。
The execution right generating password generating means outputs the order information and the change value received from the software executing unit and the executing unit secret information obtained from the second secret information storing unit, with respect to all of the input bits. Input to such a data compression function, the output result of this data compression function is output as the execution right generation password,
The execution right generation password checking unit includes an order information stored and held in the order creation unit, a change value stored and held in the change value generation unit, and an execution unit stored in the first secret information storage unit. The secret information is input to the same data compression function as the data compression function used in the execution right generation password generation means, and when the output result matches the execution right generation password received from the order management device, the execution right generated password it determined to be valid, the software protection system according to claim 4.
提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各前記ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
前記注文作成手段で注文情報が作成される毎にタイムスタンプを生成して蓄積保持する第1のタイムスタンプ生成手段と、
前記実行器IDおよび前記注文情報、前記通信路を介して前記注文管理器に送付する第1の送付手段とを含み
前記注文管理器は、
前記ソフト実行器から実行器IDおよび注文情報を受け取ると、タイムスタンプを生成する第2のタイムスタンプ生成手段と、
各前記ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
前記ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を前記第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報と、ソフト実行器から受け取った注文情報と、前記第2のタイムスタンプ生成手段で生成されたタイムスタンプとに依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
前記実行権生成パスワード、前記通信路を介して前記ソフト実行器に送付する第2の送付手段とを含み
各前記ソフト実行器は、さらに
前記注文作成手段に蓄積保持された注文情報と、前記第1のタイムスタンプ生成手段に蓄積保持されたタイムスタンプと、前記第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
前記実行権生成パスワード検査手段による検査の結果、前記実行権生成パスワードの正当性が確認されたときに、前記注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
前記実行権が存在するソフトウェアを実行するソフト実行手段とを含む、ソフトウェア保護システム。
One or more software executors for executing the provided software, and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. A software protection system,
Each of the soft executors is
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
First time stamp generating means for generating and accumulating and holding a time stamp each time order information is generated by the order generating means ;
First sending means for sending the execution device ID and the order information to the order management device via the communication path,
The order manager includes:
A second time stamp generating means for generating a time stamp when receiving an execution unit ID and order information from the software execution unit;
Second secret information storage means for storing all the executor secret information stored in each of the software executors;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and the obtained executor secret information, the order information received from the software executor, Execution right generation password generation means for generating an execution right generation password dependent on the time stamp generated by the second time stamp generation means ;
Second sending means for sending the execution right generation password to the software execution device via the communication path,
Each of the software executors further stores the order information stored and held in the order creation unit, the time stamp stored and held in the first time stamp generation unit, and the first secret information storage unit. An execution right generation password checking unit that checks the validity of the execution right generation password received from the order management device using the execution unit secret information;
As a result of the check by the execution right generation password checking unit, when the validity of the execution right generation password is confirmed, the execution right of the ordered software is determined based on the order information stored and held in the order creation unit. Execution right generating means for generating;
And a soft executing means for executing the software the execution right exists, the software protection system.
提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各前記ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
前記注文情報と前記実行器秘密情報に依存した注文認証情報を生成して蓄積保持する注文認証情報生成手段と、
前記実行器ID前記注文情報および前記注文認証情報、前記通信路を介して前記注文管理器に送付する第1の送付手段とを含み
前記注文管理器は、
各前記ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
前記ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を前記第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報,ソフト実行器から受け取った注文情報および注文認証情報を用いて、ソフト実行器および注文情報の認証を行い、この認証結果が正当である場合に、当該注文認証情報を注文を識別する注文識別情報として扱う実行器認証手段と、
前記実行器認証手段における認証結果が正当である場合にのみ、前記注文情報および前記注文識別情報に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
前記実行権生成パスワード、前記注文識別情報と共に、前記通信路を介して前記ソフト実行器に送付する第2の送付手段とを含み
各前記ソフト実行器は、さらに
前記注文作成手段に蓄積保持された注文情報と、前記注文認証情報生成手段に蓄積保持された注文認証情報とを用いて、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
前記実行権生成パスワード検査手段による検査の結果、前記実行権生成パスワードの正当性が確認されたときに、前記注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
前記実行権が存在するソフトウェアを実行するソフト実行手段とを含む、ソフトウェア保護システム。
One or more software executors for executing the provided software, and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. A software protection system,
Each of the soft executors is
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
Order authentication information generating means for generating and storing the order authentication information depending on the order information and the executor secret information ;
A first sending unit that sends the execution unit ID , the order information and the order authentication information to the order management unit via the communication path,
The order manager includes:
Second secret information storage means for storing all the executor secret information stored in each of the software executors;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and the obtained executor secret information, the order information and the order authentication information received from the software executor are obtained. Executing the software executor and the order information using, and if the authentication result is valid, an executor authentication unit that treats the order authentication information as order identification information for identifying the order,
An execution right generation password generation unit that generates an execution right generation password depending on the order information and the order identification information only when an authentication result in the execution unit authentication unit is valid ;
Second sending means for sending the execution right generation password , together with the order identification information, to the software executor via the communication path,
Each of the software executors further uses the order information stored and held in the order creating means and the order authentication information stored and held in the order authentication information generating means to generate the execution right received from the order manager. Execution right generation password checking means for checking the validity of the password;
As a result of the check by the execution right generation password checking unit, when the validity of the execution right generation password is confirmed, the execution right of the ordered software is determined based on the order information stored and held in the order creation unit. Execution right generating means for generating;
And a soft executing means for executing the software the execution right exists, the software protection system.
前記注文認証情報生成手段は、前記注文作成手段によって作成された注文情報と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを、出力が入力ビットのすべてに関係するようなデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、前記注文認証情報として出力し、
前記実行器認証手段は、前記第2の秘密情報格納手段から獲得した実行器秘密情報と、ソフト実行器から受け取った注文情報とを、前記注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、このデータ圧縮関数の出力結果がソフト実行器から受け取った注文認証情報と一致する場合に、注文を行ったソフト実行器および注文情報が正当であることを認証し、
前記実行権生成パスワード生成手段は、前記ソフト実行器から受け取った注文情報および前記注文識別情報を、前記注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、前記実行権生成パスワードとして出力し、
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記注文認証情報生成手段に蓄積保持された注文認証情報とを、前記注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する、請求項7に記載のソフトウェア保護システム。
The order authentication information generating means converts the order information created by the order creating means and the executor secret information stored in the first secret information storing means so that an output relates to all input bits. Input to the data compression function, output the result of the data compression function, output as the order authentication information,
The executor authentication unit compares the executor secret information obtained from the second secret information storage unit and the order information received from the software executor with the same data compression function as used in the order authentication information generation unit. Input to the data compression function, and when the output result of the data compression function matches the order authentication information received from the software executor, authenticate the software executor that made the order and that the order information is valid,
The execution right generation password generation unit inputs the order information and the order identification information received from the software execution unit to the same data compression function as the data compression function used in the order authentication information generation unit, and executes the data compression. Outputting the output result of the function as the execution right generation password,
The execution right generation password checking means uses the order information stored and held in the order creation means and the order authentication information stored and held in the order authentication information generation means as data used by the order authentication information generation means. enter the same data compression and compression functions, when the output result matches the execution right generated password received from the order management unit, the execution right generation password you determined to be legitimate, according to claim 7 Software protection system.
提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各前記ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
前記注文作成手段で注文情報が作成される毎に変化し、所定のデータ構造または意味を有する変化値を生成して蓄積保持する変化値生成手段と、
前記注文情報および前記実行器秘密情報に依存した値を求め、この求めた値によって前記変化値を変換することにより、注文認証情報を生成して蓄積保持する注文認証情報生成手段と、
前記実行器ID、前記注文情報および前記注文認証情報、前記通信路を介して前記注文管理器に送付する第1の送付手段とを含み
前記注文管理器は、
各前記ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
前記ソフト実行器から受け取った実行器IDに対応する実行器秘密情報を前記第2の秘密情報格納手段から獲得し、この獲得した実行器秘密情報とソフト実行器からの注文情報とに依存した値を求め、この値を用いてソフト実行器からの注文認証情報を逆変換する逆変換手段と、
前記逆変換手段の出力が前記変化値と同じデータ構造または意味を有する場合に、ソフト実行器および注文情報が正当であることを認証する実行器認証手段と、
前記実行器認証手段における認証結果が正当である場合にのみ、前記注文情報に依存した実行権生成パスワードを生成する実行権生成パスワード生成手段と、
前記実行権生成パスワード、前記通信路を介して前記ソフト実行器に送付する第2の送付手段とを含み
各前記ソフト実行器は、さらに
前記注文作成手段に蓄積保持された注文情報と、前記注文認証情報生成手段に蓄積保持された注文認証情報とを用いて、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する実行権生成パスワード検査手段と、
前記実行権生成パスワード検査手段による検査の結果、前記実行権生成パスワードの正当性が確認されたときに、前記注文作成手段に蓄積保持された注文情報に基づいて、注文されたソフトウェアの実行権を生成する実行権生成手段と、
前記実行権が存在するソフトウェアを実行するソフト実行手段とを含む、ソフトウェア保護システム。
One or more software executors for executing the provided software, and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. A software protection system,
Each of the soft executors is
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software;
A change value generation unit that changes each time order information is generated by the order generation unit, generates a change value having a predetermined data structure or meaning, accumulates and holds the change value,
Order authentication information generation means for obtaining a value dependent on the order information and the executor secret information, and converting the change value by the obtained value to generate and store and hold order authentication information ;
First sending means for sending the execution device ID, the order information, and the order authentication information to the order management device via the communication path,
The order manager includes:
Second secret information storage means for storing all the executor secret information stored in each of the software executors;
Executor secret information corresponding to the executor ID received from the software executor is obtained from the second secret information storage means, and a value depending on the obtained executor secret information and order information from the software executor is obtained. Inverse conversion means for inversely converting the order authentication information from the software execution device using this value,
When the output of the inverse conversion unit has the same data structure or meaning as the change value, an execution unit authentication unit that authenticates that the software execution unit and the order information are valid,
An execution right generation password generation unit that generates an execution right generation password depending on the order information only when an authentication result in the execution unit authentication unit is valid ;
Second sending means for sending the execution right generation password to the software execution device via the communication path,
Each of the software executors further uses the order information stored and held in the order creating means and the order authentication information stored and held in the order authentication information generating means to generate the execution right received from the order manager. Execution right generation password checking means for checking the validity of the password;
As a result of the check by the execution right generation password checking unit, when the validity of the execution right generation password is confirmed, the execution right of the ordered software is determined based on the order information stored and held in the order creation unit. Execution right generating means for generating;
And a soft executing means for executing the software the execution right exists, the software protection system.
前記注文認証情報生成手段は、前記注文作成手段によって作成された注文情報と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを、出力が各入力ビットのすべてに関係するようなデータ圧縮関数に入力し、その出力結果と前記変化値との排他的論理和を注文認証情報として出力し、
前記逆変換手段は、ソフト実行器からの注文情報と、前記第2の秘密情報格納手段から獲得した実行器秘密情報とを、前記注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果とソフト実行器からの注文認証情報との排他的論理和を演算することにより、当該注文認証情報を逆変換し、
前記実行権生成パスワード生成手段は、前記ソフト実行器から受け取った注文情報および前記注文識別情報を、前記注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、このデータ圧縮関数の出力結果を、前記実行権生成パスワードとして出力し、
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記注文認証情報生成手段に蓄積保持された注文認証情報とを、前記注文認証情報生成手段で用いているデータ圧縮関数と同じデータ圧縮関数に入力し、その出力結果が注文管理器から受け取った実行権生成パスワードと一致したとき、当該実行権生成パスワードが正当であると判断する、請求項9に記載のソフトウェア保護システム。
The order authentication information generating unit may be configured to convert the order information created by the order creating unit and the executor secret information stored in the first secret information storage unit so that an output relates to all of the input bits. And outputs the exclusive OR of the output result and the change value as order authentication information,
The inverse conversion means converts the order information from the software executor and the executor secret information obtained from the second secret information storage means into the same data compression function as the data compression function used in the order authentication information generation means. By inputting the function and calculating the exclusive OR of the output result and the order authentication information from the software execution unit, the order authentication information is inversely transformed,
The execution right generation password generation unit inputs the order information and the order identification information received from the software execution unit to the same data compression function as the data compression function used in the order authentication information generation unit, and executes the data compression. Outputting the output result of the function as the execution right generation password,
The execution right generation password checking means uses the order information stored and held in the order creation means and the order authentication information stored and held in the order authentication information generation means as data used by the order authentication information generation means. enter the same data compression and compression functions, when the output result matches the execution right generated password received from the order management unit, the execution right generation password you determined to be legitimate, according to claim 9 Software protection system.
前記実行権生成パスワード生成手段は、ソフト実行器から受け取った注文情報に加えて、前記第2の秘密情報格納手段から獲得した実行器秘密情報に依存した実行権生成パスワードを生成し、
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記第1の秘密情報格納手段に格納されている実行器秘密情報とを用いて、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する、請求項7または9に記載のソフトウェア保護システム。
The execution right generation password generation unit generates an execution right generation password dependent on the execution unit secret information obtained from the second secret information storage unit, in addition to the order information received from the software execution unit,
The execution right generation password checking means receives the order information stored in the order creation means and the executor secret information stored in the first secret information storage means from the order manager. were you examined the validity of the execution right generated password, the software protection system according to claim 7 or 9.
前記注文管理器は、公開鍵署名方式に用いられる秘密情報を格納する第3の秘密情報格納手段をさらに含み、
前記実行権生成パスワード生成手段は、前記第3の秘密情報格納手段に格納された秘密情報と、前記第2の秘密情報格納手段から獲得した実行器秘密情報と、前記ソフト実行器から受け取った注文情報および注文認証情報とを用いて、公開鍵署名方式によってデジタル署名された実行権生成パスワードを生成し、
前記ソフト実行器は、前記公開鍵署名方式に用いられる秘密情報に対応した公開情報を格納する公開情報格納手段をさらに含み、
前記実行権生成パスワード検査手段は、さらに、前記公開情報格納手段に格納された公開情報と、前記第1の秘密情報格納手段に格納された実行器秘密情報とを用いて、前記公開鍵署名方式に対応した署名確認方式によって、前記注文管理器から受け取った実行権生成パスワードの正当性を検査する、請求項7または9に記載のソフトウェア保護システム。
The order manager further includes a third secret information storage unit that stores secret information used for a public key signature scheme,
The execution right generating password generating means includes: secret information stored in the third secret information storing means; executor secret information obtained from the second secret information storing means; and an order received from the software executor. Using the information and the order authentication information, generate an execution right generation password digitally signed by a public key signature scheme,
The software executor further includes public information storage means for storing public information corresponding to secret information used in the public key signature scheme,
The execution right generation password check means, further wherein the public information stored in public information storing means, using said first executor secret information stored in the secret information storage unit, the public key signature scheme the signature verification scheme corresponding to, we examined also the validity of the execution right generated password received from the order management unit, the software protection system according to claim 7 or 9.
提供されたソフトウェアを実行する1つ以上のソフト実行器と、各ソフト実行器と通信経路を介して接続され、かつ各ソフト実行器から受けたソフトウェアの注文を管理する注文管理器とを備えたソフトウェア保護システムであって、
各前記ソフト実行器は、
固有の実行器IDを格納する実行器ID格納手段と、
固有の実行器秘密情報を格納する第1の秘密情報格納手段と、
1つ以上のソフトウェアの実行権の注文情報を作成して蓄積保持する注文作成手段と、
前記実行器IDおよび前記注文情報、前記通信路を介して前記注文管理器に送付する第1の送付手段とを含み
前記注文管理器は、
第1の実行権生成モジュールを格納する第1のモジュール格納手段と、
各前記ソフト実行器に格納された全ての実行器秘密情報を格納する第2の秘密情報格納手段と、
前記ソフト実行器からの注文情報と、前記第2の秘密情報格納手段から獲得した実行器秘密情報とに依存した値を計算する第1の計算手段と、
前記第1の計算手段の計算結果を用いて、前記第1の実行権生成モジュールを変換することにより、実行権生成パスワードを生成する実行権生成パスワード生成手段と、
前記実行権生成パスワード、前記通信路を介して前記ソフト実行器に送付する第2の送付手段とを含み
各ソフト実行器は、さらに
第2の実行権生成モジュールを格納する第2のモジュール格納手段と、
前記注文作成手段に蓄積保持された注文情報と、前記第1の秘密情報格納手段に格納された実行器秘密情報とに依存した値を計算する第2の計算手段と、
前記第2の計算手段の計算結果を用いて、前記注文管理器からの実行権生成パスワードを逆変換することにより、第1の実行権生成モジュールを生成する実行権生成パスワード逆変換手段と、
前記実行権生成パスワード逆変換手段により生成された第1の実行権生成モジュールと、前記第2のモジュール格納手段に格納されている第2の実行権生成モジュールとを用いて、前記注文作成手段に蓄積保持された注文情報に基づくソフトウェアの実行権を生成する実行権生成手段と、
実行権生成後、第一の実行権生成モジュールを消去するモジュール消去手段と、
前記実行権が存在するソフトウェアを実行するソフト実行手段とを含む、ソフトウェア保護システム。
One or more software executors for executing the provided software, and an order manager connected to each software executor via a communication path and managing an order for software received from each software executor. A software protection system,
Each of the soft executors is
Executing unit ID storing means for storing a unique executing unit ID;
First secret information storage means for storing unique executor secret information;
Order creation means for creating and storing order information for execution rights of one or more software ;
First sending means for sending the execution device ID and the order information to the order management device via the communication path,
The order manager includes:
First module storage means for storing a first execution right generation module;
Second secret information storage means for storing all the executor secret information stored in each of the software executors;
First calculating means for calculating a value depending on the order information from the software executor and the executor secret information obtained from the second secret information storage means;
An execution right generation password generation unit that generates an execution right generation password by converting the first execution right generation module using the calculation result of the first calculation unit ;
Second sending means for sending the execution right generation password to the software execution device via the communication path,
Each software executor further includes a second module storage unit that stores a second execution right generation module;
Second calculating means for calculating a value depending on the order information stored and held in the order creating means and the executor secret information stored in the first secret information storing means;
An execution right generation password reverse conversion unit that generates a first execution right generation module by inversely converting the execution right generation password from the order management device using the calculation result of the second calculation unit;
Using the first execution right generation module generated by the execution right generation password reverse conversion unit and the second execution right generation module stored in the second module storage unit, the order creation unit Execution right generating means for generating software execution right based on the stored order information;
Module erasing means for erasing the first execution right generation module after execution right generation;
And a soft executing means for executing the software the execution right exists, the software protection system.
前記第1のモジュール格納手段に格納されている第1の実行権生成モジュールは、所定のデータ構造や意味をもっており、
前記実行権生成手段は、前記実行権生成パスワード逆変換手段の逆変換結果が前記第1の実行権生成モジュールと同じデータ構造や意味を持っている場合にのみ、第1の実行権生成モジュールと、第2の実行権生成モジュールとを用いて、前記注文作成手段に蓄積保持された注文情報に基づくソフトウェアの実行権を生成する、請求項13に記載のソフトウェア保護システム。
The first execution right generation module stored in the first module storage means has a predetermined data structure and meaning,
The execution right generation module is configured to execute the first execution right generation module only when the reverse conversion result of the execution right generation password reverse conversion unit has the same data structure and meaning as the first execution right generation module. , by using the second execution right generation module, that generates an execution right for the software based on the order information the accumulated and held in the order making means, software protection system according to claim 13.
前記ソフト実行器に提供されるソフトウェアは、ソフト固有情報を含んで暗号化されており、
前記実行権生成手段は、前記実行権生成パスワード検査手段が前記注文管理器からの実行権生成パスワードの正当性を確認したとき、前記注文作成手段に蓄積保持された注文情報に対応する暗号化ソフトウェアを復号して前記ソフト固有情報を獲得し、この獲得したソフト固有情報を前記実行器秘密情報で暗号化することによって、注文されたソフトウェアの実行権を生成し、
前記ソフト実行手段は、前記注文作成手段に蓄積保持された注文情報に対応する暗号化ソフトウェアを復号してソフトウェアとソフト固有情報とを獲得し、前記実行権を実行器秘密情報を用いて復号してソフト固有情報を獲得し、これら復号によって獲得したソフト固有情報が一致している場合にのみ、復号されたソフトウェアを実行する、請求項1〜1のいずれかに記載のソフトウェア保護システム。
The software provided to the software executor is encrypted including software-specific information,
The execution right generation means, when the execution right generation password checking means confirms the validity of the execution right generation password from the order manager, encryption software corresponding to the order information stored and held in the order creation means. To obtain the software-specific information, and encrypt the obtained software-specific information with the executor secret information to generate an execution right of the ordered software,
The software execution means decrypts the encrypted software corresponding to the order information stored and held in the order creation means to obtain software and software-specific information, and decrypts the execution right using executor secret information. acquiring soft unique information Te, only when the soft-specific information acquired by these decoding match, to run the decrypted software, software protection system according to any one of claims 1 to 1 4.
前記注文作成手段は、作成した注文情報を不揮発的に蓄積保持し、前記実行権生成手段が対応するソフトウェアの実行権を生成した後に当該注文情報を消去する、請求項1〜1のいずれかに記載のソフトウェア保護システム。The order creation unit holds storing the order information created in a non-volatile manner, you erase the order information after the execution right generation means generates the execution right of the corresponding software, any claim 1 to 1 4 Software protection system according to crab. 前記ソフト実行器および前記注文管理器は、それぞれ相互間でやりとりされた情報の履歴を保持している、請求項1〜1のいずれかに記載のソフトウェア保護システム。Said soft executor and the order management device is that maintains a history of the information that is exchanged between each other, respectively, the software protection system according to any one of claims 1 to 1 4. 前記ソフト実行器および前記注文管理器は、すべてのソフトウェアの組み合わせに対応するコードをテーブルとして保持しており、
前記ソフト実行器は、前記テーブルから得たコードを、前記注文情報として前記注文管理器に送付する、請求項1〜1のいずれかに記載のソフトウェア保護システム。
The software executor and the order manager hold codes corresponding to all software combinations as a table,
The soft running instrument, the code obtained from the table, sent to the order management unit as the order information, the software protection system according to any one of claims 1 to 1 4.
JP15653895A 1995-06-22 1995-06-22 Software protection system Expired - Fee Related JP3570781B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15653895A JP3570781B2 (en) 1995-06-22 1995-06-22 Software protection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15653895A JP3570781B2 (en) 1995-06-22 1995-06-22 Software protection system

Publications (2)

Publication Number Publication Date
JPH096608A JPH096608A (en) 1997-01-10
JP3570781B2 true JP3570781B2 (en) 2004-09-29

Family

ID=15629988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15653895A Expired - Fee Related JP3570781B2 (en) 1995-06-22 1995-06-22 Software protection system

Country Status (1)

Country Link
JP (1) JP3570781B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3994466B2 (en) 1997-03-26 2007-10-17 ソニー株式会社 User terminal and portable playback device
JP4137468B2 (en) * 2002-02-27 2008-08-20 富士通株式会社 Program usage authentication method
JP2004227077A (en) * 2003-01-20 2004-08-12 Seiko Epson Corp Information viewing system, information play-back device and information providing device
JP4352710B2 (en) 2003-01-29 2009-10-28 セイコーエプソン株式会社 Information viewing system
DE102007045920B4 (en) 2007-09-26 2018-07-05 Bayer Intellectual Property Gmbh Synergistic drug combinations
CN111176710B (en) * 2019-12-30 2023-10-03 宁波视睿迪光电有限公司 Operation method of terminal software management system and terminal software management system

Also Published As

Publication number Publication date
JPH096608A (en) 1997-01-10

Similar Documents

Publication Publication Date Title
KR100731242B1 (en) Encoding backup method and decoding restore method
US7270193B2 (en) Method and system for distributing programs using tamper resistant processor
US5351293A (en) System method and apparatus for authenticating an encrypted signal
US8843745B2 (en) Methods of authorizing a computer license
CN1328634C (en) Method to protect software against unauthorized use
CN1914849B (en) Trusted mobile platform architecture
EP0653695A2 (en) Software pay per use system
CN101142599A (en) Digital rights management system based on hardware identification
US7877604B2 (en) Proof of execution using random function
CN101084482A (en) Electronic software distribution method and system using a digital rights management method based on hardware identification
RU2584500C2 (en) Cryptographic authentication and identification method with real-time encryption
US8392723B2 (en) Information processing apparatus and computer readable medium for preventing unauthorized operation of a program
JP2005537559A (en) Secure record of transactions
US20160321656A1 (en) Method and system for protecting information against unauthorized use (variants)
JP3580333B2 (en) How to equip the encryption authentication function
JP2021525030A (en) User protection license
US20040255136A1 (en) Method and device for protecting information against unauthorised use
JP3570781B2 (en) Software protection system
JPH0818552A (en) Ciphering key delivery system its method
CN100437422C (en) System and method for enciphering and protecting software using right
JPH1124916A (en) Device and method for managing software licence
CN100561913C (en) A kind of method of access code equipment
JPH09261217A (en) Communication equipment and its method
JP6874700B2 (en) E-commerce systems, communication terminals, third-party servers, e-commerce methods, and programs
JPH1093550A (en) Authentication device and its method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040301

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040622

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080702

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090702

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100702

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110702

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110702

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120702

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120702

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130702

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees