IP Library › Granted Patent US 12,580,732
Granted Patent B2
US 12,580,732 · App. 18/231,626 · Granted Mar 17, 2026

Encryption device, decryption device, encryption method, decryption method, and computer readable medium

Inventor: Yusuke Naito (Tokyo, JP)
Assignee: MITSUBISHI ELECTRIC CORPORATION
H04L9/0618H04L9/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,580,732
App. No.
18/231,626
Granted
Mar 17, 2026
Kind
B2
Abstract

An encryption device divides a plaintext M to generate a value M[1], . . . , and a value M[m]. The encryption device generates an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , m in ascending order, generates a value C[i] from the value B[i] and a value M[i], and generates an n-bit value T[i] from a value P(T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F(B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i]. The encryption device generates a ciphertext C by connecting the values C[i] for i=1, . . . , m. The encryption device generates from a value H[m] and the value B[m], an authenticator Tag for detecting an alteration of the ciphertext C.

Claims (64)

1 . An encryption device comprising:

processing circuitry:

to sequentially divide a plaintext M into each n bits to generate a value M[1], . . . , and a value M[m], wherein m is an integer >=1;

to set an n-bit value Ht to a value T[0] and set an n-bit value Hb to a value B[0], to generate an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , m in ascending order, to generate a value C[i] from the value B[i] and a generated value M[i], and to generate an n-bit value T[i] from a value P (T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F (B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i];

to generate a ciphertext C by connecting the generated values C[i] for i=1, . . . , m; and

to generate from a value T[m] and a value B[m], an authenticator Tag for detecting an alteration of the generated ciphertext C, wherein

the processing circuitry maintains a total memory size of 2n bits as a sum of memory sizes for the value T and the value B, during the generation of the value T[i] using the replacement function P and the value F(B[i]) using the replacement function F.

2 . The encryption device according to claim 1 , wherein

the processing circuitry generates the value C[i] by computing an exclusive OR between the value B[i] and the value M[i] for each integer i of i=1, . . . , m−1 in ascending order, and generates a value C[m] by computing an exclusive OR between the value M[m] and a value B′[m] obtained by extracting only a bit length |M[m] | of the value M[m] from a value R(B[m]) obtained by converting the value B[m] using a replacement function R.

3 . The encryption device according to claim 1 , wherein

the processing circuitry generates an n-bit value B[m+1] by encrypting the value B[m] by the block cipher with the value T[m] as a key, and generates the authenticator Tag from a value P(T[m]) obtained by converting the value T[m] using the replacement function P and a value F(B[m+1]) obtained by converting the value B[m+1] using the replacement function F.

4 . The encryption device according to claim 1 , wherein

the processing circuitry generates an n-bit value B[m+1] by encrypting the value B[m] by the bock cipher with the value T[m] as a key, and sets the value B[m+1] to the authenticator Tag.

5 . The encryption device according to claim 1 , wherein

the processing circuitry sequentially divides a public data A into each 2n bits to generate a value A[1], . . . , and a value A[a], wherein a is an integer >=1, and

sets an n-bit value IVt as a value T*[0] and sets an n-bit value IVb as a value B*[0], generates an n-bit value B*[i] from a value E (B*[i−1]) obtained by encrypting a value B*[i−1] by the block cipher with a value T*[i−1] as a key, and an n-bit value A[i, b] of a value A[i] wherein b is an integer >=1, for each integer i of i=1, . . . , a−1 in ascending order, generates an n-bit value T*[i] from a value P(T*[i−1]) obtained by converting the value T*[i−1] using the replacement function P, a value F(E(B*[i−1])) obtained by converting the value E(B*[i−1]) using the replacement function F, and a value A[i, t] which is n bits of the value A[i] other than the value A[i, b], and generates the value Ht and the value Hb from a value T*[a−1], a value B*[a−1], and the value A[a].

6 . The encryption device according to claim 5 , wherein

the processing circuitry generates the value Bt from a value Q(E(B*[a−1])) obtained by converting using a replacement function Q, a value E(B*[a−1]) obtained by encrypting the value B*[a−1] by the block cipher with the value T*[a−1] as a key, and an n-bit value A′[a, b] of a 2n-bit value A′[a] obtained by padding the value A[a] with bits, and generates the value Ht from a value F(Q(E(B*[a−1]))) obtained by converting the value Q(E(B*[a−1])) using the replacement function F, and an n-bit value A′[a, t] of the value A′[a] other than the value A′[a, b], wherein t is an integer >=1.

7 . The encryption device according to claim 5 , wherein

the processing circuitry generates the value IVb from a value E(N) obtained by encrypting an n-bit nonce N by a block cipher E using an n-bit key K, and a value id depending on the public data A and the plaintext M, and generates the value IVt from a value P(K) obtained by converting the key K using the replacement function P and a value F(E[N]) obtained by converting the value E(N) using the replacement function F.

8 . A decryption device comprising:

processing circuitry:

to sequentially divide a ciphertext C into each n bits to generate a value C[1], . . . , and a value C[c], wherein c is an integer >=1;

to set an n-bit value Ht to a value T[0] and set an n-bit value Hb to a value B[0], to generate an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , c in ascending order, to generate a value M[i] from the value B[i] and a generated value C[i], and to generate an n-bit value T[i] from a value P(T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F (B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i];

to generate a plaintext M by connecting the generated values M[i] for i=1, . . . , c; and

to generate from a value T[c] and a value B[c], an authenticator Tag′ for detecting an alteration of the generated plaintext M, wherein

the processing circuitry maintains a total memory size of 2n bits as a sum of memory sizes for the value T and the value B, during the generation of the value T[i] using the replacement function P and the value F(B[i]) using the replacement function F.

9 . The decryption device according to claim 8 , wherein

the processing circuitry generates the value M[i] by computing an exclusive OR between the value B[i] and the value C[i] for each integer i of i=1, . . . , c−1 in ascending order, and generates a value M[c] by computing an exclusive OR between the value C[c] and a value B′[c] obtained by extracting only a bit length |C[c]| of the value C[c] from a value R(B[c]) obtained by converting the value B[c] using a replacement function R.

10 . The decryption device according to claim 8 , wherein

the processing circuitry generates an n-bit value B[c+1] by encrypting the value B[c] by the block cipher with the value T[c] as a key, and generates the authenticator Tag′ from a value P(T[c]) obtained by converting the value T[c] using the replacement function P, and a value F(B[c+1]) obtained by converting the value B[c+1] using the replacement function F.

11 . The decryption device according to claim 8 , wherein

the processing circuitry generates an n-bit value B[c+1] by encrypting the value B[c] by the bock cipher with the value T[c] as a key, and sets the value B[c+1] to the authenticator Tag′.

12 . The decryption device according to claim 8 , wherein

the processing circuitry sequentially divides a public data A into each 2n bits to generate a value A[1], . . . , and a value A[a], wherein a is an integer >=1, and

sets an n-bit value IVt as a value T*[0] and sets an n-bit value IVb as a value B*[0], generates an n-bit value B*[i] from a value E(B*[i−1]) obtained by encrypting a value B*[i−1] by the block cipher with a value T*[i−1] as a key, and an n-bit value A[i, b] of a value A[i] wherein b is an integer >=1, for each integer i of i=1, . . . , a−1 in ascending order, generates an n-bit value T*[i] from a value P(T*[i−1]) obtained by converting the value T*[i−1] using the replacement function P, a value F(E(B*[i−1])) obtained by converting the value E(B*[i−1]) using the replacement function F, and a value A[i, t] which is n bits of the value A[i] other than the value A[i, b], wherein tis an integer >=1, and generates the value Ht and the value Hb from a value T*[a−1], a value B*[a−1], and the value A[a].

13 . The decryption device according to claim 12 , wherein

the processing circuitry generates the value Bt from a value Q(E (B*[a−1])) obtained by converting using a replacement function Q, a value E(B*[a−1]) obtained by encrypting the value B*[a−1] by the block cipher with the value T*[a−1] as a key, and an n-bit value A′[a, b] of a 2n-bit value A′[a] obtained by padding the value A[a] with bits, and generates the value Ht from a value F(Q(E(B*[a−1]))) obtained by converting the value Q(E(B*[a−1])) using the replacement function F, and an n-bit value A′[a, t] of the value A′[a] other than the value A′[a, b].

14 . The decryption device according to claim 12 , wherein

the processing circuitry generates the value IVb from a value E(N) obtained by encrypting an n-bit nonce N by a block cipher E using an n-bit key K, and a value id depending on the public data A and the plaintext M, and generates the value IVt from a value P(K) obtained by converting the key K using the replacement function P and a value F(E[N]) obtained by converting the value E(N) using the replacement function F.

15 . An encryption method comprising:

sequentially dividing a plaintext M into each n bits to generate a value M[1], . . . , and a value M[m], wherein m is an integer >=1;

setting an n-bit value Ht to a value T[0] and setting an n-bit value Hb to a value B[0], generating an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , m in ascending order, generating a value C[i] from the value B[i] and a value M[i], and generating an n-bit value T[i] from a value P (T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F(B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i];

generating a ciphertext C by connecting the values C[i] for i=1, . . . , m; and

generating from a value T[m] and a value B[m], an authenticator Tag for detecting an alteration of the ciphertext C, wherein

the encryption method further comprises maintaining a total memory size of 2n bits as a sum of memory sizes for the value T and the value B, during the generation of the value T[i] using the replacement function P and the value F(B[i]) using the replacement function F.

16 . A non-transitory computer readable medium storing an encryption program for causing a computer to function as an encryption device to execute:

a division process to sequentially divide a plaintext M into each n bits to generate a value M[1], . . . , and a value M[m], wherein m is an integer >=1;

an encryption element generation process to set an n-bit value Ht to a value T[0] and set an n-bit value Hb to a value B[0], to generate an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , m in ascending order, to generate a value C[i] from the value B[i] and a value M[i] generated by the division process, and to generate an n-bit value T[i] from a value P (T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F(B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i];

a ciphertext generation process to generate a ciphertext C by connecting the values C[i] for i=1, . . . , m generated by the encryption element generation process; and

an authenticator generation process to generate from a value T[m] and a value B[m], an authenticator Tag for detecting an alteration of the ciphertext C generated by the ciphertext generation process, wherein

the encryption program causes the computer to further execute the encryption element generation process to maintain a total memory size of 2n bits as a sum of memory sizes for the value T and the value B, during the generation of the value T[i] using the replacement function P and the value F(B[i]) using the replacement function F.

17 . A decryption method comprising:

sequentially dividing a ciphertext C into each n bits to generate a value C[1], . . . , and a value C[c], wherein c is an integer >=1;

setting an n-bit value Ht to a value T[0] and setting an n-bit value Hb to a value B[0], generating an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , c in ascending order, generating a value M[i] from the value B[i] and a value C[i], and generating an n-bit value T[i] from a value P (T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F (B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i];

generating a plaintext M by connecting the values M[i] for i=1, . . . , c; and

generating from a value T[c] and a value B[c], an authenticator Tag′ for detecting an alteration of the plaintext M, wherein

the decryption method further comprises maintaining a total memory size of 2n bits as a sum of memory sizes for the value T and the value B, during the generation of the value T[i] using the replacement function P and the value F (B[i]) using the replacement function F.

18 . A non-transitory computer readable medium storing a decryption program for causing a computer to function as a decryption device to execute:

a division process to sequentially divide a ciphertext C into each n bits to generate a value C[1], . . . , and a value C[c], wherein c is an integer >=1;

a plaintext element generation process to set an n-bit value Ht to a value T[0] and set an n-bit value Hb to a value B[0], to generate an n-bit value B[i] by encrypting a value B[i−1] by a block cipher with a value T[i−1] as a key, for each integer i of i=1, . . . , c in ascending order, to generate a value M[i] from the value B[i] and a value C[i] generated by the division process, and to generate an n-bit value T[i] from a value P(T[i−1]) obtained by converting the value T[i−1] using a replacement function P, a value F(B[i]) obtained by converting the value B[i] using a replacement function F, and the value C[i];

a plaintext generation process to generate a plaintext M by connecting the values M[i] for i=1, . . . , c generated by the plaintext element generation process; and

an authenticator generation process to generate from a value T[c] and a value B[c], an authenticator Tag′ for detecting an alteration of the plaintext M generated by the plaintext generation process, wherein

the decryption program causes the computer to further execute the plaintext element generation process to maintain a total memory size of 2n bits as a sum of memory sizes for the value T and the value B, during the generation of the value T[i] using the replacement function P and the value F(B[i]) using the replacement function F.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 9, 2023
From: NAITO, YUSUKE
To: MITSUBISHI ELECTRIC CORPORATION
Reel/Frame 064542/0773 →
Continuity (2)
Continuation PCTJP2021015013 · Apr 9, 2021
Related Publication 20230388103A1 · Nov 30, 2023
References Cited (20)
US 10587406B1 · Levin · 2020 [cited by examiner]
US 11438137B2 · Naito et al. · 2022 [cited by applicant]
US 20060026442A1 · Ittogi · 2006 [cited by applicant]
US 20090138710A1 · Minematsu · 2009 [cited by applicant]
US 20100246809A1 · Noda et al. · 2010 [cited by applicant]
US 20160173276A1 · Minematsu · 2016 [cited by applicant]
US 20180242138A1 · Chen et al. · 2018 [cited by applicant]
US 20200186328A1 · Naito · 2020 [cited by examiner]
US 20210399875A1 · Inoue · 2021 [cited by examiner]
JP 200639206A · 2006 [cited by applicant]
WO WO2007052477A1 · 2007 [cited by applicant]
WO WO2007105709A1 · 2007 [cited by applicant]
WO WO2015015702A1 · 2015 [cited by applicant]
WO WO2017031639A1 · 2017 [cited by applicant]
WO WO2019043921A1 · 2019 [cited by examiner]
Banik et al., “Gift: A Small Present—Towards Reaching the Limit of Lightweight Encryption”, CHES 2017, Lecture Notes in Computer Science, vol. 10529, pp. 321-345. [cited by applicant]
International Search Report for PCT/JP2021/015013 mailed on Jul. 13, 2021. [cited by applicant]
Iwata et al., “Breaking and Repairing GCM Security Proofs”, CRYPTO 2012, Proceedings, Lecture Notes in Computer Science, Springer 2012, vol. 7417, pp. 31-49. [cited by applicant]
Iwata et al., “Duel of the Titans: The Romulus and Remus Families of Lightweight AEAD Algorithms”, ToSC 2020, vol. 2020, No. 1, pp. 43-120. [cited by applicant]
National Institute of Standards and Technology (NIST), Announcing the “Advanced Encryption Standard (AES)”, Federal Information Processing Standards Publication 197, Nov. 26, 2001, total 51 pages. [cited by applicant]