Encryption system, encryption method and encryption program
The encryption system addresses the challenge of double encryption by generating and re-encrypting internal and external secret keys using random numbers, ensuring the integrity of external encryption methods is maintained.
Patent Information
- Application Number
- DE112023006562
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-01
- Publication Date
- 2026-04-09
AI Technical Summary
Existing methods for proxy re-encryption do not address the challenge of handling double encryption scenarios where keys for internal and external encryption methods need to be modified separately.
An encryption system that generates a randomized internal secret key and external secret key using random numbers, encrypts these keys, and performs re-encryption to modify the internal encryption method while keeping the external encryption method unchanged.
Enables the modification of keys for internal encryption methods while maintaining the integrity of external encryption methods in double encryption scenarios.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical field
[0001] The present disclosure relates to methods for re-encrypting a ciphertext without decrypting the ciphertext. Background on the state of the art
[0002] Proxy re-encryption is a public-key encryption technology that allows a ciphertext to be modified into a new ciphertext using a different key, without decrypting the original ciphertext.
[0003] In the non-patent literature 1, a public key encryption method is described which implements proxy re-encryption.
[0004] Furthermore, a method was proposed in which proxy re-encryption is performed even when a different encryption method is used. Reference list: Non-patented literature
[0005] Non-patented literature 1: Achieving Flexibility for ABE with Outsourcing via Proxy Re-Encryption, Asiaccs'18, June 4-8, 2018, Incheon, Republic of Korea Summary of the invention: Technical problem
[0006] Non-patent literature 1 describes a method for modifying a key while keeping the key encrypted. Non-patent literature 1 also points out that switching to a different encryption method is possible if a certain characteristic is present.
[0007] However, no method for handling double encryption is mentioned in the non-patent literature 1.
[0008] The present disclosure is intended to make it possible to modify a key for an internal encryption method, while a key for an external encryption method remains unmodified in the case of double encryption. Solution to the task
[0009] An encryption system according to the present disclosure comprises: an encryption device to generate a ciphertext by double-encrypting a plaintext using a first internal public key and a first external public key; a re-encryption key generation facility to generate a randomized internal secret key by randomizing a first internal secret key using a second random number, to generate a second encrypted random number by encrypting the second random number using a second internal public key, to generate a randomized external secret key by randomizing a first external secret key using a first random number, and to generate a first encrypted random number by encrypting the first random number using a second external public key; a re-encryption device to obtain a randomized decryption text by decrypting the ciphertext using the randomized external secret key and the randomized internal secret key, and to generate a re-encrypted text by encrypting the randomized decryption text using the second internal public key and the second external public key; and a decryption device to decrypt the second random number from the second encrypted random number using the second internal secret key, to decrypt the first random number from the first encrypted random number using the second external secret key, to decrypt the randomized decryption text from the newly encrypted text using the second external secret key and the second internal secret key, and to compute the plaintext using the randomized decryption text, the second random number, and the first random number. Advantageous effects of the invention
[0010] According to the present disclosure, it is possible to modify a key for an internal encryption method, while a key for an external encryption method remains unmodified in double encryption. Brief description of the drawings Fig. Figure 1 is a configuration representation of an encryption system 100 in embodiment 1. Fig. Figure 2 is a configuration representation of a parameter generation device 200 in embodiment 1. Fig. Figure 3 is a configuration representation of a key generation device 300 in embodiment 1. Fig. Figure 4 is a configuration representation of an encryption device 400 in embodiment 1. Fig. Figure 5 is a configuration representation of a re-encryption key generation device 500 in embodiment 1. Fig. Figure 6 is a configuration representation of a re-encryption device 600 in embodiment 1. Fig. Figure 7 is a configuration representation of a decryption device 700 in embodiment 1. Fig. Figure 8 is a representation of a functional configuration of the parameter generation device 200 in embodiment 1. Fig. Figure 9 is a flowchart of a parameter generation procedure in embodiment 1. Fig. Figure 10 is a representation of a functional configuration of the key generation device 300 in embodiment 1. Fig. Figure 11 is a flowchart of a key generation process in embodiment 1. Fig. Figure 12 is a representation of a functional configuration of the encryption device 400 in embodiment 1. Fig. Figure 13 is a flowchart of an encryption method in embodiment 1. Fig. Figure 14 is a representation of a functional configuration of the re-encryption key generation device 500 in embodiment 1. Fig. Figure 15 is a flowchart of a re-encryption key generation process in embodiment 1. Fig. Figure 16 is a representation of a functional configuration of the re-encryption device 600 in embodiment 1. Fig. Figure 17 is a flowchart of a re-encryption procedure in embodiment 1. Fig. Figure 18 is a representation of a functional configuration of the decryption device 700 in embodiment 1. Fig. Figure 19 is a flowchart of a decryption procedure in embodiment 1. Fig. Figure 20 is a representation of a hardware configuration of the parameter generation device 200 in embodiment 1. Fig. Figure 21 is a representation of a hardware configuration of the key generation device 300 in embodiment 1. Fig. Figure 22 is a representation of a hardware configuration of the encryption device 400 in embodiment 1. Fig. Figure 23 is a representation of a hardware configuration of the re-encryption key generation device 500 in embodiment 1. Fig. Figure 24 is a representation of a hardware configuration of the re-encryption device 600 in embodiment 1. Fig. Figure 25 is a representation of a hardware configuration of the decryption device 700 in embodiment 1. Description of embodiments
[0011] In the embodiments and drawings, identical or corresponding elements are designated with the same reference numeral. The description of an element designated with the same reference numeral as an element already described is omitted or simplified as appropriate. Arrows in diagrams primarily indicate data flows or processing flows. Design 1.
[0012] An encryption system 100 is based on the Fig. 1 to 25 described. *** Configuration Description ***
[0013] Based on Fig. Section 1 describes a configuration of the encryption system 100.
[0014] The encryption system 100 comprises a parameter generation device 200, a multitude of key generation devices 300, a multitude of encryption devices 400, a re-encryption key generation device 500, a re-encryption device 600 and a decryption device 700.
[0015] The facilities communicate with each other via a network 101. Network 101 is a communication path that connects these facilities. An example of network 101 is the internet. If encryption system 100 is installed in a company, a local area network (LAN) can be used as network 101. Other types of network 101 can also be used.
[0016] Based on Fig. Section 2 describes a configuration of the parameter generation device 200.
[0017] The parameter generation device 200 is a computer comprising hardware such as a processor 201, a main memory 202, an auxiliary storage device 203, a communication device 204, and an input / output interface 205. These hardware components are interconnected via signal lines.
[0018] The processor is an integrated circuit (IC) that performs arithmetic operations and controls other hardware components. For example, a processor is a CPU.
[0019] IC is an abbreviation for Integrated Circuit.
[0020] CPU is an abbreviation for Central Processing Unit.
[0021] Random access memory (RAM) is a volatile or non-volatile storage device. It is also referred to as main memory or primary memory. RAM is an example of a RAM module. Data stored in RAM is saved to secondary storage as needed.
[0022] RAM is an abbreviation for Random Access Memory.
[0023] The auxiliary storage device is a non-volatile storage device. The auxiliary storage device can be, for example, a ROM, a HDD, flash memory, or a combination thereof. Data stored in the auxiliary storage device is loaded into it as needed.
[0024] ROM is an abbreviation for Read Only Memory.
[0025] HDD is an abbreviation for Hard Disk Drive.
[0026] The parameter generation unit 200 communicates via the communication unit 204.
[0027] The communication device consists of a receiver and a transmitter. Examples of the communication device include a communication chip or a network interface card (NIC).
[0028] NIC is an abbreviation for Network Interface Card.
[0029] The input and output of the parameter generation device 200 is via the input / output interface 205.
[0030] The input / output interface is a port to which an input device and an output device are connected. For example, the input / output interface is a USB port, the input device is a keyboard or a mouse, and the output device is a display.
[0031] USB is an abbreviation for Universal Serial Bus.
[0032] The parameter generation unit 200 comprises elements such as a receiving unit 210, a parameter generation unit 220, and an output unit 230. These elements are implemented by software.
[0033] The additional storage device stores an operating system. At least part of the operating system is loaded into main memory and executed by the processor.
[0034] The additional storage device 203 also stores a parameter generation program to cause a computer to operate as the receiving unit 210, the parameter generation unit 220, and the output unit 230. The parameter generation program is loaded into the main memory 202 and executed by the processor 201.
[0035] The processor 201 executes the parameter generation program while running the OS.
[0036] OS is an abbreviation for Operating System.
[0037] The input and output data of the parameter generation program are stored in a memory unit 290.
[0038] Main memory acts as the storage unit. However, storage devices, such as auxiliary memory, a register in the processor, and a cache in the processor, can act as the storage unit instead of main memory or in conjunction with main memory.
[0039] The parameter generation program can be recorded (stored) in a computer-readable format on a non-volatile recording medium such as an optical disk or flash memory.
[0040] Based on Fig. Section 3 describes a configuration of the key generation device 300.
[0041] The key generation device 300 is a computer comprising hardware components such as a processor 301, a memory 302, an auxiliary storage device 303, a communication device 304, and an input / output interface 305. These hardware components are interconnected via signal lines.
[0042] The key generation unit 300 communicates via the communication unit 304.
[0043] The input and output of the key generation device 300 is via the input / output interface 305.
[0044] The key generation device 300 comprises elements such as a receiving unit 310, an internal key generation unit 321, an external key generation unit 322, and an output unit 330. These elements are implemented by software.
[0045] The auxiliary storage device 303 stores a key generation program that causes the computer to operate as the receiving unit 310, the internal key generation unit 321, the external key generation unit 322, and the output unit 330. The key generation program is loaded into the main memory 302 and executed by the processor 301.
[0046] The 301 processor executes the key generation program while running the OS.
[0047] The input and output data of the key generation program are stored in a storage unit 390.
[0048] The key generation program can be recorded (stored) in a computer-readable format on a non-volatile recording medium such as an optical disk or flash memory.
[0049] The configuration of the encryption device 400 is based on: Fig. 4 described.
[0050] The encryption device 400 is a computer comprising hardware components such as a processor 401, a memory 402, an auxiliary storage device 403, a communication device 404, and an input / output interface 405. These hardware components are interconnected via signal lines.
[0051] The communication between the encryption device 400 and the communication device 404 is carried out by the communication device 404.
[0052] The input and output of the encryption device 400 is via the input / output interface 405.
[0053] The encryption device 400 comprises elements such as a receiving unit 410, an encryption unit 420, and an output unit 430. These elements are implemented by software.
[0054] The additional storage device 403 also stores an encryption program to cause the computer to operate as the receiving unit 410, the encryption unit 420, and the output unit 430. The encryption program is loaded into the main memory 402 and executed by the processor 401.
[0055] The 401 processor executes the encryption program while running the OS.
[0056] The input and output data of the encryption program are stored in a storage unit 490.
[0057] The encryption program can be recorded (stored) in a computer-readable format on a non-volatile recording medium, such as an optical disc or flash memory.
[0058] Based on Fig. Section 5 describes a configuration of the re-encryption key generation device 500.
[0059] The re-encryption key generation device 500 is a computer comprising hardware components such as a processor 501, a memory 502, an auxiliary storage device 503, a communication device 504, and an input / output interface 505. These hardware components are interconnected via signal lines.
[0060] The communication between the re-encryption key generation device 500 and the communication device 504 takes place.
[0061] The input and output of the re-encryption key generation device 500 is via the input / output interface 505.
[0062] The re-encryption key generation device 500 comprises elements such as a receiving unit 510, a re-encryption key generation unit 520, and an output unit 530. These elements are implemented by software.
[0063] The auxiliary storage device 503 stores a re-encryption key generation program that causes the computer to operate as the receiving unit 510, the re-encryption key generation unit 520, and the output unit 530. The re-encryption key generation program is loaded into memory 502 and executed by processor 501.
[0064] The 501 processor executes the re-encryption key generation program while running the OS.
[0065] The input and output data of the re-encryption key generation program are stored in a 590 memory unit.
[0066] The re-encryption key generation program can be recorded (stored) in a computer-readable format on a non-volatile recording medium such as an optical disk or flash memory.
[0067] A configuration of the re-encryption device 600 is performed using the following: Fig. 6 described.
[0068] The re-encryption device 600 is a computer comprising hardware components such as a processor 601, a memory 602, an auxiliary storage device 603, a communication device 604, and an input / output interface 605. These hardware components are interconnected via signal lines.
[0069] The communication between the re-encryption device 600 and the communication device 604 is carried out.
[0070] The input and output of the re-encryption device 600 is via the input / output interface 605.
[0071] The re-encryption device 600 comprises elements such as a receiving unit 610, a re-encryption unit 620, and an output unit 630. These elements are implemented by software.
[0072] The additional storage device 603 also stores a re-encryption program to cause the computer to operate as the receiving unit 610, the re-encryption unit 620, and the output unit 630. The re-encryption program is loaded into the main memory 602 and executed by the processor 601.
[0073] The 601 processor executes the re-encryption program while running the OS.
[0074] The input and output data of the re-encryption program are stored in a storage unit 690.
[0075] The re-encryption program can be recorded (stored) in a computer-readable format on a non-volatile recording medium, such as an optical disc or flash memory.
[0076] A configuration of the 700 decryption device is based on Fig. 7 described.
[0077] The decryption device 700 is a computer comprising hardware components such as a processor 701, a main memory 702, an auxiliary storage device 703, a communication device 704, and an input / output interface 705. These hardware components are interconnected via signal lines.
[0078] The communication between the decryption device 700 and the communication device 704 is carried out.
[0079] The input and output of the decryption device 700 is via the input / output interface 705.
[0080] The decryption device 700 comprises elements such as a receiving unit 710, a decryption unit 720, and an output unit 730. These elements are implemented by software.
[0081] The auxiliary storage device 703 stores a decryption program to cause the computer to operate as the receiving unit 710, the decryption unit 720, and the output unit 730. The decryption program is loaded into the main memory 702 and executed by the processor 701.
[0082] The 701 processor executes the decryption program while running the OS.
[0083] The input and output data of the decryption program are stored in a 790 memory unit.
[0084] The decryption program can be recorded (stored) in a computer-readable format on a non-volatile recording medium, such as an optical disc or flash memory. *** Description of the company ***
[0085] An operational sequence of encryption system 100 is equivalent to an encryption procedure. Furthermore, the operational sequence of encryption system 100 corresponds to a processing sequence by the encryption program.
[0086] The operating sequence of the parameter generation device 200 is equivalent to a parameter generation procedure. Furthermore, the operating sequence of the parameter generation device 200 is equivalent to a processing sequence by the parameter generation program.
[0087] An operational sequence of the key generation device 300 is equivalent to a key generation procedure. Furthermore, the operational sequence of the key generation device 300 is equivalent to a processing sequence by the key generation program.
[0088] An operational sequence of the encryption device 400 is equivalent to an encryption procedure. Furthermore, the operational sequence of the encryption device 400 is equivalent to a processing sequence by the encryption program.
[0089] An operational sequence of the re-encryption key generation device 500 is equivalent to a re-encryption key generation procedure. Furthermore, the operational sequence of the re-encryption key generation device 500 is equivalent to a processing sequence by the re-encryption key generation program.
[0090] An operational sequence of the re-encryption device 600 is equivalent to a re-encryption procedure. Furthermore, the operational sequence of the re-encryption device 600 is equivalent to a processing sequence by the re-encryption program.
[0091] An operational sequence of the decryption device 700 is equivalent to a decryption procedure. Furthermore, the operational sequence of the decryption device 700 is equivalent to a processing sequence by the decryption program.
[0092] The encryption process includes the parameter generation process, the key generation process, the encryption process, the re-encryption key generation process, the re-encryption process, and the decryption process.
[0093] The encryption program includes the parameter generation program, the key generation program, the encryption program, the re-encryption key generation program, the re-encryption program, and the decryption program.
[0094] The following relationships apply to the encryption method. M=DEC(SK,C) RANDM(R, M)=DEC(RANDSKEY(R, SK), C)=DEC(SK, RANDCT(R, C))
[0095] "DEC" stands for a decryption algorithm for public-key encryption. For example, M=DEC(SK, C) means the output of a plaintext M using a secret key SK and a ciphertext C as inputs.
[0096] "RANDM" stands for a plaintext randomization algorithm. RANDM(R, M) means that the plaintext M is randomized, for example, with a random number R.
[0097] "RANDSKEY" stands for a key randomization algorithm. RANDSKEY(R, SK) means that the secret key SK is randomized, for example, using the random number R.
[0098] "RANDCT" stands for a ciphertext randomization algorithm. RANDCT(R, C) means that the ciphertext C is randomized, for example, using the random number R.
[0099] Based on the Fig. 8 and Fig. Section 9 describes the parameter generation procedure.
[0100] Fig. Figure 8 illustrates a functional configuration of the parameter generation unit 200.
[0101] Fig. Figure 9 shows a flowchart of the parameter generation process.
[0102] In step S210, the receiving unit 210 receives a key length K. The key length K specifies a bit length.
[0103] An administrator enters the key length K into the parameter generation unit 200, and the receiving unit 210 receives, for example, the entered key length K.
[0104] The key length K is information for generating a common parameter PARAM and eventually becomes part of the common parameter PARAM.
[0105] In step S220, the parameter generation unit 220 generates the common parameter PARAM.
[0106] The common parameter PARAM is a parameter that serves as the basis for calculations in the encryption process. In other words, the common parameter PARAM is a parameter used for encryption. An example of the common parameter PARAM is an elliptic curve parameter used for encryption with elliptic curves.
[0107] The parameter generation unit 220 generates a random number and, for example, generates the common parameter PARAM based on the random number.
[0108] In step S230, output unit 230 outputs the common parameter PARAM.
[0109] Output unit 230 sends the common parameter PARAM, for example, to the multitude of key generation units 300. Output unit 230 can also send the common parameter PARAM to the multitude of key generation units 300, the multitude of encryption units 400, the re-encryption key generation unit 500, the re-encryption unit 600, and the decryption unit 700.
[0110] The common parameter PARAM can be delivered to each institution via a manual method, such as by mail.
[0111] Based on the Fig. 10 and Fig. Section 11 describes the key generation process.
[0112] Fig. Figure 10 illustrates a functional configuration of the Key Generation Unit 300.
[0113] A key generation device 320 includes elements such as the internal key generation unit 321 and the external key generation unit 322.
[0114] The output unit 330 includes elements such as a public key setting unit 331, a public key output unit 332, a secret key setting unit 333, and a secret key output unit 334.
[0115] Fig. shows a flowchart of the key generation method.
[0116] Each of the 300 key generation facilities implements the key generation process.
[0117] In step S310, the receiving unit 310 receives the common parameter PARAM.
[0118] The receiving unit 310 receives the common parameter PARAM, which is sent, for example, by the parameter generation unit 200.
[0119] In step S321, the internal key generation unit 321 generates an internal key pair using the common parameter PARAM.
[0120] The internal key pair is a pair consisting of an internal public key PK2 and an internal secret key SK2.
[0121] The internal public key PK2 is a public key used for internal encryption.
[0122] The internal secret key SK2 is a secret key used for internal encryption.
[0123] Internal encryption means internal encryption (first-level encryption, first-round encryption and preliminary encryption) with double encryption.
[0124] The internal key pair (PK2, SK2) is represented as follows. (PK2,SK2)=KG2(PARAM)
[0125] "KG2" stands for a key generation algorithm for public key encryption (PKE).
[0126] When the key generation algorithm KG2 is executed using the common parameter PARAM as input, the key generation algorithm KG2 outputs the internal key pair (PK2, SK2).
[0127] In step S322, the external key generation unit 322 generates an external key pair using the common parameter PARAM.
[0128] The external key pair is a pair consisting of an external public key PK1 and an external secret key SK1.
[0129] The external public key PK1 is a public key used for external encryption.
[0130] The external secret key SK1 is a secret key used for external encryption.
[0131] External encryption means external encryption (encryption at the second level, encryption in the second round and subsequent encryption) with double encryption.
[0132] The external key pair (PK1, SK1) is represented as follows. (PK1,SK1)=KG1(PARAM)
[0133] “KG1” stands for a key generation algorithm for public key encryption.
[0134] When the key generation algorithm KG1 is executed using the common parameter PARAM as input, the key generation algorithm KG1 outputs the external key pair (PK1, SK1).
[0135] The key generation algorithm KG1 can be the same as the key generation algorithm KG2 or it can be different from the key generation algorithm KG2.
[0136] Steps S321 and S322 can be performed in reverse order or simultaneously.
[0137] In step S330, the output unit 330 outputs information about the public key PK and information about the secret key SK.
[0138] The output unit 330 sends the information about the public key PK, for example, to the encryption unit 400 or to the re-encryption key generation unit 500.
[0139] The output unit 330 sends the information about the secret key SK, for example, to the re-encryption key generation unit 500 and the decryption unit 700.
[0140] The information for the public key PK includes the common parameter PARAM, the internal public key PK2, and the external public key PK1.
[0141] The information for the secret key SK includes the common parameter PARAM, the internal secret key SK2, and the external secret key SK1.
[0142] The information about the public key PK and the information about the secret key SK are presented as follows. PK=(PARAM, PK2, PK1) SK=(PARAM, SK2, SK1)
[0143] The information about the public key PK and the information about the secret key SK are displayed as follows.
[0144] The public key setting unit 331 generates the information for the public key PK using the common parameter PARAM, the internal public key PK2, and the external public key PK1. The public key output unit 332 outputs the information for the public key PK.
[0145] The secret key setting unit 333 generates the information for the secret key SK using the common parameter PARAM, the internal secret key SK2, and the external secret key SK1. The secret key output unit 334 outputs the information for the secret key SK.
[0146] The public key (PK) and private key (SK) information cannot each contain the common parameter PARAM. In such a case, the common parameter PARAM is sent from parameter generation facility 200 to each facility, for example.
[0147] Based on the Fig. 12 and Fig. Section 13 describes the encryption method.
[0148] Fig. Figure 12 illustrates a functional configuration of the encryption device 400.
[0149] The receiving unit 410 includes elements such as a key receiving unit 411 and a plaintext receiving unit 412.
[0150] The encryption unit 420 includes elements such as an internal encryption unit 421 and an external encryption unit 422.
[0151] Fig. Figure 13 shows a flowchart of the encryption process.
[0152] Each of the numerous encryption devices 400 implements the encryption method.
[0153] In step S411, the key receiving unit 411 receives the information about the public key PK.
[0154] The key receiving unit 411 receives the information on the public key PK, which is sent, for example, by one of the key generation units 300.
[0155] In step S412, the plaintext receiver 412 receives the plaintext M.
[0156] A user enters the plaintext M into the encryption device 400, and the plaintext receiving unit 412 receives, for example, the entered plaintext M.
[0157] Steps S411 and S412 can be performed in reverse order or simultaneously.
[0158] In step S421, the internal encryption unit 421 encrypts the plaintext M with the internal public key PK2. The ciphertext generated in this way is called the internal ciphertext C2.
[0159] The internal encryption unit 421 can generate a random number and use that random number for encryption.
[0160] The internal ciphertext C2 is represented as follows. C2=ENC2(PK2, M)
[0161] "ENC2" stands for a public key encryption algorithm.
[0162] When the encryption algorithm ENC2 is executed using the internal public key PK2 and the plaintext M as inputs, the encryption algorithm ENC2 outputs the internal ciphertext C2.
[0163] In step S422, the external encryption unit 422 encrypts the internal ciphertext C2 with the external public key PK1. The ciphertext generated in this way is called the external ciphertext C1.
[0164] The external encryption unit 422 can generate a random number and use that random number for encryption.
[0165] The external ciphertext C1 is represented as follows. C1=ENC1(PK1, C1)
[0166] "ENC1" stands for a public key encryption algorithm.
[0167] When the encryption algorithm ENC1 is executed using the external public key PK1 and the internal ciphertext C2 as inputs, the encryption algorithm ENC1 outputs the external ciphertext C1.
[0168] The encryption algorithm ENC1 can be the same as the encryption algorithm ENC2 or different from the encryption algorithm ENC2.
[0169] In step S430, the output unit 430 outputs the external ciphertext C1 as the ciphertext C for the plaintext M.
[0170] The output unit 430 sends the ciphertext C, for example, to the re-encryption unit 600 and the decryption unit 700.
[0171] Based on the Fig. 14 and Fig. Section 15 describes the re-encryption key generation procedure.
[0172] Fig. Figure 14 illustrates a functional configuration of the re-encryption key generation device 500.
[0173] The receiver unit 510 includes elements such as a public key receiver unit 511 and a secret key receiver unit 512.
[0174] Fig. shows a flowchart of the re-encryption key generation process.
[0175] In step S511, the public key receiver 511 receives the information about the public key PK'.
[0176] The information about the public key PK' is the information about the public key PK at the re-encryption target.
[0177] The public key receiver 511 receives the information about the public key PK, which is sent, for example, by the key generation unit 300, the re-encryption target.
[0178] The external public key PK1, which is contained in the information about the public key PK', is referred to as external public key PK'1.
[0179] The internal public key PK2, which is contained in the information about the public key PK', is referred to as an internal public key PK'2.
[0180] In step S512, the secret key receiver 512 receives information about the secret key SK'.
[0181] The information about the secret key SK' is the information about the secret key SK at a re-encryption source.
[0182] The secret key receiver 512 receives the information on the secret key SK, which is sent, for example, by the key generation unit 300, which is the re-encryption source.
[0183] The external secret key SK1, which is contained in the information for the secret key SK', is referred to as the external secret key SK'1.
[0184] The internal secret key SK2, which is contained in the information on the secret key SK', is referred to as internal secret key SK'2.
[0185] Steps S511 and S512 can be performed in reverse order or simultaneously.
[0186] In step S521, the re-encryption key generation unit 520 generates a random number R2.
[0187] The re-encryption key generation unit 520 then encrypts the random number R2 using the internal public key PK'2. The encrypted random number generated in this way is called the encrypted random number C2'_R.
[0188] The encrypted random number C2'_R is represented as follows. C2'_R=ENC2(PK'2, R2)
[0189] When the encryption algorithm ENC2 is executed using the internal public key PK'2 and the random number R2 as inputs, the encryption algorithm ENC2 outputs the encrypted random number C2'_R.
[0190] Furthermore, the re-encryption key generation unit 520 randomizes the internal secret key SK'2 using the random number R2. The randomized secret key generated in this way is called the randomized secret key SK2_R2.
[0191] The randomized secret key SK2_R2 is represented as follows. SK2_R2=RANDSKEY(SK'2, R2)
[0192] "RANDSKEY" stands for a key randomization algorithm. This algorithm randomizes a key, for example by multiplying a random number by the key.
[0193] When the key randomization algorithm RANDSKEY is executed using the internal secret key SK'2 and the random number R2 as inputs, the key randomization algorithm RANDSKEY outputs the randomized secret key SK2_R2.
[0194] In step S522, the re-encryption key generation unit 520 generates a random number R1.
[0195] The re-encryption key generation unit 520 then encrypts the random number R1 using the external public key PK'1. The encrypted random number generated in this way is called the encrypted random number C1'_R.
[0196] The encrypted random number C1'_R is represented as follows. C1'_R=ENC2(PK'1, R1)
[0197] When the encryption algorithm ENC2 is executed using the internal public key PK'1 and the random number R1 as inputs, the encryption algorithm ENC2 outputs the encrypted random number C1'_R.
[0198] Furthermore, the re-encryption key generation unit 520 randomizes the internal secret key SK'1 using the random number R1. The randomized secret key generated in this way is called the randomized secret key SK1_R1.
[0199] The randomized secret key SK1_R2 is represented as follows. SK1_R1=RANDSKEY(SK'1, R1)
[0200] When the key randomization algorithm RANDSKEY is executed using the internal secret key SK'1 and the random number R1 as inputs, the key randomization algorithm RANDSKEY outputs the randomized secret key SK1_R1.
[0201] Steps S521 and S522 can be performed in reverse order or simultaneously.
[0202] In step S530, the output unit 530 outputs a re-encryption key RK.
[0203] The output unit 530 sends the re-encryption key RK, for example, to the re-encryption device 600.
[0204] The re-encryption key RK is represented as follows. RK=(C2'_R,C1'_R,SK2_R2,SK1_R1)
[0205] Based on the Fig. 16 and Fig. Section 17 describes the re-encryption procedure.
[0206] Fig. Figure 16 illustrates a functional configuration of the re-encryption device 600.
[0207] The receiving unit 610 includes elements such as a ciphertext receiving unit 611 and a re-encryption key receiving unit 612.
[0208] Fig. Figure 17 shows a flowchart of the re-encryption procedure.
[0209] In step S611, the ciphertext receiver 611 receives the ciphertext C.
[0210] The ciphertext receiver 611 receives the ciphertext C, which is sent, for example, by one of the encryption devices 400.
[0211] In step S612, the re-encryption key receiver unit 612 receives the re-encryption key RK.
[0212] The re-encryption key receiving unit 612 receives the re-encryption key RK, which is sent, for example, by the re-encryption key generation unit 500.
[0213] Steps S611 and S612 can be performed in reverse order or simultaneously.
[0214] In step S621, the re-encryption unit 620 decrypts the ciphertext C using the randomized secret key SK1_R1. The decryption text obtained in this way is called decryption text RCT1.
[0215] The decryption text RCT1 is represented as follows. RCT1=DEC1(SK1_R1,C)=RANDCT(R1,ENC2(PK2,M))
[0216] “DEC1” stands for a decryption algorithm for public key encryption.
[0217] When the decryption algorithm DEC1 is executed using the randomized secret key SK1_R1 and the ciphertext C as inputs, the decryption algorithm DEC1 outputs the decryptiontext RCT1.
[0218] "RANDCT" stands for ciphertext randomization algorithm. A ciphertext randomization algorithm is an algorithm that uses a random number to randomize a ciphertext.
[0219] Furthermore, the re-encryption unit 620 decrypts the decryption text RCT1 using the randomized secret key SK2_R1. The decryption text obtained in this way is referred to as decryption text RM.
[0220] The decryption text RM is displayed as follows. RM=DEC1(SK2_R2,RCT1)=RANDCT(R1,RANDCT(R2,M))
[0221] When the decryption algorithm DEC1 is executed using the randomized secret key SK2_R2 and the decryption text RCT1 as inputs, the decryption algorithm DEC1 outputs the decryption text RM.
[0222] In step S622, the re-encryption unit 620 encrypts the decryption text RM using the internal public key PK'2. The ciphertext generated in this way is called ciphertext RM.
[0223] The re-encryption unit 620 then encrypts the ciphertext RM using the external public key PK'1. The ciphertext generated in this way is called ciphertext RC1.
[0224] The ciphertext RC1 is represented as follows. RC1=ENC1(PK'1,ENC2(PK'2,RM))
[0225] In step S630, the output unit 630 outputs a re-encryption text RK.
[0226] The output unit 630 sends the re-encryption text RC, for example, to the decryption unit 700.
[0227] The re-encryption key RC is represented as follows. RC=(RC1,C2'_R,C1'_R)
[0228] Based on the Fig. 18 and Fig. The decryption procedure is described in section 19.
[0229] Fig. Figure 18 illustrates a functional configuration of the Decryption Device 700.
[0230] The receiver unit 710 includes elements such as a key receiver unit 711 and a ciphertext receiver unit 712.
[0231] Fig. Figure 19 shows a flowchart of the decryption process.
[0232] In step S711, the key receiving unit 711 receives information about the secret key SK'.
[0233] The key receiving unit 711 receives the information on the secret key SK, which is sent, for example, by one of the key generating units 300, as the information on the secret key SK'.
[0234] In step S712, the ciphertext receiver 712 receives the ciphertext C1.
[0235] The ciphertext C1 is either the ciphertext C or the re-encryption text RC.
[0236] The ciphertext receiver 712 receives either the ciphertext C, which is sent by the encryption device 400, or the re-encryption text RC, which is sent, for example, by the re-encryption device 600.
[0237] Steps S711 and S712 can be performed in reverse order or simultaneously.
[0238] In step S721, the decryption unit 720 determines the type of ciphertext C1.
[0239] The type of ciphertext C1 is determined based on the size or similar of the ciphertext C1.
[0240] If the ciphertext C1 is the ciphertext C, the process continues with step S722.
[0241] If the ciphertext C1 is the re-encryption text RC, the process continues with step S723.
[0242] In step S722, the decryption unit 720 decrypts the plaintext M from the ciphertext C1 using the external secret key SK'1 and the internal secret key SK'2.
[0243] The plaintext M is represented as follows. M=DEC(SK'2,DEC(SK'1,C1))
[0244] "DEC" stands for a public-key decryption algorithm. This algorithm takes a secret key and a ciphertext as inputs and outputs a decrypted message.
[0245] In step S723, the ciphertext C1 is the re-encryption text RC=(RC1, C2'_R, C1'_R).
[0246] The decryption unit 720 decrypts the random number R2 from the encrypted random number C2'_R using the internal secret key SK'2.
[0247] Furthermore, the decryption unit 720 decrypts the random number R1 from the encrypted random number C2'_R using the external secret key SK'1.
[0248] Furthermore, the decryption unit 720 decrypts the ciphertext RC1 using the external secret key SK'1. The decryption text obtained in this way is referred to as decryption text RC1.
[0249] Furthermore, the decryption unit 720 decrypts the decryption text RM from the decryption text RC1 using the internal secret key SK'2.
[0250] The random number R2, the random number R1 and the decryption text RM are represented as follows. R2=DEC(SK'2,C2'_R) R1=DEC(SK'1,C1'_R) RM=DEC(SK'2,DEC(SK'1,RC1))
[0251] The decryption unit 720 then calculates the plaintext M using the random number R2, the random number R1 and the decryption text RM.
[0252] The plaintext M is calculated by calculating an inverse function of the ciphertext randomization algorithm RANDCT using the random number R2, the random number R1 and the decryption text RM.
[0253] After step S722 or step S723, the process moves on to step S730. In step S730, output unit 730 outputs the plaintext M.***Summary of embodiment 1***
[0254] The encryption system 100 includes the parameter generation device 200, the multiple key generation devices 300, the multiple encryption devices 400, the re-encryption key generation device 500, the re-encryption device 600 and the decryption device 700.
[0255] The parameter generation device 200 generates a commonly used parameter by taking as input a bit length or the like of a key to be used.
[0256] The key generation device 300 generates a public key and a secret key for internal and external encryption by taking the parameter as input.
[0257] The encryption device 400 generates an initial ciphertext using the public key as input.
[0258] The Re-encryption Key Generation Unit 500 generates a re-encryption key by taking a public key at a re-encryption target and a secret key at a re-encryption source as inputs. The re-encryption key serves as the key for converting a ciphertext without decrypting the ciphertext.
[0259] The re-encryption device 600 takes the ciphertext and the re-encryption key as inputs and outputs the newly encrypted ciphertext. In other words, the re-encryption device 600 only modifies the internal public key without decrypting the ciphertext and converts the ciphertext to a ciphertext at a new destination.
[0260] The decryption device 700 takes the ciphertext and the secret key as inputs and outputs a decryption result. *** Effects of embodiment 1 ***
[0261] Embodiment 1 is an embodiment in which a ciphertext is re-encrypted without decrypting the ciphertext. A different key is used for the re-encryption.
[0262] Embodiment 1 is an embodiment relating to double encryption. In double encryption, plaintext is first encrypted using method 1 and then encrypted using method 2.
[0263] In embodiment 1, only one key for method 1 is modified. This makes it possible to address various security risks, such as the possibility that only one key for method 2 is compromised.
[0264] In embodiment 1, a method is proposed in which a key for an internal encryption method is modified, while a key for an external encryption method remains unmodified, in the case of double encryption using different encryption methods.
[0265] This improves the security of the double encryption. In particular, it makes it possible to modify the key efficiently and securely.
[0266] In embodiment 1, when a plaintext is encrypted twice, both the secret key used for internal encryption and the secret key used for external encryption are randomized, and a new encryption key is generated.
[0267] This allows for re-encryption without decryption in cases of double encryption. This makes it possible to modify the key in a more secure and efficient way. *** Additions to embodiment 1***
[0268] Based on Fig. Section 20 describes a hardware configuration of the parameter generation device 200.
[0269] The parameter generation unit 200 includes a processing circuit 209.
[0270] The processing circuit 209 is a hardware unit which implements the receiving unit 210, the parameter generation unit 220 and the output unit 230.
[0271] The processing circuit can be dedicated hardware or a processor that executes programs stored in main memory.
[0272] If the processing circuit is the dedicated hardware, then the processing circuit is, for example, a single-circuit board, a compound circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
[0273] ASIC is an abbreviation for Application Specific Integrated Circuit.
[0274] FPGA is an abbreviation for Field Programmable Gate Array.
[0275] The parameter generation unit 200 can alternatively comprise a variety of individual processing circuits instead of the processing circuit 209.
[0276] In the processing circuit, some functions can be implemented by dedicated hardware, and the remaining functions can be implemented by software or firmware.
[0277] In this way, a function of the parameter generation device 200 can be implemented by hardware, software, firmware or a combination thereof.
[0278] The hardware configuration of the Key Generation Unit 300 is determined by Fig. 21 described.
[0279] The key generation device 300 includes a processing circuit 309.
[0280] The processing circuit 309 is a hardware unit that implements the receiving unit 310, the key generation unit 320 and the output unit 330.
[0281] The key generation device 300 can contain a variety of processing circuits as an alternative to the processing circuit 309.
[0282] In this way, a function of the parameter generation device 300 can be implemented by hardware, software, firmware or a combination thereof.
[0283] A hardware configuration of the encryption device 400 is determined based on: Fig. 22 described.
[0284] The encryption device 400 includes a processing circuit 409.
[0285] The processing circuit 409 is a hardware unit that implements the receiving unit 410, the encryption unit 420 and the output unit 430.
[0286] The encryption device 400 can contain a variety of individual processing circuits as an alternative to the processing circuit 409.
[0287] A function of the encryption device 400 can be implemented by hardware, software, firmware or a combination thereof.
[0288] A hardware configuration of the re-encryption key generation device 500 is determined based on Fig. 23 described.
[0289] The re-encryption key generation device 500 includes a processing circuit 509.
[0290] The processing circuit 509 is a hardware unit that implements the receiving unit 510, the re-encryption key generation unit 520, and the output unit 530.
[0291] The re-encryption key generation device 500 can contain a variety of individual processing circuits as an alternative to the processing circuit 509.
[0292] A function of the re-encryption key generation device 500 can be implemented by hardware, software, firmware, or a combination of these.
[0293] A hardware configuration of the re-encryption device 600 is determined based on: Fig. 24 described.
[0294] The re-encryption device 600 includes a processing circuit 609.
[0295] The processing circuit 609 is a hardware component that implements the receiving unit 610, the re-encryption unit 620 and the output unit 630.
[0296] The re-encryption device 600 can contain a variety of individual processing circuits as an alternative to the processing circuit 609.
[0297] A function of the re-encryption device 600 can be implemented by hardware, software, firmware or a combination thereof.
[0298] A hardware configuration of the 700 decryption device is determined based on: Fig. 25 described.
[0299] The decryption device 700 contains a processing circuit 709.
[0300] The 709 processing circuit is a hardware component that implements the 710 receiving unit, the 720 encryption unit, and the 730 output unit.
[0301] The decryption device 700 can contain a variety of individual processing circuits as an alternative to the processing circuit 709.
[0302] A function of the Decryption Device 700 can be implemented by hardware, software, firmware or combinations thereof.
[0303] Embodiment 1 is an example of a preferred embodiment and is not intended to limit the technical scope of this disclosure. Embodiment 1 can be implemented partially or in combination with another embodiment. The processes described in the flowcharts or the like can be modified appropriately.
[0304] “Unit” for each element of each facility in the encryption system 100 can be read or interpreted as “process”, “step”, “circuit” or “circuit”.
[0305] The embodiments of the present disclosure are described below, with the reference numerals used in embodiment 1 indicated in parentheses.
[0306] An encryption system (100) includes: an encryption device (400) to generate a ciphertext (C) by double encryption of a plaintext (M) using a first internal public key (PK2) and a first external public key (PK1); a re-encryption key generation device (500) to generate a randomized internal secret key (SK2_R2) by randomizing a first internal secret key (SK'2) using a second random number (R2), to generate a second encrypted random number (C2'_R) by encrypting the second random number (R2) using a second internal public key (PK'2), to generate a randomized external secret key (SK1_R1) by randomizing a first external secret key (SK'1) using a first random number (R1), and to generate a first encrypted random number (C1'_R) by encrypting the first random number (R1) using a second external public key (PK'1); a re-encryption device (600) to obtain a randomized decryption text (RM) by decrypting the ciphertext (C) using the randomized external secret key (SK1_R1) and the randomized internal secret key (SK2_R2), and to generate a re-encrypted text (RC1) by encrypting the randomized decryption text (RM) using the second internal public key (PK'2) and the second external public key (PK'1); and a decryption device (700) to decrypt the second random number (R2) from the second encrypted random number (C2'_R) using the second internal secret key (SK'2), to decrypt the first random number (R1) from the first encrypted random number (C1'_R) using the second external secret key (SK'1), to decrypt the randomized decryption text (RM) from the newly encrypted text (RC1) using the second external secret key (SK'1) and the second internal secret key (SK'2), and to compute the plaintext (M) using the randomized decryption text (RM), the second random number (R2) and the first random number (R1). Reference symbol list
[0307] 100: Encryption system; 101: Network; 200: Parameter generation device; 201: Processor; 202: Main memory; 203: Auxiliary memory device; 204: Communication device; 205: Input / output interface; 209: Processing circuit; 210: Receiver; 220: Parameter generation device; 230: Output device; 290: Storage device; 300: Key generation device; 301: Processor; 302: Main memory; 303: Auxiliary memory device; 304: Communication device; 305: Input / output interface; 309: Processing circuit; 310: Receiver; 320: Key generation device; 321: Internal key generation device; 322: External key generation device; 330: Output device; 331: Public key setting unit; 332: Public key output unit; 333: Secret key setting unit; 334: Secret key output unit; 390: Storage unit; 400: Encryption unit; 401: Processor; 402: Memory;403: Auxiliary storage device; 404: Communication device; 405: Input / output interface; 409: Processing circuit; 410: Receiver; 411: Key receiver; 412: Plaintext receiver; 420: Encryption device; 421: Internal encryption device; 422: External encryption device; 430: Output device; 490: Storage device; 500: Re-encryption key generator; 501: Processor; 502: Memory; 503: Auxiliary storage device; 504: Communication device; 505: Input / output interface; 509: Processing circuit; 510: Receiver; 511: Public key receiver; 512: Secret key receiver; 520: Re-encryption key generator; 530: Output unit; 590: Storage unit; 600: Re-encryption unit; 601: Processor; 602: Main memory; 603: Auxiliary memory unit; 604: Communication unit; 605: Input / output interface; 609: Processing circuit;610: Receiver unit; 611: Ciphertext receiver unit; 612: Re-encryption key receiver unit; 620: Re-encryption unit; 630: Output unit; 690: Storage unit; 700: Decryption unit; 701: Processor; 702: Memory; 703: Auxiliary memory unit; 704: Communication unit; 705: Input / output interface; 709: Processing circuit; 710: Receiver unit; 711: Key receiver unit; 712: Ciphertext receiver unit; 720: Decryption unit; 730: Output unit; 790: Storage unit. QUOTES INCLUDED IN THE DESCRIPTION
[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited non-patent literature
[0000] Achieving Flexibility for ABE with Outsourcing via Proxy Re-Encryption, Asiaccs'18, June 4-8, 2018, Incheon, Republik
[0005]
