| CPC H04L 9/0852 (2013.01) [G06F 17/16 (2013.01); H04L 9/3093 (2013.01)] | 18 Claims |

|
1. A data processing system comprising instructions embodied in a non-transitory computer readable medium, the instructions for a cryptographic operation including matrix multiplication for lattice-based cryptography in a processor, the instructions, when executed, cause the processor to:
apply, by the processor, a first function to rows of a public matrix of polynomials to generate first outputs, wherein the first function excludes an identity function;
add, by the processor, an additional row to the public matrix of polynomials to produce a modified matrix, wherein each element in the additional row is generated by a second function applied to a column of the first outputs;
multiply, by the processor, the modified matrix with a vector of polynomials to produce an output vector of polynomials;
apply, by the processor, a verification function to the output vector that produces an indication of whether a fault occurred in the multiplication of the modified matrix with the vector of polynomials; and
selectively perform, using the processor, a cryptographic operation using a private key to produce a signed output using the output vector when the verification function indicates that no fault occurred in the multiplication of the modified matrix with the vector of polynomials.
|