Information processing device, information processing system, information processing method, and information processing program
The symmetric-key cryptography method with continuous key and algorithm updates addresses vulnerabilities in public-key systems, ensuring secure and convenient data transmission by synchronizing common key source data and algorithms, thus enhancing confidentiality and security.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-01-22
- Publication Date
- 2026-04-02
AI Technical Summary
Existing public-key cryptography systems are vulnerable to quantum computing threats and require secure storage of private keys, complicating data encryption and decryption processes, thus compromising user convenience and security.
A symmetric-key cryptography method using a common key source data generation/update unit, common key generation, encryption, and discard units to enhance security by continuously updating and synchronizing the common key source data and generation algorithm, ensuring data confidentiality without storing the actual key.
Enhances user convenience and improves data transmission security by preventing unauthorized decryption and reducing complexity, even in the face of quantum computing threats, without the need for secure key storage.
Smart Images

Figure 0007839579000001 
Figure 0007839579000002 
Figure 0007839579000003
Abstract
Description
Technical Field
[0001] The present invention relates to an information processing apparatus, an information processing system, an information processing method, and an information processing program, and particularly to an information processing apparatus, an information processing system, an information processing method, and an information processing program for enhancing the confidentiality during data transmission and realizing secure transmission and reception of data.
Background Art
[0002] While the transmission of various data from a transmission side to a reception side through an Internet line has become convenient, ensuring the confidentiality of data management such as unauthorized access to and tampering with data has become extremely serious. As a method for ensuring confidentiality between the transmission side and the reception side, for example, a symmetric key encryption method in which the transmission side and the reception side possess a fixed common key and encrypt and decrypt authentication data, a public key encryption method in which the transmission side encrypts the authentication data with the public key of the reception side and transmits it, and the reception side decrypts the transmitted authentication data with its own private key, and a combination of these methods have been proposed (Patent Document 1).
[0003] However, due to the recent expansion of the processing capabilities of computing devices such as computers, problems such as unauthorized access and tampering are becoming more prominent. For example, as an existing encryption technology, the currently widely used public key encryption method has the following problems.
[0004] In the public key encryption method, what is encrypted with the public key is decrypted with the private key. By the receiving side keeping the private key secret, decryption by a third party (i.e., unauthorized decoding) is prevented. However, in the existing public key encryption method, (1) there is a possibility that a third party can calculate the private key. Currently, it is not easy for a third party to know the private key, but theoretically, it is possible to derive the private key from the public key, given that "the private key is what can decrypt data encrypted with the public key." The security of the current public-key cryptography system is guaranteed by the enormous amount of time required to "derive the private key from the public key." However, in the near future, for example, with the development of quantum computing technology, it is expected that enormous calculations will become possible in a short amount of time, and the security mechanism of public-key cryptography is on the verge of collapse.
[0005] Furthermore, with existing public-key cryptography schemes, (2) the private key must be kept secret from the receiving server, etc. However, if there are vulnerabilities in the security of such server, etc., the private key may be leaked and illegal decryption may occur. Public-key cryptography cannot function without a corresponding private key for each public key. Therefore, the receiving end must always store the private key on some device. Existing systems ensure security by concealing the private key (preventing unauthorized access to the device storing the private key), but this assumes that unauthorized access will not occur. As a result, the file may be saved with a filename that makes it easy to guess that it is a private key file, or even if carelessness is not taken, the file contents may contain strings such as "PRIVATE KEY" or "ssh-rsa". Therefore, if the device storing the private key is compromised, the private key is likely to be leaked, and there is a risk that all communication contents will be exposed. However, attempting to enhance security using existing public-key cryptography schemes could complicate the data encryption and decryption processes, potentially compromising user convenience. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] Japanese Patent Publication No. 2001-186122 [Overview of the project] [Problems that the invention aims to solve]
[0007] The present invention has been made in view of the above points, and aims to provide an information processing device, information processing system, information processing method, and information processing program that enhance user convenience and improve data transmission security while suppressing the complexity of the processing when transmitting data from the transmitting side to the receiving side. [Means for solving the problem]
[0008] This invention is classified as a symmetric-key cryptography method in which data is encrypted and decrypted using a common key between the sender and receiver. However, it incorporates various innovations to overcome the drawback of conventional symmetric-key cryptography methods, where anyone can decrypt the data if the common key is known.
[0009] In other words, the present invention is a transmitting information processing device comprising a common key source data generation / update unit that generates and updates common key source data which is the source data for a common key used to encrypt a file to be transmitted to a receiving information processing device, and further comprising: a common key generation unit that generates a common key from the common key source data using a generation algorithm for generating a common key from the common key source data and also generates common key generation count data; a common key confirmation data generation unit that generates common key confirmation data by applying a one-way function to the common key generated by the common key generation unit; an encryption unit that encrypts a file to be transmitted to the receiving information processing device using the common key and generates an encrypted file; a discard unit that discards the common key after the encryption unit has generated the encrypted file; and a transmission unit that transmits the encrypted file, the common key generation count data and the common key confirmation data to the receiving information processing device, wherein the common key source data generation / update unit updates the common key source data based on the generated common key after the common key generation unit has generated the common key and before the discard unit discards the common key.
[0010] Furthermore, the present invention provides an information processing device that includes a receiving unit that receives an encrypted file encrypted with a common key, common key generation count data, and common key confirmation data transmitted from a transmitting information processing device, and further comprises: a synchronization unit that synchronizes the common key source data, which is the source data of the common key, with the common key source data held by the transmitting information processing device based on the received common key generation count data; a common key generation unit that generates the common key using a generation algorithm for generating the common key from the common key source data synchronized with the common key source data held by the transmitting information processing device, confirms that the data generated by applying a one-way function to the generated common key matches the common key confirmation data, and updates the common key source data using the generated common key; a decryption unit that decrypts the encrypted file received by the receiving unit using the common key and updates the common key source data; and a discard unit that discards the common key after the decryption unit has decrypted the encrypted file and updated the common key source data.
[0011] Furthermore, the transmitting information processing device may further include a generation algorithm update unit that updates the generation algorithm and generates generation algorithm update count data, and the transmitting unit may further transmit the generation algorithm update count data in addition to the encrypted file, the common key generation count data and the common key verification data to the receiving information processing device.
[0012] Furthermore, in the receiving information processing device, the receiving unit may receive, in addition to the encrypted file, the common key generation count data, and the common key verification data, generation algorithm update count data, and the synchronization unit may synchronize the generation algorithm with the generation algorithm of the transmitting information processing device based on the received generation algorithm update count data.
[0013] Furthermore, in the transmitting information processing device and the receiving information processing device, the common key generation unit may, when generating the common key, encrypt the common key using a different encryption method than the one used by the encryption unit when generating the encrypted file or the decryption unit when decrypting the encrypted file.
[0014] Furthermore, the information processing system of the present invention consists of a transmitting information processing device and a receiving information processing device, which are connected to each other by a telecommunications line. [Effects of the Invention]
[0015] The information processing apparatus of the present invention can enhance user convenience and improve data transmission security while suppressing the complexity of the processing when transmitting data from the transmitting side to the receiving side. In addition, the information processing system, information processing method, and information processing program can similarly enhance user convenience and improve data transmission security while suppressing the complexity of the processing when transmitting data from the transmitting side to the receiving side. [Brief explanation of the drawing]
[0016] [Figure 1] This is a schematic diagram showing the configuration of the information processing system in the embodiment. [Figure 2] This is a block diagram showing the configuration of the information processing device on the transmitting side. [Figure 3] This is a block diagram showing the configuration of the receiving information processing device. [Figure 4] This is a conceptual diagram illustrating the symmetric key generation process on the sending side. [Figure 5] This is a conceptual diagram illustrating the file encryption process on the sending side. [Figure 6] This is a flowchart illustrating the processing flow in the information processing device on the transmitting side. [Figure 7] This is a conceptual diagram illustrating the symmetric key generation process and encrypted file decryption process on the receiving end. [Figure 8]It is a flowchart for explaining the processing flow in the information processing apparatus on the receiving side. [Figure 9] It is the first flowchart for explaining the information processing method of the information processing system according to the embodiment. [Figure 10] It is the second flowchart for explaining the information processing method of the information processing system according to the embodiment.
Embodiments of the Invention
[0017] As described above, in the existing public key cryptosystem, there is a problem that (1) a third party may be able to calculate the private key. On the other hand, according to the method of one embodiment of the present invention (hereinafter referred to as "this embodiment") described in detail below, since the third party does not know the correct common key, decryption is impossible.
[0018] Also, as described above, in the existing public key cryptosystem, (2) it is necessary to conceal the private key in the server or the like on the receiving side. However, if there is a vulnerability in the security of the server or the like, there is a problem that the private key may be leaked and unauthorized decryption may be performed. On the other hand, according to the method of this embodiment, the key (data) used for encryption itself is not stored anywhere.
[0019] The method of this embodiment does not adopt the secret key cryptosystem that is currently mainstream in communication systems around the world, but adopts the common key cryptosystem. However, both the transmitting side and the receiving side only store the data (hereinafter referred to as "common key source data") that is the source of the common key instead of the common key. It is very difficult for a third party to calculate the common key from the stored common key source data, and this alone can prevent a considerable amount of hacking damage. [[ID=z8]]
[0020] In this embodiment, the shared key source data is further modified (updated) with each communication, making it even more difficult for a third party to calculate the shared key. Furthermore, if the algorithm used to calculate (generate) the shared key from the shared key source data is also updated as needed, it becomes even more difficult for a third party to calculate the shared key. In this way, this embodiment incorporates multiple layers of mechanisms to prevent hacking.
[0021] (Information processing equipment and information processing systems) The information processing device and information processing system of this embodiment are devices and systems for encrypting a file to be transmitted from a transmitting information processing device to a receiving information processing device, and for generating and transmitting key information (data) for decrypting the encrypted file. The information processing device is a device (and its internal program) installed on the data transmitting and receiving sides, and the information processing system consists of data transmitting and receiving information processing devices connected by a telecommunications line. The file to be transmitted is not particularly limited, but for example, it may be digitized data including text, images, video, audio, etc., and combinations thereof.
[0022] The sending and receiving of files is not limited to synchronous communication; it may also be performed asynchronously. For example, the information processing devices on the sending and receiving sides may both be clients in a client / server system. In this case, the information processing device on the sending side sends and stores the files to be sent to a server (file server, mail server, etc.), and the information processing device on the receiving side retrieves the files from the server. In this case, it is important to note that the order in which the files are retrieved by the receiving side (from the server) may not necessarily match the order in which they were sent by the sending side, and that some files may not be retrieved by the receiving side for some reason. In other words, since there is no guarantee that the receiving side will be aware of updates to the shared key source data made by the sending side in a timely manner, the shared key source data held by the receiving side may differ from that of the sending side (as a result, the key used by the receiving side to decrypt the encrypted files may differ from the key used by the sending side to encrypt them, making proper decryption impossible). Therefore, it is necessary to introduce a mechanism to prevent this (i.e., a mechanism to ensure that the shared key source data is always the same on both the sending and receiving sides (hereinafter referred to as "synchronizing the data")). Furthermore, similar problems can occur when updating the algorithm used to calculate (generate) a shared key from the source shared key data, so a separate mechanism to prevent this (a mechanism to "synchronize" the algorithm) is necessary. These mechanisms will be discussed later.
[0023] Figure 1 is a conceptual diagram showing the configuration of the information processing system 1 of this embodiment. An information processing device 2 (computer, tablet terminal, smartphone, etc. (hereinafter referred to as "computer, etc.")) is installed as the transmitting side, and an information processing device 3 (computer, etc.) is also installed as the receiving side. Both information processing devices 2 and 3 can access the internet line 4 via wired or wireless connection. In this embodiment, various types of data are transmitted from the transmitting information processing device 2 to the receiving information processing device 3 via the internet line 4. As mentioned above, data transmission and reception may also be performed via a server 5.
[0024] Figure 2 is a block diagram showing the configuration of the transmitting information processing device 2 in the information processing system 1. The information processing device 2 consists of functional parts such as a computer necessary for various operations such as signal transmission and reception, calculation execution, and storage, and implements an arithmetic unit 11, ROM 12, RAM 13, storage unit 14, I / O (input / output) interface 15, transmitting and receiving unit 16, etc.
[0025] Similarly, Figure 3 is a block diagram showing the configuration of the receiving information processing device 3. The information processing device 3 consists of functional parts such as a computer necessary for various operations such as signal reception, calculation execution, and storage, and implements an arithmetic unit 21, ROM 22, RAM 23, storage unit 24, I / O (input / output) interface 25, transmitting / receiving unit 26, etc.
[0026] When the various functional units of a computer or similar device are implemented using software, the information processing devices 2 and 3 are implemented by executing instructions for a program, which is the software that implements each function. The recording medium that supplies this program to the information processing devices 2 and 3 can be a "non-temporary, tangible medium," such as a CD, DVD, non-volatile semiconductor memory, or programmable logic circuit. Furthermore, this program may be supplied to the information processing devices 2 and 3 of the information processing system 1 via any transmission medium capable of transmitting the program (such as the internet connection 4 in Figure 1, other communication networks, or broadcast waves).
[0027] The storage unit 14 of the information processing device 2 is a known storage device such as an HDD or SSD. The storage unit 14 stores various data, information processing programs, and data necessary for executing those programs. In addition, the various functional units that perform calculations such as calculating (generating) common key source data and common keys, and encryption are implemented as the arithmetic unit 11 and are arithmetic elements such as a CPU or GPU. The internet line 4 is connected to the I / O interface 15. The information processing device 2 may also function as a personal computer (PC), and appropriate input devices such as a keyboard and mouse, and appropriate output devices such as an LCD display (neither of which are shown) are connected to the I / O interface 15. Since the receiving information processing device 3 is hardware-wise the same as the information processing device 2, its explanation will be omitted.
[0028] As shown in the block diagram of Figure 2, the arithmetic unit 11 of the information processing device 2 includes various functional units such as a common key source data generation / update unit 110, a sharing unit 120, a common key generation unit 130, a common key verification data generation unit 140, an encryption unit 150, and a discard unit 160. When updating the algorithm used for calculating (generating) a common key from the common key source data, as described above, it also includes a generation algorithm update unit 170. The operation and execution of each functional unit in the arithmetic unit 11 of the information processing device 2 are realized in software by programs loaded into the main memory (RAM 13).
[0029] Furthermore, the arithmetic unit 21 of the receiving information processing device 3 includes various functional units such as a synchronization unit 210, a common key generation unit 220, a decryption unit 230, and a discard unit 240, as shown in the block diagram of Figure 3. The operation and execution of the arithmetic unit 21 of the receiving information processing device 3 are realized in software by a program that is loaded into the main memory (RAM 23) and cooperates with the information processing device 2.
[0030] This section will explain the processing performed by each functional unit in the arithmetic unit 11 of the information processing device 2 and the processing performed by each functional unit in the arithmetic unit 21 of the information processing device 3.
[0031] (Common key source data generation / update unit 110) In the arithmetic unit 11 of the information processing device, the common key source data generation / update unit 110 generates the common key source data that will serve as the basis for the common key, before generating the common key used by the sender to encrypt the sent file using the generation algorithm described later.
[0032] (Original data for the shared key) Here, the symmetric key source data refers to the string, sequence of numbers, or other information that serves as the source data (seed value) applied to the symmetric key generation algorithm described later. Furthermore, the symmetric key source data is one of the pieces of information shared between the sender and receiver, and it is data that is updated sequentially. As the symmetric key source data is updated sequentially, the symmetric key generated from it is also updated sequentially.
[0033] (Updating the source key data) The shared key source data generation / update unit 110 first randomly generates an initial value for the shared key source data based on random numbers, and thereafter updates the shared key source data based on the most recent shared key. In other words, the shared key source data generation / update unit 110 first generates the shared key source data (initial value) from random numbers, the shared key generation unit 130 (described later) generates a shared key from the generated shared key source data (initial value), the shared key source data generation / update unit 110 updates the shared key source data from the generated shared key, the shared key generation unit 130 generates a shared key from the updated shared key source data, and so on, repeating the updating / generation in the order of shared key source data and shared key (shared key source data (initial value) generated from random numbers, etc. → shared key (1st generation) → shared key source data (updated value) → shared key (2nd generation) → ...). The generation of a shared key from the source shared key data is performed using a shared key generation algorithm (described later), and this algorithm can also be used to update the source shared key data from the shared key.
[0034] (Sharing of source data for the common key) The initial shared key source data (initial value) is shared only once beforehand between the sending information processing device 2 and the receiving information processing device 3 (i.e., before the sending and receiving of the encrypted file to be sent begins). The sharing of the shared key source data can be done by any method agreed upon by the users on the sending and receiving sides, but from a security standpoint, sharing it offline (for example, by storing it on a recording medium such as a USB memory stick and transferring it, or by any method that does not involve a network) is ideal. However, offline sharing of shared key source data is not only very complicated, but also impractical in terms of time and cost, especially when users are in remote locations, so in most cases, the shared key source data will be shared online (i.e., sent and received). Even when sharing online, the risk of decryption can be sufficiently reduced by limiting the transmission of the shared key source data from the sending side to the receiving side to just once beforehand and not transmitting it thereafter. Furthermore, the shared common key source data needs to be stored somewhere on both the sender's and receiver's sides. However, security can be further enhanced by encrypting it using a different encryption method (such as AES) than the encryption method used for the transmitted file and the common key before storing it.
[0035] (Key generation algorithm) A shared key generation algorithm (hereinafter also simply referred to as a "generation algorithm") is an computational method that defines a specific calculation method (for example, a specific arithmetic operation, function, or combination thereof) for generating a sequence of numbers (a number of a predetermined number of digits) to be set as a shared key from source shared key data, and includes specific numerical values (for example, prime numbers) used in the calculation. Similar to updating the source key data, the generation algorithm may also be updated. Updating the generation algorithm can enhance security against information leaks.
[0036] (Sharing of generation algorithms) The initial (unupdated) generation algorithm is shared only once between the sender and receiver, for example, by embedding it in an app beforehand. This sharing can be done online; in that case, the sender simply needs to send the information necessary to identify the algorithm to the receiver.
[0037] As mentioned earlier, the source key data is also shared between the sender and receiver only once at the beginning. However, since a shared key can be generated if both the generation algorithm and the source key data are available, the generation algorithm and the source key data must never be shared at the same time. The sharing of the generation algorithm and the sharing of the source key data must always be done at different times.
[0038] (Sharing a one-way function for generating shared key verification data) Furthermore, in this embodiment, the common key verification data generation unit 140 of the information processing device 2 applies a one-way function to the common key to generate the common key source data (details will be described later), but this one-way function is also shared only once at the beginning between the sender and receiver. Sharing may be done online, in which case the sender only needs to send the information necessary to identify the one-way function to the receiver.
[0039] (Specific examples of generation algorithms and their updates) The following will explain the symmetric key generation algorithm and its update with a concrete example (hereinafter referred to as "Example 1"). The symmetric key generation algorithm in Example 1 can consist of the following five steps, for example. Step 1: Assume the source key data is a 32-bit integer value. Step 2: Calculate the sum of the integer value from Step 1 and 7517 (discard any overflow). Step 3: Use the calculation result from Step 2 as input data for the hash function SHA-256 (Secure Hash Algorithm 256-bit) to obtain a 256-bit hash value. Step 4: Convert the hash value obtained in Step 3 into a 32-bit number. Step 5: Calculate the product of the number obtained in Step 4 and 563 (discard any overflow). Since hash functions can be theoretically analyzed using brute-force attacks, etc., a mechanism for updating the algorithm (making the algorithm variable) can be introduced into the symmetric key generation algorithm that includes the hash function, making it difficult to infer the symmetric key from the source symmetric key data.
[0040] The update process of the generation algorithm in Example 1 can be something like, "Subtract 200 from the number in Step 2." In Example 1, Step 2 of the generation algorithm after 1 update becomes "Calculate the sum of 7517 - 200 × 1 = 7317," and Step 2 of the generation algorithm after n updates becomes "Calculate the sum of 7517 - 200 × n." If the sender updates the generation algorithm, when the sender sends the next data (e.g., an encrypted file) to the receiver, it must also send data indicating the number of times the generation algorithm has been updated (hereinafter referred to as "generation algorithm update count data"). This allows the receiver to update its generation algorithm and synchronize it with the generation algorithm used by the sender to generate the shared key, enabling both the sender and receiver to generate the same shared key using the same generation algorithm.
[0041] (Sharing part 120) As mentioned above, the common key source data (initial value) initially generated by the common key source data generation / update unit 110 is shared only once in advance between the sender and receiver (i.e., before sending and receiving the encrypted file to be sent). However, if this is done online, the sharing unit 120 shares the common key source data (initial value) by transmitting it to the information processing device 3 on the receiver side via the transmission / reception unit 16. Also, as mentioned above, the initial (unupdated) generation algorithm is also shared only once in advance between the sender and receiver. However, if this is done online, the sharing unit 120 shares it by transmitting the information necessary to identify the generation algorithm to the information processing device 3 on the receiver side via the transmission / reception unit 16. Furthermore, as mentioned above, the one-way function is also shared only once in advance between the sender and receiver. However, if this is done online, the sharing unit 120 shares it by transmitting the information necessary to identify the one-way function to the information processing device 3 on the receiver side via the transmission unit 16.
[0042] (Common key generation unit 130) The shared key generation unit 130 generates a shared key from the source shared key data using a generation algorithm on the sending side. Since the data actually used to encrypt the sent file is the shared key, the risk of shared key leakage must be reduced as much as possible. Therefore, in this embodiment, the continuous use of the shared key is avoided, and the shared key is generated from the source shared key data that is updated sequentially.
[0043] (Data on the number of times a common key has been generated) Furthermore, the shared key generation unit 130 generates data (hereinafter referred to as "shared key generation count data") indicating the number of times a shared key has been generated from the shared key source data using the generation algorithm. The shared key generation count data is initially set to 0 and incremented (+1) each time a shared key is generated. The shared key generation count data is sent to the receiving side and used to synchronize the receiving side's shared key source data with the transmitting side's shared key source data, but this will be explained later.
[0044] As shown in Figure 4, the shared key L1 is generated in the shared key generation unit 130 by applying the shared key source data K1 to the generation algorithm Ag. If the shared key is encrypted and stored immediately after being generated by the shared key generation unit 130, measures can be taken to prevent leakage during the short period between the generation of the shared key and its destruction, as described later. The shared key can be encrypted using any encryption method, but it is preferable to use a different encryption method than the one used when generating the encrypted file, as this will increase security.
[0045] (common key) A shared key is data (information) used by the sender to encrypt the file to be sent and generate an encrypted file, and also used by the receiver to decrypt the received encrypted file and generate the file to be sent. In this embodiment, the shared key is, for example, a sequence of numbers (a number with a predetermined number of digits). As mentioned above, the shared key is generated from the source shared key data using a generation algorithm. The shared key is discarded immediately after the encrypted file is generated. The next time the file to be sent is encrypted, a newly generated (updated) shared key is used. In other words, a different shared key is used for encryption each time. The discarding of the shared key will be explained in the discarding section 160 described later. Furthermore, the shared key must never be transmitted or received between information processing device 2 and information processing device 3. This is because if the shared key were to be intercepted by a third party, the encrypted transmitted file would immediately be at risk of decryption (i.e., unauthorized reading).
[0046] (Examples of shared key, source data for shared key, generation algorithm, and number of shared key generation cycles) The following explains the interrelationship between the common key, the common key source data generation algorithm, and the number of common key generation cycles in the information processing device (information processing system, information processing method, and information processing program) of this embodiment, using an example (hereinafter referred to as "Example 2"). First, it is assumed that the common key source data generation / update unit 110 generates a 5-digit sequence "12345" as the common key source data (initial value) which will serve as the source data (seed value) for generating the common key. The generation algorithm is set to multiply the common key source data by 7 and add 3, and this process is executed when the generation algorithm is applied. The numbers used by the generation algorithm in Example 2 are 5 digits long, from the ones place to the ten thousands place, and numbers that exceed 5 digits (i.e., numbers with 6 or more digits) are discarded. Note that Example 2 uses a small number of digits and simple calculations for ease of understanding, but it does not limit the common key source data or the generation algorithm in any way. When implementing the method of this embodiment, security can be enhanced by increasing the number of digits in the number or by making the generation algorithm a more complex calculation, for example, as in Example 1.
[0047] In Example 2, the generation algorithm is applied to the initial shared key data, and the first shared key is calculated as "12345" × 7 + 3 = "86418". At this time, the number of shared key generation cycles is "1". After encrypting the sent file using this initial shared key "86418", the generation algorithm is applied to "86418" to calculate "86418" × 7 + 3 = "04929", and this "04929" becomes the updated shared key data. The shared key "86418" is then immediately discarded. When encrypting the next file to be sent, the generation algorithm is applied to the updated shared key source data "04929" to calculate the shared key as "04929" × 7 + 3 = "34506". At this time, the number of shared key generation cycles is "2". After encrypting the file to be sent using this updated shared key "34506", the generation algorithm is applied to "34506" to calculate "34506" × 7 + 3 = "41545", and this "41545" becomes the updated shared key source data. The shared key "34506" is then immediately discarded. The process is repeated in the same manner thereafter.
[0048] (Shared key verification data generation unit 140) The symmetric key verification data generation unit 140 generates symmetric key verification data by applying a one-way function to the symmetric key generated by the symmetric key generation unit 130. The symmetric key verification data generated by the symmetric key verification data generation unit 140 is transmitted to the receiving information processing device 3 by the transmitting / receiving unit 16, which will be described later.
[0049] (Shared key verification data) Shared key verification data is data (a sequence of numbers; a numerical value of a predetermined number of digits) used to verify whether the receiving side has correctly generated the shared key. On the receiving side of the transmitting side, the same one-way function used by the shared key verification data generation unit 140 (transmitting side) is applied to the shared key held by the receiving side to obtain the data. By verifying that the obtained data matches the shared key verification data sent from the transmitting side, the receiving side can confirm that the shared key held by the receiving side is identical to the shared key held by the transmitting side (that the shared key has been correctly generated on the receiving side). While there are no particular limitations on the one-way function used by both the sender and receiver, if the shared key verification data sent from the sender to the receiver is intercepted by a third party, and the one-way function used by both the sender and receiver is revealed to that third party, the risk of the shared key being leaked increases dramatically. Therefore, one-way functions that are easily guessed by third parties should be avoided.
[0050] (Encryption section 150) The encryption unit 150, at the transmitting side, encrypts the file to be sent from the transmitting side to the receiving side using a shared key to generate an encrypted file. The algorithm used to encrypt the file to be sent is not particularly limited and may be any algorithm used in a symmetric-key encryption scheme (AES, RC4, DES, 3DES, etc.).
[0051] (Discard section 160) The discard unit 160 discards the common key immediately after the common key verification data generation unit 140 generates the common key verification data, the encryption unit 150 generates the encrypted file, and the common key source data generation / update unit 110 updates the common key source data. In the transmitting information processing device 2, the discard unit 160 discards the common key (deletes the data) each time an encrypted file is generated, thereby avoiding duplicate use of the common key and reducing the possibility of the common key being deciphered as a one-time use. As described above, the common key is generated each time encryption is performed by applying the generation algorithm to the common key source data. In addition, by encrypting the common key immediately after the common key generation unit 130 generates the common key, measures can be taken to prevent leakage during the short period between the generation and discarding of the common key. Security can be further enhanced by adopting a different method (for example, RSA encryption) when encrypting the common key than when the encryption unit 140 generates the encrypted file.
[0052] As shown in Figure 5, when there is a file Fa to be sent from the sender to the receiver, the file Fa is generated as an encrypted file Fb based on the shared key L1 (data). The shared key L1 is then discarded (data erased) when the encrypted file Fb is generated and the source data of the shared key is updated from the shared key L1.
[0053] (Transmitting / receiving unit 16) The transmitting / receiving unit 16 transmits the encrypted file, the number of times the shared key has been generated, and the shared key verification data from the transmitting side to the receiving side. Furthermore, if the generation algorithm is updated, the transmitting / receiving unit 16 also transmits the number of times the generation algorithm has been updated. In the information processing system 1 of this embodiment, as described above, the shared key source data held by the receiving side may differ from that of the transmitting side (resulting in the inconvenience that the key used by the receiving side to decrypt the encrypted transmitted file may differ from the key used by the transmitting side to encrypt it, thus preventing correct decryption). Therefore, a mechanism to prevent this (i.e., a mechanism to synchronize the shared key source data between the transmitting and receiving sides) is necessary. The transmission / receiving unit 16 transmits the shared key generation count data to the receiving side along with the encrypted file; this is part of this mechanism. The receiving side uses the shared key generation count data to synchronize its own shared key source data with the transmitting side's shared key source data, which will be described later.
[0054] Furthermore, when updating the generation algorithm, a mechanism is needed to synchronize the generation algorithm between the sender and receiver. The transmission / reception unit 16 sends generation algorithm update count data to the receiver along with the encrypted file, which is part of this mechanism. The receiver uses the generation algorithm update count data to synchronize its own generation algorithm with the sender's generation algorithm, which will be explained later. By employing these mechanisms, the sender and receiver can synchronize the source data (and generation algorithm) for the shared key (and consequently, the shared key itself), eliminating the need to send or receive the shared key at all. Furthermore, as mentioned above, the shared key is discarded (data erased) immediately after the encrypted file is created.
[0055] Therefore, even if communication between the sender and receiver is intercepted by a third party, the data leaked along with the transmitted file (encrypted file) will not be the shared key, but rather the shared key generation count data and shared key verification data (and generation algorithm update count data). Even if a third party obtains this data, it will be impossible to recover the shared key from this data alone, thus ensuring the security of transmitting encrypted files. Furthermore, the generation and updating of the shared key source data, shared key, and shared key verification data are performed by the program of the information processing device 2, so users do not need to be aware of this, and it does not increase the burden on users.
[0056] Furthermore, if the transmission / reception unit 16 is to perform online sharing (only once) of the common key source data (initial value) initially generated by the common key source data generation / update unit 110 between the transmitting and receiving sides, it receives a command from the sharing unit 120 and transmits the common key source data (initial value) to the information processing device 3 on the receiving side. Also, if the transmission / reception unit 16 is to perform online sharing (only once) of the initial (unupdated) generation algorithm between the transmitting and receiving sides, it receives a command from the sharing unit 120 and transmits the information processing device 3 on the receiving side that is necessary to identify the generation algorithm.
[0057] Figure 6 is a flowchart showing the processing flow performed by the transmitting information processing device 2. However, this flowchart only shows the processing from a state where the generation of the common key source data (initial value) by the common key source data generation / update unit 110, and the sharing of the common key source data and the sharing of the generation algorithm, which is performed only once at the beginning by the sharing unit 120 between the transmitting and receiving information processing device 3, have already been completed.
[0058] First, the shared key generation unit 130 generates a shared key by applying a generation algorithm to the source shared key data, and also generates shared key generation count data. Additionally, the shared key verification data generation unit 140 generates shared key verification data (step S1 in Figure 6). Next, using the generated common key, the file to be sent from the sender to the receiver is encrypted by the encryption unit 150 to generate an encrypted file (step S2 in Figure 6). Next, the generated encrypted file, the shared key generation count data, and the shared key verification data (and the generation algorithm update count data if the generation algorithm is updated) are transmitted to the receiving side via the transmitting / receiving unit 16 (step S3 in Figure 6).
[0059] Next, the shared key source data is updated by the shared key source data generation / update unit 110 using the shared key (step S4 in Figure 6). Finally, the discard unit 150 discards the shared key, ending the series of processes (step S5 in Figure 6). Note that step S4 does not necessarily have to be performed after step S3; it may be performed between step S1 and step S2, or between step S2 and step S3.
[0060] Next, we will explain the processing performed by each functional unit in the calculation unit 21 of the receiving information processing device 3.
[0061] (Transmitting / receiving unit 26) The transmitting / receiving unit 26 of the information processing device 3 receives the common key source data and generation algorithm from the transmitting information processing device 2 only once initially (assuming both are performed online). The transmitting / receiving unit 26 receives the encrypted file, the number of times the common key has been generated, and the common key verification data (and the number of times the generation algorithm has been updated if the generation algorithm is updated).
[0062] (Synchronized Department 210) Next, the synchronization unit 210 of the arithmetic unit 21 of the information processing device 3, which has received the encrypted file and the shared key generation count data (and the generation algorithm update count data if the generation algorithm is updated), synchronizes the receiving side's shared key source data with the transmitting side's shared key source data based on the received shared key generation count data. Normally, the shared key generation count data received by the receiving side is the shared key generation count data held by the receiving side + 1. In this case, the shared key source data held by the receiving side is synchronized with the transmitting side's shared key source data, so there is no need to update it. However, when performing asynchronous communication, it is possible that the difference between the shared key generation count data received by the receiving side and the shared key generation count data held by the receiving side is not + 1. For example, if the difference is + 2, the shared key source data held by the receiving side is updated (+2) - (+1) = 1 time to synchronize it with the transmitting side's shared key source data. To update the shared key source data once, the generation algorithm should be applied to the shared key source data twice in a row. For example, in Example 2 mentioned above, if the initial encrypted file and the shared key generation count data ("1 time") are not received for some reason, the next shared key generation count data received will be "2 times". At this time, the shared key generation count data held by the receiver is "0 times", and the difference is +2, so the shared key source data (initial value) "12345" held by the receiver is updated (+2)-(+1)=1 time. That is, the generation algorithm is applied twice to the shared key source data (initial value) "12345", resulting in "12345" × 7 + 3 = "86418" → "86418" × 7 + 3 = "04929", thereby synchronizing the receiver's shared key source data with the sender's shared key source data. Then, from the shared key source data "04929" which is synchronized with the sender, the shared key generation unit 220 described later generates a shared key by "04929" × 7 + 3 = "34506".
[0063] Furthermore, when updating the generation algorithm, the synchronization unit 210 synchronizes the generation algorithm with the transmitting side's generation algorithm based on the generation algorithm update count data. For example, in the aforementioned Example 1, step 2 is "Calculate the sum of 7517 - 200 × n (where n is the number of generation algorithm updates)." By changing the calculation content of step 2 based on the generation algorithm update count data sent from the transmitting side, the receiving side's generation algorithm can be synchronized with the transmitting side's generation algorithm.
[0064] (Common key generation unit 220) Next, the shared key generation unit 220 applies the generation algorithm to the shared key source data that has been synchronized with the receiving side to generate a shared key. (Figure 6) 7 As shown, the common key generation unit 220 of the receiving information processing device 3 generates a common key L1 from the common key source data K1. At this time, the generation algorithm Ag, which is synchronized with the generation algorithm of the transmitting information processing device 2, is used to generate the common key L1 from the common key source data K1. In the example 2 described above, the common key generation unit 220, based on the common key generation count data (1 in the example), uses the generation algorithm (which is synchronized with the transmitting generation algorithm if the generation algorithm is updated) to generate the common key "86418" from the example common key source data "12345" by performing the same calculation as the transmitting side (multiplying by 7 and adding 3). The common key generation unit 220 applies the same one-way function used by the transmitting common key confirmation data generation unit 140 to the generated common key to calculate data and determines whether the calculated data matches the received common key confirmation data. If they match, it is determined that the receiving side has correctly generated the common key and proceeds to the next process; if they do not match, an error processing is performed and the process is terminated.
[0065] As an error handling step, at a minimum, the receiving side will inform the sending side that it is unable to correctly generate a shared key (and therefore cannot decrypt the encrypted file). However, various subsequent processes are possible, such as the sending and receiving sides attempting recovery by resharing / resending the data (in which case variations are possible, such as starting with resharing the source data and generation algorithm for the shared key, or starting with resending the most recent data), or abandoning the sending and receiving of the file. However, these are outside the scope of the present invention. If the receiving end determines that it has successfully generated a common key, the common key generation unit 220 further updates the common key source data using the generated common key.
[0066] The shared key generation unit 220, like the transmitting side, encrypts the shared key immediately after generating it using a different encryption method than when the decryption unit 230 decrypts the encrypted file. This allows the receiving side to take measures to prevent leakage during the short period between the generation of the shared key and its subsequent discarding, as described later. When encrypting the shared key, a different method (for example, RSA encryption) can be used than when the file decryption unit 220 decrypts the encrypted file.
[0067] (Decoding unit 230) The decryption unit 230 decrypts the transmitted file from the encrypted file using the common key generated by the common key generation unit 220. As shown in Figure 7, the original transmitted file Fa is decrypted from the encrypted file Fb using the common key L1 generated by the common key generation unit 220 in the receiving information processing device 3. The decryption unit 230 then updates the source data of the common key using the common key.
[0068] (Discard section 240) The discard unit 230 immediately discards the shared key after the file decryption unit 220 has decrypted the encrypted file and updated the shared key source data.
[0069] Figure 8 is a flowchart showing the processing flow performed by the receiving information processing device 3. However, this flowchart only shows the processing after the initial sharing of the common key source data and the sharing of the generation algorithm, which is performed only once with the transmitting information processing device 2, has already been completed.
[0070] First, the transmitting / receiving unit 26 receives the encrypted file, the number of times the common key has been generated, and the common key verification data (and the number of times the generation algorithm has been updated if the generation algorithm is being updated) from the transmitting side (step S1 in Figure 8). Next, based on the received shared key generation count data, the synchronization unit 210 determines whether the shared key source data is synchronized with the sender. If it determines that the data is not synchronized, it updates the shared key source data to synchronize it with the sender. Also, when updating the generation algorithm, it determines whether the generation algorithm is synchronized with the sender based on the received generation algorithm update count data. If it determines that the algorithm is not synchronized, it updates the generation algorithm to synchronize it with the sender. In either case, if it determines that the data is synchronized, it proceeds to the next process (step S2 in Figure 8).
[0071] Next, the shared key generation unit 220 generates a shared key using a generation algorithm from the shared key source data that has been synchronized with the receiving side, and then generates data by applying the same one-way function used by the transmitting side's shared key verification data generation unit 140 to the generated shared key (step S3 in Figure 8). If the data generated by applying the same one-way function used by the transmitting side's shared key verification data generation unit 140 to the shared key does not match the received shared key verification data, an error processing is performed and the process is stopped. If they match, the process proceeds to the next step (step S4 in Figure 8). Next, the decryption unit 230 decrypts the encrypted file using the shared key (step S5 in Figure 8). Finally, the discard unit 240 discards the shared key, ending the series of processes (step S6 in Figure 8).
[0072] (Information processing methods and information processing programs) The information processing method and information processing program in the information processing system 1 of this embodiment will be described below using the flowcharts in Figures 9 and 10. However, these flowcharts show the case where the generation of the common key source data (initial value) in the transmitting information processing device 2, and the sharing of the common key source data, the generation algorithm, and the one-way function, which are performed online only once at the beginning between the transmitting information processing device 2 and the receiving information processing device 3, are all performed online.
[0073] The information processing method is executed by the arithmetic unit 11 of the transmitting information processing device 2 and the arithmetic unit 21 of the receiving information processing device 3, based on the information processing program. The information processing program causes the transmitting information processing device 2, shown in Figures 1 and 2, to execute the following functions: common key source data generation function, common key source data sharing function, generation algorithm sharing function, one-way function sharing function, common key generation function, common key verification data generation function, transmitted file encryption function, encrypted file transmission function, common key source data update function, and common key discard function. Furthermore, the information processing program causes the receiving information processing device 3, shown in Figures 1 and 3, to execute various functions including common key source data reception function, generation algorithm reception function, one-way function reception function, encrypted file reception function, common key source data synchronization function, common key generation function, common key verification function, encrypted file decryption function, common key source data update function, and common key discard function. Note that each function overlaps with the description of the respective functions of the arithmetic units 11 and 21 of the information processing devices 2 and 3 described above, so details are omitted.
[0074] As shown in the flowchart of Figure 9, the information processing method and information processing program executed by the arithmetic unit 11 of the transmitting information processing device 2 include various steps such as a common key source data generation step (S110), a common key source data sharing step (S120), a generation algorithm sharing step (S130), a one-way function sharing step (S140), a common key generation step (S150), a common key verification data generation step (S160), a file to be transmitted step (S170), an encrypted file transmission step (S180), a common key source data update step (S190), and a common key discard step (S200). Of course, various steps necessary for the information processing device 2 to control itself are also executed, but these are outside the scope of the present invention. As mentioned above, the sharing of the generation algorithm and the sharing of the common key source data must be performed at different times. Therefore, it is desirable that the execution timing of the common key source data sharing step (S120) and the execution timing of the generation algorithm sharing step (S130) be as far apart as possible.
[0075] The shared key source data generation function generates shared key source data (initial values) for generating a shared key (S110; shared key source data generation step). The shared key source data sharing function sends the shared key source data (initial values) from the sender to the receiver so that it can be shared between the sender and receiver (S120; shared key source data sharing step). The generation algorithm sharing function sends the shared key generation algorithm from the sender to the receiver so that it can be shared between the sender and receiver (S130; generation algorithm sharing step). The one-way function sharing function sends the one-way function used by the sender to generate shared key verification data from the shared key so that it can be shared between the sender and receiver (S140; one-way function sharing step). The shared key generation function generates a shared key from the shared key source data using the generation algorithm, and also generates shared key generation count data (S150; shared key generation step). The shared key verification data generation function generates shared key verification data by applying a one-way function to the shared key (S160; shared key verification data generation step).
[0076] The file encryption function encrypts the file to be sent to the receiving information processing device 3 using a shared key at the sending information processing device 2 and generates an encrypted file (S170; file encryption step). The encrypted file transmission function transmits the encrypted file, shared key generation count data, and shared key confirmation data from the sending information processing device 2 to the receiving information processing device 3 (S180; encrypted file transmission step). The shared key source data update function updates the shared key source data from the shared key (S190; shared key source data update step). The shared key discard function discards the shared key after the file encryption function generates an encrypted file using the shared key and the shared key source data update function updates the shared key source data from the shared key (S200; shared key discard step).
[0077] As shown in the flowchart of Figure 10, the information processing method and information processing program executed by the arithmetic unit 21 of the receiving information processing device 3 include various steps such as a common key source data reception step (S210), a generation algorithm reception step (S220), a one-way function reception step (S230), an encrypted file reception step (S240), a common key source data synchronization step (S250), a common key generation step (S260), a common key verification step (S270), an encrypted file decryption step (S280), a common key source data update step (S290), and a common key discard step (S300). Of course, various steps necessary for the information processing device 3 to control itself are also executed, but these are outside the scope of the present invention.
[0078] The shared key source data reception function receives the shared key source data (initial value) transmitted from the transmitting information processing device 2 (S210; shared key source data reception step). The generation algorithm reception function receives the generation algorithm transmitted from the transmitting information processing device 2 (S220; generation algorithm reception step). The one-way function reception function receives the one-way function transmitted from the transmitting information processing device 2 (S230; one-way function reception step). The encrypted file, etc. reception function receives the encrypted file, shared key generation count data, and shared key confirmation data transmitted from the transmitting information processing device 2 (S240; encrypted file, etc. reception step). The shared key source data, etc. synchronization function synchronizes the shared key source data with the transmitting shared key source data based on the shared key generation count data (S250; shared key source data, etc. synchronization step). The shared key generation function generates a shared key from the synchronized shared key source data and updates the shared key source data using the generated shared key (S260; shared key generation step). The shared key verification function verifies that the receiving shared key generation function has correctly generated the shared key by applying the same one-way function used by the generating side's shared key verification data generation function to the generated key and confirming that the generated data matches the received shared key verification data (S270; shared key verification step). The encrypted file decryption function decrypts the transmitted file from the encrypted file using the shared key (S280; encrypted file decryption step). The shared key source data update function updates the shared key source data from the shared key (S290; shared key source data update step). The shared key discard function discards the shared key after the encrypted file decryption function has decrypted the encrypted file and the shared key source data update function has updated the shared key source data from the shared key (S300; shared key discard step).
[0079] The computer program of the present invention described above may be recorded on a processor-readable recording medium, and as the recording medium, a "non-temporary tangible medium" such as tape, disk, card, non-volatile semiconductor memory, or programmable logic circuit can be used.
[0080] The above computer program can be implemented using, for example, scripting languages such as ActionScript and JavaScript®, object-oriented programming languages such as Objective-C and Java®, and markup languages such as HTML5.
[0081] Although one embodiment of the present invention has been described above, the embodiments of the present invention are not limited thereto and can be modified in various ways. Therefore, the present invention should not be interpreted restrictively based on the embodiments. Modifications of this embodiment will be described below.
[0082] (Variation 1) As mentioned earlier, the generation algorithm may also be updated, but this update is not limited to each time a symmetric key is generated; it can be done at any time. Updating the generation algorithm at any time can further enhance security against information leakage. In this case, by deliberately not updating the generation algorithm each time a symmetric key is generated, it becomes more difficult for third parties to determine the timing of the update, which is expected to further enhance security. Furthermore, reducing the frequency of updates can also save processing time. In addition, by implementing measures such as preventing the generation of a symmetric key without information on the previous generation algorithm during the update, the risk of the symmetric key being deciphered can be further reduced.
[0083] (Modification 2) When generating symmetric key verification data from a symmetric key, it is also possible to apply a one-way function after using the symmetric key generation algorithm. In this modified example 3, the algorithm for generating symmetric key verification data from a symmetric key can also be updated, thereby increasing security. [Explanation of Symbols]
[0084] 1. Information Processing System 2,3 Information processing equipment (computers, etc.) 4. Internet connection 5 Servers 11,21 Arithmetic unit 12,22 ROM 13.23 RAM 14,24 Storage section 15,25 I / O Interfaces 16,26 Transmitter / Receiver 110 Common Key Source Data Generation / Update Unit 120 Sharing Department 130,220 Common key generation unit 140 Common Key Verification Data Generation Unit 150 Encryption section 160 Disposal section 170,240 discarded section 210 Classmates 230 Decoding Unit K1 Shared Key Source Data Ag generation algorithm L1 common key Fa received file Fb encrypted files
Claims
1. A transmitting information processing device comprising a common key source data generation and update unit that generates and updates common key source data, which is the source data for a common key used to encrypt a file to be sent to a receiving information processing device, A common key generation unit generates a common key from the common key source data using a generation algorithm for generating a common key from the common key source data, and also generates common key generation count data, A common key verification data generation unit generates common key verification data by applying a one-way function to the common key generated by the aforementioned common key generation unit, An encryption unit that encrypts the file to be sent to the receiving information processing device using the aforementioned shared key and generates an encrypted file, After the encryption unit generates the encrypted file, the discard unit discards the shared key, A transmitting unit that transmits the encrypted file, the common key generation count data, and the common key verification data to the receiving information processing device, Furthermore, The aforementioned shared key source data generation and update unit updates the shared key source data based on the generated shared key after the shared key generation unit has generated the shared key and before the discarding unit discards the shared key. Information processing device.
2. A receiving information processing device comprising a receiving unit that receives encrypted files encrypted with a common key, data on the number of times the common key has been generated, and data on the common key verification, transmitted from a transmitting information processing device, A synchronization unit synchronizes the original data of the common key, which is the source data of the common key, with the original data of the common key held by the information processing device on the transmitting side, based on the received data on the number of times the common key has been generated. A common key generation unit generates a common key using a generation algorithm for generating a common key from common key source data synchronized with the common key source data held by the transmitting information processing device, verifies that the data generated by applying a one-way function to the generated common key matches the common key verification data, and updates the common key source data using the generated common key. A decryption unit that decrypts the encrypted file received by the receiving unit using the shared key and updates the source data of the shared key, An information processing apparatus further comprising: a discarding unit that discards the common key after the decryption unit has decrypted the encrypted file and updated the common key source data.
3. The information processing apparatus according to claim 1, further comprising a generation algorithm update unit that updates the generation algorithm and generates generation algorithm update count data, wherein the transmission unit further transmits the generation algorithm update count data in addition to the encrypted file, the common key generation count data and the common key verification data to the receiving information processing apparatus.
4. The information processing apparatus according to claim 2, wherein the receiving unit further receives data on the number of times the generation algorithm has been updated in addition to the encrypted file, the data on the number of times the common key has been generated, and the synchronization unit synchronizes the generation algorithm with the generation algorithm of the transmitting information processing apparatus based on the received data on the number of times the generation algorithm has been updated.
5. The information processing apparatus according to claim 1, wherein the common key generation unit encrypts the common key using a different encryption method than the encryption unit uses when generating the encrypted file.
6. The information processing apparatus according to claim 2, wherein the common key generation unit encrypts the common key when generating the common key using a different encryption method than the decryption unit uses when decrypting the encrypted file.
7. An information processing system comprising a transmitting information processing device according to claim 1 and a receiving information processing device according to claim 2, which are connected to each other by a telecommunications line.
8. Computers A common key source data generation step generates common key source data, which will be the source data of the common key to be sent from the transmitting information processing device to the receiving information processing device, A common key source data sharing step involves sending the aforementioned common key source data from the transmitting information processing device to the receiving information processing device in order to share it between the transmitting information processing device and the receiving information processing device. A generation algorithm sharing step involves sending the generation algorithm for generating the common key from the aforementioned common key source data from the transmitting information processing device to the receiving information processing device in order to share it between the transmitting and receiving information processing devices. A one-way function sharing step involves sending a one-way function, which is applied to the aforementioned common key to generate common key verification data, from the transmitting information processing device to the receiving information processing device in order to share it between the transmitting and receiving information processing devices. The information processing device on the transmitting side generates a common key from the common key source data using the generation algorithm and also generates common key generation count data in a common key generation step, A common key verification data generation step is performed by applying a one-way function to the common key generated in the aforementioned common key generation step to generate common key verification data, The transmitting information processing device includes an encryption step of using the common key to encrypt the file to be sent from the transmitting information processing device to the receiving information processing device and generate an encrypted file, A transmission step in which the information processing device on the transmitting side transmits the encrypted file, the common key generation count data, and the common key verification data from the information processing device on the receiving side, A common key source data update step, in which the common key source data is updated based on the common key; The encryption step generates an encrypted file, the shared key source data is updated in the shared key source data update step, and then the shared key is discarded in a discard step. Execute Information processing methods.
9. On the computer, A common key source data generation function that generates the common key source data, which is the source data for the common key, to be sent from the transmitting information processing device to the receiving information processing device, A shared key source data sharing function that transmits the shared key source data from the transmitting information processing device to the receiving information processing device in order to share the shared key source data between the transmitting information processing device and the receiving information processing device, A generation algorithm sharing function that transmits the generation algorithm for generating the common key from the aforementioned common key source data to the receiving information processing device in order to share it between the transmitting information processing device and the receiving information processing device, A one-way function sharing function that transmits a one-way function, applied to the aforementioned common key to generate common key verification data, from the transmitting information processing device to the receiving information processing device in order to share it between the transmitting and receiving information processing devices, The information processing device on the transmitting side includes a common key generation function that generates a common key from the common key source data using the generation algorithm and also generates common key generation count data, A symmetric key verification data generation function that generates symmetric key verification data by applying a one-way function to the symmetric key generated by the aforementioned symmetric key generation function, The transmitting information processing device includes an encryption function that uses the shared key to encrypt the file to be sent from the transmitting information processing device to the receiving information processing device and generate an encrypted file, A transmission function that transmits the encrypted file, the common key generation count data, and the common key verification data from the transmitting information processing device to the receiving information processing device, A common key source data update function that updates the common key source data based on the aforementioned common key, The encryption function generates an encrypted file, the shared key source data is updated using the shared key source data update function, and then the shared key is discarded using the discard function. To make it happen Information processing program.
Citation Information
Patent Citations
Method and device for exchanging cipher key
JP2001094548A
Authentication system and authentication method
JP2001186122A
Cryptographic key sharing device, cryptographic key sharing method, program, and communication equipment
JP2005268903A
Communication system, transmission node, and reception node
JP2017038143A
Reliable cryptographic key update
US11924341B2