This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2018-177, filed on Jan. 4, 2018, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a file generation method, a file generation apparatus, and a non-transitory computer-readable storage medium for storing a program.
A technique for compressing and encoding text data on a character string basis or on a word basis is known. For example, a technique is known, which replaces, with a code, a characteristic string registered in a static dictionary and included in a file to be compressed, assigns a new compressed code to a characteristic string not registered in the static dictionary, stores the characteristic string, the new compressed code, and a region for preliminary encoding in a dynamic dictionary so that the characteristic string, the new compressed code, and the region for preliminary encoding are associated with each other in the dynamic dictionary.
In addition, a technique for setting security levels for items of encoded text data is known. For example, a technique for selecting items of information to be supplied to a user based on a payment method requested by the user and an authentication level of the user is known. In addition, a technique for displaying options indicating whether or not a single character string entered by a user is to be encrypted is known. In this technique, when an option indicating that the character string is to be encrypted is selected by the user, the character string is encrypted and converted to a fixed character string, and when an option indicating that the character string is not to be encrypted is selected by the user, the character string is not encrypted and is converted to a fixed character string and document data is generated. Furthermore, a technique for placing multiple masking objects at arbitrary positions in an image and determining whether or not items are to be masked based on, for example, a device for outputting, a document property, and an access right is known.
Examples of related art are Japanese Laid-open Patent Publication No. 2017-22666, Japanese National Publication of International Patent Application No. 2016-510459, Japanese Laid-open Patent Publication No. 2012-43242, and Japanese Laid-open Patent Publication No. 2004-22718.
According to an aspect of the embodiments, a method for generating a file includes: executing a reception process that includes receiving text information; executing a first generation process that includes detecting a phrase that is included in the received text information and is of a specific type, generating encoded information by encoding the phrase of the specific type, and generating a first dictionary in which the encoded information is associated with the phrase of the specific type before the encoding; and executing a second generation process that includes generating a first file including a first region and multiple second regions, the first region being configured to store the encoded information, wherein a third region corresponding to the specific type among the second regions is configured to store encrypted dictionary information obtained by encrypting the first dictionary.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
In the aforementioned techniques, it is difficult to compress and encode multiple text data items and execute block encryption to collectively encrypt information of a specific type. In the aforementioned techniques, when the information that is included in the text data items and is of the specific type is tried to be individually encrypted, a data size may increase or a word may be separated at a boundary of the block encryption.
According to an aspect, the present disclosure aims to provide a file generation program, a file generation method, and a file generating device that compress and encode text information and execute block encryption to collectively encrypt words of a specific type.
Hereinafter, embodiments of the file generation program disclosed herein, the file generation method disclosed herein, and the file generating device disclosed herein are described in detail with reference to the accompanying drawings. The disclosure, however, is not limited to the embodiments. The embodiments described below may be combined without contradiction.
An encoding process to be executed by a generating device 100 according to a first embodiment is described with reference to
For example, the generating device 100 extracts data “MickeyΔ” as data to be encoded, outputs the extracted data “MickeyΔ” to a bit filter 121, and determines whether or not a static code associated with the extracted data to be encoded is already registered in the bit filter 121. The bit filter 121 is a dictionary in which each of words is associated with a static code or a dynamic code. For example, in the bit filter 121, ultra-high-frequency words such as “ThisΔ”, “isΔ”, “aΔ”, and “penΔ” and static codes associated with the words are registered in advance. A data structure of the bit filter 121 is described later in detail. Static codes and dynamic codes are an example of encoded information.
When the static code associated with the extracted data “MickeyΔ” to be encoded is not registered in the bit filter 121, the generating device 100 determines whether attribute information of the data “MickeyΔ” corresponds to a low-frequency word, a name, a numerical value, or a tag. When the generating device 100 determines that the data “MickeyΔ” is a name, the generating device 100 associates a dynamic code (“A100h” in this case) with a type (“2” in this case) indicating the name and registers the dynamic code and the type in a dynamic dictionary 122. “h” that is the end of the dynamic code “A100h” is a code indicating that the dynamic code is expressed in hexadecimal notation. Attribute information of words is described later. The dynamic dictionary 122 is an example of a first dictionary.
Then, the generating device 100 associates the dynamic code “A100h” dynamically added to the dynamic dictionary 122 with the data “MickeyΔ” and registers the dynamic code “A100h” and the data “MickeyΔ” in the bit filter 121. Then, the generating device 100 acquires the dynamic code “A100h” associated with the word “MickeyΔ” based on the bit filter 121 and the dynamic dictionary 122 and outputs the acquired dynamic code “A100h” to encoded data F2.
In addition, when the word “MickeyΔ” appears in the target sentence data F1 next, the generating device 100 acquires the dynamic code “A100h” registered in the bit filter 121 and outputs the acquired dynamic code “A100h” to the encoded data F2.
When the generating device 100 determines that a static code associated with extracted data to be encoded is already registered, the generating device 100 acquires the static code and outputs the acquired static code to the encoded data F2. For example, when “402Fh” is already registered as a static code associated with data “penΔ” to be encoded, the generating device 100 acquires the static code “402Fh” and outputs the acquired static code “402Fh” to the encoded data F2.
The encoded data F2 illustrated in
As illustrated in
A process of encoding a text file according to the first embodiment and a process of decoding an encoded text according to the first embodiment are described with reference to
When the generating device 100 receives a request to decode the encoded text 1200 from a user (not illustrated), the generating device 100 determines an access right of the user who has requested the decoding. When the generating device 100 determines that the user has the right to access the personal information, the generating device 100 outputs the text file 1100 including the decoded information included in the portion 1112 including the name and the portion 1113 including the numerical value, as illustrated in
When the generating device 100 determines that the user does not have the right to access the personal information, the generating device 100 outputs a text 1300 including masked information included in the portion 1112 including the name and the portion 1113 including the numerical value. As illustrated in
As described above, since the generating device 100 according to the first embodiment encodes words of a specific type, which are included in a sentence and are not stored in the static dictionary, and generates a file including information obtained by encoding the dictionary in which codes are associated with words, the generating device 100 may execute block encryption to collectively encrypt the words of the specific type upon the encoding.
Functional Blocks
Next, an example of the generating device according to the first embodiment is described with reference to
The external I/F 110 controls communication with another computer such as a user terminal (not illustrated) of the generating device 100 via a cable or wirelessly. The external I/F 110 is, for example, a communication interface such as a network interface card (NIC), but is not limited to this. The external I/F 110 may be an interface with a display device (not illustrated) and an operation device (not illustrated).
The storage unit 120 is an example of a storage device configured to store a program and data. For example, the storage unit 120 is a memory, a processor, or the like. The storage unit 120 includes the bit filter 121, the dynamic dictionary 122, encoded data 123, the type table 124, and a buffer 125.
The bit filter 121 stores characteristic strings, static codes, and dynamic codes so that each of the characteristic strings is associated with a static or dynamic code in the bit filter 121. The following description assumes that the bit filter 121 includes a static bit filter 121a and a dynamic bit filter 121b. In the static bit filter 121a, ultra-high-frequency words are associated with static codes. In the dynamic bit filter 121b, words other than the ultra-high-frequency words are associated with dynamic codes.
As illustrated in
In the static bit filter 121a, each of the pairs of “2-grams” are information indicating a character string (or 2 words) of 2 characters. The “bit maps” indicate bit maps associated with the character strings of the pairs of 2-grams. For example, a bit map associated with “ab” is “1_0_0_0_0”. This bit map indicates a word including the character string “ab” as first and second characters.
The “first pointers” point to positions of the static codes associated with the bit maps. The first pointers pointing to positions where words having, at top portions, the character strings stored in a “2-grams” field of the static bit filter 121a are stored are stored for the numbers of characters of the words. For example, a pointer for a word “able” is stored in (4) of a first pointer field of the static bit filter 121a in a record in which “ab” is stored in the “2-grams” field and “1_0_0_0_0” is stored in a bit map field of the static bit filter 121a.
The “static codes” store static codes corresponding to the words. As illustrated in
As illustrated in
As illustrated in
In the dynamic bit filter 121b, since 2-grams of the word “Mickey” are “mi” and the number of characters of the word “Mickey” is 6, a pointer for the word “Mickey” is stored in (6) of a first pointer field of the dynamic bit filter 121b in a record in which “1_0_0_0_0” is stored in a bit map field of the dynamic bit filter 121b. For example, since a top character string of “Minnie” and the number of characters of “Minnie” are the same as those of “Mickey”, a pointer for “Minnie” is stored at the same position as the pointer for “Mickey”.
The dynamic dictionary 122 stores addresses of words stored in the buffer 125 and dynamic codes so that the addresses are associated with the dynamic codes in the dynamic dictionary 122. The dynamic dictionary 122 stores “dynamic codes”, “second pointers”, and “chain regions” so that the “dynamic codes”, the “second pointers”, and the “chain regions” are associated with each other in the dynamic dictionary 122. The dynamic codes stored in the dynamic dictionary 122 are identified by first pointers of the dynamic bit filter 121b illustrated in
In
In the dynamic dictionary 122, the chain regions are information indicating whether or not corresponding character strings are chained due to the duplication of pointers from the dynamic bit filter 121b. When 2-grams of a character string and the number of characters of the character string match those of a character string associated with a dynamic code, a chain region associated with the dynamic code stores the dynamic code associated with the characteristic string. For example, “A101h” is registered in a chain region for the dynamic code “A100h”. This indicates that since 2-grams of “Mickey” associated with the dynamic code “A100h” and 2-grams of “Minnie” associated with the dynamic code “A101h” are “Mi”, and the number of characters of “Mickey” and the number of characters of “Minnie” are 6, “Mickey” and “Minnie” have a chain relationship. When character strings are not chained together, or when a top character string of a certain word and the number of characters of the certain word do not match those of another word, “NULL” is set in a chain region for the certain word.
The dynamic dictionary 122 may include multiple portions based on types of attribute information of words. The attribute information of the words includes “low-frequency words”, “names”, and “numerical values”. The “low-frequency words” are not names and appear in texts with low frequency. The “names” include proper nouns such as names of people. The “numerical values” include individual numbers and phone numbers. In the example illustrated in
The encoded data 123 stores data obtained by encoding the input target sentence data F1. The encoded data 123 stores the encoded data F2 including the header portion, the text portion, and the trailer portion, as illustrated in
The type table 124 stores association relationships between dynamic codes and attribute information of words.
In the type table 124, the “types” indicate identifiers uniquely identifying types of attribution information of words. The “addresses” indicate addresses at which dynamic codes of the words of the types are stored. The “attribute information” indicates attribute information of the types such as a “name” and a “low-frequency word”. The “encryption” indicates whether or not portions included in the dynamic dictionary 122 and associated with the types are to be encrypted.
As illustrated in
The buffer 125 stores words before the words are encoded using dynamic codes. As illustrated in
Returning to
The receiver 131 receives the input target sentence data F1 from the user terminal via the external I/F 110. The receiver 131 outputs the received target sentence data F1 to the determiner 132.
The receiver 131 receives a request to output a text from the user terminal and outputs the received request to the decoder 136.
The determiner 132 determines whether or not words included in the target sentence data F1 are already registered in the bit filter 121 or whether or not a static or dynamic code associated with each of the words is already registered.
The determiner 132 extracts the words from the target sentence data F1 using a known morphological analysis technique or the like upon receiving the input target sentence data F1 from the receiver 131. The determiner 132 compares the bit maps associated with pairs of 2-grams included in the extracted words with the pointers of the bit filter 121 and identifies words at positions pointed by the pointers associated with the bit maps. The determiner 132 searches words corresponding to the words in the order that the words have been identified.
When the same word as a word extracted by the determiner 132 exists in the static bit filter 121a, the determiner 132 determines that the word has been hit in the static bit filter 121a. Then, the determiner 132 outputs the result of the determination to the encoder 133.
When the same word as a word extracted by the determiner 132 does not exist in the static bit filter 121a, the determiner 132 determines, via a first pointer of the static bit filter 121b, whether or not the same word as a word extracted by the determiner 132 exists in the buffer 125. When the same word as the extracted word exists in the buffer 125, the determiner 132 determines that the word has been hit in the dynamic dictionary 122. Then, the determiner 132 outputs the result of the determination to the encoder 133.
When the determiner 132 determines that the same word as the extracted word does not exist in the buffer 125, the determiner 132 identifies the type of the word and newly registers a dynamic code associated with the word in a portion included in the dynamic dictionary 122 and corresponding to the type. First, the determiner 132 uses a technique such as known pattern matching to determine whether or not the word is associated with any of the types such as a low-frequency word, a name, a numerical value, a tag, and time. The determiner 132 adds the word to the buffer 125 and adds a pointer pointing to an address of the word to second pointers of the dynamic dictionary 122. Then, the determiner 132 registers the dynamic code associated with the word in the portion included in the dynamic dictionary 122 and corresponding to the type.
For example, when the determiner 132 determines that a dynamic code associated with a word “1234567890” is not registered in the dynamic dictionary 122, the determiner 132 identifies the type of the concerned word. For example, when the determiner 132 determines that the concerned word is of the type “numerical value”, the determiner 132 adds the word “1234567890” to the buffer 125 and adds a pointer pointing to an address of the concerned word to second pointers of the dynamic dictionary 122. In addition, the determiner 132 registers the dynamic code associated with the concerned word in the portion 122c included in the dynamic dictionary 122 and corresponding to the type “numerical value” of the concerned word. Then, the determiner 132 outputs the registered dynamic code to the encoder 133.
The encoder 133 encodes the word extracted from the target sentence data F1 and causes the encoded data to be stored in the encoded data 123. When the encoder 133 receives the output determination result indicating that the word has been hit in the static bit filter 121a, the encoder 133 extracts a static code associated with the concerned word from the static bit filter 121a and encodes the concerned word.
When the encoder 133 receives the output determination result indicating that the word has been hit in the dynamic dictionary 122, the encoder 133 extracts the dynamic code associated with the concerned word from the dynamic dictionary 122 and encodes the word. In addition, when the encoder 133 receives the newly registered output dynamic code, the encoder 133 encodes the word using the received dynamic code.
The generator 134 attaches the partially or entirely encrypted dynamic dictionary 122 to encoded data to generate data to be stored in the encoded data 123. When the encoding of all words included in the target sentence data F1 is completed, the generator 134 executes block encryption such as known AES to encrypt a certain portion that is among the portions 122a to 122d included in the dynamic dictionary 122 and is indicated in the type table 124 storing information indicating that the certain portion is to be encrypted. In the first embodiment, the generator 134 encrypts the portion 122b corresponding to the names and the portion 122c corresponding to the numerical values. Then, the generator 134 causes the encoded data F2 including, in the trailer portion, the dynamic dictionary including the encrypted portions 122b and 122c and the unencrypted portions 122a and 122d to be stored in the encoded data 123.
The decoder 136 decodes a text stored in the encoded data 123 and outputs the decoded text in accordance with an output request from the user. When the decoder 136 receives, from the receiver 131, an output request to output a text including an ID of target data, the decoder 136 acquires encoded data corresponding to the output request. The decoder 136 references a header portion of data included in the encoded data 123 and extracts the encoded data matching the ID included in the request to output the text, for example.
The decoder 136 identifies the right to access the personal information of the user who has transmitted the output request. When the decoder 136 determines that the user has the access right, the decoder 136 decodes the encrypted portions 122b and 122c of the dynamic dictionary 122. Then, the decoder 136 uses the dynamic dictionary 122 including the decoded portions 122b and 122c to decode a text portion of the data extracted from the encoded data and outputs the decoded text portion of the data to the user terminal via the external I/F 110.
When the decoder 136 determines that the user does not have the access right, the decoder 136 does not decode the encrypted portions 122b and 122c of the dynamic dictionary 122 and uses the dynamic dictionary 122 to decode the text portion of the data extracted from the encoded data, for example. For example, the decoder 136 decodes the data extracted from the encoded data without decoding information including the personal information of the user who does not have the access right. Then, the decoder 136 outputs the decoded data to the user terminal via the external I/F 110. In this case, the decoder 136 may mask the information including the personal information and output the masked information, like the text 1300 illustrated in
Flow of Process
Next, processes according to the first embodiment are described with reference to
The determiner 132 detects a word included in the received text (in S101). Then, the determiner 132 references the bit filter 121 and determines whether or not a static code associated with the detected word is already registered in the bit filter 121 (in S110).
When the determiner 132 determines that the static code is already registered (Yes in S110), the encoder 133 encodes the detected word to the static code (in S114). After that, the encoder 133 causes the process to proceed to S120.
When the determiner 132 determines that the static code is not registered (No in S110), the determiner 132 references the dynamic dictionary 122 and determines whether or not a dynamic code associated with the detected word is already registered in the dynamic dictionary 122 (in S111).
When the determiner 132 determines that the dynamic code is already registered (Yes in S111), the encoder 133 encodes the detected word to the dynamic code. After that, the encoder 133 causes the process to proceed to S120.
When the determiner 132 determines that the dynamic code is not registered (No in S111), the determiner 132 identifies the type of the detected word and outputs the identified type to the encoder 133 (in S112). Then, the encoder 133 registers the dynamic code associated with the detected word in a portion that is among the portions 122a to 122d included in the dynamic dictionary 122 and corresponds to the identified attribute information (in S113). Then, the encoder 133 causes the process to proceed to S114.
Then, the generator 134 determines whether or not all words have been detected (in S120). When the generator 134 determines that one or more of all the words have not been detected (No in S120), the process returns to S101 and is repeatedly executed.
When the generator 134 determines that all the words have been detected (Yes in S120), the generator 134 encrypts the portions 122b and 122c included in the dynamic dictionary 122 and corresponding to the personal information (in S121). Then, the generator 134 generates data by coupling encoded data with data of the encrypted portions of the dynamic dictionary 122 and data of the unencrypted portions of the dynamic dictionary 122, causes the generated data to be stored in the encrypted data 123 (in S122), and terminates the process.
Next, a process of reading a generated two-dimensional code is described.
The decoder 136 acquires the text corresponding to the output request from the encoded data 123 (in S201). Then, the decoder 136 determines whether or not the user that has transmitted the output request has the right to access the personal information (in S210).
When the decoder 136 determines that the user has the access right (Yes in S210), the decoder 136 decodes the encrypted portions 122b and 122c of the dynamic dictionary 122 (in S211). Then, the decoder 136 uses the bit filter 121 and the dynamic dictionary 122 including the decoded portions 122b and 122c to decode the encoded text (in S213) and causes the process to proceed to S214.
When the decoder 136 determines that the user does not have the access right (No in S210), the decoder 136 masks encoded data corresponding to the encrypted portions 122b and 122c of the dynamic dictionary 122 without decoding the encoded data corresponding to the encrypted portions 122b and 122c (in S212). Then, the decoder 136 decodes the encoded text using the bit filter 121 and the dynamic dictionary 122 without using the encrypted portions 122b and 122c (in S213).
Then, the output unit 135 outputs the decoded text to the user terminal via the external I/F 110 (in S214) and terminates the process.
As described above, the generating device 100 according to the first embodiment receives text information and detects a phrase that is included in the text information and is of a specific type. The generating device 100 generates encoded information by encoding the phrase of the specific type and generates the first dictionary in which the encoded information is associated with the phrase of the specific type before the encoding. Then, the generating device 100 generates a file including the generated encoded information in a first region and including encrypted dictionary information obtained by encrypting the generated first dictionary in a third region, which corresponds to the specific type among multiple second regions of the file. Thus, the generating device 100 may execute block encryption to collectively encrypt words that are included in text information and are of the specific type.
The generating device 100 determines whether or not the phrase included in the text information is already stored in the second dictionary. The generating device 100 may extract, as the phrase of the specific type, a phrase determined as not being stored in the second dictionary and generate the encoded information and the first dictionary. Thus, the generating device 100 may dynamically add a code to a word to be encrypted.
The generating device 100 may store encoded information corresponding to phrases of the specific type in storage regions different for items of the phrases of the specific type. Thus, whether or not phrases are to be encrypted may be determined for each of types.
The generating device 100 may generate a file including the third dictionary in which phrases other than the phrases of the specific type are associated with information obtained by encoding the other phrases in the process of generating the file. Thus, static codes associated with words that appear with high frequency and dynamic codes may coexist.
In addition, when the generating device 100 receives a request to output a file, the generating device 100 may determine, based on an access right of a user who has requested the output, whether or not the generating device 100 decodes the encoded information associated with the phrase of the specific type. The generating device 100 may output the text information including the phrase that has been obtained by decoding the encoded information determined to be decoded and is of the specific type. Thus, since information to be output is changed based on the access right of the user, it may be possible to suppress leakage of the information.
Although the addresses of the portions of the dynamic dictionary 122 are registered in the type table 124 illustrated in
The generating device 100 may change the sizes of the address regions of the portions of the dynamic dictionary by changing the addresses registered in the type table 124 and associated with the portions based on a data capacity of a text or the number of appearing words of a specific type, for example. In addition, the generating device 100 may be configured to change the data lengths of the dynamic codes.
In
When there is a probability that the number of dynamic codes is insufficient, the generating device 100 may change an address associated with a type “file path” from “A500h” to “A600h”. In this case, regions in which dynamic codes associated with the word type “time” are expanded to “A400h” to “A5FFh”. Thus, the dynamic dictionary 122 may store “512” dynamic codes associated with the word type “time”.
After the description of the regions to be assigned to dynamic codes, a configuration for changing data lengths of dynamic codes is described with reference to
Changes in the assignment of addresses in
As described above, the generating device 100 may determine one or more of sizes of storage regions configured to store encoded information and sizes of encoded information based on appearance frequencies of phrases of a specific type. Thus, a data size of the dynamic dictionary may be optimized.
Although the embodiments are described above, the techniques disclosed herein may be enabled in various embodiments other than the aforementioned embodiments. For example, although the first embodiment describes the example in which the generating device 100 has the configuration for determining whether or not each of the portions 122a to 122d included in the dynamic dictionary 122 is to be encrypted, the first embodiment is not limited to this. For example, the generator 134 of the generating device 100 may use encryption keys different for multiple portions included in the dynamic dictionary 122 to encrypt the multiple portions included in the dynamic dictionary 122. In addition, the decoder 136 may divide the access right of the user who has transmitted the request to output the text. Then, the decoder 136 may decode only a portion among the portions of the dynamic dictionary 122 based on a stage of the access right of the user.
As described above, the generating device 100 generates first dictionaries different for items of phrases of a specific type and uses different encryption keys to encrypt the first dictionaries for the items to generate encrypted dictionary information. Thus, the generating device 100 may determine whether or not the phrases are to be decoded based on each of the types of the phrases.
As illustrated in
For example, as illustrated in
As described above, the generating device 100 may output text information including a character string obtained by masking a phrase, associated with encoded information determined to not be decoded, of a specific type based on a type associated with an item for the phrase of the specific type and the number of characters of the phrase of the specific type. Thus, a display method may be changed based on an item of a phrase, a length of the phrase, or the like.
System
One or more of processes that are among the processes described in the embodiments and are to be automatically executed may be manually executed. One or more of processes that are described in the embodiments and are to be manually executed may be automatically executed using a known method. The process procedures, the control procedures, the specific names, the information including the various types of data and parameters are described above in the embodiments with reference to the accompanying drawings and may be arbitrarily changed unless otherwise specified.
The constituent elements of the devices illustrated in the drawings are functionally conceptual and may not be physically configured as illustrated in the drawings. For example, specific forms of the distribution and integration of the devices may not be limited to those illustrated in the drawings. All or some of the constituent elements may be functionally or physically distributed or integrated in arbitrary units based on various loads, usage statuses, and the like. For example, the encoder 133 illustrated in
The various processes described in the embodiments may be executed by causing a computer system such as a personal computer or a workstation to execute a program prepared in advance. An example of the computer system configured to execute the program having the same functions as described in the embodiments is described below. In addition, the same may apply to the corresponding devices in the other embodiments.
Examples of the processor 410 are a central processing unit (CPU), a digital signal processor (DSP), a field programmable gate array (FPGA), and a programmable logic device (PLD). Examples of the memory 440 are a random access memory (RAM) such as a synchronous dynamic random access memory (SDRAM), a read only memory (ROM), and a flash memory.
A generation program 420a is stored in the HDD 420 in advance. The generation program 420a enables the same functions as those of the receiver 131, determiner 132, encoder 133, generator 134, output unit 135, and decoder 136 of the generating device 100. The generation program 420a may be divided.
The HDD 420 stores various types of information. For example, the HDD 420 stores an OS and various types of data to be used for searches.
The I/F 430 corresponds to the external I/F 110 described together with the functional units and is, for example, a network interface card.
Then, the processor 410 reads the generation program 420a from the HDD 420 and executes the generation program 420a, thereby executing the same operations as those of the processing units described in the embodiments. For example, the generation program 420a executes the same operations of those of the receiver 131, the determiner 132, the encoder 133, the generator 134, the output unit 135, and the decoder 136.
The generation program 420a may not be stored in the HDD 420 in an initial state.
For example, the generation program 420a may be stored in a “portable physical medium” to be inserted in the computer 400. The “portable physical medium” is a flexible disk (FD), a CD-ROM, a DVD, a magneto-optical disc, an IC card, or the like. The computer 400 may read the generation program 420a from the portable physical medium and execute the generation program 420a.
The generation program 420a may be stored in “another computer (or server” connected to the computer 400 via a public line, the Internet, a LAN, a WAN, or the like. The computer 400 may read the generation program 420a from the other computer and execute the generation program 420a.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2018-000177 | Jan 2018 | JP | national |