Patents by Inventor Jerome A. Solinas

Jerome A. Solinas has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9635003
    Abstract: A key pair validation method provides for a first party to generate a seed to define a private key, a public key, a session key and a validation field for the purpose of performing a cryptographic activity with a second party. The validation field is determined by encrypting the first party seed. The second party receives the first party public key and the validation field from the first party. The second party calculates a session key and utilizing the calculated session key, decrypts a cipher text to recover the first party's seed and the first party's private and public key. The recovered first party public key is compared to the received first party public key. If the received and recovered public keys match, the private-public key pair received from the first party is validated and the second party proceeds with the cryptographic task. If the received and recovered public keys do not match, the second party simply reports to the first party that the cryptographic task failed.
    Type: Grant
    Filed: April 21, 2015
    Date of Patent: April 25, 2017
    Inventors: Bradley C. Lackey, Mark J. Motley, Jerome A. Solinas
  • Patent number: 7505585
    Abstract: A method of generating a cryptographic key between two users. First, the users select an elliptic curve. Next, the users select a point P on the curve. Next, the first user selects integers ra and wa and the second user selects integers rb and wb. Next, the first user generates points Ra=raP and Wa=waP and the second user generates points Rb=rbP and Wb=wbP. Next, the first user transmits Ra and Wa to the second user and the second user transmits Rb and Wb to the first user. Next, the first user generates ca from what it possesses while the second user generates cb from what it possesses in equivalent fashion. Next, the first user generates ga as a function of wa, ra, Wb, and Rb and the second user generates gb as a function of wb, rb, Wa, and Ra, in equivalent fashion. Next, the first user binarily expands on ca and ga in joint sparse form and the second user does the same on cb and gb.
    Type: Grant
    Filed: June 25, 2002
    Date of Patent: March 17, 2009
    Assignee: The United States of America as represented by the Director, The National Security Agency
    Inventor: Jerome A. Solinas
  • Patent number: 7062044
    Abstract: A method of generating a cryptographic key in an authenticated manner using coefficient splitting. Select a prime number p and an elliptic curve of either a first class or a second class. Select a point P. The first user generates ra, wa, and Ra=raP and Wa=waP via coefficient splitting. The second user generates rb, wb, and Rb=rbP and Wb=wbP via coefficient splitting. After the users have exchanged the points Ra, Wa, Rb, Wb, the first user generates ca, ga, and caWb, and gaRb via coefficient splitting, and the second user generates cb, gb, and cbWa and gbRa via coefficient splitting. Each user then sums the corresponding results to form K and derives the cryptographic key from K in the same user-definable manner. An unauthenticated key exchange method is also presented.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: June 13, 2006
    Assignee: The United States of America as represented by the National Security Agency
    Inventor: Jerome A. Solinas
  • Patent number: 7062043
    Abstract: A method of generating and verifying a cryptographic digital signature using coefficient splitting. The digital signature is formed by first selecting a finite field, an elliptic curve of a first type or a second type, a point P, an integer w1, and an integer k1. Next, generating, via coefficient splitting, a point W=w1P and a point K=k1P. Next, transforming, K to a bit string K*. Next, combining K*, W, and a message M in a first manner to produce h1, and in a second manner to produce c. Next, generating s be either s=h1w1+ck1 (mod q), s=(h1w1+c)/k1 (mod q), or s=(h1k1+c)/w1 (mod q). Next, forming the cryptographic digital signature as (K*,s). The digital signature is verified by acquiring the finite field, the elliptic curve, the point P, the point W, the message M, and the cryptographic digital signature (K*,s). Next, computing h1 and c. Next, selecting (n0, n1) from (sc?1 (mod q), ?h1c?1 (mod q)), (cs?1 (mod q), h1s?1 (mod q)) or (?ch1?1 (mod q), sh1?1 (mod q)).
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: June 13, 2006
    Assignee: The United States of America as represented by the National Security Agency
    Inventor: Jerome A. Solinas
  • Patent number: 7024559
    Abstract: A method of generating and verifying a cryptographic digital signature using joint sparse expansion by a signer first selecting a field, an elliptic curve over the field, a point P of order q on the elliptic curve, w, k. Next, generating W=wP and K=kP. Next, transforming K to K*. Next, combining K*, W, and a message M to produce h. Next, combining K*, W, and M to produce c. Next, generating, s by either s=hw+ck (mod q), s=(hw+c)/k (mod q), or s=(hk+c)/w (mod q). Next, forming the digital signature as (K*,s). Next, a verifier acquires the field, the elliptic curve, P, W, M, and (K*,s). Next, computing h and c. Next, selecting (n0, n1) as either (sc?1 (mod q), ?hc?1 (mod q)), (cs?1 (mod q), hs?1 (mod q)) or (?ch?1 (mod q), sh?1 (mod q)). Next, generating binary expansions of n0 and n1 in joint sparse form. Next, computing, Q=n0P+n1W via twin multiplication and a double-add-subtract method with the binary expansions in joint sparse form. Next, transforming, Q to Q*.
    Type: Grant
    Filed: June 28, 2002
    Date of Patent: April 4, 2006
    Assignee: The United States of America as represented by the National Security Agency
    Inventor: Jerome A. Solinas
  • Publication number: 20030235300
    Abstract: A method of generating a cryptographic key between two users. First, the users select an elliptic curve. Next, the users select a point P on the curve. Next, the first user selects integers ra and wa and the second user selects integers rb and wb. Next, the first user generates points Ra=raP and Wa=waP and the second user generates points Rb=rbP and Wb=wbP. Next, the first user transmits Ra and Wa to the second user and the second user transmits Rb and Wb to the first user. Next, the first user generates ca from what it possesses while the second user generates cb from what it possesses in equivalent fashion. Next, the first user generates ga as a function of wa, ra, Wb, and Rb and the second user generates gb as a function of wb, rb, Wa, and Ra, in equivalent fashion. Next, the first user binarily expands on ca and ga in joint sparse form and the second user does the same on cb and gb.
    Type: Application
    Filed: June 25, 2002
    Publication date: December 25, 2003
    Inventor: Jerome A. Solinas
  • Patent number: 6243467
    Abstract: A method of generating and verifying a digital signature by selecting an elliptic curve; selecting a point G; generating x and M; reducing x; generating a base tau expansion, in non-adjacent form, of the reduced x; multiplying G by the expansion; computing h=Hash(M); generating k; reducing k; generating a base tau expansion, in non-adjacent form, of the reduced k; multiplying G by the expansion of k to form K=(Kx,Ky); computing R=(Kx mod q); returning to the step of generating k if R=0, otherwise computing S=(k{circumflex over ( )}−1)(h+xR); returning to the step of generating k if S=0, otherwise transmitting y, q, M, R, and S; receiving y, q, M, R, and S; proceeding with the next step if 0<R<q and 0<S<q, otherwise not verifying the digital signature and stopping; forming h=Hash(M); computing f=((S{circumflex over ( )}−1) mod q), b=(hf mod q), and t=(Rf mod q); reducing b and t; generating a base tau expansion,
    Type: Grant
    Filed: July 23, 1998
    Date of Patent: June 5, 2001
    Assignee: The United States of America as represented by the National Security Agency
    Inventors: Robert W. Reiter, Jerome A. Solinas
  • Patent number: 6212279
    Abstract: A method of cryptographic key exchange by two users agreeing on an elliptic curve of the form y2+xy=x3+ax2+1, where “a” is a member of a field F2, where the elliptic curve is defined over a field F2m, where m is an integer; agreeing on a point G as the base point of the elliptic curve, where the point G is of order q, and where q is an integer; generating a private integer xA by a first user; reducing xA by mod (&tgr;m−1) in the form of w+z&tgr; by the first user; generating a base tau expansion, in non-adjacent form, of the modular reduced xA by the first user; multiplying G by the base tau expansion of the modular reduced xA; transmitting the product to the second user; receiving, by the first user, a value yB from the second user that is based on a private integer xB of the second user, where the received value is computed in a similar manner as was the product transmitted to the second user; multiplying, by the first user, xA by the value received from the seco
    Type: Grant
    Filed: July 23, 1998
    Date of Patent: April 3, 2001
    Assignee: The United States of America as represented by the United States National Security Agency
    Inventors: Robert W. Reiter, Jerome A. Solinas