Data encryption and decryption system and method

By dividing data into blocks and generating keys based on specific blocks, the method addresses the challenges of high overhead and key management in existing encryption and decryption methods, enhancing data security and reducing management complexity.

JP2025509015APending Publication Date: 2025-04-11アイサーティカンパニーリミテッド
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023580364
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-03-28
Filing Date
2022-10-31
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

Existing data encryption and decryption methods face challenges such as high overhead in encrypting and decrypting data, key management complexities, and the risk of key leakage, which compromises data security.

Method used

A method that divides data into blocks, generates encryption and decryption keys based on specific blocks, and encrypts and decrypts only the selected blocks, eliminating the need for key exchange and reducing management overhead.

Benefits of technology

This approach enhances data security by preventing malicious data theft and false or altered data actions, while also simplifying key management and reducing overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025509015000001_ABST
    Figure 2025509015000001_ABST
Patent Text Reader

Abstract

A data encryption method performed in a computer system includes the steps of: dividing data to be transmitted into any number of blocks; selecting, from the divided blocks, a block for which an encryption key is to be generated, which is to be used for extracting an encryption key; generating an encryption key based on the block for which an encryption key is to be generated; selecting, from the remaining blocks excluding the block for which an encryption key is to be generated, a block for which an encryption key is to be generated; and encrypting the block for which an encryption key is to be generated based on the generated encryption key.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to data security technologies, and more particularly to a system and method for data encryption and decryption. [Background technology]

[0002] Recently, various computer services have had a great influence on us due to the development of communication and computer resources. However, computer services that transmit and receive data through a network have many security problems.

[0003] In particular, with the development of networks, it is now possible to send and receive any data you need, anytime and anywhere, and data reading, writing, and editing are becoming increasingly free. This means, however, that information can be exposed to others through the network at any time.

[0004] Generally, if the data is important, the entire contents can be encrypted. However, when the entire contents are encrypted, there is a problem that a large amount of overhead is required for encrypting and decrypting the data. In addition, in order to encrypt and decrypt the data, a key must be exchanged between the parties, and if the key is maliciously stolen during the process, the data may be forged or altered. To improve such security vulnerabilities, various key management methods can be used, but they increase management overhead and the risk of key leakage cannot be completely resolved. Summary of the Invention [Problem to be solved by the invention]

[0005] The problem to be solved by the present invention is to provide a system and method for encrypting and decrypting data at the transmitting end and the receiving end.

[0006] However, the problems to be solved by the present invention are not limited to those mentioned above, and other problems may exist. [Means for solving the problem]

[0007] A data encryption method at a transmitting end according to a first aspect of the present invention for solving the above-mentioned problems includes the steps of: dividing data to be transmitted into an arbitrary number of blocks; selecting a block for encryption key generation from the divided blocks to be used for extracting an encryption key; generating an encryption key based on the block for encryption key generation; selecting a block for encryption from remaining blocks excluding the block for encryption key generation; and encrypting the block for encryption based on the generated encryption key.

[0008] In addition, a data decryption method at a receiving end according to a second aspect of the present invention includes the steps of receiving data to be received transmitted from a transmitting end, dividing the data to be received into a plurality of blocks according to encryption protocol information already shared with the transmitting end, selecting a decryption key generation target block to be used for extracting a decryption key from the divided plurality of blocks based on the encryption protocol information, generating a decryption key based on the decryption key generation target block, and decrypting remaining blocks excluding the decryption key generation target block based on the generated decryption key to restore the data to be received.

[0009] A computer program according to another aspect of the present invention for solving the above problems is combined with a computer, which is hardware, to execute the data encryption and decryption method, and is stored in a computer-readable recording medium.

[0010] Further details of the invention are contained in the detailed description and the drawings. Effect of the Invention

[0011] According to the above-mentioned embodiment of the present invention, the process of transmitting or sharing a key is omitted in the encryption and decryption process of data to be transmitted or received, thereby preventing malicious theft of data by a third party and further improving data security.

[0012] In addition, by generating and comparing hash values ​​based on the sequential correlation of transmitted and received data, it has the advantage of being able to detect forgery or tampering in which specific data is omitted or removed from sequential data.

[0013] The effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description. [Brief description of the drawings]

[0014] [Figure 1] FIG. 1 is an exemplary diagram illustrating the configuration of a computer system in which a data encryption and decryption method according to an embodiment of the present invention is implemented. [Diagram 2] FIG. 2 is a flowchart of a data encryption method at a transmitting end according to an embodiment of the present invention. [Diagram 3] FIG. 3 is a diagram illustrating an example of encrypting data to be transmitted at a transmitting end according to an embodiment of the present invention. [Figure 4] FIG. 4 is a flowchart of a method for decoding data at a receiving end according to an embodiment of the present invention. [Diagram 5] FIG. 5 is a flowchart of a method for verifying data forgery / alteration according to an embodiment of the present invention. [Figure 6] FIG. 6 is a diagram for explaining an example of a method for preventing data forgery and alteration. [Figure 7] FIG. 7 is a diagram for explaining an example of detecting forgery or alteration of data to be transmitted or received. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0015] The advantages and features of the present invention, as well as the methods for achieving them, will become clearer with reference to the following detailed description of the embodiments in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, and may be embodied in various different forms, and the embodiments are provided to fully disclose the present invention and fully inform those skilled in the art of the scope of the present invention, and the present invention is only defined by the scope of the claims.

[0016] The terms used in the present specification are for the purpose of describing the embodiments and are not intended to limit the present invention. In the present specification, the singular form includes the plural form unless otherwise specified in the phrase. The terms "comprises" and / or "comprising" used in the specification do not exclude the presence or addition of one or more other elements other than the elements mentioned. The same reference numerals refer to the same elements throughout the specification, and "and / or" includes each and every combination of one or more of the elements mentioned. Even if "first", "second", etc. are used to describe various elements, it is understood that these elements are not limited by these terms. These terms are used to distinguish only one element from other elements. Therefore, it is understood that the first element mentioned below can be the second element within the technical spirit of the present invention.

[0017] Unless otherwise defined, all terms (including technical and scientific terms) used in this specification can be used as commonly understood by ordinary skilled artisans in the technical field to which the present invention belongs. Furthermore, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless they are clearly and specifically defined.

[0018] 1 is an exemplary diagram illustrating the configuration of a computer system 100 in which a data encryption and decryption method according to an embodiment of the present invention is implemented. Meanwhile, the data encryption and decryption method according to an embodiment of the present invention may be implemented in the computer system 100 or recorded on a recording medium.

[0019] 1, computer system 100 may include at least one processor 110, memory 120, a data communication bus 130, a repository 140, a user input device 150, and a user output device 160. Each of the aforementioned components is in data communication through the data communication bus 130.

[0020] The computer system 100 may further include a network interface 170 coupled to a network 180. The processor 110 may be a central processing unit (CPU) or other semiconductor device that processes instructions stored in the memory 130 and / or the repository 140.

[0021] The memory 120 and the repository 140 may include various forms of volatile or non-volatile storage media. For example, the memory 120 may include a ROM 123 and a RAM 126.

[0022] Therefore, the data encryption and decryption method according to the embodiment of the present invention can be implemented in a computer-executable manner. When the data encryption and decryption method according to the embodiment of the present invention is performed in a computer device, computer readable instructions can perform the operating method according to the present invention.

[0023] Meanwhile, the data encryption and decryption method according to the present invention can be embodied as computer readable codes in a computer readable recording medium. The computer readable recording medium includes all kinds of recording media in which data decodable by the computer system 100 is stored. For example, a ROM (Read Only Memory), a RAM (Random Access Memory), a magnetic tape, a magnetic disk, a flash memory, an optical data storage device, etc. Also, the computer readable recording medium can be distributed among the computer systems 100 connected by a computer communication network and stored and executed as readable codes in a distributed manner.

[0024] A computer system 100 for performing a data encryption and decryption method according to an embodiment of the present invention provides an encoder for encrypting data and a decoder for decrypting data. That is, the computer system 100 provides an encoder API to a transmitting terminal (hereinafter, a transmitting end) that is to encrypt data, and provides a decoder API to a receiving terminal (hereinafter, a receiving end) that is to decrypt data encrypted by the encoder.

[0025] For example, the transmitting end and the receiving end may be various devices such as a smartphone, a camera, a black box, a tablet PC, or a notebook computer, and may be applied to secure data of the digital devices. Data to be transmitted and received in the present invention may include at least one of text messages, still image data, video data, audio data, personal information data, and audio data. That is, one piece of data may be data for adding security within a server or a terminal. In the description of the present invention, the data to be transmitted and received is described as video data consisting of a plurality of frames.

[0026] One embodiment of the present invention is characterized in that the receiving end shares encryption protocol information generated by the transmitting end with the transmitting end, and due to this technical feature, the transmitting end and the receiving end do not exchange encryption keys and decryption keys, i.e., symmetric keys, with each other.

[0027] In this manner, one embodiment of the present invention can eliminate security issues such as data leakage due to a third party stealing the key during data transmission by transmitting or not sharing the key during data transmission.

[0028] Meanwhile, in one embodiment of the present invention, the encoder is provided at the transmitting end and the decoder is provided at the receiving end. The input parameter of the encoder is the data to be transmitted, and the output data is the encrypted data to be transmitted. The input parameter of the decoder is the encrypted data to be transmitted (referred to as data to be received), and the output data is the decrypted data to be received.

[0029] Hereinafter, the data encryption method at the transmitting and receiving ends performed by the computer system 100 according to an embodiment of the present invention will be described in more detail with reference to FIGS.

[0030] 2 is a flow chart of a method for encrypting data at a transmitting end according to an embodiment of the present invention, and FIG 3 is a diagram illustrating an example of encrypting data to be transmitted at a transmitting end according to an embodiment of the present invention.

[0031] First, the transmitting end divides data to be transmitted into an arbitrary number of blocks (S110). In one embodiment, the transmitting end may divide the data to be transmitted into a plurality of blocks according to at least one of an arbitrary number and an arbitrary size. In this case, the data to be transmitted may be at least one piece of data, and in the case of a plurality of pieces of data, it means a plurality of consecutive pieces of data. In the case of a plurality of pieces of data, each of the plurality of pieces of data is divided into an arbitrary number of blocks.

[0032] For example, video data is composed of a plurality of transmission target data, and one transmission target data means one frame data constituting the video data. In this case, the transmitting end can divide one frame data having a size of 1,000 bytes into three blocks. Depending on the embodiment, the three blocks can be divided to have the same data size, or can be divided into 100 bytes, 400 bytes, and 500 bytes according to an arbitrary size.

[0033] In the example of Fig. 3, the first frame data is divided into nine blocks having the same size, and the nth frame data is divided into five blocks having different data sizes. In one embodiment of the present invention, the blocks may be divided in the same manner for a plurality of data to be transmitted, or at least one data to be transmitted may be divided in a different manner from the other data to be transmitted, as in Fig. 3.

[0034] Next, the transmitting end selects an encryption key generation target block to be used for extracting an encryption key from among the divided blocks (S120).

[0035] In one embodiment, the transmitting end may select one of a plurality of blocks as a block for which an encryption key is to be generated. For example, if one frame data is divided into three blocks, the transmitting end may select the second block (400 byte data) as a block for which an encryption key is to be generated.

[0036] In another embodiment, the transmitting end may select a plurality of blocks as blocks for which an encryption key is to be generated, for example, if one frame data is divided into three blocks, the transmitting end may select the first and third blocks (total of 600 byte data) as blocks for which an encryption key is to be generated.

[0037] In this way, one embodiment of the present invention selects blocks for which encryption keys are to be generated according to various conditions and methods rather than a fixed method that satisfies specific conditions, thereby further increasing diversity and complexity in encryption key generation and improving security.

[0038] In the example of FIG. 3, it is shown that the first block (P1) located at the top left corner of the first frame data divided into nine blocks is selected as the block for which the encryption key is to be generated.

[0039] Next, the transmitting end generates an encryption key based on the selected block for which an encryption key is to be generated (S130). At this time, the embodiment of the present invention can generate the encryption key through various embodiments.

[0040] In one embodiment, the transmitting end may generate an encryption key for a data area corresponding to a predetermined position and a predetermined size of a block for which an encryption key is to be generated. For example, the transmitting end may generate an encryption key for 32 bytes corresponding to the first position of the second block (400 bytes of data), which is a block for which an encryption key is to be generated.

[0041] In another embodiment, the transmitting end may extract a hash value from a data area corresponding to a block for which an encryption key is to be generated, and generate the extracted hash value as an encryption key. In this case, the transmitting end may extract a hash value from a data area corresponding to a block for which an encryption key is to be generated, so as to have a pre-set data size. For example, the transmitting end may extract a hash value of 32 bytes from a second block (400 byte data), which is a block for which an encryption key is to be generated, and use the extracted hash value as an encryption key. In addition, when generating a hash value, in order to enhance security, the hash value may be extracted from extended data in which specific data is added to a data area corresponding to a block for which an encryption key is to be generated.

[0042] In another embodiment, the transmitting end may extract a hash value from a data area corresponding to a block for which an encryption key is to be generated, so as to have a first data size that has already been set, and may extract only a second data size that has already been set from the extracted hash value, and generate the encryption key by extracting the second data size from the extracted hash value. For example, the transmitting end may extract a hash value of 32 bytes from a second block (400 byte data), which is a block for which an encryption key is to be generated, and may extract odd or even numbers, or any number of the extracted hash values, so as to satisfy the second data size, and use the extracted hash value as the encryption key.

[0043] Next, the transmitting end selects a block to be encrypted from the remaining blocks excluding the block for which the encryption key is to be generated (S140).

[0044] In one embodiment, the transmitting end may select all remaining blocks, excluding the block for which the encryption key is to be generated, as blocks to be encrypted, among a plurality of blocks. For example, the transmitting end may select all remaining blocks, excluding the second block (400 byte data), which is the block for which the encryption key is to be generated, the first and third blocks, as blocks to be encrypted.

[0045] In another embodiment, the transmitting end may select some of the remaining blocks excluding the block for which the encryption key is to be generated from among the plurality of blocks as the block to be encrypted. For example, the transmitting end may select only the third block from the remaining blocks excluding the second block (400 byte data) which is the block for which the encryption key is to be generated, as the block to be encrypted.

[0046] In the example of Figure 3, the first frame data is divided into nine blocks, and the remaining blocks are the residual blocks excluding the first block (P1) located at the top left corner, which is the block for which the encryption key is to be generated. Of the remaining blocks, the block located in the center and the block located at the bottom right corner (P2) are selected as the blocks to be encrypted.

[0047] Next, the transmitting end encrypts the blocks to be encrypted based on the generated encryption key (S150). In the above example, the transmitting end does not encrypt the second block (400 bytes of data) selected as the block to be encrypted for which the encryption key is to be generated, and encrypts only the remaining blocks selected as the blocks to be encrypted. In the following example, if the first block (100 bytes) and the third block (500 bytes) are both selected as the blocks to be encrypted, the transmitting end encrypts the blocks. Alternatively, if only the third block is selected as the block to be encrypted, the transmitting end does not encrypt the first block, and encrypts only the third block.

[0048] When the encryption of the data to be transmitted is completed, the transmitting end transmits the data to the receiving end.

[0049] Meanwhile, the result (encrypted data to be transmitted) encrypted by the method according to the above embodiment can be re-encrypted one or more times in the same method to further enhance security. When re-encrypting, it can be performed in the same process as the previous encryption process, or it can be encrypted in a different method. For example, when re-encrypting, if a block to be encrypted for generating an encryption key is set within an area to be encrypted (block to be encrypted) in the previous encryption step, and the block to be encrypted is set as a block to be encrypted for extracting a key (candidate block for generating an encryption key) in the previous step, it becomes possible to encrypt even parts that were not encrypted in the previous step, and encryption can be performed on the entire data area to further enhance the level of security.

[0050] By performing this re-encryption process, the security level can be increased in proportion to the number of times it is performed. Also, by performing re-encryption with different block settings for each step so that the entire data can be encrypted, the result can be obtained in which the entire block is encrypted.

[0051] FIG. 4 is a flowchart of a method for decoding data at a receiving end according to an embodiment of the present invention.

[0052] At the receiving end, the decryption key is extracted in the same manner as at the transmitting end, and the encrypted block is decrypted using the decryption key to restore the data transmitted to the transmitting end. In the following description of the data decryption method at the receiving end, the data to be transmitted that is transmitted to the transmitting end is referred to as the data to be received from the perspective of the receiving end. In addition, the block to be encrypted is referred to as the block to be decrypted, and the block corresponding to the block for which the encryption key is to be generated is referred to as the block for which the decryption key is to be generated.

[0053] First, when the receiving end receives data to be received from the transmitting end (S210), the receiving end divides the data to be received into a plurality of blocks according to encryption protocol information already shared with the transmitting end (S220).

[0054] At this time, the data encryption and decryption method according to the present invention is performed by the computer system 100 described in Fig. 1, and the computer system 100 provides APIs for encoding and decoding to the transmitting end and the receiving end, respectively. Thus, encryption protocol information including block division information for encrypting each piece of transmission data at the transmitting end, information on blocks for which encryption keys are to be generated, and information on blocks to be encrypted is shared with the receiving end. Thus, the receiving end can accurately grasp the number, type, and size information of divided blocks for each of a plurality of transmission data at the transmitting end, the positions of blocks for which encryption keys are to be generated, and the positions of blocks to be encrypted, even from the data to be received.

[0055] In this way, one embodiment of the present invention does not share a symmetric key, but rather allows the transmitting and receiving ends to share only encryption protocol information operated by the same system 100, thereby preventing problems such as key leakage during data transmission and reception.

[0056] Next, the receiving end selects a decryption key generation target block to be used for extracting a decryption key from among the divided blocks based on the encryption protocol information (S230), and generates a decryption key based on the decryption key generation target block (S240).

[0057] In one embodiment, the receiving end may generate a decryption key for a data area corresponding to a predetermined position and a predetermined size in a block for which a decryption key is to be generated.

[0058] In another embodiment, the receiving end may extract a hash value from a data area corresponding to a block for which a decryption key is to be generated so as to have a pre-set data size, and generate the extracted hash value as a decryption key.

[0059] In another embodiment, the receiving end may extract a hash value having a first data size that has already been set from a data area corresponding to a block for which a decryption key is to be generated, and extract only a second data size that has already been set from the extracted hash value to generate the decryption key.

[0060] Meanwhile, the step of generating a decryption key at the receiving end is performed in the same manner as the process of generating an encryption key at the transmitting end described with reference to FIGS. 2 and 3, so a detailed description and illustration will be omitted.

[0061] Next, the receiving end restores the data to be received by decrypting the remaining blocks excluding the block for which the decryption key is to be generated based on the generated decryption key (S250).

[0062] At this time, the receiving end selects all or a part of the remaining blocks as blocks to be decrypted according to the encryption protocol information, and decrypts only the selected blocks to be decrypted to restore the data to be received.

[0063] Meanwhile, when the entire blocks of the data to be received are re-encrypted one or more times by the re-encryption process described in Figures 2 and 3, the decryption process needs to perform corresponding decryption. In this case, according to one embodiment of the present invention, a first decryption key is obtained based on a block for which a decryption key is to be generated corresponding to the re-encryption according to the encryption protocol information, and the remaining blocks excluding the block for which the decryption key is to be generated are decrypted. This process corresponds to a decryption process corresponding to the re-encryption.

[0064] Thereafter, a second decryption key is obtained according to the encryption protocol information, and the remaining blocks excluding the block for which the decryption key is to be generated are decrypted based on the second decryption key. If re-encryption is performed multiple times, a third and fourth decryption key generation process and a decryption process may be performed. Through these processes, one embodiment of the present invention restores the data to be received, all of whose blocks have been encrypted.

[0065] Hereinafter, a method for verifying data forgery / alteration performed at the transmitting end and the receiving end of the computer system 100 will be described with reference to FIGS.

[0066] FIG. 5 is a flowchart of a method for verifying data forgery / alteration according to an embodiment of the present invention.

[0067] First, the transmitting end extracts a hash value from the n-th data to be transmitted (S310). Here, the n-th data to be transmitted means data to be currently transmitted. If the n-th data to be transmitted is the first data to be transmitted, the transmitting end applies any previously set promised data as a hash value corresponding to the n-1-th data to be transmitted since there is no previous data.

[0068] Next, the transmitting end generates a first hash value, which is a final hash value for the n-th data to be transmitted, based on the hash value of the (n-1)-th data to be transmitted and the hash value of the n-th data to be transmitted (S320).

[0069] Next, the transmitting end transmits the data to be transmitted and a first hash value corresponding to each of the data to be transmitted to the receiving end (S330).

[0070] Next, the receiving end extracts a hash value from the nth data to be received (S340), where the nth data to be received is the same as the nth data to be transmitted, and means data currently received by the receiving end.

[0071] Next, the receiving end generates a second hash value, which is a final hash value for the n-th data to be received, based on the hash value of the (n-1)-th data to be received and the hash value of the n-th data to be received (S350).

[0072] Thereafter, the receiving end detects missing or forged data to be received from among the plurality of data to be received by comparing the first hash value transmitted from the transmitting end with the second hash value generated by itself (S360).

[0073] FIG. 6 is a diagram for explaining an example of a method for preventing data forgery and alteration.

[0074] First, the transmitting end extracts a hash value b of the n-th data to be transmitted, and generates a new final hash value β for the n-th data to be transmitted based on the previously extracted hash value a and hash value b of the n-1th data to be transmitted. At this time, the final hash value of the n-1th data to be transmitted generated in the previous step is α. When transmitting each data to be transmitted to the receiving end, the transmitting end also transmits the first hash value (α, β, etc.) which is the final hash value.

[0075] Thereafter, when the receiving end receives the nth data to be received, it extracts the hash value b of the nth data to be received, and generates a new final hash value β for the nth data to be received based on the previously extracted hash value a and hash value b of the n-1th data to be received.

[0076] The receiving end can detect whether data has been forged or tampered with by checking that the first hash value and the second hash value are identical to each other (β).

[0077] FIG. 7 is a diagram for explaining an example of detecting forgery or alteration of data to be transmitted or received.

[0078] In the conventional data forgery / alteration prevention method, forgery / alteration is detected by comparing the hash values ​​of the transmitted and received data. That is, since the hash values ​​of the (n-1)th data to be transmitted and the (n-1)th data to be received are the same as a, it is confirmed that the data is not forged or altered, and similarly, since the hash values ​​of the nth data to be transmitted and the nth data to be received are the same as b, it is confirmed that the data is not forged or altered. In this case, if forgery / alteration occurs such as intermediate data being missing or stolen from the multiple transmitted and received data, the conventional forgery / alteration prevention method was unable to detect it.

[0079] In order to solve this problem, an embodiment of the present invention can detect whether intermediate data is forged or altered by taking into account the correlation between hash values ​​of each piece of data to be transmitted or received.

[0080] In the example of Fig. 7, it is assumed that the transmitting end transmits three consecutive pieces of data to be transmitted and the first hash values ​​(α, β, γ) to the receiving end, and among them, the n-th data to be transmitted is forged or altered and missing. The receiving end generates the second hash value α from the n-1-th data to be received, but since the n-th data to be received does not exist, the receiving end generates the second hash value γ' based on the hash value a of the n-1-th data to be received and the hash value c of the n+1-th data to be received.

[0081] Then, by comparing the first hash value γ and the second hash value γ', it is found that the hash values ​​are different, so it is possible to detect that the nth data to be received, which is the data preceding the n+1th data to be received, has been forged or altered.

[0082] Meanwhile, in the above description, steps S110 to S360 may be further divided into additional steps or combined into fewer steps depending on the embodiment of the present invention. Also, some steps may be omitted as necessary, and the sequence between steps may be changed. Also, even if other omitted contents are included, the contents of Figs. 2 to 7 can be applied to the computer system 100 of Fig. 1.

[0083] The above-described embodiment of the present invention may be implemented as a program (or application) and stored in a medium in order to be executed in combination with a computer, which is hardware.

[0084] The above-mentioned program may include code written in a computer language such as C, C++, JAVA, Ruby, Python, machine language, etc. that the processor (CPU) of the computer can read through the device interface of the computer so that the computer can read the program and execute the method embodied in the program. Such code may include functional code related to functions defining functions necessary to execute the method, and may include execution procedure-related control code necessary for the processor of the computer to execute the function according to a predetermined procedure. In addition, such code may further include memory reference-related code for indicating at which location (address) in the internal or external memory of the computer additional information or media necessary for the processor of the computer to execute the function should be referenced. In addition, if the computer processor needs to communicate with any other remote computers, servers, etc. to perform the function, the code may further include communication-related code for how to communicate with any other remote computers, servers, etc. using the computer's communication module, and what information or media to send and receive during communication.

[0085] The storage medium means a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short moment, such as a register, cache, or memory. Specifically, examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage device. That is, the program can be stored in various recording media on various servers to which the computer can be connected, or various recording media on the user's computer. Also, the medium may be distributed among computer systems 100 connected to a network, and computer readable code may be stored in a distributed manner.

[0086] The above description of the present invention is given for illustrative purposes only, and it will be understood by those skilled in the art that the present invention can be easily modified into other specific forms without changing the technical concept or essential characteristics of the present invention. Therefore, it should be understood that the above-described embodiments are illustrative in all respects and are not limiting. For example, each component described as a single form may be implemented in a distributed form, and each component described as a distributed form may be implemented in a combined form.

[0087] The scope of the present invention is indicated by the claims set forth below rather than by the above detailed description, and all modifications and variations derived from the meaning and scope of the claims, as well as their equivalent concepts, should be construed as being included within the scope of the present invention.

Claims

1. 13. A computer implemented method comprising: Dividing data to be transmitted into an arbitrary number of blocks; selecting a block for generating an encryption key to be used for extracting an encryption key from among the plurality of divided blocks; generating an encryption key based on the encryption key generation target block; selecting a block to be encrypted from among remaining blocks excluding the block to be encrypted; and encrypting the encryption target block based on the generated encryption key. The method of encrypting data at the sending end.

2. The step of dividing the data to be transmitted into an arbitrary number of blocks includes: Dividing the data to be transmitted into a plurality of blocks by at least one of an arbitrary number and an arbitrary size. The method for encrypting data at a transmitting end according to claim 1.

3. The step of selecting a block to be used for extracting an encryption key from among the plurality of divided blocks includes: selecting one or more of the blocks as the encryption key generation target block among the plurality of blocks; The method for encrypting data at a transmitting end according to claim 1.

4. The step of generating an encryption key based on the encryption key generation target block includes: a cryptographic key is generated for a data area corresponding to a predetermined position and a predetermined size of the cryptographic key generation target block; The method for encrypting data at a transmitting end according to claim 1.

5. The step of generating an encryption key based on the encryption key generation target block includes: extracting a hash value from a data area corresponding to the block for which the encryption key is to be generated; generating the extracted hash value as a cryptographic key. The method for encrypting data at a transmitting end according to claim 1.

6. The step of extracting a hash value from a data area corresponding to a block for which an encryption key is to be generated includes: extracting the hash value from a data area corresponding to the encryption key generation target block so that the hash value has a data size that has been previously set; The method for encrypting data at a transmitting end according to claim 5.

7. The step of generating an encryption key based on the encryption key generation target block includes: extracting the hash value from a data area corresponding to the block for which the encryption key is to be generated so as to have a first data size that has already been set, and extracting only a second data size that has already been set from the extracted hash value to generate the encryption key. The method for encrypting data at a transmitting end according to claim 6.

8. The step of selecting a block to be encrypted from among remaining blocks excluding the block to be encrypted includes: selecting, from among the plurality of blocks, all or a part of remaining blocks excluding the block to be encrypted as the block to be encrypted; The method for encrypting data at a transmitting end according to claim 1.

9. The method further includes a step of additionally re-encrypting the encrypted data to be transmitted one or more times, The re-encrypting step includes: A step of dividing the encrypted data to be transmitted into an arbitrary number of blocks; selecting a block for generating an encryption key to be used for extracting an encryption key from among the plurality of divided blocks; generating an encryption key based on the encryption key generation target block; selecting a block to be encrypted from among remaining blocks excluding the block to be encrypted; and encrypting the encryption target block based on the generated encryption key. The method for encrypting data at a transmitting end according to claim 1.

10. extracting a hash value from the n-th transmission target data; generating a first hash value, which is a final hash value for the n-th transmission target data, based on a hash value of the (n-1)-th transmission target data and a hash value of the n-th transmission target data; The method further includes transmitting a plurality of the transmission target data and a first hash value corresponding to each of the transmission target data to a receiving end; The receiving end generates a second hash value from the hash values ​​of the nth and (n-1)th reception target data corresponding to the transmission target data, and detects missing or forged transmission target data among the plurality of transmission target data by comparing the first and second hash values. The method for encrypting data at a transmitting end according to claim 1.

11. When the n-th data to be transmitted is the first data to be transmitted, the already set data is applied as a hash value corresponding to the (n-1)-th data to be transmitted. The method for encrypting data at a transmitting end according to claim 10.

12. 13. A computer implemented method comprising: receiving data to be received transmitted from a transmitting end; Dividing the data to be received into a plurality of blocks according to encryption protocol information already shared with the transmitting end; selecting a decryption key generation target block to be used for extracting a decryption key from among the plurality of divided blocks based on the encryption rule information; generating a decryption key based on the decryption key generation target block; and recovering the data to be received by decrypting remaining blocks excluding the block for which the decryption key is to be generated based on the generated decryption key. How data is decoded at the receiving end.

13. The data to be received is divided into a plurality of blocks according to the encryption protocol information shared by the transmitting end, and an encryption key is generated based on a selected encryption key generation target block among the blocks, and at least one of the remaining blocks excluding the encryption key generation target block is selected as an encryption target block and encrypted. A method for decoding data at a receiving end according to claim 12.

14. The step of generating a decryption key based on a decryption key generation target block includes: generating the decryption key for a data area corresponding to a predetermined position and a predetermined size in the decryption key generation target block; A method for decoding data at a receiving end according to claim 13.

15. The step of generating a decryption key based on a decryption key generation target block includes: extracting a hash value having a preset data size from a data area corresponding to the block for which the decryption key is to be generated; generating the extracted hash value as a decryption key. A method for decoding data at a receiving end according to claim 12.

16. The step of generating a decryption key based on a decryption key generation target block includes: extracting the hash value from a data area corresponding to the block for which the decryption key is to be generated so as to have a first data size that has already been set, and extracting only a second data size that has already been set from the extracted hash value to generate the decryption key. A method for decoding data at a receiving end according to claim 12.

17. extracting a hash value from the n-th data to be received; generating a second hash value, which is a final hash value for the n-th data to be received, based on the hash value of the (n-1)-th data to be received and the hash value of the n-th data to be received; The method further includes detecting missing, forged, or altered data to be received among a plurality of data to be received by comparing the first hash value and the second hash value transmitted from the transmitting end, The transmitting end generates a first hash value from hash values ​​of n-th and (n-1)-th transmission target data corresponding to the reception target data, and transmits the first hash value to the receiving end. A method for decoding data at a receiving end according to claim 12.

18. When the nth data to be received is the first data to be received, the data already set in the transmitting end is used as a hash value corresponding to the n-1th data to be received.

20. A method for decoding data at a receiving end according to claim 17.

Citation Information

Patent Citations

  • Information processor with protection function of software

    JP1997258977A

  • Transmitter, receiver, and communication method

    JP2019029921A

  • Controlling access to data streams

    US8099599B2

  • Packet transmission device, packet-receiving device, packet transmission program, and packet-receiving program

    WO2016116999A1