+

WO2018140961A1 - Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra - Google Patents

Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra Download PDF

Info

Publication number
WO2018140961A1
WO2018140961A1 PCT/US2018/016000 US2018016000W WO2018140961A1 WO 2018140961 A1 WO2018140961 A1 WO 2018140961A1 US 2018016000 W US2018016000 W US 2018016000W WO 2018140961 A1 WO2018140961 A1 WO 2018140961A1
Authority
WO
WIPO (PCT)
Prior art keywords
multivector
computing device
cryptotext
shared secret
numeric
Prior art date
Application number
PCT/US2018/016000
Other languages
French (fr)
Inventor
Carlos A. Paz De Araujo
David W. HONORIO ARAUJO DA SILVA
Marcelo ARAUJO XAVIER
Gregory B. Jones
Original Assignee
X-Logos, LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/667,325 external-priority patent/US10728227B2/en
Application filed by X-Logos, LLC filed Critical X-Logos, LLC
Publication of WO2018140961A1 publication Critical patent/WO2018140961A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • Modern encryption employs mathematical techniques that manipulate positive integers or binary bits.
  • Asymmetric encryption such as RSA (Rivest-Shamir-Adleman) relies on number theoretic one-way functions that are predictably difficult to factor and can be made more difficult with an ever increasing size of the encryption keys.
  • Symmetric encryption such as DES (Data Encryption Standard) and AES (Advanced Encryption Standard), uses bit manipulations within registers to shuffle the cryptotext to increase "diffusion" as well as register based operations with a shared key to increase "confusion.” Diffusion and confusion are measures for the increase in statistical entropy on the data payload being transmitted.
  • Diffusion is generally thought of as complicating the mathematical process of generating unencrypted (plain text) data from the encrypted (cryptotext) data, thus, making it difficult to discover the encryption key of the encryption process by spreading the influence of each piece of the unencrypted (plain) data across several pieces of the encrypted (cryptotext) data.
  • an encryption system that has a high degree of diffusion will typically change several characters of the encrypted (cryptotext) data for the change of a single character in the unencrypted (plain) data making it difficult for an attacker to identify changes in the unencrypted (plain) data.
  • Confusion is generally thought of as obscuring the relationship between the unencrypted (plain) data and the encrypted (cryptotext) data.
  • an encryption system that has a high degree of confusion would entail a process that drastically changes the unencrypted (plain) data into the encrypted (cryptotext) data in a way that, even when an attacker knows the operation of the encryption method (such as the public standards of RSA, DES, and/or AES), it is still difficult to deduce the encryption key.
  • Homomorphic Encryption is a form of encryption that allows computations to be carried out on cipher text as it is encrypted without decrypting the cipher text that generates an encrypted result which, when decrypted, matches the result of operations performed on the unencrypted plaintext.
  • homomorphism comes from the ancient Greek language: ⁇ (homos) meaning “same” and ⁇ (morphe) meaning "form” or “shape.”
  • homomorphism may have different definitions depending on the field of use. In mathematics, for example, homomorphism may be considered a transformation of a first set into a second set where the relationship between the elements of the first set are preserved in the relationship of the elements of the second set.
  • a map / between sets A and £ is a homomorphism of A into B if
  • homomorphism may be a structure-preserving map between two algebraic structures such as groups, rings, or vector spaces. Isomorphisms, automorphisms, and endomorphisms are typically considered special types of homomorphisms. Among other more specific definitions of homomorphism, algebra homomorphism may be considered a homomorphism that preserves the algebra structure between two sets.
  • An embodiment of the present invention may comprise a method for performing additive homomorphic summation of at least two cryptotext encrypted data representations of at least two corresponding plain text data values, the method comprising: distributing by a first source computing device a first numeric message data value (M ⁇ into coefficients of a first message multivector ( x ) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the first source computing device, at least one additional source computing device, and a destination computing device; distributing by the first source computing device a shared secret numeric value (S s ) into coefficients of a shared secret multivector (S s ) in accord with a shared secret coefficient distribution algorithm that is known to the first source computing device, the at least one additional source computing device, and the destination computing device, such that the shared secret numeric value (S s ) is known or knowable to the first source computing device, the at least one
  • the intermediary computing system the additive result cryptotext multivector (ARC) to the destination computing device; receiving by the destination computing device the additive result cryptotext multivector (ARC) sent by the intermediary computing system; distributing by the destination computing device the shared secret numeric value (S s ) into the shared secret multivector (S s ) in accord with the shared secret coefficient distribution algorithm; decrypting by the destination computing device the additive result cryptotext multivector
  • the additive result multivector (AR) into an additive result data value (AR) in accord with the homomorphic preserving mathematical relationship such that the additive result data value (AR) is equal to a sum of the unencrypted first numeric message data value (M x ) and the unencrypted at least one additional numeric message data value (M n ) such that the sum of the unencrypted first numeric message data value ( ⁇ ⁇ ) and the unencrypted at least one additional numeric message data value (M n ) is performed with corresponding mathematical operations as the process of summing of the first cryptotext multivector (C ⁇ ) and the at least one additional cryptotext multivector (C n ).
  • An embodiment of the present invention may further comprise a method for encrypting a numeric message data value (M) on a source computing device in order to transfer a cryptotext multivector (C) encrypted representation of the numeric message data value (M) to an intermediary computing system that will perform additive homomorphic summation of the cryptotext multivector (C) and at least one additional cryptotext encrypted data representation of at least one additional numeric message and deliver a result of the homomorphic summation to a destination computing device, the method comprising:
  • the source computing device distributing by the source computing device the numeric message data value ( ) into coefficients of a message multivector (M) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the source computing device and the destination computing device; distributing by the source computing device a shared secret numeric value (S s ) into coefficients of a shared secret multivector (S s ) in accord with a shared secret coefficient distribution algorithm that is known to the source computing device and the destination computing device, the shared secret numeric value (S s ) being known or knowable to the source computing device and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including the intermediary computing system; encrypting by the source computing device the cryptotext multivector (C) as an encryption function of at least one Geometric Algebra geometric product operation on the message multivector (M) and the shared secret multivector (S 5
  • An embodiment of the present invention may further comprise a method for performing additive homomorphic summation on an intermediary computer system of at least two cryptotext multivectors (C n ) encrypted data representations of at least two corresponding plain text numeric data values received from at least one source computing device and delivering an additive result cryptotext multivector (ARC), the method comprising: receiving by the intermediary computing system the at least two cryptotext multivectors (C n ) sent by the at least one source computing device; summing by the intermediary computing system using vector summation the at least two cryptotext multivector (C n ) in order to obtain an additive result cryptotext multivector (ARC); and sending by the intermediary computing system the additive result cryptotext multivector (ARC) to the destination computing device.
  • C n cryptotext multivectors
  • ARC additive result cryptotext multivector
  • An embodiment of the present invention may further comprise a method for decrypting an additive result cryptotext multivector (ARC) on a destination computing device received from an intermediary computing system that performed additive homomorphic summation of at least two cryptotext multivectors (C n ) encrypted data representations of at least two corresponding plain text numeric data values originated from at least one source computing device, the method comprising: receiving by the destination computing device the additive result cryptotext multivector (ARC) sent by the intermediary computing system; distributing by the source computing device a shared secret numeric value (S s ) into a shared secret multivector (S s ) in accord with a shared secret coefficient distribution algorithm that is known to the at least one source computing device and the destination computing device, the shared secret numeric value (S s ) being known or knowable to the at least one source computing device and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including the intermediary computing system; decrypting by the destination computing device the additive result cryptotext multivector (
  • An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) system for additive homomorphic summation of at least two cryptotext encrypted data representations of at least two corresponding plain text data values, the additive homomorphic EDGE system comprising: a first source computing device, wherein the first source computing device further comprises: a first source numeric message distribution subsystem that distributes a first numeric message data value (M x ) into coefficients of a first message multivector (M x ) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the first source computing device, at least one additional source computing device, and a destination computing device; a first source numeric shared secret distribution subsystem that distributes a shared secret numeric value (S s ) into coefficients of a shared secret multivector (3 ⁇ 4) in accord with a shared secret coefficient distribution algorithm that is known
  • intermediary computing system further comprises: an intermediary receive subsystem that receives the first cryptotext multivector sent by the first source computing device and the at least one additional cryptotext multivector (C n ) sent by the corresponding at least one additional source computing device; an intermediary homomorphic summation subsystem that sums using vector summation the first cryptotext multivector (C ⁇ ) and the at least one additional cryptotext multivector (C n ) in order to obtain an additive result cryptotext multivector (ARC); and an intermeidary send subsystem that sends the additive result cryptotext multivector (ARC) to the destination computing device; and the destination computing device, wherein the destination computing device further comprises: a destination receive subsystem that receives the additive result cryptotext multivector (ARC) sent by the intermediary computing system; a destination numeric shared secret distribution subsystem that distributes the shared secret numeric value (S s ) into the shared secret multivector (S s ) in accord with the shared secret coefficient distribution algorithm; a destination decryption subsystem that de
  • a destination convert multivector subsystem that converts the additive result multivector (AR) into an additive result data value (AR) in accord with the homomorphic preserving mathematical relationship such that the additive result data value (AR) is equal to a sum of the unencrypted first numeric message data value ( x ) and the unencrypted at least one additional numeric message data value (M n ) such that the sum of the unencrypted first numeric message data value ( x ) and the unencrypted at least one additional numeric message data value (M n ) is performed with corresponding mathematical operations as the process of summing of the first cryptotext multivector (C x ) and the at least one additional cryptotext multivector (C n ).
  • An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) source computing device for encrypting a numeric message data value ( ) in order to transfer a cryptotext multivector (C) encrypted representation of the numeric message data value (M) to an intermediary computing system that will perform additive homomorphic summation of the cryptotext multivector (C) and at least one additional ciyptotext encrypted data representation of at least one additional numeric message and deliver a result of the homomorphic summation to a destination computing device
  • the additive homomorphic EDGE source computing device comprising: a source numeric message distribution subsystem that distributes the numeric message data value ( ) into coefficients of a message multivector (M) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the source computing device and the destination computing device; a source numeric shared secret
  • An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) intermediary computing system for performing additive homomorphic summation of at least two cryptotext multivectors (C n ) encrypted data representations of at least two corresponding plain text numeric data values received from at least one source computing device and delivering an additive result cryptotext multivector (ARC),
  • the additive homomorphic EDGE intermediary computing system comprising: an intermediary receive subsystem that receives the at least two cryptotext multivectors (C n ) sent by the at least one source computing device; an intermediary homomorphic summation subsystem that sums using vector summation the at least two cryptotext multivector (C n ) in order to obtain an additive result cryptotext multivector (ARC); and an intermeidary send subsystem that sends the additive result cryptotext multivector (ARC) to the destination computing device.
  • EDGE Enhanced Data-Centric Encryption
  • An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) destination computing device for decrypting an additive result cryptotext multivector (ARC) received from an intermediary computing system that performed additive homomorphic summation of at least two cryptotext multivectors (C n ) encrypted data representations of at least two corresponding plain text numeric data values originated from at least one source computing device, the additive homomorphic EDGE destination computing device comprising: a destination receive subsystem that receives the additive result cryptotext multivector (ARC) sent by the intermediary computing system; a destination numeric shared secret distribution subsystem that distributes a shared secret numeric value (S s ) into a shared secret multivector (S s ) in accord with a shared secret coefficient distribution algorithm that is known to the at least one source computing device and the destination computing device, the shared secret numeric value (S s ) being known or knowable to the at least one source computing device and the destination computing device, but is kept secret from other devices
  • FIG. 1 is a block diagram of the hardware implementation for a core encryption embodiment (i.e., a core Enhanced Data-Centric Encryption— EDGE— embodiment).
  • a core encryption embodiment i.e., a core Enhanced Data-Centric Encryption— EDGE— embodiment.
  • FIG. 2 is a flow chart of the general operation for a core encryption
  • FIG. 3A is a flow chart of the source computing device symmetric key operation for a core encryption embodiment.
  • FIG. 3B is a flow chart of the destination computing device symmetric key operation for a core encryption embodiment.
  • FIG. 4A is a flow chart of the source computing device symmetric key and cryptotext masking operation for a core encryption embodiment.
  • FIG. 4B is a flow chart of the destination computing device symmetric key and cryptotext masking operation for an encryption embodiment.
  • FIG. 5 is a flow chart of a core encryption embodiment for the EDGE encryption/decryption by using a geometric product "sandwich.”
  • FIG. 6 is a flow chart of a core encryption embodiment for the EDGE encryption/decryption by using Sylvester's equation.
  • FIG. 7 is a block diagram illustrating generating/extracting/obtaining a second shared secret key from the original shared secret multivector for a core encryption embodiment.
  • FIG. 8 is a block diagram of the hardware implementation for an additive homomorphic encryption embodiment.
  • FIG. 9 is a flow chart of the general operation for an additive homomorphic encryption embodiment.
  • Homomorphic Encryption is a form of encryption that allows computations to be carried out on cipher text as it is encrypted without decrypting the cipher text that generates an encrypted result which, when decrypted, matches the result of operations performed on the unencrypted plaintext.
  • the essential purpose of homomorphic encryption is to allow computation on encrypted data without decrypting the data in order to perform the computation.
  • the encrypted data can remain confidential and secure while the encrypted data is processed for the desired computation.
  • useful tasks may be accomplished on encrypted (i.e., confidential and secure) data residing in untrusted environments.
  • the ability to perform computations on encrypted data may be a highly desirable capability.
  • finding a general method for computing on encrypted data is likely a highly desirable goal for cryptography.
  • the most sought after application of homomorphic encryption may be for cloud computing.
  • Data that is stored in the Cloud is typically not encrypted, and the breach of the Cloud stored, unencrypted data is ranked by the Cloud Security Alliance as the number one threat to data security.
  • Encrypting Cloud stored data may mitigate the threat of data being compromised by a breach, but then the remote clients (owners of the data) would not then be able to perform operations (i.e., add, multiply, etc.) on the Cloud stored data while the data remains in the Cloud.
  • operations i.e., add, multiply, etc.
  • the Cloud would require access to the user's encryption keys. It is becoming increasing undesirable to provide the Cloud access to a user's security keys as the more entities that have access to the security keys inherently increases the susceptibility of the security keys to being breached, or even stolen by an unscrupulous provider.
  • Homomorphic encryption would allow the Cloud to operate on client data without decryption, and without access to the client's security keys.
  • An embodiment may advantageously utilize Geometric Algebra to provide the encryption and decryption of numeric messages that are to be transmitted through, and possibly have operations performed by, an intermediary computing system (e.g., the broad- based computing system currently, and commonly, referred to as the Cloud, or cloud computing).
  • an intermediary computing system e.g., the broad- based computing system currently, and commonly, referred to as the Cloud, or cloud computing.
  • An embodiment of the Geometric Algebra encryption/decryption system that performs the foundational "core" encryption/decryption functions of transferring data securely using Geometric Algebra based encryption/decryption from a source system to a destination system without having arithmetic or other comparative operations performed on the transmitted encrypted data by an intermediary system may be referred to as an Enhanced Data-Centric Encryption (EDGE) system.
  • EDGE Enhanced Data-Centric Encryption
  • an EDGE system When an EDGE system is further enhanced to support and provide for arithmetic and/or other comparative operations to be performed at an intermediary computing system (e.g., the Cloud) without decrypting and re-encrypting the data at the intermediary computing system, that system may be referred to as an Enhanced Data-Centric Homomorphic Encryption (EDCHE) system.
  • EDCHE Enhanced Data-Centric Homomorphic Encryption
  • Geometric Algebra is an area of mathematics that describes the geometric interaction of vectors and other objects in a context intended to mathematically represent physical interactions of objects in the physical world.
  • the use of Geometric Algebra for cryptography represents a new, manmade use of Geometric Algebra for a purpose entirely outside of the natural basis of Geometric Algebra for representing physical interactions of objects in the real, physical, word.
  • Geometric Algebra defines the operations, such as geometric product, inverses and identities, which facilitate many features of embodiments of the core EDGE and the EDCHE systems disclosed herein.
  • Geometric Algebra allows for the organization and representation of data into the "payload" of a multivector where the data in the payload may represent, for example, plaintext, cryptotext, or identifying signatures.
  • Embodiments of both the core EDCE system and the EDCHE system make beneficial use of Geometric Algebra properties to provide encryption, decryption, and intermediary homomorphic operations in a relatively computationally simplistic manner while still providing robust security for both data in motion and data at rest (e.g., data stored in the Cloud).
  • methods and systems to encrypt and decrypt messages using Geometric Algebra may utilize the intrinsic algebraic homomorphic properties of Geometric Algebra to permit arithmetic and other comparative operations on encrypted messages handled by an intermediary computing system without the need for the intermediary computing system to decrypt the encrypted messages prior to performing the arithmetic and other comparative operations. Accordingly, the intermediary computing system does not need to know any information regarding any of the secret security keys of the encryption/decryption processes to properly perform the arithmetic and other comparative operations.
  • the encrypted results of the arithmetic and other comparative operations performed by the intermediary computing system when decrypted at a destination computing device, produce results equivalent to the same operations as if the operations were performed on the unencrypted plain text messages.
  • a proper data organization methodology that preserves such homomorphic properties (i.e., the mathematical relationship between the vectors utilized in the encryption process and the original plaintext messages being encrypted) should be enforced on the choice of coefficients for the vectors representing the plain text messages.
  • ensuring that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization methodology i.e., a homomorphic preserving mathematical relationship
  • a mathematical data organization methodology i.e., a homomorphic preserving mathematical relationship
  • the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value will provide the proper data organization to preserve the homomorphic properties of the Geometric Algebra operations of the core EDCE encryption/decryption processes.
  • an embodiment of an EDCHE system provides a cryptosystem that allows unlimited multiplications and additions of cipher text (i.e., transmitted/stored encrypted messages at the intermediary/cloud computer system) due solely to the intrinsic algebraic homomorphic properties of an embodiment of the EDCHE system.
  • an embodiment of an EDCHE system may provide the homomorphic properties as a product of algebraic homomorphism without the need to use additional methods, such as "bootstrapping" (e.g., performing a recursive operation to reduce the noise associated with a cipher text) to achieve the homomorphic properties.
  • the encrypted data values may be stored on the intermediary computing system until such time that particular arithmetic or other comparative operations are desired by a user, then the intermediary computing system may perform the requested arithmetic or other comparative operations. Likewise, the encrypted data values may be immediately operated on by the intermediary computing system as soon as the subject encrypted data values are received by the intermediary computing system.
  • the process of receiving the encrypted data values at the intermediary computing system inherently includes storing the encrypted data values at the intermediary computing system even if only fleetingly in an immediately used and erased Random Access Memory (RAM) location or operational register location of a computational subsystem of the intermediary computing system.
  • RAM Random Access Memory
  • Embodiments of both EDCE and EDCHE may be comprised of functional blocks, each of which may be tailored as described in more detail below according to objectives for scope, capability and security.
  • the following sections provide a mathematical and numerical description of these functional blocks.
  • the descriptions below have been split up to separately cover foundational "core" EDGE concepts and the additional enhancements concepts that permit homomorphic operations for EDCHE.
  • Section 1 provides a general description of embodiments of the foundational "core" EDGE system.
  • Section 2 provides additional descriptions of embodiments of the foundational "core” EDCE system, including the packing of information into multivectors, the encryption and decryption of such multivectors and the unpacking to recover the original information.
  • Section 3 provides a description of the further enhancements to embodiments of the foundational "core” EDCE system that achieve homomorphic properties for embodiments of an EDCHE system.
  • Alice and Bob are used for the sending/source and receiving/destination entities, respectively.
  • Section 1 General Core EDCE Message Encryption/Decryption
  • Section 3 Homomorphic EDCHE Enhancements to EDGE Operation
  • Section 1 General Core EDGE Message Encryption/Decryption
  • Ciphers such as RSA (Rivest-Shamir-Adleman), DES (Data Encryption Standard) and/or AES (Advanced Encryption Standard) are little more than static "machinery" that bogs down communication efficiency. The actual problem is much bigger. How can robust security be provided when: a) End-point computational resources are limited (e.g., the Internet of Things— IoT). b) Encryption/decryption must be near-real time
  • a "core" embodiment may be described as enhanced data-centric encryption, or EDGE.
  • EDGE is computationally simplistic while providing robust security over the span of the communication channel.
  • EDGE security is scalable from tiny embedded IoT (Internet of Things) devices up to server farms.
  • EDGE functionality enables many cipher schemes that show speed and bandwidth advantages over current methods.
  • One aspect of EDG that provides speed enhancement in the
  • encryption/decryption of data is that the EDGE encryption/decryption may be implemented using basic arithmetic operations of addition, subtraction, multiplication, and division.
  • EDGE does not require a complex operation to select a large prime number, to calculate a logarithm function, to calculate a natural logarithm function, and/or to calculate other complex and computationally intensive mathematical functions (i.e., prime numbers, logarithms, natural logarithms, and/or other complex mathematical operations are not required in the Geometric Algebra calculations disclosed herein).
  • Geometric Algebra an area of mathematics that has not been utilized before in encryption.
  • Geometric Algebra as used herein is an area of mathematics that encompasses Geometric Algebra, Conformal Geometric Algebra and Clifford Algebra (collectively herein, "Geometric Algebra").
  • Geometric Algebra allows for the organization and representation of data into the "payload" of a multivector where the data may be plaintext, cryptotext, or signatures, for example.
  • Geometric Algebra defines the operations, such as geometric product, inverses and identities, which are the enablers of encryption/decryption calculations of various embodiments.
  • Multivectors are simply the additive combination of a scalar, a vector, a bi- vector and so forth up to an n-dimension vector.
  • the unit vectors follow the algebraic structure of quaternions (Hamilton) and non-commutative algebra (Grassman). These two types of algebra allowed Clifford to conceive of the Geometric Product which is used by the various embodiments as one of the "primitive" functions of the embodiments of EDGE and EDCHE systems.
  • Geometric Algebra a 0 + a x e x + a 2 e 2 + a 12 e 12
  • e ⁇ is a unit vector along the i-axis and e 12 represents the orientation of the area created by a 12 .
  • Appendix A: Geometric Algebra Overview of the parent patent application Serial No. 15/667,325, entitled “Methods and Systems for Enhanced Data-Centric Encryption Systems Using Geometric Algebra," but some general observations may be helpful to the description of the various embodiments disclosed below.
  • each of the 3 ⁇ 4 values in the multivector A above may be "packed” with information and each 3 ⁇ 4 value may range from zero to very large (e.g., >256,000 bits or an entire message).
  • the inverse of A when multiplied by A yields unity, or:
  • the "payload" may be packed in the values of the scalars and coefficients of the multivector elements.
  • the packing method may define, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse.
  • the decryption methodology for EDGE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients.
  • One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors.
  • the destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption.
  • the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message.
  • the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces.
  • An algebra homomorphism between two algebras is one that preserves the algebra structure.
  • the method by which numbers are "packed" into multivector elements must remain a representation of the original number.
  • One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value.
  • the mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value.
  • the location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
  • separate multivectors may be encoded for many purposes, such as a shared secret (defined below), authentication information, and timestamps.
  • a shared secret defined below
  • authentication information e.g., password, password, and password.
  • timestamps e.g., timestamps.
  • the EDGE multivector format and Geometric Algebra foundation of a core EDGE embodiment may enable a single transmission to contain far more than just cryptotext, including dummy data to increase encryption security, command instructions for additional operations, and/or configuration data for the additional operations.
  • Fig. 1 is a block diagram 100 of the hardware implementation for an embodiment.
  • a first computing device 102 is connected over an electronic network/bus connection 104 to a second computing device 106.
  • the first computing device 102 acts as the source device 102 that sends the encrypted message 108 over the network/bus connection 104.
  • the second computing device 106 acts as the destination device 106 that receives the encrypted message 108 from the network/bus connection 104.
  • communications including encrypted communications, are bi- directional such that the first 102 and second 106 computing devices may change roles as the source device 102 and destination device 106 as is necessary to accommodate the transfer of data back and forth between the first 102 and second 106 computing devices.
  • the first computing device 102 appears to be a laptop computer and the second computing device 106 appears to be a tablet device.
  • any computing device capable of communication over any form of electronic network or bus communication platform may be one, or both of the first 102 and second 106 computing devices. Further, the first 102 and second computing devices 106 may actually be the same physical computing device communicating over an internal bus connection 104 with itself, but still desiring encrypted communication to ensure that an attacker cannot monitor the internal communications bus 104 to obtain sensitive data communications in an unencrypted format.
  • Various embodiments may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices.
  • the network/bus may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices.
  • the network/bus may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices.
  • the network/bus communications channel 104 may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices.
  • the network/bus may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices.
  • the network/bus may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices.
  • the network/bus may implement the network/bus
  • the communication connection 104 may be an Internet connection routed over one or more different communications channels during transmission from the first 102 to the second 106 computing devices.
  • the network/bus communication connection 104 may be an internal communications bus of a computing device, or even the internal bus of a processing or memory storage Integrated Circuit (IC) chip, such as a memory chip or a Central Processing Unit (CPU) chip.
  • IC Integrated Circuit
  • the network/bus communication channel 104 may utilize any medium capable of transmitting electronic data communications, including, but not limited to: wired communications, wireless electro-magnetic communications, fiber-optic cable communications, light/laser communications, sonic/sound communications, etc., and any combination thereof of the various communication channels.
  • the various embodiments may provide the control and management functions detailed herein via an application operatin on the first 102 and/or second 106 computing devices.
  • the first 102 and/or second 106 computing devices may each be a computer or computer system, or any other electronic devices device capable of performing the communications and computations of an embodiment.
  • the first 102 and second 104 computing devices may include, but are not limited to: a general purpose computer, a laptop/portable computer, a tablet device, a smart phone, an industrial control computer, a data storage system controller, a CPU, a Graphical Processing Unit (GPU), an Application Specific Integrated Circuit (ASI), and/or a Field Programmable Gate Array (FPGA).
  • GPU Graphical Processing Unit
  • ASI Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the first 102 and second 106 computing devices may be the storage controller of a data storage media (e.g., the controller for a hard disk drive) such that data delivered to/from the data storage media is always encrypted so as to limit the ability of an attacker to ever have access to unencrypted data.
  • Embodiments may be provided as a computer program product which may include a computer-readable, or machine-readable, medium having stored thereon instructions which may be used to program/operate a computer (or other electronic devices) or computer system to perform a process or processes in accordance with the various embodiments.
  • the computer-readable medium may include, but is not limited to, hard disk drives, floppy diskettes, optical disks, Compact Disc Read-Only Memories (CD-ROMs), Digital Versatile Disc ROMS (DVD-ROMs), Universal Serial Bus (USB) memory sticks, magneto-optical disks, ROMs, random access memories (RAMs), Erasable Programmable ROMs (EPROMs), Electrically Erasable Programmable ROMs (EEPROMs), magnetic optical cards, flash memory, or other types of media/machine-readable medium suitable for storing electronic instructions.
  • the computer program instructions may reside and operate on a single computer/electronic device or various portions may be spread over multiple computers/devices that comprise a computer system.
  • embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection, including both wired/cabled and wireless connections).
  • a communication link e.g., a modem or network connection, including both wired/cabled and wireless connections.
  • Fig. 2 is a flow chart 200 of the general operation for an embodiment.
  • a shared secret numeric data value (S s ) is shared between the source 202 and destination 204.
  • the various embodiments may share the shared secret numeric data value (S s ) between the source 202 and destination 204 via any means desired by the users.
  • S s shared secret numeric data value
  • the shared secret numeric data value (S s ) may be shared between the source 202 and destination 204 by means including, but not limited to: pre-conditioning the source 202 computing device and the destination 204 computing device with the shared secret numeric value (S s ), a standard public/private key exchange technique, RSA (Rivest-Shamir-Adleman) key exchange, and/or Diffie-Hellman key exchange (disclosed in more detail herein, below).
  • RSA Rastert-Shamir-Adleman
  • the original shared secret may be an alphanumeric string in ASCII (American Standard Code for Information Exchange) or another encoding protocol that is converted to a numeric value based on the associated encoding protocol, such as: ASCII, other English language/alphabetic coding systems, foreign language encoding for non-alphabetic languages (e.g., katakana for Japanese), el ⁇ even pure symbol to numeric values such as for emoji's.
  • ASCII American Standard Code for Information Exchange
  • other English language/alphabetic coding systems e.g., foreign language encoding for non-alphabetic languages (e.g., katakana for Japanese), el ⁇ even pure symbol to numeric values such as for emoji's.
  • both the source 202 and destination 204 need to know and use the same alphanumeric text conversion into a numeric value process to ensure that results of both the source 202 and the destination 204 are the same.
  • the source 202 converts any alphanumeric text in the message into numeric message data (M) based on the alphanumeric encoding protocol (e.g., ASCII, other English language/alphabetic coding systems, foreign language encoding for non- alphabetic languages (e.g., katakana for Japanese), or even pure symbol to numeric values such as for emoji's) of the original text.
  • the alphanumeric encoding protocol e.g., ASCII, other English language/alphabetic coding systems, foreign language encoding for non- alphabetic languages (e.g., katakana for Japanese), or even pure symbol to numeric values such as for emoji's
  • both the source 202 and destination 204 need to know and use the same alphanumeric text conversion into a numeric value process to ensure that results of both the source 202 and the destination 204 are the same.
  • numeric message data that is, but are not limited to: positive numbers, negative numbers, zero, integer numbers, rational numbers (including fractions), and/or real numbers.
  • the source 202 distributes the numeric message data (M) into message multivector (M) coefficients.
  • the encryption system will work with just one non-zero message multivector (M) coefficient, but, the more non-zero message multivector (M) coefficients there are, the stronger the encryption will become, so it is desirable to have more than one non-zero message multivector ( ) coefficient.
  • the source 202 distributes shared secret numeric value (S s ) into shared secret multivector (Sc) coefficients.
  • S s shared secret numeric value
  • S s shared secret multivector
  • the encryption system will work with just one non-zero shared secret multivector (S s ) coefficient, but, the more non-zero shared secret multivector (S s ) coefficients there are, the stronger the encryption will become, so, again, it is desirable to have more than one non-zero shared secret multivector (S s ) coefficient.
  • S s shared secret multivector
  • the primary requirement for the distribution process from the numeric values of the message (M) and the shared secret (S s ) to the multivector coefficient values ( and S s ) is that the source 202 and the destination 204 both know the processes 210/222 and 212/224 such that the destination 204 can reconstruct the original message ( ). As long as it is known to both the source 202 and the destination 204, the distribution of numeric data to multivector coefficients may be performed differently between the message (M) and the shared secret (5s).
  • the various embodiments may perform the encryption process with multivector coefficient values for both the message (M) and shared secret (5 S ) that are, but are not limited to: positive numbers, negative numbers, zero, integer numbers, rational numbers (including fractions), and/or real numbers.
  • the distributing/packing method defines, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments.
  • the Rationalize operation on multivectors yields zero when all multivector coefficients are equal.
  • Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse.
  • the Rationalize operation on multivectors yields zero when all multivector coefficients are equal.
  • Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse.
  • the decryption methodology for EDGE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients.
  • One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors.
  • the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients.
  • the destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients.
  • the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message.
  • the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces.
  • An algebra homomorphism between two algebras is one that preserves the algebra structure.
  • the method by which numbers are "packed" into multivector elements must remain a representation of the original number.
  • One such relationship or packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value.
  • the mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value.
  • The. location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
  • the distribution (i.e., "packing") of the shared secret multivector (S s ) may be performed in any fashion so long as the distribution (i.e., "packing") method of the shared secret multivector (S s ) is known and used consistently by the source 202 and destination 204 computing devices as, ultimately, the shared secret multivector (S s ) used by the source 202 and destination 204 should be equal to each other to ensure that the decryption operations 226 work properly in relation to the encryption 214 operations.
  • the number of potential coefficients is directly related to the size/dimension (N) of the multivectors such that the number of coefficients increases by a factor of 2 (i.e., 2 N ) for each incremental increase in the size/dimension (N) of the multivector.
  • using multivectors of at least two dimensions will provide at least four coefficients to distribute the numeric data of the message (M) and the shared secret (S s ).
  • the confusion and/or diffusion security characteristics will also be increased due to the additionally available multivector coefficients. Further, with the additionally available coefficients it is also possible to transfer more data in a single multivector message (M) payload using the additionally available multivector coefficients.
  • M multivector message
  • the source 202 encrypts a cryptotext multivector (C) as a function of at least one Geometric Algebra geometric product operation on the message multivector (M) and the shared secret multivector (S s ).
  • the source 202 converts the cryptotext multivector (C) into cryptotext numeric data (C) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to both the source 202 and the destination 204. While not typical of most encryption systems, an embodiment may also omit process 216 and directly send a representation of the cryptotext multivector (C) without first converting the cryptotext multivector (C) into cryptotext numeric data (C).
  • the transmission may be implemented as a series of transfers of the coefficients or as some form of records/packets that define a data structure that carries the coefficient data of the cryptotext multivector (C).
  • the various embodiments will include process 216 to convert the cryptotext multivector (C) into cryptotext numeric data (C) in order to maintain compatibility with legacy and/or third party systems as well as to obtain the additional confusion and diffusion characteristics of encapsulating the cryptotext multivector (C) coefficients into a single cryptotext numeric data (C) value.
  • process 216 is used to convert the cryptotext multivector (C) into cryptotext numeric data (C), it is necessary for any computing device/system that wishes to operate on the cryptotext multivector (C) to have knowledge of the particular conversion methodology so that computing device/system may properly recreate the cryptotext multivector (C).
  • the destination 204 receives the cryptotext numeric data (C) sent by the source 202.
  • the destination distributes the cryptotext numeric data (C) into the cryptotext multivector (C) using the cryptotext data coefficient distribution algorithm that is known to both the source 202 and the destination 204.
  • process 222 is also omitted as the cryptotext multivector (C) was transmitted directly so there is not a need to convert the cryptotext numeric data (C) back into the cryptotext multivector (C).
  • the destination 204 distributes shared secret numeric value (3 ⁇ 4) into shared secret multivector (S s ) coefficients in the same fashion as was done for the source 202 at process 212.
  • the destination decrypts the cryptotext multivector (C) as a function of at least one Geometric Algebra geometric product operation on the cryptotext multivector (C) and an inverse (S s 1 ) of the shared secret multivector (S s ) back into the message multivector (M).
  • the destination 204 converts the message multivector ( ) into the message numeric data (M) in accord with reverse operation of the message data coefficient distribution algorithm of the source 202 at process 210.
  • the destination 202 converts the numeric message data (M) back into the original alphanumeric text message as a reverse function of the process of the source 202 at step 208 that converted that alphanumeric text to the numeric message data (M) using standard computer character encoding characteristics.
  • Fig. 3 A is a flow chart 300 of the source computing device symmetric key operation for an embodiment.
  • the encryption process 214 of the source 202 of Fig. 2 may further include processes 302-306 to use symmetric shared secret security keys to further enhance the security of an embodiment.
  • the source computing device may generate/extract/obtain a second shared secret key (S S2 ) from the original shared secret multivector (S s ) by performing a 0-Blade Reduction Operation on the original shared secret multivector (S s ) to obtain a scalar numerical value for the second shared secret key (S5 2 ).
  • S Sl the geometric product of the second shared secret key
  • the source computing device distributes the second shared secret key numeric value (5 3 ⁇ 4 ) into second shared secret multivector (3 ⁇ 4 2 ) coefficients where also not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients).
  • second shared secret multivector 3 ⁇ 4 2
  • the source computing device encrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the message multivector (M), the shared secret multivector (S s ), and the second shared secret multivector (Ss 2 ).
  • C the cryptotext multivector
  • M the message multivector
  • S s shared secret multivector
  • Ss 2 the second shared secret multivector
  • Fig. 3B is a flow chart 310 of the destination computing device symmetric key operation for an embodiment.
  • the decryption process 226 of the destination 204 of Fig. 2 in conjunction with the operation of the source computing device as described in the disclosure above with respect to Fig. 3 A, may include processes 31 2-316 to use symmetric shared secret security keys to further enhance the security of an embodiment.
  • the destination computing device may independently generate/extract/obtain the second shared secret key (S Sz ) from the original shared secret multivector (S s ) by performing the 0-Blade Reduction Operation on the original shared secret multivector (S s ) to obtain a scalar numerical value for the second shared secret key (S 5z ).
  • S Sz the original shared secret multivector
  • S 5z a scalar numerical value for the second shared secret key
  • the destination computing device also distributes the second shared secret key numeric value (5 Sz ) into the second shared secret multivector (S s ) coefficients.
  • S s second shared secret multivector
  • the destination computing device decrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the cryptotext multivector (C), an inverse (S s 1 ) of the original shared secret multivector (S s ), and an inverse ( S ., 1 ) of the second shared secret multivector (S S2 ) back into the message multivector (M).
  • Fig. 4 A is a flow chart 400 of the source computing device symmetric key and cryptotext masking operation for an embodiment. Similar to the disclosure with respect to Fig. 3 A above, the encryption process 214 of the source 202 of Fig. 2 may further include processes 402-406 to use symmetric shared secret security keys to further enhance the security of an embodiment. At process 402, the source computing device may
  • S S2 generate/extract/obtain a second shared secret key (S S2 ) from the original shared secret multivector (S s ) by performing a 0-Blade Reduction Operation on the original shared secret multivector (3 ⁇ 4) to obtain a scalar numerical value for the second shared secret key (S s ).
  • the source computing device distributes the second shared secret key numeric value (S s ) into second shared secret multivector (S s ) coefficients where also not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients).
  • S s second shared secret multivector
  • the source computing device encrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the message multivector ( ), the shared secret multivector (S s ), and the second shared secret multivector (S s ).
  • C the cryptotext multivector
  • S s the shared secret multivector
  • S s the shared secret multivector
  • S s the second shared secret multivector
  • the cryptotext multivector (C) is first converted into a pre-cipher cryptotext (C) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to both the source computing device (Fig. 4A) and the destination computing device (Fig. 4B).
  • Fig. 4B is a flow chart 410 of the destination computing device symmetric key and cryptotext masking operation for an embodiment.
  • the destination computing device then distributes the pre-cipher cryptotext numeric data (C) into the cryptotext multivector (C) using the cryptotext data coefficient distribution algorithm that is known to both the source and destination computing devices.
  • the remaining decryption process 226 of the destination 204 of Fig. 2 in conjunction with the operation of the source computing device as described in the disclosure above with respect to Fig. 4A, may include processes 414-418 to use symmetric shared secret security keys to further enhance the security of an embodiment.
  • the destination computing device may independently generate/extract/obtain the second shared secret key (S s? ) from the original shared secret multivector (S s ) by performing the 0-Blade Reduction Operation on the original shared secret multivector (S s ) to obtain a scalar numerical value for the second shared secret key (3 ⁇ 4).
  • the destination computing device also distributes the second shared secret key numeric value (S s ) into the second shared secret multivector (S s ) coefficients.
  • S s second shared secret key numeric value
  • S s second shared secret multivector
  • the destination computing device decrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the cryptotext multivector (C), an inverse (S s 1 ) of the original shared secret multivector (S s ), and an inverse (S Sl 1 ) of the second shared secret multivector (3 ⁇ 4 2 ) back into the message multivector (M).
  • a subsystem of the computer system, and/or the source computer system and the destination computer system, that encrypts data, transfers the data, and decrypts the data may be assigned, in whole or in part, to a particular hardware implemented system, such as a dedicated Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • One or more subsystems, in whole or in part, may alternatively be implemented as software or firmware instructions defining the operation of a computer system with specific regard to the one or more subsystems implemented as software or firmware instructions.
  • the software or firmware instructions may cause the Central Processing Unit, memory, and/or other systems of a computer system to operate in particular accordance with the particular one or more subsystems designated features.
  • the disclosure below provides a simplified example of the operations and data relationships during the performance of a fundamental "core" EDCE embodiment.
  • the amount of data, the type of data, and the particular data values shown and described in the example are not meant to represent any particular real system, but are provided only for the purpose of showing the operations and data relationships of an embodiment. Further, the embodiments described below are not meant to restrict operations to particular data types, encryption shared secret key exchange techniques, text to numeric and back conversion techniques, and/or number to multivector coefficient assignment techniques.
  • the various embodiments may be comprised of functional blocks, each of which may be tailored as described according to objectives for scope, capability and security.
  • the following sections provide a mathematical and numerical description of one or more example embodiments of these functional blocks.
  • the numerical results in the examples are generally derived from Geometric Algebra executing in the C programming language. Packing and Unpacking Multivectors
  • each text message needs to be converted to a number in order to become a valid operational unit for all EDCE computations.
  • the numbers are typically shown in base 10, but the various embodiments may choose other number bases as desired by the system designer.
  • a hex (base 16) representation may provide particular advantages when dealing with ASCII numerical representations as standard ASCII has a representation based on the numbers 0- 127 (i.e., 2 7 ), which is one power of two (i.e., hex is 2 s ) less than the typical 8 bits represented by a hex number of xFF.
  • symbols such as the letters a, b, c and so on are represented in order formats (such as binary, decimal, octets, hexadecimal, etc.), which are described in the ASCII printable code chart, a table that presents the relationship between formats. So the letters “a,” “b” and “c” in ASCII decimal code are 97, 98 and 99, respectively.
  • ASCII_array_from_"message [109, 101 , 1 15, 1 15, 97, 103, 101 ]
  • n n * 256 + ascii_array_from_message[i]
  • entropy may be added at this step by performing transformations on the ASCII codes, such as addition or modulo operations, but those entropy adding operations may affect whether intermediary
  • homomorphic operations may properly be performed on the message data as those entropy adding operations may adversely affect the mathematical relationship to the original message values. No such entropy adding transformations are used in the examples that follow.
  • a base 10 number is transmitted and received. From the above example of a message multivector, the coefficients are concatenated to form a number string.
  • the "number to text" conversion process for this number string also uses the ASCII printable code chart, but the recovery routine is different from the "text to number” conversion. The procedure is described below:
  • the input number is 30792318992869221.
  • n 30792318992869221
  • any number in base 10 may be a coefficient of a multivector element.
  • a multivector may contain arbitrary data, or data that is a result of a series of operations.
  • a base 10 number may also be represented in multivector form by distributing pieces of this number string to the coefficients in the multivector.
  • Multi vectors that are 2D have 4 elements/coefficients available to pack with pieces of this number string, a 3D multivector has 8 elements, and 4D has 16.
  • EDCE has been
  • A a 0 + a x e x + a 2 e 2 + a 3 e 3 + a 4 e 4 + a 12 e 12 + 13 e 13 + a 14 e 14 + a 23 e 23 + a 24 e 24
  • this string may be a single coefficient of, say, a 2D multivector, as follows:
  • EDCE has been demonstrated where the number string distributed to an element of the multivector exceeds 4,000 digits. However, the base 10 number in our example will typically be "distributed" in an ad hoc manner across all the multivector elements, such as:
  • the above distribution is called “number to multivector.”
  • the method of distributing the number string may be according to any of a variety of algorithms as long as the method is known and used by both the sending and receiving entities.
  • the distribution algorithm may include shuffling of the assignments to elements, performing functional operations on numbers assigned to elements or changing the algorithm between messages in a conversation. More operations increase encryption entropy.
  • shuffling and other algorithms to increase cryptographic confusion may break the potential for
  • the distributing/packing method defines, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments. For example, the
  • One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDCE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients.
  • the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients.
  • the destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption.
  • One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value.
  • the mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value.
  • the location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
  • the number may be sent using a numeric variable representation such as an integer or floating point data type.
  • an embodiment may also simply skip the step of converting the multivector (C) into cryptotext numeric data (C), and directly send a representation of the cryptotext multivector ( ) without first converting the cryptotext multivector (C) into cryptotext numeric data (C).
  • the transmission may be implemented as a series of transfers of the coefficients or as some form of records/packets that define a data stracture that carries the coefficient data of the cryptotext multivector (C).
  • C cryptotext multivector
  • C cryptotext numeric data
  • C cryptotext numeric data
  • a "Shared Secret” is a fundamental element in cryptography.
  • a Shared Secret enables secure communication between two or more parties.
  • the Shared Secret is a number string of digits that may be packed into a multivector in the manner shown above.
  • the "Shared Secret Multivector” may be used to operate on other muitivectors, such as creating the geometric product of the Shared Secret Multivector and the message multivector.
  • the Diffie-Hellman protocol uses the multiplicative group of integers modulo p (see, for example,
  • Bob chooses a secret integer b (Bob's password) and creates his signature S° as
  • Diffie-Hellman protocol is not limited to negotiating a key shared by only two participants. Any number of users can take part in the agreement by performing iterations of the protocol and exchanging intermediate data.
  • the cryptotext is created using the EDCE primitive which is the geometric product of the Message multivector and one or more other multivectors.
  • the cryptotext multivector may be the geometric product of the Message multivector and the Shared Secret Multivector.
  • the cryptotext multivector can be defined as the geometric product:
  • C In order to be transmitted, as a payload, C now may be converted to a base 10 number, through the "multivector to number" conversion process described above.
  • the Geometric Product of the Message Multivector may be taken with more than one other multivector or by using the same multivector twice to form a sandwich or by the addition of left and right multivector operations on the same Shared Secret Multivector.
  • Cryptotext Multivector there are several alternative methods to construct the Cryptotext Multivector.
  • One alternative is to encrypt the plaintext message using a conventional symmetric cipher such as AES, converting the number string output of that cipher to multivector format and use this multivector in calculating the geometric product with S s , which yields C.
  • AES symmetric cipher
  • This alternative may be practiced during the transition to EDGE within the enterprise to preserve backward compatibility with legacy encryption systems. Decryption
  • Fig. 5 is a flow chart 500 of an embodiment for the core Enhanced Data-Centric Encryption (EDGE) encryption/decryption performed by using a geometric product
  • EDGE Enhanced Data-Centric Encryption
  • Setup (502) The sequence is initiated by establishing the signature and shared secret multivectors.
  • the Diffie-Hellman procedure 508 is shown but other asymmetric key ciphers such as RSA may be used to generate a number string known only to the source 504 and the destination 506.
  • end-point devices may be "pre-conditioned" with a secret (number string) known to the system administrator from which the session multivectors may be constructed.
  • the Diffie-Hillman procedure 508 sets up/creates the shared secret keys 510 and then the setup 502 creates multivectors of the Diffie-Hillman keys 510 in the multivector setup 512.
  • Source (504) The Message Multivector 516 is constructed at the create message operation 514 by concatenating the message ASCII code string to a number string and then distributing that number to the coefficients of the message multivector at 514.
  • the method of distributing to coefficients uses a prescribed algorithm known and used by both the source 504 and the destination 506.
  • the Message Multivector 516 is then encrypted 518 by computing the geometric product of the message and Shared Secret multivectors.
  • the coefficients of the Cryptotext Multivector 520 are then concatenated into a base 10 number string, C (524), and transmitted through a user-defined dispatch function 526 over an electronic network/bus communication channel 528.
  • Destination (506): C (532) is received through a user-defined operation 530 and converted back to the Cryptotext Multivector 536 using the prescribed distribution method 534.
  • the Message Multivector 540 is then converted to a number string and then to plaintext at 542.
  • FIG. 6 is a flow chart 600 of an embodiment for the EDCE
  • Setup (602) The sequence is initiated by establishing the signature and shared secret multivectors.
  • the Diffie-Hellman procedure 608 is shown but other asymmetric key ciphers such as RSA may be used to generate a number string known only to the source 604 and the destination 606.
  • end-point devices may be "pre-conditioned" with a secret (number string) known to the system administrator from which the session multivectors may be constructed.
  • the Diffie-Hillman procedure 608 sets up/creates the shared secret keys 610 and then the setup 602 creates multivectors 612 of the Diffie-Hillman keys in the multivector setup 612.
  • Source (604) The Message Multivector 616 is constructed at the create message operation 614 by concatenating the message ASCI I code string to a number string and then distributing that number to the coefficients of the message multivector at 614.
  • the method of distributing to coefficients uses a prescribed algorithm known and used by both the source 604 and the destination 606.
  • the Message Multivector 616 is then encrypted 618 by computing the geometric product of the message and Shared Secret multivectors.
  • the coefficients of the Cryptotext Multivector 620 are then concatenated into a base 10 number string, C (624), and transmitted through a user-defined dispatch function 626 over an electronic network/bus communication channel 628.
  • Destination (606) C (632) is received through a user-defined operation 630 and converted back to the Cryptotcxt Multivector 636 using the prescribed distribution method 634.
  • a pair o symmetric shared secret keys may be used instead of a single shared secret key.
  • the original shared secret numeric value S s which may be obtained from a key exchange procedure, such as, but not limited to, the Diffie-Hellman key exchange process, may be used as the first shared secret numeric key of the pair of symmetric shared secret keys;
  • the original shared secret numeric key (S s ) may be loaded into a multivector representation, which may be denoted as (S s ).
  • a 0- Blade Reduction Operation on the original shared secret multivector (S s ) may be performed in order to extract/generate/obtain a scalar value that is the second shared secret numeric key (S Sl );
  • the scalar that results from 0-Blade Reduction Operation which has been defined as (Ss 2 ), may be loaded into a multivector through another multivector coefficient distribution operation with the resulting multivector being the second shared secret multivector (3 ⁇ 4 2 ).
  • Fig. 7 is a block diagram 700 illustrating generating/extracting/obtaining a second shared secret multivector key (3 ⁇ 4 2 ) 712 from the original shared secret multivector (S s ) 704 for an embodiment.
  • the original shared secret multivector (S s ) 704 may be used to encrypt and decrypt data as the first shared secret multivector key of a pair of symmetric shared secret multivector keys.
  • the 0-Blade Reduction Operation 706 results in the scalar value of the second shared secret numeric key (S S2 ) 708.
  • a number to multivector coefficient distribution process 710 converts the second shared secret numeric key (S s ) into a second shared secret multivector ( y 2 ) 712.
  • the second shared secret multivector (3 ⁇ 4 2 ) may then be used to encrypt and decrypt data as the second shared secret multivector key of a pair of symmetric shared secret multivector keys.
  • the first encryption primitive can be created through a sequence of geometric products using the pair of keys generated via the 0-Blade Reduction Operation (described herein, above) as follows:
  • the decryption operation involves the closed-form solution of the Sylvester's equation for 3-dimensional multivector space as follows:
  • a multivector may act as a Geometric Algebra object such that components of multi-dimensions and Clifford k-vectors are present.
  • An example is:
  • a typical, but not the only, arithmetic function used for secret sharing is the Diffie-Hcllman function, which is based on cyclic groups with element g; for example:
  • S s g ab mod p
  • S s is a shared secret which can be used by both the source and destination sides and where the operation g' ll) mod p yields S s . This is standard in the cyber security field.
  • the shared secret S s is changed to a multivector in the same or a similar manner, such as:
  • the multi vector-based Sylvester's equation may be used to create a cipher.
  • the cryptotext multivector C is:
  • the first encryption primitive may be created through a sequence of geometric products using the pair of keys generated via the 0-Blade Reduction Operation (described above) as follows:
  • the decryption process may comprise the following steps:
  • the multivector based Sylvester's equation may be employed here to generate a second encryption primitive which also uses the pair of symmetric shared secret keys generated via the 0- Blade Reduction Operation (described above), as follows:
  • the cipher multivector C which is a result of the multivector based Sylvester's equation above, is converted into a number, denoted by C and defined as a pre-cipher. This number is the information to be sent from the source computing device to the destination computing device.
  • the decryption operation involves the closed-form solution of the multivector based Sylvester's equation for 3-dimensional multivector space and the XOR 'unmask' previously described for the "sandwich" / triple product above.
  • the summarized processes are given below:
  • Section 3 Homomorphic EDCHE Enhancements to EDGE Operation
  • EDCHE is an extension to the EDGE cryptosystem described in more detail in Sections 1 and 2 above.
  • the extension to support homomorphic operations requires additional considerations, particularly in the organization of the data message multivector coefficients, but, for the most part, the extension to support homomorphic operations relies on the intrinsic algebraic homomorphism of the Geometric Algebra foundation that are part of the encryption/decryption functions of the core EDGE.
  • the Geometric Algebra geometric product operations that perform the actual encryption and decryption operations remain the same for both EDGE and EDCHE embodiments.
  • the handling of the security keys also remains the same for both EDGE and EDCHE embodiments, including the data organization for "number to multivector" operations and any restrictions thereon.
  • any operations to convert text to a number and/or operations to convert a number also remain the same for both EDGE and EDCHE embodiments.
  • the choice of whether or not to convert a cryptotext multivector (C) into cryptotext numeric data (C) prior to transmitting the encrypted data to a destination system (or to an intermediary system along the path to the final destination) remains the same for both EDCE and EDCHE embodiments and the processes to convert between cryptotext multivector (C) and cryptotext numeric data (C) also remain the same between EDCE and EDCHE, except there may be some restrictions on the types of permissible operations allowed for EDCHE embodiments to ensure that an intermediary computing system operating on the encrypted data does not need knowledge of any security keys involved in the encryption/decryption process.
  • the EDCHE embodiments add further restrictions that the data organization preserves homomorphic properties (i.e., have a homomorphic preserving mathematical relationship between the vectors utilized in the encryption process and the original plaintext messages being encrypted).
  • an EDCHE embodiment simply adds restrictions to an EDCE system regarding data organization operations for the multivector representation of the data being encrypted as well as to conversions between a cryptotext multivector (C) and a cryptotext numeric data (C)
  • EDCH embodiments being a subset of EDCE embodiments may operate as EDCE embodiments, but EDCE embodiments may not all necessarily operate as EDCHE embodiments.
  • Potential homomorphic encryption operations for an EDCHE embodiment may include multiple operations, such as, but not limited to: encrypted addition/subtraction, scalar addition/subtraction, encrypted multiplication, scalar multiplication, encrypted searching, and encrypted sorting.
  • Each of the potential homomorphic encryption operations involves operations particular to the particular operation. For this reason, separate disclosures for each particular operation may be presented to so as to make the clear the specific details comprising the implementation of each particular operation.
  • An additional document that briefly presents the combination of the potential homomorphic operations may also be separately presented that provides a brief summary of each operation and provides the additional details for performing combinations of the potential encryption operations. In view of potential disclosures, this particular disclosure is intended to address the specific details that comprise the particular details of additive homomorphic encryption operations.
  • EDCHE The description of EDCHE below will typically use the term “source” for the entity (e.g., computing device/system) where numeric values that are operands of the additive homomorphic operation originate and “destination” for the entity (e.g., computing device/system) that receives the result of the additive homomorphic operation.
  • source for the entity (e.g., computing device/system) where numeric values that are operands of the additive homomorphic operation originate
  • destination the entity (e.g., computing device/system) that receives the result of the additive homomorphic operation.
  • intermediarry will typically define the “intermediate” entity acting in between the source(s) and destination on the encrypted numeric value operands originated at the source entity(ies).
  • client may be used to describe the owner of the operand and/or result data (i.e., the source and/or destination computing device/system), while the generic term “cloud” may be used for data that is at rest in an untrusted environment (i.e., the intermediary computing system/device).
  • client and cloud may more closely reflect a real world application where the source and destination are the same entity, sending data to the intermediary "cloud” for storage, then requesting an operation (e.g., a sum of stored transaction dollar amounts stored in encrypted format on the cloud) from the cloud when needed by the client.
  • source, destination, and intermediary reflect the relative operations being performed by computing system/device, and do not necessarily define the computing system/device as whole.
  • the source, destination, and intermediary operations/systems may reside as a particular application on one or more computing systems/devices.
  • the source, destination, and intermediary computing systems/devices may be general purpose computing systems capable of running multiple applications at the same time, it is inherently possible that the source, destination, and intermediary operations are encapsulated as separate applications/functions that may permit, one, two, or all of the separate applications/functions to run on a single computing device/system.
  • a single interconnected computer system of single owner/client may have untrusted environments that include data that i at rest (i.e., stored) in the owner/client's own end-point devices outside of the owner/client's digital secure perimeter.
  • homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces.
  • An algebra homomorphism between two algebras is one that preserves the algebra structure.
  • the method by which numbers are "packed" (i.e., distributed) into multivector coefficient elements should necessarily maintain some mathematical representation of the original number. Consequently, the packing/distribution method may define, among many things, the Geometric Algebra operations permissible for an EDCFIE embodiment. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal.
  • Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse.
  • the decryption methodology for EDGE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients.
  • One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDGE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients.
  • the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients.
  • the destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption.
  • the methods and systems that encrypt and decrypt messages using Geometric Algebra may utilize the intrinsic algebraic homomorphic properties of Geometric Algebra to permit arithmetic and other comparative operations on encrypted messages handled by an intermediary computing system without the need for the intermediary computing system to decrypt the encrypted messages prior to performing the arithmetic and other comparative operations. Accordingly, the intermediary computing system does not need to know any information regarding any of the secret security keys of the encryption/decryption processes to properly perform the arithmetic and other comparative operations.
  • the encrypted results of the arithmetic and other comparative operations performed by the intermediary computing system when decrypted at a destination computing device, produce results equivalent to the same operations as if the operations were performed on the unencrypted plain text messages.
  • a proper data organization methodology i.e., packing/distributing coefficients into a multivector
  • preserves such homomorphic properties i.e., the mathematical relationship between the vectors utilized in the encryption process and the original plaintext messages being encrypted
  • the distribution/packing data arrangement should also preserve a commutative mathematical relationship to the original numeric value being encrypted.
  • the method by which numbers are "packed" into mul ti vector elements must remain a representation of the original number.
  • One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value (i.e., the homomorphic preserving mathematical relationship).
  • the mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient o the multivector coef ficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value.
  • the location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
  • an embodiment of an EDCHE system provides a cryptosystem that allows unlimited multiplications and additions of cipher text (i.e., transmitted/stored encrypted messages at the intermediary/cloud computer system) due solely to the intrinsic algebraic homomorphic properties of an embodiment of the EDCHE system.
  • an embodiment of an EDCHE system may provide the homomorphic properties as a product of algebraic homomorphism without the need to use additional methods, such as "bootstrapping" (e.g., performing a recursive operation to reduce the noise associated with a cipher text) to achieve the homomorphic properties.
  • bootsstrapping e.g., performing a recursive operation to reduce the noise associated with a cipher text
  • homomorphism refers to a structure-preserving map between two algebraic staictures, such as groups, rings, or vector spaces.
  • An algebra homomorphism between two algebras is one that preserves the algebra structure.
  • the method by which numbers are "packed" into multivector elements must remain a representation of the original number.
  • One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value.
  • the mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value.
  • the location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
  • a homomorphic preserving mathematical relationship that includes both addition and subtraction operations might be, for a three dimensional multivector there are eight possible coefficients in the multivector representation (e.g., co, ci, c 2 , c?, cn, en, C23, and cm, numbered so as to correspond with the unit vector associated with each coefficient), if the coefficients for the ei and ei 2 unit vectors (i.e., C2 and C12) are subtracted in the calculation of the homomorphic preserving mathematical relationship for a first numeric data message conversion to a multivector, all other numeric messages converted to a message vector should also ensure that the C2 and c/2 coefficients are subtracted in the conversion homomorphic preserving mathematical relationship process.
  • the coefficients for the ei and ei 2 unit vectors i.e., C2 and C12
  • the homomorphic preserving mathematical relationship process should also retain the subtraction of the C2 and cn coefficients.
  • the actual values of the coefficients may be selected as desired by a user so long as the homomorphic preserving mathematical relationship equals the original numeric value being encrypted.
  • the only other restriction for multivectors representing different numeric values within a homomorphic operation is that the multivectors all share the same dimensionality (i.e., all multivectors are 2D, all multivectors are 3D, all multivectors 4D, etc.).
  • the first step in representing a numeric message value in a multivector is to define the number of coefficients that are present in the multivector.
  • the total number of coefficient elements to be determined is eight.
  • the coefficient selections may encompass any number that may be represented in the data type chosen by a system designer to hold the coefficient values, including, but not limited to: positive numbers, negative numbers, zero, integer numbers, rational numbers (including fractions), and/or real numbers.
  • Subtractions would be represented as negative coefficients. This "form" of the mul ti vector coefficients adding together would remain consistent regardless of whether or not the corresponding coefficient is added or subtracted in the homomorphic preserving mathematical relationship between the original numeric value and the coefficients of the representative multivector.
  • the EDCHE embodiment performs the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted.
  • a first step might be to factorize the numeric message N and write the value N as a sum of other numbers (c,) that are to represent the numeric message value in a message multivector such that:
  • One skilled in the art will recognize that at this point there are many ways to assign the coefficient values (a) that will satisfy the homomorphic preserving mathematical relationship equation to enable proper operat ion of an EDCHE embodiment.
  • N mod n i.e., 5487 mod 8
  • C123 last coefficient value
  • N CO + Cl + C2 + Cj + Cl2 + C13 + C23 + CI 23
  • multivector N co + ci ei + ci Qi + a e3 + cn e. ⁇ i + cn en + C2i &2i + cm em
  • the assignment of which coefficient value receives the addition of the N mod n operation may be random, or the assignment may be of a predetermined form designed to increase entropy to enhance the encryption security.
  • N CO + Cl + C2 + C3 + C12 + C]3 + C23 + C123
  • multivector N co + cj e ⁇ + 02 e ⁇ + e + cn en + cn ei + cn e23 + m ei 2
  • multivector N 368 + 368e, + 368e 2 + 368e 3 + 368e i2 + 367e i 3 + 369e 23 + 368ei 23 Second example:
  • the EDCHE embodiment performs the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted.
  • the homomorphic preserving mathematical relationship equation to represent the numeric value N would, again, be:
  • N CO + Cl + C2 + Ci + /2 + CI3 + C23 + CJ23
  • N CO + Cl + C2 + C3 + CJ2 + C13 + C23 + C123
  • the homomorphic preserving mathematical relationship equation that is set equal to the numeric value N may be defined to include some subtraction of some coefficients, addition of a constant value, and multiplication of coefficient values by a constant, as well as the omission of one of the coefficients (i.e., C123) from the homomorphic preserving mathematical relationship.
  • the homomorphic preserving mathematical relationship equation to represent the numeric value N might now be:
  • N C0 + C] - C2 + C3 - CI2 + 3 * CIS + C23 + 23
  • a modified version of the methodology of either the first example (use a mathematical equation to calculate the coefficient values) or the second example (randomly generated coefficient values) described above may be used to determine the coefficient values given that the homomorphic preserving mathematical relationship now subtracts some coefficients, adds a constant, multiplies a coefficient by a constant, and omits one coefficient from the homomorphic preserving mathematical relationship altogether.
  • the homomorphic preserving mathematical relationship now subtracts some coefficients, adds a constant, multiplies a coefficient by a constant, and omits one coefficient from the homomorphic preserving mathematical relationship altogether.
  • N C0 + Cl - C2 + C3 - C12 + 3 * CJ3 + C23 + 23
  • multivector N 901 + 985ei + 185e 2 - 584e 3 + 286ej 2 + 882ei 3 + 1987e 23 + 333ei 23
  • cm value of 333 is a dummy value not included in the homomorphic preserving mathematical relationship, but may potentially be used to provide other features such as signature capability and/or passing of command or other information.
  • a homomorphic preserving mathematical relationship that includes some subtractive elements has the advantage of being able to represent negative numbers and zero without the coefficient values being negative for a user that prefers to not have negative coefficient values.
  • numeric value from the coefficients of a numeric data message multivector is relatively simple and straight forward.
  • To obtain the numeric data message value simply perform the homomorphic preserving mathematical relationship equation for the numeric data message multivector using the values of the multivector coefficients plugged into the homomorphic preserving mathematical relationship equation.
  • the examples given below provide the "multivector to number” process appropriate for the same example number as described above for the "number to multivector" process.
  • homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted.
  • the homomorphic preserving mathematical relationship equation to represent the result numeric value N would be:
  • N CO + C] + C2 + C3 + C12 + Cl3 + C23 + C 123
  • multivector N co + cj ei + o e 2 + cj e 3 + cn tn + c/j ei 3 + cu e 2 + c/25 ei 23 then the result multivector may be rewritten to highlight the appropriate positive and negative values as:
  • N C0 + C] + C2 + C3 + C12 + C13 + C23 + m
  • N (333) + (-201 ) + (248) + (506) + (-71 ) + (80) + (21 1 ) + (-743)
  • N 333 - 201 + 248 + 506 - 71 + 80 + 21 1 - 743 such that result numeric value N would be:
  • the EDO IE embodiment performed the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted, which is the same homomorphic preserving mathematical relationship equation as for the first example above. Consequently, the "multi vector to number” process is identical to that as described for the "multivector to number” process of the first example given above.
  • the EDCHE embodiment performed the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted.
  • the third example from above changed the homomorphic preserving mathematical relationship equation to include some subtraction of some coefficients, addition of a constant value, and multiplication of coefficient values by a constant, as well as the omission of one of the coefficients (i.e., a 23) from the homomorphic preserving mathematical relationship.
  • multivector N CO + Cl - C2 + C3 - C12 + 3 * C13 + C23 + 23
  • N 1947 where the C123 value of 192 is ignored as a dummy value not included in the homomorphic preserving mathematical relationship. Note that the third example result of 1947 does not equal the first example result of 3316 for the same result multivector. Thus, demonstrating the necessity of using the same homomorphic preserving mathematical relationship equation for all encrypted multivectors of a homomorphic summation operation.
  • N C() + Cj - C2 + C3 - CI2 + 3* C]3 + C23 + 23
  • is the encryption operation.
  • the unencrypted "sum” of plaintext messages is equal to the comparable encrypted "sum” of the encrypted messages the operation is additive homomorphic.
  • the term "sum” for additive homomorphic operations includes both addition and subtraction operations.
  • the plaintext messages and the corresponding encrypted messages should be added and subtracted in a comparable manner so that corresponding entities are similarly added or subtracted in the "sum” operation.
  • D j 1250 + 1250e, + 1250e 2 + 1250e 3 + 1250e 12 + 1250e 13 + 1250e 23 + 1250e 123
  • D 2 687 + 687*? ! + 687e, + 687e 3 + 687e 12 + 687e 13 + 687e 23 + 691e 123
  • D 3 875 + 875 ⁇ + 875e 2 + 875e 3 + 875e 12 + 875e 13 + 875e 23 + 875e 123 [0203] Given the following secret multivectors (where S 2 is derived from S 1 as in Section 2(F))
  • Si 3 + 2e x + 4e 2 + 8e 3 + 5e 12 + 7e 13 + 3e 23 -I- 6e 123 S 2 - 11 + Se- ! + 3e 2 + 15e 3 + 4e 12 + 17e 13 + 2e 23 + le 123
  • CD 3 3 ⁇ 43 ⁇ 43 ⁇ 4 which will generate:
  • CD l -155000 - 125000e v + 600000e 2 - 305000e 3 + 670000e 12 - 285000e 13
  • CD 2 -85612 - 68900e t + 330136e 2 - 168380e 3 + 368640e 12 - 157332e 13
  • ⁇ CD - 108500 + -87500 ⁇ -I- 420000e 2 - 213500e 3 + 469000e 12 - 199500e 13
  • CD 1 , CD 2 and CD 3 are sent to the cloud and stored.
  • Alice may request that the cloud (i.e., intermediary computing system) perform the following computation and return the result to Alice (i.e., Alice' s computing system acting as both all sources of data inputs and the destination that receives the calculation result).
  • TCD represent the sum of the debt amounts calculated on the encrypted data, such that:
  • TCD CD 1 + CD 2 + CD 3
  • TCD -349112 - 281400 ⁇ + 1350136e 2 - 686880e 3 + 1507640c, 2 - 641832c,
  • the cloud sends TCD to Alice.
  • TCD the multivector sum of the total debts
  • TD 2812 + 2812(3! + 2812e 2 + 2812e 3 + 2812e 12 + 2812e 13 + 2812e 23 + 2812e 123 Converting TD to a base 10 number yields:
  • P x 75 + 375e, -I- 375e 2 + 375e 3 + 375e 12 + 375e 13 + 375e 23 + 375e 123
  • P 2 500 + 500e, + 500e 2 + 500e 3 + 500e 12 + 500e 13 + 500e 23 + 500e 123
  • P 3 1250 + 1250 ⁇ ! + 1250e 2 + 1250e 3 -I- 1250e 12 + 1250e 13 + 1250e 23 + 1250e 123
  • the payments may be encrypted by applying the triple product technique as follows:
  • CP 2 -62000 - 50000e x + 240000e 2 - 122000e 3 + 268000e 12 - 114000e 13
  • CP After encryption, CP, . CP 2 and CP are sent to the cloud and stored. Again, if Alice wants to know the total of payments the cloud performs the following operation on the encrypted data:
  • TCP CP X + CP 2 + CP 3
  • TCP -263500 - 212500 ⁇ + 1020000e 2 - 518500e 3 + 1139000e 12 - 484500e 13
  • TCP is the sum of the total payments calculated on the encrypted data.
  • the cloud sends TCP to Alice.
  • Alice then decrypts the received information as follows:
  • TP 2125 + 21256 ! + 2125e 2 + 2125e 3 + 2125e 12 + 2125e 13 + 2125e 23 + 2125e 123
  • TP is the decrypted value of the total payments.
  • UB her updated balance
  • JjB 687 + 687e, + 687e 2 + 687e 3 + 687e 12 + 687e 13 + 687e 23 + 687e r
  • real numbers i.e., decimal numbers, which are typically handled by some type of floating point, or fixed point, data type variable in most computer programming languages
  • decimal numbers may be used to represent any of the various aspects of the encryption/decryption process for an EDCHE (as well as for an EDGE) embodiment, including decimal numbers for the numeric data message input, the coefficients of the various multivectors, and/or the result value of a homomorphic additive (i.e., summation) operation, as described in the example below.
  • CA -16777187.823 - 16761519.345c, + 7557035.187e 2 - 16760680.515c 3
  • CD -23954683.206 - 23935204.026 ⁇ ! + 22950544.194e 2 - 23928426.81e 3
  • Fig. 8 is a block diagram 800 of the hardware implementation for an additive homomorphic encryption embodiment.
  • One or more source computing devices 802 are connected over an electronic network/bus connection 804 to an intermediary (e.g., cloud) computing device 806.
  • the source computing device(s) 102 sends the two or more cryptotext multivectors 810 that will "summed" through the additive homomorphism of an EDCHE embodiment at the intermediary computing system 806 over the network/bus connection 104 to the intermediary computing system 806.
  • the two or more cryptotext multivectors 810 may be created on a single source computing device 802 or the two or more cryptotext multivectors 810 may be created on multiple source computing devices 802.
  • the intermediary computing system 806 receives the two or more cryptotext multivectors 810 from the network/bus connection 804.
  • the intermediary computing system 806 may immediately perform a "sum" of the two or more cryptotext multivectors 810 using vector addition/subtraction (as instructed by a user) or the intermediary computing system 806 may store the two or more cryptotext multivectors 810 until such time that the intermediary computing system 806 is instnicted to perform the homomorphic sum operation.
  • the intermediary computing system sends the encrypted homomorphic sum additive result multitvector 812 to the destination computing system 808 over the network/bus communication connection 804.
  • the destination computing system 808 receives the encrypted homomorphic sum additive result multivector 812 from the network/bus communication connection 804 and decrypts the encrypted homomorphic sum additive result multivector 812 to obtain the desired plaintext additive result.
  • the cryptotext multivectors 810 may be converted to non-multivector cryptotext when being sent over the network/bus communication connection 804, then converted back into cryptotext multivectors at the intermediary computing system 806 for additive homomorphic operations.
  • the encrypted homomorphic sum additive result multivectors 812 may be converted to non- multivector additive result cryptotext when being sent over the network/bus communication connection 804, then converted back into the encrypted homomorphic sum additive result multivector 81 2 at the destination computing device 808 for decryption by the destination computing device 808 into the plaintext additive result.
  • communications are bidirectional such that the source(s) computing device 802, the intermediary computing system 806, and/or the destination computing device 808 may change roles so as to operate as a source computing device 802, the intermediary computing system 806, and/or the destination computing device 808 as is necessary to accommodate the transfer of data back and forth between the source(s) 102 and destination 808 computing devices as well as for computation of homomorphic summations at the intermediary computing system 806.
  • the source(s) computing device 102 appears to be a laptop computer and the destination computing device 808 appears to be a tablet device.
  • any computing device capable of communication over any form of electronic network or bus communication platform 804 may be one, multiple or all of the source(s) computing device 802, the intermediary computing system 806, and/or the destination computing device. Further still, the source(s) 802, intermediary 806, and destination computing devices/systems 808 may actually be the same physical computing device communicating over an internal bus connection 804 with itself, but still desiring encrypted communication to ensure that an attacker cannot monitor the internal communications bus 804 or hack an unprotected area of the computing system (i.e., the intermediary section 806) in order to obtain sensitive data communications in an unencrypted format.
  • Various embodiments may implement the network/bus communications channel 804 using any communications channel 804 capable of transferring electronic data between the source(s) 802, intermediary 806, and/or destination 808 computing devices/systems.
  • the network/bus communication connection 804 may be an Internet connection routed over one or more different communications channels during transmission from the source(s) 802 to the intermediary 806 computing system, and then onto the destination computing device 808.
  • the network/bus communication connection 804 may be an internal communications bus of a computing device, or even the internal bus of a processing or memory storage Integrated Circuit (IC) chip, such as a memory chip or a Central Processing Unit (CPU) chip.
  • IC Integrated Circuit
  • the network/bus communication channel 804 may utilize any medium capable of transmitting electronic data communications, including, but not limited to: wired communications, wireless electro-magnetic communications, fiber-optic cable communications, light/laser communications, sonic/sound communications, etc., and any combination thereof of the various communication channels.
  • the various embodiments may provide the control and management functions detailed herein via an application operating on the source(s) 802, intermediary 806, and/or destination 808 computing devices/systems.
  • the source(s) 802, intermediary 806, and/or destination 808 computing devices/systems may each be a computer or computer system, or any other electronic devices device capable of performing the communications and computations of an embodiment.
  • the source(s) 802, intermediary 806, and/or destination 808 computing devices/systems may include, but are not limited to: a general purpose computer, a laptop/portable computer, a tablet device, a smart phone, an industrial control computer, a data storage system controller, a CPU, a Graphical Processing Unit (GPU), an Application Specific Integrated Circuit (ASI), and/or a Field Programmable Gate Array (FPGA).
  • the first 102 and second 106 computing devices may be the storage controller of a data storage media (e.g., the controller for a hard disk drive) such that data delivered to/from the data storage media is always encrypted so as to limit the ability of an attacker to ever have access to unencrypted data.
  • Embodiments may be provided as a computer program product which may include a computer-readable, or machine-readable, medium having stored thereon instructions which may be used to program/operate a computer (or other electronic devices) or computer system to perform a process or processes in accordance with the various embodiments.
  • the computer-readable medium may include, but is not l imited to, hard disk drives, floppy diskettes, optical disks, Compact Disc Readonly Memories (CD-ROMs), Digital Versatile Disc ROMS (DVD-ROMs), Universal Serial Bus ( USB) memory sticks, magneto-optical disks, ROMs, random access memories (RAMs), Erasable Programmable ROMs (EPROMs), Electrically Erasable Programmable ROMs (EEPROMs), magnetic optical cards, flash memory, or other types of media/machine- readable medium suitable for storing electronic instructions.
  • the computer program instructions may reside and operate on a single computer/electronic device or various portions may be spread over multiple computers/devices that comprise a computer system.
  • embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection, including both wired/cabled and wireless connections).
  • a communication link e.g., a modem or network connection, including both wired/cabled and wireless connections.
  • Fig. 9 is a flow chart 900 of the general operation for an additive homomorphic encryption embodiment.
  • a shared secret numeric data value (S s ) is shared between the source(s) 902 and destination 906.
  • the various embodiments may share the shared secret numeric data value (S s ) between the source(s) 902 and destination 906 via any means desired by the users.
  • S s shared secret numeric data value
  • the shared secret numeric data value (S s ) may be shared between the source(s) 906 and destination 906 by means including, but not limited to: pre-conditioning the source(s) 902 computing device and the destination 906 computing device with the shared secret numeric value (S s ), a standard public/private key exchange technique, RSA (Rivest-Shamir-Adleman) key exchange, and/or Diffie-Hellman key exchange (disclosed in more detail herein, below).
  • the original shared secret may be an alphanumeric string in ASCII (American Standard Code for
  • both the source(s) 902 and destination 906 need to know and use the same alphanumeric text conversion into a numeric value process to ensure that results of both the source(s) 902 and the destination 906 are the same.
  • the process 910-916 of source(s) 902 are performed at least twice in order to create the two or more cryptotext multivectors that are to be summed using additive homomorphic properties.
  • the source(s) 902 distributes the numeric message data (M) into message multivector ( ) coefficients in accord with a homomorphic mathematical relationship equation between a plaintext data value and coefficients of a multivector that represents the plaintext data value.
  • all sources 902 and the destination 906 should use the same homomorphic preserving mathematical relationship to preserve the homomorphism of the encrypted data.
  • the encryption system will work with just one non-zero message multivector (M) coefficient, but, the more non-zero message multivector (M) coefficients there are, the stronger the encryption will become, so it is desirable to have more than one non-zero message multivector (M) coefficient.
  • the source(s) 202 distributes shared secret numeric value (S s ) into shared secret multivector ( S ) coefficients.
  • the encryption system will work with just one non-zero shared secret multivector (S s ) coefficient, but, the more non-zero shared secret multivector (S s ) coefficients there are, the stronger the encryption will become, so, again, it is desirable to have more than one non-zero shared secret multivector (S s ) coefficient.
  • S s non-zero shared secret multivector
  • One skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector ⁇ see herein, above for disclosure of some example packing/distribution methods).
  • the primary requirement for the distribution process from the numeric values of the message (M) and the shared secret (S s ) to the multivector coefficient values ( and S s ) is that the source(s) 902 and the destination 906 both know the processes 910/230 and 912/926 such that the destination 904 can get the proper value for the homomorphic additive result (AR). As long as it is known to both the source(s) 902 and the destination 904, the distribution of numeric data to multivector coefficients may be performed differently between the message
  • the distributing/packing method defines, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments.
  • the Rationalize operation on multivectors yields zero when all multivector coefficients are equal.
  • Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse.
  • the Rationalize operation on multivectors yields zero when all multivector coefficients are equal.
  • Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse.
  • the decryption methodology for EDCE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients.
  • One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors.
  • the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients.
  • the destination computing device 904 may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption. Therefore, it may be desirable for the distribution/packing method to also ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients).
  • the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message.
  • the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces.
  • An algebra homomorphism between two algebras is one that preserves the algebra structure.
  • the method by which numbers are "packed" into multivector elements must remain a representation of the original number.
  • One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value.
  • the mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value.
  • the location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently appl ied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
  • the distribution (i.e., "packing") of the shared secret multivector (S s ) may be performed in any fashion so long as the distribution (i.e., "packing") method of the shared secret multivector (S s ) is known and used consistently by the source 902 and destination 906 computing devices as, ultimately, the shared secret multivector (S s ) used by the source 902 and destination 960 should be equal to each other to ensure that the decryption operations 226 work properly in relation to the encryption 214 operations.
  • the number of potential coefficients is directly related to the size/dimension (N) of the multivectors such that the number of coefficients increases by a factor of 2 (i.e., 2 N ) for each incremental increase in the size/dimension (N) of the multivector.
  • using multivectors of at least two dimensions will provide at least four coefficients to distribute the numeric data of the message (M) and the shared secret (S s ).
  • the confusion and/or diffusion security characteristics will also be increased due to the additional ly available multivector coefficients. Further, with the additionally available coefficients it is also possible to transfer more data in a single multivector message (M) payload using the additionally available multivector coefficients.
  • M multivector message
  • the source(s) 902 encrypts a cryptotext multivector (C) as a function of at least one Geometric Algebra geometric product operation on the message multivector ( ) and the shared secret multivector (S s ). Due to the nature of the geometric product operation of Geometric Algebra, there are many possible variations of the geometric product application that will provide similar degrees of confusion and diffusion.
  • the source(s) 902 sends the cryptotext multivector (C) to the intermediary computing system 904.
  • Various embodiments may optionally convert the cryptotext multivector (C) into cryptotext numeric data (C) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to the source(s) 902, intermediary (904), and the destination 906.
  • An embodiment may also skip conversion to cryptotext numeric data (C) and directly send a representation of the cryptotext multivector (C) without first converting the cryptotext multivector (C) into cryptotext numeric data (C).
  • the transmission may be implemented as a series of transfers of the coefficients or as some form of records/packets that define a data structure that carries the coefficient data of the cryptotext multivector (C).
  • C the coefficient data of the cryptotext multivector
  • Not converting the cryptotext multivector ( ) into cryptotext numeric data (C) has the advantage of avoiding the processing time for the conversion as well as having the advantage that, for homomorphic operations performed at an intermediary computing system, the intermediary computing system need not have any knowledge of the methodology used to create the cryptotext multivector (C).
  • process 216 is used to convert the cryptotext multivector (C) into cryptotext numeric data (0, it is necessary for any computing device/system that wishes to operate on the cryptotext multivector (C) to have knowledge of the particular conversion methodology so that the computing device/system may properly recreate the cryptotext multivector (C).
  • a disadvantage of not converting the cryptotext multivector (C) into cryptotext numeric data (C) is that it may be possible to include additional confusion/diffusion features in conversion to cryptotext numeric data.
  • the intermediary computing system 904 receives the two or more cryptotext multivector (C) sent by the source(s) 902.
  • the intermediary performs the user desired vector additions/subtractions on the two or more cryptotext multivector (C) sent by the source(s) 902.
  • the intermediary 904 sends the additive result cryptotext multivector (ARC) to the destination 906.
  • the destination 906 receives the additive result cryptotext multivector (ARC) sent by the intermediary 904.
  • the destination 906 distributes shared secret numeric value (S s ) into shared secret multivector (S s ) coefficients in the same fashion as was done for the source(s) 902 at process 912.
  • the destination decrypts the additive result cryptotext multivector (ARC) as a function of at least one Geometric Algebra geometric product operation on the cryptotext multivector (C) and an inverse (S s 1 ) of the shared secret multivector (S s ) back into the message multivector (M).
  • the destination 906 converts the additive result cryptotext multivector (ARC) into the additive result cryptotext numeric (AR) in accord with reverse operation of homomorphic preserving mathematical relationship of the source(s) 902 at process 910.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Complex Calculations (AREA)

Abstract

Disclosed are methods and systems for encrypting an arbitrary number of numeric messages using Geometric Algebra on at least one source computing device (802), performing additive homomorphic summation on the encrypted numeric messages (810) such that an encrypted additive result (812) is obtained without decrypting the encrypted numeric messages (810) on an intermediary computing system (806) that does not have knowledge of the encryption security keys, and decrypting using Geometric Algebra the encrypted additive result (812) on a destination computing device (808) such that the decrypted additive result is equal to the result of the equivalent summing operation of the unencrypted numeric messages. Encrypt operations use the geometric product (Clifford Product) of multivectors created from plain text/data of the numeric data messages with one or more other multivectors that carry encryption keys. Decrypt operation decrypts the additive summation result by employing geometric algebra operations such as multivector inverse, Clifford conjugate and others along with the geometric product.

Description

METHODS AND SYSTEMS FOR ENHANCED DATA-CENTRIC ADDITIVE HOMOMORPHIC ENCRYPTION SYSTEMS USING GEOMETRIC ALGEBRA
Cross Reference to Related Applications
[0001] This application is a continuation-in-part of U. S. patent application Serial No. 1 5/667,325, filed August 2, 2017, entitled "Methods and Systems for Enhanced Data-Centric Encryption Systems Using Geometric Algebra," all of which is specifically incorporated herein by reference for all that it discloses and teaches. This application is further based upon and claims the benefit of U.S. provisional applications Serial No. 62/452,246, filed January 30, 2017, entitled "Methods and Systems for Enhanced Data-Centric Encryption Additive Homomorphic Systems Using Geometric Algebra;" Serial No. 62/483,227, filed April 7, 2017, entitled "Methods and Systems for Enhanced Data-Centric Scalar Multiplicative Homomorphic Encryption Systems Using Geometric Algebra;" Serial No. 62/572,955, filed October 16, 2017, entitled "Methods and System for Enhanced Data-Centric Homomorphic Encryption Searching Using Geometric Algebra;" and Serial No. 62/572,970, filed October 1 6, 2017, entitled "Methods and System for Enhanced Data-Centric Homomorphic
Encryption Sorting Using Geometric Algebra;" all of which are also specifically incorporated herein by reference for all that they disclose and teach.
Background of the Invention
[0002] In the last several decades, personal computers and other consumer computing devices, such has hand-held devices and smart phones, have become ubiquitous among the general public. As the proliferation of personal computers and other computing devices became prevalent, the usefulness of the computers and other computing devices was increased by interconnected communications between different computers/computing devices via various electronic networking communications systems. With the advent of the publicly accessible Internet and the establishment of the World Wide Web (WWW) for common communications between computers and/or other computing devices on the Internet, it became common for private identification and financial information to be transferred over the publicly accessible Internet. To ensure that the private information is not accessed by parties that are not intended to be privy to the private information, various encryption techniques have been applied to the private data being transferred over the Internet. As data storage has become accessible over networking technologies, including over the publicly accessible Internet, it has also become prudent to store sensitive data in an encrypted format.
[0003] Modern encryption employs mathematical techniques that manipulate positive integers or binary bits. Asymmetric encryption, such as RSA (Rivest-Shamir-Adleman), relies on number theoretic one-way functions that are predictably difficult to factor and can be made more difficult with an ever increasing size of the encryption keys. Symmetric encryption, such as DES (Data Encryption Standard) and AES (Advanced Encryption Standard), uses bit manipulations within registers to shuffle the cryptotext to increase "diffusion" as well as register based operations with a shared key to increase "confusion." Diffusion and confusion are measures for the increase in statistical entropy on the data payload being transmitted. The concepts of diffusion and confusion in encryption are normally attributed as first being identified by Claude Shannon in the 1940s. Diffusion is generally thought of as complicating the mathematical process of generating unencrypted (plain text) data from the encrypted (cryptotext) data, thus, making it difficult to discover the encryption key of the encryption process by spreading the influence of each piece of the unencrypted (plain) data across several pieces of the encrypted (cryptotext) data.
Consequently, an encryption system that has a high degree of diffusion will typically change several characters of the encrypted (cryptotext) data for the change of a single character in the unencrypted (plain) data making it difficult for an attacker to identify changes in the unencrypted (plain) data. Confusion is generally thought of as obscuring the relationship between the unencrypted (plain) data and the encrypted (cryptotext) data. Accordingly, an encryption system that has a high degree of confusion would entail a process that drastically changes the unencrypted (plain) data into the encrypted (cryptotext) data in a way that, even when an attacker knows the operation of the encryption method (such as the public standards of RSA, DES, and/or AES), it is still difficult to deduce the encryption key.
[0004] Homomorphic Encryption is a form of encryption that allows computations to be carried out on cipher text as it is encrypted without decrypting the cipher text that generates an encrypted result which, when decrypted, matches the result of operations performed on the unencrypted plaintext.
[0005] The word homomorphism comes from the ancient Greek language: όμός (homos) meaning "same" and μορφή (morphe) meaning "form" or "shape." Homomorphism may have different definitions depending on the field of use. In mathematics, for example, homomorphism may be considered a transformation of a first set into a second set where the relationship between the elements of the first set are preserved in the relationship of the elements of the second set.
[0006] For instance, a map / between sets A and £ is a homomorphism of A into B if
/ op 2) = /(£ ) op /(a2) I at, a2 E A where "op" is the respective group operation defining the relationship between A and B.
[0007] More specifically, for abstract algebra, the term homomorphism may be a structure-preserving map between two algebraic structures such as groups, rings, or vector spaces. Isomorphisms, automorphisms, and endomorphisms are typically considered special types of homomorphisms. Among other more specific definitions of homomorphism, algebra homomorphism may be considered a homomorphism that preserves the algebra structure between two sets.
Summary of the Invention
[0008 ] An embodiment of the present invention may comprise a method for performing additive homomorphic summation of at least two cryptotext encrypted data representations of at least two corresponding plain text data values, the method comprising: distributing by a first source computing device a first numeric message data value (M^ into coefficients of a first message multivector ( x) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the first source computing device, at least one additional source computing device, and a destination computing device; distributing by the first source computing device a shared secret numeric value (Ss) into coefficients of a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to the first source computing device, the at least one additional source computing device, and the destination computing device, such that the shared secret numeric value (Ss) is known or knowable to the first source computing device, the at least one additional source computing device, and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including an intermediary computing system; encrypting by the first source computing device a first cryptotext multivector {Cx) as an encryption function of at least one Geometric Algebra geometric product operation on the first message multivector (Mt) and the shared secret multivector (Ss); sending by the first source computing device the first cryptotext multivector (Cx) to the intermediary computing system; distributing by the at least one additional source computing device at least one corresponding additional numeric message data value (Mn) into coefficients of at least one corresponding additional message multivector (Mn) in accord with the homomorphic preserving mathematical relationship; distributing by the at least one additional source computing device the shared secret numeric value (Ss) into the shared secret multivector (Ss) in accord with the shared secret coefficient distribution algorithm; encrypting by the at least one additional source computing device at least one corresponding additional cryptotext multivector (Cn) as the encryption function of at least one Geometric Algebra geometric product operation on the at least one corresponding additional message multivector (Mn) and the shared secret multivector (Ss) such that the encryption function of the at least one corresponding additional cryptotext multivector (Cn) matches the encryption function of the first cryptotext multivector (Ct); sending by the at least one additional source computing device the at least one corresponding additional cryptotext multivector (Cn) to the intermediary computing system; receiving by the intermediary computing system the first cryptotext multivector (Cx) sent by the first source computing device and the at least one additional cryptotext multivector (Cn) sent by the corresponding at least one additional source computing device; summing by the intermediary computing system using vector summation the first cryptotext multivector (Ct) and the at least one additional cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); sending by the
intermediary computing system the additive result cryptotext multivector (ARC) to the destination computing device; receiving by the destination computing device the additive result cryptotext multivector (ARC) sent by the intermediary computing system; distributing by the destination computing device the shared secret numeric value (Ss) into the shared secret multivector (Ss) in accord with the shared secret coefficient distribution algorithm; decrypting by the destination computing device the additive result cryptotext multivector
(ARC) as a decryption function of at least one Geometric Algebra geometric product
— ]_
operation on the additive result cryptotext multivector (ARC) and an inverse (Ss ) of the shared secret multivector (Ss) into an additive result multivector (AR) such that the decryption function provides a corresponding decryption operation for the encryption process of the first cryptotext multivector (Cj_) and the at least one additional cryptotext multivector
(Cn); and converting by the destination computing device the additive result multivector (AR) into an additive result data value (AR) in accord with the homomorphic preserving mathematical relationship such that the additive result data value (AR) is equal to a sum of the unencrypted first numeric message data value (Mx) and the unencrypted at least one additional numeric message data value (Mn) such that the sum of the unencrypted first numeric message data value (Μχ) and the unencrypted at least one additional numeric message data value (Mn) is performed with corresponding mathematical operations as the process of summing of the first cryptotext multivector (C^) and the at least one additional cryptotext multivector (Cn).
[0009] An embodiment of the present invention may further comprise a method for encrypting a numeric message data value (M) on a source computing device in order to transfer a cryptotext multivector (C) encrypted representation of the numeric message data value (M) to an intermediary computing system that will perform additive homomorphic summation of the cryptotext multivector (C) and at least one additional cryptotext encrypted data representation of at least one additional numeric message and deliver a result of the homomorphic summation to a destination computing device, the method comprising:
distributing by the source computing device the numeric message data value ( ) into coefficients of a message multivector (M) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the source computing device and the destination computing device; distributing by the source computing device a shared secret numeric value (Ss) into coefficients of a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to the source computing device and the destination computing device, the shared secret numeric value (Ss) being known or knowable to the source computing device and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including the intermediary computing system; encrypting by the source computing device the cryptotext multivector (C) as an encryption function of at least one Geometric Algebra geometric product operation on the message multivector (M) and the shared secret multivector (S5); and sending by the source computing device the cryptotext multivector (C) to the intermediary computing system.
[0010] An embodiment of the present invention may further comprise a method for performing additive homomorphic summation on an intermediary computer system of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values received from at least one source computing device and delivering an additive result cryptotext multivector (ARC), the method comprising: receiving by the intermediary computing system the at least two cryptotext multivectors (Cn) sent by the at least one source computing device; summing by the intermediary computing system using vector summation the at least two cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); and sending by the intermediary computing system the additive result cryptotext multivector (ARC) to the destination computing device.
[0011] An embodiment of the present invention may further comprise a method for decrypting an additive result cryptotext multivector (ARC) on a destination computing device received from an intermediary computing system that performed additive homomorphic summation of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values originated from at least one source computing device, the method comprising: receiving by the destination computing device the additive result cryptotext multivector (ARC) sent by the intermediary computing system; distributing by the source computing device a shared secret numeric value (Ss) into a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to the at least one source computing device and the destination computing device, the shared secret numeric value (Ss) being known or knowable to the at least one source computing device and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including the intermediary computing system; decrypting by the destination computing device the additive result cryptotext multivector (ARC) as a decryption function of at least one Geometric Algebra geometric product operation on the additive result cryptotext multivector (ARC) and an inverse (Ss 1) of the shared secret multivector (Ss) into an additive result multivector (AR) such that the decryption function provides a corresponding decryption operation for an encryption process of the at least two cryptotext multivectors (Cn); and converting by the destination computing device the additive result multivector (AR) into an additive result data value (AR) in accord with the homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the source computing device and the destination computing device such that the additive result data value (AR) is equal to a sum of the at least two corresponding plain text numeric data values corresponding to the at least two cryptotext multivectors (Cn) such that the sum of the at least two corresponding plain text data values is performed with corresponding mathematical operations as the additive homomorphic summation of the at least two cryptotext multivectors (Cn).
[0012] An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) system for additive homomorphic summation of at least two cryptotext encrypted data representations of at least two corresponding plain text data values, the additive homomorphic EDGE system comprising: a first source computing device, wherein the first source computing device further comprises: a first source numeric message distribution subsystem that distributes a first numeric message data value (Mx) into coefficients of a first message multivector (Mx) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the first source computing device, at least one additional source computing device, and a destination computing device; a first source numeric shared secret distribution subsystem that distributes a shared secret numeric value (Ss) into coefficients of a shared secret multivector (¾) in accord with a shared secret coefficient distribution algorithm that is known to the first source computing device, the at least one additional source computing device, and the destination computing device, such that the shared secret numeric value (Ss) is known or knowable to the first source computing device, the at least one additional source computing device, and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including an intermediary computing system; a first source encryption subsystem that encrypts a first cryptotext multivector (C ) as an encryption function of at least one Geometric Algebra geometric product operation on the first message multivector (Mx) and the shared secret multivector (Ss); and a first source send subsystem that sends the first cryptotext multivector (C^) to the intermediary computing system; the at least one additional source computing device, wherein the at least one additional source computing device further comprises: an additional source numeric message distribution subsystem that distributes at least one corresponding additional numeric message data value ( n) into coefficients of at least one corresponding additional message multivector (Mn) in accord with the homomorphic preserving mathematical relationship; an additional source numeric shared secret distribution subsystem that distributes the shared secret numeric value (Ss) into the shared secret multivector (Ss) in accord with the shared secret coefficient distribution algorithm; an additional source encryption subsystem that encrypts at least one corresponding additional cryptotext multivector (Cn) as the encryption function of at least one Geometric Algebra geometric product operation on the at least one corresponding additional message multivector (Mn) and the shared secret multivector (Ss) such that the encryption function matches the encryption function of the first cryptotext multivector (Cx); and an additional source send subsystem that sends the at least one corresponding additional cryptotext multivector (Cn) to the
intermediary computing system; the intermediary computing system, wherein the
intermediary computing system further comprises: an intermediary receive subsystem that receives the first cryptotext multivector sent by the first source computing device and the at least one additional cryptotext multivector (Cn) sent by the corresponding at least one additional source computing device; an intermediary homomorphic summation subsystem that sums using vector summation the first cryptotext multivector (C^) and the at least one additional cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); and an intermeidary send subsystem that sends the additive result cryptotext multivector (ARC) to the destination computing device; and the destination computing device, wherein the destination computing device further comprises: a destination receive subsystem that receives the additive result cryptotext multivector (ARC) sent by the intermediary computing system; a destination numeric shared secret distribution subsystem that distributes the shared secret numeric value (Ss) into the shared secret multivector (Ss) in accord with the shared secret coefficient distribution algorithm; a destination decryption subsystem that decrypts the additive result cryptotext multivector (ARC) as a decryption function of at least one Geometric Algebra geometric product operation on the additive result cryptotext multivector (ARC) and an inverse (Ss 1) of the shared secret multivector (Ss) into an additive result multivector (AR) such that the decryption function provides a
corresponding decryption operation for the encryption process of the first cryptotext multivector (Cx) and the at least one additional cryptotext multivector (Cn); and a destination convert multivector subsystem that converts the additive result multivector (AR) into an additive result data value (AR) in accord with the homomorphic preserving mathematical relationship such that the additive result data value (AR) is equal to a sum of the unencrypted first numeric message data value ( x) and the unencrypted at least one additional numeric message data value (Mn) such that the sum of the unencrypted first numeric message data value ( x) and the unencrypted at least one additional numeric message data value (Mn) is performed with corresponding mathematical operations as the process of summing of the first cryptotext multivector (Cx) and the at least one additional cryptotext multivector (Cn). [0013] An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) source computing device for encrypting a numeric message data value ( ) in order to transfer a cryptotext multivector (C) encrypted representation of the numeric message data value (M) to an intermediary computing system that will perform additive homomorphic summation of the cryptotext multivector (C) and at least one additional ciyptotext encrypted data representation of at least one additional numeric message and deliver a result of the homomorphic summation to a destination computing device, the additive homomorphic EDGE source computing device comprising: a source numeric message distribution subsystem that distributes the numeric message data value ( ) into coefficients of a message multivector (M) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the source computing device and the destination computing device; a source numeric shared secret distribution subsystem that distributes a shared secret numeric value ( s) into coefficients of a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to the source computing device and the destination computing device, the shared secret numeric value (Ss) being known or knowable to the source computing device and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including the intermediary computing system; a source encryption subsystem that encrypts the cryptotext multivector (C) as an encryption function of at least one Geometric Algebra geometric product operation on the message multivector (M) and the shared secret multivector (Ss); and a source send subsystem that sends the cryptotext multivector (C) to the intermediary computing system.
[0014] An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) intermediary computing system for performing additive homomorphic summation of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values received from at least one source computing device and delivering an additive result cryptotext multivector (ARC), the additive homomorphic EDGE intermediary computing system comprising: an intermediary receive subsystem that receives the at least two cryptotext multivectors (Cn) sent by the at least one source computing device; an intermediary homomorphic summation subsystem that sums using vector summation the at least two cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); and an intermeidary send subsystem that sends the additive result cryptotext multivector (ARC) to the destination computing device.
[0015] An embodiment of the present invention may further comprise an additive homomorphic Enhanced Data-Centric Encryption (EDGE) destination computing device for decrypting an additive result cryptotext multivector (ARC) received from an intermediary computing system that performed additive homomorphic summation of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values originated from at least one source computing device, the additive homomorphic EDGE destination computing device comprising: a destination receive subsystem that receives the additive result cryptotext multivector (ARC) sent by the intermediary computing system; a destination numeric shared secret distribution subsystem that distributes a shared secret numeric value (Ss) into a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to the at least one source computing device and the destination computing device, the shared secret numeric value (Ss) being known or knowable to the at least one source computing device and the destination computing device, but is kept secret from other devices not intended to have access to the numeric message data including the intermediary computing system; a destination decryption subsystem that decrypts the additive result cryptotext multivector (ARC) as a decryption function of at least one Geometric Algebra geometric product operation on the additive result cryptotext multivector (ARC) and an inverse (Ss 1) of the shared secret multivector (Ss) into an additive result multivector (AR) such that the decryption function provides a corresponding decryption operation for an encryption process of the at least two cryptotext multivectors (Cn); and a destination convert multivector subsystem that converts the additive result multivector (AR) into an additive result data value (AR) in accord with the homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing the unencrypted numeric data value that is known to the source computing device and the destination computing device such that the additive result data value (AR) is equal to a sum of the at least two corresponding plain text numeric data values corresponding to the at least two cryptotext multivectors (Cn) such that the sum of the at least two corresponding plain text data values is performed with corresponding mathematical operations as the additive homomorphic summation of the at least two cryptotext multivectors (Cn). Brief Description of the Drawings
[0016] In the drawings,
[0017] FIG. 1 is a block diagram of the hardware implementation for a core encryption embodiment (i.e., a core Enhanced Data-Centric Encryption— EDGE— embodiment).
[0018] FIG. 2 is a flow chart of the general operation for a core encryption
embodiment.
[0019] FIG. 3A is a flow chart of the source computing device symmetric key operation for a core encryption embodiment.
[0020] FIG. 3B is a flow chart of the destination computing device symmetric key operation for a core encryption embodiment.
[0021] FIG. 4A is a flow chart of the source computing device symmetric key and cryptotext masking operation for a core encryption embodiment.
[0022] FIG. 4B is a flow chart of the destination computing device symmetric key and cryptotext masking operation for an encryption embodiment.
[0023] FIG. 5 is a flow chart of a core encryption embodiment for the EDGE encryption/decryption by using a geometric product "sandwich."
[0024] FIG. 6 is a flow chart of a core encryption embodiment for the EDGE encryption/decryption by using Sylvester's equation.
[0025] FIG. 7 is a block diagram illustrating generating/extracting/obtaining a second shared secret key from the original shared secret multivector for a core encryption embodiment.
[0026] FIG. 8 is a block diagram of the hardware implementation for an additive homomorphic encryption embodiment.
[0027] FIG. 9 is a flow chart of the general operation for an additive homomorphic encryption embodiment.
Detailed Description of the Embodiments
[0028] Homomorphic Encryption is a form of encryption that allows computations to be carried out on cipher text as it is encrypted without decrypting the cipher text that generates an encrypted result which, when decrypted, matches the result of operations performed on the unencrypted plaintext.
[0029] The essential purpose of homomorphic encryption is to allow computation on encrypted data without decrypting the data in order to perform the computation. In this way, the encrypted data can remain confidential and secure while the encrypted data is processed for the desired computation. Accordingly, useful tasks may be accomplished on encrypted (i.e., confidential and secure) data residing in untrusted environments. In a world of distributed computation and heterogeneous networking, the ability to perform computations on encrypted data may be a highly desirable capability. Hence, finding a general method for computing on encrypted data is likely a highly desirable goal for cryptography.
[0030] The most sought after application of homomorphic encryption may be for cloud computing. Data that is stored in the Cloud is typically not encrypted, and the breach of the Cloud stored, unencrypted data is ranked by the Cloud Security Alliance as the number one threat to data security. Encrypting Cloud stored data may mitigate the threat of data being compromised by a breach, but then the remote clients (owners of the data) would not then be able to perform operations (i.e., add, multiply, etc.) on the Cloud stored data while the data remains in the Cloud. In order to perform operations on encrypted data stored in the Cloud, it would be necessary to download the encrypted Cloud stored data, decrypt the data, perform all desired operations on the data locally, encrypt the resulting data and send the resulting data back to the Cloud. Alternatively, if a user wants the Cloud services provider to perform the computations, the Cloud would require access to the user's encryption keys. It is becoming increasing undesirable to provide the Cloud access to a user's security keys as the more entities that have access to the security keys inherently increases the susceptibility of the security keys to being breached, or even stolen by an unscrupulous provider.
Homomorphic encryption would allow the Cloud to operate on client data without decryption, and without access to the client's security keys.
[0031] An embodiment may advantageously utilize Geometric Algebra to provide the encryption and decryption of numeric messages that are to be transmitted through, and possibly have operations performed by, an intermediary computing system (e.g., the broad- based computing system currently, and commonly, referred to as the Cloud, or cloud computing). An embodiment of the Geometric Algebra encryption/decryption system that performs the foundational "core" encryption/decryption functions of transferring data securely using Geometric Algebra based encryption/decryption from a source system to a destination system without having arithmetic or other comparative operations performed on the transmitted encrypted data by an intermediary system may be referred to as an Enhanced Data-Centric Encryption (EDGE) system. When an EDGE system is further enhanced to support and provide for arithmetic and/or other comparative operations to be performed at an intermediary computing system (e.g., the Cloud) without decrypting and re-encrypting the data at the intermediary computing system, that system may be referred to as an Enhanced Data-Centric Homomorphic Encryption (EDCHE) system.
[0032] Geometric Algebra is an area of mathematics that describes the geometric interaction of vectors and other objects in a context intended to mathematically represent physical interactions of objects in the physical world. The use of Geometric Algebra for cryptography represents a new, manmade use of Geometric Algebra for a purpose entirely outside of the natural basis of Geometric Algebra for representing physical interactions of objects in the real, physical, word. As used herein, this area of mathematics encompasses Geometric Algebra, Conformal Geometric Algebra and Clifford Algebra (referred to collectively herein as "Geometric Algebra")- Generally, Geometric Algebra defines the operations, such as geometric product, inverses and identities, which facilitate many features of embodiments of the core EDGE and the EDCHE systems disclosed herein. Further, Geometric Algebra allows for the organization and representation of data into the "payload" of a multivector where the data in the payload may represent, for example, plaintext, cryptotext, or identifying signatures. Consequently, Embodiments of both the core EDCE system and the EDCHE system make beneficial use of Geometric Algebra properties to provide encryption, decryption, and intermediary homomorphic operations in a relatively computationally simplistic manner while still providing robust security for both data in motion and data at rest (e.g., data stored in the Cloud).
[0033] For an embodiment of an EDCHE system, methods and systems to encrypt and decrypt messages using Geometric Algebra may utilize the intrinsic algebraic homomorphic properties of Geometric Algebra to permit arithmetic and other comparative operations on encrypted messages handled by an intermediary computing system without the need for the intermediary computing system to decrypt the encrypted messages prior to performing the arithmetic and other comparative operations. Accordingly, the intermediary computing system does not need to know any information regarding any of the secret security keys of the encryption/decryption processes to properly perform the arithmetic and other comparative operations. The encrypted results of the arithmetic and other comparative operations performed by the intermediary computing system, when decrypted at a destination computing device, produce results equivalent to the same operations as if the operations were performed on the unencrypted plain text messages. To properly achieve the homomorphic effect for intermediary arithmetic and other comparative operations, a proper data organization methodology that preserves such homomorphic properties (i.e., the mathematical relationship between the vectors utilized in the encryption process and the original plaintext messages being encrypted) should be enforced on the choice of coefficients for the vectors representing the plain text messages. As discussed in more detail below, ensuring that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization methodology (i.e., a homomorphic preserving mathematical relationship) between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value will provide the proper data organization to preserve the homomorphic properties of the Geometric Algebra operations of the core EDCE encryption/decryption processes. Due to the use of the proper data organization, an embodiment of an EDCHE system provides a cryptosystem that allows unlimited multiplications and additions of cipher text (i.e., transmitted/stored encrypted messages at the intermediary/cloud computer system) due solely to the intrinsic algebraic homomorphic properties of an embodiment of the EDCHE system. Thus, an embodiment of an EDCHE system may provide the homomorphic properties as a product of algebraic homomorphism without the need to use additional methods, such as "bootstrapping" (e.g., performing a recursive operation to reduce the noise associated with a cipher text) to achieve the homomorphic properties.
[0034] The encrypted data values may be stored on the intermediary computing system until such time that particular arithmetic or other comparative operations are desired by a user, then the intermediary computing system may perform the requested arithmetic or other comparative operations. Likewise, the encrypted data values may be immediately operated on by the intermediary computing system as soon as the subject encrypted data values are received by the intermediary computing system. However, as one skilled in the art will recognize, the process of receiving the encrypted data values at the intermediary computing system inherently includes storing the encrypted data values at the intermediary computing system even if only fleetingly in an immediately used and erased Random Access Memory (RAM) location or operational register location of a computational subsystem of the intermediary computing system.
[0035] Embodiments of both EDCE and EDCHE may be comprised of functional blocks, each of which may be tailored as described in more detail below according to objectives for scope, capability and security. The following sections provide a mathematical and numerical description of these functional blocks. [0036] In order to help minimize the potential confusion of the complex subject matter herein, the descriptions below have been split up to separately cover foundational "core" EDGE concepts and the additional enhancements concepts that permit homomorphic operations for EDCHE. In view of that, Section 1 provides a general description of embodiments of the foundational "core" EDGE system. Section 2 provides additional descriptions of embodiments of the foundational "core" EDCE system, including the packing of information into multivectors, the encryption and decryption of such multivectors and the unpacking to recover the original information. Section 3 provides a description of the further enhancements to embodiments of the foundational "core" EDCE system that achieve homomorphic properties for embodiments of an EDCHE system. Generally, in this description, as is the typical convention, for particular examples of operations, Alice and Bob are used for the sending/source and receiving/destination entities, respectively. Thus, the arrangement of the disclosure may be summarized as follows:
Section 1 : General Core EDCE Message Encryption/Decryption
A. Hardware Implementation for Core EDCE Embodiments (Fig. 1 )
B. General Core EDCE Operational Flow Charts (Figs. 2-4) Section 2: Additional Descriptions of Core EDCE Message
Encryption/Decryption
A. Packing and unpacking multivectors
1 ) Text to number
2) Number to text
3) Multivector Data Structure
4) Number to multivector
5) Multivector to number
B. Shared Secret
C. Cryptotext creation
D. Decryption
E. EDCE Flow Chart (Figs. 5-6)
F. Symmetric Key Pair Encryption/Decryption from 0-Blade Reduction Operation (Fig. 7)
* 0-Blade Reduction Operation
* Geometric Algebra Encryption Primitives * Numerical Examples for encryption and decryption with double shared secret in 3 dimensions
G. An Unbreakable Primitive Using Geometric Algebra and Arithmetic
Functions
*Example with secret sharing and 3D multivectors
Section 3: Homomorphic EDCHE Enhancements to EDGE Operation
A. Homomorphic Data Organization (i.e., Coefficient Distribution/'Tacking")
B. Number to multivector that supports Homomorphism
* First example
* Second example
* Third example
C. Multivector to number that supports Homomorphism
* First example
* Second example
* Third example
D. Additive Homomorphism in EDCHE
* General Additive EDCHE example
* Real numbers (i.e., floating point) EDCHE example
E. Hardware Implementation for Additive Homomorphic EDCHE
Embodiments (Fig. 8)
F. Additive Homomorphic EDCHE Operational Flow Charts (Fig. 9)
Section 1: General Core EDGE Message Encryption/Decryption
[0037] With the arrival of the internet and many forms of mobile devices, the volume of encrypted data is growing exponentially. Portable devices like "thumb drives," "smart cards" and Solid State Disks (SSDs) contain both plain text and or encrypted "passive" data storage. Passive data storage is found on the tiny devices for the Internet of Things (IoT) as well as the large memories in server farms.
[0038] When data leaves storage, when it is in motion, it is even more vulnerable to attack. Current encryption techniques have not evolved alongside network security infrastructure and they are not well suited for the sheer volume of data in motion. As we move towards "cloud computing," as mobile devices move us towards "perimeter-less" network security, the industry is moving away from trusting just the security of networks, servers or applications and focusing toward data-centric encryption. With data-centric encryption and authentication there are controls that are traveling with the data rather than just happening at the application layer or the final destination in a network.
[0039] However, the fluidity of this data in motion stalls with the computationally intensive mathematics that remain at the heart of current encryption infrastructures. Ciphers such as RSA (Rivest-Shamir-Adleman), DES (Data Encryption Standard) and/or AES (Advanced Encryption Standard) are little more than static "machinery" that bogs down communication efficiency. The actual problem is much bigger. How can robust security be provided when: a) End-point computational resources are limited (e.g., the Internet of Things— IoT). b) Encryption/decryption must be near-real time
c) Authentication of the source and destination must be continuously reasserted
[0040] A "core" embodiment may be described as enhanced data-centric encryption, or EDGE. Compared to incumbent encryption schemes, EDGE is computationally simplistic while providing robust security over the span of the communication channel. EDGE security is scalable from tiny embedded IoT (Internet of Things) devices up to server farms. EDGE functionality enables many cipher schemes that show speed and bandwidth advantages over current methods. One aspect of EDG that provides speed enhancement in the
encryption/decryption of data is that the EDGE encryption/decryption may be implemented using basic arithmetic operations of addition, subtraction, multiplication, and division.
Notably, EDGE does not require a complex operation to select a large prime number, to calculate a logarithm function, to calculate a natural logarithm function, and/or to calculate other complex and computationally intensive mathematical functions (i.e., prime numbers, logarithms, natural logarithms, and/or other complex mathematical operations are not required in the Geometric Algebra calculations disclosed herein).
[0041] A central feature of the various embodiments is the use of Geometric Algebra, an area of mathematics that has not been utilized before in encryption. Geometric Algebra as used herein is an area of mathematics that encompasses Geometric Algebra, Conformal Geometric Algebra and Clifford Algebra (collectively herein, "Geometric Algebra").
Geometric Algebra allows for the organization and representation of data into the "payload" of a multivector where the data may be plaintext, cryptotext, or signatures, for example. Geometric Algebra defines the operations, such as geometric product, inverses and identities, which are the enablers of encryption/decryption calculations of various embodiments.
[0042] Multivectors are simply the additive combination of a scalar, a vector, a bi- vector and so forth up to an n-dimension vector. However, the unit vectors follow the algebraic structure of quaternions (Hamilton) and non-commutative algebra (Grassman). These two types of algebra allowed Clifford to conceive of the Geometric Product which is used by the various embodiments as one of the "primitive" functions of the embodiments of EDGE and EDCHE systems.
[0043] An example of a two-dimension (2D) multivector A that includes a scalar and a vector is:
A = a0 + axex + a2e2 + a12e12 where e{ is a unit vector along the i-axis and e12 represents the orientation of the area created by a12. The operations of Geometric Algebra on multivectors are discussed more fully in "Appendix A: Geometric Algebra Overview" of the parent patent application Serial No. 15/667,325, entitled "Methods and Systems for Enhanced Data-Centric Encryption Systems Using Geometric Algebra," but some general observations may be helpful to the description of the various embodiments disclosed below. First, each of the ¾ values in the multivector A above may be "packed" with information and each ¾ value may range from zero to very large (e.g., >256,000 bits or an entire message). Secondly, the inverse of A when multiplied by A yields unity, or:
AA'1 = 1
Thus, if a second multivector B is created and the geometric product A B is transmitted then the destination can recover B through:
ΑΑ-χΒ = B
[0044] For the various embodiments, the "payload" may be packed in the values of the scalars and coefficients of the multivector elements. The packing method may define, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. As discussed in more detail below, the decryption methodology for EDGE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients. One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDGE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients. For an EDCHE system that may perform operations involving multiple encrypted data values, the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients. The destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption.
[0045] For embodiments that intend to retain homomorphic properties for encrypted data messages such as an embodiment of an EDCHE system, there is an additional restriction that the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message. In abstract algebra, the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces. An algebra homomorphism between two algebras is one that preserves the algebra structure. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" into multivector elements must remain a representation of the original number. One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value. The mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value. The location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
[0046] Additionally, separate multivectors may be encoded for many purposes, such as a shared secret (defined below), authentication information, and timestamps. In addition to the encryption and decryption of a message, the EDGE multivector format and Geometric Algebra foundation of a core EDGE embodiment may enable a single transmission to contain far more than just cryptotext, including dummy data to increase encryption security, command instructions for additional operations, and/or configuration data for the additional operations. Hardware Implementation for Core EDGE Embodiments (Fig. 1)
[0047] Fig. 1 is a block diagram 100 of the hardware implementation for an embodiment. A first computing device 102 is connected over an electronic network/bus connection 104 to a second computing device 106. In the embodiment shown in Fig. 1 , the first computing device 102 acts as the source device 102 that sends the encrypted message 108 over the network/bus connection 104. The second computing device 106 acts as the destination device 106 that receives the encrypted message 108 from the network/bus connection 104. Generally, communications, including encrypted communications, are bi- directional such that the first 102 and second 106 computing devices may change roles as the source device 102 and destination device 106 as is necessary to accommodate the transfer of data back and forth between the first 102 and second 106 computing devices.
[0048] Further, as shown in Fig. 1 , the first computing device 102 appears to be a laptop computer and the second computing device 106 appears to be a tablet device.
Generally, any computing device capable of communication over any form of electronic network or bus communication platform may be one, or both of the first 102 and second 106 computing devices. Further, the first 102 and second computing devices 106 may actually be the same physical computing device communicating over an internal bus connection 104 with itself, but still desiring encrypted communication to ensure that an attacker cannot monitor the internal communications bus 104 to obtain sensitive data communications in an unencrypted format.
[0049] Various embodiments may implement the network/bus communications channel 104 using any communications channel 104 capable of transferring electronic data between the first 102 and second 106 computing devices. For instance, the network/bus
communication connection 104 may be an Internet connection routed over one or more different communications channels during transmission from the first 102 to the second 106 computing devices. Likewise, the network/bus communication connection 104 may be an internal communications bus of a computing device, or even the internal bus of a processing or memory storage Integrated Circuit (IC) chip, such as a memory chip or a Central Processing Unit (CPU) chip. The network/bus communication channel 104 may utilize any medium capable of transmitting electronic data communications, including, but not limited to: wired communications, wireless electro-magnetic communications, fiber-optic cable communications, light/laser communications, sonic/sound communications, etc., and any combination thereof of the various communication channels.
[0050] The various embodiments may provide the control and management functions detailed herein via an application operatin on the first 102 and/or second 106 computing devices. The first 102 and/or second 106 computing devices may each be a computer or computer system, or any other electronic devices device capable of performing the communications and computations of an embodiment. The first 102 and second 104 computing devices may include, but are not limited to: a general purpose computer, a laptop/portable computer, a tablet device, a smart phone, an industrial control computer, a data storage system controller, a CPU, a Graphical Processing Unit (GPU), an Application Specific Integrated Circuit (ASI), and/or a Field Programmable Gate Array (FPGA). Notably, the first 102 and second 106 computing devices may be the storage controller of a data storage media (e.g., the controller for a hard disk drive) such that data delivered to/from the data storage media is always encrypted so as to limit the ability of an attacker to ever have access to unencrypted data. Embodiments may be provided as a computer program product which may include a computer-readable, or machine-readable, medium having stored thereon instructions which may be used to program/operate a computer (or other electronic devices) or computer system to perform a process or processes in accordance with the various embodiments. The computer-readable medium may include, but is not limited to, hard disk drives, floppy diskettes, optical disks, Compact Disc Read-Only Memories (CD-ROMs), Digital Versatile Disc ROMS (DVD-ROMs), Universal Serial Bus (USB) memory sticks, magneto-optical disks, ROMs, random access memories (RAMs), Erasable Programmable ROMs (EPROMs), Electrically Erasable Programmable ROMs (EEPROMs), magnetic optical cards, flash memory, or other types of media/machine-readable medium suitable for storing electronic instructions. The computer program instructions may reside and operate on a single computer/electronic device or various portions may be spread over multiple computers/devices that comprise a computer system. Moreover, embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection, including both wired/cabled and wireless connections). General Core EDGE Operational Flow Charts (Figs. 2-4)
[0051] Fig. 2 is a flow chart 200 of the general operation for an embodiment. At process 206 a shared secret numeric data value (Ss) is shared between the source 202 and destination 204. The various embodiments may share the shared secret numeric data value (Ss) between the source 202 and destination 204 via any means desired by the users. To ensure the shared secret numeric data value (Ss) is kept secret, it is likely that some type of handshaking/setup encrypted key transfer mechanism will be desired to share the shared secret numeric data value (Ss). For example, the shared secret numeric data value (Ss) may be shared between the source 202 and destination 204 by means including, but not limited to: pre-conditioning the source 202 computing device and the destination 204 computing device with the shared secret numeric value (Ss), a standard public/private key exchange technique, RSA (Rivest-Shamir-Adleman) key exchange, and/or Diffie-Hellman key exchange (disclosed in more detail herein, below). Further, the original shared secret may be an alphanumeric string in ASCII (American Standard Code for Information Exchange) or another encoding protocol that is converted to a numeric value based on the associated encoding protocol, such as: ASCII, other English language/alphabetic coding systems, foreign language encoding for non-alphabetic languages (e.g., katakana for Japanese), el¬ even pure symbol to numeric values such as for emoji's. However, both the source 202 and destination 204 need to know and use the same alphanumeric text conversion into a numeric value process to ensure that results of both the source 202 and the destination 204 are the same.
[0052] At process 208, the source 202 converts any alphanumeric text in the message into numeric message data (M) based on the alphanumeric encoding protocol (e.g., ASCII, other English language/alphabetic coding systems, foreign language encoding for non- alphabetic languages (e.g., katakana for Japanese), or even pure symbol to numeric values such as for emoji's) of the original text. Again, both the source 202 and destination 204 need to know and use the same alphanumeric text conversion into a numeric value process to ensure that results of both the source 202 and the destination 204 are the same. If the message data is already in numeric form, it is not necessary to perform process 208 as the original numeric message data (M) may be used as is. The various embodiments may perform the encryption process with numeric message data (M) that is, but are not limited to: positive numbers, negative numbers, zero, integer numbers, rational numbers (including fractions), and/or real numbers. At process 210, the source 202 distributes the numeric message data (M) into message multivector (M) coefficients. The encryption system will work with just one non-zero message multivector (M) coefficient, but, the more non-zero message multivector (M) coefficients there are, the stronger the encryption will become, so it is desirable to have more than one non-zero message multivector ( ) coefficient. At process 212, the source 202 distributes shared secret numeric value (Ss) into shared secret multivector (Sc) coefficients. Again, the encryption system will work with just one non-zero shared secret multivector (Ss) coefficient, but, the more non-zero shared secret multivector (Ss) coefficients there are, the stronger the encryption will become, so, again, it is desirable to have more than one non-zero shared secret multivector (Ss) coefficient. One skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector (see herein, below for disclosure of some example
packing/distribution methods). The primary requirement for the distribution process from the numeric values of the message (M) and the shared secret (Ss) to the multivector coefficient values ( and Ss) is that the source 202 and the destination 204 both know the processes 210/222 and 212/224 such that the destination 204 can reconstruct the original message ( ). As long as it is known to both the source 202 and the destination 204, the distribution of numeric data to multivector coefficients may be performed differently between the message (M) and the shared secret (5s). Further, the various embodiments may perform the encryption process with multivector coefficient values for both the message (M) and shared secret (5S) that are, but are not limited to: positive numbers, negative numbers, zero, integer numbers, rational numbers (including fractions), and/or real numbers.
[0053] The distributing/packing method defines, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. As discussed in more detail below, the decryption methodology for EDGE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients. One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDCE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients. For an EDCHE system that may perform operations involving multiple encrypted data values, the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients. The destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption. Therefore, it may be desirable for the distribution/packing method to also ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients).
[0054] For embodiments that intend to retain homomorphic properties for encrypted data messages such as an embodiment of an EDCHE system, there is an additional restriction that the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message. In abstract algebra, the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces. An algebra homomorphism between two algebras is one that preserves the algebra structure. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" into multivector elements must remain a representation of the original number. One such relationship or packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value. The mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value. The. location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
[0055] The restriction to retain homomorphic properties is only applicable to the distribution (i.e., "packing") of the message multivector (M) coefficients and not to the distribution (i.e., "packing") of the shared secret multivector (S5). Consequently, the distribution (i.e., "packing") of the shared secret multivector (Ss) may be performed in any fashion so long as the distribution (i.e., "packing") method of the shared secret multivector (Ss) is known and used consistently by the source 202 and destination 204 computing devices as, ultimately, the shared secret multivector (Ss) used by the source 202 and destination 204 should be equal to each other to ensure that the decryption operations 226 work properly in relation to the encryption 214 operations. The number of potential coefficients is directly related to the size/dimension (N) of the multivectors such that the number of coefficients increases by a factor of 2 (i.e., 2N) for each incremental increase in the size/dimension (N) of the multivector. To increase the confusion and/or diffusion of the encryption process disclosed herein, using multivectors of at least two dimensions will provide at least four coefficients to distribute the numeric data of the message (M) and the shared secret (Ss). By increasing the number of dimensions (N) of multivectors beyond two-dimension
multivectors, the confusion and/or diffusion security characteristics will also be increased due to the additionally available multivector coefficients. Further, with the additionally available coefficients it is also possible to transfer more data in a single multivector message (M) payload using the additionally available multivector coefficients.
[0056] At process 214, the source 202 encrypts a cryptotext multivector (C) as a function of at least one Geometric Algebra geometric product operation on the message multivector (M) and the shared secret multivector (Ss). At process 216, the source 202 converts the cryptotext multivector (C) into cryptotext numeric data (C) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to both the source 202 and the destination 204. While not typical of most encryption systems, an embodiment may also omit process 216 and directly send a representation of the cryptotext multivector (C) without first converting the cryptotext multivector (C) into cryptotext numeric data (C). The transmission may be implemented as a series of transfers of the coefficients or as some form of records/packets that define a data structure that carries the coefficient data of the cryptotext multivector (C). Typically, the various embodiments will include process 216 to convert the cryptotext multivector (C) into cryptotext numeric data (C) in order to maintain compatibility with legacy and/or third party systems as well as to obtain the additional confusion and diffusion characteristics of encapsulating the cryptotext multivector (C) coefficients into a single cryptotext numeric data (C) value. If process 216 is used to convert the cryptotext multivector (C) into cryptotext numeric data (C), it is necessary for any computing device/system that wishes to operate on the cryptotext multivector (C) to have knowledge of the particular conversion methodology so that computing device/system may properly recreate the cryptotext multivector (C).
[0057] Due to the nature of the geometric product operation of Geometric Algebra, there are many possible variations of the geometric product application that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to encrypt the message data (M) include: a geometric product (C = MSS) of the message multivector ( ) and the shared secret multivector (Ss); geometric product "sandwich" (C— SSMSS); and multivector based Sylvester's equation (C— SSM + MSS). At process 218, the source 202 sends the cryptotext numeric data (C) to the destination 204.
[0058] At process 220, the destination 204 receives the cryptotext numeric data (C) sent by the source 202. At process 222, the destination distributes the cryptotext numeric data (C) into the cryptotext multivector (C) using the cryptotext data coefficient distribution algorithm that is known to both the source 202 and the destination 204. For the less typical embodiment, if process 216 to convert the cryptotext multivector (C) into cryptotext numeric data (C) is omitted, then process 222 is also omitted as the cryptotext multivector (C) was transmitted directly so there is not a need to convert the cryptotext numeric data (C) back into the cryptotext multivector (C). At process 224, the destination 204 distributes shared secret numeric value (¾) into shared secret multivector (Ss) coefficients in the same fashion as was done for the source 202 at process 212. At process 226, the destination decrypts the cryptotext multivector (C) as a function of at least one Geometric Algebra geometric product operation on the cryptotext multivector (C) and an inverse (Ss 1) of the shared secret multivector (Ss) back into the message multivector (M). Again, due to the nature of the geometric product operation of Geometric Algebra there are many possible variations of the geometric product application that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to decrypt the message data
(M) include: a geometric product (M = CSS 1) of the cryptotext multivector (C) and the inverse (Ss 1) of the shared secret multivector (Ss); geometric product "sandwich" (M = Ss 1 CSS 1 to decrypt); and multivector based Sylvester's equation (M = (ss + Ss +
Ss 1SsSs + Ss (Ss 1CSS + ) to decrypt). At process 228, the destination 204 converts the message multivector ( ) into the message numeric data (M) in accord with reverse operation of the message data coefficient distribution algorithm of the source 202 at process 210. At process 230, if necessary, the destination 202 converts the numeric message data (M) back into the original alphanumeric text message as a reverse function of the process of the source 202 at step 208 that converted that alphanumeric text to the numeric message data (M) using standard computer character encoding characteristics.
[0059] Fig. 3 A is a flow chart 300 of the source computing device symmetric key operation for an embodiment. The encryption process 214 of the source 202 of Fig. 2 may further include processes 302-306 to use symmetric shared secret security keys to further enhance the security of an embodiment. For instance, at process 302, the source computing device may generate/extract/obtain a second shared secret key (SS2) from the original shared secret multivector (Ss) by performing a 0-Blade Reduction Operation on the original shared secret multivector (Ss) to obtain a scalar numerical value for the second shared secret key (S52). The 0-Blade Reduction Operation may be found as a geometric product (SS2 = (SSSS) (SSSS) ) of the geometric product (SSSS) of the original shared secret multivector (Ss) and a Clifford conjugate (¾) of the original shared secret multivector (Ss) and the geometric reverse ((5SSS)) of the geometric product (SSSS) of the shared secret multivector (Ss) and the Clifford conjugate (Ss) of the original shared secret multivector (Ss). A further discussion of the 0-Blade Reduction Operation to calculate the second shared secret key (SSl) may be found herein, below.
[0060] At process 304, the source computing device distributes the second shared secret key numeric value (5¾) into second shared secret multivector (¾2) coefficients where also not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients). Once again, one skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector (see herein, below, for disclosure of one such distribution method). The primary requirement for the distribution process from the numeric values of the second shared secret key (Sj2) to the second shared secret multivector coefficient values (SS2) is that the source computing device (of Fig. 3A) and the destination computing device (of Fig. 3B) both know the process 304/314 such that the destination computing device can reconstruct the original message (M) by being able to independently recreate the second shared secret multivector (Ss ) from the second shared secret key numerical value (SS2). As long as it is known to both the source computing device and the destination computing device, the distribution of numeric data to multivector coefficients may be performed differently between the message (M ), the original shared secret (Ss), and the second shared secret key (SS2).
[0061] At process 306, the source computing device encrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the message multivector (M), the shared secret multivector (Ss), and the second shared secret multivector (Ss2). Again, due to the nature of the geometric product operation of Geometric Algebra there are many possible variations of the geometric product operations that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to encrypt the message data (M) include: geometric product "sandwich" (C = SsMSs2 to encrypt); and multivector based Sylvester's equation (C = SSM + ¾2 to encrypt).
[0062] Fig. 3B is a flow chart 310 of the destination computing device symmetric key operation for an embodiment. The decryption process 226 of the destination 204 of Fig. 2, in conjunction with the operation of the source computing device as described in the disclosure above with respect to Fig. 3 A, may include processes 31 2-316 to use symmetric shared secret security keys to further enhance the security of an embodiment. At process 312, the destination computing device may independently generate/extract/obtain the second shared secret key (SSz) from the original shared secret multivector (Ss) by performing the 0-Blade Reduction Operation on the original shared secret multivector (Ss) to obtain a scalar numerical value for the second shared secret key (S5z). Again, the 0-Blade Reduction
Operation may be found as a geometric product (SS2 = (¾¾) (.¾¾)) of the geometric product (SSSS) of the original shared secret multivector (Ss) and a Clifford conjugate (Ss) of the original shared secret multivector (Ss) and the geometric reverse ((¾5 )) of the geometric product (SSSS) of the shared secret multivector (Ss) and the Clifford conjugate (¾) of the orginal shared secret multivector (Ss). See also the further discussion of the 0- Blade Reduction Operation to calculate the second shared secret key (¾), which may be found herein, below. [0063] At process 314, the destination computing device also distributes the second shared secret key numeric value (5Sz) into the second shared secret multivector (Ss) coefficients. Yet again, one skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector (see herein, below, for disclosure of one such distribution method). Again, the primary requirement for the distribution process from the numeric values of the second shared secret key Ss ) to the second shared secret multivector coefficient values (Ss ) is that the source computing device (of Fig. 3A) and the destination computing device (of Fig. 3B) both know the process 304/314 such that the destination computing device can reconstruct the original message (M) by being able to independently recreate the second shared secret multivector (SS2) from the second shared secret key numerical value (SS2). As long as it is known to both the source computing device and the destination computing device, the distribution of numeric data to multivector coefficients may be performed differently between the message (M), the original shared secret (Ss), and the second shared secret key (SS2).
[0064] At process 316, the destination computing device decrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the cryptotext multivector (C), an inverse (Ss 1) of the original shared secret multivector (Ss), and an inverse ( S., 1) of the second shared secret multivector (SS2) back into the message multivector (M). Once again, due to the nature of the geometric product operation of Geometric Algebra there are many possible variations of the geometric product operations that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to decrypt the message data (M) include: geometric product "sandwich" (M = Ss 1 CSS 1 to decrypt); and multivector based Sylvester' s equation (M = (sSz + S∑2 + Ss 1 ·%,·¾., 4- .%) (¾ 1 C55, + C) to decrypt), the selection of which is based on the geometric product calculation used to encrypt the message data ( ).
[0065] Fig. 4 A is a flow chart 400 of the source computing device symmetric key and cryptotext masking operation for an embodiment. Similar to the disclosure with respect to Fig. 3 A above, the encryption process 214 of the source 202 of Fig. 2 may further include processes 402-406 to use symmetric shared secret security keys to further enhance the security of an embodiment. At process 402, the source computing device may
generate/extract/obtain a second shared secret key (SS2 ) from the original shared secret multivector (Ss) by performing a 0-Blade Reduction Operation on the original shared secret multivector (¾) to obtain a scalar numerical value for the second shared secret key (Ss ). The 0-Blade Reduction Operation may be found as a geometric product (Ss =
(SSSS) (SSSS) ) of the geometric product (SSSS) of the original shared secret multivector (Ss) and a Clifford conjugate (¾) of the original shared secret multivector (Ss) and the geometric reverse (0¾¾)+) of the geometric product (SSSS) of the shared secret multivector (Ss) and the Clifford conjugate (Ss) of the original shared secret multivector (¾). A further discussion of the 0-Blade Reduction Operation to calculate the second shared secret key (SS2) may be found herein, below.
[0066] At process 404, the source computing device distributes the second shared secret key numeric value (Ss ) into second shared secret multivector (Ss ) coefficients where also not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients). Once again, one skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector (see herein, below, for disclosure some such distribution methods). The primary requirement for the distribution process from the numeric values of the second shared secret key (Sy ) to the second shared secret multivector coefficient values (¾2) is that the source computing device (of Fig. 4A) and the destination computing device (of Fig. 4B) both know the process 404/416 such that the destination computing device can reconstruct the original message (M) by being able to independently recreate the second shared secret multivector (Ss ) from the second shared secret key numerical value (Ss ). As long as it is known to both the source computing device and the destination computing device, the distribution of numeric data to multivector coefficients may be performed differently between the message (M), the original shared secret (Ss), and the second shared secret key (SS2 ).
[0067] At process 406, the source computing device encrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the message multivector ( ), the shared secret multivector (Ss), and the second shared secret multivector (Ss ). Again, due to the nature of the geometric product operation of Geometric Algebra there are many possible variations of the geometric product operations that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to encrypt the message data (M) include: geometric product "sandwich" (C— SsMSs2 to encrypt); and multivector based Sylvester's equation (C = SSM + MS$2 to encrypt).
[0068] At process 408, in the process of the source computing device for converting the cryptotext multivector (C) into cryptotext numeric data (C) (see, for example, the disclosure above with respect to process 216 of Fig. 2), the cryptotext multivector (C) is first converted into a pre-cipher cryptotext (C) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to both the source computing device (Fig. 4A) and the destination computing device (Fig. 4B). The pre-cipher cryptotext (C) is then masked as an exclusive or (C = C XOR Ss) of the pre-cipher cryptotext (C) and the original shared secret numeric value (Ss) to obtain/create the cryptotext numeric data (C) to send to the destination computing device.
[0069] Fig. 4B is a flow chart 410 of the destination computing device symmetric key and cryptotext masking operation for an embodiment. At process 412, in the process of the destination computing device for distributing the cryptotext numeric data (C) into the coeffecients for the cryptotext multivector (C) (see, for example, the disclosure above with respect to process 222 of Fig. 2), is first unmasked through an exclusive or (C = C XOR Ss) of the sent cryptotext numeric data (C) and the original shared secret numeric value (Ss) in order to obtain/create the pre-cipher cryptotext numeric data (C) on the destination computing device. The destination computing device then distributes the pre-cipher cryptotext numeric data (C) into the cryptotext multivector (C) using the cryptotext data coefficient distribution algorithm that is known to both the source and destination computing devices.
[0070] The remaining decryption process 226 of the destination 204 of Fig. 2, in conjunction with the operation of the source computing device as described in the disclosure above with respect to Fig. 4A, may include processes 414-418 to use symmetric shared secret security keys to further enhance the security of an embodiment. At process 414, the destination computing device may independently generate/extract/obtain the second shared secret key (Ss?) from the original shared secret multivector (Ss) by performing the 0-Blade Reduction Operation on the original shared secret multivector (Ss) to obtain a scalar numerical value for the second shared secret key (¾). Again, the 0-Blade Reduction
Operation may be found as a geometric product (S∑2 = (SsS5) ( s s-)) of the geometric product (SSSS) of the original shared secret multivector (Ss) and a Clifford conjugate Ss) of the original shared secret multivector (Ss) and the geometric reverse ((¾¾) ) °f me geometric product (SSSS) of the shared secret multivector (Ss) and the Clifford conjugate (¾) of the orginal shared secret multivector (Ss). See also the further discussion of the 0- Blade Reduction Operation to calculate the second shared secret key (Ss ), which may be found herein, below.
[0071] At process 41 6, the destination computing device also distributes the second shared secret key numeric value (Ss ) into the second shared secret multivector (Ss) coefficients. Yet again, one skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector (see herein, below, for disclosure of one such distribution method). Again, the primary requirement for the distribution/packing process from the numeric values of the second shared secret key (Ss ) to the second shared secret multivector coefficient values (Ss ) is that the source computing device (of Fig. 4A) and the destination computing device (of Fig. 4B) both know the process 404/416 such that the destination computing device can reconstruct the original message (M) by being able to independently recreate the second shared secret multivector (Ss ) from the second shared secret key numerical value (SS2). As long as it is known to both the source computing device and the destination computing device, the distribution of numeric data to multivector coefficients may be performed differently between the message (M), the original shared secret (Ss), and the second shared secret key (¾).
[0072] At process 416, the destination computing device decrypts the cryptotext multivector (C) as a function of Geometric Algebra geometric product operations on the cryptotext multivector (C), an inverse (Ss 1) of the original shared secret multivector (Ss), and an inverse (SSl 1) of the second shared secret multivector (¾2) back into the message multivector (M). Once again, due to the nature of the geometric product operation of Geometric Algebra there are many possible variations of the geometric product operations that will provide simi lar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to decrypt the message data (M) include: geometric product "sandwich" (M = Ss 1CS∑2 1 to decrypt); and multivector based Sylvester' s equation (M - [ Sz + Ss? + Ss 1¾¾2 + Ss^j (Ss 12 + C) to decrypt), the selection of which is based on the geometric product calculation used to encrypt the message data (M).
[0073] Additionally, while the flow charts and flow chart details described above with respect to Figs. 2-4 describe a methodology that may be embodied as a method or process, another embodiment may be recognized as a computer system, and/or as a source computer system and a destination computer system, that encrypts data, transfers the data, and decrypts the data by implementing the processes described above with respect to the flow chart and flow chart details of Figs. 2-4. Further, in describing the computer system, and/or the source computer system and the destination computer system, that encrypts data, transfers the data, and decrypts the data, one, or more, individual processes described above for the
methodology may be broken down and represented as a subsystem of the overall encryption computer system. A subsystem of the computer system, and/or the source computer system and the destination computer system, that encrypts data, transfers the data, and decrypts the data may be assigned, in whole or in part, to a particular hardware implemented system, such as a dedicated Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA). One or more subsystems, in whole or in part, may alternatively be implemented as software or firmware instructions defining the operation of a computer system with specific regard to the one or more subsystems implemented as software or firmware instructions. The software or firmware instructions may cause the Central Processing Unit, memory, and/or other systems of a computer system to operate in particular accordance with the particular one or more subsystems designated features.
Section 2: Additional Descriptions of Core EDCE Message Encryption/Decryption
[0074] The disclosure below provides a simplified example of the operations and data relationships during the performance of a fundamental "core" EDCE embodiment. The amount of data, the type of data, and the particular data values shown and described in the example are not meant to represent any particular real system, but are provided only for the purpose of showing the operations and data relationships of an embodiment. Further, the embodiments described below are not meant to restrict operations to particular data types, encryption shared secret key exchange techniques, text to numeric and back conversion techniques, and/or number to multivector coefficient assignment techniques.
[0075] In addition to the utilization of the Geometric Algebra geometric product as a novel encryption primitive, the various embodiments may be comprised of functional blocks, each of which may be tailored as described according to objectives for scope, capability and security. The following sections provide a mathematical and numerical description of one or more example embodiments of these functional blocks. The numerical results in the examples are generally derived from Geometric Algebra executing in the C programming language. Packing and Unpacking Multivectors
Contents
1) Text to Number
2) Number to text
3) Multivector data structure
4) Number to multivector
5) Multivector to number
1) Text to number
[0076] For the example EDCE embodiment described herein, each text message needs to be converted to a number in order to become a valid operational unit for all EDCE computations. For the embodiments shown herein, the numbers are typically shown in base 10, but the various embodiments may choose other number bases as desired by the system designer. For instance, a hex (base 16) representation may provide particular advantages when dealing with ASCII numerical representations as standard ASCII has a representation based on the numbers 0- 127 (i.e., 27), which is one power of two (i.e., hex is 2s) less than the typical 8 bits represented by a hex number of xFF. According to the ASCII character- encoding scheme, symbols such as the letters a, b, c and so on, are represented in order formats (such as binary, decimal, octets, hexadecimal, etc.), which are described in the ASCII printable code chart, a table that presents the relationship between formats. So the letters "a," "b" and "c" in ASCII decimal code are 97, 98 and 99, respectively.
[0077] As an example, assume that the plaintext text message is "message." In ASCII decimal code, this is represented as follows: m e s s a g e
109 101 115 1 15 97 103 101
[0078] With this relationship between symbols and decimal numbers, the conversion from text to number in base 10, using the text "message", is executed as follows: [0079] The variable n represents the final number of the conversion from text to number. We start defining this variable to zero. So, n = 0.
[0080] Then we create an array with the ASCII decimal codes for each letter of the message: text = "message"
ASCII_array_from_"message" = [109, 101 , 1 15, 1 15, 97, 103, 101 ]
[0081] This array has a size of 7 elements, thus array size = 7
[0082] Then, for each value of the array of ASCII characters, in a loop, we will
(i) multiply n by 256 (we chose 256 because it is a power of two greater than the largest number in the ASCII printable code chart, so we are reserving a space of 8 bits, since 28 = 256)
(ii) sum with the equivalent ASCII decimal code, assigning the result to the same initial n variable, as follows:
For i=0; i < array _size; i++
n = n * 256 + ascii_array_from_message[i]
Note the details of each iteration below:
n = 0 For i = 3
array = [109, 101, 115, 115, 97, 103, 101] n = 7169395 * 256 + 115 array_size = 7 n = 1835365235
For i = 0 For i = 4
n = 0 * 256 + 109 n = 1835365235 * 256 + 97 n = 109 n = 469853500257
For i = l For i = 5
n = 109 * 256 + 101 n = 469853500257 * 256 + 103 n = 28005 n = 120282496065895
For i = 2 For i - 6
n = 28005 * 256 + 115 n = 120282496065895 * 256 + 101 n = 7169395 n = 30792318992869221
[0083] By performing the above calculation, the final value of n is:
30792318992869221
[0084] Thus, the plain text "message" as a number in base 10 is equal to
30792318992869221. Once we have a base 10 number it is possible to perform the calculations described herein for message encryption. If desired, entropy may be added at this step by performing transformations on the ASCII codes, such as addition or modulo operations, but those entropy adding operations may affect whether intermediary
homomorphic operations may properly be performed on the message data as those entropy adding operations may adversely affect the mathematical relationship to the original message values. No such entropy adding transformations are used in the examples that follow.
2) Number to text
[0085] After performing various calculations, a base 10 number is transmitted and received. From the above example of a message multivector, the coefficients are concatenated to form a number string. The "number to text" conversion process for this number string also uses the ASCII printable code chart, but the recovery routine is different from the "text to number" conversion. The procedure is described below:
[0086] We start with the variable s, which is an empty string that will become the final text recovered from the input number. (Note: the symbol " "" " is from the C-language and means empty string) s = ""
The input number is 30792318992869221. n = 30792318992869221
[0087] Now, we perform a loop until n is "emptied", since this number refers to an actual text message. This means the loop will stop when n is equal to zero. In each loop iteration, we will recover, from the last to the first, each ASCII decimal code correspondent to the text that we are retrieving. To do that, we will perform a bitwise AND operation using the value OxFF (which is 256-1 in hexadecimal fomnat or in base 16). We will convert the code to character symbols and concatenate with the current string, always putting the most recent recovered character in the front of the string. Lastly, we will update the value of n by performing a right shift of 8 bits.
[0088] Let' s say that the function "get_char" converts the ASCII decimal code to a character symbol.
[0089] The procedure is as follows: while n > 0
s = get_char(n AND OxFF) + s
[0090] Note the details of each iteration below: s = ""
n = 30792318992869221
while n > 0
s = get_char(n AND OxFF) + s Iteration 0: Iteration 4: ascii_code = n AND OxFF = 101 ascii_code = n AND OxFF = 115 s = get_char(ascii_code) + s s = get_char(ascii_code) + s s = "e" s = "ssage"
n = n » 8 n = n » 8
n = 120282496065895 n = 28005
Iteration 1: Iteration 5:
ascii_code = n AND OxFF = 103 ascii_code = n AND OxFF = 101 s = get_char(ascii_code) + s s = get_char(ascii_code) + s s = "ge" s = "essage"
n = n » 8 n = n » 8
n = 469853500257 n = 109
Iteration 2: Iteration 6:
ascii_code = n AND OxFF = 97 ascii_code = n AND OxFF = 109 s - get_char(ascii_code) + s s = get_char(ascii_code) + s s = "age" s = "message"
n = n » 8 n = n » 8
n = 1835365235 n = 0
Iteration 3:
ascii_code = n AND OxFF = 115
s = get_char(ascii_code) + s
s = "sage"
n = n » 8
n = 7169395
[0091] Thus, the number 30792318992869221 is converted to the text string "message," which agrees with the original plaintext. 3) Multivector Data Structure
[0092] For the example embodiment discussed herein, any number in base 10 may be a coefficient of a multivector element. A multivector may contain arbitrary data, or data that is a result of a series of operations. A base 10 number may also be represented in multivector form by distributing pieces of this number string to the coefficients in the multivector.
Multi vectors that are 2D have 4 elements/coefficients available to pack with pieces of this number string, a 3D multivector has 8 elements, and 4D has 16. EDCE has been
demonstrated up to at 7D. A 4D multivector with 16 elements is written as:
A = a0 + axex + a2e2 + a3e3 + a4e4 + a12e12 + 13e13 + a14e14 + a23e23 + a24e24
+ <¾4e34 + a123 e123 + G124e124 + α134¾4 + <¾34e234 + <¾234e1234
4) Number to multivector
[0093] Given the base 10 number string 30792318992869221 , this string may be a single coefficient of, say, a 2D multivector, as follows:
0 + 307923189928692216! + e2 + e12
[0094] EDCE has been demonstrated where the number string distributed to an element of the multivector exceeds 4,000 digits. However, the base 10 number in our example will typically be "distributed" in an ad hoc manner across all the multivector elements, such as:
30792 + 318996! + 28692e2 + 21ei2
[0095] The above distribution is called "number to multivector." For a core EDCE embodiment, the method of distributing the number string may be according to any of a variety of algorithms as long as the method is known and used by both the sending and receiving entities. To increase cryptographic "confusion," the distribution algorithm may include shuffling of the assignments to elements, performing functional operations on numbers assigned to elements or changing the algorithm between messages in a conversation. More operations increase encryption entropy. However, it should be noted that shuffling and other algorithms to increase cryptographic confusion may break the potential for
homomorphic operations by and EDCHE embodiment. [0096] In order to ensure that the Geometric Algebra operations properly impart encryption security and also provide decryption capability, there are also some other rules that should be followed when performing the "number to multivector" process. For instance, the distributing/packing method defines, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments. For example, the
Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. As discussed in more detail below, the decryption methodology for EDCE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients. One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDCE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients. For an EDCHE system that may perform operations involving multiple encrypted data values, the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients. The destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption.
[0097] The simple distribution method used in some of the core EDCE embodiment examples below is described as follows: Let the input base 10 number string =
30792318992869221. We count the number of digits and determine that the number si e is 17 digits. We then determine how to distribute these digits to the elements of a multivector. Considering a multivector of 2D, which has 4 elements, we apply the following equation:
Figure imgf000044_0001
[0098] Where ep is "each portion" length.
[0099] Now we have the original base 10 number and its size (17), the multivector structure (2D, 8 elements) and the length of each element (5). Now we need to "slice" the base 10 number in order to distribute each part as a coefficient of the new multivector.
[0100] Computationally, the procedure is as follows:
Base 10 number 30792318992869221
Number size 17
Number of multivector elements 4
Each portion length 5
First element 30792
Second element 31899
Third element 28692
Fourth element 21
[0101] This creates the following multivector:
30792 + 31899ea + 28692e2 + 21 12
Handling special cases:
[0102] Regardless of the method of distribution, the leading digit in any coefficient must be non-zero. For example, let the number to be converted to multivector
be 30792318990869221. Applying the distribution method shown above would result in: 30792 + 31899ex -I- 08692e2 + 21e
[0103] Note the third element = 08692e2. The computer will treat this number as 8692. When converting back from multivector to number, instead of
30,792,318,990,869,221 we would have 3,079,231,899,869,221, which is not the same number (commas added only for comparability).
[ 1 4 J To avoid this outcome, it is necessary to include verification in the algorithm that the first number of a coefficient is non-zero. If it is zero, this number should be placed as the last number in the coefficient of the previous element of the multivector. So, the correct result of the conversion of the number 30792318990869221 to a 2D multivector is:
30792 + 318990e! + 8692e2 + 21e12
Homomorphic "number to multivector" distribution method restrictions:
[0105] For embodiments that intend to retain homomorphic properties for encrypted data messages such as an embodiment of an EDCHE system, there is an additional restriction that the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message. In abstract algebra, the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces. An algebra homomorphism between two algebras is one that preserves the algebra structure. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" into multivector elements must remain a representation of the original number. One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value. The mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value. The location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
[0106] Additional and more detailed examples of homomorphism conserving "number to multivector" processes are described in more detail below in Section 3 that covers additive homomorphic EDCHE embodiments in more detail
5) Multivector to number
[0107] The simple distribution method used in some of the core EDCE embodiment examples below is described as follows:
[0108] For the simple distribution (i.e., "packing") method disclosed above for parsing the string representation of a base 10 number to obtain the coefficient values, converting a multivector to a base 10 number is simply the reverse process of concatenating the coefficients of the multivector in order to form a base 10 number.
[0109] As an example:
The multivector: 30792 + 31899β! + 28692e2 + 21e12 becomes: 30792318992869221 .
[0110] Note that in the core EDCE protocol of some of the example embodiments herein, only base 10 number strings are transmitted, not multivectors, but sending only base 10 number strings is not a requirement for an embodiment. In some embodiments, the number may be sent using a numeric variable representation such as an integer or floating point data type. Further, while not typical of most encryption systems, instead of sending a single cryptotext number (C), an embodiment may also simply skip the step of converting the multivector (C) into cryptotext numeric data (C), and directly send a representation of the cryptotext multivector ( ) without first converting the cryptotext multivector (C) into cryptotext numeric data (C). The transmission may be implemented as a series of transfers of the coefficients or as some form of records/packets that define a data stracture that carries the coefficient data of the cryptotext multivector (C). As would be the case for a more typical encryption system, if the process to convert the cryptotext multivector (C) into cryptotext numeric data (C) is used to convert the cryptotext multivector (C) into cryptotext numeric data (C), it is necessary for any computing device/system that wishes to operate on the cryptotext multivector (C) to have knowledge of the particular conversion methodology so that the computing device/system may properly recreate the cryptotext multivector (C). Shared Secret
[0111] A "Shared Secret" is a fundamental element in cryptography. A Shared Secret enables secure communication between two or more parties. For the various embodiments the Shared Secret is a number string of digits that may be packed into a multivector in the manner shown above. The "Shared Secret Multivector" may be used to operate on other muitivectors, such as creating the geometric product of the Shared Secret Multivector and the message multivector.
[0 12] A variety of methods are already in practice to establish the Shared Secret between sources and destinations. As disclosed herein, the conversion of a "Shared Secret" number to a "Shared Secret Multivector" is completely novel. Communication end-point devices may be "pre-conditioned" with a unique identifier (number string) known only to the system administrators. In a public/private key environment such as RSA, the Shared Secret may be encrypted by the source using only the destination's public key. The method used in the examples below is the Diffie-Hellman key exchange protocol. This is a convenient, widely adopted method to establish a number string Shared Secret. However, any method that securely produces a shared number string is suitable for use with the various embodiments.
[0113] The Diffie-Hellman protocol uses the multiplicative group of integers modulo p (see, for example,
https://en.wikipedia.org/wiki/Multiplicative_group__of_integers_modulo_n), where p is prime (see, for example, https://en.wikipedia.org/wiki/Prime_number), and g is a primitive root modulo p (see, for example, https://en.wikipedia.org/wiki/Primitive_root_modulo_n and https://en.wikipedia.org/wiki/Modular_arithmetic). These two values are chosen in this way to ensure that the resulting shared secret can take on any value from 1 to p- \ . A simple example of Diffie-Hellman follows:
• Alice and Bob first agree on using the same root modulo p and base g. • Alice chooses a secret integer a (Alice' s password) and creates her signature S° as
S = ^ "mod p
and sends it to Bob. (Note: the superscript 0 is a placeholder for later use, if any.)
Similarly, Bob chooses a secret integer b (Bob's password) and creates his signature S° as
S$ = gbmod p
and sends it to Alice.
• Alice and Bob are able to compute the shared secret key Ss as follows:
o Alice computes Ss = (Sg)amod p
o Bob computes Ss = (S ^mod p
• The keys computed by Alice and Bob are the same. This is the Shared Secret.
[0114] Note that Diffie-Hellman protocol is not limited to negotiating a key shared by only two participants. Any number of users can take part in the agreement by performing iterations of the protocol and exchanging intermediate data.
Numeric example
[0115] Assume the following:
Selected and shared prime number 821309937410771225846473211469
P
Selected and shared base number^ 773039877053085816220792898603 Alice's secret a 325952971969365237094889914154 Bob's secret b 289473367541568799631931700475
[0116] To compute S°, Alice's public signature and S , Bob's public signature:
Figure imgf000048_0001
SB = gb mod p 49009686585026240237091226039
286639204586849997936652161962
[01 17] To compute the shared secret, both Alice and Bob will perform the following equation, which will generate the same value for both, thus the shared secret is reference as
Ss:
Ss = Sg mod p Ss = S°b mod p
374101092446920532886590141005
[0118] The shared secret number string above may be distributed as before to create a Shared Secret Multivector:
374101.09 + 24469205ci + 32886590e2 + 141005e12
[01 19] In a similar manner the S® and Sg number string for Alice and Bob can be distributed in a multivector format to create Sjj and Sg . These multivectors for Alice and Bob are essential to the additional EDCE security features discussed in Section 2. Cryptotext creation
[0120] The cryptotext is created using the EDCE primitive which is the geometric product of the Message multivector and one or more other multivectors. In the most basic form, the cryptotext multivector may be the geometric product of the Message multivector and the Shared Secret Multivector.
[0121 ] The procedure is defined as follows. Let the plaintext message be "this is a test." By applying the "text to number" conversion, we will get the plaintext message as the number:
2361031 878030638688519054699098996 [0122] By applying the "number to multivector" conversion using a 2D multivector structure the plaintext multivector is:
M = 236103187 + 803063868ex + 851905469e2 + 9098996e
[0123] Using the Shared Secret multivector that was determined above:
Ss = 37410109 + 24469205^ + 32886590e2 + 141005e12 [0124] The cryptotext multivector can be defined as the geometric product:
C = MSS
[0125] Using methods for calculating the geometric product of M and Ss implemented in C programming code, the cryptotext multivector C described above is calculated as:
C = 56497963248932053 + 35999076139905242et + 3952509598383761 l e2
+ 5938268771181474e12
[0126] In order to be transmitted, as a payload, C now may be converted to a base 10 number, through the "multivector to number" conversion process described above.
C10 = 5649796324893205335999076139905242395250959838376115938268771181474
[0127] To increase the entropy of the Cryptotext Multivector, the Geometric Product of the Message Multivector may be taken with more than one other multivector or by using the same multivector twice to form a sandwich or by the addition of left and right multivector operations on the same Shared Secret Multivector. Two examples of these types are C = SSMSS and C = SSM + MSS. The use of these primitives and their inverse is shown in the flow charts in Figs. 3 and 4.
[0128] Note that there are several alternative methods to construct the Cryptotext Multivector. One alternative is to encrypt the plaintext message using a conventional symmetric cipher such as AES, converting the number string output of that cipher to multivector format and use this multivector in calculating the geometric product with Ss, which yields C. This alternative may be practiced during the transition to EDGE within the enterprise to preserve backward compatibility with legacy encryption systems. Decryption
[0129] Since Bob has the same shared secret of the source, he can open the cryptotext by performing a geometric product of the cryptotext multivector and the inverse of the shared secret multivector. When Bob receives C10, he will apply the appropriate number to multivector conversion to get:
C = 56497963248932053 + 359990761399052426, + 395250959838376 1 <?,
+ 5938268771181474e12
[0130] To recover the plaintext multivector M Bob determines the geometric product of the cryptotext multivector and the inverse of the Shared Secret multivector.
M = CSs ~ l
[0131] The method to determine Ss 1 given Ss is described in more detail in "Appendix A: Geometric Algebra Overview" of the parent patent application Serial No. 15/667,325, entitled "Methods and Systems for Enhanced Data-Centric Encryption Systems Using Geometric Algebra." It has been computed as:
= 0.000026073076962327080434360644193616198433147472820027689698131 + 0.000000825457638290213311181056473878297303908013995989312703222ei + (-0.000003022013576864948697543940186562731020525315836555058082087) + (-0.000001476164784851810000367564890720274369477622677012150966249) + (-0.000001979165546727098436715224982579657444314140144210619540629) + (-0.000004182897588855026711933985071316069976075801566911515708555) + (-0.000002840357355486048162850225401518433913770465475305727734285) + (-0.00000058399229726787265759688978081722470259339291 2954493277677)
Thus,
M = 236103187 + 803063868ex + 851905469e2 + 9098996e12 [0132] The multi vector M is converted to a base 10 number:
M10 = 2361031878030638688519054699098996
[0133] Finally, this number is converted to text using the "number to text" procedure described above, resulting in:
^plain text = "this IS 3 test" EDGE Flow chart (Figs. 5-6)
[0134] Fig. 5 is a flow chart 500 of an embodiment for the core Enhanced Data-Centric Encryption (EDGE) encryption/decryption performed by using a geometric product
"sandwich."
[0135] Setup (502): The sequence is initiated by establishing the signature and shared secret multivectors. Here the Diffie-Hellman procedure 508 is shown but other asymmetric key ciphers such as RSA may be used to generate a number string known only to the source 504 and the destination 506. Alternatively, end-point devices may be "pre-conditioned" with a secret (number string) known to the system administrator from which the session multivectors may be constructed. The Diffie-Hillman procedure 508 sets up/creates the shared secret keys 510 and then the setup 502 creates multivectors of the Diffie-Hillman keys 510 in the multivector setup 512.
[0136] Source (504): The Message Multivector 516 is constructed at the create message operation 514 by concatenating the message ASCII code string to a number string and then distributing that number to the coefficients of the message multivector at 514. The method of distributing to coefficients uses a prescribed algorithm known and used by both the source 504 and the destination 506.
[0137] The Message Multivector 516 is then encrypted 518 by computing the geometric product of the message and Shared Secret multivectors. Fig. 5 shows the Cryptotext Multivector 520 as the "sandwich" of geometric products C = SSMSS. The coefficients of the Cryptotext Multivector 520 are then concatenated into a base 10 number string, C (524), and transmitted through a user-defined dispatch function 526 over an electronic network/bus communication channel 528.
[0138] Destination (506): C (532) is received through a user-defined operation 530 and converted back to the Cryptotext Multivector 536 using the prescribed distribution method 534. The destination 506 computes the multivector inverse of the Shared Secret Multivector and uses this result in the decrypt equations 538 such as M = Ss 1 CSS 1 to recover the Message Multivector 540. The Message Multivector 540 is then converted to a number string and then to plaintext at 542.
[0139] FIG. 6 is a flow chart 600 of an embodiment for the EDCE
encryption/decryption by using Sylvester's equation.
[0140] Setup (602): The sequence is initiated by establishing the signature and shared secret multivectors. Here the Diffie-Hellman procedure 608 is shown but other asymmetric key ciphers such as RSA may be used to generate a number string known only to the source 604 and the destination 606. Alternatively, end-point devices may be "pre-conditioned" with a secret (number string) known to the system administrator from which the session multivectors may be constructed. The Diffie-Hillman procedure 608 sets up/creates the shared secret keys 610 and then the setup 602 creates multivectors 612 of the Diffie-Hillman keys in the multivector setup 612.
[0141] Source (604): The Message Multivector 616 is constructed at the create message operation 614 by concatenating the message ASCI I code string to a number string and then distributing that number to the coefficients of the message multivector at 614. The method of distributing to coefficients uses a prescribed algorithm known and used by both the source 604 and the destination 606.
[0142] The Message Multivector 616 is then encrypted 618 by computing the geometric product of the message and Shared Secret multivectors. Fig. 6 shows the Cryptotext Multivector as the sum of two geometric products C = SSM + MSS. The coefficients of the Cryptotext Multivector 620 are then concatenated into a base 10 number string, C (624), and transmitted through a user-defined dispatch function 626 over an electronic network/bus communication channel 628.
[0143] Destination (606): C (632) is received through a user-defined operation 630 and converted back to the Cryptotcxt Multivector 636 using the prescribed distribution method 634. The destination 606 computes the multivector inverse of the Shared Secret Multivector and uses this result in the decrypt equations 638 such as M = (^Ss + Ss + Ss 1SSSS +
·¾) C¾ 1CSS + C) to decrypt). Where the encryption uses the sum of two geometric products C = SSM + MSS the decryption applies multivector based "Sylvester's Equation" to recover the Message Multivector 640. The Message Multivector 640 is then converted to a number string and then to plaintext at 642. Symmetric Key Pair Encryption/Decryption from 0-Blade Reduction Operation (Fig. 7)
0-Blade Reduction Operation
[0144] In order to increase security to the Geometric Algebra encryption primitives, a pair o symmetric shared secret keys may be used instead of a single shared secret key. The following lists the processes that may be used to generate/extract/obtain the second shared secret multivector (Ss ) from the original shared secret numeric value key (Ss).
1. The original shared secret numeric value Ss), which may be obtained from a key exchange procedure, such as, but not limited to, the Diffie-Hellman key exchange process, may be used as the first shared secret numeric key of the pair of symmetric shared secret keys;
2. Using a multivector distribution operation, the original shared secret numeric key (Ss) may be loaded into a multivector representation, which may be denoted as (Ss). 3. A 0- Blade Reduction Operation on the original shared secret multivector (Ss) may be performed in order to extract/generate/obtain a scalar value that is the second shared secret numeric key (SSl);
4. The scalar that results from 0-Blade Reduction Operation, which has been defined as (Ss2), may be loaded into a multivector through another multivector coefficient distribution operation with the resulting multivector being the second shared secret multivector (¾2).
[0145] Fig. 7 is a block diagram 700 illustrating generating/extracting/obtaining a second shared secret multivector key (¾2) 712 from the original shared secret multivector (Ss) 704 for an embodiment. The original shared secret multivector (Ss) 704 may be used to encrypt and decrypt data as the first shared secret multivector key of a pair of symmetric shared secret multivector keys. For the Geometric Algebra encryption primitive 702, the original shared secret multivector (Ss) 704 is operated on by the 0-Blade Reduction Operation 706 (S∑2 = (SSSS) (SSSS) ). The 0-Blade Reduction Operation 706 results in the scalar value of the second shared secret numeric key (SS2) 708. A number to multivector coefficient distribution process 710 converts the second shared secret numeric key (Ss ) into a second shared secret multivector ( y2) 712. The second shared secret multivector (¾2) may then be used to encrypt and decrypt data as the second shared secret multivector key of a pair of symmetric shared secret multivector keys.
Geometric Algebra Encryption Primitives
Primitive 1 - "Sandwich" / Triple Product
Encryption
[0146] The first encryption primitive can be created through a sequence of geometric products using the pair of keys generated via the 0-Blade Reduction Operation (described herein, above) as follows:
C = SsMSs2 Decryption
[0147] The decryption process uses the previously defined inverse multivector as follows:
M = SS ~1CSS ~1
Primitive 2 - Multivector based Sylvester's Equation
Encryption
[0148] The well-known Sylvester' s equation is employed here to generate a second encryption primitive which also uses the pair of symmetric encryption keys generated via the 0-Blade Reduction Operation (described herein, above) as follows:
C = SSM + MSs2
Decryption
[0149] The decryption operation involves the closed-form solution of the Sylvester's equation for 3-dimensional multivector space as follows:
M = (Ss2 + -1- ½_1%¾ + (¾~¾2 + Q
[0150] Note that a solution for higher dimensions requires a different formula. Further note that if the original shared secret (Ss) is generated using an encrypted/secure key exchange, such as, but not limited to the Diffie-Hellman process discussed in more detail herein, there is no transmission of the original shared secret multivector (S ) and, consequently, no transmission of the second shared secret multivector (¾)· Still further note that since the second shared secret multivector (SS2) is a result of a one-way function, the use of the second shared secret multivector (SS2) in either of the Geometric Algebra encryption primitive operations above, further guarantees security. Numerical examples for encryption and decryption with doubled shared-secret in 3 dimensions
[0151] Let the message multivector M be:
M = 23 + 24ev + 19 e2 + 31e3 + 23e12 + 30e13 + 21e23 + 268e123 and the original secret multivector Ss be:
Ss = 29 + 22e1 + 31e2 + 28e3 + 23e12 -I- 17e13 + 20e23 + 215e123
[0152] From the original secret multivector Ss, create a scalar by applying a 0-Blade Reduction Operation as follows: scalar = (¾¾)(¾¾) scalar = 2281454761
[0153] Then create the second secret multivector Ss? by converting the scalar to a multivector, as follows:
5S, = 22 + 81e + 45e2 + 47e3 + 61e12 + 0e13 -i- 0e23 + 0e123
Geometric product "sandwich" or Geometric triple product
[0154] In order to encrypt the multivector M, compute the geometric product
"sandwich" as follows:
C = SsMSs2
C = -2797319 + (-5355930) 6! + (-3496422)<?2 + (-3343014)e3 + (-3868508) e1 2
+ (-1313899)e13 + 1690341 e23 + 1961527e123 and recover the message multivector M as follows: M = Ss ~lCSS2
M = 23 + 2Ae1 + 19e2 + 31e3 + 23e12 + 30e13 + 21e23 + 268e123
Multivector based Sylvester's Equation
[0155] Another way to encrypt the message multivector M is by applying the multivector based Sylvester's equation:
C = SSM + MSs2
C = -53068 + (-5585)6! + 14297e2 + (-27003)e3 + 29328e12 + (-25163)e13
+ 35753e23 + 22982e123 and recover the message multivector M as follows:
Figure imgf000058_0001
M = 23 + 24e1 + 19e2 + 31e3 -I- 23e12 -I- 30e13 + 21e23 + 268e123 . An Unbreakable Primitive Using Geometric Algebra and Arithmetic Functions Example with secret sharing and 3D multivectors
Set Up
[0156] A multivector may act as a Geometric Algebra object such that components of multi-dimensions and Clifford k-vectors are present. An example is:
M = a0 + + a2e2 + a3e3 + a12e12 + a23e23 + a31e31 + al23e123 which shows the components: 0 => scalar - known as 0-blade or 0-vector axex + a2e2 + 3e3 => 3D vector or 1 -blade or vector
ai2¾2 + a23¾3 + a3i¾i ^ 2-blade or bi-vector
ai223 3-blade or tri-vector
[0157] A typical, but not the only, arithmetic function used for secret sharing is the Diffie-Hcllman function, which is based on cyclic groups with element g; for example:
Ss = gabmod p where Ss is a shared secret which can be used by both the source and destination sides and where the operation g'll)mod p yields Ss. This is standard in the cyber security field.
Unbreakable Primitive
[0158] Given a message M, distribute the numerical content of M over a multivector M. For example, let M be represented as below:
M = m1, m2, m3 ·· mn such that rrij is a number that constitutes a placed integer value for a coefficient. Then:
M = m0 + + m2e2 + m3e3 + m4e12 + m6e23 + m7e123
[0159] Note that other multivector variations are also possible.
[0160] The shared secret Ss is changed to a multivector in the same or a similar manner, such as:
Ss = sii< si2' si3 '" sm Ss = s10 + Suet + s12e2 + s13e3 + s14e12 + s15e13 + s16e23 + s17e123
[0161] An operation known as "0-Blade Reduction" creates a new scalar from Ss as a second shared secret Ss , where: S¾ = (SSSS)(SSSS) = scalar
Then S¾ is converted to a multivector, for example: ss2 = ¾o + + s22e2 + s23e3 + s24e12 -I- ¾e13 + s26e23 -1- s27e123
[0162] Finally, the multi vector-based Sylvester's equation may be used to create a cipher. Thus, the cryptotext multivector C is:
C = SSM + MSS? because SS2 is a result of a one-way function and Ss is a shared secret, which, when operated on by the 0-Blade Reduction Operation (which may sometimes be referenced herein as the function Zb Q) becomes a new result embedding a new one-way function.
[0163] Up to this point the encryption may have susceptibility to a pair of known cryptotext attacks. However, as shown in part below, the final unbreakabihty has been achieved.
Encryption primitives with unbreakable cipher:
Primitive 1 - "Sandwich" / Triple Product
Encryption
[0164] The first encryption primitive may be created through a sequence of geometric products using the pair of keys generated via the 0-Blade Reduction Operation (described above) as follows:
C = SsMSs2
[0165] In order to add another layer of security to the cipher text C and guarantee unbreakabihty against standard cipher analysis, such as the known plain-text attack, it may be helpful to do the following: β The cipher text, originally in muitivector form, is converted to a number C
Figure imgf000061_0001
yielding a 'pre-cipher' which is denoted here as C" . • Then 'mask' this pre-cipher C by performing an XOR operation with the shared secret
C = C XOR Ss to obtain the final cipher/crypto text C, which is sent to a destination computing device. Decryption
[0166] The decryption process may comprise the following steps:
• Receive the cryptotext C at the destination computing device.
• Recover the pre-cipher cryptotext C from the cryptotext C using the shared secret Ss, as follows:
C = C XOR Ss
• Convert C into a muitivector yielding the cryptotext muitivector C: muitivector Jo mmber
C >
• Recover the message muitivector M making use of the inverse multivectors with respect to Ss and Ss
1
M = Ss ~1CSs2 Primitive 2 - Multivcctor-bascd Sylvester's Equation
Encryption
[0167] The multivector based Sylvester's equation may be employed here to generate a second encryption primitive which also uses the pair of symmetric shared secret keys generated via the 0- Blade Reduction Operation (described above), as follows:
C = SSM + MSs2
[0168] As was done above for the encryption primitive with "sandwich" / triple product, it may be beneficial to add another layer of security by using the same process as described above for XOR masking.
[0169] The cipher multivector C, which is a result of the multivector based Sylvester's equation above, is converted into a number, denoted by C and defined as a pre-cipher. This number is the information to be sent from the source computing device to the destination computing device.
Decryption
[0170] The decryption operation involves the closed-form solution of the multivector based Sylvester's equation for 3-dimensional multivector space and the XOR 'unmask' previously described for the "sandwich" / triple product above. The summarized processes are given below:
• Receive the cryptotext C as a number.
• Recover the pre-cipher cryptotext C from cryptotext C using the shared secret Ss:
C = C XOR Ss
• Distribute C into the coefficients of a cryptotext multivector C: multivector to number _
c > c • The message multivector is recovered using the following closed-form solution for the multivector based Sylvester' s equation:
M = (¾ + ½~ + + Ss) (Ss ' l ( + C)
[0171] Note that a solution for higher dimensions requires a different formula. Further note that if the original shared secret (Ss) is generated using an encrypted/secure key exchange, such as, but not limited to the Diffie-Hellman process discussed in more detail herein, there is no transmission of the original shared secret multivector (Ss) and, consequently, no transmission of the second shared secret multivector (Ss ). Still further note that since the second shared secret multivector (¾2) is a result of a one-way function, the use of the second shared secret multivector (5S,) in either of the Geometric Algebra encryption primitive operations above, further guarantees security. Ultimately, as best as can be ascertained, there is no feasible way or high computer power to find Ss, SSl or sequences of such, which can be also dynamically updated in a continuous fashion using other Geometric Algebra operations to further increase security.
Section 3: Homomorphic EDCHE Enhancements to EDGE Operation
[0172] EDCHE is an extension to the EDGE cryptosystem described in more detail in Sections 1 and 2 above. The extension to support homomorphic operations requires additional considerations, particularly in the organization of the data message multivector coefficients, but, for the most part, the extension to support homomorphic operations relies on the intrinsic algebraic homomorphism of the Geometric Algebra foundation that are part of the encryption/decryption functions of the core EDGE. For instance, the Geometric Algebra geometric product operations that perform the actual encryption and decryption operations remain the same for both EDGE and EDCHE embodiments. The handling of the security keys also remains the same for both EDGE and EDCHE embodiments, including the data organization for "number to multivector" operations and any restrictions thereon. Likewise, any operations to convert text to a number and/or operations to convert a number also remain the same for both EDGE and EDCHE embodiments. The choice of whether or not to convert a cryptotext multivector (C) into cryptotext numeric data (C) prior to transmitting the encrypted data to a destination system (or to an intermediary system along the path to the final destination) remains the same for both EDCE and EDCHE embodiments and the processes to convert between cryptotext multivector (C) and cryptotext numeric data (C) also remain the same between EDCE and EDCHE, except there may be some restrictions on the types of permissible operations allowed for EDCHE embodiments to ensure that an intermediary computing system operating on the encrypted data does not need knowledge of any security keys involved in the encryption/decryption process. Even the data organization for "number to multivector" and "multivector to number" operations share the core EDCE restrictions between EDCE and EDCHE embodiments, the EDCHE embodiments add further restrictions that the data organization preserves homomorphic properties (i.e., have a homomorphic preserving mathematical relationship between the vectors utilized in the encryption process and the original plaintext messages being encrypted). Accordingly, since an EDCHE embodiment simply adds restrictions to an EDCE system regarding data organization operations for the multivector representation of the data being encrypted as well as to conversions between a cryptotext multivector (C) and a cryptotext numeric data (C), EDCH embodiments being a subset of EDCE embodiments may operate as EDCE embodiments, but EDCE embodiments may not all necessarily operate as EDCHE embodiments.
[0173] Potential homomorphic encryption operations for an EDCHE embodiment may include multiple operations, such as, but not limited to: encrypted addition/subtraction, scalar addition/subtraction, encrypted multiplication, scalar multiplication, encrypted searching, and encrypted sorting. Each of the potential homomorphic encryption operations involves operations particular to the particular operation. For this reason, separate disclosures for each particular operation may be presented to so as to make the clear the specific details comprising the implementation of each particular operation. An additional document that briefly presents the combination of the potential homomorphic operations may also be separately presented that provides a brief summary of each operation and provides the additional details for performing combinations of the potential encryption operations. In view of potential disclosures, this particular disclosure is intended to address the specific details that comprise the particular details of additive homomorphic encryption operations. While the concept may be more typically described as "additive" homomorphic encryption, both addition and subtraction operations included under the umbrella of "additive" homomorphic encryption. To help avoid confusion to a small extent, the term "sum" is used herein to define the "additive" operation so as to make it more clear that the sum may include both addition and subtraction (i.e., negative number) operations.
[0174] The description of EDCHE below will typically use the term "source" for the entity (e.g., computing device/system) where numeric values that are operands of the additive homomorphic operation originate and "destination" for the entity (e.g., computing device/system) that receives the result of the additive homomorphic operation. The term "intermediary" will typically define the "intermediate" entity acting in between the source(s) and destination on the encrypted numeric value operands originated at the source entity(ies). Alternatively, the term "client" may be used to describe the owner of the operand and/or result data (i.e., the source and/or destination computing device/system), while the generic term "cloud" may be used for data that is at rest in an untrusted environment (i.e., the intermediary computing system/device). In some respects, the terms "client" and "cloud" may more closely reflect a real world application where the source and destination are the same entity, sending data to the intermediary "cloud" for storage, then requesting an operation (e.g., a sum of stored transaction dollar amounts stored in encrypted format on the cloud) from the cloud when needed by the client. Ultimately, the terms source, destination, and intermediary reflect the relative operations being performed by computing system/device, and do not necessarily define the computing system/device as whole. Thus, the source, destination, and intermediary operations/systems may reside as a particular application on one or more computing systems/devices. As the source, destination, and intermediary computing systems/devices may be general purpose computing systems capable of running multiple applications at the same time, it is inherently possible that the source, destination, and intermediary operations are encapsulated as separate applications/functions that may permit, one, two, or all of the separate applications/functions to run on a single computing device/system. Also, a single interconnected computer system of single owner/client may have untrusted environments that include data that i at rest (i.e., stored) in the owner/client's own end-point devices outside of the owner/client's digital secure perimeter.
[0175] To assist the reader in locating information, the arrangement of the remainder of the Section 2 disclosure below may be summarized as follows:
A. Homomorphic Data Organization (i.e., Coefficient Distribution/' acking")
B. Number to multi vector that supports Homomorphism
* First example * Second example
* Third example
C. Multivector to number that supports Homomorphism
* First example
* Second example
* Third example
D. Additive Homomorphism in EDCHE
* General Additive EDCHE example
* Real numbers (i.e., floating point) EDCHE example
E. Hardware Implementation for Additive Homomorphic EDCHE Embodiments (Fig. 1 )
F. Additive Homomorphic EDCHE Operational Flow Charts (Fig. 9)
Homomorphic Data Organization (i.e.. Coefficient Distribution/"Pacldng")
[0176] In abstract algebra, the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces. An algebra homomorphism between two algebras is one that preserves the algebra structure. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" (i.e., distributed) into multivector coefficient elements should necessarily maintain some mathematical representation of the original number. Consequently, the packing/distribution method may define, among many things, the Geometric Algebra operations permissible for an EDCFIE embodiment. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. As discussed in Sections 1 and 2 above, the decryption methodology for EDGE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients. One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDGE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients. For an EDCHE system that may perform operations involving multiple encrypted data values, the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients. The destination computing device may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption.
[0177] For an embodiment of an EDCHE system, the methods and systems that encrypt and decrypt messages using Geometric Algebra may utilize the intrinsic algebraic homomorphic properties of Geometric Algebra to permit arithmetic and other comparative operations on encrypted messages handled by an intermediary computing system without the need for the intermediary computing system to decrypt the encrypted messages prior to performing the arithmetic and other comparative operations. Accordingly, the intermediary computing system does not need to know any information regarding any of the secret security keys of the encryption/decryption processes to properly perform the arithmetic and other comparative operations. The encrypted results of the arithmetic and other comparative operations performed by the intermediary computing system, when decrypted at a destination computing device, produce results equivalent to the same operations as if the operations were performed on the unencrypted plain text messages. In order to properly achieve the homomorphic effect for intermediary arithmetic and other comparative operations, a proper data organization methodology (i.e., packing/distributing coefficients into a multivector) that preserves such homomorphic properties (i.e., the mathematical relationship between the vectors utilized in the encryption process and the original plaintext messages being encrypted) should be enforced on the choice of coefficients for the vectors representing the plain text messages. Homomorphism in the EDCHE is built upon the commutative nature of the Geometric Algebra operations of the encryption and decryption principles described above in Sections 1 and 2 for EDGE embodiments. Therefore, the distribution/packing data arrangement should also preserve a commutative mathematical relationship to the original numeric value being encrypted. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" into mul ti vector elements must remain a representation of the original number. One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value (i.e., the homomorphic preserving mathematical relationship). The mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient o the multivector coef ficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value. The location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway. Ensuring that the coefficients of the vector representation of the plaintext numeric message meet the above described definition of the homomorphic preserving mathematical relationship will provide the proper commutative data organization (i.e., packing/distributing) methodology that preserves the homomorphic properties of the Geometric Algebra operations of the core EDCE encryption/decryption processes. Due to the use of the proper commutative data organization, an embodiment of an EDCHE system provides a cryptosystem that allows unlimited multiplications and additions of cipher text (i.e., transmitted/stored encrypted messages at the intermediary/cloud computer system) due solely to the intrinsic algebraic homomorphic properties of an embodiment of the EDCHE system. Thus, an embodiment of an EDCHE system may provide the homomorphic properties as a product of algebraic homomorphism without the need to use additional methods, such as "bootstrapping" (e.g., performing a recursive operation to reduce the noise associated with a cipher text) to achieve the homomorphic properties. Number to multivector that supports Homomorphism
[0178] As described above, in order to preserve homomorphism, a "number to multivector" paradigm where the "packed" multivector that represents the original plaintext numeric message has a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message preserves the homomorphic characteristics of the Geometric Algebra operations of EDCE
encryption/decryption operations. In abstract algebra, the term homomorphism refers to a structure-preserving map between two algebraic staictures, such as groups, rings, or vector spaces. An algebra homomorphism between two algebras is one that preserves the algebra structure. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" into multivector elements must remain a representation of the original number. One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value. The mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value. The location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently applied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway. For example, in a homomorphic preserving mathematical relationship that includes both addition and subtraction operations might be, for a three dimensional multivector there are eight possible coefficients in the multivector representation (e.g., co, ci, c2, c?, cn, en, C23, and cm, numbered so as to correspond with the unit vector associated with each coefficient), if the coefficients for the ei and ei2 unit vectors (i.e., C2 and C12) are subtracted in the calculation of the homomorphic preserving mathematical relationship for a first numeric data message conversion to a multivector, all other numeric messages converted to a message vector should also ensure that the C2 and c/2 coefficients are subtracted in the conversion homomorphic preserving mathematical relationship process. Likewise, when converting a multivector into a numeric value, the homomorphic preserving mathematical relationship process should also retain the subtraction of the C2 and cn coefficients. Other than the location of additions and subtractions within the homomorphic preserving mathematical relationship of the coefficients, the actual values of the coefficients may be selected as desired by a user so long as the homomorphic preserving mathematical relationship equals the original numeric value being encrypted. The only other restriction for multivectors representing different numeric values within a homomorphic operation is that the multivectors all share the same dimensionality (i.e., all multivectors are 2D, all multivectors are 3D, all multivectors 4D, etc.). One skilled in the art will recognize that there are many, perhaps even an infinite, number of ways to select coefficient values that meet the stated criteria/restrictions and that each of those ways will create a satisfactory EDCHE embodiment so long as the stated criteria/restrictions are, in fact, met.
[0179] Some processes are common within each multivector coefficient selection process. For instance, the first step in representing a numeric message value in a multivector is to define the number of coefficients that are present in the multivector. The total number of coefficient elements of a multivector is directly related to the dimensionality of the multivector by the equation n = 2"' where n is the total number of coefficient elements and m is equal to the dimensionality of the multivector (e.g., for a 3D multivector n = 2' = 8). Thus, in order to represent the numeric message N in a 3D multivector, the total number of coefficient elements to be determined is eight.
[0180] The coefficient selections may encompass any number that may be represented in the data type chosen by a system designer to hold the coefficient values, including, but not limited to: positive numbers, negative numbers, zero, integer numbers, rational numbers (including fractions), and/or real numbers. As a base of understanding, the format of a multivector will always assume that the coefficients add together. For instance, the form for a 3D multivector representing the numeric value Ν would be: multivector N = co + ci ei + C2 e2 + cj e3 + c/2 ei2 + cis ei3 + cu ea3 + cm ei23 [0181] Subtractions would be represented as negative coefficients. This "form" of the mul ti vector coefficients adding together would remain consistent regardless of whether or not the corresponding coefficient is added or subtracted in the homomorphic preserving mathematical relationship between the original numeric value and the coefficients of the representative multivector.
[0182] Below are several examples of processes to automate or otherwise demonstrate methodology for the selection of coefficient values for a message multivectors that represents a numeric message value N. One skilled in the art will again recognize that many ways to select the coefficient values that meet the stated criteria restrictions and that embodiments are not limited to the example methodologies described herein.
First example:
[0183] In this first example, the EDCHE embodiment performs the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted. A first step might be to factorize the numeric message N and write the value N as a sum of other numbers (c,) that are to represent the numeric message value in a message multivector such that:
N = ct where n is the number of elements in the multivector as determined by n = 2"' where m is the dimension of the multivector. (e.g., n = 8 for a 3D multivector). One skilled in the art will recognize that at this point there are many ways to assign the coefficient values (a) that will satisfy the homomorphic preserving mathematical relationship equation to enable proper operat ion of an EDCHE embodiment. One such method might be to perform an integer division of N by the number of elements n. Given the numeric value N = 5487 and a 3D multivector where /; = 8, the result is 5487 integer division by 8, which is equal to 685. The remainder may be obtained by calculating N mod n (i.e., 5487 mod 8), which may be added to the last coefficient, resulting in a last coefficient value (i.e., C123) of 685 + 7, which equals 692. The sum may then be written as:
N = CO + Cl + C2 + Cj + Cl2 + C13 + C23 + CI 23
5487 = 685 + 685 + 685 + 685 + 685 + 685 + 685 + 692 and the resulting multivector representing the numeric value N would be: multivector N = co + ci ei + ci Qi + a e3 + cn e.\i + cn en + C2i &2i + cm em
multivector N = 685 + 685ei + 685e2 + 685e¾ + 685ei2 + 685en + 685e23 + 692ei23
[0184] The assignment of which coefficient value receives the addition of the N mod n operation may be random, or the assignment may be of a predetermined form designed to increase entropy to enhance the encryption security.
[0185] In the case where the numeric value is divisible by the number of coefficient elements n of the message multivector (i.e., N mod n = 0 such that all q are equal, which is not permitted for proper decryption operation), a number less than the value of one coefficient element (e.g., a ) may be subtracted from that coefficient element (e.g., again as) and added to another coefficient element (e.g., C2s)- For example, given N = 2944 for a 3D multivector where n = 8, 2944 may be integer divided by 8 to equal 386 with no remainder. An embodiment may then simply subtract one from c/j and add one to C23 to ensure that not all coefficient elements are equal such that the homomorphic preserving mathematical relationship may then be written as:
N = CO + Cl + C2 + C3 + C12 + C]3 + C23 + C123
2944 = 368 + 368 + 368 + 368 + 368 + 367 + 369 + 368 and the resulting multivector representing the numeric value N would be: multivector N = co + cj e\ + 02 e^ + e + cn en + cn ei + cn e23 + m ei 2 multivector N = 368 + 368e, + 368e2 + 368e3 + 368ei2 + 367ei 3 + 369e23 + 368ei23 Second example:
[0186] As with the first example, the EDCHE embodiment performs the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted. Thus, for a 3D multivector with coefficients Co, c/, C2, C3, c/2, ci3, C23, and cm, where the coefficients are numbered so as to correspond with the unit vector associated with each coefficient, the homomorphic preserving mathematical relationship equation to represent the numeric value N would, again, be:
N = CO + Cl + C2 + Ci + /2 + CI3 + C23 + CJ23
[0187] Instead of having a strict equation to follow, an algorithm that randomly finds integers that satisfy the sum of integers equation may be created. To ensure that the coefficients add up to the numeric value N, the random number for each coefficient element may be serially (i.e., successively) calculated with the random number restricted to be some amount less than the remaining sum in order to achieve the numeric value N until the last coefficient value calculated is set equal to the remaining amount in order to achieve the numeric value N. For such a random number based system, given that N is again 5487, the homomorphic preserving mathematical relationship may be written as:
N = CO + Cl + C2 + C3 + CJ2 + C13 + C23 + C123
5487 = 385 + 985 + 685 + 584 + 786 + 482 + 887 + 693 and the resulting multivector representing the numeric value N would be: multivector N = co + ci ei + ci Q-i + C &?> + cn en + cj ei3 + C2 cii &m multivector /V = 385 + 985ei + 685e2 + 584ea + 786en + 482en + 887e23 + 693ei
Third example:
[0188] Unlike the first two examples, in this third example the homomorphic preserving mathematical relationship equation that is set equal to the numeric value N may be defined to include some subtraction of some coefficients, addition of a constant value, and multiplication of coefficient values by a constant, as well as the omission of one of the coefficients (i.e., C123) from the homomorphic preserving mathematical relationship. In this third example, the homomorphic preserving mathematical relationship equation to represent the numeric value N might now be:
N = C0 + C] - C2 + C3 - CI2 + 3 * CIS + C23 + 23
[0189] A modified version of the methodology of either the first example (use a mathematical equation to calculate the coefficient values) or the second example (randomly generated coefficient values) described above may be used to determine the coefficient values given that the homomorphic preserving mathematical relationship now subtracts some coefficients, adds a constant, multiplies a coefficient by a constant, and omits one coefficient from the homomorphic preserving mathematical relationship altogether. Using randomly generated numbers, and given that N is again 5487, the homomorphic preserving
mathematical relationship may be written as:
N = C0 + Cl - C2 + C3 - C12 + 3 * CJ3 + C23 + 23
5487 = (901 ) + (985) - (185) + (-584) - (286) + 3 * (882) + (1987) + 23 5487 = 901 + 985 - 185 - 584 - 286 + 2646 + 1987 + 23 and the resulting multivector representing the numeric value N would be: multivector N = co + ci ei + ci e2 + cj e3 + cn en + C en + c.23 e23 + C123 ens multivector N = (901 ) + (985)ei + (185)e2 + (-584)e3 + (286)ei2 + (882)ei3 + (1987)e23 +
333ei23
multivector N = 901 + 985ei + 185e2 - 584e3 + 286ej2 + 882ei3 + 1987e23 + 333ei23 where the cm value of 333 is a dummy value not included in the homomorphic preserving mathematical relationship, but may potentially be used to provide other features such as signature capability and/or passing of command or other information.
[0190] A homomorphic preserving mathematical relationship that includes some subtractive elements has the advantage of being able to represent negative numbers and zero without the coefficient values being negative for a user that prefers to not have negative coefficient values. C. Multivector to number that supports Homomorphism
[0191] Obtaining a numeric value from the coefficients of a numeric data message multivector is relatively simple and straight forward. To obtain the numeric data message value, simply perform the homomorphic preserving mathematical relationship equation for the numeric data message multivector using the values of the multivector coefficients plugged into the homomorphic preserving mathematical relationship equation. The examples given below provide the "multivector to number" process appropriate for the same example number as described above for the "number to multivector" process.
First example:
[0192] In the first example above, the EDCHE embodiment performed the
homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted. Thus, for a 3D multivector with coefficients co, c/, c2, cj, c/2, <¾, c2.j, and cm, where the coefficients are numbered so as to correspond with the unit vector associated with each coefficient, the homomorphic preserving mathematical relationship equation to represent the result numeric value N would be:
N = CO + C] + C2 + C3 + C12 + Cl3 + C23 + C 123
As described above, the multivector has the form of: multivector N = co + ci ei + c2 e2 + <¾ e3 + cn ei 2 + <¾ ei3 + C23 e23 + cm em [0193] Now, given the following result multivector, multivector N = 725 + 21ei + 685e2 + 286e3 - 721ei2 + 85ei3 + 601e23 + 192ei23 and knowing the multivector of the form: multivector N = co + cj ei + c2 e2 + c? e3 + c/2 ej2 + cu e + C23 e23 + cm &m then the result multivector may be rewritten to highlight the appropriate positive and negative values as:
(725) + (21 )e, + (685)e2 + (286)e3 + (-721 )e] 2 + (85)e,3 + (601 )e23 + (192)em and the calculation of the result numeric value N would proceed as follows:
N = CO + Cl + C2 + C3 + C12 + C}3 + C23 + Cm
N = (725) + (21) + (685) + (286) + (721 ) -i- (85) + (601) + (192) Λ' = 725 + 21 + 685 + 286 + 721 + 85 + 601 + 192 such that result numeric value N would be:
N = 3316
[0194] Now, given a different result multivector that includes some negative coefficients, such as the following vector:
333 - 201 ei + 248e2 + 506e3 - 71e) 2 + 80e] + 21 l e23 - 743e!23 and knowing the result multivector with the given homomorphic preserving mathematical relationship equation is of the form: multivector N = co + cj ei + o e2 + cj e3 + cn tn + c/j ei3 + cu e2 + c/25 ei23 then the result multivector may be rewritten to highlight the appropriate positive and negative values as:
(333) + (-201 )ei + (248)e2 + (506)e3 + (-71 )e)2 + (80)e]3 + (21 l )e23 + (-743)e! 23 and the calculation of the result numeric value N would proceed as follows:
N = C0 + C] + C2 + C3 + C12 + C13 + C23 + m
N = (333) + (-201 ) + (248) + (506) + (-71 ) + (80) + (21 1 ) + (-743) N = 333 - 201 + 248 + 506 - 71 + 80 + 21 1 - 743 such that result numeric value N would be:
N = 363
Second example:
[0195] In the second example above, the EDO IE embodiment performed the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted, which is the same homomorphic preserving mathematical relationship equation as for the first example above. Consequently, the "multi vector to number" process is identical to that as described for the "multivector to number" process of the first example given above.
Third example:
[0196] In the first and second example above, the EDCHE embodiment performed the homomorphic preserving mathematical relationship process such that all coefficients are added together and there are not any coefficients that are subtracted. The third example from above changed the homomorphic preserving mathematical relationship equation to include some subtraction of some coefficients, addition of a constant value, and multiplication of coefficient values by a constant, as well as the omission of one of the coefficients (i.e., a 23) from the homomorphic preserving mathematical relationship. Thus, for the third example, for a 3D multivector with coefficients co, c/, C2, c.?, cn, C13, C23, and cm, where the coefficients are numbered so as to correspond with the unit vector associated with each coefficient, the homomorphic preserving mathematical relationship equation to represent the numeric value N would again be:
N = CO + Cl - C2 + C3 - C12 + 3 * C13 + C23 + 23 As described above, the multivector has the form of: multivector N = co + ci ei + a ei + C} e3 + e tn + cn en + u β23 + cm em
[0197] Now, given the same following result multivector as for example I above, multivector N = 725 + 21 ei + 685e2 + 286β3 - 721 ei2 + 85ei3 + 601 β23 + 192ei23 and knowing the multivector is of the form: multivector N = co + ci &\ + ci e∑ + cj e3 + c ei 2 + cn en + 23 &23 + c ei23 then the result multivector may be rewritten to highlight the appropriate positive and negative values as: multivector N = (725) + (21 )ei + (685)e2 + (286)e3 + (-721 )ei2 + (85)e]3 + (601 )e23 +
(192)e,23 and the calculation of the result numeric value N would proceed as follows:
N - C0 + Cl - C2 + C3 - C12 + 3 * C13 + C23 + 23
N = (725) + (21 ) - (685) + (286) - (-721 ) + 3 * (85) + (601 ) + 23 N = 725 + 21 - 685 + 286 + 721 + 255 + 601 + 23 such that result numeric value N would be:
N = 1947 where the C123 value of 192 is ignored as a dummy value not included in the homomorphic preserving mathematical relationship. Note that the third example result of 1947 does not equal the first example result of 3316 for the same result multivector. Thus, demonstrating the necessity of using the same homomorphic preserving mathematical relationship equation for all encrypted multivectors of a homomorphic summation operation. [0198] Now, given a different result multivector that includes some negative coefficients (that is the same as the negative coefficient result multivector also used for example 1 above), such as the following vector: multivector N = 333 - 201ei + 248e2 + 506e3 - 71 e) 2 + 80e13 + 21 l e2 - 743ei23 and knowing the result multivector with the given homomorphic preserving mathematical relationship equation is of the form: multivector N = co + ci ei + a e2 + C3 e + cn ei2 + cij ei + C23 e23 + cm em then the result multivector may be rewritten to highlight the appropriate positive and negative values as: multivector N = (333) + (-201)e, + (248)e2 + (506)e3 + (-71 )e]2 + (80)e] 3 + (21 l )e23 + (-
Figure imgf000079_0001
where the cm value of -743 is a dummy value not included in the homomorphic preserving mathematical relationship. Thus, the calculation of the result numeric value N would proceed as follows:
N = C() + Cj - C2 + C3 - CI2 + 3* C]3 + C23 + 23
N = (333) + (-201 ) - (248) + (506) - (-71 ) + 3 * (80) + (21 1) + 23 N = 333 - 201 - 248 + 506 + 71 + 240 + 21 1 + 23 such that result numeric value N would be:
7V = 935
Note again that the third example result of 935 does not equal the first example result of 363 for the same result multivector. Thus, again, demonstrating the necessity of using the same homomorphic preserving mathematical relationship equation for all encrypted multivectors of a homomorphic summation operation. D. Additive Homomorphism in EDCHE
[0199] Additive Homomorphic Encryption may be defined as ε{χχ + x2) = ε(χχ) + ε(χ2), where ε is the encryption operation. In general terms, when the unencrypted "sum" of plaintext messages is equal to the comparable encrypted "sum" of the encrypted messages the operation is additive homomorphic. Note again that herein the term "sum" for additive homomorphic operations includes both addition and subtraction operations. Thus, the plaintext messages and the corresponding encrypted messages should be added and subtracted in a comparable manner so that corresponding entities are similarly added or subtracted in the "sum" operation.
General Additive EDCHE example:
[0200] Described below is an example embodiment presenting the additive
homomorphic properties of an EDCHE embodiment. Consider that Alice has a list of debts and those debts are to be encrypted and stored in the cloud (i.e., intermediary computing system).
[0201] The debts are: d = $10,000
d2 = $5,500
d3 = $7,000
[0202] Using the "number to multivector" packing/distribution algorithm of Example 1 as described in preceding Sections 3(B & C), we may represent these debts as multivectors as follows:
Dj = 1250 + 1250e, + 1250e2 + 1250e3 + 1250e12 + 1250e13 + 1250e23 + 1250e123 D2 = 687 + 687*?! + 687e, + 687e3 + 687e12 + 687e13 + 687e23 + 691e123 D3 = 875 + 875^ + 875e2 + 875e3 + 875e12 + 875e13 + 875e23 + 875e123 [0203] Given the following secret multivectors (where S2 is derived from S1 as in Section 2(F))
Si = 3 + 2ex + 4e2 + 8e3 + 5e12 + 7e13 + 3e23 -I- 6e123 S2 - 11 + Se-! + 3e2 + 15e3 + 4e12 + 17e13 + 2e23 + le123
[0204] The debts will be encrypted by applying the triple product technique as follows (note: the Sylvester's equation technique may be substituted for the triple product technique throughout this description for another embodiment) Di = Si OA
CD2 = SXD2S2
CD3 = ¾¾¾ which will generate:
CDl = -155000 - 125000ev + 600000e2 - 305000e3 + 670000e12 - 285000e13
-I- 130000e23 + 320000c" ! 23
CD2 = -85612 - 68900et + 330136e2 - 168380e3 + 368640e12 - 157332e13
+ 71408e23 + 175968e123
~CD = - 108500 + -87500^ -I- 420000e2 - 213500e3 + 469000e12 - 199500e13
+ 91000e23 + 224000e123
[0205] After encryption, CD1 , CD2 and CD3 are sent to the cloud and stored. To determine the total of these debt amounts Alice may request that the cloud (i.e., intermediary computing system) perform the following computation and return the result to Alice (i.e., Alice' s computing system acting as both all sources of data inputs and the destination that receives the calculation result). Let TCD represent the sum of the debt amounts calculated on the encrypted data, such that:
TCD = CD1 + CD2 + CD3 and
TCD = -349112 - 281400^ + 1350136e2 - 686880e3 + 1507640c, 2 - 641832c,
+ 292408e23 + 719968e123
Notice that the scalar and coefficient values of TCD are derived simply by the addition of the corresponding scalar and coefficient values in CDit CD2, and CD3.
[0206] The cloud sends TCD to Alice. In order to determine the "sum" Alice decrypts the received TCD information in order to recover TD (the multivector sum of the total debts), as follows:
TD = S^fCD^1
TD = 2812 + 2812(3! + 2812e2 + 2812e3 + 2812e12 + 2812e13 + 2812e23 + 2812e123 Converting TD to a base 10 number yields:
. multivector to number
TD10 = TD » 22500 which agrees with:
$10,000 + $7,000 + $5,500 = $22,500
[0207] Now consider that Alice further wants to apply payments against her debt balance in the amounts of:
Pi = $3,000
P2 = $4,000
= $10,000 [0208] As demonstrated above, these payments may be represented as multivectors as follows:
Px = 75 + 375e, -I- 375e2 + 375e3 + 375e12 + 375e13 + 375e23 + 375e123 P2 = 500 + 500e, + 500e2 + 500e3 + 500e12 + 500e13 + 500e23 + 500e123 P3 = 1250 + 1250β! + 1250e2 + 1250e3 -I- 1250e12 + 1250e13 + 1250e23 + 1250e123
[0209] The payments may be encrypted by applying the triple product technique as follows:
Figure imgf000083_0001
CP2 = SXP2S2
CP3— $i S2 which will generate:
~Cl\ = -46500 - 37500^ + 180000e2 - 91500e3 + 201000e12 - 85500e13
+ 39000e23 + 96000e123
CP2 = -62000 - 50000ex + 240000e2 - 122000e3 + 268000e12 - 114000e13
+ 52000e23 + 128000e123
C 3 = -155000 - 125000¾ + 600000e2 - 305000e3 + 670000e12 - 285000e13
+ 130000e23 + 320000e123
[0210] After encryption, CP, . CP2 and CP are sent to the cloud and stored. Again, if Alice wants to know the total of payments the cloud performs the following operation on the encrypted data:
TCP = CPX + CP2 + CP3
TCP = -263500 - 212500^ + 1020000e2 - 518500e3 + 1139000e12 - 484500e13
+ 221000e23 + 544000c, 23 where TCP is the sum of the total payments calculated on the encrypted data. [0211] The cloud sends TCP to Alice. In order to know the total payments, Alice then decrypts the received information as follows:
TP = 2125 + 21256! + 2125e2 + 2125e3 + 2125e12 + 2125e13 + 2125e23 + 2125e123 where TP is the decrypted value of the total payments.
[0212] By converting TP to a base 10 number, Alice gets: multivector to number
TD10 = TD > 17000 which agrees with the sum of:
$3,000 + $4,000 + $10,000 = $17,000
[0213] Considering the original debts and the payments that were processed, Alice now wants to determine her updated balance, UB, which may be determined by the cloud as follows:
UB = TCD - TCP
JjB = 687 + 687e, + 687e2 + 687e3 + 687e12 + 687e13 + 687e23 + 687er By converting UB to a base 10 number, Alice gets: multivector to number
UB10 = UB » 5500 which agrees with: debts payments
($10,000 + $7,000 + $5,500) - ($3,000 + $4,000 + $10,000) = $5,500 [0214] From this example we see for an embodiment of the additive homomorphic EDCHE that the sum of encrypted data, once decrypted, equals the sum of the original unencrypted data. Thus, EDCHE is additive homomorphic.
Real numbers (i.e., floating point) EDCHE example:
[0100] As is also noted above, real numbers (i.e., decimal numbers, which are typically handled by some type of floating point, or fixed point, data type variable in most computer programming languages) may be used to represent any of the various aspects of the encryption/decryption process for an EDCHE (as well as for an EDGE) embodiment, including decimal numbers for the numeric data message input, the coefficients of the various multivectors, and/or the result value of a homomorphic additive (i.e., summation) operation, as described in the example below.
[0101] For the decimal operational example, start with two decimal numbers A io and Bio, as follows:
Figure imgf000085_0001
B ) = 48.22
[0102] Using a packing/distribution homomorphic preserving mathematical relationship where the addition (i.e., additive sum) of all the coefficients of the multivector is equivalent to the original decimal number being represented, the two decimal numbers Aio and Bio may be represented as the following multivectors:
A = 2.32 + 5.9Se1 + 7.2e2 + 5.0e3 + 9.21e12 + 4.3e13 + 8.27e23 + 9.28e123 B = 7.2 + 9.32e! + 4.6e2 + 7.9 l e3 + 3.68e12 + 6.32e13 + 3.2e23 + 5.99e123
[0103] The encryption/decryption and homomorphic summation processes for the "'Real numbers" (i.e. decimal values) example is, all in all, the same as for the "General Additive EDCHE" example described above. Accordingly, the encryption ofA and B would be:
Figure imgf000086_0001
CA = -16777187.823 - 16761519.345c, + 7557035.187e2 - 16760680.515c3
+ 7549302.987e12 - 16744830.135e13 + 7560538.995e23 + 7552848.795e123
CB = S,BS2
CB = -7177495.383 - 7173684.681 et + 15393509.007e2 - 7167746.295e3
+ 15408212.787e12 - 7163779.731e13 + 15420449.115e23 + 15434996.991 c, 23
[0104] Adding CA and CB results in CD, as follows:
CD = CA + CB
CD = -23954683.206 - 23935204.026ε! + 22950544.194e2 - 23928426.81e3
+ 22957515.774e12 - 23908609.866e13 + 22980988.11e23 + 22987845.786e123
[0105] Decrypting CD results in C, as follows: c = (sxrlcD(s2rl
C = 9.52 + 15.272εχ + 11.8e2 + 12.91e3 + 12.888e12 + 10.62e13 + 11.47e23
+ 15.27e123 which, using the homomorphic preserving mathematical relationship of adding all the coefficients together, is:
C = 99.75 [0106] And to verify that the operations worked properly, the following checks may be performed:
C = A + B
C = (2.32 + 7.2) + (5.95 -I- 9.32)ex -I- (7.2 + 4.6)e2 + (5.0 + 7.91) e3 + (9.21
+ 3.68) e, 2 + (4.3 + 6.32)e13 -1- (8.27 + 3.2)e23 + (9.28 -I- 5.99) C = 9.52 + 15.27c , + 11.8e2 + 12.91e3 + 12.89e12 + 10.62e13 + 11.47e23
+ I5.27e1 73 which, using the homomorphic preserving mathematical relationship of adding all the coefficients together, is:
C = 99.75
And also, the following check:
Aw = 51.53
Bw = 48.22
Aw + B10 = 51.53 -I- 48.22 and finally:
C10 = 99.75
[0107] The above example demonstrates that there is not a restriction for working with decimals as is expected since EDGE and EDCHE operates in the field of real numbers. Hardware Implementation for Additive Homomorphic EDCHE Embodiments (Fig. 8)
[0108] Fig. 8 is a block diagram 800 of the hardware implementation for an additive homomorphic encryption embodiment. One or more source computing devices 802 are connected over an electronic network/bus connection 804 to an intermediary (e.g., cloud) computing device 806. In the embodiment shown in Fig. 8, the source computing device(s) 102 sends the two or more cryptotext multivectors 810 that will "summed" through the additive homomorphism of an EDCHE embodiment at the intermediary computing system 806 over the network/bus connection 104 to the intermediary computing system 806. The two or more cryptotext multivectors 810 may be created on a single source computing device 802 or the two or more cryptotext multivectors 810 may be created on multiple source computing devices 802. The intermediary computing system 806 receives the two or more cryptotext multivectors 810 from the network/bus connection 804.
[0109] The intermediary computing system 806 may immediately perform a "sum" of the two or more cryptotext multivectors 810 using vector addition/subtraction (as instructed by a user) or the intermediary computing system 806 may store the two or more cryptotext multivectors 810 until such time that the intermediary computing system 806 is instnicted to perform the homomorphic sum operation. Once the homomorphic sum operation is completed by the intermediary computing system 806, the intermediary computing system sends the encrypted homomorphic sum additive result multitvector 812 to the destination computing system 808 over the network/bus communication connection 804. The destination computing system 808 receives the encrypted homomorphic sum additive result multivector 812 from the network/bus communication connection 804 and decrypts the encrypted homomorphic sum additive result multivector 812 to obtain the desired plaintext additive result.
[0110] Further, as noted in Sections 1 and 2 above, the cryptotext multivectors 810 may be converted to non-multivector cryptotext when being sent over the network/bus communication connection 804, then converted back into cryptotext multivectors at the intermediary computing system 806 for additive homomorphic operations. Likewise, the encrypted homomorphic sum additive result multivectors 812 may be converted to non- multivector additive result cryptotext when being sent over the network/bus communication connection 804, then converted back into the encrypted homomorphic sum additive result multivector 81 2 at the destination computing device 808 for decryption by the destination computing device 808 into the plaintext additive result.
[0111 1 Generally, communications, including encrypted communications, are bidirectional such that the source(s) computing device 802, the intermediary computing system 806, and/or the destination computing device 808 may change roles so as to operate as a source computing device 802, the intermediary computing system 806, and/or the destination computing device 808 as is necessary to accommodate the transfer of data back and forth between the source(s) 102 and destination 808 computing devices as well as for computation of homomorphic summations at the intermediary computing system 806. [0112] Further, as shown in Fig. 8, the source(s) computing device 102 appears to be a laptop computer and the destination computing device 808 appears to be a tablet device. Generally, any computing device capable of communication over any form of electronic network or bus communication platform 804 may be one, multiple or all of the source(s) computing device 802, the intermediary computing system 806, and/or the destination computing device. Further still, the source(s) 802, intermediary 806, and destination computing devices/systems 808 may actually be the same physical computing device communicating over an internal bus connection 804 with itself, but still desiring encrypted communication to ensure that an attacker cannot monitor the internal communications bus 804 or hack an unprotected area of the computing system (i.e., the intermediary section 806) in order to obtain sensitive data communications in an unencrypted format.
[0113] Various embodiments may implement the network/bus communications channel 804 using any communications channel 804 capable of transferring electronic data between the source(s) 802, intermediary 806, and/or destination 808 computing devices/systems. For instance, the network/bus communication connection 804 may be an Internet connection routed over one or more different communications channels during transmission from the source(s) 802 to the intermediary 806 computing system, and then onto the destination computing device 808. Likewise, the network/bus communication connection 804 may be an internal communications bus of a computing device, or even the internal bus of a processing or memory storage Integrated Circuit (IC) chip, such as a memory chip or a Central Processing Unit (CPU) chip. The network/bus communication channel 804 may utilize any medium capable of transmitting electronic data communications, including, but not limited to: wired communications, wireless electro-magnetic communications, fiber-optic cable communications, light/laser communications, sonic/sound communications, etc., and any combination thereof of the various communication channels.
[0114] The various embodiments may provide the control and management functions detailed herein via an application operating on the source(s) 802, intermediary 806, and/or destination 808 computing devices/systems. The source(s) 802, intermediary 806, and/or destination 808 computing devices/systems may each be a computer or computer system, or any other electronic devices device capable of performing the communications and computations of an embodiment. The source(s) 802, intermediary 806, and/or destination 808 computing devices/systems may include, but are not limited to: a general purpose computer, a laptop/portable computer, a tablet device, a smart phone, an industrial control computer, a data storage system controller, a CPU, a Graphical Processing Unit (GPU), an Application Specific Integrated Circuit (ASI), and/or a Field Programmable Gate Array (FPGA). Notably, the first 102 and second 106 computing devices may be the storage controller of a data storage media (e.g., the controller for a hard disk drive) such that data delivered to/from the data storage media is always encrypted so as to limit the ability of an attacker to ever have access to unencrypted data. Embodiments may be provided as a computer program product which may include a computer-readable, or machine-readable, medium having stored thereon instructions which may be used to program/operate a computer (or other electronic devices) or computer system to perform a process or processes in accordance with the various embodiments. The computer-readable medium may include, but is not l imited to, hard disk drives, floppy diskettes, optical disks, Compact Disc Readonly Memories (CD-ROMs), Digital Versatile Disc ROMS (DVD-ROMs), Universal Serial Bus ( USB) memory sticks, magneto-optical disks, ROMs, random access memories (RAMs), Erasable Programmable ROMs (EPROMs), Electrically Erasable Programmable ROMs (EEPROMs), magnetic optical cards, flash memory, or other types of media/machine- readable medium suitable for storing electronic instructions. The computer program instructions may reside and operate on a single computer/electronic device or various portions may be spread over multiple computers/devices that comprise a computer system. Moreover, embodiments may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection, including both wired/cabled and wireless connections). Additive Homomorphic EDCHE Operational Flow Charts (Fig. 9)
[0115] Fig. 9 is a flow chart 900 of the general operation for an additive homomorphic encryption embodiment. At process 908 a shared secret numeric data value (Ss) is shared between the source(s) 902 and destination 906. The various embodiments may share the shared secret numeric data value (Ss) between the source(s) 902 and destination 906 via any means desired by the users. To ensure the shared secret numeric data value (Ss) is kept secret, it is likely that some type of handshaking/setup encrypted key transfer mechanism will be desired to share the shared secret numeric data value (Ss). For example, the shared secret numeric data value (Ss) may be shared between the source(s) 906 and destination 906 by means including, but not limited to: pre-conditioning the source(s) 902 computing device and the destination 906 computing device with the shared secret numeric value (Ss), a standard public/private key exchange technique, RSA (Rivest-Shamir-Adleman) key exchange, and/or Diffie-Hellman key exchange (disclosed in more detail herein, below). Further, the original shared secret may be an alphanumeric string in ASCII (American Standard Code for
Information Exchange) or another encoding protocol that is converted to a numeric value based on the associated encoding protocol, such as ASCII. However, both the source(s) 902 and destination 906 need to know and use the same alphanumeric text conversion into a numeric value process to ensure that results of both the source(s) 902 and the destination 906 are the same.
[0116] The process 910-916 of source(s) 902 are performed at least twice in order to create the two or more cryptotext multivectors that are to be summed using additive homomorphic properties. At process 910, the source(s) 902 distributes the numeric message data (M) into message multivector ( ) coefficients in accord with a homomorphic mathematical relationship equation between a plaintext data value and coefficients of a multivector that represents the plaintext data value. For all operations of a single additive homomorphic process, all sources 902 and the destination 906 should use the same homomorphic preserving mathematical relationship to preserve the homomorphism of the encrypted data. Also, the encryption system will work with just one non-zero message multivector (M) coefficient, but, the more non-zero message multivector (M) coefficients there are, the stronger the encryption will become, so it is desirable to have more than one non-zero message multivector (M) coefficient. At process 912, the source(s) 202 distributes shared secret numeric value (Ss) into shared secret multivector ( S) coefficients. Again, the encryption system will work with just one non-zero shared secret multivector (Ss) coefficient, but, the more non-zero shared secret multivector (Ss) coefficients there are, the stronger the encryption will become, so, again, it is desirable to have more than one non-zero shared secret multivector (Ss) coefficient. One skilled in the art will recognize that there are many approaches for distributing numeric data into several coefficients of a multivector {see herein, above for disclosure of some example packing/distribution methods). The primary requirement for the distribution process from the numeric values of the message (M) and the shared secret (Ss) to the multivector coefficient values ( and Ss) is that the source(s) 902 and the destination 906 both know the processes 910/230 and 912/926 such that the destination 904 can get the proper value for the homomorphic additive result (AR). As long as it is known to both the source(s) 902 and the destination 904, the distribution of numeric data to multivector coefficients may be performed differently between the message
( )/additive result (AR) and the shared secret (¾).
[0117] The distributing/packing method defines, among many things, the Geometric Algebra operations permissible for EDGE and/or EDCHE embodiments. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. For example, the Rationalize operation on multivectors yields zero when all multivector coefficients are equal. Such multivectors having all equal coefficients have no inverse and the geometric product of such multivectors having all equal coefficients with another multivector has no inverse. As discussed in more detail below, the decryption methodology for EDCE and EDCHE systems utilize the inverse of the cryptotext multivector being decrypted and of the security key(s) multivector to perform the decryption. Therefore, the cryptotext multivector being decrypted should not have all equal value coefficients. One means to ensure that the cryptotext multivector being decrypted does not have all equal value coefficients is to have the packing/coefficient distribution method ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients) when creating the shared security multivector(s) and the data message multivectors. For an embodiment of the EDCE that simply transfers the data message, this will ensure that the cryptotext multivector to be decrypted will not have all equivalent coefficients. For an EDCHE system that may perform operations involving multiple encrypted data values, the same packing/coefficient distribution method to ensure that the source message multivectors do not have all equivalent coefficients will minimize the potential for the cryptotext multivector being decrypted from having all equivalent coefficients, but, when various addition and subtraction operations are performed with multiple distinctly different cryptotext multivectors, there is a remote possibility that the cryptotext multivector result of the homomorphic operations will have all equivalent coefficients. The destination computing device 904 may simply assert that such a result cryptotext multivector is "undefined," or, the destination or intermediary computing system may provide a means to update the result cryptotext multivector so the result cryptotext multivector does not have all equivalent coefficients. Great care should be taken to ensure that such an update of the result cryptotext multivector does not change the ultimate value of the result plaintext value of the result cryptotext multivector after decryption. Therefore, it may be desirable for the distribution/packing method to also ensure that not all coefficients are equal to each other (i.e., at least one coefficient should be different than the other coefficients).
[0118] For embodiments that intend to retain homomorphic properties for encrypted data messages such as an embodiment of an EDCHE system, there is an additional restriction that the "packed" multivector that represents the original plaintext numeric message have a mathematical relationship (i.e., the homomorphic preserving mathematical relationship) to the original plaintext numeric message. In abstract algebra, the term homomorphism refers to a structure-preserving map between two algebraic structures, such as groups, rings, or vector spaces. An algebra homomorphism between two algebras is one that preserves the algebra structure. In order to preserve the algebra structure between arithmetic and Geometric Algebra operations, the method by which numbers are "packed" into multivector elements must remain a representation of the original number. One such relationship for packing the coefficients of the multivector that preserves homomorphic properties is to ensure that the coefficients of the multivector representation of the plaintext numeric message follow a mathematical data organization between the value of the plaintext numeric message and at least one of the values of the coefficients of the multivector representation of the plaintext numeric message where the mathematical operations incorporating the one or more values of the multivector coefficients have a result equal to the original plaintext numeric message value. The mathematical relationship may include: addition of at least one coefficient of the multivector coefficients, subtraction of at least one coefficient of the multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of the multivector coefficients by a constant value, and division of at least one coefficient of the multivector coefficients by a constant value. The location of the various mathematical operations relative to the particular locations of the coefficients in the multivector representation should also be consistently appl ied to all source numeric data messages converted to a multivector as well as for result multivectors converted to a result numeric data value in a particular encryption/decryption pathway.
[0119] The restriction to retain homomorphic properties is only applicable to the distribution (i.e., "packing") of the message multivector (M) coefficients and not to the distribution (i.e., "packing") of the shared secret multivector (Ss). Consequently, the distribution (i.e., "packing") of the shared secret multivector (Ss) may be performed in any fashion so long as the distribution (i.e., "packing") method of the shared secret multivector (Ss) is known and used consistently by the source 902 and destination 906 computing devices as, ultimately, the shared secret multivector (Ss) used by the source 902 and destination 960 should be equal to each other to ensure that the decryption operations 226 work properly in relation to the encryption 214 operations. The number of potential coefficients is directly related to the size/dimension (N) of the multivectors such that the number of coefficients increases by a factor of 2 (i.e., 2N) for each incremental increase in the size/dimension (N) of the multivector. To increase the confusion and/or diffusion of the encryption process disclosed herein, using multivectors of at least two dimensions will provide at least four coefficients to distribute the numeric data of the message (M) and the shared secret (Ss). By increasing the number of dimensions (N) of multivectors beyond two-dimension
multivectors, the confusion and/or diffusion security characteristics will also be increased due to the additional ly available multivector coefficients. Further, with the additionally available coefficients it is also possible to transfer more data in a single multivector message (M) payload using the additionally available multivector coefficients.
[0120] At process 914, the source(s) 902 encrypts a cryptotext multivector (C) as a function of at least one Geometric Algebra geometric product operation on the message multivector ( ) and the shared secret multivector (Ss). Due to the nature of the geometric product operation of Geometric Algebra, there are many possible variations of the geometric product application that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to encrypt the message data (M) include: a geometric product (C = MSS) of the message multivector (M) and the shared secret multivector (Ss); geometric product "sandwich" (C = SSMSS); and multivector based Sylvester's equation ( = SSM + MSS).
[0121] At process 916, the source(s) 902 sends the cryptotext multivector (C) to the intermediary computing system 904. Various embodiments may optionally convert the cryptotext multivector (C) into cryptotext numeric data (C) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to the source(s) 902, intermediary (904), and the destination 906. An embodiment may also skip conversion to cryptotext numeric data (C) and directly send a representation of the cryptotext multivector (C) without first converting the cryptotext multivector (C) into cryptotext numeric data (C). The transmission may be implemented as a series of transfers of the coefficients or as some form of records/packets that define a data structure that carries the coefficient data of the cryptotext multivector (C). Not converting the cryptotext multivector ( ) into cryptotext numeric data (C) has the advantage of avoiding the processing time for the conversion as well as having the advantage that, for homomorphic operations performed at an intermediary computing system, the intermediary computing system need not have any knowledge of the methodology used to create the cryptotext multivector (C). If process 216 is used to convert the cryptotext multivector (C) into cryptotext numeric data (0, it is necessary for any computing device/system that wishes to operate on the cryptotext multivector (C) to have knowledge of the particular conversion methodology so that the computing device/system may properly recreate the cryptotext multivector (C). A disadvantage of not converting the cryptotext multivector (C) into cryptotext numeric data (C) is that it may be possible to include additional confusion/diffusion features in conversion to cryptotext numeric data.
|0122| At process 91 8, the intermediary computing system 904 receives the two or more cryptotext multivector (C) sent by the source(s) 902. At process 920, the intermediary performs the user desired vector additions/subtractions on the two or more cryptotext multivector (C) sent by the source(s) 902. At process 922, the intermediary 904 sends the additive result cryptotext multivector (ARC) to the destination 906.
[0123] At process 924, the destination 906 receives the additive result cryptotext multivector (ARC) sent by the intermediary 904. At process 926, the destination 906 distributes shared secret numeric value (Ss) into shared secret multivector (Ss) coefficients in the same fashion as was done for the source(s) 902 at process 912. At process 928, the destination decrypts the additive result cryptotext multivector (ARC) as a function of at least one Geometric Algebra geometric product operation on the cryptotext multivector (C) and an inverse (Ss 1) of the shared secret multivector (Ss) back into the message multivector (M). Again, due to the nature of the geometric product operation of Geometric Algebra there are many possible variations of the geometric product application that will provide similar degrees of confusion and diffusion. Some, but not all, of the potential geometric product calculations to decrypt the message data (M) include: a geometric product (M = CSS 1) of the cryptotext multivector (C) and the inverse (Ss 1) of the shared secret multivector (Ss);
— _ —1
geometric product "sandwich" (M = Ss CSS to decrypt); and multivector based Sylvester's equation (M = (ss + Ss + Ss 1SSSS + Sg (Ss 1 CSS + C) to decrypt). At process 930, the destination 906 converts the additive result cryptotext multivector (ARC) into the additive result cryptotext numeric (AR) in accord with reverse operation of homomorphic preserving mathematical relationship of the source(s) 902 at process 910. [0124] For more detail on general Geometric Algebra concepts, an additional discussion of an overview of general Geometric Algebra concepts may be found in
"Appendix A: Geometric Algebra Overview" of the parent patent application Serial No. 15/667,325, filed August 2, 2017, entitled "Methods and Systems for Enhanced Data-Centric Encryption Systems Using Geometric Algebra," which has been specifically incorporated herein by reference for all that it discloses and teaches. For a more exhaustive reference see [REFERENCE! ]. For a more exhaustive reference regarding Sylvester's equation see
[REFERENCE2].
[0125] [REFERENCE 1 ] "Functions of Multivector Variables," PLOS ONE |
DOI: 10.1371/journal.pone.01 16943 March 16, 2015, James M. Chappell, Azhar Iqbal, Lachlan J. Gunn, Derek Abbott, School of Electrical and Electronic Engineering, University of Adelaide, Adelaide, South Australia, Australia}
[0126] [REFERENCE2] Janovska D, Opfer G (2008) Linear equations in quaternionic variables. Mitt Math Ges Hamburg 27: 223-234.
[0127] The foregoing description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and other modifications and variations may be possible in light of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and various modifications as are suited to the particular use contemplated.

Claims

What is claimed is:
1. A method for performing additive homomorphic summation of at least two cryptotext encrypted data representations of at least two corresponding plain text data values, the method comprising:
distributing by a first source computing device a first numeric message data value (Mx) into coefficients of a first message multivector {Mx) in accord with a
homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing said unencrypted numeric data value that is known to said first source computing device, at least one additional source computing device, and a destination computing device;
distributing by said first source computing device a shared secret numeric value (5c) into coefficients of a shared secret multivector (5c) in accord with a shared secret coefficient distribution algorithm that is known to said first source computing device, said at least one additional source computing device, and said destination computing device, such that said shared secret numeric value (Ss) is known or knowable to said first source computing device, said at least one additional source computing device, and said destination computing device, but is kept secret from other devices not intended to have access to said numeric message data including an intermediary computing system;
encrypting by said first source computing device a first cryptotext multivector (Cx) as an encryption function of at least one Geometric Algebra geometric product operation on said first message multivector (Mx) and said shared secret multivector
(Ss);
sending by said first source computing device said first cryptotext multivector ( x) to said intermediary computing system;
distributing by said at least one additional source computing device at least one corresponding additional numeric message data value (Mn) into coefficients of at least one corresponding additional message multivector (Mn) in accord with said homomorphic preserving mathematical relationship; distributing by said at least one additional source computing device said shared secret numeric value (Ss) into said shared secret multivector (Ss) in accord with said shared secret coefficient distribution algorithm;
encrypting by said at least one additional source computing device at least one corresponding additional cryptotext multivector (Cn) as said encryption function of at least one Geometric Algebra geometric product operation on said at least one corresponding additional message multivector (Mn) and said shared secret multivector (Ss) such that said encryption function of said at least one corresponding additional cryptotext multivector (Cn) matches said encryption function of said first cryptotext multivector (Cx);
sending by said at least one additional source computing device said at least one corresponding additional cryptotext multivector (Cn) to said intermediary computing system;
receiving by said intermediary computing system said first cryptotext multivector (Ci) sent by said first source computing device, and said at least one additional cryptotext multivector (Cn) sent by said corresponding at least one additional source computing device;
summing by said intermediary computing system using vector summation said first cryptotext multivector (C^) and said at least one additional cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC);
sending by said intermediary computing system said additive result cryptotext multivector (ARC) to said destination computing device;
receiving by said destination computing device said additive result cryptotext multivector (ARC) sent by said intermediary computing system;
distributing by said destination computing device said shared secret numeric value (Ss) into said shared secret multivector (Ss) in accord with said shared secret coefficient distribution algorithm;
decrypting by said destination computing device said additive result cryptotext multivector (ARC) as a decryption function of at least one Geometric Algebra geometric product operation on said additive result cryptotext multivector (ARC) and an inverse (Ss 1) of said shared secret multivector (Ss) into an additive result multivector (AR) such that said decryption function provides a corresponding decryption operation for said encryption process of said first cryptotext multivector (Ci) and said at least one additional cryptotext multivector (Cn); and
converting by said destination computing device said additive result multivector (AR) into an additive result data value (AR) in accord with said homomorphic preserving mathematical relationship such that said additive result data value (AR) is equal to a sum of said unencrypted first numeric message data value (Mx) and said unencrypted at least one additional numeric message data value (Mn) such that said sum of said unencrypted first numeric message data value (M ) and said unencrypted at least one additional numeric message data value (Mn) is performed with corresponding mathematical operations as said process of summing of said first cryptotext multivector (C^ and said at least one additional cryptotext multivector
(Cn)-
2. The method of claim 1 wherein said homomorphic preserving mathematical relationship between said unencrypted numeric data value and said multivector coefficients representing said unencrypted numeric data ensures that a result of mathematical operations defined by said homomorphic preserving mathematical relationship on said multivector coefficients representing said unencrypted numeric data value is equal to said unencrypted numeric data value.
3. The method of claim 2 wherein said mathematical operations defined by said
homomorphic preserving mathematical relationship are comprised of at least one of a group chosen from: addition of at least one coefficient of said multivector coefficients, subtraction of at least one coefficient of said multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of said multivector coefficients by a constant value, and division of at least one coefficient of said multivector coefficients by a constant value.
4. The method of claim 2 wherein said mathematical operations defined by said
homomorphic preserving mathematical relationship incorporate at least one coefficient value of said multivector coefficients such that said mathematical operations defined by said homomorphic preserving mathematical relationship is comprised of one of a group chosen from: said mathematical operations defined by said homomorphic preserving mathematical relationship incorporate all coefficient values of said multivector coefficients, said mathematical operations defined by said homomorphic preserving mathematical relationship incorporate fewer than all but more than one coefficient values of said multivector coefficients, and said mathematical operations defined by said homomorphic preserving mathematical relationship incorporate one coefficient value of said multivector coefficients.
5. The method of claim 1 wherein said first numeric message data value (MjJ, said at least one additional numeric message data value ( n), and said additive result data value (AR) are numeric values comprised of at least one of a group chosen from: positive numbers, negative numbers, zero, integer numbers, rational numbers, and real numbers.
6. The method of claim 1 wherein numeric values of said coefficients of said first message multivector (M±), said coefficients of said at least one corresponding additional message multivector (Mn), and said coefficients of said additive result multivector (AR) are comprised of at least one of a group chosen from: positive numbers, negative numbers, zero, integer numbers, rational numbers, and real numbers.
7. The method of claim 1 wherein vector summation is comprised of at least one of a group of vector operations chosen from: vector addition, and vector subtraction.
8. The method of claim 1 wherein said process of summing using vector summation said first cryptotext multivector (Cx) and said at least one additional cryptotext multivector (Cn) in order to obtain said additive result cryptotext multivector (ARC) supports an unlimited number of at least one additional cryptotext multivectors (Cn) in said process of summing using vector summation.
9. The method of claim 1 :
wherein said process of distributing said first numeric message data value (Mt) into coefficients of said first message multivector ( x) further ensures that not all coefficients of said first message multivector ( t) are equal to each other;
wherein said process of distributing said at least one additional numeric message data value (Mn) into coefficients of at least one corresponding additional message multivector (Mn) further ensures that not all coefficients of said at least one additional message multivector (Mn) are equal to each other; and
wherein said shared secret coefficient distribution algorithm further ensures that not all coefficients of said shared secret multivector (Ss) are equal to each other.
10. The method of claim 1 wherein said first source computing device separately performs processes of at least one of a group chosen from: said at least one additional source computing device, said intermediary computing system, and said destination computing device.
1 1 . The method of claim 1 wherein said at least one additional source computing device separately performs processes of at least one of a group chosen from: said source computing device, said intermediary computing system, and said destination computing device.
12. The method of claim 1 wherein said intermediary computing system separately performs processes of at least one of a group chosen from: said source computing device, said at least one additional source computing device, and said destination computing device.
13. The method of claim 1 wherein said destination computing system separately performs processes of at least one of a group chosen from: said source computing device, said at least one additional source computing device, and said intermediary computing system.
14. The method of claim 1 wherein evaluation of Geometric Algebra geometric products and inverses of multivectors is implemented on said first source computing device, said at least one additional source computing device, and said destination computing device using basic arithmetic operations of addition, subtraction, multiplication, and division.
15. The method of claim 14 wherein said i mplementation of said Geometric Algebra
geometric products and inverses of multivectors on said first source computing device, said at least one additional source computing device, and said destination computing device does not include a complex operation to select a prime number, to calculate a logarithm function, and/or to calculate a natural logarithm function.
16. The method of claim 1 further comprising establishing said shared secret numeric value (Ss) between said first source computing device, said at least one additional source computing device, and said destination computing device using a known shared secret technique.
17. The method of claim 16 wherein said known shared secret technique is comprised of at least one of a group chosen from: pre-conditioning said first source computing device, said at least one additional source computing device, and said destination computing device with said shared secret numeric value (Ss); standard public/private key exchange technique; SA (Rivest-Shamir-Aclleman ) key exchange, and Diffie-Hellman key exchange.
18. The method of claim 1 wherein said enciyption function of at least one Geometric
Algebra geometric product operation and said decryption function of at least one Geometric Algebra geometric product operation is comprised of at least one of a group chosen from: a geometric product (C = MSS) of a message multivector (M) and said shared secret multivector (Ss) to encrypt and a geometric product (AR = ARCSS 1) of —i
said additive result cryptotext multivector (ARC) and said inverse (Ss ) of said shared secret multivector (Ss) to decrypt; geometric product "sandwich" (C = SSMSS to encrypt and AR = Ss 1ARCSS 1 to deciypt); and multivector based Sylvester's equation (C =
SSM + MSS to encrypt and AR = (ss + Ss + Ss'1^ + Ss) 1 (SS ARCSS + ARC) to decrypt).
19. The method of claim 1 :
wherein said encryption function of at least one Geometric Algebra geometric product operation performed by said first source computing device further comprises:
generating by said first source computing device a second shared secret key (SS2) as a scalar result of a 0-Blade Reduction Operation of said shared secret multivector (¾);
distributing by said first source computing device said second shared secret key (SSz) into coefficients of a second shared secret multivector (S$2) in accord with a second shared secret coefficient distribution algorithm that is known to said first source computing device, said at least one additional source computing device, and said destination computing device; and
encrypting by said first source computing device said first cryptotext multivector (Cx) as a function of Geometric Algebra geometric product operations on a message multivector (M), said shared secret multivector (¾), and said second shared secret multivector (¾);
wherein said encryption function of at least one Geometric Algebra geometric product operation performed by said at least one additional source computing device further comprises:
generating by said at least one additional source computing device said second shared secret key (SS2) as a scalar result of a 0-Blade Reduction Operation of said shared secret multivector (¾);
distributing by said at least one additional source computing device said second shared secret key (SS2) into said second shared secret multivector (SS2) in accord with a second shared secret coefficient distribution algorithm; and
encrypting by said at least one additional source computing device said at least one corresponding additional cryptotext multivector (Cn) as a function of Geometric Algebra geometric product operations on said at least one corresponding additional message multivector (Mn), said shared secret multivector (¾), and said second shared secret multivector (SS such that said encryption function of said at least one corresponding additional cryptotext multivector (Cn) matches said encryption function of said first cryptotext multivector (<¾; and
wherein said decryption function of at least one Geometric Algebra geometric product operation performed by said destination computing device further comprises:
generating by said destination computing device said second shared secret key (5Sz) as a scalar result of said 0-Blade Reduction Operation of said shared secret multivector (¾);
distributing by said destination computing device said second shared secret key (SSi) into said second shared secret multivector (SSz ) in accord with said second shared secret coefficient distribution algorithm; and decrypting by said destination computing device said additive result cryptotext multivector (ARC) as a function of Geometric Algebra geometric product operations on said additive result cryptotext multivector
(ARC), an inverse (Ss 1) of said shared secret multivector (Ss), and an inverse (SSz 1) of said second shared secret multivector (¾2) into said additive result multivector (AR) such that said decryption function provides a corresponding decryption operation for said encryption process of said first cryptotext multivector (C ) and said at least one additional cryptotext multivector (Cn).
20. The method of claim 19 wherein said 0-Blade Reduction Operation is a geometric
product (Ss = (¾ S) ( SSS)) of a geometric product (SSSS) of said shared secret multivector (Ss) and a Clifford conjugate (S5) of said shared secret multivector (Ss) and a geometric reverse (C¾¾)) of said geometric product (SSSS) of said shared secret multivector (Ss) and said Clifford conjugate (Ss) of said shared secret multivector (Ss).
21 . The method of claim 19 wherein said Geometric Algebra geometric product operations are comprised of at least one of a group chosen from: geometric product "sandwich" (C =
SSMSS? to encrypt and AR = Ss 1ARCSSi 1 to decrypt); and multivector based
Sylvester' s equation (C = SSM + MS∑2 to encrypt and A R = sSl -I- SSl + Ss 1SSlSS2 +
- -1 =
Ss) (Ss ARCSSi + ARC) to decrypt).
22. The method of claim 1 wherein said processes of sending by said first source computing device said first cryptotext multivector (C^ to said intermediary computing system, sending by said at least one additional source computing device said at least one corresponding additional cryptotext multivector (Cn) to said intermediary computing system, and receiving by said intermediary computing system said first cryptotext multivector (Cx) sent by said first source computing device and said at least one additional cryptotext multivector (Cn) sent by said corresponding at least one additional source computing device further comprise: converting by said first source computing device said first cryptotext multivector (Ci) into first cryptotext numeric data (CT) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to said first source computing device, said at least one additional source computing device, and said intermediary computing system;
sending by said first source computing device said first cryptotext numeric data (C-L) to said intermediary computing system;
converting by said at least one additional source computing device said at least one corresponding additional cryptotext multivector (Cn) into at least one
corresponding additional cryptotext numeric data (CN) in accord with reverse operation of said cryptotext data coefficient distribution algorithm;
sending by said at least one additional source computing device said at least one corresponding additional cryptotext numeric data (CN) to said intermediary computing system;
receiving by said intermediary computing system said first cryptotext numeric data (C sent by said first source computing device and said at least one additional cryptotext numeric data (Cn) sent by said corresponding at least one additional source computing device; and
distributing by said intermediary computing system said first cryptotext numeric data (CT) into said first cryptotext multivector (Cx) and said at least one additional cryptotext numeric data (Cn) into said at least one corresponding additional cryptotext multivector (CN) each in accord with said cryptotext data coefficient distribution algorithm.
23. The method of claim 1 wherein said processes of sending by said intermediary computing system said additive result cryptotext multivector (ARC) to said destination computing device and receiving by said destination computing device said additive result cryptotext multivector (ARC) sent by said intermediary computing system further comprise:
converting by said intermediary computing system said additive result cryptotext multivector (ARC) into corresponding additive result cryptotext numeric data (ARC) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to said destination computing device and said intermediary computing system; sending by said intermediary computing system said additive result cryptotext numeric data (ARC) to said destination computing device;
receiving by said destination computing device said additive result cryptotext numeric data (ARC) sent by said intermediary computing system; and
distributing by said destination computing device said additive result cryptotext numeric data (ARC) into said additive result cryptotext multivector (ARC) in accord with said cryptotext data coefficient distribution algorithm.
24. A method for encrypting a numeric message data value (M) on a source computing device in order to transfer a cryptotext multivector (C) encrypted representation of said numeric message data value (M) to an intermediary computing system that will perform additive liomomorphic summation of said cryptotext multivector (C) and at least one additional cryptotext encrypted data representation of at least one additional numeric message and deliver a result of said liomomorphic summation to a destination computing device, the method comprising:
distributing by said source computing device said numeric message data value (M) into coefficients of a message multivector (M) in accord with a liomomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing said unencrypted numeric data value that is known to said source computing device and said destination computing device;
distributing by said source computing device a shared secret numeric value (Ss) into coefficients of a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to said source computing device and said destination computing device, said shared secret numeric value (Ss) being known or knowable to said source computing device and said destination computing device, but is kept secret from other devices not intended to have access to said numeric message data including said intermediary computing system;
encrypting by said source computing device said cryptotext multivector (C) as an encryption function of at least one Geometric Algebra geometric product operation on said message multivector (M) and said shared secret multivector (Ss); and
sending by said source computing device said cryptotext multivector (C) to said intermediary computing system.
25. A method for performing additive homomorphic summation on an intermediary computer system of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values received from at least one source computing device and delivering an additive result cryptotext multivector (ARC), the method comprising:
receiving by said intermediary computing system said at least two cryptotext multivectors (Cn) sent by said at least one source computing device;
summing by said intermediary computing system using vector summation said at least two cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); and
sending by said intermediary computing system said additive result cryptotext multivector (ARC) to said destination computing device.
26. A method for decrypting an additive result cryptotext multivector (ARC) on a destination computing device received from an intermediary computing system that performed additive homomorphic summation of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values originated from at least one source computing device, the method comprising:
receiving by said destination computing device said additive result cryptotext multivector (ARC) sent by said intermediary computing system;
distributing by said source computing device a shared secret numeric value (Ss) into a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to said at least one source computing device and said destination computing device, said shared secret numeric value (Ss) being known or knowable to said at least one source computing device and said destination computing device, but is kept secret from other devices not intended to have access to said numeric message data including said intermediary computing system;
decrypting by said destination computing device said additive result cryptotext multivector (ARC) as a decryption function of at least one Geometric Algebra geometric product operation on said additive result cryptotext multivector (ARC) and an inverse (Ss 1) of said shared secret multivector (Ss) into an additive result multivector (AR) such that said decryption function provides a corresponding decryption operation for an encryption process of said at least two cryptotext multivectors (Cn); and
converting by said destination computing device said additive result multivector (AR) into an additive result data value (AR) in accord with said homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing said unencrypted numeric data value that is known to said source computing device and said destination computing device such that said additive result data value (AR) is equal to a sum of said at least two corresponding plain text numeric data values corresponding to said at least two cryptotext multivectors (Cn) such that said sum of said at least two corresponding plain text data values is performed with corresponding mathematical operations as said additive homomorphic summation of said at least two cryptotext multivectors
27. An additive homomorphic Enhanced Data-Centric Encryption (EDGE) system for
additive homomorphic summation of at least two cryptotext encrypted data
representations of at least two corresponding plain text data values, the additive homomorphic EDGE system comprising:
a first source computing device, wherein said first source computing device further comprises:
a first source numeric message distribution subsystem that distributes a first numeric message data value (Mx) into coefficients of a first message multivector (Μχ) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing said unencrypted numeric data value that is known to said first source computing device, at least one additional source computing device, and a destination computing device;
a first source numeric shared secret distribution subsystem that distributes a shared secret numeric value (Ss) into coefficients of a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to said first source computing device, said at least one additional source computing device, and said destination computing device, such that said shared secret numeric value (Ss) is known or knowable to said first source computing device, said at least one additional source computing device, and said destination computing device, but is kept secret from other devices not intended to have access to said numeric message data including an intermediary computing system; a first source encryption subsystem that encrypts a first cryptotext multi vector ( x) as an encryption function of at least one Geometric Algebra geometric product operation on said first message multivector ( -L) and said shared secret multivector (Ss); and
a first source send subsystem that sends said first cryptotext multivector (C^) to said intermediary computing system;
said at least one additional source computing device, wherein said at least one additional source computing device further comprises:
an additional source numeric message distribution subsystem that distributes at least one corresponding additional numeric message data value ( N) into coefficients of at least one corresponding additional message multivector (Mn) in accord with said homomorphic preserving mathematical relationship;
an additional source numeric shared secret distribution subsystem that distributes said shared secret numeric value (Ss) into said shared secret multivector (Ss) in accord with said shared secret coefficient distribution algorithm;
an additional source encryption subsystem that encrypts at least one corresponding additional cryptotext multivector (Cn) as said encryption function of at least one Geometric Algebra geometric product operation on said at least one corresponding additional message multivector (MN) and said shared secret multivector (¾) such that said encryption function matches said encryption function of said first cryptotext multivector ((¾; and
an additional source send subsystem that sends said at least one corresponding additional cryptotext multivector (Cn) to said intermediary computing system;
said intermediary computing system, wherein said intermediary computing system further comprises: an intermediary receive subsystem that receives said first cryptotext multivector (Cx) sent by said first source computing device and said at least one additional cryptotext multivector (Cn) sent by said corresponding at least one additional source computing device;
an intermediary homomorphic summation subsystem that sums using vector summation said first cryptotext multivector ( ) and said at least one additional cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); and
an intermeidary send subsystem that sends said additive result cryptotext multivector (ARC) to said destination computing device; and said destination computing device, wherein said destination computing device further comprises:
a destination receive subsystem that receives said additive result cryptotext multivector (ARC) sent by said intermediary computing system; a destination numeric shared secret distribution subsystem that distributes said shared secret numeric value (Ss) into said shared secret multivector (Ss) in accord with said shared secret coefficient distribution algorithm;
a destination decryption subsystem that decrypts said additive result cryptotext multivector (ARC) as a decryption function of at least one
Geometric Algebra geometric product operation on said additive result — i
cryptotext multivector (ARC) and an inverse (Ss ) of said shared secret multivector (Ss) into an additive result multivector (AR) such that said decryption function provides a corresponding decryption operation for said encryption process of said first cryptotext multivector ( ) and said at least one additional cryptotext multivector (Cn); and
a destination convert multivector subsystem that converts said additive result multivector (AR) into an additive result data value (AR) in accord with said homomorphic preserving mathematical relationship such that said additive result data value (AR) is equal to a sum of said unencrypted first numeric message data value (Mx) and said unencrypted at least one additional numeric message data value (Mn) such that said sum of said unencrypted first numeric message data value (Mx) and said unencrypted at least one additional numeric message data value (Mn) is performed with corresponding mathematical operations as said process of summing of said first, cryptotext multivector (Cx) and said at least one additional cryptotext multivector (Cn).
28. The additive homomorphic EDCE system of claim 27 wherein said homomorphic
preserving mathematical relationship between said unencrypted numeric data value and said multivector coefficients representing said unencrypted numeric data ensures that a result of mathematical operations defined by said homomorphic preserving mathematical relationship on said multivector coefficients representing said unencrypted numeric data value is equal to said unencrypted numeric data value.
29. The additive homomorphic EDCE system of claim 28 wherein said mathematical
operations defined by said homomorphic preserving mathematical relationship are comprised o at least one of a group chosen from: addition of at least one coefficient of said multivector coefficients, subtraction of at least one coefficient of said multivector coefficients, addition of a constant value, subtraction of a constant value, multiplication of at least one coefficient of said multivector coefficients by a constant value, and division of at least one coefficient of said multivector coefficients by a constant value.
30. The additive homomorphic EDCE system of claim 28 wherein said mathematical
operations defined by said homomorphic preserving mathematical relationship incorporate at least one coefficient value of said multivector coefficients such that said mathematical operations defined by said homomorphic preserving mathematical relationship is comprised of one of a group chosen from: said mathematical operations defined by said homomorphic preserving mathematical relationship incorporate all coefficient values of said multivector coefficients, said mathematical operations defined by said homomorphic preserving mathematical relationship incorporate fewer than all but more than one coefficient values of said multivector coefficients, and said mathematical operations defined by said homomorphic preserving mathematical relationship incorporate, one coefficient value of said multivector coefficients.
31. The additive homomorphic EDGE system of claim 27 wherein said first numeric message data value (Mx), said at least one additional numeric message data value (Mn), and said additive result data value (AR) are numeric values comprised of at least one of a group chosen from: positive numbers, negative numbers, zero, integer numbers, rational numbers, and real numbers.
32. The additive homomorphic EDGE system of claim 27 wherein numeric values of said coefficients of said first message multivector (MjJ, said coefficients of said at least one corresponding additional message multivector (Mn), and said coefficients of said additive result multivector (AR) are comprised of at least one of a group chosen from: positive numbers, negative numbers, zero, integer numbers, rational numbers, and real numbers.
33. The additive homomorphic EDCE system of claim 27 wherein vector summation is
comprised of at least one of a group of vector operations chosen from: vector addition, and vector subtraction.
34. The additive homomorphic EDCE system of claim 27 wherein said intermediary
homomorphic summation subsystem that sums using vector summation said first cryptotext multivector (Ct) and said at least one additional cryptotext multivector (Cn) in order to obtain said additive result cryptotext multivector (ARC) supports an unlimited number of at least one additional cryptotext multivectors (Cn) in said process of summing using vector summation.
35. The additive homomorph ic EDCE system of claim 27:
wherein said first source numeric message distribution subsystem that distributes said first numeric message data value (Mx) into coefficients of said first message multivector (Mi) further ensures that not all coefficients of said first message multivector (Mx) are equal to each other;
wherein said additional source numeric message distribution subsystem that distributes said at least one additional numeric message data value (Mn) into coefficients of at least one corresponding additional message multivector (Mn) further ensures that not al l coefficients of said at least one additional message multivector (Mn) are equal to each other; and wherein said shared secret coefficient distribution algorithm further ensures that not all coefficients of said shared secret multivector (Ss) are equal to each other.
36. The additive homomorphic EDGE system of claim 27 wherein said first source
computing device separately incorporates subsystems of at least one of a group chosen from: said at least one additional source computing device, said intermediary computing system, and said destination computing device.
37. The additive homomorphic EDCE system of claim 27 wherein said at least one additional source computing device separately incorporates subsystems of at least one of a group chosen from: said source computing device, said intermediary computing system, and said destination computing device.
38. The additive homomorphic EDCE system of claim 27 wherein said intermediary
computing system separately incorporates subsystems of at least one of a group chosen from: said source computing device, said at least one additional source computing device, and said destination computing device.
39. The additive homomorphic EDCE system of claim 27 wherein said destination computing system separately incorporates subsystems of at least one of a group chosen from: said source computing device, said at least one additional source computing device, and said intermediary computing system.
40. The additive homomorphic EDCE system of claim 27 wherein evaluation of Geometric Algebra geometric products and inverses of multivectors is implemented on said first source computing device, said at least one additional source computing device, and said destination computing device using basic arithmetic operations of addition, subtraction, multiplication, and division.
41 . The additive homomorphic EDCE system of claim 40 wherein said implementation of said Geometric Algebra geometric products and inverses of multivectors on said first source computing device, said at least one additional source computing device, and said destination computing device does not include a complex operation to select a prime
1 1 number, to calculate a logarithm function, and/or to calculate a natural logarithm function.
42. The additive homomorphic EDCE system of claim 27 further comprising establishing said shared secret numeric value (Ss) between said first source computing device, said at least one additional source computing device, and said destination computing device using a known shared secret technique.
43. The additive homomorphic EDCE system of claim 42 wherein said known shared secret technique is comprised of at least one of a group chosen from: pre-conditioning said first source computing device, said at least one additional source computing device, and said destination computing device with said shared secret numeric value (5S); standard public/private key exchange technique; RSA (Rivest-Shamir-Adleman) key exchange, and Diffie-Hellman key exchange.
44. The additive homomorphic EDCE system of claim 27 wherein said encryption function of at least one Geometric Algebra geometric product operation and said decryption function of at least one Geometric Algebra geometric product operation is comprised of at least one of a group chosen from: a geometric product (C = MSS) of a message multivector
(M) and said shared secret multivector (Ss) to encrypt and a geometric product (AR =
—i
ARCSS ) of said additive result cryptotext multivector (ARC) and said inverse (Ss ) of said shared secret multivector (Ss) to decrypt; geometric product "sandwich" (C = SSMSS to encrypt and AR = Ss 1ARCSS 1 to decrypt); and multivector based Sylvester's e uation (C = SSM + MSS to encrypt and AR = (ss + Ss + Ss 1SSSS +
Figure imgf000114_0001
The additive homomorphic EDCE system of claim 27:
wherein said first source computing device further comprises:
a first source second shared secret key generation subsystem that generates a second shared secret key (5S ) as a scalar result of a 0-Blade Reduction Operation of said shared secret multivector (¾); and a first source second numeric shared secret distribution subsystem that distributes said second shared secret key (Ss ) into coefficients of a second shared secret multivector (¾2) in accord with a second shared secret coefficient distribution algorithm that is known to said first source computing device, said at least one additional source computing device, and said destination computing device;
wherein said first source encryption subsystem further encrypts said first cryptotext multivector ((¾ as a function of Geometric Algebra geometric product operations on a message multivector (M), said shared secret multivector (Ss), and said second shared secret multivector (¾);
wherein said at least one additional source computing device further comprises:
an additional source second shared secret key generation subsystem that generates said second shared secret key (SS2) as a scalar result of a 0- Blade Reduction Operation of said shared secret multivector (Ss); and an additional source second numeric shared secret distribution subsystem that distributes said second shared secret key (SSl) into said second shared secret multivector (¾2 ) in accord with a second shared secret coefficient distribution algorithm;
wherein said additional source encryption subsystem further encrypts said at least one corresponding additional cryptotext multivector (Cn) as a function of Geometric Algebra geometric product operations on said at least one corresponding additional message multivector (Mn), said shared secret multivector (Ss), and said second shared secret multivector (SS2) such that said encryption function of said at least one corresponding additional cryptotext multivector (Cn) matches said encryption function of said first cryptotext multivector (CjJ;
wherein said destination computing device further comprises:
a destination second shared secret key generation subsystem that generates said second shared secret key (Sc2) as a scalar result of said 0- Blade Reduction Operation of said shared secret multivector (Ss); and a destination second numeric shared secret distribution subsystem that distributes said second shared secret key (SS2) into said second shared secret multivector (¾.) in accord with said second shared secret coefficient distribution algorithm; and
wherein said destination decryption subsystem further decrypts said additive result cryptotext multivector (ARC) as a function of Geometric Algebra geometric product operations on said additive result cryptotext multivector (ARC), an inverse (Ss ±) of said shared secret multivector (Ss), and an inverse (5c2 1) of said second shared secret multivector (SSl) into said additive result multivector (AR) such that said decryption function provides a corresponding decryption operation for said encryption process of said first cryptotext multivector (Cx) and said at least one additional cryptotext multivector (Cn).
46. The additive homomorphic EDGE system of claim 45 wherein said 0-Blade Reduction Operation is a geometric product (SS2 = (.SSSS) SSSS)^) of a geometric product (SSSS) of said shared secret multivector (Ss) and a Clifford conjugate (5c) of said shared secret multivector (Ss) and a geometric reverse ((5c5s)) of said geometric product (555s) of said shared secret multivector (Ss) and said Clifford conjugate Ss) of said shared secret multivector (5c).
47. The additive homomorphic EDGE system of claim 45 wherein said Geometric Algebra geometric product operations are comprised of at least one of a group chosen from: geometric product "sandwich" (C = SSMSS2 to encrypt and AR— Ss 1 A RCSS.: 1 to decrypt); and multivector based Sylvester's equation (C = SSM + MSSl to encrypt and
AR = (¾ + ¾ + S _ 1¾2¾ + Ss) (Ss^ ARCSs., + ARC) to decrypt).
48. The additive homomorphic EDGE system of claim 27:
wherein said first source send subsystem further converts said first cryptotext multivector ((¾ into first cryptotext numeric data (Cx) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to said first source computing device, said at least one additional source computing device, and said intermediary computing system, then sends said first cryptotext numeric data (C-L) to said intermediary computing system; wherein said additional source send subsystem further converts said at least one corresponding additional cryptotext multivector (Cn) into at least one corresponding additional cryptotext numeric data (Cn) in accord with reverse operation of said cryptotext data coefficient distribution algorithm, then sends said at least one corresponding additional cryptotext numeric data (Cn) to said intermediary computing system; and
wherein said an intermediary receive subsystem further receives said first cryptotext numeric data (Ct) sent by said first source computing device and said at least one additional cryptotext numeric data (Cn) sent by said corresponding at least one additional source computing device, then distributes said first cryptotext numeric data (C-L) into said first cryptotext multivector (CX ) and said at least one additional cryptotext numeric data (Cn) into said at least one corresponding additional cryptotext multivector (Cn) each in accord with said cryptotext data coefficient distribution algorithm.
49. The additive homomorphic EDGE system of claim 27:
wherein said an intermediary send subsystem further converts said additive result cryptotext multivector (ARC) into corresponding additive result cryptotext numeric data (ARC) in accord with reverse operation of a cryptotext data coefficient distribution algorithm that is known to said destination computing device and said intermediary computing system, then sends said additive result cryptotext numeric data (ARC) to said destination computing device; and
wherein said an destination recieve subsystem further receives said additive result cryptotext numeric data (ARC) sent by said intermediary computing system, then distributes said additive result cryptotext numeric data (ARC) into said additive result cryptotext multivector (ARC) in accord with said cryptotext data coefficient distribution algorithm.
50. An additive homomorphic Enhanced Data-Centric Encryption (EDCE) source computing device for encrypting a numeric message data value (M) in order to transfer a cryptotext multivector (C) encrypted representation of said numeric message data value (M) to an intermediary computing system that will perform additive homomorphic summation of said cryptotext multivector (C) and at least one additional cryptotext encrypted data representation of at least one additional numeric message and deliver a result of said homomorphic summation to a destination computing device, the additive homomorphic EDGE source computing device comprising:
a source numeric message distribution subsystem that distributes said numeric message data value (M) into coefficients of a message muitivector (M) in accord with a homomorphic preserving mathematical relationship between an unencrypted numeric data value and muitivector coefficients representing said unencrypted numeric data value that is known to said source computing device and said destination computing device;
a source numeric shared secret distribution subsystem that distributes a shared secret numeric value (Ss) into coefficients of a shared secret muitivector (S5) in accord with a shared secret coefficient distribution algorithm that is known to said source computing device and said destination computing device, said shared secret numeric value (Ss) being known or knowable to said source computing device and said destination computing device, but is kept secret from other devices not intended to have access to said numeric message data including said intermediary computing system;
a source encryption subsystem that enciypts said cryptotext muitivector (C) as an encryption function of at least one Geometric Algebra geometric product operation on said message muitivector (M) and said shared secret muitivector (Ss); and
a source send subsystem that sends said cryptotext muitivector (C) to said intermediary computing system. An additive homomorphic Enhanced Data-Centric Encryption (EDGE) intermediary computing system for performing additive homomorphic summation of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values received from at least one source computing device and del ivering an additive result cryptotext muitivector (ARC), the additive homomorphic EDGE intermediary computing system comprising:
an intermediary receive subsystem that receives said at least two cryptotext multivectors (Cn) sent by said at least one source computing device; an intermediary liomomorphic summation subsystem that sums using vector summation said at least two cryptotext multivector (Cn) in order to obtain an additive result cryptotext multivector (ARC); and
an intermeidary send subsystem that sends said additive result cryptotext multivector (ARC) to said destination computing device.
52. An additive homomorpiiic Enhanced Data-Centric Encryption (EDGE) destination
computing device for decrypting an additive result cryptotext multivector (ARC) received from an intermediary computing system that performed additive liomomorphic summation of at least two cryptotext multivectors (Cn) encrypted data representations of at least two corresponding plain text numeric data values originated from at least one source computing device, the additive liomomorphic EDGE destination computing device comprising:
a destination receive subsystem that receives said additive result cryptotext multivector (ARC) sent by said intermediary computing system;
a destination numeric shared secret distribution subsystem that distributes a shared secret numeric value (Ss) into a shared secret multivector (Ss) in accord with a shared secret coefficient distribution algorithm that is known to said at least one source computing device and said destination computing device, said shared secret numeric value (Ss) being known or knowable to said at least one source computing device and said destination computing device, but is kept secret from other devices not intended to have access to said numeric message data including said intermediary computing system;
a destination decryption subsystem that decrypts said additive result cryptotext multivector (ARC) as a decryption function of at least one Geometric Algebra geometric product operation on said additive result cryptotext multivector (ARC) and an inverse (Ss 1) of said shared secret multivector (Ss) into an additive result multivector (AR) such that said decryption function provides a corresponding decryption operation for an encryption process of said at least two cryptotext multivectors ( n); and
a destination convert multivector subsystem that converts said additive result multivector (AR) into an additive result data value (AR) in accord with said liomomorphic preserving mathematical relationship between an unencrypted numeric data value and multivector coefficients representing said unencrypted numeric data value that is known to said source computing device and said destination computing device such that said additive result data value (AR) is equal to a sum of said at least two corresponding plain text numeric data values corresponding to said at least two cryptotext multivectors (Cn) such that said sum of said at least two corresponding plain text data values is performed with corresponding mathematical operations as said additive homomorphic summation of said at least two cryptotext multivectors
(4)·
PCT/US2018/016000 2017-01-30 2018-01-30 Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra WO2018140961A1 (en)

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201762452246P 2017-01-30 2017-01-30
US62/452,246 2017-01-30
US201762483227P 2017-04-07 2017-04-07
US62/483,227 2017-04-07
US15/667,325 US10728227B2 (en) 2016-08-02 2017-08-02 Methods and systems for enhanced data-centric encryption systems using geometric algebra
US15/667,325 2017-08-02
US201762572970P 2017-10-16 2017-10-16
US201762572955P 2017-10-16 2017-10-16
US62/572,970 2017-10-16
US62/572,955 2017-10-16

Publications (1)

Publication Number Publication Date
WO2018140961A1 true WO2018140961A1 (en) 2018-08-02

Family

ID=62979708

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/016000 WO2018140961A1 (en) 2017-01-30 2018-01-30 Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra

Country Status (1)

Country Link
WO (1) WO2018140961A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179489A1 (en) * 2001-06-22 2006-08-10 Joan-Maria Mas Ribes Conditional access system for digital data by key decryption and re-encryption
US20150170197A1 (en) * 2013-12-18 2015-06-18 Ned M. Smith Technologies for collecting advertising statistics in a privacy sensitive manner
US20150295712A1 (en) * 2012-10-30 2015-10-15 Nederlandse Organisatie Voor Toegepast- Natuurwetenschappelijk Onderzoek Tno Method and system for protected exchange of data
US20150381348A1 (en) * 2014-06-30 2015-12-31 Fujitsu Limited Encryption processing method, encryption processing device, and computer-readable recording medium storing program for encryption processing
US20160119119A1 (en) * 2014-05-15 2016-04-28 Xeror Corporation Compact fuzzy private matching using a fully-homomorphic encryption scheme

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060179489A1 (en) * 2001-06-22 2006-08-10 Joan-Maria Mas Ribes Conditional access system for digital data by key decryption and re-encryption
US20150295712A1 (en) * 2012-10-30 2015-10-15 Nederlandse Organisatie Voor Toegepast- Natuurwetenschappelijk Onderzoek Tno Method and system for protected exchange of data
US20150170197A1 (en) * 2013-12-18 2015-06-18 Ned M. Smith Technologies for collecting advertising statistics in a privacy sensitive manner
US20160119119A1 (en) * 2014-05-15 2016-04-28 Xeror Corporation Compact fuzzy private matching using a fully-homomorphic encryption scheme
US20150381348A1 (en) * 2014-06-30 2015-12-31 Fujitsu Limited Encryption processing method, encryption processing device, and computer-readable recording medium storing program for encryption processing

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WANG ET AL.: "Discrete logarithm based additively homomorphic encryption and secure data aggregation", INFORMATION SCIENCCS: AN INTERNATIONAL JOURNAL, vol. 181, no. 16, August 2011 (2011-08-01), XP028214508, Retrieved from the Internet <URL:https://dl.acm.org/citation.cfm?id=1988502> [retrieved on 20180327] *

Similar Documents

Publication Publication Date Title
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
Albrecht et al. Homomorphic encryption standard
US20190109701A1 (en) Methods and systems for enhanced data-centric homomorphic encryption sorting using geometric algebra
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
US9942040B1 (en) Refreshing public parameters in lattice-based cryptographic protocols
EP3494663B1 (en) Methods and systems for enhanced data-centric encryption systems using geometric algebra
US20180294951A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
US10103886B1 (en) Generating shared secrets for lattice-based cryptographic protocols
Folkerts et al. REDsec: Running encrypted discretized neural networks in seconds
Son et al. Conditional proxy re-encryption for secure big data group sharing in cloud environment
CN115549891B (en) Homomorphic encryption method, homomorphic decryption method, homomorphic calculation method and equipment
Sasikumar et al. Comprehensive review and analysis of cryptography techniques in cloud computing
Priyadharshini et al. Efficient Key Management System Based Lightweight Devices in IoT.
WO2019079353A2 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
KR20220079522A (en) Methods and systems for encryption using geometric algebra and Hansel codes and isomorphic encryption systems
Gorbenko et al. Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form
Fatima et al. A Secure Framework for IoT Healthcare Data Using Hybrid Encryption
Imam et al. An empirical study of secure and complex variants of RSA scheme
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
Negi et al. A Hybrid Cryptographic Approach for Secure Cloud-Based File Storage
WO2018187604A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
WO2018140961A1 (en) Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra
WO2022006483A1 (en) Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra
Raja et al. Secure and efficient text encryption using elliptic curve cryptography
Verma et al. An enhanced cryptographic system for fast and efficient data transmission

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18744810

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18744810

Country of ref document: EP

Kind code of ref document: A1

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载