USRE48644E

Cryptographic system using pairing with errors

Claim Score by NHIP

Read claim 53, the broadest

Abstract

Using the same mathematical principle of paring with errors, which can be viewed as an extension of the idea of the LWE problem, this invention gives constructions of a new key exchanges system, a new key distribution system and a new identity-based encryption system. These new systems are efficient and have very strong security property including provable security and resistance to quantum computer attacks.

Term

6.5 yearsleft in the term

Expires 11 April 2033.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

53 claims: 7 independent, 46 dependent

  1. 1
    Method for establishing a key exchange over an open channel between a first party A and a second party B, comprising:(1) openly selecting, by Party A and Party B together, parameters, n, q and small whole number t, (t<<n), where q is an odd prime, and an error distribution κ n 2 to be a distribution over n×n matrix over F q , a n×n matrix M over F q uniformly and randomly, where q is of size of a polynomial of n like n 3 , and elements of F q are represented by integers in the range [−(q−1)/2, (q−1)/2)];(2) choosing, by each of the parties privately, its own secret matrix S i (i=A, B) a n×n matrix chosen according to the error distribution κ n 2 , and error matrix e i , (i=A, B) as a n×n matrix following the error distribution κ n 2 ;computing by a processor of the Party A M A =MS A +te A , where t is a small integer (t<<n);computing by the Party B M B =M t S B +te B , (3) Both of the parties exchange M i in the open communication channel;(4) computing by the Party A: K A =S t A ×M B =S t A M t S B +tS t A e B ;computing by the Party B: K B =M t A ×S B =S t A M t S B +te t A S B ;(5) performing by both the Party A and the Party B a rounding technique to derive the shared key, comprising: (a) making by the Party B a list T 1 of all positions of the entries of K B such that these entries are in the range of [−(q−1)/4, (q−1)/4] and a list T 2 of all positions which are not in the range of [−(q−1)/4, (q−1)/4], then sending by the Party B to the Party A the list T 1 , (b) computing by each of the parties privately the residues of these entries modular t in T 1 , and for the entries not in T 1 , which is in T 2 , adding (q−1)/2 to each entry and computing the residue modular q first (into the range of [−(q−1)/4, (q−1)/4]) then the residue modular t, which gives a shared key between the two parties.
  2. 7
    Method, for a central server, building a key distribution (KD) system, comprising:(1) selecting, by the central server, parameters select parameters, n, q and small whole number t, (t<<n), where q is an odd prime, q is of size of a polynomial of n like n 3 and elements of F q are represented by integers in the range [−(q−1)/2, (q−1)/2)], an error distribution κ n 2 a distribution over n×n matrix over F q ;and selecting by the central server a symmetric randomly chosen n×n matrix S over F q as a master key;(2) giving, by the central server, to each user index as i, a general matrix A i as an ID with small entries following error distribution κ n 2 , where the ID matrix of each user is public and the central server have also a choice to generate the ID with information that can identify the user;(3) distributing, by the central server, for each user securely a secret: E i =A i S+te i , where e i is a matrix selected following error distribution κ n 2 and this is kept private for each user;obtaining a secret key shared between the User i and the User j comprising: computing by a process of the User i: K i =E i ×A j t =A i SA j t +te i A j t ;and computing by a processor of the User j K j =A i ×(E j ) t =A i S t A j t +tA i e j t =A i SA j t +tA i e j t ;then the two users deriving a shared key between the two users using the following simple rounding method, comprising: when the User j wants to establish a shared key with the user i, collecting by the user j all the entries (including their positions in the matrix) in K j that are in the range of (−(q−1)/4, (q−1)/4), namely those entries which are closer to 0 than (q−1)/2;sending by the User j to the user i a list of the positions of the entries in the matrix (only the position not the values of the entries themselves) that are randomly selected from the collection, which is tagged by 0, and a list of entries not in the list tagged by 0;then selecting by the user i the same entries in its own matrix E i ×A j , which gives them a shared list of common entry positions, therefore the corresponding entries of the matrix;then computing by each of the users the residue of the entries modular t lagged by 1 and compute the residue of the sum of each of the entries tagged by 0 with (q−1)/2, which build a new identical ordered list of values, their shared secret key.
  3. 13
    Method, for a central, building an identity-based encryption system, comprising:(1) selecting by the central server parameters, n, q and small whole number t, (t<<n), where q is an odd prime, q is of size of a polynomial of n like n 3 and elements of F q are represented by integers in the range [−(q−1)/2, (q−1)/2)], and an error distribution κ n 2 to be a distribution over n×n matrix over F q ;and selecting by the central server a secret n×n matrix S as the secret master key, where S is selected as a small element following certain error distribution κ n 2 ;(2) selecting by the central server a random element M following uniform distribution, but making sure that M has an inverse: when the central server could not find one first time, it tries again till it finds one;then computing by the central server M 1 =MS+te, where e is small following certain error distribution κ n 2 ;(3) then publicizing by the central server M and M 1 as the master public key;(4) assigning by the central server for each user indexed by i an public ID as A i , where A i is small following certain error distribution κ n 2 , and the central server has can generate A i from information that can identify the user i;(5) processing by a processor and giving by the central server for each user, namely, the User i, a secret key: S i =SA i +tM −1 e i , where e i 's entries are small following the error distribution κ;(6) then establishing by anyone using the ID, A i , and the master public key, a new public key for the user with ID A i , which is given as the pair (A i , B i ), where A i =M and B i =M 1 A i =MSA i +teA i , and using by anyone as the public key to encrypt any message use the MLWE encryption system.
  4. 20
    A method of deriving a shared key between a first networked computer and a second networked computer over an open communication channel, the method comprising:receiving, from a key distribution system, an exchange matrix Ei of a matrix size n rows by the matrix size n columns, wherein the key distribution system has selected: a finite field F comprising a first prime number q of elements, such that entries of Ei are in F;and a whole number t, wherein the whole number t is less than the matrix size n;determining a key matrix Ki resulting from multiplying the exchange matrix Ei and a transpose of a respective public ID matrix of the second networked computer;and applying a rounding method to each entry of the key matrix Ki to generate the shared key.
  5. 33
    A method of deriving a shared key for a networked computer with another networked computer, the method comprising:receiving, from a key distribution system, an exchange matrix Ej of a matrix size n rows by the matrix size n columns, wherein the key distribution system has selected: a finite field F comprising a first prime number q of elements, such that entries of Ej are in F;and a whole number t, wherein the whole number t is less than the matrix size n;determining a key matrix Kj resulting from multiplying a public ID matrix of the another networked computer and a transpose of the exchange matrix Ej;and applying a rounding method to each entry of the key matrix Kj to generate the shared key.
  6. 46
    An encryption key authority system comprising:a central server in communication with a plurality of users, the central server comprising at least one processor;and a non-transitory computer-readable storage medium in operable communication with the processor, wherein the computer-readable storage medium comprising computer-executable instructions that, when executed, cause the at least one processor to: select a matrix size n and a finite field F comprising a first prime number q of elements, and an error distribution K over the finite field F, wherein the first prime number q comprises a value approximately equal to a polynomial of the matrix size;generating a master key matrix S comprising values of random elements of the finite field F chosen according to the selected error distribution K, wherein the master key matrix S is a matrix and wherein a size of the master key matrix S comprises the matrix size n rows by the matrix size n columns;select a whole number t, wherein the whole number t is less than the matrix size n;select a first random matrix M comprising values of random elements of the finite field F chosen according to a uniform distribution, wherein the first random matrix M is selected such that an inverse of the first random matrix M exists;select a master error matrix e comprising values of elements in the finite field F chosen according to the selected error distribution K, wherein a size of the master error matrix e comprises the matrix size n rows by the matrix size n columns;generate a product matrix resulting from multiplying the first random matrix M and the master key matrix S;generate a scalar error matrix resulting from multiplying the whole number t and the master error matrix e;generate a master public key pair comprising the first random matrix M and a second random matrix M1 resulting from adding the scalar error matrix to the respective product matrix;generate a first respective ID matrix Ai for each of a plurality of users, wherein each first respective ID matrix Ai comprises values of elements in the finite field F chosen according to the selected error distribution K, wherein a size of the first respective ID matrix Ai comprises the matrix size n rows by the matrix size n columns;determine a respective secret key matrix Si for each of the plurality of users based on the master public key pair and the first respective ID matrix Ai for each of the plurality of users;and send, to each of the plurality of users, the respective secret key matrix Si.
  7. 53
    Broadest claimClaim Score 58, broad(NHIP)A method of a networked computer encrypting a message between a first networked computer and a second networked computer, the method comprising:determining, at the first networked computer, a public matrix pair comprising a first matrix M and a second matrix M1;receiving, at the first networked computer, an ID matrix Ai of the second networked computer;determining a key matrix pair for the second networked computer, wherein the key matrix pair comprises the first matrix M and a second public matrix Bi, wherein the second public matrix Bi comprises a matrix resulting from multiplying the second matrix M1 and the ID matrix Ai;and applying the key matrix pair to encrypt the message to the second networked computer;and sending the encrypted message to the second networked computer.