Terminal device and computer program

As a saving target file is specified, a controller (110) executes a file management program to divide the saving target file, encrypt a divided file using a cryptographic key corresponding to the logical address of the divided file, save the divided file at a storing destination corresponding to the logical address, and create a table associating the logical address, the cryptographic key, and the saving destination physical address. As a reading target file is specified, the controller (110) identifies the corresponding divided file from the logical address, identifies the saving destination physical address of the divided file and the cryptographic key with reference to the table, reads the divided file from the identified physical address, and decrypts the divided file using the identified cryptographic key.

TECHNICAL FIELD

The present disclosure relates to a terminal device having the function of encrypting data and a computer program.

BACKGROUND ART

There is an increasing demand for data security. Various proposals have been made for maintaining the security (For example, see Patent Literature 1). Patent Literature 1 discloses double-encryption of stored data for protection.

CITATION LIST

Patent Literature

Patent Literature 1: Unexamined Japanese Patent Application Kokai Publication No. 2015-1800.

SUMMARY OF INVENTION

Technical Problem

According to the technique described in the Patent Literature 1, if the cryptographic key leaks, all information can be reproduced.

An objective of the disclosure is to provide a terminal device capable of protecting data more securely.

Solution to Problem

In order to solve the above problem, the terminal device according to the present disclosure comprises:a divider that divides a saving target file to create divided files;a selector that selects one of multiple encryption methods and one of multiple storing destinations;a saver encrypts a divided file created by the divider by an encryption method selected by the selector and saves the encrypted, divided file at a physical storing destination selected by the selector; anda table associating and storing information identifying the divided file, the encryption method, and an saving destination physical address.

The terminal device may be configured as follows:the saver further saves information identifying the encryption method at the physical storing destination, andsaves the divided file created by the divider and information identifying the encryption method used in encrypting the divided file at different storing destinations.

Moreover, for example, the terminal device may further comprise:an acquirer that acquires biological information of a user; anda division size setter that obtains a divided file size from conversion information converting the biological information acquired by the acquirer to the divided file size,wherein the divider creates a divided file of the size obtained by the division size setter.

The terminal device may be configured as follows:the biological information includes multiple kinds of biological information,the division size setter obtains from the conversion information the divided file size for each of the multiple kinds of biological information, andthe divider divides the saving target file to create the divided files of one or multiple sizes among the sizes obtained by the division size setter.

The terminal device may be configured as follows:the division size setter is a division size table associating and storing a condition based on biological information of a user and a divided file size,the selector further selects the divided file size from the division size table based on the biological information acquired by the acquirer, andthe divider creates the divided file of the size selected by the selector.

The terminal device may further comprise:an acquirer acquiring biological information of a user; anda creator creating a cryptographic key from the biological information acquired by the acquirer,wherein the saver encrypts the divided file using the cryptographic key created by the creator.

The terminal device may be configured as follows:the biological information includes multiple kinds of biological information,the creator creates the cryptographic key from each of the multiple kinds of biological information, andthe saver encrypts the divided file using one or multiple cryptographic keys among the cryptographic keys each created by the creator.

Moreover, for example, the terminal device may further comprise:a divided file identifier that identifies the divided file corresponding to a reading target file;an identifier that identifies the saving destination physical address of the divided file and the encryption method with reference to the table, anda reproducer that reads for reading the divided file from the physical address identified by the identifier and decrypts the divided file based on the identified encryption method.

The divided file comprises, for example, data for one cluster.

It is desirable that at least one of the multiple storing destinations is detachably mounted.

Alternatively, it is desirable that at least one of the multiple storing destinations is disposed on a cloud.

A computer program for making a computer function as the above-described terminal device is included in the present disclosure.

Advantageous Effects of Invention

The present disclosure changes the encrypting method and the saving destination for each divided data, making decryption more difficult. As a result, data can be protected more securely. On the other hand, processing load is low.

DESCRIPTION OF EMBODIMENTS

The terminal device according to Embodiment 1 of the present disclosure will be described below with reference to the drawings.

A terminal device10of this embodiment is a so-called smartphone and comprises the function of encrypting and saving data in a distributed manner.

The terminal device10comprises, as shown inFIG. 1, a controller110, and a microphone11, a speaker12, a touch panel13, a camera14, storages111and112, and a communicator113, which are connected to the controller110.

The microphone11is a device to pick up voice of the user during voice conversation. The speaker12outputs received voice during voice conversation. The touch panel13is configured by layering a touch sensor and a display. The touch sensor determines the position of a user operation. The display displays various kinds of information according to the control of the controller110.

The camera14is disposed on the front of the terminal device10and captures an image of an object.

The controller110comprises a processor, a random access memory (RAM), and the like, and executes application programs stored in the storages111and112. The application programs include a file management program, an email program, a schedule management program, and the like. The controller110executes the file management program to save various files (data) in a distributed and encrypted manner and to read from multiple locations and decrypt the data into original data.

The storages111and112are nonvolatile memories used as auxiliary storage devices and comprise a flash memory or the like. The storage111saves a file management program FMP and the storage112stores a file allocation table (a file management table) FMT. Moreover, the storages111and112save highly confidential information such as so-called telephone book data and schedule data in a distributed manner. Moreover, the storages111and112are each detachably connected to the terminal device10. Specifically, the storages111and112are mounted in slots or the like formed in the enclosure of the terminal device10and connected to the controller110via connectors CN.

The communicator113performs wireless communication with a base station or a nearby access point according to the control of the controller110for voice conversation, email communication, data communication, and the like.

The file saving procedure executed by the controller110executing the file management program FMP will be described next with reference toFIGS. 2A to 2D.

As shown inFIG. 2A, one file is divided into clusters that are the minimum units for a computer to access a disk. Any number of sectors can be included in a cluster. However, it is assumed in the following explanation that eight sectors are included as shown inFIG. 2B. It is assumed in this embodiment that one sector has 512 bytes. Thus, one cluster has a size of 4,096 bytes (approximately 4 K bytes).

An application program manages the sectors and clusters using logical addresses.

A cluster is specified by the n−3 higher order bits of an n-bit logical address. Each sector in a cluster is specified by the three lower order bits of a logical address.

In the following explanation, the logical address of a cluster means the (n−3) higher order bits of a whole n-bit logical address.

For saving a file in a storage, as shown inFIG. 2C, the file management program FMP stored in the storage111processes a cluster having an odd number logical address ((n−3) bits) (hereafter, an odd number logical address cluster) and a cluster having an even number logical address (hereafter, an even number logical address cluster) differently.

First, the file management program FMP encrypts a cluster having an odd number logical address using a cryptographic key KA and saves the cluster at any physical address PA on the storage111. The cryptographic key KA is saved on the storage112. On the other hand, the file management program FMP encrypts a cluster having an even number logical address using a cryptographic key KB and saves the cluster at any physical address PB on the storage112. The cryptographic key KB is saved on the storage111.

After performing the above processing, the file management program FMP creates a file management table FMT shown inFIG. 2D. This means that a cluster specified by a logical address Li is saved at a physical address PAi (or PBi) and encrypted using a key KA (or KB). The file management table is saved in the storage112. Here, the key is specified by the logical address Li and therefore the key KA or KB does not need to be stored.

The procedure to reproduce a file encrypted and saved in a distributed manner as described above will be described next.

Receiving a file access request from an application program, the file management program FMP obtains the logical address (n−3 bits as described above) of a cluster constituting the access target file.

Receiving a file access request from an application program, the file management program FMP obtains the logical address of the first cluster constituting the access target file. The access request includes, for example, the logical address of the first sector. The file management program FMP obtains the logical address of the first cluster from the logical address of the first sector. Identifying the logical address of the first cluster, the file management program FMP obtains the corresponding physical address with reference to the file management table FMT and further identifies the cryptographic key. Then, the file management program FMP reads data from the corresponding physical address, decrypts the data using the identified cryptographic key, and transmits the data to the application.

The file management program FMP executes the same operation on the subsequent clusters. Decrypting and transmitting all clusters to the application program, the file management program FMP ends the procedure.

The file saving procedure by the controller110will be described next with reference to the flowchart shown inFIG. 3. First, as a file saving request is made by an application program, the controller110starts the file saving procedure shown inFIG. 3.

First, the controller110executes the file management program FMP to identify a logical address Li of the first cluster constituting the saving target file and determines whether the logical address Li is an odd number or an even number (Step S11). If the logical address Li is an odd number (Step S11: Yes), as shown inFIG. 2C, the controller110encrypts the processing target cluster using the cryptographic key KA (Step S12). The controller110saves the encrypted cluster in a free area on the storage111(Step S13).

Subsequently, the controller110associates and registers in the file management table FMT the logical address Li of the processed cluster, the physical address PAi of the saving area, and the cryptographic key KA as shown inFIG. 2D(Step S14).

Subsequently, the controller110determines whether the file saving is finished (Step S15). If not finished (Step S15: No), the controller110increments the logical address Li by +1 (Step S18). Subsequently, the processing returns to the Step S11and the next cluster is processed.

On the other hand, if determined in the Step S11that the logical address of the processing target cluster is an even number (Step S11: No), as shown inFIG. 2C, the controller110encrypts the processing target cluster using the cryptographic key KB (Step S16). The controller110saves the encrypted cluster in a free area on the storage112(Step S17).

Subsequently, the controller110associates and registers in the file management table FMT the logical address Li of the processed cluster, the physical address PBi of the saving area, and the cryptographic key KB as shown inFIG. 2D(Step S14).

Subsequently, the controller110determines whether the file saving is finished (Step S15). If not finished (Step S15: No), the controller110increments the logical address Li by +1 (Step S18). Subsequently, the processing returns to the Step S11and the next cluster is processed.

If determined in the Step S15that the file saving is finished (Step S15: Yes), the file saving procedure ends.

The file reproduction procedure by the controller110will be described next with reference to the flowchart shown inFIG. 4. As a file reading request is made by an application program, the controller110starts the file reproduction procedure shown inFIG. 4.

Here, the application specifies a reading target in the form of, for example, the logical address of the first sector constituting the file and the data volume.

First, the controller110obtains the logical address of the first cluster and identifies the cryptographic key used in encrypting the processing target cluster and the physical address of the saving location with reference to the file management table FMT (Step S21).

Then, the controller110reads the cluster using the physical address identified in the Step S21(Step S22). Then, the controller110decrypts the read cluster using the cryptographic key identified in the Step S21(Step S23) and transmits the cluster to the application program.

Subsequently, it is determined whether the file reading is finished (Step S24). If not finished (Step S24: No), the processing returns to the Step S21and the same file reproduction procedure continues on the next cluster.

If it is determined in the Step S24that the file reading is finished (Step S24: Yes), the file reproduction procedure ends.

With the above configuration, one file is stored in the storages111and112in a distributed manner. Furthermore, the clusters saved in the storage111are encrypted using the cryptographic key KA and the cryptographic key KA is saved in the storage112. Moreover, the clusters saved in the storage112are encrypted using the cryptographic key KB and the cryptographic key KB is saved in the storage111. Therefore, even if data in either one storage111or112leak outside, it is difficult to restore the data.

Moreover, the file management program FMP automatically performs the encryption procedure, whereby the control load is low.

As a result, even if a so-called address book as shown inFIG. 5, schedule data as shown inFIG. 6, and the like are saved on the terminal device10, the risk of information leak is low.

The present disclosure is not confined to the above embodiment and various modifications and applications are available. For example, in the above embodiment, the storages111and112are detachable. However, only one of them may be detachable or both may be fixed.

Moreover, a case in which data are divided and saved in two storages111and112is described. The number of storages is determined on an arbitrary basis. Moreover, the division number is determined on an arbitrary basis. The number of encryption keys is also determined on an arbitrary basis.

The storing destination and the cryptographic key are specified by the unit of cluster. However, any unit size can be used and set in consideration of the processing load and the security.

Furthermore, the saving destination of data (divided files) may be an external server, database, or the like connected via a network.

A case in which the encryption method is varied by using different cryptographic keys is shown. However, the encryption algorithm itself may be varied.

Here, as shown inFIG. 7, the file management table FMT may be stored in a nonvolatile memory such as a flash memory within the controller110.

Moreover, as shown inFIG. 7, the storages111and112may be disposed in external devices via a network NW.

In the above embodiment, two cryptographic keys are used for encryption. However, three or more cryptographic keys may be used. Moreover, a file is stored at two storing locations. However, there may be three or more storing locations. For example, when M (an integer equal to or greater than 3) cryptographic keys and N (an integer equal to or greater than 3) storing locations are used, the controller110divides the logical address of a cluster by M (an integer equal to or greater than 3) and encrypts the cluster using a cryptographic key specified by the remainder mod (M), and divides the logical address of the cluster by N (an integer equal to or greater than 3) and saves the encrypted cluster at a storing location specified by the remainder mod (N). The controller110associates and saves in the file management table FMT the logical address of the cluster, the cryptographic key, and the physical address of the storing location. Here, since the cryptographic key can be identified from the logical address, the cryptographic key may be omitted.

The terminal device according to Embodiment 2 of the present disclosure will be described next with reference to the drawings.

In Embodiment 2, a file is saved in a distributed manner by a different method depending on the user, whereby a terminal device securely saving data without imposing a load on the user is provided. Here, the equivalent components to those of the terminal device according to Embodiment 1 are referred to by the same reference numbers.

A terminal device10A of this embodiment is connected to storage devices210and220on a cloud CL via a network as shown inFIG. 8. The terminal device10A comprises the function of acquiring biological information of the user, dividing and encrypting a file FI based on the biological information, and transmitting the file to the storage devices210and220. In this embodiment, a case in which the biological information is fingerprints, a voiceprint, and an iris is described.

The terminal device10A comprises a controller110, and a microphone11, a speaker12, a touch panel13, a camera14, a storage111, and a communicator113, which are connected to the controller110.

The microphone11picks up voice of the user and gives the voice to the controller110. The speaker12provides information by sound to the user according to an order from the controller110. The touch panel13acquires fingerprints of the user by a touch sensor and gives the fingerprints to the controller110. The camera14captures an image of an iris of the user and transmits the image to the controller110according to an order from the controller110.

The controller110comprises a processor, a random access memory (RAM), and the like, and executes application programs and a file management program FMP stored in the storage111.

The controller110executes the file management program FMP to acquire biological information of the user, divide and encrypt various files FI based on the biological information, and transmit and save the files in the storage devices210and220. Moreover, the controller110executes the file management program FMP to acquire biological information of the user, and read from the storage devices210and220and decrypt data into original data based on the biological information.

The storage111saves, in addition to the file management program FMP and the file management table FMT, a division size table DST and cryptographic keys KF, KV, and KI.

The file management table FMT of this embodiment includes, as shown inFIG. 9, a data management table DMT and a cluster management table CMT.

The data management table DMT associates and stores a data number i of data obtained by dividing a saving target file FI, a size after encryption, and a cryptographic key used in encryption.

On the other hand, the cluster management table CMT associates and stores a cluster number j, a saving destination physical address, and data numbers i of data included in the cluster.

The division size table DST saved in the storage111is a table saving information defining a size into which a saving target file FI is divided. In this embodiment, the division size varies depending on the user's biological information. Therefore, as shown inFIG. 10, the division size table DST associates biological information, a condition for the biological information to satisfy, and a division size to be selected when the condition is satisfied.

In the division size table DST shown inFIG. 10, as conditions for fingerprint information, the number of end points and the number of branch points of a fingerprint are compared. As conditions for voiceprint information, the frequency of the highest sound volume, ftop, and the frequency of the second highest sound volume, fsecond, are compared. As conditions for iris information, the number of 1s, N1, and the number of 0s, N0, in an iris code are compared.

The communicator113shown inFIG. 8communicates with the storage devices210and220on the cloud CL.

The file saving procedure executed by the controller110executing the file management program FMP will be described next with reference toFIGS. 11 to 14.

The file saving procedure in this embodiment is a procedure to divide a file FI into data of a size based on biological information of the user, encrypt the divided file FI based on the biological information, and save the divided file FI in a distributed manner.

As the user or application software makes a request for saving a file FI, the controller110starts the procedure to save a file FI shown inFIG. 11.

First, the controller110requests the user to enter biological information (fingerprint information, voiceprint information, and iris information) (Step S10). Specifically, the controller110displays on the display of the touch panel13a content giving an order to place a finger pad on the touch sensor, utter given words into the microphone11, and stare at the camera14.

Subsequently, the controller110orders each of the touch panel13, the microphone11, and the camera14to acquire biological information and determines whether the biological information is acquired (Step S20). The controller110waits until all biological information requested is acquired (Step S20; No). On the other hand, if determined that all biological information requested is acquired (Step S20; Yes), the controller110extracts feature information from the acquired biological information (Step S30).

The controller110extracts, for example, the positions of end points and branch points included in the fingerprint as feature information of the fingerprint information. Moreover, the controller110extracts the frequencies at sound volume peaks in the sound spectrum and their order by the sound volume as feature information of the voiceprint information. Moreover, the controller110extracts an iris code as feature information of the iris information.

Extracting the feature information from the biological information, the controller110executes the file dividing procedure to divide a saving target file FI (Step S40), executes the encryption procedure to encrypt each of the divided files FI (data) (Step S50), and finishes the distributed-saving procedure to save the encrypted, divided files FI in the storage devices210and220in a distributed manner (Step S60).

The file dividing procedure (Step S40) to the distributed-saving procedure (Step S60) executed in the file saving procedure will be described next with reference toFIGS. 12 to 14.

First, the file dividing procedure will be outlined using a case in which a file FI constituted by text information “ABCDEFGHIJKL” shown inFIG. 14is divided.

The controller110divides data constituting the file FI into data of sizes specified by the biological information in the file dividing procedure. For example, one character of hiragana and kanji of the Japanese language is expressed by three bytes in the Unicode transformation format-8 (UTF-8). It is assumed that in the example shown inFIG. 14, each character of “ABCDEFGHIJKL” is expressed by three bytes. Here, the controller110divides the file FI into seven bytes, nine bytes, four bytes, . . . from the beginning according to the biological information so as to include data of sizes (the number of bytes) that are not dividable by three. As a result, the character codes of “C,” “E,” “I,” and “K” are each divided in the middle. As a result, even if some of the data 1 to 6 leak, it is difficult to decipher the file FI. In this embodiment, the file FI is divided as described above.

Detailed proceedings of the file dividing procedure (Step S40) and the encryption procedure (Step S50) will be described next.

Starting the file dividing procedure, as shown inFIG. 12, the controller110first obtains three division sizes S, a fingerprint information-based division size SF, a voiceprint information-based division size SV, and an iris information-based division size SI, based on the feature information extracted in the Step S30with reference to the division size table DST saved in the storage111(Step S41).

According to the division size table DST shown inFIG. 10, for example assuming that the number of end points and the number of branch points of the fingerprint are 4 and 5, respectively, the frequency at the highest sound volume, ftop, and the frequency at the second highest sound volume, Fsecond, of the voiceprint are 300 Hz and 400 Hz, respectively, the number of 1s, N1, and the number of 0s, N0, in the iris code are 1005 and 1043, respectively, the number of end points <the number of branch points is satisfied and a division size SFof 503 bytes is selected in regard to the fingerprint, ftop<fsecondis satisfied and a division size SVof 491 bytes is selected in regard to the voiceprint, and N1<N0is satisfied and a division size SIof 479 is selected in regard to the iris.

The division size S is set smaller than one sector (512 bytes) that is the unit in conventional data processing. Furthermore, the division size S is set to a prime number of bytes. The division size S is set smaller than one sector.

Specifically, subsequently, the controller110sets a pointer i presenting the data number to an initial value “1” (Step S42).

Then, it is determined which the value of the remainder Mod (i, 3) of the value i divided by 3 is, 1, 2, or 0 (Steps S43and S46).

If Mod (i, 3)=1 (Step S43; Yes), the controller110clips the corresponding amount of data to the division size SFfrom the beginning of the remaining data of the file FI (Step S44). The controller110encrypts the clipped data using the cryptographic key KF (Step S45).

If Mod (i, 3)=2 (Step S43; No, Step S46; Yes), the controller110clips the corresponding amount of data to the division size SVfrom the beginning of the remaining data of the file FI (Step S47). The controller110encrypts the clipped data using the cryptographic key KV (Step S48).

If Mod (i, 3)=0 (Step S43; No, Step S46; No), the controller110clips the corresponding amount of data to the division size SIfrom the beginning of the remaining data of the file FI (Step S49). The controller110encrypts the clipped data using the cryptographic key KI (Step S50).

The size of the encrypted data varies and it is difficult to process the data by a computer as they are. Then, the controller110combines the data encrypted in the Step S45, S48, or S50with pad data to create a sector of data as shown inFIG. 15(Step S51).

Then, as shown inFIG. 9, the data number i, the size of the encrypted data, and the cryptographic key used in encryption are registered in the data management table DMT (Step S52).

Subsequently, it is determined whether unprocessed data are 0 byte and if not 0 byte (Step S53; No), the data number i is incremented by +1 (Step S54) and the processing returns to the Step S43to clip data from the saving target file FI and encrypt the data.

If determined in the Step S53that unprocessed data are 0 byte (Step S53; Yes), the processing returns to the main flow.

As described above, in the file dividing/encryption procedure, the controller110clips from a saving target file FI data of the division size SFdetermined by the fingerprint, the division size SVdetermined by the voiceprint, and the division size SIdetermined by the iris in sequence. The controller110encrypts the clipped data using the cryptographic keys KF, KV, and KI in sequence and creates sectors of data in sequence.

Details of the distributed-saving procedure (Step S60) shown inFIG. 11will be described next with reference toFIG. 13.

Sector data including the encrypted data are created in sequence in the dividing/encryption procedure. The created sector data are grouped into clusters of eight each and saved in the storage devices210and220.

To do so, the controller110initializes the cluster number j presenting the cluster number to 1 (Step S61).

Then, the sector data created in the dividing/encryption procedure are combined eight each in sequence to create a cluster (Step S62).

Then, the controller110determines whether the cluster number j of a saving target cluster is an odd number or an even number (Step S63). If the cluster number j is an odd number (Step S63: Yes), the cluster is saved at a free physical address PA on the storage device210(Step S64).

Subsequently, the controller110associates and registers in the cluster management table CMT the cluster number j of the processed cluster, the physical address PA of the saving area, and the data number i of the data included in the cluster as shown inFIG. 9(Step S66).

Subsequently, the controller110determines whether saving of the file FI is finished (Step S67) and if not finished (Step S67: No), the cluster number j is incremented by +1 (Step S68). Subsequently, the processing returns to the Step S62to process the next cluster.

On the other hand, if determined in the Step S63that the cluster number j is an even number (Step S63: No), the controller110saves the cluster at a free physical address PB on the storage device220(Step S65).

Subsequently, the controller110proceeds to the above-described Step S66.

If determined in the Step S67that saving of the file FI is finished (Step S67: Yes), the file saving procedure ends.

The file reproduction procedure by the controller110will be described next.

As a decryption target file FI is specified, the controller110reads the cluster management table CMT for that file FI, identifies the saving destination physical address, and reads the clusters in sequence.

Then, the controller110extracts, from each sector included in the read clusters, the encrypted data from the sectors included in each read cluster according to the contents of the cluster management table CMT and data management table DMT.

the controller110decrypts the extracted data using a proper cryptographic key based on the contents of the data management table DMT.

Then, the original data (the file FI) are reproduced by concatenating the decrypted data in the order of data number i.

Moreover, since the file FI is divided into data clusters of sizes unique to the user and unrecognizable by a computer as they are, even if some of the data leak, it is difficult to decipher the leaked clusters and the risk of information leak is low.

The present disclosure is not confined to the above embodiment and various modifications and applications are available. For example, in the above embodiment, the storage devices210and220are devices on the cloud CL. However, the storage devices210and220may be devices locally connected to the terminal device10.

Moreover, a case in which the file FI is divided and saved in the two storage devices210and220is described. However, the number of storage devices is determined on an arbitrary basis. Moreover, the division size S is determined on an arbitrary basis. The number of encryption keys is also determined on an arbitrary basis.

In the above embodiment, a case in which the division size of a file FI is obtained (calculated) using the division size table is described. However, the method of calculating the division size S is not restricted thereto. It may be possible for the terminal device10to obtain the division size S from the acquired biological information by converting the feature information extracted from the biological information acquired by the controller110using any function (conversion information) or other methods.

Moreover, the above conversion information is not necessarily saved in the storage111within the terminal device10and may be saved, for example, on a server connected to the terminal device10via a network or the like. For calculating the division size S, the terminal device10may temporarily save in the storage111the conversion information saved on a server and convert the biological information to the division size S, or may make the server calculate the division size S and download the division size S.

Moreover, as the biological information acquired by the terminal device10, three kinds, fingerprint information, voiceprint information, and iris information, are described. However, other kinds of biological information may be used. For example, the terminal device10may learn a habit in handwriting of the user and divide the file FI into a division size S based on the peculiar handwriting photographed by a camera or the peculiar handwriting made on the touch panel13.

In the above embodiment, the division size S is determined based on the feature information extracted from the biological information of the user. However, it may be possible to determine an encryption method including an encryption key based on the biological information.

For example, as shown inFIG. 16, it may be possible to set cryptographic keys according to conditions for the biological information to satisfy and select a cryptographic key according to the biological information. In the example of the cryptographic key table EKT ofFIG. 16, one of cryptographic keys KF1and KF2is selected and used in the Step S45, one of cryptographic keys KV1and KV2is selected and used in the Step S48, and one of cryptographic keys KI1and KI2is selected and used in the Step S50. Here, the number of cryptographic keys to use may further be increased.

Moreover, the biological information or the feature amounts may be converted to a cryptographic key using a function or the like.

Moreover, the saving destination of a file FI may also be determined based on the biological information. For example, as shown inFIGS. 17A and 17B, it may be possible to set cluster saving destinations according to conditions for the biological information to satisfy and select a saving destination according to the biological information.

In Embodiment 2, as the data number i is determined, the biological information to refer to for encryption is determined. However, it may be possible to change the biological information to refer to for encryption based on the biological information.

For example, as shown inFIGS. 18A and 18B, it may be possible to associate a condition for specific biological information to satisfy and biological information (feature amounts) to refer to when the condition is satisfied. In the example ofFIG. 18A, if determined from the feature amounts of the entered fingerprint information that the number of end points ≥(the number of branch points+5) is satisfied, the procedure shown inFIG. 12is executed. On the other hand, if determined that the number of end points <(the number of branch points+5) is satisfied, for example, the iris information is referred to when Mod (3)=2. Therefore, data are clipped to the division size S corresponding to the iris (487 bytes or 479 bytes in the example ofFIG. 10) in the Step S47and encrypted using the cryptographic key KI in the Step S48. Here, a modification can be made to use KI1or KI2shown inFIG. 16as the cryptographic key in the Step S48.

InFIG. 15, pad data are placed in the trailing space for making a sector of data from the clipped data of a size S. However, it may be possible to change the position of pad data based on the biological information.

For example, as shown inFIG. 19, it may be possible to associate a condition for specific biological information to satisfy and a pad data position when the condition is satisfied. In the example ofFIG. 19, if determined from the feature amounts of the entered iris information that N1≥N0is satisfied, as shown inFIG. 20A, pad data are placed at the beginning of a sector. On the other hand, if determined from the feature amounts of the entered iris information that N1<N0is satisfied, as shown inFIG. 20B, the first 100 bytes of data of a size S clipped from the saving target file are placed at the beginning of a sector, which is followed by pad data as much as (the size of one sector of data—S) and the remaining clipped data. In such a case, it is desirable that the pad data position and size are registered in the data management table DMT.

In the above embodiment, a case in which the feature amounts extracted from the entered biological information are referred to for encryption is described. However, it may be possible to refer to preregistered biological information or feature amounts. For example, biological information or its feature amounts for authentication are registered at the time of user registration and stored in the controller110or in the storage111or112. For using the terminal device10or10A, the user enters biological information from the microphone11, the touch panel13, and the camera14. The entered biological information is compared with the registered biological information or feature amounts for authenticating the user. After the user is authenticated, the biological information or feature amounts referred to for encryption/decryption may be the registered biological information or feature amounts. With this configuration, although the entered biological information may change depending on the environment of use and/or operation of the terminal device10or10A, the registered biological information and/or feature amounts do not change and the encryption/decryption can stably be performed.

In the embodiments, several tables are shown. These do not need to be in the form of a table. As long as necessary information is derived, these can be in the form of a function or a program. Moreover, some of the information may be eliminated or other information for deriving that information may be registered. For example, the cryptographic key KA or KB in the file management table FMT shown inFIG. 2Dcan be derived from the logical address Li and therefore may be eliminated. In such a case, the logical address Li functions as information identifying the cryptographic key used in encryption. The cryptographic keys KF, KV, and KI in the data management table DMT shown inFIG. 9may also be eliminated. Moreover, for example, the data number in the cluster management table CMT shown inFIG. 9can also be eliminated. The j-th cluster includes data having the data numbers i of 8×(j−1)+1 to 8×j.

As the biological information to refer to for encryption/decryption, fingerprint information, voiceprint information, and iris information are used by way of example. However, the type of biological information is not restricted thereto. For example, other than these, vein information, face information, palm print information, signature information, and the like may be retrieved as biological information. The number of types of information to use is not limited to three and may be one, two, or greater than three.

Moreover, the arrangement of devices/parts can be changed on an arbitrary basis. The terminal device10executing the above described procedures may be configured by saving and distributing a computer program for making a computer function as the terminal device10on a non-transitory computer-readable recording medium (CD-ROM and the like) and installing the program on a computer.

The present disclosure is based on Japanese Patent Application No. 2015-093729, filed on Apr. 30, 2015, of which the specification, the scope of claims, and the drawings are entirely incorporated herein by reference.

REFERENCE SIGNS LIST