JP3570781B2 - Software protection system - Google Patents
Software protection system Download PDFInfo
- 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
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】
請求項15に係る発明は、請求項1〜14のいずれかに記載の発明において、
ソフト実行器に提供されるソフトウェアは、ソフト固有情報を含んで暗号化されており、
実行権生成手段は、実行権生成パスワード検査手段が注文管理器からの実行権生成パスワードの正当性を確認したとき、注文作成手段に蓄積保持された注文情報に対応する暗号化ソフトウェアを復号してソフト固有情報を獲得し、この獲得したソフト固有情報を実行器秘密情報で暗号化することによって、注文されたソフトウェアの実行権を生成し、
ソフト実行手段は、注文作成手段に蓄積保持された注文情報に対応する暗号化ソフトウェアを復号してソフトウェアとソフト固有情報とを獲得し、実行権を実行器秘密情報を用いて復号してソフト固有情報を獲得し、これら復号によって獲得したソフト固有情報が一致している場合にのみ、復号されたソフトウェアを実行する。
【0036】
請求項16に係る発明は、請求項1〜14のいずれかに記載の発明において、
注文作成手段は、作成した注文情報を不揮発的に蓄積保持し、実行権生成手段が対応するソフトウェアの実行権を生成した後に当該注文情報を消去する。
【0037】
請求項17に係る発明は、請求項1〜14のいずれかに記載の発明において、
ソフト実行器および注文管理器は、それぞれ相互間でやりとりされた情報の履歴を保持している。
【0038】
請求項18に係る発明は、請求項1〜14のいずれかに記載の発明において、
ソフト実行器および注文管理器は、すべてのソフトウェアの組み合わせに対応するコードをテーブルとして保持しており、
ソフト実行器は、テーブルから得たコードを、注文情報として注文管理器に送付する。
【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
[0006]
The
[0007]
The
[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
[0009]
In the
[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
[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
[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
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
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
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
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
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
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
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
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
[0042]
In the invention according to
[0043]
In the invention according to
[0044]
In the invention according to
[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
[0047]
In the invention according to
[0048]
In the invention according to
[0049]
In the invention according to
[0050]
In the invention according to
[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
[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
[0059]
The
[0060]
On the other hand, the
[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
[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
[0063]
By operating the
[0064]
When the order information notified from the
[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
[0067]
The execution
[0068]
When executing the software A, the software
[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
[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
[0071]
First, as an external attack for generating an unauthorized execution right, the execution
[0072]
In the first embodiment, the execution
[0073]
Considering that it is very common that the
[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
[0077]
When the execution
[0078]
From the above description, it can be seen that it is practically impossible to forge the execution right on the
[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
[0084]
On the other hand, the
[0085]
As described above, in the second embodiment, a new random number is generated for each order. Then, the user of the
[0086]
The execution right generation
[0087]
The user of the
[0088]
In the second embodiment, a new random number is automatically generated for each order. In the case of a formal procedure, the
[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
[0091]
The
[0092]
On the other hand, the
[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
[0094]
In the
[0095]
The user of the
[0096]
In the third embodiment, the
[0097]
The
[0098]
Only when the authentication result is OK, the
[0099]
In the third embodiment, the user of the
[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
[0101]
The
[0102]
On the other hand, the
[0103]
Next, the operation of the software protection system according to the fourth embodiment shown in FIG. 4 will be described. First, in the
[0104]
In the
[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
[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
[0108]
The
[0109]
On the other hand, the
[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
[0111]
Upon receiving the notification from the
[0112]
Next, the user of the
[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
[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
[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
[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
[0128]
According to the invention of
[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)
各前記ソフト実行器は、
固有の実行器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.
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記第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の秘密情報格納手段に格納された秘密情報と、前記第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.
各前記ソフト実行器は、
固有の実行器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.
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記変化値生成手段に蓄積保持された変化値と、前記第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.
各前記ソフト実行器は、
固有の実行器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.
各前記ソフト実行器は、
固有の実行器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.
前記実行器認証手段は、前記第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.
各前記ソフト実行器は、
固有の実行器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.
前記逆変換手段は、ソフト実行器からの注文情報と、前記第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.
前記実行権生成パスワード検査手段は、前記注文作成手段に蓄積保持された注文情報と、前記第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の秘密情報格納手段に格納された秘密情報と、前記第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.
各前記ソフト実行器は、
固有の実行器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の実行権生成モジュールと、第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〜14のいずれかに記載のソフトウェア保護システム。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〜14のいずれかに記載のソフトウェア保護システム。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.
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)
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 |
-
1995
- 1995-06-22 JP JP15653895A patent/JP3570781B2/en not_active Expired - Fee Related
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 |