Secret material exchange and authentication cryptography operations

Information

  • Patent Grant
  • 12206763
  • Patent Number
    12,206,763
  • Date Filed
    Tuesday, April 18, 2023
    a year ago
  • Date Issued
    Tuesday, January 21, 2025
    a month ago
  • Inventors
  • Original Assignees
  • Examiners
    • Lewis; Lisa C
    Agents
    • Haverstock & Owens, A Law Corporation
Abstract
Aspects of associative cryptography key operations are described. In one embodiment, a first cryptographic function is applied to secret data to produce a first encrypted result. The first encrypted result is transmitted by a first device to a second device. The second device applies a second cryptographic function to the first encrypted result to produce a second encrypted result. At this point, the secret data has been encrypted by two different cryptographic functions, each of them being sufficient to secure the secret data from others. The two different cryptographic function can be inversed or removed, in any order, to reveal the secret data. Thus, the first device can apply a first inverse cryptographic function to the second encrypted result to produce a first result, and the second device can apply a second inverse cryptographic function to the first result to decrypt the secret data.
Description
BACKGROUND

Cryptography is related to the study of protocols, techniques, and approaches that prevent third parties from accessing, reading, and/or interpreting secret data. Cryptography can be applied to various processes in information security, such as data integrity and encryption, confidentiality, authentication, verification, and non-repudiation. Thus, cryptography has several applications in various fields, including data encryption and privacy, computer network communications and transaction processing, and computing system security and integrity.


Modern cryptography often relies upon computational hardness in mathematical theory. In other words, it might be theoretically possible to break certain cryptographic systems, but the time required to do so makes such cryptographic-defeating processes intractable. Typically, computationally-secure cryptography processes are preferable to those which are easier to defeat. At the same time, however, computationally-secure cryptography processes might be more computationally-intensive to implement and, thus, more time consuming and costly. In that context, although some cryptographic processes, such as a one time pad, cannot be broken or defeated even with unlimited computing power, those schemes are more difficult to implement than a good, theoretically-breakable but computationally secure approach. As such, modern computing devices may exchange secret data using cryptographic processes having security problems (e.g., the processes are susceptible to brute force attack). At the same time, those cryptographic processes may be resource intensive (e.g., the processes are computationally-intensive to implement).





BRIEF DESCRIPTION OF THE DRAWINGS

Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.



FIG. 1 illustrates a process of secret text transfer using asymmetric keys.



FIG. 2 illustrates a representative process of secret key transfer using cryptography processes according to various embodiments described herein.



FIG. 3A illustrates an example distribution function of variables resulting from the white noise associative cryptography key operations according to various embodiments described herein.



FIG. 3B illustrates example probability distribution functions of variables resulting from the white noise associative cryptography key operations according to various embodiments described herein.



FIG. 4 illustrates example user interfaces of a program to perform cryptography key operations according to various embodiments described herein.



FIG. 5 illustrates a more particular example of a secret key transfer process according to the concepts described herein.



FIG. 6 illustrates an example of a secret key transfer process using authentication according to the concepts described herein.





DETAILED DESCRIPTION

As noted above, cryptography is related to the study of protocols, techniques, and approaches that prevent third parties from accessing, reading, and/or interpreting secret data. In the context of cryptography, the Rivest-Shamir-Adleman (RSA) cryptosystem, elliptic curve cryptography (ECC) cryptosystem, and other asymmetrical (and symmetrical) methods of secure key exchange have security problems. Those cryptosystems are based on complexity and can, theoretically, be decrypted.


In contrast to the RSA, ECC, and other cryptosystems, the cryptographic processes described herein is more immune to cryptanalysis and permits the sharing of secret data, such as symmetric keys and other secret data, over public networks. The cryptographic system can also be used for authentication. No known methods of traditional or quantum computing can be used to circumvent the cryptographic approaches described herein. The cryptographic system described herein was developed to achieve a number of goals including (1) securely exchanging cryptographic keys over public networks, (2) information ciphering, authentication, and (4) encryption for public networks that is secure against standard and quantum computing.


In the context described herein, white noise can be defined as (or can include) a sequence of independent random variables (e.g., discrete numbers) with a uniform probability distribution. Polynomial white noise can be defined as (or can include) a sequence of polynomial function values composed by independent random variables (e.g., discrete numbers) with a uniform probability distribution.


No known algorithm can decrypt the operations described herein due, at least in part, to the use of white noise randomization. The unknown independent variables appear to third parties as random white noise and, thus, there is no correlation between those variables and any information being transferred. As one example, the key exchange method or process described herein can be shown as an exchange of matrices with a corresponding number of different unknown independent variables and visible values. The number of unknown independent variables always exceeds the number of visible independent values in any combination of subsets of matrices. Further, the number of unknown variables exceeds the number of publically visible polynomial functions. Additionally, no inverse polynomial functions can be determined without information about the secret key—even if the plain text of the secret key is known by a third party.


Turning to the drawings, FIG. 1 illustrates a process of secret text transfer using asymmetric keys. In the example shown in FIG. 1, Alice wishes to communicate secret text to Bob over a public network, such as the Internet, and Eve is the eavesdropper. To communicate the secret text, which can be a symmetric key or any other secret information, Alice and Bob use asymmetric cryptography. Asymmetric cryptography relies upon a key pair including a public key that can be disseminated to third parties (e.g., Alice) and a private key which is kept private (e.g., by Bob). In an asymmetric cryptography system, any person can encrypt a message using the public key, and that encrypted message can only be decrypted using the private key. The strength of asymmetric cryptography relies on the degree of difficulty (e.g., computational impracticality) for a private key to be determined from its associated public key. Asymmetric cryptography also depends on keeping the private key private.


Referring back to FIG. 1, Alice obtains a copy of a public key from Bob (or any other source). Alice encrypts the secret text using the public key to produce the encrypted secret text and communicates it to Bob over the public network. Bob then decrypts the encrypted secret text using the private key to obtain the secret key. Over the public network, Eve can only see the encrypted secret text. Even if Eve obtains a copy of the encrypted secret text and the public key used to create it, Eve cannot obtain the secret text from the encrypted secret text using the public key. Instead, only the private key, which is securely held and protected by Bob, can be used to decrypt the encrypted secret text to obtain the secret text from Alice.


There are drawbacks and limitations to using asymmetric cryptography. For example, it is algorithmically possible to estimate (or determine) the private key in a key pair from the publicly available public key. Additionally, asymmetric key pairs are relatively difficult and time consuming to create, typically depending upon the identification of large prime numbers. Further, asymmetric cryptography can be vulnerable in that it may produce the same predictable encrypted output when the same secret text is encrypted.


To be distinguished from other cryptographic systems, various cryptography processes or operations are described herein. In one embodiment, a first cryptographic function is applied to secret data. The first cryptographic function operates as a type of cryptographic key and encrypts or ciphers the secret data to produce a first encrypted result. The first encrypted result can be securely transmitted by a first device to a second device. The second device then applies a second cryptographic function to the first encrypted result. Similar to the first cryptographic function, the second cryptographic function operates as a cryptographic key and further (or doubly) encrypts or ciphers the first encrypted result to produce a second (or doubly) encrypted result. At this point, the secret data has been encrypted by two different cryptographic functions, each of them being sufficient to secure the secret data. The two different cryptographic functions can then be inversed or removed, in any order, to reveal the secret data.


Turning to the embodiments, FIG. 2 illustrates a representative process 20 of secret key transfer using cryptography processes according to various embodiments described herein. The process described below can be performed by any suitable computing device(s) including a processor and memory, without limitation. In the example shown in FIG. 2, Alice wants to securely pass the secret key X to Bob over a public network. To do so, Alice should first encrypt the secret key X before sending it to Bob.


To encrypt the secret key X, Alice holds a first cryptographic function FA. In various embodiments, the cryptographic function FA can be embodied as any suitable mathematical function having an inverse which cannot be determined without knowledge of a certain set of parameters of the mathematical function. In one embodiment, the function FA can be embodied as a polynomial function or multivariate polynomial function defined in part by one or more variables, combinations of variables, combinations of variables at various powers, and coefficients. To undo or unlock (e.g., decrypt) the effect of the cryptographic function FA, Alice also holds a first inverse cryptographic function F−1A.


To start, at step 202, the process 20 includes Alice generating, with a first computing device, a first random lock XA. The first random lock XA can be embodied as an array or vector of random scalar integers, for example, or another suitable organized structure of random numbers. In the process 20, the first random lock XA can operate as a type of initialization vector upon which the cryptographic function FA is applied in combination with the secret key X. For example, the first random lock XA helps to randomize the application of the cryptographic function FA creating, in effect, a new random cryptographic function FA for each different random lock XA. In that context, the first random lock X4 helps to achieve semantic security, so that repeated usage of the cryptographic function FA with the same operand does not produce the same ciphered result and does not allow an attacker to infer any information.


At step 204, the process 20 includes Alice applying, with the first computing device, the first cryptographic function FA to a combination of the secret key X and the first random lock XA to produce a first encrypted result R1. Here, Alice's secret key X, which can include letters, numbers, American Standard Code for Information Interchange (ASCII) characters, etc., is ciphered with random numbers (i.e., the first random lock XA) using the cryptographic operation or function FA. The cryptographic function FA can be embodied as any suitable mathematical function, such as a polynomial or multivariate polynomial function. For example, the cryptographic function FA can be embodied as a polynomial function F(CXk) of kth order written as:











F

(

CX
k

)

=





i
1

=
1

k









i
k

=
1

k


C


i
1



i
2





i
k







,

X

i
1


,


X

i
2








X

i
k



,




(
1
)








where Ci . . . k are coefficients of the polynomial function F(CXk), and Xi . . . k are combinations of the operand X, which can include a combination of a random lock and secret data.


Thus, at step 204, Alice's secret key X, which may include letters, numbers, American Standard Code for Information Interchange (ASCII) characters, etc., are ciphered with random numbers based on the first random lock XA and the first cryptographic function FA. As an example, a distribution function of the variables in the results R1, R2, and R3 is shown in FIG. 3A, and probability distribution functions of the variables in the results R1, R2, and R3 is shown in FIG. 3B.


The structure of the polynomial function F(CXk) and the coefficients can be known to others (although they generally are not) from the formalization of the algorithm. However, even if the structure of the polynomial function F and values of the coefficients C, k are known to a third party, the third party still cannot decrypt the transferred information.


At step 206, the process 20 includes Alice transmitting, with the first computing device, the first encrypted result R1 to Bob's second computing device. At step 208, the process 20 includes Bob generating, with the second computing device, a second random lock XB. Similar to the first random lock XA, the second random lock XB can be embodied as an array or vector of random scalar integers, for example, or another suitable organized structure of random numbers. In the process 20, the second random lock XS can also operate as a type of initialization vector for the cryptographic function FB. For example, the second random lock XB helps to randomize the application of Bob's cryptographic function FB creating, in effect, a new random cryptographic function FB for each different random lockXB. In that context, the second random lock XB helps to achieve semantic security, so that repeated usage of the cryptographic function FB with the same operand does not produce the same ciphered result and does not allow an attacker to infer any information.


At step 210, the process includes Bob applying, with the second computing device, Bob's cryptographic function FB to a combination of the first encrypted result R1 and the second random lock XB to produce a second encrypted result R2. Here, the first encrypted result R1 (e.g., FA(X,XA)) is (doubly) ciphered with random numbers (i.e., the second random lock XB) using the cryptographic operation or function FB. The cryptographic function FB can be embodied as any suitable mathematical function, such as a polynomial or multivariate polynomial function. For example, the cryptographic function FB can be embodied as a polynomial function F(CXk) of kth order according to that shown above in Equation (1).


At this point, Alice's secret key X has been encrypted or ciphered by two different cryptographic functions FA and FB, each of them being sufficient to secure the secret key X from others. The two different cryptographic functions can then be inversed or removed, in any order, to reveal the secret key X. In other words, to decrypt the secret key X from the second encrypted result R2 (i.e., to undo the effects of the cryptographic functions FA and Fa) it is possible to either apply the inverse F−1A function to FA or the inverse F−1B function to FB first. Thus, according to one aspect of associative cryptography key operations described herein, the order in which the second encrypted result R2 is applied to the inverse cryptographic functions F−1A and F1B, does not impact the results of the decryption of secret key X from the second encrypted result R2. Further, any number of cryptographic functions to F1 . . . FN can be applied to encrypt secret data in any order to produce an encrypted result RN, and that encrypted result RN can be decrypted in any order using the inverse cryptographic functions F−11 . . . F−1N.


At step 212, the process 20 includes Bob transmitting, with the second computing device, the second encrypted result R2 to the first computing device. At step 214, the process 20 includes Alice applying, with the first computing device, the first inverse cryptographic function F−1A to the second encrypted result R2 to produce the result R3. The first inverse cryptographic function F−1A unlocks or removes the effect of both the first random lock XA and the first cryptographic function FA. Thus, the result R3 is what remains of the second encrypted result R2 after the effect of the first random lock XA and the first cryptographic function FA are undone or unlocked (e.g., FB(X,XB)). Thus the result R3 is still encrypted, but only by Bob's second random lock XB and the second cryptographic function FB, and the result R3 can be securely transmitted over the public network.


At step 216, the process 20 includes Alice transmitting, with the first computing device, the result R3 to the second computing device. Finally, at step 218, the process 20 includes Bob applying, with the second computing device, the second inverse cryptographic function F−1B to the result R3 to arrive at the secret key X.


At the end of the process 20, the secret key X has been securely communicated from Alice to Bob. In contrast to the asymmetric key process described above with reference to FIG. 1, key pairs are not used in the process 20.


The general idea embodied in the process 20 is based on certain features of the publically unknown vectors X and the publically available (potentially visible) vectors R. Particularly, the number of variables “n” of the vectors X {x1, . . . , xn} is always more than the number of variables “m” of the vectors R={r1, . . . , rm}, i.e., n>m. Thus, there are no known algorithms which give a definite decryption solution of the secret key X, based only on visible values of the vectors R in the public networks. From this point of view, the method is cryptanalysis resistant. To obtain the only solution x1, . . . , xn from the values r1, . . . , rm of the polynomial functions FA and FB, the third party (e.g., outsider Eve) should have additional information about the structure of the random vectors XA and XB, which are available for Alice and Bob only. For instance, from x1+x2+x3=r1, it is not possible for a third party to arrive at a single solution for x1 with only the value of the variable r1 being publically visible, because the additional information about the values of the variables x2+x3 are not known.


A comparison of the features of asymmetrical methods and the method described herein is give in Table 1 below.











TABLE 1






Public-Private Key




Asymmetrical
PWN Three


Features
(RSA, ECC)
Pass Method







Numbers
Prime Numbers
Any Random




Numbers


Time to Develop New Key
Relatively
Negligible



More Costly


Processing Time
Relatively
Negligible



More Costly


Inverse Function From
Relatively
Inverse Function


Public Key
Complex
Does Not Exist


Third Party Defeat
Possible
Never


Public Network Output
Constant,
Random,


For Constant Input
predictable
unpredictable









An example of the use of the method described herein is provided below. Using the method, plain text (as a letter or ASCII code of 256 numbers) is represented in ciphered text by three corresponding random numbers r1, r2 and r3 which are calculated by a random generator. Table 2 shows an example of how the plain text “This is a plain text” appears in ciphered numbers.












TABLE 2









Plain




text
Ciphered text












text
r1
r2
r3
















T
0.001251
0.563585
0.003585



h
0.193304
0.808741
0.158307



i
0.585009
0.479873
0.28051 



s
0.350291
0.895962
0.313555




0.82284 
0.746605
0.614412



i
0.174108
0.858943
0.151801



s
0.710501
0.513535
0.363394




0.303995
0.014985
0.006167



a
0.091403
0.364452
0.035009




0.147313
0.165899
0.02575 



p
0.988525
0.445692
0.438709



1
0.119083
0.004669
 0.001204 i



a
 0.00891 1
0.37788
0.005292



i
0.531663
0.571184
0.303183



n
0.601764
0.607166
0.363988




0.166234
0.663045
0.113037



t
0.450789
0.352123
0.159469



e
0.057039
0.607685
0.037377



x
0.783319
0.802606
0.623152



t
0.519883
0.30195
0.157851










Uniform distribution is called “white noise” due to its informative features. For the letter ‘A’ (ASCII code 65), as one example, the random numbers may appear over the public net as r1=0.001251, r2=0.563585, r3=0.560746 or r1=0.585009, r2=0.479873, r3=0.105796 and every time the random variables r1, r2, r3 will be unpredictable. The correlation function between any two variables x and y is estimated as follows:










corr
(

x
,
y

)

=






(

x
-

x
_


)



(

y
-

y
_


)









(

x
-

x
_


)

2






(


y
-



y
_


)

2






.





(
2
)








The results of correlation function evaluation for pairs (r1, r2), (r2, r3) and (r1, r3) are given in Table 3 below.











TABLE 3





corr (r1, r2)
corr (r2, r3)
corr (r1, r3)







−0.013927
−0.002873
−0.010771









The correlation is negligibly small, which means that ciphered information is encapsulated into white noise and is not analyzable by a third party. There are no known algorithms to decrypt the ciphered information without the encryption key.


In the approaches described herein, there are neither restrictions nor requirements on the encryption key number and length. All keys are equal in terms of crypt analysis resistance. Additionally, there are no correlations between the plain text and the ciphered random numbers (r1, r2, r3), as the combinations of them are unpredictable. There are no known algorithms which can decrypt ciphered random numbers (r1, r2, r3) into plain text without the key. There are no known algorithms which can recalculate the encryption key using visible ciphered random numbers (r1, r2, r3) and visible plain text. There is no need for rotation of encryption keys if a physical, completely unpredictable random number generator is used. The series repetition period of real random numbers (r1, r2, r3) is infinite.


Computational time needed to encrypt and decrypt data by the method described herein is significantly smaller than commonly used algorithms. Since the method uses polynomial functions, the transaction of numbers (or ASCII) should be controlled by calculation procedures. The analysis of 25,600,000 transactions demonstrates that the final error of the secret key value estimate does not exceed 0.001%. This means that, for example, the transaction of the letter ‘A,’ which is represented by the integer number 65 (ASCII), after all transformations from client to server could be calculated to be a number about 64.9999 (and depends in part on the random generator variables during the transaction).


A comparison of the features of a standard symmetrical method and the method described herein are given in Table 4 below.











TABLE 4







WNT One Pass Transaction



Symmetrical
(in combination with Three


Features
FIPS Pub 197
Pass Transaction)







Encryption Key Rotation
Must Have
Not Needed


Processing time
Costly
Negligible


Security resistance
Strong relation
No Relation


and key length


Hack
Costly
Never (Potentially




Impossible)


Public net output for
Constant,
Random,


constant input
Predictable
Unpredictable


(without key


rotation)









A computer program was developed to implement the method described herein. As shown in FIG. 4, Alice securely sends her secret text “Hello bob” to Bob using the three pass transaction. In FIG. 4, random values appear to a third party during the three pass transaction (specially shown in the blue box).


Among other benefits, the processes described herein can be used to achieve unbreakable (or nearly unbreakable) encryption over wireless, wired, and public networks, and against quantum computing attacks. It requires relatively little processing power for encrypting and decrypting and, thus, can be used for rapid verification and transactions. A practically limitless number of new keys can be generated on the fly. Thus, the keys can be changed on every transaction. Encryption and decryption can also occur on individual devices due to the high speed of encryption and low processing requirements. Further, there is no single point of compromise because every individual party has their own key. If a key is compromised, it is the one compromised and can be renewed or replaced.


An outline of various problems encountered and solutions that can be provided by the cryptographic systems described herein are given in Table 5 below.










TABLE 5





Problem
Solution







Establishing a secure
Digital ID system in the cloud for


and reliable ID for all
processing Ids


transactions
ID system only used for



registration and verification



Information unhackable


Having a secure payment
Payment system using ID


system that
Email, internet banking, wireless


eliminates fraud
transaction


Cryptocurrency that is
Absolutely secure, stable, and


secure and stable
based on verifiable IDs


Fast enough and secure
Rapid trading and verification


trading system for
Trading exchanges connected to


cryptocurrencies
Exchange


Mobile Payments
Integrity over wireless signals and



public net



Transactions cannot be defrauded



via screening or copying


Key Management System
Cloud key management service ID



system to outsource all key management



responsibilities


People forget passwords
Pass eliminates the use of


and passwords are
passwords using ID center


a weak point in security










FIG. 5 illustrates a more particular example of a secret key transfer process 30 according to the concepts described herein. While an example using square matrices of a certain size is provided below, the concepts described herein can be extended to use with square matrices of any size. Further, although the example below is presented in certain cases as steps between “Alice” and “Bob,” the process is conducted by computing systems or devices.


At the outset, consider the key to be exchanged, K, as a sequence of m bytes, each including one of the ASCII codes from 0 to 255, as follows:

K={k1,k2, . . . ,km}, 0≤ki≤255.


For example, the key string “ABCD” can be presented as ASCII codes K={65, 66, 67, 68}. A sequence of real numbers X can then be defined as a transformation of the key numbers (i.e., k1, k2, km), which are integers, into real ones, as follows:

X=Φ(K), Φ:Nm→Rm and
X={x1,x2, . . . ,xm}, xi∈R.


The sequence of real numbers is put into set of second order square matrices, as follows:






X
=




"\[LeftBracketingBar]"





x
1




x
2






x
3




x
4






"\[RightBracketingBar]"










"\[LeftBracketingBar]"





x

m
-
3





x

m
-
2







x

m
-
1





x
m






"\[RightBracketingBar]"







If the number of real key numbers is not multiple of four, the last matrix is not fully filled in. In this case, the rest of the matrix members can be generated and added as any random numbers without influencing the algorithm.


Now, assume that Alice wants to pass the secret key K to Bob. For simplicity, however, consider one square matrix X, as follows:






X
=



"\[LeftBracketingBar]"





x
1




x
2






x
3




x
4






"\[RightBracketingBar]"







The matrix X decomposes into two singular matrices Z1 and Z2:







X
=


Z
1



Z
2



,








Z
1

=



"\[LeftBracketingBar]"





Z
1




Z
2






Z
3






Z
2



Z
3



Z
1







"\[RightBracketingBar]"



,
and







Z
2

=



"\[LeftBracketingBar]"





Z
4




Z
5






Z
6






Z
4



Z
5



Z
6







"\[RightBracketingBar]"






At step 302, the process includes forming the matrix X as a singular matrix using a number of the real key numbers of the secret key K based on the following relationship x4=x2x3/x1. In that case, the inverse of matrix X, or X−1, does not exist (see properties of singular matrices and matrix determinants in APPENDIX). In that case, the matrix X represents a portion of the secret key K,{k1, k2, k3}.


As part of a first pass transaction, at step 302, the process further includes generating a uniformly distributed random matrices Y1, Y2 and inverse matrices Y1−1, Y2−1, as follows:








Y
1

=



"\[LeftBracketingBar]"





y
1




y
2






y
3




y
4






"\[RightBracketingBar]"



,








Y
1

-
1


=




"\[LeftBracketingBar]"





y
4




-

y
2







-

y
3





y
1






"\[RightBracketingBar]"





y
1



y
4


-


y
2



y
3





,


y
i


R

,



y
1



y
4





y
2



y
3



,








Y
2

=



"\[LeftBracketingBar]"





y
5




y
6






y
7




y
8






"\[RightBracketingBar]"



,
and








Y
2

-
1


=




"\[LeftBracketingBar]"





y
8




-

y
6







-

y
7





y
5






"\[RightBracketingBar]"





y
5



y
8


-


y
6



y
7





,


y
i


R

,



y
5



y
8





y
6




y
7

.







At step 302, the process also includes generating uniformly distributed random centrosymmetric A1, A2, B1, B2, and inverse A1−1, A2−1, B1−1, B2−1 matrices as follows:








A
1

=



"\[LeftBracketingBar]"





a
1




a
2






a
2




a
1






"\[RightBracketingBar]"



,








A
2

=



"\[LeftBracketingBar]"





a
3




a
4






a
4




a
3






"\[RightBracketingBar]"



,








A
1

-
1


=




"\[LeftBracketingBar]"





a
1




-

a
2







-

a
2





a
1






"\[RightBracketingBar]"




a
1
2

-

a
2
2




,








A
2

-
1


=




"\[LeftBracketingBar]"





a
3




-

a
4







-

a
4





a
3






"\[RightBracketingBar]"




a
3
2

-

a
4
2




,


a
i


R

,


a
1
2



a
2
2


,


a
3
2



a
4
2


,








B
1

=



"\[LeftBracketingBar]"





b
1




a
2






b
2




b
1






"\[RightBracketingBar]"



,








B
2

=



"\[LeftBracketingBar]"





b
3




b
4






b
4




b
3






"\[RightBracketingBar]"



,








B
1

-
1


=




"\[LeftBracketingBar]"





b
1




-

b
2







-

b
2





b
1






"\[RightBracketingBar]"




b
1
2

-

b
2
2




,








B
2

-
1


=



"\[LeftBracketingBar]"





b
3




-

b
4







-

b
4





b
3






"\[RightBracketingBar]"



,


b
i


R

,


b
1
2



b
2
2


,


b
3
2




b
4
2

.







Centrosymmetric square matrices A and B are always of the form AB=BA.


At step 304, the process includes Alice generating and sending matrices M1 and M2 to Bob, as follows:








M
1

=



"\[LeftBracketingBar]"





m
1

(
1
)





m
2

(
1
)







m
3

(
1
)





m
4

(
1
)







"\[RightBracketingBar]"



,








M
2

=



"\[LeftBracketingBar]"





m
1

(
2
)





m
2

(
2
)







m
3

(
2
)





m
4

(
2
)







"\[RightBracketingBar]"



,








M
3

=



"\[LeftBracketingBar]"





m
1

(
3
)





m
2

(
3
)







m
3

(
3
)





m
4

(
3
)







"\[RightBracketingBar]"



,
and







M
4

=




"\[LeftBracketingBar]"





m
1

(
4
)





m
2

(
4
)







m
3

(
4
)





m
4

(
4
)







"\[RightBracketingBar]"


.






which are generated according to the following calculations:

M1=Y1A1,  (3)
M2=B1Y1−1Z1,  (4)
M3=Y2A2, and  (5)


Thus, at step 304, Alice sends to Bob fourteen publicly visible values (m1(1), m2(1), m3(1), m4(1), m1(2), m2(2), m3(2), m1(3), m2(3), m3(3), m4(3), m1(4), m2(4), m3(4)) of matrices M1, M2, M3 and M4 that are calculated from twenty-two independent unknown (for the third party) variables (a1, a2, a3, a4, b1, b2, b3, b4, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6) known by Alice only, as follows:








m
1

(
1
)


=



a
1



y
1


+


a
2



y
2




,








m
2

(
1
)


=



a
2



y
1


+


a
1



y
2




,








m
3

(
1
)


=



a
1



y
3


+


a
2



y
4




,








m
4

(
1
)


=



a
2



y
3


+


a
1



y
4




,








m
1

(
2
)


=




b
1

(



x
1



y
4


-


x
3



y
2



)

+


b
2

(



x
3



y
1


-


x
1



y
3



)





y
1



y
4


-


y
2



y
3





,








m
2

(
2
)


=




b
1

(



x
2



y
4


-


y
2



x
2



x
3

/

x
1



)

+


b
2

(



y
1



x
2



x
3

/

x
1


-


x
2



y
3



)





y
1



y
4


-


y
2



y
3





,







m
3

(
2
)


=




b
2

(



x
1



y
4


-


x
3



y
2



)

+


b
1

(



x
3



y
1


-


x
1



y
3



)





y
1



y
4


-


y
2



y
3












m
1

(
3
)


=



a
3



y
5


+


a
4



y
6




,








m
2

(
3
)


=



a
4



y
5


+


a
3



y
6




,








m
3

(
3
)


=



a
3



y
7


+


a
4



y
8




,








m
4

(
3
)


=



a
4



y
7


+


a
3



y
8




,








m
1

(
4
)


=




b
3

(



x
4



y
8


-


x
6



y
6



)

+


b
4

(



x
6



y
5


-


x
4



y
7



)





y
5



y
4


-


y
6



y
3





,








m
2

(
4
)


=




b
3

(



x
5



y
8


-


y
6





x
5



x
6



x
4




)

+


b
4

(



y
5





x
5



x
6



x
4



-


x
5



y
7



)





y
5



y
8


-


y
6



y
7





,
and







m
3

(
4
)


=





b
4

(



x
4



y
8


-


x
6



y
6



)

+


b
3

(



x
6



y
5


-


x
4



y
7



)





y
5



y
8


-


y
6



y
7




.





The variable m4(2) and m4(4) of the singular matrices M2 and M2 are used as m4(2)=m2(2)m3(2)/m1(2) and m4(2)=m2(2)m3(2)/m1(2).


As a second pass transaction, at step 306, the process includes Bob receiving the M1 and M2 matrices from Alice. At step 306, the process includes generating uniformly distributed random centrosymmetric matrices C1, C2 and inverse C1−1, C2−1 matrices, as follows:








C
1

=



"\[LeftBracketingBar]"





c
1




c
2






c
2




c
1






"\[RightBracketingBar]"



,








C
2

=



"\[LeftBracketingBar]"





c
3




c
4






c
4




c
3






"\[RightBracketingBar]"



,








C
1

-
1


=




"\[LeftBracketingBar]"





c
1




-

c
2







-

c
2





c
1






"\[RightBracketingBar]"




c
1
2

-

c
2
2




,


c
i


R

,


c
1
2



c
2
2


,
and








C
2

-
1


=




"\[LeftBracketingBar]"





c
3




-

c
4







-

c
4





c
3






"\[RightBracketingBar]"




c
3
2

-

c
4
2




,


c
i


R

,


c
3
2




c
4
2

.






The process at step 306 also includes generating uniformly distributed random matrices D and H, as follows:







D
=



"\[LeftBracketingBar]"





d
1




d
2






d
3




d
4






"\[RightBracketingBar]"



,
and







H
=



"\[LeftBracketingBar]"





h
1




h
2






h
3




h
4






"\[RightBracketingBar]"



,

d
i

,


h
i


R

,



d
1



d
4





d
2



d
3



,



h
1



h
4





h
2




h
3

.







The process at step 306 also includes generating corresponding inverse matrices D−1 and H−1, as follows:








D

-
1


=




"\[LeftBracketingBar]"





d
1




d
2






d
3




d
4






"\[RightBracketingBar]"





d
1



d
4


-


d
2



d
3





,
and







H

-
1


=





"\[LeftBracketingBar]"





h
1




h
2






h
3




h
4






"\[RightBracketingBar]"





h
1



h
4


-


h
2



h
3




.





The process at step 306 also includes generating the matrices M5, M6, M7 and M8, as follows:








M
5

=



"\[LeftBracketingBar]"





m
1

(
5
)





m
2

(
5
)







m
3

(
5
)





m
4

(
5
)







"\[RightBracketingBar]"



,








M
6

=



"\[LeftBracketingBar]"





m
1

(
6
)





m
2

(
6
)







m
3

(
6
)





m
4

(
6
)







"\[RightBracketingBar]"



,








M
6

=



"\[LeftBracketingBar]"





m
1

(
7
)





m
2

(
7
)







m
3

(
7
)





m
4

(
7
)







"\[RightBracketingBar]"



,
and







M
8

=



"\[LeftBracketingBar]"





m
1

(
8
)





m
2

(
8
)







m
3

(
8
)





m
4

(
8
)







"\[RightBracketingBar]"







as a result of the following calculations:

M5=DM1C1−1=D1Y1A1C1−1,  (7)
M6=C1M2E=C1B1Y1−1Z1E,  (8)
M7=E−1M3C2−1=E−1YA2C2−1, and  (9)
M8=C2M4H=C2B2Y2−1Z2H.  (10)


At step 308, the process includes Bob sending to Alice fourteen publicly visible values (m1(5), m2(5), m3(5), m4(5), m1(6), m2(6), m3(6), m1(7), m2(7), m3(7), m4(7), m1(8)m2(8), m3(8)) of matrices M3 and M4 that are calculated from sixteen independent unknown (for the third party) variables (c1, c2, c3, c4, d1, d2, d3, d4, e1, e2, e3, e4, h1, h2, h3, h4) which are known by Bob only, as follows:








m
1

(
5
)


=




c
1

(



d
1



m
1

(
1
)



+


d
2



m
3

(
1
)




)

-

c

(



d
1



m

2



(
1
)



+


d
2



m
4

(
1
)




)




c
1
2

-

c
2
2




,








m
2

(
5
)


=




c
1

(



d
1



m
2

(
1
)



+


d
2



m
4

(
1
)




)

-


c
2

(



d
1



m
1

(
1
)



+


d
2



m
3

(
1
)




)




c
1
2

-

c
2
2




,








m
3

(
5
)


=




c
1

(



d
3



m
1

(
1
)



+



d


4



m
3

(
1
)




)

-


c
2

(



d
3



m

2



(
1
)



+


d
4



m
4

(
1
)




)




c
1
2

-

c
2
2




,








m
4

(
5
)


=




c
1

(



d
3



m
2

(
1
)



+


d
4



m
4

(
1
)




)

-


c
2

(



d
3



m
1

(
1
)



+


d
4



m
3

(
1
)




)




c
1
2

-

c
2
2




,








m
1

(
6
)


=



(



c
1



m
1

(
2
)



+


c
2



m
3

(
2
)




)



e
1


+


(



c
1



m
2

(
2
)



+


c
2



m
4

(
2
)




)



e
3




,








m
2

(
6
)


=



(



c
1



m
1

(
2
)



+


c
2



m
3

(
2
)




)



e
2


+


(



c
2



m
2

(
2
)



+


c
2



m
4

(
2
)




)



e
4




,








m
3

(
6
)


=



(



c
2



m
1

(
2
)



+


c
2



m
3

(
2
)




)



e
1


+


(



c
1



m
2

(
2
)



+


c
1



m
4

(
2
)




)



e
3




,








m
4

(
6
)


=


m
2

(
6
)




m
3

(
6
)


/

m
1

(
6
)




,








m
1

(
7
)


=




c
3

(



e
4



m
1

(
3
)



-


e
2



m
3

(
3
)




)

-


c
4

(



e
4



m
2

(
3
)



-


e
2



m
4

(
3
)




)




(


c
3
2

-

c
4
3


)



(



e
1



e
4


-


e
2



e
3



)




,








m
2

(
7
)


=




c
3

(



e
4



m
2

(
3
)



-


e
2



m
4

(
3
)




)

-


c
4

(



e
4



m
1

(
3
)



-


e
2



m
3

(
3
)




)




(


c
3
2

-

c
4
3


)



(



e
1



e
4


-


e
2



e
3



)




,








m
3

(
7
)


=




c
3

(



e
1



m
3

(
3
)



-


e
3



m
1

(
3
)




)

-


c
4

(



e
1



m
4

(
3
)



-


e
3



m
2

(
3
)




)




(


c
3
2

-

c
4
2


)



(



e
1



e
4


-


e
2



e
3



)




,








m
4

(
7
)


=




c
3

(



e
1



m
4

(
3
)



-


e
3



m
2

(
3
)




)

-


c
4

(



e
1



m
3

(
3
)



-


e
3



m
1

(
3
)




)




(


c
3
2

-

c
4
2


)



(



e
1



e
4


-


e
2



e
3



)




,








m
1

(
8
)


=



(



c
3



m
1

(
4
)



+


c
4



m
3

(
4
)




)



h
1


+


(



c
3



m
2

(
4
)



+


c
4



m
4

(
4
)




)



h
3




,








m
2

(
8
)


=



(



c
3



m
1

(
4
)



+


c
4



m
3

(
4
)




)



h
2


+


(



c
3



m
2

(
4
)



+


c
4



m
4

(
4
)




)



h
4




,








m
3

(
8
)


=



(



c
3



m
1

(
4
)



+


c
3



m
3

(
4
)




)



h
1


+


(



c
4



m
2

(
4
)



+


c
3



m
4

(
4
)




)



h
3




,
and




As a third pass transaction, at step 310, the process includes Alice receiving from Bob the matrices M3, M6, M7, and M8 as follows:

M5=DY1A1C1−1,
M6=C1B1Y1−1Z1E.
M7=E−1Y2A2C2−1, and
M8=CBY−1XH.


Note that centrosymmetric matrices satisfy the following conditions:

AC−1=C−1A and
CB=BC,

meaning that the matrices M5, M6, M7, and M8 can be transformed into:

M5=DY1A1C1−1=DY1C1−1A1,
M6=C1B1Y1−1Z1E=B1C1Y1−1Z1E,
M7=E−1Y2A2C2−1=E−1Y2C2−1A2, and
M8=C2B2Y2−1Z2H=B2C2Y2−1Z2H.


Thus, at step 312, the process includes multiplying the matrices M5, M6, M7 and M8 with the known inverse matrices A1−1, A2−1, B1−1 and B2−1, respectively, as follows:

M5A1−1=DY1C1−1A1A1−1=DY1C1−1,
B1−1M6=B1−1B1C1Y1−1Z1E=C1Y1−1Z1E,
M7A2−1=E−1Y2C2−1A2A2−1=E−1Y2C2−1, and
B2−1M8=B2−1B2C2Y2−1Z2H=C2Y2−1Z2H.


Further, at step 314, the process includes multiplying the results of those together to arrive at the matrix M5, as follows:








M
9

=


M
5



A
1

-
1




B
1

-
1




M
6



M
7



A
2

-
1




B
2

-
1




M
8



,








M
9

=



DY
1



C
1

-
1




C
1



Y
1

-
1




Z
1



EE

-
1




Y
2



C
2

-
1




C
2



Y
2

-
1




Z
2


H

=


DZ
1



Z
2


H



,






such


that











M
9

=
DXH

,




(
11
)








and






M
9

=




"\[LeftBracketingBar]"





m
1

(
9
)





m
2

(
9
)







m
3

(
9
)





m
4

(
9
)







"\[RightBracketingBar]"


.





At step 316, the process includes Alice sending the following three publicly visible values to Bob (m1(9), m2(9), m3(9), as follows:

m1(9)=(d1x1+d2x3)h1+(d1x2+d2x4)h3,
m2(9)=(d1x1+d2x3)h2+(d1x2+d2x4)h4,
m3(9)=(d3x1+d4x3)h1+(d3x2+d4x4)h3, and
m4(9)=m3(9)m2(9)/m1(9).


Thus, as part of the final key restoration at step 316, Bob receives the matrix M9 from Alice, as follows:

M9=DXH.


At step 318, the process includes Bob restoring the key X from Alice by using inverse matrices D−1 and H−1, which are known to Bob, and the matrix M5, as follows:

D−1M9H−1=D−1DXHH−1=X.


As shown in Table 6 below, the entire scheme of the key exchange process can be performed using an exchange of matrices with a corresponding number of different unknown independent variables (underlined in Table 6) and visible (by the third party) values (bolded in Table 6). This scheme demonstrates that the number of unknown independent variables always exceeds the number of visible independent values in any combination of subsets of matrices.


This means that the system of nonlinear equations is an indeterminate system. There are no algorithms for the third party to obtain unknown independent variables including the secret key X using the visible independent values.
















TABLE 6











Independent



















Variables
Variables

Values

















1
Alice
Y1A1
A1[2], Y1[4]

22

M1[4]

4


14





B1Y1−1Z1
B1[2], Z1[3]

M2[4]

3






Y2A2
A2[2], Y2[4]

M3[4]

4






B2Y2−1Z2
B2[2], Z2[3]

M4[4]

3




2
Bob
DY1A1C1−1
D [4], C1[2]

16

M5[4]

4


14





C1B1Y1−1 Z1E
E [4]

M6[4]

3






B−1Y2A2C2−1


M7[4]

4






C2B2Y2−1 Z2H
C2[2], H [4]

M8[4]

3




3
Alice
DXH


M9[3]

3


3













Total



38



31










The direct restoration of the matrix X (using formula transformations of Eqs.3-11 is also impossible. Note that the matrix X is singular. It leads to several features, which are used to perform the key exchange algorithm resistant against the third party decryption (see APPENDIX):


The matrices M2, M4, M6, M8, and M9
M2=B1Y1−1Z1,
M4=B2Y2−1Z2,
M6=C1B1Y1−1Z1E,
M8=C2B2Y2−1Z2H, and
M9=DZ1Z2H

are also singular (due to the matrices Z1 and Z2 being singular).


Thus, the equation M5L1M6M7L2M8=M9 (from the Eqs. 7-10) can not be resolved in regards to centrosymmetric matrices L1=A1−1B1−1 and L2=A2−1B2−1 by the third party as far as the matrix M9 is singular so, the direct calculation X=M1L1M2M3L2M4 is not possible.


The concepts described herein can be used for other cryptographic operations, such as key exchanging using authentication. FIG. 6 illustrates an example secret material or key exchanging process using authentication according to the concepts described herein.


As shown in FIG. 6, Alice wants to pass the secret key K to Bob. They use Ed as an independent party for authentication. In the transaction, the square singular matrix






X
=



"\[LeftBracketingBar]"





x
1




x
2






x
3




x
4






"\[RightBracketingBar]"







is used to represent the key K={k1, k2, k3}, where x4=x2x3/x1.


It is assumed that Alice and Bob both have passed the authentication procedure and both have got corresponding session numbers N1A, N2A and N1B, N2B from Ed according to the concepts described above.


Alice and Bob form centrosymmetric matrices NA and NB correspondently, as follows:







N
A

=





"\[LeftBracketingBar]"





N
1
A




N
2
A






N
2
A




N
1
A






"\[RightBracketingBar]"




and



N
AB


=




"\[LeftBracketingBar]"





N
1
B




N
2
B






N
2
B




N
1
B






"\[RightBracketingBar]"


.






As part of a first pass transaction, at step 402, the process 40 includes Alice generating uniformly distributed random matrices Y1, Y2 and inverse matrices Y1−1, Y2−1, as follows:








Y
1

=



"\[LeftBracketingBar]"





y
1




y
2






y
3




y
4






"\[RightBracketingBar]"



,








Y
1

-
1


=




"\[LeftBracketingBar]"





y
4




-

y
2







-

y
3





y
1






"\[RightBracketingBar]"





y
1



y
4


-


y
2



y
3





,


y
i


R

,



y
1



y
4





y
2



y
3



,








Y
2

=



"\[LeftBracketingBar]"





y
5




y
6






y
7




y
8






"\[RightBracketingBar]"



,
and








Y
2

-
1


=




"\[LeftBracketingBar]"





y
8




-

y
6







-

y
7





y
5






"\[RightBracketingBar]"





y
5



y
6


-


y
6



y
7





,


y
i


R

,



y
5



y
8





y
6




y
7

.







Alice also generates uniformly distributed random centrosymmetric matrices A and B, as follows:








A
1

=



"\[LeftBracketingBar]"





a
1




a
2






a
2




a
1






"\[RightBracketingBar]"



,








A
2

=



"\[LeftBracketingBar]"





a
3




a
4






a
4




a
3






"\[RightBracketingBar]"



,








A
1

-
1


=




"\[LeftBracketingBar]"





a
1




-

a
2







-

a
2





a
1






"\[RightBracketingBar]"




a
1
2

-

a
2
2




,








A
2

-
1


=




"\[LeftBracketingBar]"





a
3




a
4






a
4




a
3






"\[RightBracketingBar]"




a
3
2

-

a
4
2




,


a
i


R

,


a
1
2



a
2
2


,


a
3
2



a
4
2


,








B
1

=



"\[LeftBracketingBar]"





b
1




b
2






b
2




b
1






"\[RightBracketingBar]"



,








B
2

=



"\[LeftBracketingBar]"





b
3




b
4






b
4




b
3






"\[RightBracketingBar]"



,








B
2

-
1


=



"\[LeftBracketingBar]"





b
3




-

b
4







-

b
4





b
3






"\[RightBracketingBar]"



,


b
i


R

,


b
1
2



b
2
2


,


b
3
2



b
4
2


,




Note that any centrosymmetric square matrices A and B always have the following feature: AB=BA. At step 404, the process includes Alice sending to Bob results as matrices M1 and M2, as follows:








M
1

=



"\[LeftBracketingBar]"





m
1

(
1
)





m
2

(
1
)







m
3

(
1
)





m
4

(
1
)







"\[RightBracketingBar]"



,








M
2

=



"\[LeftBracketingBar]"





m
1

(
2
)





m
2

(
2
)







m
3

(
2
)





m
4

(
2
)







"\[RightBracketingBar]"



,








M
3

=



"\[LeftBracketingBar]"





m
1

(
3
)





m
2

(
3
)







m
3

(
3
)





m
4

(
3
)







"\[RightBracketingBar]"



,
and







M
4

=




"\[LeftBracketingBar]"





m
1

(
4
)





m
2

(
4
)







m
3

(
4
)





m
4

(
4
)







"\[RightBracketingBar]"


.






of the following calculations:

M1=Y1A1,  (1B)
M2=B1Y1−1Z1,  (2B)
M3=Y2A2, and  (3B)
M4=B2Y2−1Z2.  (4B)


As part of a second pass transaction, at step 406, Bob receives M1 and M2 from Alice. Bob generates uniformly distributed random centrosymmetric matrices C1, C2 and inverse C1−1, C2−1 matrices, as follows:








C
1

=



"\[LeftBracketingBar]"





c
1




c
2






c
2




c
1






"\[RightBracketingBar]"



,








C
2

=



"\[LeftBracketingBar]"





c
3




c
4






c
4




c
3






"\[RightBracketingBar]"



,








C
1

-
1


=




"\[LeftBracketingBar]"





c
1




-

c
2







-

c
2





c
1






"\[RightBracketingBar]"




c
1
2

-

c
2
2




,


c
i


R

,


c
1
2



c
2
2


,
and








C
2

-
1


=




"\[LeftBracketingBar]"





c
3




-

c
4







-

c
4





c
3






"\[RightBracketingBar]"




c
3
2

-

c
4
2




,


c
i


R

,


c
3
2




c
4
2

.







and uniformly distributed random matrices D and H, as follows:







D
=



"\[LeftBracketingBar]"





d
1




d
2






d
3




d
4






"\[RightBracketingBar]"



,
and







H
=



"\[LeftBracketingBar]"





h
1




h
2






h
3




h
4






"\[RightBracketingBar]"



,

d
i

,


h
i


R

,



d
1



d
4





d
2



d
3



,



h
1



h
4





h
2



h
3



,





and correspondent inverse matrices D−1 and H−1, as follows:








D

-
1


=




"\[LeftBracketingBar]"





d
1




d
2






d
3




d
4






"\[RightBracketingBar]"





d
1



d
4


-


d
2



d
3





,
and







H

-
1


=





"\[LeftBracketingBar]"





h
1




h
2






h
3




h
4






"\[RightBracketingBar]"





h
1



h
4


-


h
2



h
3




.





At step 406, Bob also obtains the matrices M5, M6, M7, and M8, defined as follows:








M
5

=



"\[LeftBracketingBar]"





m
1

(
5
)





m
2

(
5
)







m
3

(
5
)





m
4

(
5
)







"\[RightBracketingBar]"



,








M
6

=



"\[LeftBracketingBar]"





m
1

(
6
)





m
2

(
6
)







m
3

(
6
)





m
4

(
6
)







"\[RightBracketingBar]"



,








M
7

=



"\[LeftBracketingBar]"





m
1

(
7
)





m
2

(
7
)







m
3

(
7
)





m
4

(
7
)







"\[RightBracketingBar]"



,
and







M
8

=




"\[LeftBracketingBar]"





m
1

(
8
)





m
2

(
8
)







m
3

(
8
)





m
4

(
8
)







"\[RightBracketingBar]"


.






as a result of the following calculations:

M5=DM1C1−1=D1Y1A1C1−1,  (5B)
M6=C1M2E=C1B1Y1−1Z1E,  (6B)
M7=E−1M3C2−1=E−1YA2C2−1, and  (7B)
M8=C2M4H=C2B2Y2−1Z2H.  (8B)


As part of a third pass transaction, at step 408, the process includes Alice generating a uniformly distributed random matrix G, as follows:







G
=



"\[LeftBracketingBar]"





g
1




g
2






g
3




g
4






"\[RightBracketingBar]"



,


g
i



R
.






Alice receives from Bob the matrices M5, M6, M7 and M8, as follows:

M5=DY1A1C1−1=DY1C1−1A1,
M6=C1B1Y1−1Z1E=B1C1Y1−1Z1E,
M7=E−1Y2A2C2−1=E−1Y2C2−1A2, and
M8=C2B2Y2−1Z2H=B2C2Y2−1Z2H.


At step 408, the process also includes Alice multiplying both the matrices M5, M6, M7 and M8 with the inverse matrices which are known to her, A1−1, A2−1, B1−1 and B2−1, respectively, as follows:











B
1

-
1




M
6


=



B
1

-
1




B
1



C
1



Y
1

-
1




Z
1


E

=


C
1



Y
1

-
1




Z
1


E



,












B
1

-
1




M
6


=



B
1

-
1




B
1



C
1



Y
1

-
1




Z
1


E

=


C
1



Y
1

-
1




Z
1


E



,












M
7



A
2

-
1



=



E

-
1




Y
2



C
2

-
1




A
2



A
2

-
1



=


E

-
1




Y
2



C
2

-
1





,
and












B
2

-
1




M
8


=



B
2

-
1




B
2



C
2



Y
2

-
1




Z
2


H

=


C
2



Y
2

-
1




Z
2


H



,









M
5

=



GM
5



A
1

-
1




B
1

-
1




M
6



M
7



A
2

-
1




B
2

-
1




M
8


=


GDY
1



C
1

-
1




C
1



Y
1

-
1




Z
1



EE

-
1




Y
2



C
2

-
1




C
2



Y
2

-
1




Z
2


H



,
such










M
9

=

GDXH

(

9

B

)


,
where










M
9

=




"\[LeftBracketingBar]"





m
1

(
9
)





m
2

(
9
)







m
3

(
9
)





m
4

(
9
)







"\[RightBracketingBar]"


.






At step 410, the process includes Alice sending three publicly visible values to Bob, including (m1(9), m2(9), m3(9)). The matrix M is singular and m4(9)=m3(9)m2(9)/m1(9). At step 412, Alice also sends four publicly visible values to Ed (m1(6),m2(6),m3(6),m4(6)) of the matrix M10, defined as:








M
10

=



"\[LeftBracketingBar]"





m
1

(
10
)





m
2

(
10
)







m
3

(
10
)





m
4

(
10
)







"\[RightBracketingBar]"



,





as a result of the following calculations:

M10−N{circumflex over ( )}G.  (9B)


For authentication, Ed receives the matrix M6 from Alice. At step 414, Ed sends to Bob the matrix M11 using the inverse matrix (NA)−1 and the matrix NB′ as follows:

M11=NB(NA)−1NAG=NBG,
M11=NBG.  (10B).


As part of the final key restoration, at step 416, the process includes Bob receiving the matrix M11 from Ed and obtaining the matrix G using the inverse matrix (NB)−1, as follows:

G=(NB)−1M11=(NB)−1NBG.


Bob also receives the matrix M9 from Alice at step 410. Using inverse matrices G−1, D−1, and H−1, which are known to Bob, he can restore the key X from the received matrix M5 as follows:

D−1G−1M9H−1=D−1C−1GDXHH−1=X.


The embodiments described herein can be implemented by either a method or process or as a system or device. The method can be performed using any suitable computing device, and the system can be embodied as any suitable computing device. The computing device can include at least one processing system, for example, having one or more processors and memories electrically and communicatively coupled together using a local interface. The local interface can be embodied as a data bus with an accompanying address/control bus or other addressing, control, and/or command lines.


In various embodiments, the memory can store data and software or executable code components executable by the processor. For example, the memory can store executable-code components associated with cryptographic operations for execution by the processor. The software or executable-code components can be developed using or embodied in various programming languages, such as, for example, C, C++, C#, Objective C, JAVA®, JAVASCRIPT®, Perl, PHP, VISUAL BASIC®, PYTHON®, RUBY, FLASH®, or other programming languages.


The embodiments can rely, in part, on executable instructions or instructions for execution by the computing device. The terms “executable” or “for execution” refer to software forms that can ultimately be run or executed by a processor, whether in source, object, machine, or other form. Examples of executable programs include, for example, a compiled program that can be translated into a machine code format and loaded into a random access portion of memory and executed by a processor, source code that can be expressed in an object code format and loaded into a random access portion of the memory and executed by the processor, or source code that can be interpreted by another executable program to generate instructions in a random access portion of the memory and executed by the processor, etc.


An executable program can be stored in any portion or component of the memory including, for example, a random access memory (RAM), read-only memory (ROM), magnetic or other hard disk drive, solid-state, semiconductor, or similar drive, universal serial bus (USB) flash drive, memory card, optical disc (e.g., compact disc (CD)) or digital versatile disc (DVD)), floppy disk, magnetic tape, or other memory component.


Although the process diagram shown in FIGS. 2 and 5 illustrate a certain order, it is understood that the order can differ from that which is depicted. For example, an order of execution of two or more blocks can be scrambled relative to the order shown. Also, two or more blocks shown in succession can be executed concurrently or with partial concurrence.


Further, in some embodiments, one or more of the blocks can be skipped or omitted. In addition, any number of counters, state variables, warning semaphores, or messages might be added to the logical flow described herein, for purposes of enhanced utility, accounting, performance measurement, or providing troubleshooting aids, etc. It is understood that all such variations are within the scope of the present disclosure.


Also, any algorithm, method, process, or logic described herein that are embodied, at least in part, by software or executable-code components, can be embodied or stored in any tangible or non-transitory computer-readable medium or device for execution by an instruction execution system such as a general purpose processor. In this sense, the logic can be embodied as, for example, software or executable-code components that can be fetched from the computer-readable medium and executed by the instruction execution system. Thus, the instruction execution system can be directed by execution of the instructions to perform certain processes such as those illustrated in FIG. 2. In the context of the present disclosure, a “computer-readable medium” can be any tangible medium that can contain, store, or maintain any logic, application, software, or executable-code component described herein for use by or in connection with an instruction execution system.


The computer-readable medium can include any physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium can include a RAM including, for example, an SRAM, DRAM, or MRAM. In addition, the computer-readable medium can include a ROM, a PROM, an EPROM, an EEPROM, or other similar memory device.


Disjunctive language, such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is to be understood with the context as used in general to present that an item, term, etc., can be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to be each present.


It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications can be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.

Claims
  • 1. A method of cryptography, comprising: encrypting a symmetric key by applying at least one associative cryptography key operation to the symmetric key to generate an encrypted symmetric key, wherein the at least one associative cryptography key operation is based on applying a polynomial function composed by a combination of independent random variables with uniform probability distribution and white noise randomization;transmitting, with a first computing device, the encrypted symmetric key from the first computing device to a second computing device;decrypting the encrypted symmetric key by applying at least one inverse associative cryptography key operation to the encrypted symmetric key to produce the symmetric key.
  • 2. A computing device comprising: a processor; anda memory for storing an application to be executed by the processor, the application, which when executed, causes the processor to: encrypt a symmetric key by applying at least one associative cryptography key operation to the symmetric key to generate an encrypted symmetric key, wherein the at least one associative cryptography key operation is based on applying a polynomial function composed by a combination of independent random variables with uniform probability distribution and white noise randomization; andtransmit the encrypted symmetric key to a remote computing device, wherein the remote computing device receives the encrypted symmetric key transmitted and decrypts the encrypted symmetric key by applying at least one inverse associative cryptography key operation to the encrypted symmetric key to produce the symmetric key.
  • 3. A system, comprising: a first computing device comprising: a first processor; anda first memory for storing a first application to be executed by the first processor, the application, which when executed, causes the processor to: encrypt a symmetric key by applying at least one associative cryptography key operation to the symmetric key to generate an encrypted symmetric key, wherein the at least one associative cryptography key operation is based on applying a polynomial function composed by a combination of independent random variables with uniform probability distribution and white noise randomization; andtransmit the encrypted symmetric key to a second computing device; andthe second computing device comprising: a second processor; anda second memory for storing a second application to be executed by the second processor, the application, which when executed, causes the processor to: receive the encrypted symmetric key transmitted from the first computing device; anddecrypt the encrypted symmetric key by applying at least one inverse associative cryptography key operation to the encrypted symmetric key to produce the symmetric key.
CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a divisional application of co-pending application Ser. No. 17/040,949. entitled “SECRET MATERIAL EXCHANGE AND AUTHENTICATION CRYPTOGRAPHY OPERATIONS,” filed on Sep. 23, 2020, which claims priority to PCT Application No. PCT/US2019/041871, filed on Jul. 15, 2019, and titled “SECRET MATERIAL EXCHANGE AND AUTHENTICATION CRYPTOGRAPHY OPERATIONS,” which claims priority under 35 U.S.C. 119 (e) to the U.S. provisional patent application, Application No. 62/698,644, filed on Jul. 16, 2018, and entitled “SECRET MATERIAL EXCHANGE AND AUTHENTICATION CRYPTOGRAPHY OPERATIONS,” which are all hereby incorporated by reference in their entirety for all purposes.

US Referenced Citations (358)
Number Name Date Kind
5850444 Rune Dec 1998 A
5987130 Chang Nov 1999 A
6947943 DeAnna Sep 2005 B2
7468927 Battista Dec 2008 B1
7571320 Davis Aug 2009 B2
D607009 McEnaney Dec 2009 S
7683773 Goodall Mar 2010 B1
D614192 Takani Apr 2010 S
7885635 Laursen Feb 2011 B2
7925013 Washington Apr 2011 B1
7992102 De Angelo Aug 2011 B1
7992190 Mevissen Aug 2011 B2
8139581 Mraz Mar 2012 B1
8218762 Itoh Jul 2012 B2
8363259 Gillboa Jan 2013 B2
8417642 Oren Apr 2013 B2
8417643 Mardikar Apr 2013 B2
8543834 Barra Sep 2013 B1
8543884 Mansour Sep 2013 B2
8621209 Johansson Dec 2013 B1
8639785 Kiley Jan 2014 B2
8892871 Cho Nov 2014 B2
D719176 Cohen Dec 2014 S
D719177 Cohen Dec 2014 S
D723050 Minsung et al. Feb 2015 S
8959579 Barton Feb 2015 B2
9112835 Izozaki Aug 2015 B2
9210156 Little Dec 2015 B1
9219732 Baghdassaryan Dec 2015 B2
9225695 Riera Dec 2015 B1
9350539 Veugen May 2016 B2
9392460 Blake Jul 2016 B1
9419951 Felsher et al. Aug 2016 B1
D765669 Shaw Sep 2016 S
9485237 Johansson Nov 2016 B1
9615066 Tran Apr 2017 B1
9665169 Dai May 2017 B1
9706406 Adams Jul 2017 B1
D800764 Thoreson Oct 2017 S
9854218 Mardikar Dec 2017 B2
D813884 Penker Mar 2018 S
9959694 Lindsay May 2018 B2
9961547 Molina-Markham May 2018 B1
10019561 Shelton Jul 2018 B1
10200364 Ketharaju et al. Feb 2019 B1
D847857 Elatta May 2019 S
10374800 Sharfi Aug 2019 B1
10402800 Lucas Sep 2019 B2
10404458 Yamada Sep 2019 B1
10430789 Herald, Jr. Oct 2019 B1
10432605 Lester Oct 2019 B1
10437975 Shelton Oct 2019 B1
10521223 Bogushefsky, III Dec 2019 B1
10559307 Khalegi Feb 2020 B1
10630467 Gilbert Apr 2020 B1
10674446 Trent Jun 2020 B1
10769633 Dua Sep 2020 B2
10810290 Minter et al. Oct 2020 B2
10867021 Shelton Dec 2020 B1
10887307 Newstadt Jan 2021 B1
10911425 Hitchcock Feb 2021 B1
10958424 Chhabra Mar 2021 B1
D916890 Nagpal Apr 2021 S
10970607 Guangtao Apr 2021 B2
11005839 Shahidzadeh May 2021 B1
11030618 Budko Jun 2021 B1
11038694 Kleinman Jun 2021 B1
D925602 Xu Jul 2021 S
D928803 Faller Aug 2021 S
D928820 Bodduluri Aug 2021 S
11121878 McCarty Sep 2021 B2
D942469 Abdullah et al. Feb 2022 S
11283835 Gordon Mar 2022 B1
11328042 Keith, Jr. May 2022 B2
11510172 Feng Nov 2022 B1
11553337 Keith, Jr. Jan 2023 B2
11563582 Keith, Jr. Jan 2023 B2
11574045 Keith, Jr. Feb 2023 B2
11588794 Keith, Jr Feb 2023 B2
11637694 Slamov Apr 2023 B2
11640602 Rudko May 2023 B2
11652815 Keith, Jr. May 2023 B2
11657140 Keith, Jr. May 2023 B2
20020099955 Peled et al. Jul 2002 A1
20020114454 Hamilton Aug 2002 A1
20020131592 Hinnant Sep 2002 A1
20020169871 Cravo de Almeida Nov 2002 A1
20030014750 Kamen Jan 2003 A1
20030016844 Numaoka Jan 2003 A1
20030021416 Brown Jan 2003 A1
20030147267 Huttunen Aug 2003 A1
20030174067 Soliman Sep 2003 A1
20030221030 Pontius Nov 2003 A1
20040198392 Harvey Oct 2004 A1
20040223616 Kocarev Nov 2004 A1
20050135609 Lee Jun 2005 A1
20050147240 Agrawal Jul 2005 A1
20060075060 Clark Apr 2006 A1
20060031301 Herz et al. Sep 2006 A1
20060196950 Killccote Sep 2006 A1
20060236408 Yan Oct 2006 A1
20060285544 Taylor Dec 2006 A1
20080022141 Hammarlund Jan 2008 A1
20080031460 Brookner Feb 2008 A1
20080045218 Okochi Feb 2008 A1
20080165937 Moore Jul 2008 A1
20080301057 Oren Dec 2008 A1
20090006796 Chang Jan 2009 A1
20090090577 Takahashi Apr 2009 A1
20090161873 Simard Jun 2009 A1
20090194592 Ming et al. Aug 2009 A1
20090279693 Billet Nov 2009 A1
20090315671 Gocho Dec 2009 A1
20090327746 Greco Dec 2009 A1
20100079591 Lee Apr 2010 A1
20100100716 Scott May 2010 A1
20100122274 Gillies May 2010 A1
20100329232 Tubb Dec 2010 A1
20110072142 Herz et al. Mar 2011 A1
20110106935 Srinivasan May 2011 A1
20110167255 Matzkel Jul 2011 A1
20110167273 Maas Jul 2011 A1
20110187642 Faith Aug 2011 A1
20110194694 Struik Aug 2011 A1
20110231673 Alekseev Sep 2011 A1
20110233284 Howard Sep 2011 A1
20110302405 Marlow Dec 2011 A1
20110321052 Long Dec 2011 A1
20120098750 Allen Apr 2012 A1
20120185910 Miettinen Jul 2012 A1
20120214442 Crawford Aug 2012 A1
20120221859 Marien Aug 2012 A1
20120272058 Wang et al. Oct 2012 A1
20120281885 Syrdal Nov 2012 A1
20130086625 Driscoll Apr 2013 A1
20130111208 Sabin et al. May 2013 A1
20130170363 Millington Jul 2013 A1
20130177151 Sella Jul 2013 A1
20130202104 Ghouti Aug 2013 A1
20130205410 Sambamurthy Aug 2013 A1
20130239191 Bostick Sep 2013 A1
20130243187 Hortsmeyer Sep 2013 A1
20140002481 Broughton Jan 2014 A1
20140007048 Qureshi Jan 2014 A1
20140038583 Berg Feb 2014 A1
20140039892 Mills Feb 2014 A1
20140040628 Fort et al. Feb 2014 A1
20140064166 HomChadhuri Mar 2014 A1
20140098723 Battista Apr 2014 A1
20140108803 Probert Apr 2014 A1
20140201531 Toy Jul 2014 A1
20140244514 Rodriguez Aug 2014 A1
20140244515 Garfinkle Aug 2014 A1
20140278077 Levin Sep 2014 A1
20140304371 Mraz Oct 2014 A1
20140351618 Connell Nov 2014 A1
20140368601 deCharms Dec 2014 A1
20150089568 Sprague Mar 2015 A1
20150095580 Liu Apr 2015 A1
20150095648 Nix Apr 2015 A1
20150095986 Karpey Apr 2015 A1
20150134963 Izu May 2015 A1
20150142666 Landrok May 2015 A1
20150242601 Griffiths Aug 2015 A1
20150242605 Du Aug 2015 A1
20150258892 Wu Sep 2015 A1
20150271679 Park Sep 2015 A1
20150278805 Spencer, III Oct 2015 A1
20150280911 Andoni Oct 2015 A1
20150294092 Balasubramanian Oct 2015 A1
20150347734 Beigi Dec 2015 A1
20150350201 Cornell Dec 2015 A1
20150356289 Brown Dec 2015 A1
20150365229 Patey Dec 2015 A1
20150365235 Hostyn Dec 2015 A1
20150370826 Mraz Dec 2015 A1
20150373007 Sheller Dec 2015 A1
20160007288 Samardzija Jan 2016 A1
20160011224 Pollack Jan 2016 A1
20160057623 Dutt Feb 2016 A1
20160065558 Suresh Mar 2016 A1
20160065570 Spencer Mar 2016 A1
20160098334 Harihharakrishnan Apr 2016 A1
20160110528 Gupta Apr 2016 A1
20160117673 Landrock Apr 2016 A1
20160135107 Hampel May 2016 A1
20160180078 Chhabra Jun 2016 A1
20160182503 Cheng Jun 2016 A1
20160191499 Momchillov Jun 2016 A1
20160283406 Linga Jun 2016 A1
20160227411 Lundblade Aug 2016 A1
20160239649 Zhao Aug 2016 A1
20160239657 Loughlin-McHugh et al. Aug 2016 A1
20160320831 McCubbin Nov 2016 A1
20160342873 Winkk et al. Nov 2016 A1
20160352696 Essigmann Dec 2016 A1
20170005995 Yang Jan 2017 A1
20170013453 Lee Jan 2017 A1
20170041309 Ekambaram et al. Feb 2017 A1
20170048062 Polak Feb 2017 A1
20170063528 Seo Mar 2017 A1
20170068994 Slomkowski Mar 2017 A1
20170070340 Hibshoosh Mar 2017 A1
20170070890 Luff Mar 2017 A1
20170085382 Kamakari Mar 2017 A1
20170124385 Ganong May 2017 A1
20170147345 Clevenger May 2017 A1
20170193211 Blake Jul 2017 A1
20170220407 Estrada Aug 2017 A1
20170230172 Andersson Aug 2017 A1
20170230344 Dhar Aug 2017 A1
20170264597 Pizot Sep 2017 A1
20170272419 Kumar Sep 2017 A1
20170289168 Bar Oct 2017 A1
20170295010 Shibutani Oct 2017 A1
20170310479 Sato Oct 2017 A1
20170311250 Rico Alvarino Oct 2017 A1
20170317823 Gandhi Nov 2017 A1
20170339118 Hwang Nov 2017 A1
20170366514 Malka Dec 2017 A1
20180005239 Schlesinger Jan 2018 A1
20180005465 Truong Jan 2018 A1
20180007530 Tanaka Jan 2018 A1
20180012003 Asulin Jan 2018 A1
20180025135 Odom Jan 2018 A1
20180027411 Taneja Jan 2018 A1
20180029560 Mohaupt Feb 2018 A1
20180039990 Lindermann Feb 2018 A1
20180046803 Li Feb 2018 A1
20180063784 Abraham Mar 2018 A1
20180109696 Thanigasalam Apr 2018 A1
20180114221 Karantzis Apr 2018 A1
20180135815 Rowles May 2018 A1
20180144615 Kinney May 2018 A1
20180150622 Zaitsev May 2018 A1
20180167816 Kusens et al. Jun 2018 A1
20180189160 Yasin Jul 2018 A1
20180189161 Yasin Jul 2018 A1
20180212770 Costa Jul 2018 A1
20180248865 Johansson Aug 2018 A1
20180285879 Gadnis Oct 2018 A1
20180302416 Einberg Oct 2018 A1
20180322266 Kwok Nov 2018 A1
20180329857 Ko Nov 2018 A1
20180375848 Tunnell Dec 2018 A1
20190103957 Isobe Apr 2019 A1
20190122024 Schwartz Apr 2019 A1
20190149333 harnik May 2019 A1
20190188111 Ozog Jun 2019 A1
20190289017 Agarwal Jun 2019 A1
20190207918 Kurian Jul 2019 A1
20190220583 Douglas Jul 2019 A1
20190245704 Pala Aug 2019 A1
20190268774 Kusens et al. Aug 2019 A1
20190271349 Madru Sep 2019 A1
20190271578 Moeller Sep 2019 A1
20190272495 Moeller Sep 2019 A1
20190279204 Norton Sep 2019 A1
20190281025 Harriman Sep 2019 A1
20190281036 Eisen Sep 2019 A1
20190287427 Schepers Sep 2019 A1
20190318122 Hockey Oct 2019 A1
20190334708 Carpov Oct 2019 A1
20190342092 Handschuh Nov 2019 A1
20190386814 Ahmed Dec 2019 A1
20200042723 Krishnamoorthy Feb 2020 A1
20200050745 Kim Feb 2020 A1
20200053096 Bendersky Feb 2020 A1
20200066071 Budman Feb 2020 A1
20200097643 Uzun Mar 2020 A1
20200099675 Mardiks Rappaport Mar 2020 A1
20200100115 Skaaksrud Mar 2020 A1
20200120071 Wimmer Apr 2020 A1
20200125704 Chavez Apr 2020 A1
20200127974 Morlando Apr 2020 A1
20200134145 Bapst Apr 2020 A1
20200162435 Kubo May 2020 A1
20200175157 Wilding Jun 2020 A1
20200193051 Van Antwerp Jun 2020 A1
20200242417 Sagi Jul 2020 A1
20200358787 Barker Nov 2020 A1
20200038769 Kushwah Dec 2020 A1
20200403787 Islam Dec 2020 A1
20200403992 Huffman Dec 2020 A1
20210005224 Rothschild Jan 2021 A1
20210014314 Yamada Jan 2021 A1
20210049032 White Feb 2021 A1
20210051015 Widmann Feb 2021 A1
20210051177 White Feb 2021 A1
20210123835 Glennon Apr 2021 A1
20210152417 Baird May 2021 A1
20210152554 Taft May 2021 A1
20210167946 Bitan Jun 2021 A1
20210173906 Keith, Jr. Jun 2021 A1
20210173907 Keith, Jr. Jun 2021 A1
20210173914 Keith, Jr. Jun 2021 A1
20210173915 Keith, Jr. Jun 2021 A1
20210173949 Keith, Jr. Jun 2021 A1
20210174333 Keith, Jr. Jun 2021 A1
20210176064 Keith, Jr. Jun 2021 A1
20210176066 Keith, Jr. Jun 2021 A1
20210176218 Keith, Jr. Jun 2021 A1
20210176223 Falk Jun 2021 A1
20210176235 Keith, Jr. Jun 2021 A1
20210176633 Keith, Jr. Jun 2021 A1
20210194608 Yao Jun 2021 A1
20210200852 Gupta Jul 2021 A1
20210250759 Ziv Aug 2021 A1
20210297258 Keith, Jr. Sep 2021 A1
20210297448 Keith, Jr. Sep 2021 A1
20210297455 Keith, Jr. Sep 2021 A1
20210350918 Paul Nov 2021 A1
20210362750 Yang Nov 2021 A1
20210390537 Budko et al. Dec 2021 A1
20220027447 Keith, Jr. Jan 2022 A1
20220028200 Keith, Jr. Jan 2022 A1
20220030022 Keith, Jr. Jan 2022 A1
20220036905 Keith, Jr. Feb 2022 A1
20220038895 Keith, Jr. Feb 2022 A1
20220038897 Liu Feb 2022 A1
20220043913 Keith, Jr. Feb 2022 A1
20220045841 Keith, Jr. Feb 2022 A1
20220092161 Keith, Jr. Mar 2022 A1
20220092162 Keith, Jr. Mar 2022 A1
20220092163 Keith, Jr. Mar 2022 A1
20220092164 Keith, Jr. Mar 2022 A1
20220092165 Keith, Jr. Mar 2022 A1
20220093256 Keith, Jr. et al. Mar 2022 A1
20220094545 Islamov et al. Mar 2022 A1
20220094550 Keith, Jr. Mar 2022 A1
20220108026 Ortiz et al. Apr 2022 A1
20220130501 Keith, Jr. et al. Apr 2022 A1
20220138300 Manjunath et al. May 2022 A1
20220139546 Manjunath et al. May 2022 A1
20220164424 Keith, Jr. May 2022 A1
20220197985 Keith, Jr. Jun 2022 A1
20220200971 Vigneswaran Jun 2022 A1
20220229888 Keith, Jr. Jul 2022 A1
20220286966 Zhao Sep 2022 A1
20220382844 Keith, Jr. Dec 2022 A1
20220385458 Keith, Jr. Dec 2022 A1
20220394023 Keith, Jr. Dec 2022 A1
20220394464 Keith, Jr. Dec 2022 A1
20220394465 Keith, Jr. Dec 2022 A1
20230096233 Islamov et al. Mar 2023 A1
20230106024 Keith, Jr. Apr 2023 A1
20230107624 Keith, Jr. Apr 2023 A1
20230114650 Keith, Jr. Apr 2023 A1
20230116527 Keith, Jr. et al. Apr 2023 A1
20230185896 Keith, Jr. Jun 2023 A1
20230198766 Keith, Jr. et al. Jun 2023 A1
20230198962 Keith, Jr. Jun 2023 A1
20230254120 Islamov Aug 2023 A1
20230254121 Islamov Aug 2023 A1
20230254122 Islamov Aug 2023 A1
20230267454 Budko Aug 2023 A1
20230283602 Keith, Jr. et al. Sep 2023 A1
20230289431 Keith, Jr. Sep 2023 A1
Foreign Referenced Citations (9)
Number Date Country
107918790 Apr 2018 CN
107924475 Apr 2018 CN
106413128 Jul 2020 CN
3276561 Jan 2018 EP
3457344 Mar 2019 EP
2016179433 Nov 2016 WO
2020065132 Apr 2020 WO
2020092542 May 2020 WO
2021119187 Jul 2021 WO
Non-Patent Literature Citations (11)
Entry
Erdem Alkim et al., “Post-Quantum key exchange—a new hope”, International Association for Cryptologic Research, vol. 20161116:063839, Nov. 16, 2016, pp. 1-22.
Joppe W. Bos et al., “Post-quantum key exchange for the TLS protocol from the ring learning with errors problem”, International Association for Cryptologic Research, vol. 20150316:235249, Mar. 17, 2015, pp. 1-28.
International Search Report mailed Aug. 11, 2016, for PCT Application No. PCT/US2016/031055, filed May 5, 2016, five pages.
International Search Report mailed Oct. 9, 2019, for PCT Application No. PCT/US2019/041871, filed Jul. 15, 2019, four pages.
Li et al., “Addressable Metasurfaces for Dynamic Holography and Optical Information Encryption”, Jun. 15, 2018, http://advances.sciencemag.org/content/advances/4/6/eaar6768.full.pdf.
The International Search Report and Written Report for the International Application No. PCT/US2020/064099 dated Mar. 16, 2021.
Bywater Films, “Winkk: Emotion to Action.” Vimeo, published Oct. 7, 2015 (Retrieved from the Internet Mar. 22, 2021). Internet URL: <https://vimeo.com/141695923> (Year: 2015).
Schiff, Eli, “Unofficial Apple Icon Design Awards.” Eli Schiff Blog, published Jan. 5, 2016 (Retrieved from the Internet Mar. 22, 2021), Internet URL: <www.elischiff.com/blog/2016/1/5/apple-icon-design-awards> (Year: 2016).
International Report on Patentability from International Application No. PCT/US2020/064099, mailed on Jun. 23, 2022, 7 pages.
Magoon, Owais, “iOS app.” Behance published Sep. 7, 2015 (Retrieved from the Internet Mar. 22, 2021). Internet URL: <https://www.behance.net/gallery/27383661/iOS-app> (Year: 2015).
Tao et al., “Simple Matrix—A Multivariate Public Key Cryptosystem (MPKC) for Encryption” from Finite Field and Their Applications vol. 35, Sep. 2015, pp. 352-368 (Year 2015).
Related Publications (1)
Number Date Country
20230254121 A1 Aug 2023 US
Provisional Applications (1)
Number Date Country
62698644 Jul 2018 US
Divisions (1)
Number Date Country
Parent 17040949 US
Child 18136177 US