Authentication device, authentication method, and authentication program

The authentication system strengthens encryption program obfuscation by generating multiple encryption functions and randomly changing execution orders, effectively protecting communication data from tampering and fraud.

JP7808022B2Active Publication Date: 2026-01-28KDDI CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022209860
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-12-27
Publication Date
2026-01-28
Estimated Expiration
2042-12-27

AI Technical Summary

Technical Problem

Existing encryption programs are vulnerable to unauthorized data tampering and fraud due to limited obfuscation strength, allowing attackers to overwrite and replace encryption processing parts.

Method used

An authentication system that generates multiple encryption functions, stores data in a predetermined order, and randomly changes the execution order of program segments, distributing a program that outputs encrypted data in a fixed sequence, with a decryption unit authenticating the data's authenticity.

Benefits of technology

Enhances program obfuscation strength, protecting communication data from fraud by making it difficult to decipher the encryption processing sequence and reducing the risk of fraudulent attacks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007808022000001
    Figure 0007808022000001
  • Figure 0007808022000002
    Figure 0007808022000002
  • Figure 0007808022000003
    Figure 0007808022000003
Patent Text Reader

Abstract

To provide an authentication system configured to enhance obfuscation of a program structure for implementing encryption processing to protect output communication data from a fraud.SOLUTION: A server 10 includes: a function generation unit 111 which generates a plurality of encryption functions for encrypting pieces of input data and storing them in an allocated storage region in a predetermined order; a component configuration unit 112 which configures a plurality of program components so as to call the encryption functions ordered according to an output order for multiple pieces of data to be encrypted for which the output order is fixed; a program generation unit 113 which generates a program for outputting the encrypted data stored in the storage region; a program delivery unit 114 which delivers the generated program to a terminal 20 of a user; and a data decryption unit 115 which decrypts the encrypted data with a decryption algorithm corresponding to the encryption functions. After authenticating validity of the encrypted data on the basis of the decryption of the data decryption unit 115, the server obtains the decrypted data.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a system for protecting communication data generated by a program executed on a terminal and authenticating the validity of the data. [Background technology]

[0002] Conventionally, measures against online fraudulent activities have become essential when providing services via the Internet. For example, Non-Patent Document 1 introduces an authentication system that performs additional checks, such as verification by telephone or email, on accounts that may be subject to fraudulent use. [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] Amazon Fraud Detector, Internet<https: / / aws.amazon.com / jp / fraud-detector / > Summary of the Invention [Problem to be solved by the invention]

[0004] When distributing a program from a server to a client terminal, measures to protect this program are becoming important as a measure to protect intellectual property and prevent unauthorized attacks. In this case, a measure to prevent unauthorized data tampering such as data tampering can be considered by encrypting the data output by the program, and authenticating the data by verifying that it can be correctly decrypted on the server.

[0005] However, if the encryption processing part in the program is discovered, there is a risk that this processing will be overwritten and replaced with malicious data. Therefore, obfuscation is used to make the program structure more difficult to decipher, but its effectiveness is limited.

[0006] An object of the present invention is to provide an authentication system that can increase the obfuscation strength of a program structure that performs encryption processing and protect output communication data from fraud. [Means for solving the problem]

[0007] The authentication device of the present invention comprises a function generation unit that generates a plurality of encryption functions for encrypting input data and storing the data in an allocated memory area in a predetermined order; a component configuration unit that configures a plurality of program components so that, for a plurality of encryption target data whose output order is fixed, encryption functions are called in an order corresponding to the output order; a program generation unit that generates a program that outputs the encrypted data stored in the memory area in the predetermined order; a program distribution unit that distributes the generated program to a user's terminal; and a data decryption unit that, upon receiving the encrypted data output by the program from the terminal, decrypts the encrypted data using a decryption algorithm corresponding to the encryption function; the authenticity of the encrypted data is authenticated based on the success of decryption by the data decryption unit, and the decrypted data is obtained.

[0008] The program generation unit may randomly change the execution order of the plurality of program segments.

[0009] The program generation unit may replace the name of a function group including the plurality of encryption functions with a random value.

[0010] The function generation unit may mix a plurality of encryption methods for the plurality of encryption functions.

[0011] The authentication method of the present invention includes a function generation step of generating a plurality of encryption functions for encrypting input data and storing it in an allocated memory area in a predetermined order; a component configuration step of configuring a plurality of program components so that, for a plurality of encryption target data whose output order is fixed, encryption functions are called in an order corresponding to the output order; a program generation step of generating a program that outputs encrypted data stored in the memory area in the predetermined order; a program distribution step of distributing the generated program to a user's terminal; and a data decryption step of, upon receiving encrypted data output by the program from the terminal, decrypting the encrypted data using a decryption algorithm corresponding to the encryption function; and, if decryption is successful in the data decryption step, the computer authenticates the authenticity of the encrypted data and obtains the decrypted data.

[0012] An authentication program according to the present invention is for causing a computer to function as the authentication device. [Effects of the Invention]

[0013] According to the present invention, the obfuscation strength of the program structure that performs the encryption process can be increased, and output communication data can be protected from fraud. [Brief explanation of the drawings]

[0014] [Figure 1] FIG. 1 is a diagram illustrating a functional configuration of an authentication system according to an embodiment. [Figure 2] FIG. 1 is a first diagram illustrating the configuration of an encryption processing part in a conventional program for comparison with an embodiment. [Figure 3] FIG. 2 is a second diagram illustrating the configuration of an encryption processing portion in a conventional program for comparison with the embodiment. [Figure 4] FIG. 2 is a diagram illustrating a configuration of an encryption processing part of a program generated in an embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0015] An example of an embodiment of the present invention will be described below. The authentication system of this embodiment obfuscates the encryption processing portion of the program provided from the authentication device to the terminal, preventing the encryption processing from being rewritten, thereby authenticating that the communication data is normal data generated by the program and performing encrypted communication.

[0016] FIG. 1 is a diagram showing the functional configuration of an authentication system 1 according to this embodiment. The authentication system 1 includes a server 10 (authentication device) that provides a program, and a terminal 20 that communicates with the server 10 by executing the provided program.

[0017] The terminal 20 is an information processing device such as a personal computer, tablet, or smartphone that is operated by a user and executes a predetermined program. When the terminal 20 communicates with the server 10 by executing a program provided by the server 10, the terminal 20 encrypts the data to be output using an encryption function incorporated in the program.

[0018] The server 10 is an information processing device that includes a control unit 11, a memory unit 12, and various input / output interfaces, and by executing a program provided to the terminal 20, it performs encrypted communication while authenticating the validity of the data received from the terminal 20.

[0019] The control unit 11 is a part that controls the entire server 10, and realizes each function in this embodiment by appropriately reading and executing various programs stored in the storage unit 12. The control unit 11 may be a CPU.

[0020] The storage unit 12 is a storage area for storing various programs for causing the hardware group to function as the server 10, various data, and the like, and may be a ROM, RAM, flash memory, hard disk drive (HDD), or the like.

[0021] The control unit 11 includes a function generation unit 111 , a component configuration unit 112 , a program generation unit 113 , a program distribution unit 114 , and a data decoding unit 115 .

[0022] The function generating unit 111 receives as input data to be encrypted, encrypts the input data, and generates a plurality of encryption functions enc1() to encN() for storing the data in allocated storage areas in a predetermined order. Each of enc1() to encN() is a function that encrypts the input data, sorts it in the order of the subscripts, and stores it in a predetermined storage area. The encryption methods adopted by these encryption functions may be the same, but a plurality of encryption methods may be mixed.

[0023] The component configuration unit 112 configures a plurality of program components so that, for a plurality of encryption target data whose output order is fixed, encryption functions are called in an order corresponding to this output order.

[0024] The program generation unit 113 generates a program for outputting the encrypted data stored in the memory area by the program components in a predetermined order, i.e., in the order in which it is stored after being correctly sorted in a fixed output order.

[0025] Specifically, component configuration unit 112 divides the original program, which inputs data to be encrypted, into a1() to aN() in the order in which the data is input, and generates each of them using one or more of enc1() to encN() in that order. Then, program generation unit 113 prepares a function encz() that returns the encrypted data stored in a predetermined storage area in that order, calls encz() from az(), and configures the program so that the encrypted data is finally extracted and sent to the server.

[0026] FIG. 2 is a first diagram illustrating the configuration of an encryption processing portion in a conventional program for comparison with this embodiment. Typically, encryption is performed by calling a single function. In the example shown, the program has an encryption function enrypt() that receives data from one or more functions, and a function encz() that returns the encrypted data stored in memory.

[0027] That is, the functions a1(), a2(), a3(), and a4() each call the encryption function enrypt(), and the encrypted data E1, E2, E3, and E4 are stored in the memory area in the order of execution. Then, the function az() calls the function encz(), and the encrypted data E1, E2, E3, and E4 are output in that order.

[0028] Note that this example assumes an encryption program that receives data in stream format, but if you want to provide a program that encrypts and returns already collected data, you can build it as a wrapper around this set of functions. Furthermore, it is assumed that the key data used for encryption has been input into the program in advance.

[0029] FIG. 3 is a second diagram illustrating the configuration of the encryption processing part in a conventional program for comparison with this embodiment. In this example, simple obfuscation has been applied to the program in Figure 2 to make the function names difficult to read. Here, the function enrypt() in Figure 2 has been obfuscated so that it is difficult to tell from the function name that it is an encryption function, but from the program structure it is easy to tell that all outputs to the memory area go through the function zeurn(). Therefore, an attacker may be able to overwrite or hook this function zeurn() to modify the output data.

[0030] In addition, since the function enrypt() encrypts data in the order of its calls, the execution order from a1() to a4() cannot be changed, so there are limits to the processing that can be performed to obfuscate a program. Here, a function such as enrypt() that is called from multiple places in a program, that is, a function where data input is concentrated, is called a concentration point.

[0031] FIG. 4 is a diagram illustrating the configuration of an encryption processing portion of a program generated in this embodiment. The multiple functions provided as enc1(), enc2(), ... rearrange and encrypt data in the order of their subscripts regardless of the order in which they are executed, and store the data in a memory area. Furthermore, encz() outputs the encrypted data strings E1, E2, ... that have been output and sorted by enc1(), enc2(), .... The storage area may contain portions where no values ​​are actually stored, and encz() extracts and outputs only the values ​​that are actually stored from E1, E2, ... up to that length.

[0032] By generating a program that includes encryption processing in this way, the focus point is eliminated and the program is obfuscated, making it impossible to launch an attack in which all input data is tampered with by replacing a single function.

[0033] Furthermore, the program generating unit 113 may also freely (randomly) change the execution order of the program parts a1( ), a2( ), . . . Furthermore, the program generation unit 113 may replace the name of each function, including the multiple encryption functions, with a random value.

[0034] The program distribution unit 114 distributes the program generated by the program generation unit 113 to the user's terminal 20.

[0035] When the data decryption unit 115 receives the encrypted data output by the program from the terminal 20, it decrypts the encrypted data using a decryption algorithm corresponding to the encryption function. The server 10 authenticates the authenticity of the encrypted data by the data decryption unit 115 being able to decrypt the encrypted data, and then acquires the decrypted data.

[0036] According to this embodiment, the server 10 prepares multiple encryption functions and fixes the storage destination of the data output by each encryption function, thereby sorting the encrypted data in a predetermined order. This eliminates the centralized point in a normal program where encryption processing is performed, and the program structure is obfuscated, making it difficult to decipher the execution location and procedure of the encryption processing, thereby protecting communication data from fraudulent attacks such as the insertion of fraudulent data by rewriting or retransmission attacks.

[0037] In a general encryption program, if the encryption method is known, the key data can be obtained and the output data can be decrypted using a separately prepared program to obtain the original data. However, if the encryption method itself is hidden, such as when an encryption method is designed specifically for a specific application, the original data cannot be easily decrypted from only the output data and key data. Therefore, the server 10 can further reduce the risk of fraud by suppressing attacks that replace the focal point.

[0038] Furthermore, in the generated program, the order of the encrypted data output does not change regardless of the order in which the program parts are executed, so multiple program parts can be parallelized, which is expected to improve processing efficiency.

[0039] Furthermore, the server 10 can further obfuscate the program structure and reduce the risk of fraud by randomly changing the execution order of multiple program components and by replacing the names of function groups that include multiple encryption functions with random values ​​when generating a program.

[0040] According to this embodiment, for example, it is possible to suppress unauthorized data communications, thereby contributing to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "Develop resilient infrastructure, promote sustainable industrialization and foster innovation."

[0041] Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Furthermore, the effects described in the above-described embodiments are merely a list of the most preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.

[0042] The authentication method by the server 10 (authentication device) is realized by software. When realized by software, the programs constituting this software are installed in an information processing device (computer). These programs may be recorded on removable media such as CD-ROMs and distributed to users, or may be distributed by being downloaded to the user's computer via a network. Furthermore, these programs may be provided to the user's computer as a web service via a network without being downloaded. [Explanation of symbols]

[0043] 1. Authentication System 10 Server (authentication device) 11 Control section 12 Storage section 20 terminals 111 Function generator 112 Parts composition 113 Program Generation Unit 114 Program Distribution Department 115 Data Decoding Unit

Claims

1. a function generating unit that generates a plurality of encryption functions for encrypting input data and storing the data in allocated storage areas in a predetermined order; a component configuration unit that configures a plurality of program components so that encryption functions are called in an order corresponding to a plurality of encryption target data items whose output order is fixed; a program generating unit that generates a program for outputting the encrypted data stored in the storage area in the predetermined order; a program distribution unit that distributes the generated program to a user terminal; a data decryption unit that, upon receiving encrypted data output by the program from the terminal, decrypts the encrypted data using a decryption algorithm corresponding to the encryption function; an authentication device that authenticates the authenticity of the encrypted data by the data decryption unit being able to decrypt the data, and then acquires the decrypted data;

2. The authentication device according to claim 1 , wherein the program generation unit randomly changes the execution order of the plurality of program parts.

3. 3. The authentication device according to claim 1, wherein the program generation unit replaces names of the function groups including the plurality of encryption functions with random values.

4. 3. The authentication device according to claim 1, wherein the function generation unit mixes a plurality of encryption methods for the plurality of encryption functions.

5. a function generation step of generating a plurality of encryption functions for encrypting input data and storing the encrypted data in allocated storage areas in a predetermined order; a component configuration step of configuring a plurality of program components so that encryption functions are called in an order corresponding to a plurality of encryption target data items whose output order is fixed; a program generation step of generating a program that outputs the encrypted data stored in the storage area in the predetermined order; a program distribution step of distributing the generated program to a user terminal; a data decryption step of receiving encrypted data output by the program from the terminal and decrypting the encrypted data using a decryption algorithm corresponding to the encryption function; An authentication method in which the computer authenticates the authenticity of the encrypted data by successfully decrypting the data in the data decryption step, and then acquires the decrypted data.

6. 3. An authentication program for causing a computer to function as the authentication device according to claim 1.

Citation Information

Patent Citations

  • Ciphering device and deciphering device

    JP2002190798A

  • Encryption library generation device and program

    JP2014103554A

  • Data protection

    JP2016521875A

  • Progressive Key Encryption Algorithm

    JP2020522205A