Encryption device, encryption method, and encryption program
The encryption device and method parallelize encryption algorithms and key calculation to achieve high-speed encryption and decryption, addressing the speed limitations of existing methods in next-generation mobile communication services.
Patent Information
- Application Number
- JP2022062092
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-04-01
- Publication Date
- 2026-01-28
- Estimated Expiration
- 2042-04-01
AI Technical Summary
Existing encryption methods, including Rocca, face challenges in achieving faster processing speeds to accommodate the increased communication speeds in next-generation mobile communication services like 6G.
An encryption device and method that executes multiple encryption algorithms in parallel using an authenticated encryption scheme, generating ciphertexts from multiple plaintexts, and calculates multiple keys from a single key using a predetermined formula to facilitate high-speed encryption and decryption.
Enables high-speed encryption and decryption of large data volumes with efficient processing load management, ensuring data integrity and security without increasing data size.
Smart Images

Figure 0007807970000001 
Figure 0007807970000002 
Figure 0007807970000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to an encryption device, an encryption method, and an encryption program. [Background technology]
[0002] Conventionally, in mobile communication services for mobile terminals, after authentication and key sharing with the network are performed using a private key written in the SIM card, communication is performed using a predetermined encryption method. The authentication procedure is standardized and specified in Non-Patent Document 1.
[0003] Meanwhile, in next-generation mobile communication services such as 6G, as communication speeds increase, there is a demand for high-speed encryption of communication data to ensure security. Therefore, for example, Non-Patent Document 2 proposes Rocca, an authenticated stream cipher that supports key lengths that are resistant to decryption by quantum computers and achieves processing speeds that do not become a bottleneck in communication speeds. [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] 3GPP TS 33.102, V16.0.0 (2020-07), 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; 3G Security; Security architecture (Release 16). [Non-patent document 2] Kosei Sakamoto et al., "Rocca: An Efficient AES-based Encryption Scheme for Beyond 5G," IACR Transactions on Symmetric Cryptology, ISSN 2519-173X, Vol. 2021, No. 2, pp. 1-30. Summary of the Invention [Problem to be solved by the invention]
[0005] However, there is a demand for even faster processing, and even for existing encryption methods including Rocca in Non-Patent Document 2, there is a need to find an implementation method that can execute at higher speeds.
[0006] An object of the present invention is to provide an encryption device, an encryption method, and an encryption program that can perform encryption at high speed. [Means for solving the problem]
[0007] The encryption device according to the present invention includes an encryption processing unit that executes multiple encryption algorithms in an authenticated encryption method in parallel to generate ciphertexts from multiple plaintexts, and an authentication code generation unit that generates an authentication code using an authentication code generation algorithm based on the output obtained by sequentially inputting the multiple ciphertexts into the encryption algorithms.
[0008] The encryption processing unit may input consecutive data as the plaintext to the encryption algorithm in units of a predetermined number of bits and execute the data in parallel, and may further repeatedly input subsequent plaintext to the encryption algorithm in units of a predetermined number of bits together with the execution result of the encryption algorithm and execute the data in parallel.
[0009] The encryption processing unit may calculate a plurality of keys for executing the encryption algorithm in parallel using a predetermined calculation formula based on one key.
[0010] The encryption processing unit may calculate the plurality of keys by adding a predetermined number to a first key.
[0011] The encryption processing unit may set the predetermined number to a prime number.
[0012] The encryption method may be Rocca.
[0013] The encryption method according to the present invention is carried out by a computer, and includes an encryption processing step of executing multiple encryption algorithms in an authenticated encryption system in parallel to generate ciphertexts from multiple plaintexts, and an authentication code generation step of generating an authentication code using an authentication code generation algorithm based on the output obtained by sequentially inputting the multiple ciphertexts into the encryption algorithm.
[0014] The encryption program according to the present invention is for causing a computer to function as the encryption device. [Effects of the Invention]
[0015] According to the present invention, encryption can be performed at high speed. [Brief explanation of the drawings]
[0016] [Figure 1] FIG. 1 is a diagram illustrating a configuration of Rocca, which is an encryption method according to an embodiment. [Figure 2] FIG. 2 is a diagram illustrating a functional configuration of an encryption device according to an embodiment. [Figure 3] FIG. 10 is a diagram illustrating a processing procedure of an encryption method according to an embodiment. [Figure 4] FIG. 10 is a diagram illustrating a processing procedure for continuously encrypting large-scale data using the encryption method according to the embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0017] An example of an embodiment of the present invention will be described below. The encryption method of this embodiment employs Rocca, proposed in Non-Patent Document 2, as an example of an authenticated encryption scheme to be used. Note that the encryption scheme is not limited to this, and the method can be applied to various authenticated encryption schemes.
[0018] FIG. 1 is a diagram showing the configuration of Rocca, which is an encryption method according to this embodiment. The Rocca algorithm, which is an authenticated stream encryption method, uses two keys K0 and K1 for encryption, and the key length is fixed at 128 bits each, for a total of 256 bits.
[0019] In addition to these two keys, a nonce (N) and various parameters (Z, AD) are input sequentially into the AES round function to initialize the internal state, and then a ciphertext C is output for each message M input sequentially using an encryption algorithm that uses the round function. Furthermore, an authentication code T is output by an authentication code generation algorithm that executes the round function 20 times using the message length |M|.
[0020] FIG. 2 is a diagram showing the functional configuration of the encryption device 1 in this embodiment. The encryption device 1 is an information processing device that includes a control unit 10, a storage unit 20, as well as various data input / output devices and communication devices.
[0021] The control unit 10 is a part that controls the entire encryption device 1, and realizes each function in this embodiment by appropriately reading and executing various programs stored in the storage unit 20. The control unit 10 may be a CPU. Specifically, the control unit 10 includes an encryption processing unit 11 and an authentication code generation unit 12.
[0022] The storage unit 20 is a storage area for various programs and various data for causing the hardware group to function as the encryption device 1, and may be a ROM, RAM, flash memory, hard disk drive (HDD), etc. Specifically, the storage unit 20 stores a program (encryption program) for causing the control unit 10 to execute each function of this embodiment, and further stores various parameters, internal states, etc.
[0023] The encryption processing unit 11 executes a plurality of encryption algorithms in an authenticated encryption method (for example, Rocca) in parallel to generate ciphertexts from a plurality of plaintexts. When encrypting large amounts of data continuously, the encryption processing unit 11 inputs the continuous data as plaintext to the encryption algorithm in units of a predetermined number of bits and executes the algorithm in parallel.The encryption processing unit 11 then inputs the execution result of the encryption algorithm and subsequent plaintext in units of a predetermined number of bits and executes the algorithm in parallel.
[0024] For example, when the input to an encryption algorithm is L bits at a time and N encryption algorithms are executed in parallel, the encryption processing unit 11 divides the data (plaintext) to be encrypted into L-bit chunks in order, and inputs the first L×N bits to the N encryption algorithms in L-bit chunks. Similarly, the encryption processing unit 11 inputs the subsequent data into the encryption algorithm L bits at a time, and processes L×N bits in parallel.
[0025] Here, multiple keys are required to execute the encryption algorithm in parallel, but the encryption processing unit 11 may calculate other keys using a predetermined calculation formula based on one key. For example, the encryption processing unit 11 calculates a plurality of keys by adding a predetermined number (for example, 1) to the first key.
[0026] Specifically, when the first key is K, the i-th key (1≦i≦N) can be calculated as K+(i-1)×t mod x. Note that x is the number of possible values of the key, that is, the maximum value of the key + 1 (if the key length is 256 bits, 2256 ) The predetermined number t is a natural number, but by making it a value that is relatively prime to x (for example, a prime number), duplication of keys can be prevented.
[0027] The authentication code generating unit 12 generates an authentication code by an authentication code generating algorithm based on the output obtained by sequentially inputting the multiple ciphertexts generated by the encryption processing unit 11 into an encryption algorithm.
[0028] FIG. 3 is a diagram illustrating the processing procedure of the encryption method according to this embodiment. In this example, four (N=4) encryption processes (encryption algorithms) are executed in parallel. In this case, the plaintext is divided into four parts of L bits or less, and encryption processes are executed on each part in parallel, and ciphertext is output.
[0029] The four output ciphertexts are sequentially input to one of the encryption processes (for example, the first one), and the authentication code generation process (authentication code generation algorithm) is executed based on the final output. As a result, a single authentication code T is output for the four ciphertexts.
[0030] Furthermore, when processing plaintext with a length exceeding L×N bits, parallel encryption processing is repeatedly performed as follows.
[0031] FIG. 4 is a diagram illustrating a processing procedure for continuously encrypting large-scale data using the encryption method of this embodiment. Here too, four (N=4) encryption processes (encryption algorithms) are executed in parallel.
[0032] First, the first L×N bits of the continuous data are used as plaintext 1, and are input to N encryption processes, L bits at a time, which output N ciphertexts (ciphertext 1). Next, when each of these ciphertexts and the subsequent L×N bits are input as plaintext 2 to N encryption processes, L bits at a time, N ciphertexts 2 are output. Similarly, large amounts of data can be encrypted by repeatedly executing encryption processes in parallel, thereby realizing, for example, a high-speed stream cipher.
[0033] The final N ciphertexts generated in this way by inheriting all the plaintext information are input sequentially to the first encryption process, as in Figure 3, and an authentication code is output by the authentication code generation process. When Rocca is used as the encryption method, the round function R after initialization shown in FIG. 1 corresponds to the encryption process (encryption algorithm), and initialization is performed in advance.
[0034] According to this embodiment, the encryption device 1 executes multiple encryption algorithms in an authenticated encryption method in parallel to generate ciphertexts from multiple plaintexts, and then generates an authentication code using an authentication code generation algorithm based on the outputs obtained by sequentially inputting these ciphertexts into the encryption algorithms. Therefore, the encryption device 1 achieves safe and high speed overall authentication encryption by executing encryption processes in parallel, and prevents multiple authentication codes from being generated due to parallelization, so the data size does not increase.
[0035] Furthermore, the encryption device 1 can encrypt large amounts of data by repeatedly executing encryption processes in parallel, and can generate a single authentication code by inheriting all plaintext information.
[0036] The encryption device 1 calculates a plurality of keys from one key using a predetermined formula in order to perform encryption processing in parallel. Therefore, the encryption device 1 can efficiently prepare for parallel execution, thereby reducing the processing load.
[0037] Specifically, the encryption device 1 can easily calculate multiple keys by adding a predetermined number to the first key. At this time, it is necessary that the calculated keys do not overlap with each other, but if the key space is sufficiently large compared to the predetermined number, it is possible to calculate keys without overlapping. Furthermore, the encryption device 1 can easily prevent overlapping by setting the predetermined number to a value relatively prime to the number x of possible key values, particularly a prime number.
[0038] The encryption device 1 can use Rocca as an authenticated encryption method. Since Rocca is configured so that an authentication code generation algorithm is executed after ciphertext generation, the encryption device 1 can easily parallelize only the encryption algorithm, enabling high-speed processing without increasing data size.
[0039] Furthermore, when decrypting the ciphertext generated by the encryption device 1, parallelization is possible by dividing the ciphertext into L-bit chunks, just as in the case of encryption, and high-speed decryption processing is realized. Furthermore, the integrity of the data is guaranteed by using the N divided ciphertexts to verify the authentication code generated by the encryption algorithm and authentication code generation algorithm as described above.
[0040] This will enable, for example, faster implementation of authenticated encryption, which will contribute to Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "Build 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 encryption method by the encryption device 1 is realized by software. When realized by software, a program constituting this software is 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 Encryption device 10 Control Unit 11 Encryption processing section 12 Authentication code generation unit 20 Memory section
Claims
1. an encryption processing unit that executes a plurality of encryption algorithms in the authenticated encryption method in parallel to generate ciphertexts from a plurality of plaintexts; an authentication code generation unit that uses any two of the multiple ciphertexts as input to the encryption algorithm, and then repeats an encryption process in which the output of the encryption algorithm and any one of the remaining ciphertexts are further input to the encryption algorithm until no more ciphertexts remain, and generates an authentication code using an authentication code generation algorithm based on the final ciphertext output.
2. The encryption processing unit inputting the continuous data as the plaintext into the encryption algorithm at a predetermined bit rate and executing the algorithm in parallel; 2. The encryption device according to claim 1, further comprising: a processor configured to input a predetermined number of bits of subsequent plaintext into the encryption algorithm together with the execution result of the encryption algorithm, and repeatedly execute the encryption algorithm in parallel.
3. 3. The encryption device according to claim 1, wherein the encryption processing unit calculates a plurality of keys for executing the encryption algorithm in parallel using a predetermined formula based on one key.
4. The encryption device according to claim 3 , wherein the encryption processing unit calculates the plurality of keys by adding a predetermined number to a first key.
5. The encryption device according to claim 4 , wherein the encryption processing unit sets the predetermined number as a prime number.
6. 2. The encryption device according to claim 1, wherein the encryption method is Rocca.
7. The computer The encryption processing unit executes a plurality of encryption algorithms in the authenticated encryption method in parallel to generate ciphertexts from a plurality of plaintexts, respectively; An encryption method in which an authentication code generation unit inputs any two of the multiple ciphertexts to the encryption algorithm, and then repeats the encryption process of inputting the output of the encryption algorithm and any one of the remaining ciphertexts to the encryption algorithm until no more ciphertexts remain, and generates an authentication code using an authentication code generation algorithm based on the final ciphertext output.
8. An encryption program for causing a computer to function as the encryption device according to claim 1.
Citation Information
Patent Citations
Station side optical termination device
JP2017038256A
Methods and systems for improved authenticated encryption in counter-based cipher systems
WO2018187481A1