(57)【要約】【課題】容易に、ソフトウェアおよびソフトウェアを搭載した機器の不正使用を、高い確実性を持って制限することを目的とする。【解決手段】機器８に固有なキーコードを定数としてアドレス変換式６を規定し、ＢＩＯＳ１に組み込み、ＢＩＯＳ１で読み出すハードディスク２のアドレスをアドレス変換式６を用いて変換するようにＢＩＯＳ１を設定することにより、ソフトウェアが搭載される機器８が変更されるとアドレス変換に異常をきたし、機器８自体が起動できなくなり、容易に、ソフトウェアおよびソフトウェアを搭載した機器８の不正使用を、高い確実性を持って制限することができる。【選択図】図１
2015210687.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳおよびソフトウェアを格納するハードディスクと、ＢＩＯＳを格納する書き換え不可能な記憶装置と、ＣＰＵとを備える機器のソフトウェア保護方法であって、
あらかじめ、前記機器に固有の１または複数のキーコードを定数とする関数をアドレスの変換式として前記記憶装置に格納された前記ＢＩＯＳ内に記述し、
前記ＯＳおよび前記ソフトウェアが要求する第１のアドレスは、前記変換式にて前記ハードディスクの物理アドレスである第２のアドレスに変換され、
前記キーコードが一致する前記機器にて動作させた場合のみに前記機器が起動することを特徴とするソフトウェアの保護方法。
【請求項２】
前記キーコードが前記機器に搭載される装置のシリアルナンバーであることを特徴とする請求項１記載のソフトウェアの保護方法。
【請求項３】
ＯＳおよびソフトウェアを格納するハードディスクと、
ＢＩＯＳを格納する書き換え不可能な記憶装置と、
ＣＰＵと、
前記記憶装置に格納されるＢＩＯＳに記述されるアドレスの変換式と
を有し、前記変換式は機器に固有の１または複数のキーコードを定数とする関数であり、前記ＯＳおよび前記ソフトウェアが要求する第１のアドレスは、前記変換式にて前記ハードディスクの物理アドレスである第２のアドレスに変換されることを特徴とする機器。
【請求項４】
前記キーコードが前記機器に搭載される装置のシリアルナンバーであることを特徴とする請求項３記載の機器。
【発明の詳細な説明】
【技術分野】
【０００１】
パーソナルコンピュータ（以下、ＰＣと称す）や産業用機器等に搭載され、種々の処理を行うソフトウェアの保護方法およびこの方法を実施する機器に関する。
【背景技術】
【０００２】
ソフトウェアは、ＰＣや産業用機器等に搭載（以下、インストールと称す）され、ＰＣ等は、インストールされたソフトウェアを起動することにより、種々の処理が行われる。また、ソフトウェアは、ソフトウェア単体で購入したものをインストールしたり、あらかじめソフトウェアがインストールされた機器を購入して使用されている。
【０００３】
ここで、ソフトウェアやソフトウェアがインストールされた機器を正規に購入して使用する場合は問題ないが、ソフトウェアを不正に複製して使用される場合があった。
そのため、正規に購入したソフトウェアであるかどうかを検証し、ソフトウェアを保護する手段が施されている。
【０００４】
従来のソフトウェアの保護手段としては、ハードウェアキー方式やソフトウェアキー方式等があった。ハードウェアキー方式は、ソフトウェアに固有のキーが格納されたＵＳＢドングル等のハードウェアキーを用いる。ハードウェアキーは、ソフトウェア毎に１またはライセンスの数だけ作成され、ハードウェアキーを機器に装着している場合のみ、ソフトウェアを使用できるようにすることにより、ソフトウェアを保護するものである（例えば、特許文献１参照）。ただし、ハードウェアキー方式の保護方法では、ハードウェアキーの破損や紛失により、正規のソフトウェアが使用できなくなる場合があった。そのため、ソフトウェアキー方式の保護方法が便利である。ソフトウェアキー方式は、機器に、ＭＡＣアドレス等の機器に固有のユニークキーを格納する方式である。ソフトウェアのインストール時等に、ソフトウェアキーを機器のハードディスクに記憶させ、ソフトウェアキーを認証できたときのみにソフトウェアを使用できるようにすることにより、ソフトウェアを保護するものである（例えば、特許文献２，特許文献３，特許文献４，特許文献５参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２４４２６１号公報
【特許文献２】特開２００７−２０６９２８号公報
【特許文献３】特開２００４−８６４０４号公報
【特許文献４】特開２０１１−１９２０８３号公報
【特許文献５】特開２００４−２１３４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＰＣや産業機器等の機器に、正規のソフトウェアがインストールされている状態において、ソフトウェアがインストールされたハードディスクのデータ全てを、そっくり別のハードディスクに複写し、複写したハードディスクを他の機器に搭載して、他の機器で、不正に複写したソフトウェアおよびソフトウェアを搭載した機器を使用する場合があった。この場合、ハードウェアキー方式の保護方法では、不正使用を制限できない場合も有り、ソフトウェアキー方式の保護方法では、ユニークキーを書き換える等することにより、保護を無力化し、不正使用を制限できない場合も有った。
【０００７】
本発明は、容易に、ソフトウェアおよびソフトウェアを搭載した機器の不正使用を、高い確実性を持って制限することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のソフトウェアの保護方法は、ＯＳおよびソフトウェアを格納するハードディスクと、ＢＩＯＳを格納する書き換え不可能な記憶装置と、ＣＰＵとを備える機器のソフトウェア保護方法であって、あらかじめ、前記機器に固有の１または複数のキーコードを定数とする関数をアドレスの変換式として前記記憶装置に格納された前記ＢＩＯＳ内に記述し、前記ＯＳおよび前記ソフトウェアが要求する第１のアドレスは、前記変換式にて前記ハードディスクの物理アドレスである第２のアドレスに変換され、前記キーコードが一致する前記機器にて動作させた場合のみに前記機器が起動することを特徴とする。
【０００９】
また、本発明の機器は、ＯＳおよびソフトウェアを格納するハードディスクと、ＢＩＯＳを格納する書き換え不可能な記憶装置と、ＣＰＵと、前記記憶装置に格納されるＢＩＯＳに記述されるアドレスの変換式とを有し、前記変換式は機器に固有の１または複数のキーコードを定数とする関数であり、前記ＯＳおよび前記ソフトウェアが要求する第１のアドレスは、前記変換式にて前記ハードディスクの物理アドレスである第２のアドレスに変換されることを特徴とする。
【発明の効果】
【００１０】
以上のように、機器に固有なキーコードを定数としてアドレス変換式を規定し、ＢＩＯＳに組み込み、ＢＩＯＳで読み出すハードディスクのアドレスをアドレス変換式を用いて変換するようにＢＩＯＳを設定することにより、ソフトウェアが搭載される機器が変更されるとアドレス変換に異常をきたし、機器自体が起動できなくなり、容易に、ソフトウェアおよびソフトウェアを搭載した機器の不正使用を、高い確実性を持って制限することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のソフトウェアの保護方法が用いられる機器の概略構成を示す図
【図２】本発明のソフトウェアの保護方法におけるアドレスの変換式を説明する概念図
【図３】本発明のソフトウェアの不正使用を抑制する方法を説明する概略図
【図４】本発明のソフトウェアの保護方法を適用した機器の起動フローを示す図
【発明を実施するための形態】
【００１２】
図１を用いて、本発明のソフトウェアの保護方法について説明する。
図１は本発明のソフトウェアの保護方法が用いられる機器の概略構成を示す図である。
ＰＣやコンピュータを内蔵する産業用機器等の機器８は、電源が投入されることにより、ＣＰＵ３により、ＢＩＯＳ１のブートシーケンスが実行されて機器８が起動する。ＢＩＯＳ１は、機器８に内蔵されるＲＯＭ９等の記憶装置に記憶されており、機器８の製造時にＢＩＯＳ１が記憶され、一度記録すると書き換えることができない。ブートシーケンスは、ＯＳ４等の起動の際にハードディスク２に記録されたプログラムを実行する。プログラムの各命令は、ハードディスク２に格納され、それぞれの命令が格納されるハードディスク２の領域は、物理アドレス７で規定される。ＯＳ４等はハードディスク２の論理アドレス５を読み出してプログラムの命令を順次読み出す。この時、論理アドレス５と物理アドレス７は一致しておらず、ＢＩＯＳ１に格納された変換式６にて、ＣＰＵ３が論理アドレス５を物理アドレス７に変換して所定の命令をハードディスク２から読み出す。読み出された命令は、ＣＰＵ３等の演算器により実行される。
【００１３】
本発明の特徴は、ＢＩＯＳ１に格納された変換式６にある。変換式６は、ＣＰＵ３のシリアルナンバー等の機器８に固有なキーコードを定数として定められる。そのため、変換式６は機器８毎に定まり、同じ変換式６が他の機器８で用いられることはない。つまり、他の機器では変換式が異なる。また、変換式６はＢＩＯＳ１内に格納され、ＢＩＯＳ１は機器８に内蔵されるＲＯＭ９に記憶されるので、一度、ＲＯＭ９に記憶されると書き換えることはできない。また、機器８に固有なキーコードを複数用いて変換式６を定めると、変換式６の解読がより困難となり好ましい。
【００１４】
ソフトウェアをあらかじめインストールした産業用機器等の機器８が販売される場合がある。そして、ソフトウェアがインストールされたハードディスク２のデータ全てを、ソフトウェアを含めて異なるハードディスクに不正に複製し、複製したハードディスクを他の機器に搭載することにより、ソフトウェアを不正に使用する場合があった。本発明のソフトウェアの保護方法では、アドレスの変換式６をＲＯＭ９に記憶されるＢＩＯＳ１に書き込み、変換式６をＣＰＵ３のシリアルナンバー等の機器８に固有なキーコードを定数として定めることにより、ソフトウェアの不正な使用を阻止することができる。つまり、変換式６が機器８に固有なキーコードを定数として定められているため、ソフトウェアを格納したハードディスクを複製して他の機器に搭載した場合、機器８が異なるので定数となるキーコードが異なり、変換式６が不適切となり、論理アドレス５を物理アドレス７に変換したときに、物理アドレス７が適切なアドレスを示さなくなるため、機器８のブートシーケンスが不調となり、機器８が起動されなくなる。そのため、不正に複製されたプログラムだけでなく、その機器も使用できなくなるので、不正なプログラムの使用を阻止することができる。また、機器８のＢＩＯＳ１に変換式６が記録されていない機器８に、不正複写したハードディスク２を搭載した場合には、そもそも変換式６自体が存在しないので、機器８が起動せず、機器８およびソフトウェアを使用することができなくなる。
【００１５】
次に、図１，図２を用いて、アドレスの変換式６について説明する。
図２は本発明のソフトウェアの保護方法におけるアドレスの変換式を説明する概念図である。
【００１６】
産業用機器等の機器８には、ＣＰＵ３やハードディスク２等の様々な装置を構成要素として内蔵されている。また、ＣＰＵ３やハードディスク２等には、装置に固有なシリアルナンバー等のユニークなキーコードが付与されている。例えば、図２の例では、ＣＵＰ３にシリアルナンバーｋ１、ハードディスク２にシリアルナンバーｋ２が付与され、他の装置にもシリアルナンバーｋ３・・・が付与されているとする。また、ＯＳ４等がハードディスク２にアクセスする場合の論理アドレス５は、実際のハードディスク２の物理アドレス７とは異なっており、論理アドレス５を変換式６で変換することにより物理アドレス７を算出し、ハードディスク２にアクセスしている。
【００１７】
本発明では、変換式６を、１または複数の装置のキーコードを定数とする関数で定めることを特徴とする。図２の例では、シリアルナンバーｋ１，ｋ２，ｋ３を定数とする関数Ａ（ｋ１，ｋ２，ｋ３）を変換式６としている。そして、この変換式６を機器８の書き換え不可能な記憶装置に格納されるＢＩＯＳ１内に記憶させる。
【００１８】
このように、アドレスの変換式６を機器８に内蔵されている装置に固有なキーコードを用いて生成することにより、ソフトウェアを含むハードディスク２内のデータを、他の機器に不正に複製したとしても、変換式６の定数が一致しなくなる。
【００１９】
次に、図１〜図４を用いて、ソフトウェアの不正使用を抑制する方法について説明する。
図３は本発明のソフトウェアの不正使用を抑制する方法を説明する概略図、図４は本発明のソフトウェアの保護方法を適用した機器の起動フローを示す図である。
【００２０】
図３では、ハードディスク２に記録されていた、ＯＳ４，ソフトウェア等のデータを全てハードディスク１２に複製し、ハードディスク１２を機器８とは異なる機器１８に搭載している。機器１８のＣＰＵ１３のシリアルナンバーはｔ１であり、ハードディスク１２のシリアルナンバーはｔ２，他の装置１０のシリアルナンバーはｔ３であるとする。また、この機器１８のＢＩＯＳ１１にも、ユニークなキーコードを定数とする変換式１６が格納されているとする。
【００２１】
あらかじめ、機器８，１８のＲＯＭ９に機器８，１８にユニークなキーコードを定数とする関数からなる変換式６を格納する（図４のステップ１）。そして、変換式６をＲＯＭ９に格納した機器８，１８を出荷する（図４のステップ２）。その後、上述のように、機器８のハードディスク２のデータを機器１８のハードディスク１２に複製されたとする。
【００２２】
このような状態で、機器１８を起動しようとする際（図４のステップ３）、ＯＳ４等から論理アドレス５としてＡをアクセスする要求されたとする。正規に出荷された機器８の場合は、変換式６を用いて、適切にアドレス変換が行われ（図４のステップ４）、機器８が正常に起動し（図４のステップ５）、ソフトウェアは使用可能な状態になる（図４のステップ６）。しかしながら、不正にデータを複写した機器１８では、ＣＰＵ１３はＢＩＯＳ１１に格納された変換式１６を用いて、論理アドレス５を物理アドレス１７に変換する。本来、要求された論理アドレス５であるＡに対応する物理アドレス７はＡ’である。しかしながら、機器１８においては、機器８に内蔵される装置のシリアルナンバーが異なるため、変換式１６はＡ（ｔ１，ｔ２，ｔ３）となり、変換式６とは異なる関数となる。そのため、機器１８においては、論理アドレス５であるＡに対応する物理アドレス１７は、Ａ’ではなくＡ”になる（図４のステップ４）。これにより、機器１８の起動時に所望のデータにアクセスできなくなり、機器１８は起動することができなくなる（図４のステップ７）。よって、不正に複製されたソフトウェアは使用できない。
【００２３】
なお、上記説明では、機器１８にも変換式１６が格納されている場合を例に説明したが、そもそも、ユニークなキーコードを用いた変換式を備えない機器に、データを複写したハードディスクを搭載した場合には、変換式自体が無いので、同様に、ハードディスク１８の所望のアドレスにアクセスすることができず、機器１８の起動をすることができない。
【００２４】
さらに、ハードディスク２の不適切なアドレスにアクセスされた場合には、不正な複製がされたと判断して、ハードディスク２を初期化する等のルーチンをＢＩＯＳ１内に格納することもできる（図４のステップ８）。これにより、ソフトウェア等の不正使用があった場合には、ハードディスクが初期化され、確実にソフトウェアの不正使用を防止できると共に、抑止効果を期待することもできる。
【符号の説明】
【００２５】
１    ＢＩＯＳ
２    ハードディスク
３    ＣＰＵ
４    ＯＳ
５    論理アドレス
６    変換式
７    物理アドレス
８    機器
９    ＲＯＭ
１０    装置
１１    ＢＩＯＳ
１２    ハードディスク
１３    ＣＰＵ
１６    変換式
１７    物理アドレス
１８    機器
【図１】
2015210687.tif 000003
【図２】
2015210687.tif 000004
【図３】
2015210687.tif 000005
【図４】
2015210687.tif 000006