This application is based upon and claims the benefit of priority from Japanese Patent Application No. 2017-111975, filed on Jun. 6, 2017; the entire contents of which are incorporated herein by reference.
Embodiments described herein relate generally to a communication apparatus, a communication system, a key sharing method, and a computer program product.
Quantum key distribution (QKD) has been conventionally known, which enables a transmission device and a reception device connected thereto via optical fiber to securely share an encryption key using single photons successively transmitted from the transmission device to the reception device. The laws of quantum mechanics on which QKD is based ensures that an encryption key shared using QKD is protected from eavesdropping. An encryption key thus shared is used for encrypted data communication using, for example, the one-time pad technique. Information theory ensures that even the most highly knowledgeable eavesdroppers cannot decrypt encrypted data transmitted and received using the one-time pad technique.
According to an embodiment, a communication apparatus includes a memory and one or more hardware processors configured to function as a reception unit, a generation unit, a determination unit, a sharing control unit, and a transmission unit. The reception unit is configured to receive, from an application, an acquisition request for an encryption key to be used for encrypted data communication between the application and a communication counterpart thereof. The generation unit is configured to generate the encryption key. The determination unit is configured to determine whether there is another communication apparatus connected to the communication counterpart. The sharing control unit is configured to, with the other communication apparatus, share the encryption key using quantum key distribution when being able to share the encryption key using quantum key distribution. The sharing control unit is configured to, with the other communication apparatus, share the encryption key using a key sharing scheme other than quantum key distribution when being unable to share the encryption key using quantum key distribution. The transmission unit is configured to transmit, to the application, the encryption key and information indicating a scheme used for sharing the encryption key.
The following describes embodiments of a communication apparatus, a communication system, a key sharing method, and a computer program product in detail with reference to the drawings.
A first embodiment is described first.
Basic Configuration
The nodes 10a and 10b are nodes (trusted nodes) that perform QKD. In connection with
The applications 20a and 20b perform encrypted data communication using an encryption key shared between the nodes 10a and 10b. An encryption key to be used by the application 20a is provided thereto by the node 10a. An encryption key to be used by the application 20b is provided thereto by the node 10b. Each of the applications 20a and 20b is to be executed by an information processing apparatus such as a server apparatus, a personal computer, or a smart device. Hereinafter, the respective applications 20a and 20b are referred to as applications 20 when there is no need to distinguish therebetween. The information processing apparatus that executes each of the applications 20 may be the corresponding node 10.
A method for sharing an encryption key using the QKD technique uses a single photon as a media and is therefore subject to a constraint on a distance at which the encryption key can be shared. For this reason, the QKD network as illustrated in
Each of the nodes 10 executes QKD between itself and the node 10 adjacent thereto that is connected thereto via the optical fiber link and thereby shares an encryption key therebetween. In the first embodiment, descriptions use the term “local key” to mean an encryption key to be shared using QKD between any two adjacent nodes connected to each other via an optical fiber link. That is, a local key is a link key to be used between both sides of a link.
Each of the nodes 10 generates an encryption key based on, for example, random number information independently of QKD. In the first embodiment, description uses the term “global key” to mean this encryption key. That is, a global key is an application encryption key to be used for encrypted data communication between the applications 20.
Each of the nodes 10 encrypts the global key using a local key, and transfers the encrypted global key to the node 10 that is adjacent thereto. The respective nodes 10 perform the processing for successively transferring, to the nodes 10 that are adjacent thereto, the global key encrypted with the local keys shared between the respective nodes 10 and the adjacent nodes 10. Thus, each of the nodes and any other one of the nodes 10 can share the global key.
As described above, a global key is transferred over links encrypted with corresponding local keys shared using QKD. It can therefore be stated that, if at least the nodes 10 are secure, a global key is secure to the same extent as local keys are secure based on the security of the nodes 10.
First of all, the nodes 10a and 10b share a local key using QDK (Step S1). The nodes 10b and 10c then share a local key using QDK (Step S2).
The application 20a then transmits, to the node 10a, an acquisition request for a global key to be used for encrypted data communication with a communication counterpart of the application 20a (Step S3). The acquisition request contains, for example, communication-counterpart identifying information for identifying the communication counterpart. The communication-counterpart identifying information is, for example, information such as the name of an application serving as the communication counterpart and the address of the communication counterpart.
Subsequently, the node 10a identifies, as the node 10 to share a global key therewith, the node 10c that is connected to the communication counterpart indicated by the acquisition request transmitted in the processing at Step S3 (Step S4). Specifically, the node 10a identifies the node 10 to share a global key therewith, for example, by referring to connected node information. The connected node information is directory data in which the connection relations between the applications 20 and the nodes 10 are recorded.
Referring back to
Upon receiving the encrypted global key from the node 10a, the node 10b decrypts and then encrypts the encrypted global key (Step S8). Specifically, the node 10b decrypts the encrypted global key with the local key shared in the processing at Step S1 and encrypts this decrypted global key with the local key shared in the processing at Step S2.
The node 10b then transmits the global key encrypted in the processing at Step S8 to the node 10c (Step S9).
Upon receiving the encrypted global key from the node 10b, the node 10c decrypts the encrypted global key with the local key shared in the processing at Step S2 (Step S10). The node 10c then stores therein the global key decrypted in the processing at Step S10 (Step S11).
The node 10a then provides the global key generated in the processing at Step S5 and the key ID for this global key to the application 20a (Step S12).
The application 20a then notifies the application 20c of the key ID for the global key provided in the processing at Step S12 (Step S13).
The application 20c then transmits an acquisition request for a global key to the node 10c, the acquisition request containing the key ID that the application 20c is notified of in the processing at Step S13 (Step S14). The application 20c then receives, from the node 10c, the global key identified by the key ID transmitted in the processing at Step S14 (Step S15).
The applications 20a and 20b perform encrypted data communication using the global key shared through the processing at Steps S1 to S15 (Step S16).
The above descriptions have been given of a case where, after the node 10a receives the acquisition request for a global key in the processing at Step S3, the processing for sharing the global key is executed in the processing at Steps S5 to S11. However, the processing for sharing the global key may be executed at any desired timing. For example, the node 10a may use a global key shared in advance between the nodes 10a and 10c after receiving the acquisition request for a global key in the processing at Step S3.
The above descriptions have been given of a case where notification of the key ID is made in the processing at Step S13 prior to encrypted data communication between the applications 20a and 20c. However, the processing for notification of the key ID may be executed at any desired timing. For example, the application 20a may transmit the key ID that identifies a global key provided in the processing at Step S12, along with encrypted data that has been encrypted with the global key, to the application 20c.
In general, the above respective nodes 10 are installed in geographically remote locations, and each of the applications 20 is to be executed on the corresponding node 10 or on an information processing apparatus that operates in a server room or the like in which the corresponding node 10 also operates. The respective nodes 10 need to have QKD devices installed therein that perform QKD; however, QKD devices in general are expensive. It is therefore difficult to prepare in advance all of the nodes 10 that are needed in the communication system; and the nodes 10 are possibly gradually installed at different points in time after the start of operation of the communication system.
In the example of
In the example of
In the first embodiment, descriptions are given of operation of the communication system that makes it possible to maintain the security of communication within a network even in cases such as those in
The storage unit 11 stores therein information. Examples of the information to be stored in the storage unit 11 include connected node information (refer to the descriptions of
The reception unit 12 receives, from the corresponding application 20, an acquisition request for a global key to be used for encrypted data communication with a communication counterpart of the application 20.
Herein, the application 20 that starts an encrypted data communication session is referred to as a master, and the application 20 that responds to an encrypted data communication session is referred to as a slave. The acquisition requests for a global key can be implemented through web application programming interfaces (APIs), which are defined as illustrated in
In each of the examples of
The key type indicates a scheme for sharing a global key. By being QKD, the key type indicates that the application 20 is requesting a global key shared using QRD.
By being ANY, the key type indicates that the application 20 also allows a global key shared using a key sharing scheme other than QRD. If the key type is ANY, the application 20 may change operation thereof depending on the key type that is applicable to a global key actually acquired.
The reason for having input of a key ID in the web API intended for a slave while not having input in the web API intended for a master is as follows. The slave sets a key ID that the master has notified the slave of as the input for the web API intended for a slave, and thereby acquires the same global key as the master has acquired.
Referring back to
The determination unit 14 determines whether there is any one of the nodes 10 that is connected to a communication counterpart contained in the acquisition request received by the reception unit 12.
The sharing control unit 15 causes the nodes 10 and another one of the nodes 10 that is connected to the communication counterpart to share a global key using QKD if the sharing using QKD is possible or using another key sharing scheme if the sharing using QKD is impossible. Example of another key sharing scheme includes the Diffie-Hellman (DH) key exchange scheme.
The transmission unit 16 transmits, to the application 20, a global key and information indicating a scheme for sharing the global key.
Key Sharing Method
The determination unit 14 then determines whether there is any one of the nodes 10 that is connected to a communication counterpart contained in the acquisition request transmitted in the processing at Step S31 (Step S32).
If there is not any one of the nodes 10 that is connected to the communication counterpart (No at Step S32), the transmission unit 16 transmits, to the application 20, error information indicating that no global key cannot be provided (Step S33).
If there is any one of the nodes 10 that is connected to the communication counterpart (Yes at Step S32), the sharing control unit 15 determines whether QKD can be used (Step S34).
If QKD can be used (Yes at Step S34), the sharing control unit 15 sets, in response data, a global key shared using QKD (Step S35). The sharing control unit 15 then sets the key type (QKD) in the response data (Step S38). The transmission unit 16 then transmits, to the application 20, the response data that contains the global key and the key type (QKD) indicating a scheme for sharing the global key (Step S39). Examples of the response data transmitted at this step include those presented in
Referring back to
If a global key shared using a key sharing scheme other than QKD is allowed (Yes at Step S36), the sharing control unit 15 sets, in response data, a global key shared using DH (a key sharing scheme other than QKD) (Step S37). The sharing control unit 15 then sets the key type (DH) in the response data (Step S38). The transmission unit 16 then transmits, to the application 20, the response data that contains the global key and the key type (DH) indicating a scheme for sharing the global key (Step S39). Examples of the response data transmitted at this step include those presented in
Descriptions of Specific Examples
The communication system in
First of all, the application 20a transmits, to the node 10a, an acquisition request for a global key to be used for encrypted data communication with the application 20c. The determination unit 14 of the node 10a then determines, by referring to the connected node information in
The communication system in
First of all, the application 20a transmits, to the node 10a, an acquisition request for a global key to be used for encrypted data communication with the application 20c. The acquisition request for a global key contains the aforementioned key type (QKD or ANY) and the aforementioned communication-counterpart identifying information.
The determination unit 14 of the node 10a then determines, by referring to the connected node information in
The sharing control unit 15 of the node 10a determines, with reference to the node state information in
The node state information in
The sharing control unit 15 of the node 10 can therefore find out, with reference to the node state information in
If the key type contained in the acquisition request for a global key is QKD, the transmission unit 16 of the node 10 transmits, to the application 20a, error information indicating that no global key is available.
If the key type contained in the acquisition request for a global key is ANY, the sharing control unit 15 of the node 10 causes the nodes 10a and 10c to share a global key using the DH key exchange scheme. When to share a global key using the DH key exchange scheme may be any desired timing. The nodes 10a and 10c may use a global key shared therebetween in advance using the DH key exchange scheme. The transmission unit 16 of the node 10a transmits the response data, such as any of the aforementioned examples in
The application 20a receives the response data, such as any of the aforementioned examples in
For example, for a global key shared using the DH key exchange scheme, the application 20a may use a higher refresh rate than it uses for a global key shared using QKD. For example, when a global key shared using the DH key exchange scheme is provided, the application 20a may change a content to be transmitted to another one of the applications 20. Furthermore, for example, when a global key shared using the DH key exchange scheme is provided, the application 20a does not need to perform communication with the application 20c.
As described above, in each of the nodes 10 (communication apparatuses) in the first embodiment, the reception unit 12 receives, from the corresponding application 20, an acquisition request for a global key (application encryption key) to be used for encrypted data communication with a communication counterpart of this application 20. The generation unit 13 generates a global key. The determination unit 14 determines whether there is any one of the nodes 10 that is connected to a communication counterpart of the application 20. The sharing control unit 15 causes the node 10 and another one of the nodes 10 to share a global key using QKD if the sharing using QKD is possible or using another key sharing scheme if the sharing using QKD is impossible. Finally, the transmission unit 16 transmits, to the application 20, a global key and the key type indicating a scheme for sharing the global key.
The nodes 10 in the first embodiment makes it possible to enable the security of communication within a network to be maintained even when the network includes an application that cannot use an encryption key shared using QKD. For example, the application 20 may change operation thereof depending on the key type that is applicable to a global key acquired thereby.
A second embodiment is described next. In the second embodiment, descriptions are given of differences thereof from the first embodiment while descriptions similar to those given in the first embodiment are omitted. In the second embodiment, the descriptions are given of a case where the application 20 can refer to the aforementioned connected node information before transmitting the aforementioned acquisition request for a global key.
If there is none of the nodes 10 that is connected to a communication counterpart of the application 20 (No at Step S51), the processing is ended.
If there is any one of the nodes 10 that is connected to a communication counterpart of the application 20 (Yes at Step S51), the application 20 transmits, to the node 10 that is connected to that application 20, an acquisition request for a global key to be used for performing encrypted data communication with a communication counterpart of that application 20 (Step S52). The application 20 then receives the aforementioned response data from the node 10 (Step S53). The application 20 then performs encrypted data communication with the communication counterpart of that application 20 using a global key contained in the response data received in the processing at Step S53 (Step S54).
A modification of the second embodiment is described next. In the modification of the second embodiment, descriptions are given of a case where the application 20 can refer to not only the aforementioned connected node information but also the aforementioned node state information before transmitting the aforementioned acquisition request for a global key.
If there is none of the nodes 10 that is connected to the communication counterpart of the application 20 (No at Step S61), the processing is ended.
If QKD can be used (Yes at Step S62) or if a global key shared using a key sharing scheme other than QKD is allowed (Yes at Step S63), the application 20 transmits, to the node 10 that is connected to that application 20, an acquisition request for a global key to be used for performing encrypted data communication with the communication counterpart of that application 20 (Step S64).
If QKD cannot be used (No at Step S62), the application 20 determines whether a global key shared using a key sharing scheme other than QKD is allowed (Step S63). If a global key shared using a key sharing scheme other than QKD is not allowed (No at Step S63), the processing is ended.
If there is any one of the nodes 10 that is connected to the communication counterpart of the application 20 (Yes at Step S61), the application 20 determines, by referring to the aforementioned connected node information, whether QKD can be used between the node 10 connected to the application 20 and the node 10 connected to the communication counterpart of the application 20 (Step S62). The application 20 then receives the aforementioned response data from the node 10 (Step S65). The application 20 then performs encrypted data communication with the communication counterpart of that application 20 using a global key contained in the response data received in the processing at Step S64 (Step S66).
As described above, the second embodiment and the modification provide the same effect as the first embodiment alternatively through functions of an information processing apparatus that are implemented upon execution of the application 20.
A third embodiment is described next. In the third embodiment, descriptions are given of differences thereof from the first embodiment while descriptions similar to those given in the first embodiment are omitted.
In the first embodiment, descriptions have been given of a case where the sharing control unit 15 of a certain one of the nodes 10 refers to the aforementioned node state information to determine whether another one of the nodes 10 is adapted to QKD. The third embodiment is suitable for a case where a certain QKD network (completely equipped with QKD devices) and a general network scheduled to be equipped with QKD devices in the future are to be connected to each other.
In a case where QKD devices are installed link by link in a network unlike the above case, it is more difficult to determine whether protection by a QKD link adapted to QKD is established entirely between certain ones of the nodes 10.
Likewise, in a case where a failure has occurred in any QKD link constituting a part of a certain QKD network, it may be also difficult to determine whether sharing of a global key between certain ones of the nodes 10 is affected by the failure.
In the third embodiment, descriptions are given of a first method and a second method for making it possible to determine as correctly as possible whether QKD can be used in these cases.
First Method
The first method is a method by which the sharing control unit 15 of each of the nodes 10 refers not only to the aforementioned connected node information and the aforementioned node state information but also to link information.
In the example of
The sharing control unit 15 can determine, based on a route of the nodes 10 that are to share a global key and on the link information, whether QKD can be used in all of the links on the route. If QKD can be used in all of the links on the route, it can be determined that the global key is protected by QKD. The sharing control unit 15 therefore sets QKD as the key type in the aforementioned response data if QKD can be used in all of the links on the route.
To better reflect the security of the links, not only information on QKD but also information on any scheme other than QKD may be entered as the states in the link information in
Here, it is necessary to determine a process by which information on an actual route for sharing a global key is acquired for referring to the above link information. The following describes three possible alternatives of the process.
A first possible alternative is to use source routing. The source routing is a method in which, for example, when the nodes 10a and 10c in
A second possible alternative is to cause the sharing control unit 15 of each of the nodes 10 to seek out a route for the sharing before or after operation for sharing the global key. Specifically, the sharing control unit 15 can seek out the route by using a function such as the traceroute command.
A third possible alternative is to, each time operation for sharing a global key is performed, cause the sharing control unit 15 of each of the nodes 10 on the route to add node information (or the link information) on that node 10 as additional information appended to the shared global key and transfer the additional information to the next node 10 on the route.
The sharing control unit 15 of each of the nodes 10 can use any one of the above first to third possible alternatives to correctly determine a route for sharing a global key. The sharing control unit 15 therefore can correctly assign the key type of a global key.
Second Method
The second method is a method in which a first key sharing network protected by QKD and a second key sharing network protected by a key sharing scheme other than QKD are provided as key sharing networks to which the applications 20 are connected.
All links among the nodes 10 included in the first key sharing network are protected by QKD. In contrast, the second key sharing network includes at least one link that is not protected by QKD.
First of all, the sharing control unit 15 of one of the nodes 10 attempts to have a global key shared via the first key sharing network. If a global key is successfully shared via the first key sharing network, the security of the global key is ensured by QKD. The sharing control unit 15 then sets QKD as the key type of the global key.
Upon failing to have a global key shared via the first key sharing network, the sharing control unit 15 attempts to share a global key via the second key sharing network, which is protected by, for example, the DH key exchange scheme. The sharing control unit 15 then sets DH as the key type of the global key.
As described above, a communication system in the third embodiment not only enables more correct determination as to whether QKD can be used but also can provide the same effect as the communication system in the first embodiment.
A fourth embodiment is described next. In the fourth embodiment, descriptions are given of differences thereof from the first embodiment while descriptions similar to those given in the first embodiment are omitted. In the fourth embodiment, descriptions are given of a case where the aforementioned response data further includes additional information.
The nodes 10 that are used for sharing a global key are indicated by “route”.
Links used for sharing a global key and schemes for protecting the security of these respective links are indicated by “link”.
Time and date when the global key has been shared is indicated by “date”.
Information other than the above may be contained in the response data. For example, the response data may contain, as information indicating a scheme for generating a global key, information on the quality of random numbers used for generating a global key or on a random number generator used for the generation.
For example, the response data may contain, as a scheme for protecting the security of a link, not only the aforementioned key sharing scheme but also detailed information on the key sharing scheme. For example, when the key sharing scheme is QKD, the detailed information on the key sharing scheme represents information such as a protocol used (such as BB84 and E91) and a security theory used.
For example, the response data may further contain performance information on the nodes 10. Examples of the performance information on the nodes 10 include vendor names of QKD devices installed in the respective nodes 10. For the node 10 that has not yet been equipped with a QKD device, information such as the installation schedule of a QKD device may be contained in the performance information on the nodes 10.
As described above, a communication system in the fourth embodiment enables each of the applications 20 to, based on information contained in the response data, more specifically determine the security of a global key acquired.
A fifth embodiment is described next. In the fifth embodiment, descriptions are given of differences thereof from the first embodiment while descriptions similar to those given in the first embodiment are omitted. In the fifth embodiment, descriptions are given of a case where each of the applications 20 is allowed to designate a key sharing scheme for a global key.
As described above, a communication system in the fifth embodiment enables each of the applications 20 to be provided with an appropriate global key even in a case where the communication system includes at least one of the applications 20 that uses an encryption scheme different from the encryption scheme used by the other applications 20.
A sixth embodiment is described next. In the sixth embodiment, descriptions are given of differences thereof from the first embodiment while descriptions similar to those given in the first embodiment are omitted. In the sixth embodiment, descriptions are given of a case where the key type is not incorporated in URLs in web APIs.
Optionally, the information indicating a designated key sharing scheme can be retained as a parameter of the application 20 that is not incorporated in a URL. Optionally, the information indicating a designated key sharing scheme (for example, the information indicating whether a scheme other than QKD is allowed) may be retained as a system setting of the entire system or all of the nodes. Optionally, the nodes 10 or the system may determine the information indicating a designated key sharing scheme (for example, information indicating whether a certain one of the applications 20 is one that allows QKD), based on the type of the certain application 20.
For example, the transmission unit 16 of the node 10 refers to the information indicating a designated key sharing scheme set separately or determined based on the type of the application 20. If a global key (application encryption key) cannot be shared using a key sharing scheme designated by the designated key sharing scheme cannot be used, the transmission unit 16 transmits, to the application 20, error information indicating that the key sharing scheme thus designated cannot be used.
The same applies to the “reserved” field contained in the key data as illustrated in
Furthermore, it is also important that the use of web APIs configured as illustrated in
Lastly, an example of the hardware configuration of a communication system in any one of the first to the sixth embodiments is described.
Example of Hardware Configuration
The control device 201, the main storage device 202, the auxiliary storage device 203, the display device 204, the input device 205, the quantum communication IF 206, and the classical communication IF 207 are connected to one another via a bus 210.
The control device 201 executes a computer program read into the main storage device 202 from the auxiliary storage device 203. The main storage device 202 is a memory such as a read only memory (ROM) and a random access memory (RAM). The auxiliary storage device 203 is, for example, a hard disk drive (HDD) and a memory card.
The display device 204 displays information such as the state of the node 10. The input device 205 receives input from a user.
The quantum communication IF 206 is an interface for connection to a quantum channel through which a single photon is transmitted at a time. The node 10 that has no QKD device installed therein may be devoid of the quantum communication IF 206.
The classical communication IF 207 is an interface for connection to a classical channel (control channel) such as Ethernet (trademark). The classical communication IF 207 may be adapted to wireless communication.
The node 10 in any one of the first to the sixth embodiments can be implemented through any apparatus provided with the hardware configuration in
A computer program to be executed on the node 10 in any one of the first to the sixth embodiments is stored, as a file in an installable or executable format, in a computer-readable storage medium such as a compact disc read-only memory (CD-ROM), a memory card, a compact disc recordable (CD-R), or a digital versatile disk (DVD) and provided as a computer program product.
A computer program to be executed on the node 10 in any one of the first to the sixth embodiments may be stored on a computer connected to a network such as the Internet and be provided by being downloaded via the network.
A computer program to be executed on the node 10 in any one of the first to the sixth embodiments may be provided via a network such as the Internet without being downloaded.
A computer program to be executed on the node 10 in any one of the first to the sixth embodiments may be provided by being incorporated in the ROM or the like in advance.
A computer program to be executed on the node 10 in any one of the first to the sixth embodiments has a modular structure that includes any function that constitutes the functional configuration of the node 10 in any one of the first to the sixth embodiments and that can be implemented through a computer program.
The control device 201 reads, from a storage medium such as the auxiliary storage device 203, and executes a function to be implemented through a computer program, so that the function is loaded into the main storage device 202. That is, the function to be implemented through a computer program is generated on the main storage device 202.
At least one or all of the functions of the node 10 in any one of the first to the sixth embodiments may be implemented through hardware such as an integrated circuit (IC). An IC is a processor that executes, for example, dedicated processing.
When a plurality of processors are used to implement the functions, each of the processors may implement only one of the functions or may implement two or more of the functions.
Furthermore, any operational configuration may be applied to each of the nodes 10 in the first to the sixth embodiments. The nodes 10 in any one of the first to the sixth embodiments may be configured to operate as, for example, apparatuses included in a cloud system on a network.
The control device 301, the main storage device 302, the auxiliary storage device 303, the display device 304, the input device 305, and the communication IF 306 are connected to one another via a bus 310. The control device 301, the main storage device 302, and the auxiliary storage device 303 can be described in the same manner as the control device 201, the main storage device 202, the auxiliary storage device 203 in
The display device 304 displays information such as the state of the application 20 that is executed by the information processing apparatus. The input device 305 receives input from a user. The communication IF 306 is an interface for connection to Ethernet (trademark). The communication IF 306 may be adapted to wireless communication.
The information processing apparatus that executes the application 20 in any one of the first to the sixth embodiments can be implemented through any apparatus provided with the hardware configuration in
A computer program, such as the application 20, to be executed on the information processing apparatus in any one of the first to the sixth embodiments is stored, as a file in an installable or executable format, in a computer-readable storage medium such as a CD-ROM, a memory card, a CD-R, or a DVD and provided as a computer program product.
A computer program, such as the application 20, to be executed on the information processing apparatus in any one of the first to the sixth embodiments may be stored on a computer connected to a network such as the Internet and be provided by being downloaded via the network.
A computer program, such as the application 20, to be executed on the information processing apparatus in any one of the first to the sixth embodiments may be provided via a network such as the Internet without being downloaded.
A computer program, such as the application 20, to be executed on the information processing apparatus in any one of the first to the sixth embodiments may be provided by being incorporated in the ROM or the like in advance.
At least one or all of the functions of the application 20 in any one of the first to the sixth embodiments may be implemented through hardware such as an IC. An IC is a processor that executes, for example, dedicated processing.
When a plurality of processors are used to implement the functions, each of the processors may implement only one of the functions or may implement two or more of the functions.
Furthermore, any operational configuration may be applied to the information processing apparatus that executes the application 20 in any one of the first to the sixth embodiments. The information processing apparatus that executes the application 20 in any one of the first to the sixth embodiments may be configured to operate as, for example, an apparatus included in a cloud system on a network.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
Number | Date | Country | Kind |
---|---|---|---|
2017-111975 | Jun 2017 | JP | national |