Key Recovery Attack on The Cubic ABC Simple

Improved Attacks for
Characteristic-2 Parameters of
the Cubic ABC Simple Matrix
Encryption Scheme
Dustin Moody, *Ray Perlner, Daniel Smith-Tone
Our Contribution
• Previous key recovery attacks on Ding’s simple matrix encryption scheme
used a MinRank-like linear algebra search
• However, these attacks are less efficient for certain small characteristic fields
• We use new techniques to improve attack complexity for key recovery on
Ding’s simple matrix encryption scheme and its cubic variant
• Cubic
• Dramatic improvement for characteristic 2 parameters
• Small improvement for characteristic 3 parameters
• Quadratic
• Small improvement for characteristic 2 parameters
• Attack complexity is now (nearly) identical for all field characteristics
Outline
• Multivariate Cryptography
• Cubic/Quadratic ABC
• Band Spaces and Band Kernels
• Attack with the Discrete Differential
• Using the Formal Derivative instead
• Conclusion
Multivariate cryptography
• Public key is a system of 𝑚 polynomial equations in 𝑛 varibles over 𝐹𝑞
E.g.
𝑦1 = 2𝑥13 + 𝑥12 𝑥2 + 𝑥22 + 3𝑥1 + 𝑥2 + 1
𝑦2 = 2𝑥12 𝑥2 + 3𝑥1 𝑥22 + 𝑥1 𝑥2 + 4𝑥1
• Plaintext is given by 𝑥𝑖 and ciphertext is given by 𝑦𝑖 .
• Solving multivariate systems of equations is NP hard in general for
polynomials of degree 2 or higher.
• Most schemes use degree 2 polynomials; we will also be considering a degree 3
scheme.
• Private key is some special structure that allows the private-key holder to
solve for 𝑥𝑖 .
• Most known schemes only produce secure signatures; we will be considering an
encryption scheme.
Multivariate Cryptography 2
Butterfly Construction
• In most multivariate schemes (ABC included) the public key is
constructed as:
𝑓𝑝𝑢𝑏 (𝑥) = 𝒯 ∘ 𝑓 ∘ 𝒰(𝑥)
• 𝑓 is an easily invertible Quadratic/Cubic function
• 𝑓 is often defined by identifying (𝐹𝑞 )𝑛 with a larger algebraic structure (e.g. an extension
field like 𝐹𝑞𝑛 .)
• The ABC scheme defines 𝑓 using a matrix algebra over 𝐹𝑞 .
• 𝒯 and 𝒰 are affine maps
• E.g.
𝑢1 = 𝑥1 + 3𝑥2 + 4
𝑢2 = 3𝑥1 + 2𝑥2 + 1
• Singular maps are sometimes used for signatures. Here we use invertible maps.
The ABC Cryptosystem
• Comes in quadratic and cubic variants
• Quadratic (Tao, Diene, Tang, Ding 2013)
• Cubic (Ding, Petzoldt, Wang 2014)
• Parameters
• 𝑞: size of the finite field for the variables
• 𝑠: dimension of matrices used in the
central map
• The2 central map has 𝑠 2 input variables and
2𝑠 output variables.
• Previous attacks
• Quadratic (Moody, Perlner, Smith-Tone 2014)
• 𝑞 𝑠+4 𝑠 2𝜔 for characteristic 2.
• 𝑞 𝑠+2 𝑠 2𝜔 for higher characteristic.
• Cubic (Moody, Perlner, Smith-Tone 2016)
• 𝑞2𝑠+6 𝑠 2𝜔 for characteristic 2.
• 𝑞 𝑠+3 𝑠 2𝜔 for characteristic 3.
• 𝑞 𝑠+2 𝑠 2𝜔 for higher characteristic.
(𝜔 ≈ 2.373 is the linear algebra constant.)
• We improve this to
• 𝑞 𝑠+2 𝑠 6 for Cubic, Characteristic 2
• 𝑞 𝑠+2 𝑠 2𝜔 for everything else
Quadratic ABC: The Core Map
• Central map is 𝑠 2 → 2𝑠 2 function where the equations are grouped as the elements of two
matrices 𝑓 𝑥 = 𝐸1 𝑥 , 𝐸2 𝑥
• 𝑏𝑖 ,𝑐𝑖 are linear functions of 𝑥.
• 𝑝𝑖 = 𝑥𝑖 .
𝐸1 = 𝐴𝐵; 𝐸2 = 𝐴𝐶
• Decryption proceeds by solving:
(𝐴(𝑥))−1 𝐸1 = 𝐵 𝑥
(𝐴(𝑥))−1 𝐸2 = 𝐶 𝑥
for (𝐴(𝑥))−1 and 𝑥. (Linear)
Cubic ABC: The Core Map
• Central map is 𝑠 2 → 2𝑠 2 function where the equations are grouped as the elements of two
matrices 𝑓 𝑥 = 𝐸1 𝑥 , 𝐸2 𝑥
• 𝑏𝑖 ,𝑐𝑖 are linear functions of 𝑥.
• 𝑝𝑖 are quadratic functions of 𝑥.
𝐸1 = 𝐴𝐵; 𝐸2 = 𝐴𝐶
• Decryption proceeds by solving:
(𝐴(𝑥))−1 𝐸1 = 𝐵 𝑥
(𝐴(𝑥))−1 𝐸2 = 𝐶 𝑥
for (𝐴(𝑥))−1 and 𝑥. (Linear)
Special structure of Quadratic ABC
(Row Band Spaces)
𝐴𝐵 = 𝐸1
𝑥
𝑖−1 𝑠+1
𝑥
𝑖−1 𝑠+2
…
𝑥𝑖𝑠
𝑏𝑗
𝑏𝑠+𝑗
⋮
=
𝐸
𝑖−1 𝑠+𝑗
𝑏𝑠2−𝑠+𝑗
• Note that all quadratic monomials in (𝐸
of the 𝑠 variables (𝑥 𝑖−1 𝑠+1 , … , 𝑥𝑖𝑠 )
𝑖−1 𝑠+1 , … , 𝐸𝑖𝑠 )
contain one
Special Structure of Cubic (and Quadratic) ABC
(Column Band Spaces)
𝐴𝐵 = 𝐸1
𝑝
𝑖−1 𝑠+1
𝑝
𝑖−1 𝑠+2
…
𝑝𝑖𝑠
𝑏𝑗
𝑏𝑠+𝑗
⋮
=
𝐸
𝑖−1 𝑠+𝑗
𝑏𝑠2−𝑠+𝑗
• Under a basis (𝑢′1 , … 𝑢′ 𝑠2 ) where 𝑢′1 , … 𝑢′ 𝑠 = (𝑏𝑗 (𝑥), 𝑏𝑠+𝑗 (𝑥) … 𝑏𝑠2−𝑠+𝑗 (𝑥)):
• All cubic monomials in column 𝑗 of 𝐸, i.e. (𝐸𝑗 (𝑥), 𝐸𝑠+𝑗 (𝑥) … 𝐸𝑠2−𝑠+𝑗 (𝑥))
contain at least one factor of 𝑢′1 , … 𝑢′ 𝑠
• We will call these 𝑠 equations (and their linear combination) band-space maps
• We will also define the band kernel: The space of vectors 𝑥, such that
(𝑢′1 𝑥 , … , 𝑢′ 𝑠 𝑥 ) = 0
How many band spaces are there:
• Not only do the columns of 𝑬𝟏 = 𝑨𝑩 and 𝑬𝟐 = 𝑨𝑪 define band spaces, but
fixed linear combinations of the columns (𝜷, 𝜸) do as well.
• Band Space:
• Band Kernel:
(𝑥 ∈ ℬ𝒦𝛽,𝛾 )
The Discrete Differential
First Differential
Second Differential
• 𝑫𝒇 𝒙, 𝒂 = 𝒇 𝒙 + 𝒂 − 𝒇 𝒙 − 𝒇 𝒂 + 𝒇 𝟎
• Used to attack quadratic ABC (Moody, Perlner, Smith-Tone 2014)
• Its entries are the (symmetrized) coefficients of
quadratic monomials in 𝒇.
𝑓 𝑥 =
𝑐𝑖𝑗 𝑥𝑖 𝑥𝑗
• 𝑫𝟐 𝒇 𝒂, 𝒃, 𝒙
• Used to attack cubic ABC (Moody, Perlner, Smith-Tone 2016)
• Its entries are the (symmetrized) coefficients of cubic
monomials in 𝒇
𝑓 𝑥 =
𝑖≤𝑗
𝑖≤𝑗≤𝑘
(𝐷2 𝑓)𝑖𝑗 𝑥𝑖 𝑎𝑗 ;
⇒ 𝐷𝑓 𝑥, 𝑎 =
𝑐𝑖𝑗𝑘 𝑥𝑖 𝑥𝑗 𝑥𝑘
⇒ 𝐷2 𝑓 𝑎, 𝑏, 𝑥 =
𝑖,𝑗
𝑐𝑖𝑗 𝑖 ≠ 𝑗
(𝐷2 𝑓)𝑖𝑗 =
2𝑐𝑖𝑗 𝑖 = 𝑗
• 𝑫𝒇 is a 2-tensor: i.e for linear maps/ changes of basis 𝑼:
′
𝑓 𝑥 = 𝑓 𝑈𝑥
⇒ 𝐷𝑓′ 𝑥, 𝑎 = 𝐷𝑓(𝑈𝑥, 𝑈𝑎)
(𝐷2 𝑓)𝑖𝑗𝑘 𝑎𝑖 𝑏𝑗 𝑥𝑘 ;
𝑖,𝑗,𝑘
(𝐷2 𝑓)𝑖𝑗𝑘
𝑐𝑖𝑗𝑘 𝑖 ≠ 𝑗 ≠ 𝑘
= 2𝑐𝑖𝑗𝑘 𝑖 = 𝑗 ≠ 𝑘
6𝑐𝑖𝑗𝑘 𝑖 = 𝑗 = 𝑘
• 𝑫𝟐 𝒇 is a 3-tensor: i.e for linear maps/ changes of basis 𝑼:
𝑓 ′ 𝑥 = 𝑓 𝑈𝑥
⇒ 𝐷2 𝑓′ 𝑎, 𝑏, 𝑥 = 𝐷2 𝑓(𝑈𝑎, 𝑈 𝑏, 𝑈𝑥)
The Differential Form of Band-Space Maps
(𝑢′𝑖 basis)
Quadratic
Cubic
Useful Facts about Band Space Differentials
(in the 𝑢′𝑖 basis)
Quadratic (𝑫𝓔𝜷,𝜸 )
Cubic(𝑫𝟐 𝓔𝜷,𝜸 )
• For two vectors 𝑤1 , 𝑤2 ∈ ℬ𝒦𝛽,𝛾 :
𝐷ℰ𝛽,𝛾 𝑤1 , 𝑤2 = 0
• For three vectors 𝑤1 , 𝑤2 , 𝑤3 ∈ ℬ𝒦𝛽,𝛾 :
𝐷 2 ℰ𝛽,𝛾 𝑤1 , 𝑤2 , 𝑤3 = 0
• For one vector, 𝑤1 ∈ ℬ𝒦𝛽,𝛾 :
𝐷ℰ𝛽,𝛾 𝑤1 = (𝑦 𝑢′1 , … , 𝑦 𝑢′ 𝑠 , 0, … , 0)
• For two vectors 𝑤1 , 𝑤2 ∈ ℬ𝒦𝛽,𝛾 :
𝐷 2 ℰ𝛽,𝛾 𝑤1 , 𝑤2 = (𝑦 𝑢′1 , … , 𝑦 𝑢′ 𝑠 , 0, … , 0)
•
Note that 𝐷ℰ𝛽,𝛾 maps 𝑤1 , to an 𝑠-dimensional subspace of
linear forms
• And:
𝐷ℰ𝛽,𝛾 =
•
𝑆
|
𝑅𝑇
|
−
𝑅
−
•
• For one vector 𝑤1 ∈ ℬ𝒦𝛽,𝛾 :
𝐷 2 ℰ𝛽,𝛾 𝑤1 =
0
Note that the rank of the above 2-tensor (matrix) is at most 2𝑠.
Note that 𝐷 2 ℰ𝛽,𝛾 maps 𝑤1 , 𝑤2 to an 𝑠-dimensional subspace of
linear forms
•
𝑆
|
𝑅𝑇
|
−
𝑅
−
0
Note that the rank of the resulting 2-tensor (matrix) is at most
2𝑠.
What’s wrong with the Discrete differential?
• In Characteristic 2,3, the Discrete differential destroys information
about some perfectly good quadratic/cubic monomials
• Characteristic 2:
𝐷𝑥𝑖2 = 𝐷2 𝑥𝑖2 𝑥𝑗 = 𝐷2 𝑥𝑖3 = 0.
• Characteristic 3:
𝐷2 𝑥𝑖3 = 0.
How Does This Play Out in Attacks?:
Overall Strategy
Quadratic:
Cubic:
• Select 𝑠 2 -dimensional vectors, 𝑤1 , 𝑤2 .
• Solve for 𝑡𝑖 :
2
• Select 𝑠 2 -dimensional vectors, 𝑤1 , 𝑤2 , 𝑤3 , 𝑤4 .
• Solve for 𝑡𝑖 :
2
2𝑠
2𝑠
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤2 = 0
𝑡𝑖 𝐷ℰ𝑖 𝑤1 = 0
𝑖=1
𝑖=1
2𝑠 2
2𝑠 2
𝑡𝑖 𝐷2 ℰ𝑖 𝑤3 , 𝑤4 = 0
𝑡𝑖 𝐷ℰ𝑖 𝑤2 = 0
𝑖=1
• Hope that
2𝑠 2
2
𝑖=1 𝑡𝑖 𝐷 ℰ𝑖
𝑖=1
∈ 𝔅𝛽,𝛾 and 𝑤1 , 𝑤2 ∈ ℬ𝒦𝛽,𝛾
• If 𝑤1 , 𝑤2 ∈ ℬ𝒦𝛽,𝛾 there is a 1 in 𝑞 𝑠+1 chance
• If so, the 2-tensor
2𝑠 2
2
𝑖=1 𝑡𝑖 𝐷 ℰ𝑖
will have rank at most 2𝑠.
• Once we have a band space map, we can extend the
attack to a key recovery for comparably small cost
(about 1/q times as much.)
• Hope that
ℬ𝒦𝛽,𝛾
2𝑠 2
2
𝑖=1 𝑡𝑖 𝐷 ℰ𝑖
∈ 𝔅𝛽,𝛾 and 𝑤1 , 𝑤2 , 𝑤3 , 𝑤4 ∈
• If 𝑤1 , 𝑤2 , 𝑤3 , 𝑤4 ∈ ℬ𝒦𝛽,𝛾 there is a 1 in 𝑞 𝑠+1 chance
2
2
• If so, the 2-tensor 2𝑠
𝑖=1 𝑡𝑖 𝐷 ℰ𝑖 (𝑤𝑘 ) will have rank at
most 2𝑠.
• Once we have a band space map, we can extend the
attack to a key recovery for negligible cost.
How Does This Play Out in Attacks?:
Setting Some Vectors Equal (Cubic Case)
• The probability that 2 randomly chosen vectors share a band kernel is about 1 in 𝒒.
• For 3, it’s 1 in 𝒒𝒔+𝟏
• For 4, it’s 1 in 𝒒𝟐𝒔+𝟏
• We can increase the probability that the vectors, 𝒘𝟏 , 𝒘𝟐 , 𝒘𝟑 , 𝒘𝟒 share a band kernel by setting some of
them equal to one another (e.g. by solving:)
2𝑠 2
2𝑠 2
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤1 = 0;
𝑖=1
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤2 = 0.
𝑖=1
• This works in odd characteristic, but in characteristic 2, 𝑫𝟐 𝓔𝒊 𝒙𝟏 , 𝒙𝟏 = 𝟎 by symmetry. So the best we can
do there is:
2𝑠 2
2𝑠 2
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤2 = 0;
𝑖=1
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤3 = 0.
𝑖=1
How Does This Play Out in Attacks?:
Searching Through a Large Solution Space
• Generically we would expect a 0 dimensional space of solutions for 𝒕𝒊 . (𝟐𝒔𝟐 equations in 𝟐𝒔𝟐 variables.)
• But sometimes the equations have linear dependencies
•
Characteristic
2; Cubic: 5 linear dependencies
2
2
2𝑠
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤2 (𝑤1 ) =
𝑖=1 2
2𝑠
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤2 (𝑤2 ) =
𝑖=1 2
2𝑠
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤2 𝑤3 +
=
𝑖=1
•
2𝑠2
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤3 (𝑤1 ) =
𝑖=1
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤3 (𝑤3 )
𝑖=1
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤3 (𝑤2 ) = 0.
𝑖=1
Characteristic 2; Quadratic:
3 linear dependencies
2
2
2𝑠
2𝑠 2
2𝑠
𝑡𝑖 𝐷ℰ𝑖 𝑤1 (𝑤1 ) =
𝑖=1
•
2𝑠2
2𝑠
𝑡𝑖 𝐷ℰ𝑖 𝑤2 (𝑤2 ) =
𝑖=1
Characteristic 3; Cubic:
2 linear dependencies
2
2𝑠
𝑡𝑖 𝐷ℰ𝑖 𝑤1 𝑤2 +
𝑖=1
2𝑠 2
𝑡𝑖 𝐷 2 ℰ𝑖 𝑤1 , 𝑤1 𝑤1 =
𝑖=1
2𝑠 2
𝑖=1
2𝑠 2
𝑡𝑖 𝐷 2 ℰ𝑖 𝑤1 , 𝑤1 𝑤2 −
𝑖=1
𝑡𝑖 𝐷ℰ𝑖 𝑤2 (𝑤1 ) = 0.
𝑡𝑖 𝐷 2 ℰ𝑖 𝑤1 , 𝑤2 𝑤1 = 0.
𝑖=1
• The first linear dependency is free, but each additional one costs the attacker a factor of q complexity
increase.
New Attack Strategy (Cubic Case):
Use the Formal Derivative
• If ℰ𝑖 are not homogeneous cubic, restrict to the homogeneous part.
• Select 𝑠 2 -dimensional vectors, 𝑤1 , 𝑤2 and solve for 𝑡𝑖 :
2𝑠 2
𝑡𝑖 𝛻ℰ𝑖 𝑤1 = 0;
𝑖=1
2𝑠 2
𝑡𝑖 𝛻ℰ𝑖 𝑤2 = 0.
𝑖=1
• 𝛻ℰ = (
𝑑
𝑑
ℰ, … ,
𝑑𝑥1
𝑑𝑥𝑠2
ℰ)
• The equations are no longer linear in 𝑤1 , 𝑤2 , but they’re still linear in 𝑡𝑖 .
• For ℰ ∈ 𝔅𝛽,𝛾 and 𝑤 ∈ ℬ𝒦𝛽,𝛾
•
𝑑
ℰ(𝑤)
𝑑𝑢′ 𝑖
= 0 for 𝑖 ≠ (1, … , 𝑠).
• Therefore given 𝑤1 , 𝑤2 ∈ ℬ𝒦𝛽,𝛾 , The probability the attack works is about 1 in 𝑞 𝑠+1 as before
• 𝑤1 , 𝑤2 ∈ ℬ𝒦𝛽,𝛾 with probability 1 in 𝑞, so the total attack complexity goes like 𝑞 𝑠+2
Compensating for Linear Dependencies
• Characteristic
2; Quadratic:
3 linear dependencies
2
2
2
2𝑠
2𝑠
𝑡𝑖 𝐷ℰ𝑖 𝑤1 (𝑤1 ) =
𝑖=1
2𝑠 2
2𝑠
𝑡𝑖 𝐷ℰ𝑖 𝑤2 (𝑤2 ) =
𝑖=1
𝑡𝑖 𝐷ℰ𝑖 𝑤1 𝑤2 +
𝑖=1
𝑖=1
• Characteristic
3; Cubic: 2 linear 2dependencies
2
2𝑠
2𝑠 2
2𝑠
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤1 𝑤1 =
𝑖=1
𝑡𝑖 𝐷2 ℰ𝑖 𝑤1 , 𝑤1 𝑤2 −
𝑖=1
𝑡𝑖 𝐷ℰ𝑖 𝑤2 (𝑤1 ) = 0.
𝑡𝑖 𝐷 2 ℰ𝑖 𝑤1 , 𝑤2 𝑤1 = 0.
𝑖=1
• We can compensate by adding
the following two
equations:
2
2
2𝑠
2𝑠
𝑡𝑖 ℰ𝑖 𝑤1 = 0;
𝑖=1
𝑡𝑖 ℰ𝑖 𝑤2 = 0.
𝑖=1
In Summary
• Previous attacks
• Quadratic (Moody, Perlner, Smith-Tone 2014)
• 𝑞 𝑠+4 𝑠 2𝜔 for characteristic 2.
• 𝑞 𝑠+2 𝑠 2𝜔 for higher characteristic.
• Cubic (Moody, Perlner, Smith-Tone 2016)
• 𝑞2𝑠+6 𝑠 2𝜔 for characteristic 2.
• 𝑞 𝑠+3 𝑠 2𝜔 for characteristic 3.
• 𝑞 𝑠+2 𝑠 2𝜔 for higher characteristic.
(𝜔 ≈ 2.373 is the linear algebra constant.)
• We improve this to
• 𝑞 𝑠+2 𝑠 6 for Cubic, Characteristic 2
• 𝑞 𝑠+2 𝑠 2𝜔 for everything else
Succinct Conditions for Attack Success
• 𝐴(𝑤1 )
|
𝐴(𝑤2 ) has less than full rank
• note: 𝐴(𝑤1 ) has less than full rank iff Enc(𝑤1 ) results in decryption failure.
𝐵(𝑤1 ) 𝐶(𝑤1 )
•
has less than full rank.
𝐵(𝑤2 ) 𝐶(𝑤2 )
• Applies straightforwardly to rectangular version of ABC
• Left as an exercise for the reader.
Conclusion
• Linear algebra search obtains key recovery in ~𝑞 𝑠+2 time.
• Using a cubic central map does not eliminate this attack.
• Using small characteristic fields also does not eliminate this attack.
• Note (not in paper):
• the attack complexity decreases by a factor of 𝑞 if the attacker has access to a plaintext
resulting in decryption failure.
• By adding rows to A, can decrease probability of decryption failure by a factor of 𝑞 for each
additional row (rectangular ABC).
• However, the cost for an attack also decreases by a factor of 𝑞 for each additional row.
• The discrete differential may not always be the correct tool for analyzing the
structure of schemes using small characteristic fields.
• It will be interesting to see if the tools developed here are necessary elsewhere.
Thank You!
Key Recovery: Overall Strategy
• Find an equivalent private key. i.e. 𝒯′, 𝐴′, 𝐵′, 𝐶′ such that
𝒯 ′ ∘ 𝐴′ 𝑥 𝐵′ 𝑥 , 𝐴′ 𝑥 𝐶 ′ 𝑥 = ℰ𝑝𝑢𝑏 (𝑥)
• Note that 𝒰′ is unnecessary, since 𝑝 𝒰′ 𝑥 is still a random quadratic polynomial in 𝑥 and 𝑏 𝒰′ 𝑥
𝑐 𝒰′ 𝑥 are still random linear polynomials.
• Multistep process starting with a single band space map and two band kernel vectors:
1.
2.
3.
Solve for the whole band kernel.
Solve for the whole band space.
Solve for a column of 𝐵′ : (𝑣1 , … , 𝑣𝑠 )𝑇 .
4.
5.
6.
Solve for 𝐴′ (mod 𝑣1 , … , 𝑣𝑠 ).
Solve for 𝐵′ and 𝐶′ (mod 𝑣1 , … , 𝑣𝑠 ) and 𝒯′.
Select another column of 𝐵′ (mod 𝑣1 , … , 𝑣𝑠 ) and solve for the corresponding band space.
7.
8.
9.
Solve for the band kernel corresponding to the band space in step 6.
Solve for the rest of 𝐴′ .
Solve for the rest of 𝐵′ and 𝐶′
and
Key Recovery Step 1:
Solving for the whole band kernel.
• Once we’ve found a band-space map ℰ𝛽,𝛾 and at least two vectors
from the band kernel, we can find the whole band kernel by taking
the span of the union of the kernels of 𝐷2 ℰ𝛽,𝛾 𝑤1 and 𝐷2 ℰ𝛽,𝛾 𝑤2
• This works because, in a basis including generators of the band kernel
𝐷2 ℰ𝛽,𝛾 𝑤𝑘 =
𝑆𝑘
|
𝑅𝑘 𝑇
|
− 𝑅𝑘
−
0
• With high probability each kernel contains 𝑠 2 − 2𝑠 basis vectors of the
(𝑠 2 −𝑠)-dimensional band kernel, and the union contains a full basis.
Key Recovery Step 2:
Solving for the whole band space
• The band space maps ℰ𝛽,𝛾 are simply the maps in the span of the
public equations ℰ𝑖 such that
𝐷2 ℰ𝛽,𝛾 𝑤1 , 𝑤2 , 𝑤3 = 0
∀𝑤1 , 𝑤2 , 𝑤3 ∈ ℬ𝒦𝛽,𝛾
• Call a basis of this space (ℰ𝛽,𝛾,1 , … , ℰ𝛽,𝛾,𝑠 )
Key Recovery Step 3:
Solving for the space of linear forms in 𝐵𝛽 + 𝐶𝛾
(This can be our first column of B’)
• These are simply the space of linear forms 𝑣 such that
𝑣(𝑤) = 0
∀𝑤 ∈ ℬ𝒦𝛽,𝛾
• Call a basis of this space (𝑣1 , … , 𝑣𝑠 )
Key Recovery Step 4:
′
Solving for 𝐴 (mod 𝑣1 , … , 𝑣𝑠 )
• 𝐴 𝐵𝛽 + 𝐶𝛾 and 𝐵𝛽 + 𝐶𝛾 are related to (ℰ𝛽,𝛾,1 , … , ℰ𝛽,𝛾,𝑠 )𝑇 and (𝑣1 , … , 𝑣𝑠 )𝑇 by simple
row operations:
• 𝐴 𝐵𝛽 + 𝐶𝛾 = Ω1
• 𝐵𝛽 + 𝐶𝛾 = Ω2
𝑣1
⋮
𝑣𝑠
ℰ𝛽,𝛾,1
⋮
ℰ𝛽,𝛾,𝑠
• Therefore 𝐴′ = Ω1 −1 𝐴Ω2 is a solution of
ℰ𝛽,𝛾,1
𝑣1
⋮
𝐴′ ⋮ =
𝑣𝑠
ℰ𝛽,𝛾,𝑠
• However, the solution is only unique over polynomials modulo 𝑣1 , … , 𝑣𝑠
• This is because we can get cancellations like 𝑝1 𝑣1 + 𝑝2 𝑣2 = (𝑝1 +𝑢𝑣2 )𝑣1 + (𝑝2 −𝑢𝑣1 )𝑣2
Key Recovery Step 5:
′
′
′ −1
Solving for 𝐵 and 𝐶 (mod 𝑣1 , … , 𝑣𝑠 ) and 𝒯
• We can solve linear equations for
𝐴′ 𝐵′ , 𝐴′ 𝐶 ′
=
−1
′
𝒯
𝐵′ ,
−1
′
′
𝐶 , and 𝒯
(mod 𝑣1 , … , 𝑣𝑠 )
∘ ℰ𝑝𝑢𝑏 (mod 𝑣1 , … , 𝑣𝑠 )
• The solution (mod 𝑣1 , … , 𝑣𝑠 ) is (with high probability) unique up to
column operations on 𝐵′ , 𝐶 ′
• i.e. any solution will generate a valid private key.
′ −1
• Note that the coefficients of 𝒯
are scalars, not polynomials, so
−1
(mod 𝑣1 , … , 𝑣𝑠 ) does not affect 𝒯 ′
• We now have our 𝒯 ′ .
Key Recovery Step 6:
Solving for another Band Space
(corresponding to another column of 𝐵′ (mod 𝑣1 , … , 𝑣𝑠 ))
• Select a column (𝑣𝑠+1 , … , 𝑣2𝑠 )𝑇 of 𝐵′ (mod 𝑣1 , … , 𝑣𝑠 )
• We can find the band space maps corresponding to this column of 𝐵′
𝑇
′ −1
by taking the corresponding column (𝐹𝑠+1 , … , 𝐹2𝑠 ) of 𝒯
∘ ℰ𝑝𝑢𝑏
• Note these band space maps are completely known (no mod 𝑣1 , … , 𝑣𝑠 )!
Key Recovery Step 7:
Solving for the Band Kernel
(For the Band Space we found in Step 6)
• We can solve for the intersection of our two band kernels as follows:
• The intersection is the set of vectors 𝑤 such that:
𝑣𝑠+1 𝑤 , … , 𝑣2𝑠 𝑤 mod 𝑣1 𝑤 , … , 𝑣𝑠 𝑤
(𝑣1 𝑤 , … , 𝑣𝑠 𝑤 ) = 0
=0
• Now we have (more than 1) equations in the second band space, and
(more than 2) elements of the band kernel, so we can do what we did
the last time:
• Take the span of the union of the kernels of 𝐷2 𝐹𝑠+1 𝑤1 and 𝐷2 𝐹𝑠+1 𝑤2 for 𝑤1
and 𝑤2 in the band kernel of (𝐹𝑠+1 , … , 𝐹2𝑠 ).
Key Recovery Step 8:
Solving for the Rest of 𝐴’
• With high probability (𝑣𝑠+1 , … , 𝑣2𝑠 )𝑇 is fixed by
• (𝑣𝑠+1 , … , 𝑣2𝑠 )𝑇 (mod 𝑣1 , … , 𝑣𝑠 )
• The condition that 𝑣𝑠+1 𝑥 , … , 𝑣2𝑠 𝑥
= 0 for any 𝑥 in the band kernel of (𝐹𝑠+1 , … , 𝐹2𝑠 )
𝑣1
𝐹1
• 𝐴′ ⋮ = ⋮ fixes 𝐴′ (mod 𝑣1 , … , 𝑣𝑠 )
𝑣𝑠
𝐹𝑠
𝑣𝑠+1
𝐹𝑠+1
⋮
⋮
• 𝐴′
=
fixes 𝐴′ (mod 𝑣𝑠+1 , … , 𝑣2𝑠 )
𝑣2𝑠
𝐹2𝑠
• Together the two equations fix 𝐴′ entirely. (assuming 𝑣1 , … , 𝑣2𝑠 are linearly independent
– high probability and easy to check.)
Key Recovery Step 9:
Solving for the rest of 𝐵′ and 𝐶′
• Same equation as before without the (mod 𝑣1 , … , 𝑣𝑠 )
′ ′
′ ′
𝐴 𝐵 ,𝐴 𝐶
=𝒯
′ −1
∘ ℰ𝑝𝑢𝑏