Data provision system and data provision procedures
The data deployment system securely distributes and decrypts NC data using encryption and authentication keys, addressing the issue of unauthorized access and ensuring secure use of proprietary NC data.
Patent Information
- Application Number
- DE112022005268
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-02-14
- Publication Date
- 2025-01-30
- Estimated Expiration
- 2042-02-14
AI Technical Summary
Existing systems fail to provide secure and controlled distribution of numerical control (NC) data, which often contain proprietary information, as the control device can decrypt the encrypted option setting data without authorization.
A data deployment system comprising an encryption device, storage device, authentication administration device, and decryption device, which uses encryption keys and authentication codes to securely distribute and decrypt NC data only to authorized devices.
Ensures that NC data, including NC programs and other sensitive information, is protected from unauthorized access and use, allowing secure distribution and use only by authorized machines or simulators.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Area
[0001] The present disclosure relates to a data providing system and a data providing method for providing protected numerical control data. background
[0002] In recent years, numerically controlled machine tools (NC machine tools) controlled by NC devices have been connected to a network, and various NC data used by the NC machine tool has been input and output via the network. Such NC data includes data related to the numerical control and information related to the use of the data. The NC data is intended to be improved to execute and improve a process.
[0003] On the other hand, the NC data for operation, control, machining, and the like for NC machine tools occasionally include unique information, technology, knowledge, and the like necessary for a user or equipment to perform specific machining and processes. For this reason, NC data should be protected and copy-protected, but in some cases it is desirable to disclose it to a specific user so that that user can acquire specific user knowledge or know-how. Furthermore, in some cases, when using the NC data, it is desirable to input the NC data into another NC machine tool or the like that is permitted to use the protected NC data to perform a service or the like related to the NC data available to the other NC machine tool or the like.
[0004] A software option setting system disclosed in Patent Literature 1 uses an encryption technique to implement management such that an unauthorized user cannot set a software option without permission. In such a software option setting system, a manufacturer's personal computer (PC), which is a PC located on a manufacturer's site, generates option setting data based on a name and number of a software option to be set, to enable or disable the function of the software option. The option setting data is encrypted using an identification number of a control device. The control device reads the encrypted option setting data and decrypts the read encrypted option setting data using the identification number of the control device.The manufacturer PC thus only causes the control device holding the identification number to decrypt the encrypted option setting data and set the software option using the option setting data. Citation listPatent literature
[0005] Patent Literature 1: Japanese Patent Application Laid-Open No. 2008-152551 OverviewTechnical Problem
[0006] However, the above-described technique of Patent Literature 1 is problematic in that additional numerical control data used for numerical control cannot be provided with the additional numerical control data that is secret, because the control device requires storing the software option at the beginning and only allows enabling or disabling the option function using the encrypted option setting data.
[0007] The present disclosure has been made in view of the above circumstances, and it is an object of the present disclosure to provide a data providing system that provides additional numerical control data used for numerical control together with the additional numerical control data which is secret. Solution to the problem
[0008] In order to solve the problems described above and achieve the object, a data providing system of the present disclosure includes an encryption device that encrypts numerical control data using a first encryption key to generate encrypted numerical control data, the numerical control data to be used by a numerical control device that controls a machine tool or by a simulator that simulates an operation of the machine tool.The data provision system of the present disclosure further includes: a storage device that receives the encrypted numerical control data from the encryption device and stores and distributes the encrypted numerical control data; and an authentication management device that obtains a first decryption key corresponding to the first encryption key from the encryption device, generates a payment authentication code in which the first decryption key is stored, and outputs the payment authentication code.The data providing system of the present disclosure further includes a decryption device that receives the encrypted numerical control data from the storage device, receives the payment authentication code from the authentication management device, extracts the first decryption key from the payment authentication code, and decrypts the encrypted numerical control data using the first decryption key to extract the numerical control data. Advantageous effect of the invention
[0009] The data providing system according to the present disclosure has an effect of providing additional numerical control data used for numerical control together with the additional numerical control data that is secret. Brief description of the drawings Fig. 1 is a diagram showing a configuration of a data providing system according to a first embodiment. Fig. 2 is a flowchart showing a processing procedure of data provision executed by the data provision system according to the first embodiment. Fig. 3 is a diagram for describing the processing performed by a comparison target NC device. Fig. 4 is a diagram for describing the processing executed by a first NC apparatus according to the first embodiment. Fig. 5 is a diagram for describing the processing executed by a second NC apparatus according to the first embodiment. Fig. 6 is a diagram showing a configuration of a data providing system according to a second embodiment. Fig. 7 is a diagram for describing the processing executed by an NC simulator according to the second embodiment. Fig. 8 is a diagram for describing the processing performed by a second NC apparatus according to the second embodiment. Fig. 9 is a diagram showing a configuration of a data processing system according to a third embodiment. Fig. 10 is a diagram for describing the processing executed by an NC simulator according to the third embodiment. Fig. 11 is a diagram for describing first processing executed by a second NC apparatus according to the third embodiment. Fig. 12 is a diagram for describing second processing executed by a second NC apparatus according to the third embodiment. Fig. 13 is a diagram showing a configuration of a data providing system according to a fourth embodiment. Fig. 14 is a diagram for describing processing executed by an NC simulator according to the fourth embodiment. Fig. 15 is a diagram for describing processing executed by a second NC apparatus according to the fourth embodiment. Fig. 16 is a diagram showing an exemplary hardware configuration for implementing a decryption device according to Embodiments 1 to 4. Description of embodiments
[0010] Hereinafter, a data providing system and a data providing method according to embodiments of the present disclosure will be described with reference to the drawings. First embodiment.
[0011] Fig. 1 is a diagram showing a configuration of a data provision system according to a first embodiment. The data provision system 1 includes an encryption device 10, an authentication management device (authentication management server) 20, a storage device (storage server) 30, and a decryption device 40.
[0012] The data provision system 1 is a system that provides NC data 50 protected by encryption. The NC data 50 includes data input to and used by the encryption device 10 or the decryption device 40, as well as information related to the use of the data. The data and information are necessary when a user uses a machine tool (NC machine tool) or when the machine tool performs machining.
[0013] Examples of the NC data 50 include an NC program, a drawing of a machined part, shape data of the machined part, setting information of a tool and a fixture that are attached to the machine tool before machining and used for machining, correction data, and the like. In addition, examples of the NC data 50 may include model data of a tool and the fixture, a parameter of a machine tool that performs machining, machine tool model data, a program for a programmable logic controller (PLC) for controlling the machine tool, optional data of the target equipment, application software input to and used by the NC device of the target equipment, and the like.
[0014] The NC data 50 is, for example, data that is unique to a machine tool or a workpiece to be machined by the machine tool and is generated individually for each machine tool or workpiece. In particular, the NC data 50 can be data that is valid for a plurality of machine tools or a plurality of workpieces.
[0015] The encryption device 10 is a computer that encrypts the NC data 50. The encryption device 10 encrypts the NC data 50 and provides the encrypted NC data 50 to the decryption device 40. That is, the encryption device 10 is a device that provides the NC data 50.
[0016] The encryption device 10 can input the NC data 50 into the NC device (numerical control device) that controls the machine tool, into an NC simulator that simulates the operation of the machine tool, or into another computer. The NC device is a computer that controls the machine tool using the NC data 50 and causes the machine tool to perform machining. The NC simulator is also a computer that simulates the operation of the machine tool using the NC data 50 and simulates the machining performed by the machine tool.
[0017] The encryption device 10 includes an NC data storage unit 11 and an NC data encryption unit 12. In addition, the encryption device 10 has an NC data encryption key A1 stored in a memory (not shown).
[0018] The NC data storage unit 11 is a memory or the like that stores the generated NC data 50. The NC data 50 may be generated by the encryption device 10 or may be generated by another device. The NC data encryption unit 12 selects, from the NC data storage unit 11, the NC data 50 containing technology or know-how whose secrecy is to be ensured, and encrypts the selected NC data 50. The NC data encryption unit 12 selects the NC data 50 based on an instruction received from the user of the encryption device 10. The NC data encryption key A1 may be input from an external device when encrypting the NC data 50, or it may be pre-registered in the encryption device 10.
[0019] The NC data encryption unit 12 encrypts the NC data 50 in the NC data storage unit 11 using the NC data encryption key A1 to thereby generate encrypted NC data 51, which is the encrypted NC data 50. The NC data encryption unit 12 outputs the encrypted NC data 51 to the storage device 30.
[0020] The NC data encryption unit 12 holds an NC data decryption key A2 associated with the NC data encryption key A1, along with the NC data encryption key A1. The NC data decryption key A2 is a decryption key for decrypting the NC data encryption key A1. This means that the NC data decryption key A2 is a decryption key paired with the NC data encryption key A1. The encrypted NC data 51 can only be decrypted using the NC data decryption key A2.
[0021] The NC data decryption key A2 may be input from an external device when encrypting the NC data 50, or it may be pre-registered in the encryption device 10. The NC data encryption unit 20 outputs the NC data decryption key A2 to the authentication management device 20.
[0022] Note that a file storing the NC data 50 may include an area to which a payment authentication code C1 (described below) is added. Thus, the user can extract the payment authentication code C1 from the file storing the NC data 50.
[0023] The authentication management device 20 manages whether the decryption device 40 is a device permitted to decrypt the NC data 50. The authentication management device 20 includes a code generation unit 21 that generates the payment authentication code C1, a code storage unit 22 that stores the generated payment authentication code C1, and a decryption key storage unit 23. The payment authentication code C1 is a code for authenticating the use permission of the NC data 50.
[0024] The code generation unit 21 generates the payment authentication code C1 by encrypting the data including the NC data encryption key A2 and the device authentication code B1 using the NC data decryption key. The device authentication code B1 is information for determining whether the decryption device 40 is a device permitted to decrypt the NC data 50. Thus, the device authentication code B1 is a code (target authentication code) unique to a destination permitted to use the encrypted NC data 51. In other words, the device authentication code B1 is data for identifying a device permitted to use the encrypted NC data 51 or a user of the device.
[0025] Thus, the device authentication code B1 belongs to the NC device, a user who uses the NC device, an NC simulator, a user of the NC simulator, a company (firm or the like) that owns the machine tool, a model of the machine tool, a manufacturer that manufactures the machine tool, or a sales company of the machine tool.
[0026] The code generation unit 21 generates the payment authentication code C1 and also generates a code decryption key C2. The code decryption key C2 is a decryption key for decrypting the payment authentication code C1. The code decryption key C2 is thus a decryption key paired with the NC data encryption key used to encrypt the payment authentication code C1. The payment authentication code C1 can only be decrypted using the code decryption key C2. The NC data encryption key A1 used by the encryption device 10 corresponds to a first encryption key, and the NC data encryption key used by the code generation unit 21 to generate the payment authentication code C1 corresponds to a second encryption key.
[0027] The decryption key storage unit 23 stores the code decryption key C2. The authentication management device 20 outputs the payment authentication code C1 and the code decryption key C2 specified by the encryption device 10 or the decryption device 40 to the decryption device 40.
[0028] The storage device 30 is a device that stores and distributes the encrypted NC data 51. The storage device 30 distributes the encrypted NC data 51 to the decryption device 40 via the Internet. The storage device 30 includes an NC data storage unit 31 that stores the encrypted NC data 51. The NC data storage unit 31 receives and stores the encrypted NC data 51 sent from the encryption device 10. The NC data storage unit 31 stores the encrypted NC data 51 in a state that allows the decryption device 40 to download the encrypted NC data 51.
[0029] The decoding device 40 is a computer that decode the NC data 50. The decoding device 40 can input the NC data 50 into a numerical control device, a numerical control simulator, or another computer. The numerical control device or numerical control simulator, which receives the NC data 50 from the decoding device 40, also controls the machine tool using the NC data 50 and causes the machine tool to execute the machining operation.
[0030] The decryption device 40 includes a code input unit 42, an NC data decryption unit 43, and an NC data storage unit 41. In addition, the decryption device 40 has a device identification code (device ID code B2) stored in a memory (not shown).
[0031] The device ID code B2 is a code (corresponding code) unique to the decryption device 40. In a case where the decryption device 40 stores the device ID code B2, which is information corresponding to the device authentication code B1, the decryption device 40 is recognized as a device that can decrypt the NC data 50. The device authentication code B1 and the device ID code B2 are, for example, identification information of the NC device and identification information of the NC simulator. The device authentication code B1 corresponds to a first decryption key, and the device ID code B2 corresponds to a second decryption key. The device ID code B2 may be the same data as the device authentication code B1, or it may be different data corresponding to the device authentication code B1.The device ID code B2 is a code that is unique to the decryption device 40.
[0032] The code input unit 42 receives the payment authentication code C1 and the code decryption key C2 sent from the authentication management device 20. The code input unit 42 inputs the payment authentication code C1 and the code decryption key C2 to the NC data decryption unit 43.
[0033] The NC data decryption unit 43 downloads the encrypted NC data 51 from the storage device 30, thereby reading the encrypted NC data 51. Furthermore, the NC data decryption unit 43 decrypts the encrypted NC data 51 using the payment authentication code C1 and the code decryption key C2. Specifically, the NC data decryption unit 43 decrypts the payment authentication code C1 using the code decryption key C2, thereby extracting the NC data decryption key A2 and the device authentication code B1 from the encrypted NC data 51. The NC data decryption unit 53 then determines whether the device ID code B2 corresponds to the device authentication code B1.The NC data decryption unit 43 thus compares the decrypted device authentication code B1 with the device ID code B2 unique to the decryption device 40 and verifies the use validity of the payment authentication code C1.
[0034] The NC data decryption unit 43 decrypts the encrypted NC data 51 using the NC data decryption key A2 when the pre-existing device ID code B2 matches the device authentication code B1. Thus, the NC data decryption unit 43 decrypts the encrypted NC data 51 using the decrypted NC data decryption key A2 when the NC data decryption unit 43 has successfully confirmed the validity of use of the payment authentication code C1.
[0035] Note that a plurality of decryption devices 40 may each store the same device ID code B2. In this case, the encrypted NC data 51 is decrypted by the plurality of decryption devices 40 each storing the device ID code B2.
[0036] The device authentication code B1 may also belong to a plurality of NC devices or a plurality of NC simulators. In this case, the encrypted NC data 51 is used by the plurality of NC devices or the plurality of NC simulators.
[0037] Note that the encryption device 10 may be disposed inside the NC device (first NC device 120 described below) or outside the first NC device 120. Furthermore, the decryption device 40 may be disposed inside the NC device (second NC device 130 described below) or outside the second NC device 130. Furthermore, the storage device 30 and the authentication management device 20 may be stored in a cloud or the like.
[0038] Fig. 2 is a flowchart showing a data provision processing procedure executed by the data provision system according to the first embodiment. The NC data encryption unit 12 of the encryption device 10 encrypts the NC data 50 using the NC data encryption key A1 (step S10).
[0039] The encryption device 10 outputs the encrypted NC data 51 and the NC data decryption key A2 (step S20). Specifically, the encryption device 10 outputs the encrypted NC data 51 to the storage device 30 and outputs the NC data decryption key A2 to the authentication management device 20.
[0040] The NC data storage unit 31 of the storage device 30 receives and stores the encrypted NC data 51 (step S30).
[0041] The code generation unit 21 of the authentication management device 20 obtains the NC data decryption key A2 (step S40). The code generation unit 21 of the authentication management device 20 generates the payment authentication code C1, including the data decryption key A2 and the device authentication code B1 corresponding to the decryption device 40, by encrypting data containing the NC data decryption key A2 and the device authentication code B1 (step S50).
[0042] In addition, the code generation unit 21 generates the code decryption key C2, which is the decryption key for decrypting the payment authentication code C1 (step S60). In response to a request from the decryption device 40, the authentication management device 20 outputs the payment authentication code C1 and the code decryption key C2 to the decryption device 40 (step S70).
[0043] In addition, the decryption device 40 reads the encrypted NC data 51 from the NC data storage unit 31 of the storage device 30 (step S80).
[0044] Note that any processing in step S30 and the processings in steps S40 to S60 may be executed first.
[0045] The decryption device 40 receives the payment authentication code C1, the code decryption key C2, and the encrypted NC data 51 (step S90). Specifically, the code input unit 42 of the decryption device 40 receives the payment authentication code C1 and the code decryption key C2 from the authentication management device 20. Furthermore, the NC data decryption unit 43 of the decryption device 40 receives the encrypted NC data 51 from the storage device 30.
[0046] The NC data decryption unit 43 of the decryption device 40 decrypts the payment authentication code C1 using the code decryption key C2 (step S100). The NC data decryption unit 43 thus extracts the NC data decryption key A2 and the device authentication code B1 from the payment authentication code C1.
[0047] The NC data decryption unit 43 of the decryption device 40 compares the stored device ID code B2, which is unique to the decryption device 40, with the decrypted device authentication code B1 (step S110). The NC data decryption unit 43 of the decryption device 40 determines whether the payment authentication code C1 is valid based on the comparison between the device authentication code B1 and the device ID code B2 (step S120).
[0048] If the payment authentication code C1 is valid (step S120, Yes), that is, if the device ID code B2 corresponds to the device authentication code B1, the NC data decryption unit 43 of the decryption device 40 decrypts the encrypted NC data 51 using the NC data decryption key A2 (step S130). On the other hand, if the payment authentication code C1 is invalid (step S120, No), the NC data decryption unit 43 of the data decryption device 40 does not decrypt the encrypted NC data 51.
[0049] The decryption device 40 can obtain the NC data 50 by decrypting the encrypted NC data 51. When the decryption device 40 successfully obtains the NC data 50, the decryption device 40 executes processing corresponding to the NC data 50, for example, numerical control processing using the NC data 50.
[0050] Next, processing performed by the first NC device 120, as well as processing performed by the second NC device 130, and processing performed by an NC device of a comparative example (comparison target NC device 110, which will be described below) will be described. The first NC device 120 and the second NC device 130 are computers used for machine tools (NC machine tools) and control the machine tools.
[0051] Now, a case where the NC data 50 is an NC program 52 will be described. First, the processing executed by the comparison target NC device 110 will be described. Fig. 3 is a diagram for describing the processing performed by the comparison target NC device.
[0052] The processing performed by the comparison target NC device 110, which is the NC device of the comparative example, is numerical control processing for a machine tool 6A, which is executed using the NC program 52. The comparison target NC device 110 includes the NC data storage unit 11, a program analysis unit 13, an interpolation processing unit 14A, and an axis control unit 15A. Furthermore, the machine tool 6A includes an X-axis motor 61A, a Y-axis motor 62A, and a Z-axis motor 63A.
[0053] The NC data storage unit 11 of the comparison target NC device 110 receives and stores the NC program 52 input from an external device. The program analysis unit 13 reads the NC program 52 from the NC data storage unit 11 and analyzes the read NC program 52. The program analysis unit 13 analyzes, for example, a G code (command related to axis movement or the like).
[0054] The interpolation processing unit 14A generates control data for controlling the machine tool 6A based on an analysis result from the program analysis unit 13 and sends the control data to the axis control unit 15A. The axis control unit 15A controls the X-axis motor 61A, the Y-axis motor 62A, and the Z-axis motor 63A using the control data generated by the interpolation processing unit 14A.
[0055] The comparison target NC device 110 reads the NC program 52 described by a character string (text), which is obtained by combining the G code, a T code, an M code, and the like, into the NC data storage unit 11 and analyzes the NC program 52 sequentially for each command. The comparison target NC device 110 then drives axes (X-axis motor 61A, Y-axis motor 62A, and Z-axis motor 63A) that control the machine tool 6A and causes the machine tool 6A to execute machining. The NC program 52 is a program in which an appropriate tool and a suitable processing order are defined in accordance with a shape of a part to be machined by the machine tool 6A, a necessary machining accuracy, and the like. The NC program 52 is generated based on, for example, knowledge or experience.Know-how of an operator, and it can be said that the machining technology concerning the NC program 52 is an important technological capital for a contractor who carries out the machining.
[0056] Since the NC program 52 used by the comparison target NC device 110 is described by a character string (text), a third party who receives the NC program 52 can decrypt the NC program 52. Since the NC program is not encrypted, the machining technology related to the NC program 52 is revealed to the third party when the content of the NC program 52 is analyzed by the third party.
[0057] Fig. 4 is a diagram for describing processing performed by the first NC device according to the first embodiment. Here, a case where the first NC device 120 includes the encryption device 10 is described; however, the encryption device 10 may be arranged outside the first NC device 120.
[0058] The first NC device 120 of the first embodiment executes numerical control processing for the machine tool 6A using the NC program 52 and the encryption of the NC program 52. The first NC device 120 includes the encryption device 10 in addition to the components of the comparison target NC device 110. The encryption device 10 thus includes the NC data encryption unit 12, the NC data storage unit 11, the program analysis unit 13, the interpolation processing unit 14A, and the axis control unit 15A.
[0059] The NC data encryption unit 12 of the encryption device 10 encrypts the NC program 52 input to the encryption device 10 and stored in the NC data storage unit 11 using the NC data encryption key A1, and outputs an encrypted NC program 53 obtained by the encryption to the storage device 10. The NC data encryption unit 12 thus encrypts the NC program 52 using the NC data encryption key A1 to generate the encrypted NC program 53, and outputs the encrypted NC program 53 to the storage device 30.
[0060] Furthermore, the NC data encryption unit 12 outputs the NC data decryption key A2 corresponding to the NC data encryption key A1 to the authentication management device 20. The NC data decryption key A2 is thus registered in the authentication management device 20. In this way, the encryption device 10 encrypts the NC program 52 and keeps it secret.
[0061] Since the encrypted NC program 53 output by the encryption device 10 is encrypted, the third party cannot decrypt the encrypted NC program 53. Thus, the encryption device 10 can prevent the data leakage of the machining technology related to the NC program 52 to the third party.
[0062] Note that the encryption device 10 may input the NC data 50 into the NC simulator. In this case, the NC simulator simulates the machining performed by the first NC device 120 and the machine tool 6A. The NC simulator, which receives the NC data 15 from the encryption device 10, performs the simulation to verify the machining in advance before the machine tool 6A performs the actual machining.
[0063] Fig. 5 is a diagram for describing processing performed by the second NC device according to the first embodiment. Here, a case where the second NC device 130 includes the decryption device 40 is described; however, the decryption device 40 may be arranged outside the second NC device 130.
[0064] The second NC device 130 of the first embodiment performs decoding of the NC program 52 and numerical control processing for a machine tool 7A using the NC program 52. The machine tool 7A is of the same type as the machine tool 6A. Similar to the machine tool 6A, the machine tool 7A includes the X-axis motor 61A, the Y-axis motor 62A, and the Z-axis motor 63A.
[0065] The second NC device 130 includes the decryption device 40 in addition to the components of the comparison target NC device 110. The second NC device 130 thus includes the code input unit 42 and the NC data decryption unit 43 in addition to the components of the comparison target NC device 110. The decryption device 40 includes the NC data storage unit 41 instead of the NC data storage unit 11. The decryption device 40 thus includes the code input unit 42, the NC data decryption unit 43, the NC data storage unit 41, the program analysis unit 13, the interpolation processing unit 14A, and the axis control unit 15A.
[0066] The decryption device 40 uses the encrypted NC program 53 generated by the encryption device 10 to control the machine tool 7A. Since the encrypted NC program 53 is kept secret by encryption, the decryption device 40 cannot read the program as it is. The decryption device 40 decrypts the encrypted NC program 53 and uses the NC program 52 obtained by the decryption to control the machine tool 7A.
[0067] Specifically, the code input unit 42 of the decryption device 40 receives the payment authentication code C1 and the code decryption key C2 from the authentication management device 20. The NC data decryption unit 43 decrypts the payment authentication code C1 using the code decryption key C2. The NC data decryption unit 43 thus obtains the NC data decryption key A2 and the device authentication code B1 from the payment authentication code C1.
[0068] The device authentication code B1 is a code corresponding to the device ID code B2 stored in advance in the decryption device 40. The NC data decryption unit 43 can thus obtain permission to decrypt the encrypted NC program 53. The NC data decryption unit 53 decrypts the encrypted NC program 53 using the NC data decryption key A2. Through this decryption, the decryption device 40 obtains the NC program 52. The NC data decryption unit 43 sends the decrypted NC program 52 to the program analysis unit 13. The second NC device 130 thus uses the decrypted NC program 52 to enable the same processing as that performed by the first NC device 120.
[0069] Note that the decoding device 40 may input the NC data 50 into the NC simulator. In this case, the NC simulator simulates the processing performed by the second NC device 130 and the machine tool 7A. The NC simulator, which receives the NC data 50 from the decoding device 40, performs the simulation to perform pre-processing verification before the machine tool 6A performs actual processing.
[0070] Furthermore, a plurality of encryption devices 10 may be provided. In this case, the storage device 30 stores the encrypted NC data 51 encrypted by each encryption device. The decryption device 40 selects the necessary pieces of encrypted NC data 51 from the multiple pieces of encrypted NC data 51 encrypted by the multiple encryption devices 10. The encryption device 10 can provide the NC data 50 only to the decryption device 40 that requires the NC data 50, without the content of the NC data 50 being disclosed to another encryption device 10 or the like.Conventionally, the decryption device 40 accesses the plurality of encryption devices 10 individually due to problems such as data leakage and unauthorized copying, but the decryption device 40 can select the pieces of the encrypted NC data 51 provided by the plurality of encryption devices 10 in the same control device 30, resulting in improved user convenience.
[0071] As described above, in the first embodiment, the authentication management device 20 generates the payment authentication code C1, which stores the NC data decryption key A2 corresponding to the first encryption key used to encrypt the NC data 50, and encrypts the payment authentication code C1 using the second encryption key. The authentication management device 20 then outputs the code decryption key C2 corresponding to the second encryption key and the encrypted payment authentication code C1 to the decryption device 40. The decryption device 40 receives the encrypted NC data 51 from the storage device 30 and also receives the code decryption key C2 and the encrypted payment authentication code C1 from the authentication management device 20.The decryption device 40 then decrypts the encrypted payment authentication code C1 using the code decryption key C2 to thereby extract the NC data decryption key A2 from the payment authentication code C1, and decrypts the encrypted NC data 51 using the NC data decryption key A2 to thereby extract the NC data 50. The data provision system 1 can thus provide the additional NC data 50 not previously stored in the second NC device 130 to the decryption device 40, keeping the additional NC data 50 secret. Consequently, the data provision system 1 can prevent data leakage and unauthorized copying of the NC data 50 in which technology or know-how is stored. Second embodiment.
[0072] Now, a second embodiment will be described with reference to the Fig. 6 and Fig. 8. In the second embodiment, the NC data 50 including the NC program 52, the data indicating a machining configuration, and the data indicating a machining result are encrypted, and the encrypted NC data 50 is provided to the decryption device 40.
[0073] Fig. Fig. 6 is a diagram showing a configuration of a data provision system according to the second embodiment. To indicate the components that perform the same functions as those of the Fig. 1 shown data provision system 1 of the first embodiment, the components of the Fig. 6 uses the same reference numerals, and a repetitive description thereof is avoided.
[0074] Similar to the data providing system 1 of the first embodiment, the data providing system of the second embodiment includes the encryption device 10, the authentication management device 20, the storage device 30, and the decryption device 40.
[0075] In the second embodiment, the NC data 50 stored in the NC data storage unit 10 of the encryption device 10 includes the NC program 52, setting instruction data 71, and a model 72 of the machined part.
[0076] The setting instruction data 71 and the machined part model 72 are data associated with the NC program 52. The setting instruction data 71 is document data or drawing data describing the machining configuration before machining begins. The machined part model 72 is data obtained by 3D modeling a result of the machining performed by the machine tool 6A.
[0077] The data providing system 2 provides the NC data 50 to the decryption device 40 via a processing procedure similar to that of the one described with reference to Fig. 2. Similarly to the first embodiment, in the second embodiment, the encryption device 10 encrypts the NC data 50. Then, the decryption device 40 decrypts the payment authentication code C1 using the code decryption key C2, thereby extracting the NC data decryption key A2. The decryption device 40 further decrypts the encrypted NC data 51 using the NC data decryption key A2 and obtains the NC data 50. The decryption device 40 thus obtains the NC data 50 including the NC program 52, the setting instruction data 71, and the machined part model 72.
[0078] In the data providing system 2, the simulator encrypts the NC data 50 using the encryption device 10, and the second NC device decrypts the encrypted NC data 51 using the decryption device 40.
[0079] Fig. 7 is a diagram for describing the processing performed by the NC simulator according to the second embodiment. Here, a case where the NC simulator 81 includes the encryption device 10 is described, but the encryption device 10 may be arranged outside the NC simulator 81.
[0080] The NC simulator 81 of the second embodiment simulates a model of a virtual machine tool 6B and executes machining simulation using the NC program 52 included in the confidential NC data 50. Thus, the NC simulator 81 executes numerical control simulation for the virtual machine tool 6B using the NC program 52 and encrypting the NC data 50 including the NC program 52.
[0081] The virtual machine tool 6B simulates the operation of the machine tool 6A. The virtual machine tool 6B thus includes a virtual X-axis model 61B that virtually executes the operation of the X-axis motor 61A, a virtual Y-axis model 62B that virtually executes the operation of the Y-axis motor 62A, and a virtual Z-axis model 63B that virtually executes the operation of the Z-axis motor 63A.
[0082] The NC simulator 81 includes the encryption device 10, the program analysis unit 13, a virtual interpolation processing unit 14B, and a virtual axis control unit 15B. Thus, unlike the first NC device 120, the NC simulator 81 includes the virtual interpolation processing unit 14B instead of the interpolation processing unit 14A, and the virtual axis control unit 15B instead of the axis control unit 15A.
[0083] The virtual interpolation processing unit 14B generates virtual control data for controlling the virtual machine tool 6B based on an analysis result of the program analysis unit 13 and sends the virtual control data to the virtual axis control unit 15B. The virtual axis control unit 15B controls the virtual X-axis model 61B, the virtual Y-axis model 62B, and the virtual Z-axis model 63B using the virtual control data generated by the virtual interpolation processing unit 14B. In this way, the virtual interpolation processing unit 14B simulates the operation of the interpolation processing unit 14A, and the virtual axis control unit 15B simulates the operation of the axis control unit 15A.
[0084] The NC data encryption unit 12 of the second embodiment encrypts the NC data 50 through processing similar to that of the NC data encryption unit 12 of the first embodiment, and registers the encrypted NC data 50 in the storage unit 30. The NC data 50 encrypted by the NC data encryption unit 12 of the second embodiment includes the NC program 52, the setting instruction data 71, and the machined part model 52.
[0085] Similarly to the NC data encryption unit 12 of the first embodiment, the NC data encryption unit 12 of the second embodiment also registers the NC data decryption key A2 for decrypting the encrypted NC data 51 in the authentication management device 20.
[0086] Since the NC data encrypted by the encryption device 10 is encrypted, even in the second embodiment, the third party cannot decrypt the encrypted NC data 51. The encryption device 10 can thus prevent the data leakage of the machining technology associated with the NC data 50 to the third party.
[0087] Note that the encryption device 10 may input the NC data 50 into the first NC device 120. In this case, the first NC device 120 controls the machine tool 6A using the NC program 52 included in the NC data 50.
[0088] Fig. 8 is a diagram for describing processing performed by the second NC device according to the second embodiment. Here, the case where the second NC device 130 is included in the decryption device 40 is described; however, the decryption device 40 may be arranged outside the second NC device 130.
[0089] Also in the second embodiment, the NC data decryption unit 43 decrypts the encrypted NC data 51 through processing similar to that of the NC data decryption unit 43 of the first embodiment, and obtains the NC data 50. The decryption device 40 sends the NC program 52 included in the NC data 50 to the program analysis unit 13.
[0090] Similarly to the first embodiment, in the second embodiment, the second NC device 130 performs numerical control of the machine tool 7A using the NC data 50 to enable the machine tool 7A to perform the same machining as that performed by the machine tool 6A.
[0091] Furthermore, the NC data decoding unit 43 causes the display operation unit 50 to display the setting instruction data 71 and the machined part model 72 associated with the decode NC data 50. This allows the user of the second NC device 130 to reliably establish the machining configuration before starting machining by referring to the setting information data 71 associated with the NC program 52. Furthermore, the user of the second NC device 130 can perform machining by referring to the machined part model 92 associated with the NC program 52. The display operation unit 150 may be included in the machine tool 7A, or it may be included in a device different from the machine tool 7A.
[0092] Note that the decoding device 40 may input the NC data 50 into the NC simulator. In this case, the NC simulator simulates the processing performed by the second NC device 130 and the machine tool 7A. Furthermore, it is sufficient for the NC data 50 to contain only one of the setting instruction data 71 and the model 72 of the machined part.
[0093] In addition, multiple encryption devices 10 may be provided. In this case, the storage device 30 stores the encrypted NC data 51 encrypted by each encryption device 10. The decryption device 40 selects the necessary pieces of encrypted NC data 51 from the multiple pieces of encrypted NC data 51 encrypted by the multiple encryption devices 10. Thus, the encryption device 10 can provide the NC data 50 only to the decryption device 40 that requires the NC data 50, without the content of the NC data 50 being disclosed to another encryption device 10 or the like.Conventionally, the decryption device 40 accesses the plurality of encryption devices 10 individually due to problems such as data leakage and unauthorized copying, but the decryption device 40 can select, in the same storage device 30, the pieces of the encrypted NC data 51 provided by the plurality of encryption devices 10, resulting in improved usability.
[0094] Since the NC data 50 includes the setting instruction data 71 and the model 72 of the machined part, the user of the second NC device 130 according to the second embodiment can refer to the setting instruction data 71 and the model 72 of the machined part as described above. Third embodiment.
[0095] Now, a third embodiment will be described with reference to the Fig. 9 to 12. In the third embodiment, the NC data 50 including the NC program 52 and option data (option data 73 described below) are encrypted, and the encrypted NC data 50 is provided to the decryption device 40.
[0096] Fig. Fig. 9 is a diagram showing a configuration of a data provision system according to the third embodiment. To indicate the components that achieve the same functions as those of the Fig. 1 shown data provision system 1 of the first embodiment are shown in Fig. 9 are designated by the same reference numerals, and a repetitive description thereof is avoided.
[0097] The data provision system 3 of the third embodiment includes, in addition to the components of the data provision system of the first embodiment, an electronic commerce (EC) payment server 91. The EC payment server 91 is a device that performs purchase procedure processing and payment processing for the encrypted NC data 51 distributed from the storage device 30. When the authentication management device 20 has successfully confirmed that the purchase or debit processing of the NC data 50 has been performed with respect to the EC payment server 91, the authentication management device 20 generates the payment authentication code C1 and the code decryption key C2 and sends the generated payment authentication code C1 and the code decryption key C2 to the decryption device 40.
[0098] In the third embodiment, the NC data 50 encrypted by the NC data encryption unit 12 includes the NC program 52, the setting instruction data 71, and the option data 73. Note that the illustration of the setting instruction data 71 is omitted here. The setting instruction data 71 of the third embodiment is similar to the setting information data 71 of the second embodiment below, and therefore, their description will be omitted.
[0099] Option data 73 is data associated with NC program 52. Option data 73 is data required to use NC program 52. An example of option data 73 includes data for enabling or disabling an additional function of the option.
[0100] The NC data encryption unit 12 encrypts a set of the NC program 52 and the option data 73 of the NC program 52 using the NC data encryption key A1. The NC data encryption unit 12 thus generates the encrypted NC data 51, which is a set of the NC program 52 and the option data 73.
[0101] The data providing system 3 provides the NC data 50 to the decryption device 40 through the processing procedure similar to that of the one described with reference to Fig. 2. In the third embodiment, the PC (not shown) used by the user of the decryption device 40 (hereinafter, such a PC is referred to as a user PC) accesses the storage device 30, which stores the NC data 50 including the NC program 52 and the option data 73 (hereinafter, such NC data 50 may be simply referred to as the NC data 50), in accordance with an instruction from the user. In accordance with the instruction from the user, the user PC requests the storage device 30 to register the NC data 50 in the decryption device 40.
[0102] The user of the decryption device 40 pays the storage device 30, which sells the NC data 50. This payment procedure is executed, for example, between the user PC, the storage device 30, and the EC payment server 91.
[0103] When the EC payment server 91 has confirmed that the purchase or debit processing for the NC data 50 is executed, the EC payment server 91 notifies the authentication management device 20 and the storage device 30 that the NC data 50 has been purchased by the decryption device 40.
[0104] The authentication management device 20 and the storage device 30 provide a response indicating that the notification has been accepted to the EC payment server 91 for notification. Furthermore, the authentication management device 20 generates the payment authentication code C1 and the code decryption key C2 associated with the NC data 50 of the third embodiment, and sends the generated payment authentication code C1 and the code decryption key C2 to the decryption device 40.
[0105] Note that the authentication management device 20 may notify the EC payment server 91 that the payment authentication code C1 and the code decryption key C2 associated with the NC data 50 have been sent to the decryption device 40. Furthermore, the storage device 30 may notify the EC payment server 91 that the encrypted NC data 51 associated with the NC data 50 has been read by the decryption device 40.
[0106] It should be noted that the authentication management device 20 and the storage device 30 of the third embodiment are preferably servers connectable via the Internet.
[0107] Fig. Fig. 10 is a diagram for describing the processing performed by the NC simulator according to the third embodiment. It should be noted that in the embodiment described with reference to Fig. 10 processing operations to be described a description of processing operations similar to those described with reference to Fig. 7 is avoided. Here, a case where an NC simulator 82 includes the encryption device 10 is described, but the encryption device 10 may be arranged outside the NC simulator 82.
[0108] The NC simulator 82 of the third embodiment includes a usage option analysis unit 16B in addition to the components of the NC simulator 81 of the second embodiment. Furthermore, the NC data storage unit 11 of the NC simulator 82 stores the NC program 52 and total option data 77. The total option data 77 is data that stores all option data that can be used by various NC devices, such as the second NC device 130 and the like.
[0109] The usage option analysis unit 16B analyzes the confidential NC program 52, analyzes an option to be used in the NC program 52, and collects information about the option to be used in the NC program 52. Specifically, the usage option analysis unit 16B extracts the option data 73 about the option to be used in the NC program 52 from the total option data 77.
[0110] The NC data encryption unit 12 of the third embodiment encrypts the NC data 50 through processing similar to that of the NC data encryption unit 12 of the first embodiment and registers the encrypted NC data 50 in the storage unit 30. The NC data 50 encrypted by the NC data encryption unit 12 of the third embodiment includes the NC program 52 and the option data 73.
[0111] Similarly to the NC data encryption unit 12 of the first embodiment, the NC data encryption unit 12 of the third embodiment also registers the NC data decryption key A2 for decrypting the encrypted NC data 51 in the authentication management device 20.
[0112] Since the NC data 50 output from the encryption device 10 is encrypted, even in the third embodiment, the third party cannot decrypt the encrypted NC data 51. The encryption device 10 can thus prevent the data leakage of the machining technology associated with the NC data 50 to the third party.
[0113] Note that the encryption device 10 may input the NC data 50 into the first NC device 120. In this case, the first NC device 120 controls the machine tool 6A using the NC program 52 contained in the NC data 50.
[0114] Fig. 11 is a diagram for describing first processing performed by the second NC device according to the third embodiment. This diagram describes the case where the second NC device 130 includes the decryption device 40; however, the decryption device 40 may be disposed outside the second NC device 130. The first processing performed by the second NC device 130 includes the processing performed by the second NC device 130 described in the first embodiment, as well as machining processing using the option data 73.
[0115] In the third embodiment, the decryption device 40 determines the NC data 50 including the NC program 52 and the option data 73 in accordance with instructions from the user and executes the purchase request or a debit request to the EC payment server 91.
[0116] The EC payment server 91 notifies the authentication management device 20 and the storage device 30 that the determined NC data 50 has been purchased by the decryption device 40. Consequently, the authentication management device 20 and the storage device 30 of the third embodiment perform processing similar to that of the authentication management device 20 and the storage device 30 of the second embodiment.
[0117] Thus, in the third embodiment, the NC data decryption unit 43 also decrypts the encrypted NC data 51 through processing similar to that of the NC data decryption unit 43 of the first embodiment, and obtains the NC data 50. The NC data 50 includes the NC program 52 and the option data 73. The decryption device 40 sends the NC program 52 and the option data 73 to the program analysis unit 13.
[0118] When executing the machining using the NC program 52, the second NC device 130 releases an option necessary for using the NC program 52 based on the option data 73.
[0119] Therefore, similar to the first embodiment, in the third embodiment, the second NC device 130 numerically controls the machine tool 7A using the NC data 50 to enable the machine tool 7A to perform the same machining as that performed by the virtual machine tool 6B. The second NC device 130 thus uses the option corresponding to the option data 73 to permit the execution of the machining.
[0120] The second NC device 130 of the third embodiment stores and retains the newly decrypted option data 73 in the previously retained option data 73A. When executing processing using the NC program 52, the second NC device 130 of the third embodiment then reads the option data 73A in which the option data 73 is stored, and uses the NC program 52 and the option data 73A to enable machining execution. Thus, when controlling the machine tool 67 using the NC program 52, the second NC device 130 can control the machine tool 7A using the additional function corresponding to the option data 73.
[0121] As described above, the second NC device 130 of the third embodiment can use the necessary option data 73 in accordance with the execution of the NC program 52 selected by the decoding device 40 and used to execute actual machining. Thus, the manufacturer using the second NC device 130 only needs to purchase the option data 73 when the manufacturer needs to use the option data 73. When introducing the machine tool 7A, the manufacturer using the second NC device 130 does not need to purchase the option data that is not necessary at the time of introduction, and can reduce the initial investment required.
[0122] Note that the decoding device 40 may input the NC data 50 into the NC simulator. In this case, the NC simulator simulates machining performed by the second NC device 130 and the machine tool 7A.
[0123] Note that a usage condition may be set for the option data 73. In this case, the second NC device 130 executes the machining including the machining using the condition for the first machining.
[0124] Fig. 12 is a diagram for describing the second processing performed by the second NC device according to the third embodiment. Here, the case where the second NC device 130 includes the decryption device 40 is described, but the decryption device 40 may be arranged outside the second NC device 130. The second processing performed by the second NC device 130 includes the processing performed by the second NC device 130 described in the first embodiment, the machining processing using the option data 73, and the processing for setting the enablement or disablement of the option based on usage condition information 75. Note that the representation of the option data 73 and the option data 73A in Fig. 12 has not been done.
[0125] When the second NC device 130 executes the second processing, the user PC sends a usage condition request 74 to the EC payment server 91 in accordance with the user's instruction. The usage condition request 74 is information about the usage condition for requesting the number of times the option data 73 is used, the usage time of the option data 73, the usage days of the option data 73, or the expiration date of the option data 73. The number of times the option data is used may be the number of cycles executed to execute the processing or the number of commands in one program instruction of the option.
[0126] As described above, when the option data 73 is configured by the EC payment server 91, the user PC sends to the EC payment server 91 the use condition request 74 in which the number of cycles to execute the machining, the number of commands in the program instruction of the option, the use time, the use days, or the expiration date necessary for the NC program 52 of the encrypted NC data 51 are selected for each option.
[0127] The EC payment server 91 charges the user PC a fee associated with the usage condition request 74, and when the fee associated with the usage condition request 74 is paid, the EC payment server 91 sends to the authentication management device 20 information in which the usage condition request 74 and the decryption device 40 are associated with each other.
[0128] The authentication management device 20 includes, in the payment authentication code C1, the usage condition information 75, which is information about the usage condition corresponding to the usage condition request 74. For example, the authentication management device 20 adds the usage condition information 75, which is information about the usage condition corresponding to the usage condition request 74, to the device authentication code B1. Thereafter, the authentication management device 20 and the storage device 30 perform processing similar to that described with reference to FIG. Fig. 11. The NC data 50 stored in the storage device 30 includes the NC program 52 and the option data 73, which are described with reference to Fig. 9 were described.
[0129] The decryption device 40 additionally carries out processing similar to that described with reference to Fig. 11. The decryption device 40 thus decrypts the payment authentication code C1 using the code decryption key C2, and decrypts the encrypted NC data 51 using the NC data decryption key A2. Consequently, the decryption device can obtain the device authentication code B1 to which the usage condition information 75 has been added, and can obtain the NC program 52 and the option data 73. The decryption device 40 sends the NC program 52, the option data 73, and the usage condition information 75 to the program analysis unit 13.
[0130] Consequently, the second NC device 130 sets the option enable and disable based on the usage condition information 75. The second NC device 130 thus sets, for each option, the number of cycles performed to execute the machining, the number of commands in the option program instruction, the usage time, the usage days, or the expiration date. The second NC device 130 then uses the NC program 52 and the option data 73 to enable the machining to be executed. In this way, the second NC device 130 controls the machining using the option data 73 under a condition permitted based on the usage condition information 75.
[0131] When the decrypted NC program 52 is selected to enable the machining to be executed, the second NC device 130 enables or disables an option (an option corresponding to the option data 73) necessary for using the NC program 52 based on the use condition information 75 to allow the machining to be executed.
[0132] The user of the second NC device 130 only needs to send to the EC payment server 91 the usage condition request 74 in which a necessary option (an option corresponding to the option data 73) associated with the NC program 52 used in the actual machining performed by the machine tool 7A is set to be available only for the necessary number of machining operations and the necessary machining time. Thus, when the machine tool 7A is introduced, the user of the second NC device 130 does not need to purchase the option data 73 that is unnecessary at the time of introduction, and can reduce the initial investment.
[0133] It should be noted that the Fig. 12 shown decryption device 40, similar to that shown in Fig. 11, which can also input NC data 50 into the NC simulator. In this case, the NC simulator simulates the machining performed by the second NC device 130 and the machine tool 7A.
[0134] Furthermore, a plurality of encryption devices 10 may be provided. In this case, the storage device 30 stores the encrypted NC data 51 encrypted by each encryption device 10. The decryption device 40 selects the pieces of the necessary encrypted NC data 51 from the multiple pieces of encrypted NC data 51 encrypted by the multiple encryption devices 10. Thus, the encryption device 10 can provide the NC data 50 only to the decryption device 40 that requires the NC data 50, without disclosing the content of the NC data 50 to another encryption device 10 or the like.The decryption device 40 usually accesses the multiple encryption devices 10 individually due to problems such as data leakage and unauthorized copying, but the decryption device 40 can select the pieces of the encrypted NC data 51 provided by the multiple encryption devices 10 in the same storage device 30, resulting in improved user satisfaction.
[0135] As described above, according to the third embodiment, since the NC program 52 and the option data 73 are included in the NC data 50, the second NC device 130 can control the machine tool 6A using the NC program 52 and the option data 73.
[0136] Furthermore, the NC data 50 includes the usage condition information 75, and the second NC device 130 controls machining using the option data 73 under the condition permitted based on the usage condition information 75. Since the second NC device 130 can use the option data 73 with the usage condition restricted based on the usage condition information 75, the option data 73 can be used at a low cost. Fourth embodiment.
[0137] Now, a fourth embodiment will be described with reference to the Fig. 13 to 15. In the fourth embodiment, an application program to be added is encrypted, and the encrypted application program is provided to the decryption device 40.
[0138] Fig. Fig. 13 is a diagram showing a configuration of a data provision system according to the fourth embodiment. To indicate the components that achieve the same functions as those of the Fig. 1 shown data provision system 1 of the first embodiment are shown in Fig. 13 are designated by the same reference numerals, and a repetitive description thereof is avoided.
[0139] A data provision system 4 of the fourth embodiment comprises the same components as the data provision system 3 of the third embodiment. The data provision system 4 thus comprises the encryption device 10, the authentication management device 20, the storage device 30, the decryption device 40, and the EC payment server 91.
[0140] For example, in the data provision system 4, a new additional application program (hereinafter referred to as an additional application 76) is occasionally developed, such as an application program that facilitates the use of the machine tool 6A. The NC simulator 81 can simulate the model of the virtual machine tool 6B and execute a test using the additional application 76, which is additional application software.
[0141] The auxiliary application 76 includes a PLC program, a macro program, additional application software, or firmware. The PLC program and the macro program are used when the first NC device 120 and the second NC device 130 perform control processing. The additional application software and the firmware can be executed by the first NC device 120 and the second NC device 130.
[0142] In the fourth embodiment, the add-on application 76 is stored in the NC data 50. The NC data encryption unit 12 of the encryption device 10 encrypts the NC data 50 in which the add-on application 76 is stored through processing similar to that of the first, second, and third embodiments, and outputs the encrypted NC data 54 to the storage device 30. Furthermore, the NC data encryption unit 12 of the encryption device 10 outputs the NC data decryption key A2 to the authentication management device 20 through processing similar to that of the first, second, and third embodiments.
[0143] Fig. Fig. 14 is a diagram for describing the processing performed by the NC simulator according to the fourth embodiment. It should be noted that for the processing described with reference to Fig. 14, a description of the processing which the person referred to in the Fig. 7 is omitted. Here, the case where the NC simulator 82 includes the encryption device 10 is described, but the encryption device 10 may be arranged outside the NC simulator 82.
[0144] The NC simulator 82 of the fourth embodiment includes the same components as the NC simulator 82 of the third embodiment. Here, a case will be described where the data constituting the add-on application 76 includes two pieces of data, namely 3D.EXE and 3D.LIB.
[0145] In the fourth embodiment, the encryption device 10 also encrypts the NC data 50 in which the add-on application 76 is stored through processing similar to that of the third embodiment. Consequently, the encryption device 10 generates the encrypted NC data 54 in which the add-on application 76 is encrypted. The encryption device 10 outputs the generated encrypted NC data 54 to the storage device 30. Note that the operation of the authentication management device 20, the operation of the storage device 30, and the operation of the EC payment server 91 are similar to those of the third embodiment, and descriptions thereof will be omitted.
[0146] Since the NC data 50 output from the encryption device 10 is encrypted, even in the fourth embodiment, the third party cannot decrypt the encrypted NC data 54. Thus, the encryption device 10 can prevent the machining technology associated with the NC data 50 from leaking to the third party.
[0147] Note that the encryption device 10 may input the NC data 50 to the first NC device 120. In this case, the first NC device 120 controls the machine tool 6A using the NC program 52 included in the NC data 50.
[0148] Fig. 15 is a diagram for describing processing performed by the second NC device according to the fourth embodiment. Here, the case where the second NC device 130 includes the decryption device 40 is described, but the decryption device 40 may be arranged outside the second NC device 130.
[0149] In the fourth embodiment, the decryption device 40 also obtains the encrypted NC data 54 through processing similar to that of the third embodiment, and decrypts the encrypted NC data 54 through processing similar to that of the third embodiment. Consequently, the decryption device 40 obtains the NC data 50 in which the add-on application 76 is stored. The decryption device 40 sends the add-on application 76 to the program analysis unit 13.
[0150] The second NC device 130 adds the additional application 76, which has been decoded by the decryption device 40, to the existing application program, thereby updating the existing application program. The second NC device 130 controls the machine tool 7A using the updated application program to enable machining to be executed.
[0151] The second NC device 130 of the fourth embodiment can add and use the additional application 76 as appropriate to improve machining capabilities and productivity. This eliminates the need to purchase all application programs in advance at the time of introduction of the machine tool 7A and achieves a reduction in the initial investment. Furthermore, when a new additional application 76 is developed, the second NC device 130 can easily acquire the new additional application 76.
[0152] Note that the decryption device 40 may input the NC data 50 into the NC simulator. In this case, the NC simulator simulates the processing performed by the second NC device 130 and the machine tool 7A.
[0153] Furthermore, multiple encryption devices may be provided. In this case, the storage device 30 stores the encrypted NC data 54 encrypted by each encryption device 10. The decryption device 40 selects the pieces of the necessary encrypted NC data 54 from the multiple pieces of encrypted NC data 54 encrypted by the multiple encryption devices 10. Thus, the encryption device 10 can provide the NC data 50 only to the decryption device 40 that requires the NC data 50, without the content of the NC data 50 being disclosed to another encryption device 10 or the like.Conventionally, the decryption device 40 accesses the plurality of encryption devices 10 individually due to problems such as data leakage and unauthorized copying, but the decryption device 40 can select, in the same storage device 30, the pieces of the encrypted NC data 54 provided by the plurality of encryption devices 10, resulting in improved user satisfaction.
[0154] As described above, according to the fourth embodiment, since the additional application 76 is included in the NC data 50, the second NC device 130 can control the machine tool 7A using the additional application 76.
[0155] In addition, when the machine tool 7A is introduced, the user of the second NC device 130 does not need to purchase the application program unnecessary at the time of introduction, and can reduce the initial investment.
[0156] Incidentally, when performing special machining, the operation of the second NC device 130 occasionally involves machining using a special option or the machine tool 7A with a special additional axis. In this case, if the NC data held by the second NC device 130 does not support such special machining, the second NC device 130 may not allow the machine tool 7A to perform the special machining.
[0157] In addition, when the machine tool 7A is used to generate desired NC data or to improve the usability of the machining configuration and improve productivity, the user of the second NC device 130 occasionally wishes to add and use application software and option data of an assist function.
[0158] The initial investment also increases if all future options are included at the time of introduction of Machine Tool 7A, as machining needs shift from mass production to low-volume production of variable parts. In this case, the initial investment cannot be expected to pay off, or the payback period may be longer than planned, which in some cases leads to a management problem.
[0159] Difficult machining operations, productivity improvement techniques, and applications are also important technologies and essential know-how for the continued business of a contractor who sells machining technology and performs machining. The NC data that must be disclosed should be protected while the technology is being adopted. Furthermore, it is desirable to minimize the investment required for specialized machining.
[0160] In Embodiments 1 to 4 described above, the encryption device 10 encrypts the specific NC data 50 requested by the user of the second NC device 130 and provides the encrypted specific NC data 50 to the decryption device 40, and the investment for the machine tool 7A can thus be kept low.
[0161] Furthermore, in encryption where the encryption key is reused, if the encryption key is leaked, all subsequent data is decrypted. Since in Embodiments 1 to 4, different NC data encryption keys A1 can be used each time the encryption device 10 provides the NC data 50 to the decryption device 40, the subsequent NC data is not decrypted even if the one NC data encryption key A1 is leaked.
[0162] The hardware configurations of the encryption device 10, the authentication management device 20, the storage device 30, the decryption device 40, the EC payment server 91, the first NC device 120, the second NC device 130, and the NC simulators 81 and 82 will now be described. Note that the hardware configuration of the decryption device 40 will be described here because these devices have similar hardware configurations.
[0163] Fig. 16 is a diagram showing an exemplary hardware configuration for implementing the decryption device according to any one of Embodiments 1 to 4. The decryption device 40 may be implemented by an input device 300, a processor 100, a memory 200, and an output device 400. An example of the processor 100 includes a central processing unit (CPU, which may also be referred to as a central processor, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, or a digital signal processor (DSP)) or a large-scale integration (LSI) system. Examples of the memory 200 include a random access memory (RAM) and a read-only memory (ROM).
[0164] The decryption device 40 is implemented by the processor 100, which reads and executes a computer-readable decryption program for performing the operation of the decryption device 40, which is stored in the memory 200. The decryption program, which is the program for performing the operation of the decryption device 40, can also be said to be a program for causing the computer to execute a procedure or method for the decryption device 40.
[0165] The decryption program executed by the decryption device 40 has a module configuration including the NC data decryption unit 43, and the NC data decryption unit 43 is loaded into a main storage device of the NC data decryption unit 43 and is created on the main storage device.
[0166] The input device 300 corresponds to the code input unit 42. The input device 300 receives the payment authentication code C1 and the code decryption key C2 from the authentication management device 20 and sends them to the storage 200. In addition, the input device 300 receives the encrypted NC data 51 and the encrypted NC data 54 from the storage device 30 and sends them to the storage 200.
[0167] The memory 200 corresponds to the NC data storage unit 41. The memory 200 stores the NC data 50, the device ID code B2, and the like. Although this is Fig. 16, the memory 200 also stores the payment authentication code C1, the NC data decryption key A2, the device authentication code B1, and the like.
[0168] The NC data 50, the device ID code B2, and the like in the NC data storage unit 41 are read by the processor 100 from the memory 200. The memory 200 is also used as a temporary storage when the processor 100 executes various processing. The output device 400 sends the NC data 50 to the program analysis unit 13.
[0169] The decryption program may be stored on a computer-readable storage medium in an installation file or as an executable file and provided as a computer program product. The decryption program may also be provided to the decryption device 40 via a network, such as the Internet. It should be noted that some of the functions of the decryption device 40 may be implemented by dedicated hardware, such as dedicated circuitry, and other functions may be implemented by software or firmware.
[0170] The embodiments described in the above embodiments are merely illustrative in nature and can be combined with other known techniques, the embodiments can be combined with each other, and a part of each of the configurations can be omitted or modified without departing from the gist. List of reference symbols 1 to 4 data provision system; 6A, 7A machine tool; 6B virtual machine tool; 10 encryption device; 11, 31, 41 NC data storage unit; 12 NC data encryption unit; 13 Program analysis unit; 14A Interpolation processing unit; 14B virtual interpolation processing unit; 15A axis control unit; 15B virtual axis control unit; 16B Use Option Analysis Unit; 20 authentication management device; 21 Code generation unit; 22 code storage unit; 23 Decryption key storage unit; 30 storage device; 40 decryption device; 42 code entry unit; 43 NC data decryption unit; 50 NC data; 51, 54 encrypted NC data; 52 NC program; 53 encrypted NC program; 61A X-axis motor; 61B virtual X-axis model; 62A Y-axis motor; 62B virtual Y-axis model; 63A Z-axis motor; 63B virtual Z-axis model; 71 setting instruction data; 72 Model of the machined part; 73, 73A Option data; 74 Conditions of use requirement; 75 Conditions of use information; 76 Additional application; 77 Total option data; 81, 82 NC simulator; 91 EC payment servers; 100 processor; 110 comparison target NC device; 120 first NC device; 130 second NC device; 150 display operating unit; 200 storage; 300 input device; 400 dispensing device; A1 NC data encryption key; A2 NC data decryption key; B1 Device authentication code; B2 Device ID code; C1 Payment authentication code; C2 code decryption key.
Claims
[1] Data provision system, comprising: an encryption device for encrypting numerical control data using a first encryption key to generate encrypted numerical control data, the numerical control data to be used by a numerical control device for controlling a machine tool or by a simulator for simulating an operation of the machine tool; a storage device for receiving the encrypted numerical control data from the encryption device and for storing and distributing the encrypted numerical control data; an authentication management device for obtaining from the encryption device a first decryption key corresponding to the first encryption key, for generating a payment authentication code in which the first decryption key is stored, and for issuing the payment authentication code; and a decryption device for obtaining the encrypted numerical control data from the storage device, for obtaining the payment authentication code from the authentication management device, for extracting the first decryption key from the payment authentication code, and for decrypting the encrypted numerical control data using the first decryption key to extract the numerical control data. [2] Data provision system, comprising: an encryption device for encrypting numerical control data using a first encryption key to generate encrypted numerical control data, the numerical control data to be used by a numerical control device for controlling a machine tool or by a simulator for simulating an operation of the machine tool; a storage device for receiving the encrypted numerical control data from the encryption device and for storing and distributing the encrypted numerical control data; and a decryption device for obtaining the encrypted numerical control data from the storage device, and for decrypting the encrypted numerical control data using a first decryption key associated with the first encryption key to extract the numerical control data. [3] Data provision system according to claim 2, further comprising: an authentication management device for obtaining from the encryption device the first decryption key corresponding to the first encryption key, for generating a payment authentication code in which the first decryption key is stored, for encrypting the payment authentication code using a second encryption key, and for outputting a second decryption key corresponding to the second encryption key and the encrypted payment authentication code, wherein the decryption device receives the second decryption key and the encrypted payment authentication code from the authentication management device, decrypts the encrypted payment authentication code using the second decryption key to extract the first decryption key from the payment authentication code, and decrypts the encrypted numerical control data using the first decryption key to extract the numerical control data. [4] Data provision system according to claim 3, wherein the payment authentication code stores a destination authentication code that is unique to a destination that is authorized to use the numerical control data and the first decryption key, and the decryption device decrypts the encrypted payment authentication code using the second decryption key to extract the target authentication code and the first decryption key from the payment authentication code, and decrypts the encrypted numerical control data using the first decryption key when it has a corresponding code corresponding to the target authentication code to extract the numerical control data. [5] The data providing system according to claim 4, wherein the target authentication code is associated with the numerical control device, a user of the numerical control device, the simulator, a user of the simulator, a company that owns the machine tool, a model of the machine tool, a manufacturer that manufactures the machine tool, or a sales company of the machine tool. [6] Data provision system according to claim 4 or 5, wherein several of the decryption devices each store the same corresponding code and the encrypted numerical control data is decrypted by the plurality of decryption devices each storing the corresponding code. [7] The data providing system according to any one of claims 1 to 6, wherein the numerical control data is data used when the machine tool performs machining, and comprises a programmable logic control program, a macro program, additional application software, and / or firmware, the programmable logic control program and the macro program being used when the numerical control device performs control processing, the additional application software and the firmware being capable of being executed by the numerical control device. [8] The data providing system according to any one of claims 1 to 7, wherein the numerical control data includes a numerical control program used when the machine tool performs machining, document data, drawing data, model data, option data associated with the numerical control program, and / or application software. [9] The data providing system according to claim 3, further comprising a payment server for executing purchase procedure processing and payment processing for the encrypted numerical control data distributed via the storage device, wherein, when the payment server has confirmed that purchase or charge processing is being executed, the authentication management device generates the payment authentication code and the second decryption key and sends the payment authentication code and the second decryption key to the decryption device. [10] Data provision system according to claim 8, wherein the numerical control data includes the numerical control program and the option data, and when controlling the machine tool using the numerical control program, the numerical control device controls the machine tool using an additional function corresponding to the option data. [11] Data provision system according to claim 1 or 3, wherein the payment authentication code includes information on a usage condition for using option data belonging to the numerical control program to be used when the machine tool performs machining, and the numerical control device controls the machining using the option data under a condition permitted based on the usage condition. [12] The data providing system according to claim 11, wherein the usage condition is a number of cycles to be performed for executing a single processing, a number of instructions in a program instruction of an option, a usage time of the option data, usage days of the option data, or an expiration date of the option data. [13] The data providing system according to any one of claims 1 to 10, wherein the decryption device is included in the numerical control device or the simulator. [14] Data provision procedures, including: a generating step of encrypting, by means of an encryption device, numerical control data using a first encryption key to generate encrypted numerical control data, the numerical control data to be used by a numerical control device for controlling a machine tool or by a simulator for simulating an operation of the machine tool; a distribution step of obtaining, by means of a storage device, the encrypted numerical control data from the encryption device and storing and distributing the encrypted numerical control data; an output step of obtaining, by means of an authentication management device, from the encryption device a first decryption key corresponding to the first encryption key, generating a payment authentication code in which the first decryption key is stored, and outputting the payment authentication code; and a decryption step of obtaining, by means of a decryption device, the encrypted numerical control data from the storage device, obtaining the payment authentication code from the authentication management device, extracting the first decryption key from the payment authentication code, and decrypting the encrypted numerical control data using the first decryption key to extract the numerical control data.
Citation Information
Patent Citations
CN000112654935A
JP002000216772A
JP002008140414A
JP002008152551A
Secure 3D Printing
US20200326683A1