以下に、本開示の実施の形態にかかるデータ提供システムおよびデータ提供方法を図面に基づいて詳細に説明する。
実施の形態1.
図1は、実施の形態1にかかるデータ提供システムの構成を示す図である。データ提供システム1は、暗号化装置10と、認証管理装置(認証管理サーバ)20と、ストア装置(ストアサーバ)30と、復号装置40とを備えている。
データ提供システム1は、暗号化によって保護されたNCデータ50を提供するシステムである。NCデータ50は、ユーザが工作機械(NC工作機械)を使用する際、または工作機械が加工を実行する際に必要な、暗号化装置10または復号装置40に入力されて使用されるデータ、およびこのデータの利用に付随する情報である。
NCデータ50としては、例えば、NCプログラム、加工部品の図面、加工部品の形状データ、加工前に工作機械に取り付けられて加工に使用される工具および治具の段取り情報、補正データなどがある。また、NCデータ50としては、例えば、工具および治具のモデルデータ、加工を行う工作機械のパラメータ、工作機械モデルデータ、工作機械制御を行うためのPLC(プログラマブルロジックコントローラ、Programmable Logic Controller)プログラム、対象設備のオプションデータ、対象設備のNC装置に入力されて使用されるアプリケーションソフトウェアなどであってもよい。
NCデータ50は、例えば、工作機械または工作機械が加工するワークに対して固有のデータであり工作機械またはワーク毎に個別に作成される。なお、NCデータ50は、複数の工作機械、または複数のワークに対して適用可能なデータであってもよい。
暗号化装置10は、NCデータ50を暗号化するコンピュータである。暗号化装置10は、NCデータ50を暗号化して復号装置40に提供する。すなわち、暗号化装置10は、NCデータ50を提供する側の装置である。
暗号化装置10は、工作機械を制御するNC装置(数値制御装置)、工作機械の動作をシミュレーションするNCシミュレータ、または他のコンピュータにNCデータ50を入力可能となっている。NC装置は、NCデータ50を用いて工作機械を数値制御し、工作機械に加工を実行させるコンピュータである。また、NCシミュレータは、NCデータ50を用いて工作機械の動作をシミュレーションし、工作機械による加工をシミュレーションするコンピュータである。
暗号化装置10は、NCデータ記憶部11と、NCデータ暗号部12とを有している。また、暗号化装置10は、メモリ(図示せず)内にNCデータ暗号鍵A1を記憶している。
NCデータ記憶部11は、作成されたNCデータ50を記憶するメモリなどである。NCデータ50は、暗号化装置10で作成されてもよいし、他の装置で作成されてもよい。NCデータ暗号部12は、NCデータ記憶部11内から、秘匿を要する技術またはノウハウが含まれるNCデータ50を選択して暗号化する。NCデータ暗号部12は、暗号化装置10のユーザから入力される指示に従って、NCデータ50を選択する。NCデータ暗号鍵A1は、NCデータ50を暗号化する際に外部から入力されてもよいし、暗号化装置10に予め登録されていてもよい。
NCデータ暗号部12は、NCデータ記憶部11内のNCデータ50をNCデータ暗号鍵A1で暗号化することによって、暗号化したNCデータ50である暗号化NCデータ51を生成する。NCデータ暗号部12は、暗号化NCデータ51を、ストア装置30に出力する。
NCデータ暗号部12は、NCデータ暗号鍵A1とともに、NCデータ暗号鍵A1に対応するNCデータ復号鍵A2を保持している。NCデータ復号鍵A2は、NCデータ暗号鍵A1を復号するための復号鍵である。すなわち、NCデータ復号鍵A2は、NCデータ暗号鍵A1に対し一対となる復号鍵である。暗号化NCデータ51は、NCデータ復号鍵A2でのみ復号することができる。
NCデータ復号鍵A2は、NCデータ50を暗号化する際に外部から入力されてもよいし、暗号化装置10に予め登録されていてもよい。NCデータ暗号部12は、NCデータ復号鍵A2を認証管理装置20に出力する。
なお、NCデータ50が格納されるファイルは、後述する決済認証コードC1を追記する領域を有していてもよい。これにより、ユーザは、NCデータ50が格納されるファイルから決済認証コードC1を取り出すことが可能となる。
認証管理装置20は、復号装置40がNCデータ50を復号してもよい装置であるか否かを管理する。認証管理装置20は、決済認証コードC1を生成するコード生成部21と、生成された決済認証コードC1を記憶するコード記憶部22と、復号鍵記憶部23とを有している。決済認証コードC1は、NCデータ50の使用許諾を認証するためのコードである。
コード生成部21は、NCデータ復号鍵A2および装置認証コードB1を含むデータをNCデータ暗号鍵で暗号化することによって、決済認証コードC1を生成する。装置認証コードB1は、復号装置40がNCデータ50を復号してもよい装置であるか否かを判断するための情報である。すなわち、装置認証コードB1は、暗号化NCデータ51の使用が許可されている対象に固有のコード(対象認証コード)である。換言すると、装置認証コードB1は、暗号化NCデータ51を使用することができる装置、またはそのユーザを認識するためのデータである。
装置認証コードB1は、NC装置、NC装置を使用するユーザ、NCシミュレータ、NCシミュレータのユーザ、工作機械を所有する団体(会社など)、工作機械の機種、工作機械を製造するメーカ、または工作機械の販売会社の何れかに紐付けられている。
コード生成部21は、決済認証コードC1を生成するとともに、コード復号鍵C2を生成する。コード復号鍵C2は、決済認証コードC1を復号するための復号鍵である。すなわち、コード復号鍵C2は、決済認証コードC1の暗号化に用いられたNCデータ暗号鍵に対し一対となる復号鍵である。決済認証コードC1は、コード復号鍵C2でのみ復号することができる。暗号化装置10が用いるNCデータ暗号鍵A1が第1の暗号鍵であり、コード生成部21が決済認証コードC1の生成に用いるNCデータ暗号鍵が第2の暗号鍵である。
復号鍵記憶部23は、コード復号鍵C2を記憶する。認証管理装置20は、暗号化装置10または復号装置40から指定された、決済認証コードC1およびコード復号鍵C2を復号装置40に出力する。
ストア装置30は、暗号化NCデータ51を保存および配信する装置である。ストア装置30は、インターネットを経由して復号装置40に暗号化NCデータ51を配信する。ストア装置30は、暗号化NCデータ51を記憶するNCデータ記憶部31を有している。NCデータ記憶部31は、暗号化装置10から送られてくる暗号化NCデータ51を受け付けて記憶する。NCデータ記憶部31は、暗号化NCデータ51を復号装置40からダウンロード可能な状態で記憶する。
復号装置40は、NCデータ50を復号するコンピュータである。復号装置40は、数値制御装置、数値制御シミュレータ、または他のコンピュータにNCデータ50を入力可能となっている。復号装置40からNCデータ50が入力される数値制御装置または数値制御シミュレータも、NCデータ50を用いて工作機械を数値制御し、工作機械に加工を実行させる。
復号装置40は、コード入力部42と、NCデータ復号部43と、NCデータ記憶部41とを備えている。また、復号装置40は、メモリ(図示せず)内に装置ID(IDentification、識別)コードB2を記憶している。
装置IDコードB2は、復号装置40に固有のコード(対応コード)である。復号装置40が装置認証コードB1に対応する情報である装置IDコードB2を記憶している場合、復号装置40は、NCデータ50を復号してもよい装置であると認められる。装置認証コードB1および装置IDコードB2は、例えば、NC装置の識別情報、NCシミュレータの識別情報である。装置認証コードB1が、第1の復号鍵であり、装置IDコードB2が、第2の復号鍵である。装置IDコードB2は、装置認証コードB1と同じデータであってもよいし、装置認証コードB1に対応する異なるデータであってもよい。装置IDコードB2は、復号装置40に固有のコードである。
コード入力部42は、認証管理装置20から送られてくる決済認証コードC1およびコード復号鍵C2を受け付ける。コード入力部42は、決済認証コードC1およびコード復号鍵C2をNCデータ復号部43に入力する。
NCデータ復号部43は、ストア装置30から暗号化NCデータ51をダウンロードすることで、暗号化NCデータ51を読み出す。また、NCデータ復号部43は、決済認証コードC1およびコード復号鍵C2を用いて、暗号化NCデータ51を復号する。具体的には、NCデータ復号部43は、コード復号鍵C2によって、決済認証コードC1を復号することで、暗号化NCデータ51から、NCデータ復号鍵A2および装置認証コードB1を取り出す。そして、NCデータ復号部43は、装置IDコードB2が装置認証コードB1に対応しているか否かを判定する。すなわち、NCデータ復号部43は、復号した装置認証コードB1と、復号装置40に固有の装置IDコードB2とを比較し、決済認証コードC1の使用有効性を確認する。
NCデータ復号部43は、予め保持しておいた装置IDコードB2が装置認証コードB1に対応している場合、NCデータ復号鍵A2によって、暗号化NCデータ51を復号する。すなわち、NCデータ復号部43は、決済認証コードC1の使用有効性を確認できた場合、復号したNCデータ復号鍵A2を用いて、暗号化NCデータ51を復号する。
なお、複数の復号装置40が同一の装置IDコードB2を記憶しておいてもよい。この場合、暗号化NCデータ51は、装置IDコードB2を記憶している複数の復号装置40によって復号される。
また、装置認証コードB1は、複数のNC装置または複数のNCシミュレータに紐づけられていてもよい。この場合、暗号化NCデータ51は、複数のNC装置または複数のNCシミュレータで用いられる。
なお、暗号化装置10は、NC装置(後述する第1のNC装置120)の内部に配置されてもよいし、第1のNC装置120の外部に配置されてもよい。また、復号装置40は、NC装置(後述する第2のNC装置130)の内部に配置されてもよいし、第2のNC装置130の外部に配置されてもよい。また、ストア装置30および認証管理装置20は、クラウドなどに格納されてもよい。
図2は、実施の形態1にかかるデータ提供システムによるデータ提供の処理手順を示すフローチャートである。暗号化装置10のNCデータ暗号部12は、NCデータ暗号鍵A1でNCデータ50を暗号化する(ステップS10)。
暗号化装置10は、暗号化NCデータ51およびNCデータ復号鍵A2を出力する(ステップS20)。具体的には、暗号化装置10は、暗号化NCデータ51をストア装置30に出力し、NCデータ復号鍵A2を認証管理装置20に出力する。
ストア装置30のNCデータ記憶部31は、暗号化NCデータ51を受け付けて記憶しておく(ステップS30)。
認証管理装置20のコード生成部21は、NCデータ復号鍵A2を受け付ける(ステップS40)。認証管理装置20のコード生成部21は、NCデータ復号鍵A2と復号装置40に対応する装置認証コードB1とを含むデータを暗号化することによって、NCデータ復号鍵A2および装置認証コードB1を含む決済認証コードC1を生成する(ステップS50)。
また、コード生成部21は、決済認証コードC1を復号するための復号鍵であるコード復号鍵C2を生成する(ステップS60)。認証管理装置20は、復号装置40から要求があると、決済認証コードC1およびコード復号鍵C2を、復号装置40に出力する(ステップS70)。
また、復号装置40は、ストア装置30のNCデータ記憶部31から暗号化NCデータ51を読み出す(ステップS80)。
なお、ステップS30の処理と、ステップS40~S60の処理とは、何れが先に実行されてもよい。
復号装置40は、決済認証コードC1、コード復号鍵C2、および暗号化NCデータ51を受け付ける(ステップS90)。具体的には、復号装置40のコード入力部42は、認証管理装置20から決済認証コードC1およびコード復号鍵C2を受け付ける。また、復号装置40のNCデータ復号部43は、ストア装置30から暗号化NCデータ51を受け付ける。
復号装置40のNCデータ復号部43は、コード復号鍵C2を用いて、決済認証コードC1を復号する(ステップS100)。これにより、NCデータ復号部43は、決済認証コードC1からNCデータ復号鍵A2および装置認証コードB1を取り出す。
復号装置40のNCデータ復号部43は、記憶しておいた復号装置40に固有の装置IDコードB2と、復号した装置認証コードB1とを比較する(ステップS110)。復号装置40のNCデータ復号部43は、装置認証コードB1および装置IDコードB2の比較に基づいて、決済認証コードC1が有効であるか否かを判定する(ステップS120)。
復号装置40のNCデータ復号部43は、決済認証コードC1が有効である場合(ステップS120、Yes)、すなわち装置IDコードB2が装置認証コードB1に対応している場合、NCデータ復号鍵A2によって、暗号化NCデータ51を復号する(ステップS130)。一方、復号装置40のNCデータ復号部43は、決済認証コードC1が無効である場合(ステップS120、No)、暗号化NCデータ51を復号しない。
復号装置40は、暗号化NCデータ51を復号することによってNCデータ50を取得することができる。復号装置40は、NCデータ50を取得できた場合、NCデータ50に対応する処理、例えばNCデータ50を用いた数値制御などを実行する。
ここで、第1のNC装置120が実行する処理、第2のNC装置130が実行する処理、および比較例のNC装置(後述する比較対象NC装置110)が実行する処理について説明する。第1のNC装置120および第2のNC装置130は、工作機械(NC工作機械)に適用され、工作機械を制御するコンピュータである。
ここでは、NCデータ50が、NCプログラム52である場合について説明する。まず、比較対象NC装置110が実行する処理について説明する。図3は、比較対象NC装置が実行する処理を説明するための図である。
比較例のNC装置である比較対象NC装置110が実行する処理は、NCプログラム52を用いた工作機械6Aの数値制御処理である。比較対象NC装置110は、NCデータ記憶部11と、プログラム解析部13と、補間処理部14Aと、軸制御部15Aとを有している。また、工作機械6Aは、X軸モータ61Aと、Y軸モータ62Aと、Z軸モータ63Aとを有している。
比較対象NC装置110のNCデータ記憶部11は、外部から入力されるNCプログラム52を受け付けて記憶しておく。プログラム解析部13は、NCデータ記憶部11からNCプログラム52を読み出して解析する。プログラム解析部13は、例えば、Gコード(軸移動等に関する指令)などを解析する。
補間処理部14Aは、プログラム解析部13による解析結果に基づいて、工作機械6Aを制御するための制御データを生成し、軸制御部15Aに送る。軸制御部15Aは、補間処理部14Aが生成した制御データを用いて、X軸モータ61A、Y軸モータ62A、およびZ軸モータ63Aを制御する。
比較対象NC装置110は、Gコード、Tコード、Mコード等を組み合わせた文字列(テキスト)で記述されたNCプログラム52を、NCデータ記憶部11に読み込み、1命令毎にNCプログラム52を順次解析する。そして、比較対象NC装置110では、工作機械6Aを制御する軸(X軸モータ61A、Y軸モータ62A、およびZ軸モータ63A)を駆動し、工作機械6Aを制御して加工を行う。NCプログラム52は、工作機械6Aが加工する部品の形状、要求される加工精度等によって、適切な工具および適切な工程順が規定されたプログラムである。このNCプログラム52は、作業者のノウハウなどに基づいて作成されており、NCプログラム52に関連する加工技術は、加工を請け負う業者にとって、重要な技術資産であるといえる。
しかしながら、比較対象NC装置110が用いるNCプログラム52は、文字列(テキスト)で記述されているので、第3者によってNCプログラム52が入手されると、第3者はNCプログラム52を解読することが可能である。すなわち、NCプログラム52は、暗号化されていないので、第3者によってNCプログラム52の内容が解析されると、NCプログラム52に関連する加工技術が第3者に漏洩してしまう。
図4は、実施の形態1にかかる第1のNC装置が実行する処理を説明するための図である。ここでは、第1のNC装置120が暗号化装置10を備えている場合について説明するが、暗号化装置10は、第1のNC装置120の外部に配置されてもよい。
実施の形態1の第1のNC装置120は、NCプログラム52を用いた工作機械6Aの数値制御処理と、NCプログラム52の暗号化とを実行する。第1のNC装置120は、比較対象NC装置110が有する構成要素に加えて、暗号化装置10を備えている。すなわち、暗号化装置10は、NCデータ暗号部12と、NCデータ記憶部11と、プログラム解析部13と、補間処理部14Aと、軸制御部15Aとを有している。
暗号化装置10のNCデータ暗号部12は、暗号化装置10に入力済みでNCデータ記憶部11で記憶しているNCプログラム52を、NCデータ暗号鍵A1で暗号化し、暗号化によって得られた暗号化NCプログラム53をストア装置30に出力する。すなわち、NCデータ暗号部12は、NCプログラム52を、NCデータ暗号鍵A1で暗号化することによって暗号化NCプログラム53を生成し、ストア装置30に出力する。
また、NCデータ暗号部12は、NCデータ暗号鍵A1に対応するNCデータ復号鍵A2を、認証管理装置20に出力する。これにより、NCデータ復号鍵A2が、認証管理装置20に登録される。このように、暗号化装置10は、NCプログラム52を暗号化して秘匿化する。
暗号化装置10が出力する暗号化NCプログラム53は、暗号化されているので、第3者は、暗号化NCプログラム53を解読できない。したがって、暗号化装置10は、NCプログラム52に関連する加工技術が第3者に漏洩してしまうことを防止できる。
なお、暗号化装置10は、NCデータ50を、NCシミュレータに入力してもよい。この場合のNCシミュレータは、第1のNC装置120および工作機械6Aが実行する処理をシミュレーションする。暗号化装置10からNCデータ50が入力されるNCシミュレータは、シミュレーションを実行することで、工作機械6Aが実際の加工を行う前に、事前に加工の検証を行うことができる。
図5は、実施の形態1にかかる第2のNC装置が実行する処理を説明するための図である。ここでは、第2のNC装置130が復号装置40を備えている場合について説明するが、復号装置40は、第2のNC装置130の外部に配置されてもよい。
実施の形態1の第2のNC装置130は、NCプログラム52の復号と、NCプログラム52を用いた工作機械7Aの数値制御処理とを実行する。工作機械7Aは、工作機械6Aと同一種類の工作機械である。工作機械7Aは、工作機械6Aと同様に、X軸モータ61Aと、Y軸モータ62Aと、Z軸モータ63Aとを有している。
第2のNC装置130は、比較対象NC装置110が有する構成要素に加えて、復号装置40を備えている。すなわち、第2のNC装置130は、比較対象NC装置110が有する構成要素に加えて、コード入力部42と、NCデータ復号部43とを有している。この復号装置40は、NCデータ記憶部11の代わりに、NCデータ記憶部41を有している。すなわち、復号装置40は、コード入力部42と、NCデータ復号部43と、NCデータ記憶部41と、プログラム解析部13と、補間処理部14Aと、軸制御部15Aとを有している。
復号装置40は、暗号化装置10が作成した暗号化NCプログラム53を、工作機械7Aを制御するために用いる。暗号化NCプログラム53は、暗号化によって秘匿化されているので、復号装置40は、そのままではプログラムとして読み込むことができない。復号装置40は、暗号化NCプログラム53を復号し、復号によって得られたNCプログラム52によって工作機械7Aを制御する。
具体的には、復号装置40のコード入力部42は、認証管理装置20から、決済認証コードC1およびコード復号鍵C2を取得する。NCデータ復号部43は、コード復号鍵C2によって決済認証コードC1を復号する。これにより、NCデータ復号部43は、決済認証コードC1からNCデータ復号鍵A2および装置認証コードB1を取得する。
装置認証コードB1は、復号装置40が予め記憶しておいた装置IDコードB2に対応するコードである。したがって、NCデータ復号部43は、暗号化NCプログラム53の復号許可を得ることができる。NCデータ復号部43は、NCデータ復号鍵A2を用いて、暗号化NCプログラム53を復号する。これにより、復号装置40は、NCプログラム52を得る。NCデータ復号部43は、復号によって得られたNCプログラム52をプログラム解析部13に送る。これにより、第2のNC装置130は、復号によって得られたNCプログラム52を用いて、第1のNC装置120と同一の加工を行うことができる。
なお、復号装置40は、NCデータ50を、NCシミュレータに入力してもよい。この場合のNCシミュレータは、第2のNC装置130および工作機械7Aが実行する処理をシミュレーションする。復号装置40からNCデータ50が入力されるNCシミュレータは、シミュレーションを実行することで、工作機械6Aが実際の加工を行う前に、事前に加工の検証を行うことができる。
また、暗号化装置10は複数であってもよい。その場合、ストア装置30は、各暗号化装置10により暗号化された暗号化NCデータ51を格納する。復号装置40は、その複数の暗号化装置10により暗号化された複数の暗号化NCデータ51から必要な暗号化NCデータ51を選択する。これにより、暗号化装置10は、他の暗号化装置10等にNCデータ50の内容を知られずに、当該NCデータ50を必要とする復号装置40のみにNCデータ50を提供することができる。復号装置40は、従来は流出、模造等の問題により複数の暗号化装置10に個別にアクセスが行われていたが、複数の暗号化装置10が提供する暗号化NCデータ51についても、同じストア装置30で選択でき利便性が向上する。
このように実施の形態1では、認証管理装置20が、NCデータ50の暗号化に用いられた第1の暗号鍵に対応するNCデータ復号鍵A2を格納した決済認証コードC1を生成して第2の暗号鍵で暗号化している。そして、認証管理装置20が、第2の暗号鍵に対応するコード復号鍵C2と暗号化された決済認証コードC1とを復号装置40に出力している。復号装置40は、ストア装置30から暗号化NCデータ51を受け付けるとともに認証管理装置20からコード復号鍵C2および暗号化された決済認証コードC1を受け付けている。そして、復号装置40は、暗号化された決済認証コードC1をコード復号鍵C2で復号することによって決済認証コードC1からNCデータ復号鍵A2を取り出し、暗号化NCデータ51をNCデータ復号鍵A2で復号することによってNCデータ50を取り出している。これにより、データ提供システム1は、第2のNC装置130に予め格納されていない追加のNCデータ50を、秘匿化して復号装置40に提供することが可能となる。したがって、データ提供システム1は、技術またはノウハウが格納されたNCデータ50の流出または模造を防ぐことができる。
実施の形態2.
つぎに、図6から図8を用いて実施の形態2について説明する。実施の形態2では、NCプログラム52と、加工の段取りを指示するデータと、加工結果を示すデータとを含んだNCデータ50が暗号化されて復号装置40に提供される。
図6は、実施の形態2にかかるデータ提供システムの構成を示す図である。図6の各構成要素のうち図1に示す実施の形態1のデータ提供システム1と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
実施の形態2のデータ提供システム2は、実施の形態1のデータ提供システム1と同様に、暗号化装置10と、認証管理装置20と、ストア装置30と、復号装置40とを備えている。
実施の形態2では、暗号化装置10のNCデータ記憶部11が記憶するNCデータ50が、NCプログラム52と、段取指示データ71と、加工部品モデル72とを含んでいる。
段取指示データ71および加工部品モデル72は、NCプログラム52に付随するデータである。段取指示データ71は、加工開始前の加工の段取りを説明したドキュメントデータまたは図面データである。加工部品モデル72は、工作機械6Aによる加工結果を3Dモデル化したモデルデータである。
データ提供システム2は、図2で説明したデータ提供システム1と同様の処理手順によってNCデータ50が復号装置40に提供される。すなわち、実施の形態2でも、実施の形態1と同様に、暗号化装置10が、NCデータ50を暗号化する。そして、復号装置40が、コード復号鍵C2を用いて決済認証コードC1を復号することで、NCデータ復号鍵A2を取り出す。さらに、復号装置40は、NCデータ復号鍵A2を用いて、暗号化NCデータ51を復号し、NCデータ50を取得する。すなわち、復号装置40は、NCプログラム52と、段取指示データ71と、加工部品モデル72とを含んだNCデータ50を取得する。
データ提供システム2では、シミュレータが、暗号化装置10を用いてNCデータ50を暗号化し、第2のNC装置が、復号装置40を用いて暗号化NCデータ51を復号する。
図7は、実施の形態2にかかるNCシミュレータが実行する処理を説明するための図である。ここでは、NCシミュレータ81が暗号化装置10を備えている場合について説明するが、暗号化装置10は、NCシミュレータ81の外部に配置されてもよい。
実施の形態2のNCシミュレータ81は、仮想工作機械6Bのモデルを模擬し、秘匿化したいNCデータ50に含まれるNCプログラム52を用いて、加工のシミュレーションを行えるものとする。すなわち、NCシミュレータ81は、NCプログラム52を用いた仮想工作機械6Bの数値制御シミュレーションと、NCプログラム52が含まれるNCデータ50の暗号化とを実行する。
仮想工作機械6Bは、工作機械6Aの動作を模擬する。したがって、仮想工作機械6Bは、X軸モータ61Aの動作を仮想的に実行する仮想X軸モデル61Bと、Y軸モータ62Aの動作を仮想的に実行する仮想Y軸モデル62Bと、Z軸モータ63Aの動作を仮想的に実行する仮想Z軸モデル63Bとを備えている。
NCシミュレータ81は、暗号化装置10と、プログラム解析部13と、仮想補間処理部14Bと、仮想軸制御部15Bとを備えている。すなわち、NCシミュレータ81は、第1のNC装置120と比較して、補間処理部14Aの代わりに仮想補間処理部14Bを備え、軸制御部15Aの代わりに仮想軸制御部15Bを備えている。
仮想補間処理部14Bは、プログラム解析部13による解析結果に基づいて、仮想工作機械6Bを制御するための仮想制御データを生成し、仮想軸制御部15Bに送る。仮想軸制御部15Bは、仮想補間処理部14Bが生成した仮想制御データを用いて、仮想X軸モデル61B、仮想Y軸モデル62B、および仮想Z軸モデル63Bを制御する。このように、仮想補間処理部14Bは、補間処理部14Aの動作を模擬し、仮想軸制御部15Bは、軸制御部15Aの動作を模擬する。
実施の形態2のNCデータ暗号部12は、実施の形態1のNCデータ暗号部12と同様の処理によってNCデータ50を暗号化し、ストア装置30に登録する。実施の形態2のNCデータ暗号部12が暗号化するNCデータ50は、NCプログラム52と、段取指示データ71と、加工部品モデル72とを含んでいる。
また、実施の形態2のNCデータ暗号部12は、実施の形態1のNCデータ暗号部12と同様に、暗号化NCデータ51を復号するためのNCデータ復号鍵A2を、認証管理装置20に登録する。
実施の形態2でも暗号化装置10が出力するNCデータ50は、暗号化されているので、第3者は、暗号化NCデータ51を解読できない。したがって、暗号化装置10は、NCデータ50に関連する加工技術が第3者に漏洩してしまうことを防止できる。
なお、暗号化装置10は、NCデータ50を、第1のNC装置120に入力してもよい。この場合の第1のNC装置120は、NCデータ50に含まれるNCプログラム52を用いて工作機械6Aを制御する。
図8は、実施の形態2にかかる第2のNC装置が実行する処理を説明するための図である。ここでは、第2のNC装置130が復号装置40を備えている場合について説明するが、復号装置40は、第2のNC装置130の外部に配置されてもよい。
実施の形態2でもNCデータ復号部43は、実施の形態1のNCデータ復号部43と同様の処理によって暗号化NCデータ51を復号し、NCデータ50を取得する。復号装置40は、NCデータ50に含まれているNCプログラム52をプログラム解析部13に送る。
実施の形態2でも実施の形態1と同様に、第2のNC装置130は、NCデータ50を用いて工作機械7Aを数値制御することで、工作機械6Aと同一の加工を行うことができる。
また、NCデータ復号部43は、復号したNCデータ50に付随する、段取指示データ71および加工部品モデル72を、表示操作部150に表示させる。これにより、第2のNC装置130のユーザは、NCプログラム52に対応する段取指示データ71を参照しながら、加工開始前の加工の段取りを確実に行うことができる。また、第2のNC装置130のユーザは、NCプログラム52に対応する加工部品モデル72を参照しながら、加工を実行することができる。表示操作部150は、工作機械7Aが備えていてもよいし、工作機械7A以外の装置が備えていてもよい。
なお、復号装置40は、NCデータ50を、NCシミュレータに入力してもよい。この場合のNCシミュレータは、第2のNC装置130および工作機械7Aが実行する処理をシミュレーションする。また、NCデータ50には、段取指示データ71および加工部品モデル72の少なくとも一方が含まれていればよい。
また、暗号化装置10は複数であってもよい。その場合、ストア装置30は、各暗号化装置10により暗号化された暗号化NCデータ51を格納する。復号装置40は、その複数の暗号化装置10により暗号化された複数の暗号化NCデータ51から必要な暗号化NCデータ51を選択する。これにより、暗号化装置10は、他の暗号化装置10等にNCデータ50の内容を知られずに、当該NCデータ50を必要とする復号装置40のみにNCデータ50を提供することができる。復号装置40は、従来は流出、模造等の問題により複数の暗号化装置10に個別にアクセスが行われていたが、複数の暗号化装置10が提供する暗号化NCデータ51についても、同じストア装置30で選択でき利便性が向上する。
このように実施の形態2によれば、NCデータ50に段取指示データ71および加工部品モデル72が含まれているので、第2のNC装置130のユーザは、段取指示データ71および加工部品モデル72を参照することが可能となる。
実施の形態3.
つぎに、図9から図12を用いて実施の形態3について説明する。実施の形態3では、NCプログラム52と、オプションデータ(後述するオプションデータ73)とを含んだNCデータ50が暗号化されて復号装置40に提供される。
図9は、実施の形態3にかかるデータ提供システムの構成を示す図である。図9の各構成要素のうち図1に示す実施の形態1のデータ提供システム1と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
実施の形態3のデータ提供システム3は、実施の形態1のデータ提供システム1が備える構成要素に加えて、EC(イーシー、Electronic Commerce)決済サーバ91を備えている。EC決済サーバ91は、ストア装置30から配信される暗号化NCデータ51の購入手続き処理および決済処理を行う装置である。認証管理装置20は、EC決済サーバ91に対してNCデータ50の購入または課金が行われたことを確認できた場合に、決済認証コードC1およびコード復号鍵C2を生成し、復号装置40に送る。
実施の形態3では、NCデータ暗号部12が暗号化するNCデータ50が、NCプログラム52と、段取指示データ71と、オプションデータ73とを含んでいる。なお、段取指示データ71の図示は省略している。以下、実施の形態3の段取指示データ71も、実施の形態2の段取指示データ71と同様であるのでその説明は省略する。
オプションデータ73は、NCプログラム52に付随するデータである。オプションデータ73は、NCプログラム52を使用するために必要なデータである。オプションデータ73の例は、オプションの付加機能を有効または無効にするデータである。
NCデータ暗号部12は、NCプログラム52と、このNCプログラム52のオプションデータ73とをセットにして、NCデータ暗号鍵A1を用いて暗号化する。これにより、NCデータ暗号部12は、NCプログラム52とオプションデータ73とをセットにした暗号化NCデータ51を生成する。
データ提供システム3では、図2で説明したデータ提供システム1と同様の処理手順によってNCデータ50が復号装置40に提供される。この場合において、実施の形態3では、復号装置40のユーザが用いる図示しないPC(以下、ユーザPCという)が、ユーザからの指示に従って、NCプログラム52およびオプションデータ73を含んだNCデータ50(以下、単にNCデータ50という場合がある)を販売するストア装置30にアクセスする。ユーザPCは、ユーザからの指示に従って、ストア装置30に、NCデータ50を復号装置40に登録する要求を行う。
復号装置40のユーザは、NCデータ50を販売するストア装置30に代金を支払う。この代金の支払い手続きは、例えば、ユーザPC、ストア装置30、およびEC決済サーバ91の間で行われる。
EC決済サーバ91は、NCデータ50に対して購入または課金されたことを確認すると、NCデータ50が復号装置40によって購入されたことを認証管理装置20およびストア装置30に通知する。
認証管理装置20およびストア装置30は、EC決済サーバ91からの通知に対して、通知を受け付けたことを回答する。また、認証管理装置20は、実施の形態3のNCデータ50に対応する決済認証コードC1およびコード復号鍵C2を生成し、復号装置40に送る。
なお、認証管理装置20は、NCデータ50に対応する決済認証コードC1およびコード復号鍵C2を復号装置40に送信したことをEC決済サーバ91に通知してもよい。また、ストア装置30は、NCデータ50に対応する暗号化NCデータ51が、復号装置40によって読み出されたことをEC決済サーバ91に通知してもよい。
なお、実施の形態3の認証管理装置20およびストア装置30は、インターネットを経由して接続可能なサーバであることが望ましい。
図10は、実施の形態3にかかるNCシミュレータが実行する処理を説明するための図である。なお、図10で説明する処理のうち、図7で説明した処理と同様の処理については、その説明を省略する。ここでは、NCシミュレータ82が暗号化装置10を備えている場合について説明するが、暗号化装置10は、NCシミュレータ82の外部に配置されてもよい。
実施の形態3のNCシミュレータ82は、実施の形態2のNCシミュレータ81が備える構成要素に加えて、使用オプション解析部16Bを備えている。また、NCシミュレータ82が備えるNCデータ記憶部11は、NCプログラム52と全体オプションデータ77とを記憶しておく。全体オプションデータ77は、第2のNC装置130などの種々のNC装置で使用可能な全てのオプションデータが格納されたデータである。
使用オプション解析部16Bは、秘匿されるNCプログラム52を解析し、このNCプログラム52で使用されるオプションを解析し、NCプログラム52で使用されるオプションの情報をまとめる。具体的には、使用オプション解析部16Bは、NCプログラム52で使用されるオプションのオプションデータ73を、全体オプションデータ77から抽出する。
実施の形態3のNCデータ暗号部12は、実施の形態1のNCデータ暗号部12と同様の処理によってNCデータ50を暗号化し、ストア装置30に登録する。実施の形態3のNCデータ暗号部12が暗号化するNCデータ50は、NCプログラム52と、オプションデータ73とを含んでいる。
また、実施の形態3のNCデータ暗号部12は、実施の形態1のNCデータ暗号部12と同様に、暗号化NCデータ51を復号するためのNCデータ復号鍵A2を、認証管理装置20に登録する。
実施の形態3でも暗号化装置10が出力するNCデータ50は、暗号化されているので、第3者は、暗号化NCデータ51を解読できない。したがって、暗号化装置10は、NCデータ50に関連する加工技術が第3者に漏洩してしまうことを防止できる。
なお、暗号化装置10は、NCデータ50を、第1のNC装置120に入力してもよい。この場合の第1のNC装置120は、NCデータ50に含まれるNCプログラム52を用いて工作機械6Aを制御する。
図11は、実施の形態3にかかる第2のNC装置が実行する第1の処理を説明するための図である。ここでは、第2のNC装置130が復号装置40を備えている場合について説明するが、復号装置40は、第2のNC装置130の外部に配置されてもよい。第2のNC装置130が実行する第1の処理には、実施の形態1で説明した第2のNC装置130が実行する処理と、オプションデータ73を用いた加工処理とが含まれている。
実施の形態3では、復号装置40が、ユーザからの指示に従って、NCプログラム52およびオプションデータ73を含んだNCデータ50を指定して、EC決済サーバ91に購入要求または課金要求を行う。
EC決済サーバ91は、指定されたNCデータ50が復号装置40によって購入されたことを認証管理装置20およびストア装置30に通知する。これにより、実施の形態3の認証管理装置20およびストア装置30は、実施の形態2の認証管理装置20およびストア装置30と同様の処理を実行する。
すなわち、実施の形態3でもNCデータ復号部43は、実施の形態1のNCデータ復号部43と同様の処理によって暗号化NCデータ51を復号し、NCデータ50を取得する。このNCデータ50は、NCプログラム52と、オプションデータ73とを含んでいる。復号装置40は、NCプログラム52およびオプションデータ73をプログラム解析部13に送る。
第2のNC装置130は、NCプログラム52を用いて加工を行う際に、オプションデータ73に基づいて、NCプログラム52を使用するために必要なオプションを有効化する。
これにより、実施の形態3でも実施の形態1と同様に、第2のNC装置130は、NCデータ50を用いて工作機械7Aを数値制御することで、仮想工作機械6Bと同一の加工を行うことができる。すなわち、第2のNC装置130は、オプションデータ73に対応するオプションを用いて加工を実行することができる。
実施の形態3の第2のNC装置130は、これまでに保持していたオプションデータ73Aに、新たに復号したオプションデータ73を格納して保持しておく。この後、実施の形態3の第2のNC装置130は、NCプログラム52を用いて加工を行う際には、オプションデータ73が格納されたオプションデータ73Aを読み出し、NCプログラム52およびオプションデータ73Aを用いて加工を行う。これにより、第2のNC装置130は、NCプログラム52を用いて工作機械67を制御する際に、オプションデータ73に対応した付加機能を用いて工作機械7Aを制御することができる。
このように、実施の形態3の第2のNC装置130は、復号装置40で選択された実際に加工を行うNCプログラム52の実行に応じて、必要なオプションデータ73を使用することができる。これにより、第2のNC装置130を適用するメーカは、オプションデータ73を適用する必要が生じた際に、オプションデータ73を購入すればよい。したがって、第2のNC装置130を適用するメーカは、工作機械7Aの導入時に、導入時点で不要なオプションデータ73を購入しておく必要がなくなり、初期投資を低減することができる。
なお、復号装置40は、NCデータ50を、NCシミュレータに入力してもよい。この場合のNCシミュレータは、第2のNC装置130および工作機械7Aが実行する処理をシミュレーションする。
なお、オプションデータ73には、使用条件が設定されてもよい。この場合、第2のNC装置130は、第1の処理に使用条件を用いた処理を含めた第2の処理を実行する。
図12は、実施の形態3にかかる第2のNC装置が実行する第2の処理を説明するための図である。ここでは、第2のNC装置130が復号装置40を備えている場合について説明するが、復号装置40は、第2のNC装置130の外部に配置されてもよい。第2のNC装置130が実行する第2の処理には、実施の形態1で説明した第2のNC装置130が実行する処理と、オプションデータ73を用いた加工処理と、使用条件情報75に基づいてオプションを有効または無効に設定する処理とが含まれている。なお、図12では、オプションデータ73,73Aの図示を省略している。
第2のNC装置130が第2の処理を実行する場合、ユーザPCが、ユーザからの指示に従って、オプションデータ73の使用回数、使用時間、使用日数、または有効期限を要求するための使用条件の情報である使用条件要求74をEC決済サーバ91に送信する。オプションの使用回数は、1つの加工を行うサイクルの実行回数であってもよいし、オプションのプログラム命令の指令回数であってもよい。
このように、ユーザPCは、EC決済サーバ91を通じてオプションデータ73の手配を行う際に、暗号化NCデータ51のNCプログラム52で必要なオプション毎に、1つの加工を行うサイクルの実行回数、オプションのプログラム命令の指令回数、使用時間、使用日数、または有効期限が選択された使用条件要求74をEC決済サーバ91に送信する。
EC決済サーバ91は、使用条件要求74に応じた料金をユーザPCに請求し、使用条件要求74に応じた料金が支払われると、使用条件要求74と復号装置40とを対応付けした情報を認証管理装置20に送る。
認証管理装置20は、使用条件要求74に対応する使用条件の情報である使用条件情報75を決済認証コードC1に含める。例えば、認証管理装置20は、使用条件要求74に対応する使用条件の情報である使用条件情報75を装置認証コードB1に付加する。この後、認証管理装置20およびストア装置30は、図11で説明した処理と同様の処理を実行する。ストア装置30が、記憶しておくNCデータ50には、図9で説明したように、NCプログラム52と、オプションデータ73とが含まれている。
また、復号装置40は、図11で説明した処理と同様の処理を実行する。すなわち、復号装置40は、コード復号鍵C2を用いて決済認証コードC1を復号し、NCデータ復号鍵A2を用いて暗号化NCデータ51を復号する。これにより、復号装置40は、使用条件情報75が付加された装置認証コードB1と、NCプログラム52と、オプションデータ73とを取得することができる。復号装置40は、NCプログラム52、オプションデータ73、および使用条件情報75をプログラム解析部13に送る。
これにより、第2のNC装置130は、使用条件情報75に基づいて、オプションの有効および無効を設定する。すなわち、第2のNC装置130は、オプション毎に、1つの加工を行うサイクルの実行回数、オプションのプログラム命令の指令回数、使用時間、使用日数、または有効期限を設定する。そして、第2のNC装置130は、NCプログラム52およびオプションデータ73を用いて加工を実行する。このように、第2のNC装置130は、使用条件情報75で許可されている条件でオプションデータ73を用いて加工を制御する。
第2のNC装置130は、復号したNCプログラム52を選択して加工を行う際に、このNCプログラム52を使用するために必要なオプション(オプションデータ73に対応するオプション)を、使用条件情報75に基づいて、有効化または無効化したうえで加工を行う。
第2のNC装置130のユーザは、工作機械7Aで実際の加工に用いるNCプログラム52に応じた必要なオプション(オプションデータ73に対応するオプション)を、必要な加工数および必要な加工時間だけ使用可能となるように設定された使用条件要求74をEC決済サーバ91に送ればよい。このため、第2のNC装置130のユーザは、工作機械7Aの導入時に、導入時点で不要なオプションデータ73を購入しておく必要がなくなり、初期投資を低減することができる。
なお、図12に示す復号装置40も、図11に示す復号装置40と同様に、NCデータ50を、NCシミュレータに入力してもよい。この場合のNCシミュレータは、第2のNC装置130および工作機械7Aが実行する処理をシミュレーションする。
また、暗号化装置10は複数であってもよい。その場合、ストア装置30は、各暗号化装置10により暗号化された暗号化NCデータ51を格納する。復号装置40は、その複数の暗号化装置10により暗号化された複数の暗号化NCデータ51から必要な暗号化NCデータ51を選択する。これにより、暗号化装置10は、他の暗号化装置10等にNCデータ50の内容を知られずに、当該NCデータ50を必要とする復号装置40のみにNCデータ50を提供することができる。復号装置40は、従来は流出、模造等の問題により複数の暗号化装置10に個別にアクセスが行われていたが、複数の暗号化装置10が提供する暗号化NCデータ51についても、同じストア装置30で選択でき利便性が向上する。
このように実施の形態3によれば、NCデータ50にNCプログラム52およびオプションデータ73が含まれているので、第2のNC装置130は、NCプログラム52およびオプションデータ73を用いて工作機械6Aを制御することが可能となる。
また、NCデータ50に使用条件情報75が含まれており、第2のNC装置130は、使用条件情報75で許可されている条件でオプションデータ73を用いて加工を制御している。これにより、第2のNC装置130は、使用条件情報75によって使用条件を限定してオプションデータ73を用いることができるので、オプションデータ73を安価に利用することができる。
実施の形態4.
つぎに、図13から図15を用いて実施の形態4について説明する。実施の形態4では、追加されるアプリケーションプログラムが暗号化されて復号装置40に提供される。
図13は、実施の形態4にかかるデータ提供システムの構成を示す図である。図13の各構成要素のうち図1に示す実施の形態1のデータ提供システム1と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
実施の形態4のデータ提供システム4は、実施の形態3のデータ提供システム3と同様の構成要素を備えている。すなわち、データ提供システム4は、暗号化装置10と、認証管理装置20と、ストア装置30と、復号装置40と、EC決済サーバ91とを備えている。
データ提供システム4では、例えば、工作機械6Aの使用を容易化するアプリケーションプログラムといった、新たな追加のアプリケーションプログラム(以下、追加アプリケーション76という)が開発される場合がある。NCシミュレータ81は、追加アプリケーションソフトウェアである追加アプリケーション76を用いて、仮想工作機械6Bのモデルを模擬し、試験を行うことができる。
追加アプリケーション76は、第1のNC装置120および第2のNC装置130が制御処理を実行する際に用いる、PLCプログラム、マクロプログラム、第1のNC装置120および第2のNC装置130で実行することができる、付加アプリケーションソフトウェアまたはファームウェアの何れかを含んでいる。
実施の形態4では、追加アプリケーション76がNCデータ50に格納されている。暗号化装置10のNCデータ暗号部12は、実施の形態1~3と同様の処理によって、追加アプリケーション76が格納されたNCデータ50を暗号化し、暗号化NCデータ54をストア装置30に出力する。また、暗号化装置10のNCデータ暗号部12は、実施の形態1~3と同様の処理によって、NCデータ復号鍵A2を認証管理装置20に出力する。
図14は、実施の形態4にかかるNCシミュレータが実行する処理を説明するための図である。なお、図14で説明する処理のうち、図7で説明した処理と同様の処理については、その説明を省略する。ここでは、NCシミュレータ82が暗号化装置10を備えている場合について説明するが、暗号化装置10は、NCシミュレータ82の外部に配置されてもよい。
実施の形態4のNCシミュレータ82は、実施の形態3のNCシミュレータ82と同様の構成要素を備えている。ここでは、追加アプリケーション76を構成するデータが、3D.EXE、および3D.LIBの2つのデータを含んでいる場合について説明する。
実施の形態4でも、実施の形態3と同様の処理によって、暗号化装置10が、追加アプリケーション76を格納したNCデータ50の暗号化を行う。これにより、暗号化装置10は、追加アプリケーション76が暗号化された暗号化NCデータ54を生成する。暗号化装置10は、生成した暗号化NCデータ54をストア装置30に出力する。なお、認証管理装置20、ストア装置30、EC決済サーバ91の動作は、実施の形態3と同様であるので、その説明は省略する。
実施の形態4でも暗号化装置10が出力するNCデータ50は、暗号化されているので、第3者は、暗号化NCデータ54を解読できない。したがって、暗号化装置10は、NCデータ50に関連する加工技術が第3者に漏洩してしまうことを防止できる。
なお、暗号化装置10は、NCデータ50を、第1のNC装置120に入力してもよい。この場合の第1のNC装置120は、NCデータ50に含まれるNCプログラム52を用いて工作機械6Aを制御する。
図15は、実施の形態4にかかる第2のNC装置が実行する処理を説明するための図である。ここでは、第2のNC装置130が復号装置40を備えている場合について説明するが、復号装置40は、第2のNC装置130の外部に配置されてもよい。
実施の形態4でも、実施の形態3と同様の処理によって、復号装置40は、暗号化NCデータ54を取得し、実施の形態3と同様の処理によって、暗号化NCデータ54を復号する。これにより、復号装置40は、追加アプリケーション76が格納されたNCデータ50を取得する。復号装置40は、追加アプリケーション76を、プログラム解析部13に送る。
第2のNC装置130は、既存のアプリケーションプログラムに、復号装置40によって復号された追加アプリケーション76を追加することで既存のアプリケーションプログラムを更新する。第2のNC装置130は、更新後のアプリケーションプログラムを用いて工作機械7Aを制御し加工を行う。
実施の形態4の第2のNC装置130は、作業性および生産性を向上するために、追加アプリケーション76を必要に応じて付加し使用することができるので、工作機械7Aの導入時に全てのアプリケーションプログラムを予め購入しておく必要がなくなり、初期投資を低減することができる。また、第2のNC装置130は、新たな追加アプリケーション76が開発された場合に、容易に新たな追加アプリケーション76を取得することが可能となる。
なお、復号装置40は、NCデータ50を、NCシミュレータに入力してもよい。この場合のNCシミュレータは、第2のNC装置130および工作機械7Aが実行する処理をシミュレーションする。
また、暗号化装置10は複数であってもよい。その場合、ストア装置30は、各暗号化装置10により暗号化された暗号化NCデータ54を格納する。復号装置40は、その複数の暗号化装置10により暗号化された複数の暗号化NCデータ54から必要な暗号化NCデータ54を選択する。これにより、暗号化装置10は、他の暗号化装置10等にNCデータ50の内容を知られずに、当該NCデータ50を必要とする復号装置40のみにNCデータ50を提供することができる。復号装置40は、従来は流出、模造等の問題により複数の暗号化装置10に個別にアクセスが行われていたが、複数の暗号化装置10が提供する暗号化NCデータ54についても、同じストア装置30で選択でき利便性が向上する。
このように、実施の形態4によれば、NCデータ50に追加アプリケーション76が含まれているので、第2のNC装置130は、追加アプリケーション76を用いて工作機械7Aを制御することが可能となる。
また、第2のNC装置130のユーザは、工作機械7Aの導入時に、導入時点で不要なアプリケーションプログラムを購入しておく必要がなくなり、初期投資を低減することができる。
ところで、第2のNC装置130が、特殊な加工を行う場合において、専用のオプション、または特定の付加軸が付いた工作機械7Aでの加工を要する場合がある。この場合において、第2のNC装置130が保持しているNCデータが、この特殊な加工に対応していない場合、第2のNC装置130は、工作機械7Aを用いて特殊な加工を行うことができない。
また、工作機械7Aが使用される際に、所望のNCデータを作成するため、または機械段取りの作業性を改善し生産性を向上させるため、第2のNC装置130のユーザは、アプリケーションソフトウェア、支援機能のオプションデータを付加して使用したい場合がある。
また、加工ニーズが大量生産から少量多品種の個産へシフトしていることに伴い、工作機械7Aの導入時に、将来使用するかもしれないオプションが全て含まれていると、初期投資が高額になる。この場合、初期投資の回収の見込みが立たない、あるいは回収期間が計画よりも長期になり経営課題となる場合もある。
また、難易度の高い加工、生産性を向上する技術、およびアプリケーションは、加工技術を売り物にしている加工業者の事業継続に関わる重要な技術およびノウハウ資産であり、技術を伝承しつつ開示するNCデータの保護が求められている。また、特殊な加工にのみ必要な投資は、必要最低限となることが望ましい。
上述した実施の形態1~4では、暗号化装置10が、第2のNC装置130のユーザから要求のあった特定のNCデータ50を暗号化して復号装置40に提供しているので、工作機械7Aに対する投資を低く抑えることが可能となる。
また、暗号鍵が使い回されるような暗号化では、暗号鍵が一度漏洩すると、以降の全てのデータが解読されてしまう。実施の形態1~4では、暗号化装置10が復号装置40にNCデータ50を提供するたびに、種々のNCデータ暗号鍵A1を用いることができるので、1つのNCデータ暗号鍵A1が漏洩した場合であっても、以降のNCデータ50が解読されることはない。
ここで、暗号化装置10、認証管理装置20、ストア装置30、復号装置40、EC決済サーバ91、第1のNC装置120、第2のNC装置130、NCシミュレータ81,82のハードウェア構成について説明する。なお、これらの装置は、同様のハードウェア構成を有しているので、ここでは、復号装置40のハードウェア構成について説明する。
図16は、実施の形態1~4にかかる復号装置を実現するハードウェア構成例を示す図である。復号装置40は、入力装置300、プロセッサ100、メモリ200、および出力装置400により実現することができる。プロセッサ100の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ200の例は、RAM(Random Access Memory)、ROM(Read Only Memory)である。
復号装置40は、プロセッサ100が、メモリ200で記憶されている復号装置40の動作を実行するための、コンピュータで実行可能な、復号プログラムを読み出して実行することにより実現される。復号装置40の動作を実行するためのプログラムである復号プログラムは、復号装置40の手順または方法をコンピュータに実行させるものであるともいえる。
復号装置40で実行される復号プログラムは、NCデータ復号部43を含むモジュール構成となっており、NCデータ復号部43が主記憶装置上にロードされ、NCデータ復号部43が主記憶装置上に生成される。
入力装置300は、コード入力部42に対応している。入力装置300は、認証管理装置20から決済認証コードC1およびコード復号鍵C2を受付けてメモリ200に送る。また、入力装置300は、ストア装置30から暗号化NCデータ51,54を受付けてメモリ200に送る。
メモリ200は、NCデータ記憶部41に対応している。メモリ200は、NCデータ50、装置IDコードB2などを記憶する。また、図16には図示していないが、メモリ200は、決済認証コードC1、NCデータ復号鍵A2、装置認証コードB1などを記憶する。
NCデータ記憶部41内のNCデータ50、装置IDコードB2などは、プロセッサ100によってメモリ200から読み出される。また、メモリ200は、プロセッサ100が各種処理を実行する際の一時メモリに使用される。出力装置400は、プログラム解析部13にNCデータ50を送る。
復号プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、復号プログラムは、インターネットなどのネットワーク経由で復号装置40に提供されてもよい。なお、復号装置40の機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。