CN106452723A - Fully homomorphic encryption processing method based on modular operation - Google Patents
Fully homomorphic encryption processing method based on modular operation Download PDFInfo
- Publication number
- CN106452723A CN106452723A CN201611145127.8A CN201611145127A CN106452723A CN 106452723 A CN106452723 A CN 106452723A CN 201611145127 A CN201611145127 A CN 201611145127A CN 106452723 A CN106452723 A CN 106452723A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- plaintext
- result
- encryption
- processing method
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
The invention discloses a fully homomorphic encryption processing method based on modular arithmetic, which comprises the following steps: the method comprises the steps of obtaining a plaintext of any numerical data type in the encryption process, converting the plaintext into a corresponding carry-over plaintext according to encryption requirements, carrying out encryption operation on each number in the carry-over plaintext, combining ciphertexts obtained through the encryption operation to obtain a corresponding cipher text combination, carrying out addition, subtraction, multiplication and division on the cipher text combination by adopting a cipher text original code, a cipher text inverse code and a cipher text complement code based on modular encryption, and decrypting an obtained cipher text operation result by utilizing modular division to obtain a decrypted plaintext. The invention can solve the technical problems that in the existing full homomorphic encryption processing method based on modular operation, because the ciphertext multiplication noise is difficult to control, and when the result of ciphertext addition is equal to the carry system, the result of ciphertext summation is wrong in the decryption process, so that the encryption result can not be correctly decrypted.
Description
Technical field
The invention belongs to information security field, more particularly, to a kind of full homomorphic cryptography process side based on modular arithmetic
Method.
Background technology
Full homomorphic cryptography, as a kind of forward position and advanced AES, has gone through the development close to 40 years.1978
Year, R.Rivest et al. proposes the concept of " full homomorphic cryptography ", and C.Gentry devises in theory based on ideal lattice within 2009
Full homomorphic encryption scheme, he has also been proposed " somewhat " homomorphic encryption scheme within 2010, and Brakerski in 2011 et al. carries
Go out based on the fault-tolerant problem concerning study (Ring in fault-tolerant problem concerning study (Learning with errors, abbreviation LWE) and ring
Learning with errors, abbreviation RLWE) construct a kind of full homomorphic encryption scheme being independent of ideal lattice.
However, based on the full homomorphic cryptography processing method of modular arithmetic, existing all have that some be can not ignore:First
First, it has the unmanageable problem of ciphertext multiplication noise in ciphering process, leads to encrypted result cannot be properly decrypt;
Secondly as when plaintext summed result is equal to system, the result of its ciphertext summation will necessarily malfunction in decrypting process, thus can
Lead to encrypted result cannot be properly decrypt.
Content of the invention
Disadvantages described above for prior art or Improvement requirement, the invention provides a kind of added based on the full homomorphism of modular arithmetic
Close processing method, it is intended that solve existing based in the full homomorphic cryptography processing method of modular arithmetic, due to ciphertext multiplication
Noise is difficult to control to, and the result that when result of ciphertext addition is equal to system, ciphertext is sued for peace malfunctions in decrypting process and led to
The technical problem that cannot be properly decrypt of encrypted result.
For achieving the above object, according to one aspect of the present invention, there is provided a kind of full homomorphic cryptography based on modular arithmetic
Processing method, comprises the following steps:
(1) obtain the plaintext of any number data type in ciphering process, and be converted into correspondence according to encryption needs
System position in plain text;
(2) computing is encrypted to each number in the system position plaintext obtaining in step (1), cryptographic calculation is obtained
Ciphertext is combined, thus obtaining corresponding ciphertext combination;
(3) the ciphertext combination using the ciphertext true form based on mould encryption, ciphertext radix-minus-one complement and ciphertext complement code, step (2) being obtained
Carry out ciphertext computing;
(4) it is decrypted using the ciphertext operation result that mould division obtains to step (3), to obtain the plaintext after deciphering.
Preferably, in step (2), cryptographic calculation is to adopt below equation:
C=(m+s*r+p*r) mod x0
Wherein c represents ciphertext, and m represents the system position in plaintext, and s represents the system employed in encryption, and r represents random
Number, p is encryption key, x0It is an intermediate variable, it is equal to the product of encryption key p and another encryption key q, described close
Key all not external disclosures.
Preferably, step (4) specifically adopts below equation:(c mod p)mod s.
Preferably, in step (3), for ciphertext additive operation, directly two ciphertext combinations are carried out para-position summation operation.
Preferably, in step (3), for ciphertext subtraction, the radix-minus-one complement of the ciphertext combination of subtrahend, Ran Hougen are obtained first
Obtain corresponding complement code according to this radix-minus-one complement, finally the true form that this complement code is combined with the ciphertext of minuend is carried out para-position summation operation.
Preferably, in step (3), for ciphertext multiplying, first c is combined according to ciphertext1And c2Number n of middle element
Create the matrix of a n* (2n-1), the dextrosinistral element of the first row of this matrix is respectively:c1Middle rightmost side element and c2In
The product of rightmost side element, c1Middle right side penultimate element and c2The product of middle rightmost side element, by that analogy, c1A middle left side
Side first element and c2The product of middle rightmost side element;The dextrosinistral element of second row of this matrix is respectively:10, c1
Middle rightmost side element and c2The product of middle right side penultimate element, c1Middle right side penultimate element and c2Middle right side is fallen
The product of second element of number, by that analogy, c1First element in middle left side and c2The taking advantage of of middle right side penultimate element
Long-pending;... the dextrosinistral element of line n of this matrix is respectively:(n-1) individual 0, c1Middle rightmost side element and c2First, middle left side
The product of element, c1Middle right side penultimate element and c2The product of first element in middle left side, by that analogy, c1Middle left side
First element and c2The product of first element in middle left side, then, each column of the matrix of structure is sued for peace, thus obtaining
One new row vector, takes this row vector as the result of ciphertext multiplying, finally, takes this row vector to transport as ciphertext multiplication
The result calculated.
Preferably, in step (3), for ciphertext division arithmetic, it includes following sub-step:
(3-4-1) create the storage format of empty division arithmetic result, the total length of this storage format is 32,64 or
80, and include sign bit, integer-bit and decimal place, and according to this storage format, binary digit plaintext is extended;
(3-4-2) algorithm according to step (2) is encrypted computing to the binary digit plaintext after extension, by cryptographic calculation
Result is combined, thus obtaining corresponding ciphertext respectively as dividend and divisor;
(3-4-3) 1 ciphertext with obtaining in step (2) is multiplied by the ciphertext as divisor;
(3-4-4) initial value of setting decimal digit counter count is equal to the length-L of storage format, and wherein L is storage
The length of integer-bit in form;
(3-4-5) judge whether the ciphertext of dividend is more than the ciphertext of divisor, if greater than going to step (3-4-6), otherwise
Go to step (3-4-7);
(3-4-6) complement code of the divisor ciphertext in the ciphertext of dividend and step (3-4-3) is done addition, obtain remainder and make
For new dividend, and do addition in integer-bit with 1 ciphertext, that is, that obtain is ciphertext business, and return to step (3-4-5);
(3-4-7) judge that the ciphertext whether all zero of remainder or decimal digit counter count are more than the total of storage format
Length, if it is not, then go to step (3-4-8);If it is, ciphertext division arithmetic terminates, and proceed to step (3-4-13), with
Obtain ciphertext division arithmetic result;
(3-4-8) rightmost in remainder ciphertext adds 0 ciphertext, obtains new remainder ciphertext, and goes to step (3-4-
9);
(3-4-9) judge that step (3-4-8) obtains the ciphertext whether new remainder ciphertext is more than divisor, if more than then
Go to step (3-4-10) step, otherwise turn (3-4-11);
(3-4-10) the ciphertext complement code of new remainder ciphertext and divisor is done addition, to obtain new remainder ciphertext again,
The value of count decimal place is set to 1 corresponding ciphertext value simultaneously;
(3-4-11) value of count decimal place is set to 0 corresponding ciphertext value, then goes to step (3-4-12);
(3-4-12) decimal digit counter count is added 1, be then back to step (3-4-7);
(3-4-13) integer part and the fractional part of business is obtained according to the ciphertext value obtaining, and by step (3-4-1)
Storage format deposited.
Preferably, the integer part of business is equal to:
xL*20+xL-1*21+…+x1*2L-1, wherein x represents the ciphertext value in integer part;
The fractional part of business is equal to:
y1*2-1+y2*2-2+…+yTotal length-the L of storage format*2Total length-the L of storage format, wherein y represents the ciphertext value in fractional part.
Preferably, step (3-4-5) is specifically, judge the ciphertext of dividend whether more than the ciphertext of divisor, be from a left side to
Once whether each being judged in the way of traveling through in dividend right is more than or equal to the corresponding position in divisor, if had wherein
One corresponding position being less than in divisor is not then it represents that the ciphertext of dividend is greater than the ciphertext of divisor.
Preferably, in ciphertext additive operation, first by ciphertext each according to deciphering formula (ciphertext mod p) mod
S obtains corresponding plaintext, and the plaintext obtaining step-by-step is carried out summation addition, the value obtaining after next judging each summation
Whether it is equal to system, if equal to then it represents that occurring in that carry, now returning carry value, and returning the result sued for peace in ciphertext position,
And Jia 1 in a upper summation process of this ciphertext position;If it is not, then representing, carry does not occur, now return into
Place value and the result of ciphertext position summation, and Jia 0 in a upper summation process of this ciphertext position.
In general, by the contemplated above technical scheme of the present invention compared with prior art, can obtain down and show
Beneficial effect:
(1) present invention can solve the problem that in existing method because the encrypted result that ciphertext multiplication noise is difficult to control to lead to cannot
The technical problem being properly decrypt:Due to present invention employs the brush of the carry mechanism in ciphering process and cryptogram computation result
Newly, the noise problem occurring during can solve the problem that full homomorphic cryptography.
(2), when the present invention can solve the problem that the result of ciphertext addition in existing method is equal to system, the result of ciphertext summation exists
The technical problem that the led to encrypted result that malfunctions in decrypting process cannot be properly decrypt:Encrypted due to present invention employs
Carry mechanism in journey, this mechanism is by judging whether ciphertext summed result determines the need for carrying out carry behaviour equal to system
Make, thus solving the problems, such as that ciphertext addition malfunctions.
(3) present invention is encrypted by mould ciphertext true form, ciphertext radix-minus-one complement and ciphertext complement code, are capable of arbitrary data ciphertext
Between addition subtraction multiplication and division computing, thus having further expanded the application scenarios of the present invention, and improve application scenarios cryptogram computation
During Information Security.
Brief description
Fig. 1 is the flow chart based on the full homomorphic cryptography processing method of modular arithmetic for the present invention.
Fig. 2 is the flow chart executing ciphertext division calculation process in the inventive method.
Specific embodiment
In order that the objects, technical solutions and advantages of the present invention become more apparent, below in conjunction with drawings and Examples, right
The present invention is further elaborated.It should be appreciated that specific embodiment described herein is only in order to explain the present invention, and
It is not used in the restriction present invention.As long as additionally, involved technical characteristic in each embodiment of invention described below
The conflict of not constituting each other just can be mutually combined.
System position:The quantity of position according to determined by system, for example:Binary system is exactly 1, and octal system is exactly 3, and 16 enter
System is exactly 4, and 32 systems are exactly 5, and 64 systems are exactly 6, and 128 systems are exactly 7.
The method of the present invention achieves all data using the ciphertext true form encrypted based on mould, ciphertext radix-minus-one complement and ciphertext complement code
The encryption of type, deciphering and cryptogram computation.The method achieves arithmetical operation, relation fortune by constructing circuit function refreshing ciphertext
Calculate and logical operationss cryptogram computation, wherein arithmetical operation include adding, subtract, multiplication and division (+,-, *, /), relational calculus includes being less than,
Be less than or equal to, be more than, being more than or equal to, being equal to and being not equal to (<,≤,>, >=,=, ≠), logical operationss include with or and non-
(and, or, not) etc. operates.
A kind of based on the full homomorphic cryptography processing method of modular arithmetic include data represent, key generation, AES, solution
Close algorithm and ciphertext computing (Ciphertext Operation, abbreviation CO).
Data represents:The type (Type) specifying civilian m is T, and the collection of T is combined into { integer, real number, character, date, Boolean type }
Deng it is known that plaintext ms, wherein:S represents data system (System), i.e. binary system, decimal scale, hexadecimal, 521 systems etc.
Deng being denoted as (T, ms);For example:S=2 represents binary system, and binary system is generally represented with B, and plaintext m is expressed as binary digit mB, it is denoted as
(T, mB);S=16 represents hexadecimal, and hexadecimal is generally represented with H, and plaintext m is expressed as hex bit mH, be denoted as (T,
mH);S=512 represents 512 systems, and plaintext m is expressed as 512 system position m512, it is denoted as (T, m512) etc..
Key generates (KeyGen):Select a big odd number p, calculate x0=q0* p+s*r, x0Must be an odd number, no
Then recalculate.Random generation τ number, calculates xi=qi* p+s*r, wherein:0≤i≤τ, qi< < q0, r be random number.For
The public key of asymmetric arithmetic is pk=(x0, x1..., xi... xτ), private key is p;Key for symmetry algorithm is (x0, p).For
Clearly the arthmetic statement of expression encryption, deciphering and cryptogram computation introduces working key Wkey(pk, p).
AES (Enc):The working key W being generated by KeyGenkey, for an arbitrary number m encryption.M is changed
Become binary system mBIt is expressed as B, B=(b1, b2..., bi..., bn), bi∈ { 0,1 }, 1≤i≤n, c=Enc (Wkey, B), c is to adopt to add
Close algorithm f obtains c=(c1, c2..., ci..., cn),
Wherein:R is random number.
Decipherment algorithm (Dec):The working key W being generated by KeyGenkey, to ciphertext data c inputting, b '=Dec
(Wkey, ci), b ' is to obtain b '=(b using decipherment algorithm f '1', b2' ..., bi' ..., bn'), wherein:B '=f ' (Wkey, ci)
=(ciMod p) mod s, 1≤i≤n, s system b ' is converted into plaintext m.
Ciphertext computing (CO):The working key W being generated by KeyGenkey, for two ciphertext data c of input1、c2, c '
=CO (Wkey, c1O c2), c ' is the ciphertext operation function f using construction " it is calculated c '=(c1', c2' ..., ci' ...,
cn’)
ci'=f " (Wkey, c1i’O c2i’)
Wherein:1≤i≤n, O ∈+,-, * ,/...
Realizing cryptogram computation, its cryptogram computation process is to be derived according to AES f to construction ciphertext operation function f "
Following judgment rule.
Taking s=2 binary system as a example:Assume
c1=m1+2*r1+p*r1mod x0;
c2=m2+2*r2+p*r2mod x0;
C=c1+c2=(m1+m2)+2*r1+p*r1+2*r2+p*r2
=(m1+m2)+2*(r1+r2)+p*(r1+r2)
C=c1*c2=(m1+2*r1+p*r1)(m2+2*r2+p*r2)
=m1*m2+m1*2*r2+m1*p*r2+2*r1*m2+2*r1*2*r2+2*r1*p*r2+p*r1*m2+p*r1*2*r2+p*r1*
p*r2
=m1*m2+2*(m1*r2+m2*r1+2*r1*r2)+p*(m1*r2+4*r1*r2+r1*m2+r1*p*r2)
After ciphertext c mod p, the addition of cryptogram computation and multiplication noise formula are as follows:
C=(c1+c2) mod p=(m1+m2)+2(r1+r2) (1)
C=(c1*c2) mod p=m1*m2+2*(m1*r2+m2*r1+2*r1*r2) (2)
As plaintext (m1=0, m2=0), (m1=0, m2=1), (m1=1, m2=0), (m1=1, m2=1) when:
The cryptogram computation judgment rule of addition is:
C=0+2 (r1+r2);(c mod p) mod 2=0;Deciphering is correct
C=1+2 (r1+r2);(c mod p) mod 2=1;Deciphering is correct
C=1+2 (r1+r2);(c mod p) mod 2=1;Deciphering is correct
C=2+2 (r1+r2);(c mod p) mod 2=0;Decryption error
The cryptogram computation judgment rule of multiplication is:
C=0+4r1r2;(c mod p) mod 2=0;Deciphering is correct
C=0+2 (r1+2r1r2);(c mod p) mod 2=0;Deciphering is correct
C=0+2 (r2+2r1r2);(c mod p) mod 2=0;Deciphering is correct
C=1+2 (r1+r2+2r1r2);(c mod p) mod 2=1;Deciphering is correct
Analyzed according to above, understand as plaintext (m from noise formula (1)1=1, m2=1), when, obtain during ciphertext additional calculation
Ciphertext result be wrong, that is, decipher when be bound to malfunction.The product understanding two ciphertexts from noise formula (2) makes noise
The rising of exponentially level, once the result after mould p not (- p/s, p/s] in the range of, deciphering is also bound to malfunction.Grasp this
After rule, two circuit functions of construction are as follows.
1st, circuit function f1
Function describes:Binary system cryptogram computation, solves noise problem during cryptogram computation.
|input paramete:Working key Wkey(x0, p), ciphertext c1、c2, operator op.
Output parameter:Return ciphertext c calculating, return into bit-identify flag, 1 expression carry, 0 expression not-carry.
Cryptogram computation step is as follows:
Step 1:Initialization c=0, flag=0.
Step 2:If op goes to step 3 equal to add, otherwise ciphertext multiplication c=c1*c2, go to step 4.
Step 3:Judge two ciphertext ((c1mod p)mod 2)and((c2Mod p) mod 2) whether it is true, if
True ciphertext is added c=c1+c2, flag=1.
Step 4:Return and refresh ciphertext c and enter bit-identify flag.
2nd, circuit function f2
Function describes:Judge binary digit ciphertext size, solve whether to can continue to do subtraction during ciphertext division calculation.
|input paramete:Working key Wkey(x0, p), ciphertext c1、c2.
Output parameter:If c1≥c2, returning result value flag is true, and otherwise flag is false.
Cryptogram computation step is as follows:
Step 1:Initialization flag=is false;
Step 2:Judge two ciphertext ((c1mod p)mod 2)≥((c2Mod p) mod 2) whether it is true, if
True flag=is true.
Step 3:Return the value of flag.
As shown in figure 1, the present invention's is comprised the following steps based on the full homomorphic cryptography processing method of modular arithmetic:
(1) obtain the plaintext of any number data type in ciphering process, and be converted into correspondence according to encryption needs
System position in plain text;For example,
Example 1, two plaintexts are respectively m1=5, m2=3, need to carry out binary digit encryption to it respectively, then two obtaining
System position is respectively 101 and 011 in plain text;
Example 2, two plaintexts are respectively m1=7, m2=3, need to carry out binary digit encryption to it respectively, then two obtaining
System position is respectively 111 and 011 in plain text;
Example 3, two plaintexts are respectively m1=7, m2=2, need to carry out binary digit encryption to it respectively, then two obtaining
System position is respectively 111 and 010 in plain text;
(2) computing is encrypted to each number in the system position plaintext obtaining in step (1), cryptographic calculation is obtained
Ciphertext is combined, thus obtaining corresponding ciphertext combination, cryptographic calculation specifically adopts below equation:
C=(m+s*r+p*r) mod x0
Wherein c represents ciphertext, and m represents the system position in plain text, s represent system employed in encryption (such as binary system,
Then s=2;Hexadecimal, then s=16), r represents random number, and p is encryption key, x0It is an intermediate variable, it is equal to encryption
The product of key p and another encryption key q (wherein p and q is all odd number), above-mentioned key is all externally underground.
For example, it is assumed that working key p=111, q=11, x0=p*q=1221, makes r=1, then two in plain text 5 enter
For number 0 and 1 in the binary digit plaintext 011 of position processed plaintext 101 and in plain text 3, after being calculated using the above-mentioned formula of this step,
Available:
Ciphertext after number 0 encryption is equal to 113;
Ciphertext after number 1 encryption is equal to 114;
For example,
Example 1:5 binary digit plaintext is that the 101 ciphertext combinations after encryption become c in plain text1=(114,113,
114);011 ciphertext after encryption becomes c to 3 binary digit in plain text in plain text2=(113,114,114);
Example 2:7 binary digit plaintext is that the 111 ciphertext combinations after encryption become c in plain text1=(114,114,
114);011 ciphertext after encryption becomes c to 3 binary digit in plain text in plain text2=(113,114,114).
Example 3:7 binary digit plaintext is that the 111 ciphertext combinations after encryption become c in plain text1=(114,114,
114);010 ciphertext after encryption becomes c to 2 binary digit in plain text in plain text2=(113,114,113).
(3) the ciphertext combination using the ciphertext true form based on mould encryption, ciphertext radix-minus-one complement and ciphertext complement code, step (2) being obtained
Carry out ciphertext computing;As shown in Fig. 2 this step specifically includes following sub-step:
(3-1) for ciphertext additive operation, directly two ciphertext combinations are carried out para-position summation operation;
For above example, as:
Example 1:c1+c2=(114,113,114)+(113,114,114);
Example 2:c1+c2=(114,114,114)+(113,114,114);
Example 3:c1+c2=(114,114,114)+(113,114,113);
It is necessary first to each by ciphertext is asked according to deciphering formula (ciphertext mod p) mod s in ciphertext additive operation
Go out corresponding plaintext, and the plaintext obtaining step-by-step carried out summation to be added, the value obtaining after next judging each summation is
No equal to system, if equal to then it represents that occurring in that carry, now returning carry value (i.e. 1), and returning the knot of ciphertext position summation
Really (achieve the refreshing of ciphertext summed result), and Jia 1 in a upper summation process of this ciphertext position;If
In then it represents that carry does not occur, now return carry value (i.e. 0) and the result of ciphertext position summation, and in this ciphertext position
A upper summation process in Jia 0.
In following ciphertext subtraction, multiplication, division arithmetic, the situation of addition carry all can occur, its processing mode with
Above-mentioned carry process is identical, or else repeats below.
Example 1:c1+c2=(114,228,228,228)
Example 2:c1+c2=(114,228,229,228)
Example 3:c1+c2=(114,228,228,227)
It is correct with decipherment algorithm m=(c mod p) mod 2 checking cryptogram computation, for example,
Example 1:Decrypting ciphertext c1+c2Result of calculation:(114,228,228,228)=(1000)=8
Example 2:Decrypting ciphertext c1+c2Result of calculation:(114,228,229,228)=(1010)=10
Example 3:Decrypting ciphertext c1+c2Result of calculation:(114,228,228,227)=(1001)=9
(3-2) for ciphertext subtraction, obtain the radix-minus-one complement of the ciphertext combination of subtrahend first, then obtained according to this radix-minus-one complement
The true form that this complement code is combined with the ciphertext of minuend is finally carried out para-position summation operation by corresponding complement code;
For above example, as:
First, obtain ciphertext combination c2Radix-minus-one complement, its be specifically equal to system quantity-system position -1;
For c2For, its plaintext true form is 011, and first 0 corresponding radix-minus-one complement is 2-0-1=1, and second 1 is corresponding
Radix-minus-one complement is 2-1-1=0, and the 3rd is 2-1-1=0, and therefore its radix-minus-one complement is exactly 100, and corresponding ciphertext radix-minus-one complement is to ciphertext true form
Each add 1.
For example,
Example 1:c2 radix-minus-one complements=(114,115,115);
Example 2:c2 radix-minus-one complements=(114,115,115);
Example 3:c2 radix-minus-one complements=(114,115,114);
Then obtain ciphertext combination c by adding 1 to last position in radix-minus-one complement2Complement code:
Example 1:c2 complement codes=(114,115,116);
Example 2:c2 complement codes=(114,115,116);
Example 3:c2 complement codes=(114,116,115);
Finally by c1True form and c2Complement code do addition, obtain:
Example 1:c1-c2=c1 true form+c2 complement codes=(114,113,114)+(114,115,116)=(228,229,230)
Example 2:c1-c2=c1 true form+c2 complement codes=(114,114,114)+(114,115,116)=(229,230,230)
Example 3:c1-c2=c1 true form+c2 complement codes=(114,114,114)+(114,116,115)=(229,230,229)
It should be noted that carry situation occurs in above-mentioned cryptogram computation process, use decipherment algorithm m=(c below
Mod p) mod 2 checking cryptogram computation be correct, for example,
Example 1:Decrypting ciphertext c1-c2Result of calculation:(228,229,230)=(010)=2;
Example 2:Decrypting ciphertext c1-c2Result of calculation:(229,230,230)=(100)=4;
Example 3:Decrypting ciphertext c1-c2Result of calculation:(229,230,229)=(101)=5;
(3-3) for ciphertext multiplying, first c is combined according to ciphertext1And c2Number n of middle element is (in present embodiment
Middle n=3) create the matrix of a n* (2n-1), the dextrosinistral element of the first row of this matrix is respectively:c1Middle rightmost side unit
Element and c2The product of middle rightmost side element, c1Middle right side penultimate element and c2The product of middle rightmost side element ... c1A middle left side
Side first element and c2The product of middle rightmost side element;The dextrosinistral element of second row of this matrix is respectively:10, c1
Middle rightmost side element and c2The product of middle right side penultimate element, c1Middle right side penultimate element and c2Middle right side is fallen
The product of second element of number ... c1First element in middle left side and c2The product of middle right side penultimate element;... this matrix
The dextrosinistral element of line n be respectively:(n-1) individual 0, c1Middle rightmost side element and c2The product of first element in middle left side,
c1Middle right side penultimate element and c2The product of first element in middle left side ... c1First element in middle left side and c2A middle left side
The product of first element in side.
Then, each column of the matrix of structure being sued for peace, thus obtaining a new row vector, being taken this row vector conduct
The result of ciphertext multiplying.For example,
Example 1:For above-mentioned example, first by c1(114,113,114) and c2(113,114,114) it is multiplied, and according to
The matrix that above rule builds 3 row 5 row is as follows:
Then by every string summation of this matrix, thus obtaining following row vector:
(12882 25765 38770 25878 12996)
Finally, take this row vector as the result of ciphertext multiplying, i.e. c1*c2=(12882,25765,38770,
25878,12996).
Example 2:For above-mentioned example, first by c1(114,114,114) and c2(113,114,114) it is multiplied, and according to
The matrix that above rule builds 3 row 5 row is as follows:
Then by every string summation of this matrix, thus obtaining following row vector:
(12883 25879 38875 25992 12996)
Finally, take this row vector as the result of ciphertext multiplying, i.e. c1*c2=(12883,25879,38875,
25992,12996).
Example 3:For above-mentioned example, first by c1(114,114,114) and c2(113,114,113) it is multiplied, and according to
The matrix that above rule builds 3 row 5 row is as follows:
Then by every string summation of this matrix, thus obtaining following row vector:
(12882 25878 38760 25878 12882)
Finally, take this row vector as the result of ciphertext multiplying, i.e. c1*c2=(12882,25878,38760,
25878,12882).
It should be noted that carry situation occurs in above-mentioned cryptogram computation process, use decipherment algorithm m=(c below
Mod p) mod 2 checking cryptogram computation be correct, for example,
Example 1:Decrypting ciphertext c1*c2Result of calculation:
(12882,25765,38770,25878,12996)=(01111)=15;
Example 2:Decrypting ciphertext c1*c2Result of calculation:
(12883,25879,38875,25992,12996)=(10101)=21;
Example 3:Decrypting ciphertext c1*c2Result of calculation:
(12882,25878,38760,25878,12882)=(01110)=14;
(3-4) for ciphertext division arithmetic, it includes following sub-step:
(3-4-1) create the storage format of empty division arithmetic result, the total length of this storage format meets IEEE754 mark
Standard, is 32,64 or 80, and includes sign bit, integer-bit and decimal place, and bright to binary digit according to this storage format
Literary composition is extended;
It should be noted that in storage format, first is sign bit, its value is equal to 0 or 1, for representing respectively
The positive negative of ciphertext;The length of integer-bit also meets IEEE754 standard simultaneously, and is expressed as L;So remaining decimal bit length
It is exactly (total length-L of storage format), specifically as shown in following form:
Purpose using this storage format is, calculates integer part and the fractional part of the business of division arithmetic respectively,
Wherein, the integer part of business is equal to xL*20+xL-1*21+…+x1*2L-1, wherein x represents the ciphertext value in integer part;
The fractional part of business is equal to:
y1*2-1+y2*2-2+…+yTotal length-the L of storage format*2Total length-the L of storage format,
Wherein y represents the ciphertext value in fractional part.
For example, for the sake of simply representing and facilitating description, taking storage format length 8 as a example illustrate:From
Left-to-right the 1st is sign bit, and the 2nd~4 is integer-bit, and the 5th~8 is decimal place.And enter obtain in step (1) two
Position processed plaintext is extended, and the length of the plaintext after extension is 8, and extension bits are all filled with numeral 0, for example,
Example 1:Binary digit in step (1) 101 is extended to 00000101 in plain text, and binary digit 011 is expanded in plain text
For 00000011;
Example 2:Binary digit in step (1) 111 is extended to 00000111 in plain text, and binary digit 011 is expanded in plain text
For 00000011;
Example 3:Binary digit in step (1) 111 is extended to 00000111 in plain text, and binary digit 010 is expanded in plain text
For 00000010.
(3-4-2) algorithm according to step (2) is encrypted computing to the binary digit plaintext after extension, by cryptographic calculation
Result is combined, thus obtaining corresponding ciphertext respectively as dividend and divisor;For example,
Example 1:Plaintext 00000101 and 00000011 after above-mentioned extension, through the computing of this process, is changed to respectively
(113,113,113,113,113,114,113,114) (00000101) and (113,113,113,113,113,113,114,
114)(00000011);
Example 2:Plaintext 00000111 and 00000011 after above-mentioned extension, through the computing of this process, is changed to respectively
(113,113,113,113,113,114,114,114) (00000111) and (113,113,113,113,113,113,114,
114)(00000011);
Example 3:Plaintext 00000111 and 00000010 after above-mentioned extension, through the computing of this process, is changed to respectively
(113,113,113,113,113,114,114,114) (00000111) and (113,113,113,113,113,113,114,
113)(00000010);
(3-4-3) 1 ciphertext with obtaining in step (2) is multiplied by ciphertext as divisor, for example,
Example 1:Ciphertext 114 is multiplied by (113,113,113,113,113,113,114,114) (00000011), that is, obtain ciphertext
Combination (12882,12882,12882,12882,12882,12882,12996,12996) (00000011), and its product is asked
Ciphertext complement code, the step seeking ciphertext complement code is identical with above-mentioned steps (3-2), obtains ciphertext and be combined as after product supplement code
(12883,12883,12883,12883,12883,12883,12997,12998) (11111101);The ciphertext complement code of example 2 and example
1 is identical.
Example 3:Ciphertext 114 is multiplied by (113,113,113,113,113,113,114,113) (00000010), that is, obtain ciphertext
Combination (12882,12882,12882,12882,12882,12882,12996,12882) (00000010), and its product is asked
Ciphertext complement code, the step seeking ciphertext complement code is identical with above-mentioned steps (3-2), obtains ciphertext and be combined as after product supplement code
(12883,12883,12883,12883,12883,12883,12998,12884) (11111110).
(3-4-4) initial value of setting decimal digit counter count is equal to (length-L of storage format);
(3-4-5) judge whether the ciphertext of dividend is more than the ciphertext of divisor, if greater than turning (3-4-6) step, otherwise
Turn (3-4-7) step;
Specifically, judge whether the ciphertext of dividend is more than the ciphertext of divisor, be from left to right to be sentenced in the way of traveling through
Once whether each in disconnected dividend is more than or equal to the corresponding position in divisor, if having wherein one to be less than in divisor
Corresponding position is not then it represents that the ciphertext of dividend is greater than the ciphertext of divisor;
(3-4-6) complement code of the divisor ciphertext in the ciphertext of dividend and step (3-4-3) is done addition, obtain remainder and make
For new dividend, and do addition in integer-bit with 1 ciphertext, that is, that obtain is ciphertext business, and return to step (3-4-5);
For example,
Example 1:The remainder ciphertext that 1st time cycle calculations obtain=dividend ciphertext+divisor ciphertext complement code=(113,113,
113,113,113,114,113,114) (00000101)+(12883,12883,12883,12883,12883,12883,
12997,12998) (11111101)=(12997,12997,12997,12997,12997,12997,13111,13112)
(00000010) it should be noted that having the situation of carry in the summation of this process, after obtaining remainder ciphertext, turn (3-4-5) step;
Example 2:The remainder ciphertext that 1st time cycle calculations obtain=dividend ciphertext+divisor ciphertext complement code=(113,113,
113,113,113,114,114,114) (00000111)+(12883,12883,12883,12883,12883,12883,
12997,12998) (11111101)=(12997,12997,12997,12997,12997,12998,13112,13112)
(00000100) it should be noted that having the situation of carry in the summation of this process, after obtaining remainder ciphertext, turn (3-4-5) step;
The remainder ciphertext that 2nd cycle calculations obtain=(12997,12997,12997,12997,12997,12998,
13112,13112) (00000100)+(12883,12883,12883,12883,12883,12883,12997,12998)
(11111101)=(25881,25881,25881,25881,25881,25881,26109,26110) (00000001)
Example 3:The remainder ciphertext that 1st time cycle calculations obtain=dividend ciphertext+divisor ciphertext complement code=(113,113,
113,113,113,114,114,114) (00000111)+(12883,12883,12883,12883,12883,12883,
12998,12884) (11111110)=(12997,12997,12997,12997,12997,12998,13112,12998)
(00000101) it should be noted that having the situation of carry in the summation of this process, after obtaining remainder ciphertext, turn (3-4-5) step;
The remainder ciphertext that 2nd cycle calculations obtain=(12997,12997,12997,12997,12997,12998,
13112,12998) (00000101)+(12883,12883,12883,12883,12883,12883,12998,12884)
(11111110)=(25881,25881,25881,25881,25881,25881,26110,25882) (00000011)
The remainder ciphertext that 3rd cycle calculations obtain=(25881,25881,25881,25881,25881,25881,
26110,25882) (00000011)+(12883,12883,12883,12883,12883,12883,12998,12884)
(11111110)=(38765,38765,38763,38765,38765,38765,39108,38766) (00000001)
(3-4-7) judge that the ciphertext whether all zero of remainder or decimal digit counter count are more than the total of storage format
Length, if it is not, then go to step (3-4-8);If it is, ciphertext division arithmetic terminates, and proceed to step (3-4-13), with
Obtain ciphertext division arithmetic result;
(3-4-8) rightmost in remainder ciphertext adds 0 ciphertext, obtains new remainder ciphertext, and goes to step (3-4-
9), for example,
Example 1:1st time circulation obtain new remainder ciphertext be (12997,12997,12997,12997,12997,13111,
13112,113) (00000100);
Example 2:1st time circulation obtain new remainder ciphertext be (25881,25881,25881,25881,25881,26109,
26110,113) (000000010);
2nd time circulation obtain new remainder ciphertext be (25881,25881,25881,25881,26109,26110,113,
113)(0000000100);
Example 3:1st time circulation obtain new remainder ciphertext be (38765,38763,38765,38765,38765,39108,
38766,113) (00000010);
(3-4-9) judge that step (3-4-8) obtains the ciphertext whether new remainder ciphertext is more than divisor, if more than then
Go to step (3-4-10) step, otherwise turn (3-4-11);
(3-4-10) the ciphertext complement code of new remainder ciphertext and divisor is done addition, to obtain new remainder ciphertext again,
The value of count decimal place is set to 1 corresponding ciphertext value simultaneously;For example:1 ciphertext is 114, then goes to step (3-
4-12);For example,
Example 1:Remainder ciphertext+divisor ciphertext the complement code of the remainder ciphertext=new updating=(12997,12997,12997,
12997,12997,13111,13112,113) (00000100)+(12883,12883,12883,12883,12883,12883,
12997,12998) (11111101)=(25881,25881,25881,25881,25881,25994,26109,13111)
(00000001);
Example 2:Remainder ciphertext+divisor ciphertext the complement code of the remainder ciphertext=new updating=(25881,25881,25881,
25881,26109,26110,113,113) (0000000100)+(12883,12883,12883,12883,12883,12883,
12997,12998) (11111101)=(38765,38765,38765,38765,38993,38993,13110,13111)
(00000001);
Example 3:Remainder ciphertext+divisor ciphertext the complement code of the remainder ciphertext=new updating=(38765,38763,38765,
38765,38765,39108,38766,113) (00000010)+(12883,12883,12883,12883,12883,12883,
12998,12884) (11111110)=(51649,51649,51649,51649,51649,51992,51764,12997)
(00000000);
(3-4-11) value of count decimal place is set to 0 corresponding ciphertext value, for example:0 ciphertext is 113, so
After go to step (3-4-12);
(3-4-12) decimal digit counter count is added 1, be then back to step (3-4-7);
(3-4-13) integer part and the fractional part of business is obtained according to the ciphertext value obtaining, and by step (3-4-1)
Storage format deposited, for example,
Example 1:Integer part execution (3-4-6) step writes down a ciphertext 114, cannot divide exactly because this is one
Number, so until decimal place is write all over, that is, decimal digit counter count makes ciphertext division arithmetic more than the total length of storage format
Terminate, that is, fractional part executes (3-4-10), (3-4-11), (3-4-10), (3-4-11) four steps in cyclic process, point
Not the 5th to the 8th ciphertext write down in decimal place is not 114,113,114 and 113, that is, the ciphertext value of business be (113,113,
113,114,114,113,114,113).
Example 2:Integer part circulation execution (3-4-6) step 2 time, the 1st time in integer-bit the 4th writes down a ciphertext value
114, the 2nd the 4th bit encryption literary composition value 114 in integer-bit, so the ciphertext value of integer-bit is 113,114,228, due to this example
It is a number that cannot divide exactly, so until decimal place is write all over, that is, decimal digit counter count is more than the total length of storage format
Ciphertext division arithmetic is terminated, that is, fractional part executes (3-4-10), (3-4-11), (3-4-10), (3- in cyclic process
4-11) four steps, the 5th to the 8th ciphertext value write down in decimal place is 113,114,113 and 114 respectively, i.e. business
Ciphertext value (113,113,114,228,113,114,113,114).
Example 3:Integer part circulation execution (3-4-6) step 3 time, the 1st time in integer-bit the 4th writes down a ciphertext value
114, the 2nd the 4th bit encryption literary composition value 114 in integer-bit, so the ciphertext value of integer-bit is the 113,114,228, the 3rd time whole
4th bit encryption literary composition value 114 of numerical digit, so the ciphertext value of integer-bit is 113,114,342, can divide exactly because this example is one
Number, so the ciphertext of remainder all zero makes ciphertext division arithmetic terminate, that is, fractional part executes (3- in cyclic process
4-10) step, and the 5th ciphertext value write down 114 in decimal place, that is, the ciphertext value of business be (113,113,114,342,
114,113,113,113).
The result that the result that above cryptogram computation process obtains is calculated with plaintext is consistent, for example,
Example 1:
c1/c2=5/3=(113,113,113,113,113,114,113,114) (00000101)/(113,113,113,
113,113,113,114,114) (00000011)=(113,113,113,114,114,113,114,113).
Example 2:
c1/c2=7/3=(113,113,113,113,113,114,114,114) (00000111)/(113,113,113,
113,113,113,114,114) (00000011)=(113,113,114,228,113,114,113,114).
Example 3:
c1/c2=7/2=(113,113,113,113,113,114,114,114) (00000111)/(113,113,113,
113,113,113,114,114) (00000010)=(113,113,114,342,114,113,113,113).
It should be noted that carry situation occurs in above-mentioned cryptogram computation process, use decipherment algorithm m=(c below
Mod p) mod 2 checking cryptogram computation be correct, for example,
Example 1:Decrypting ciphertext c1/c2Result of calculation:(113,113,113,114,114,113,114,113)=
(00011010)=1.625
Explanation:Because the decimal place of this floating number only has 4, so result is 1.625;If decimal place is used 7
Position is representing, then result is 1.664063, and the precision of this explanation decimal place is related to the length retaining decimal place.
Example 2:Decrypting ciphertext c1/c2Result of calculation:(113,113,114,228,113,114,113,114)=
(00100101)=2.3125
Explanation:Because the decimal place of this floating number only has 4, so result is 2.3125;If decimal place is used 8
Position is representing, then result is 2.332031, and the precision of this explanation decimal place is related to the length retaining decimal place.
Example 3:Decrypting ciphertext c1/c2Result of calculation:(113,113,114,342,114,113,113,113)=
(00111000)=3.5
The result more than carrying out cryptogram computation shows, after two plain text encryption, carries out the adding, subtract of ciphertext, the ciphertext of multiplication and division
Identical with the result of calculation of plaintext after result of calculation deciphering.
(4) it is decrypted using the ciphertext operation result that mould division obtains to step (3), to obtain the plaintext after deciphering;
Specifically, it is to adopt below equation:(c mod p)mod s.
For all examples mentioned in above-mentioned steps, due to adding, subtract, the end of multiplication and division cryptographic calculation, all right
Subsequent decrypting process and result have been described in detail, and therefore individually it are not repeated again in this step.
As it will be easily appreciated by one skilled in the art that the foregoing is only presently preferred embodiments of the present invention, not in order to
Limit the present invention, all any modification, equivalent and improvement made within the spirit and principles in the present invention etc., all should comprise
Within protection scope of the present invention.
Claims (10)
1. a kind of full homomorphic cryptography processing method based on modular arithmetic is it is characterised in that comprise the following steps:
(1) obtain the plaintext of any number data type in ciphering process, and according to encryption need to be converted into corresponding enter
Position processed is in plain text;
(2) computing is encrypted to each number in the system position plaintext obtaining in step (1), the ciphertext that cryptographic calculation is obtained
It is combined, thus obtaining corresponding ciphertext combination;
(3) the ciphertext combination using the ciphertext true form based on mould encryption, ciphertext radix-minus-one complement and ciphertext complement code, step (2) being obtained is carried out
Ciphertext computing;
(4) it is decrypted using the ciphertext operation result that mould division obtains to step (3), to obtain the plaintext after deciphering.
2. the full homomorphic cryptography processing method based on modular arithmetic according to claim 1 is it is characterised in that in step (2)
Cryptographic calculation is to adopt below equation:
C=(m+s*r+p*r) mod x0
Wherein c represents ciphertext, and m represents the system position in plaintext, and s represents the system employed in encryption, and r represents random number, and p is
Encryption key, x0It is an intermediate variable, it is equal to the product of encryption key p and another encryption key q, and described key is all not
External disclosure.
3. the full homomorphic cryptography processing method based on modular arithmetic according to claim 2 is it is characterised in that step (4) has
Body is to adopt below equation:(c mod p)mod s.
4. the full homomorphic cryptography processing method based on modular arithmetic according to claim 3 is it is characterised in that in step (3),
For ciphertext additive operation, directly two ciphertext combinations are carried out para-position summation operation.
5. the full homomorphic cryptography processing method based on modular arithmetic according to claim 3 is it is characterised in that in step (3),
For ciphertext subtraction, obtain the radix-minus-one complement of the ciphertext combination of subtrahend first, then corresponding complement code is obtained according to this radix-minus-one complement,
Afterwards the true form that this complement code is combined with the ciphertext of minuend is carried out para-position summation operation.
6. the full homomorphic cryptography processing method based on modular arithmetic according to claim 3 is it is characterised in that in step (3),
For ciphertext multiplying, first c is combined according to ciphertext1And c2Number n of middle element creates the matrix of a n* (2n-1), should
The dextrosinistral element of the first row of matrix is respectively:c1Middle rightmost side element and c2The product of middle rightmost side element, c1Middle right side
Penultimate element and c2The product of middle rightmost side element, by that analogy, c1First element in middle left side and c2Middle rightmost side unit
The product of element;The dextrosinistral element of second row of this matrix is respectively:10, c1Middle rightmost side element and c2Middle right side is reciprocal
The product of second element, c1Middle right side penultimate element and c2The product of middle right side penultimate element, with such
Push away, c1First element in middle left side and c2The product of middle right side penultimate element;... the line n of this matrix is dextrosinistral
Element is respectively:(n-1) individual 0, c1Middle rightmost side element and c2The product of first element in middle left side, c1Middle right side is second from the bottom
Individual element and c2The product of first element in middle left side, by that analogy, c1First element in middle left side and c2Middle first unit in left side
The product of element, then, each column of the matrix of structure is sued for peace, thus obtaining a new row vector, takes this row vector to make
For the result of ciphertext multiplying, finally, take this row vector as the result of ciphertext multiplying.
7. the full homomorphic cryptography processing method based on modular arithmetic according to claim 3 is it is characterised in that in step (3),
For ciphertext division arithmetic, it includes following sub-step:
(3-4-1) create the storage format of empty division arithmetic result, the total length of this storage format is 32,64 or 80
Position, and include sign bit, integer-bit and decimal place, and according to this storage format, binary digit plaintext is extended;
(3-4-2) algorithm according to step (2) is encrypted computing to the binary digit plaintext after extension, by cryptographic calculation result
It is combined, thus obtaining corresponding ciphertext respectively as dividend and divisor;
(3-4-3) 1 ciphertext with obtaining in step (2) is multiplied by the ciphertext as divisor;
(3-4-4) initial value of setting decimal digit counter count is equal to the length-L of storage format, and wherein L is storage format
The length of middle integer-bit;
(3-4-5) judge whether the ciphertext of dividend is more than the ciphertext of divisor, if greater than going to step (3-4-6), otherwise turn step
Suddenly (3-4-7);
(3-4-6) complement code of the divisor ciphertext in the ciphertext of dividend and step (3-4-3) is done addition, obtain remainder as new
Dividend, and do addition in integer-bit with 1 ciphertext, that is, that obtain is ciphertext business, and return to step (3-4-5);
(3-4-7) judge that the ciphertext whether all zero of remainder or decimal digit counter count are more than the total length of storage format,
If it is not, then going to step (3-4-8);If it is, ciphertext division arithmetic terminates, and proceed to step (3-4-13), to obtain
Ciphertext division arithmetic result;
(3-4-8) rightmost in remainder ciphertext adds 0 ciphertext, obtains new remainder ciphertext, and goes to step (3-4-9);
(3-4-9) judge that step (3-4-8) obtains the ciphertext whether new remainder ciphertext is more than divisor, if be more than then turning step
Suddenly (3-4-10) step, otherwise turns (3-4-11);
(3-4-10) the ciphertext complement code of new remainder ciphertext and divisor is done addition, to obtain new remainder ciphertext again, simultaneously
The value of count decimal place is set to 1 corresponding ciphertext value;
(3-4-11) value of count decimal place is set to 0 corresponding ciphertext value, then goes to step (3-4-12);
(3-4-12) decimal digit counter count is added 1, be then back to step (3-4-7);
(3-4-13) integer part and the fractional part of business is obtained according to the ciphertext value obtaining, and by depositing in step (3-4-1)
Storage form is deposited.
8. the full homomorphic cryptography processing method based on modular arithmetic according to claim 7 it is characterised in that
The integer part of business is equal to:
xL*20+xL-1*21+…+x1*2L-1, wherein x represents the ciphertext value in integer part;
The fractional part of business is equal to:
y1*2-1+y2*2-2+…+yTotal length-the L of storage format*2Total length-the L of storage format, wherein y represents the ciphertext value in fractional part.
9. the full homomorphic cryptography processing method based on modular arithmetic according to claim 7 is it is characterised in that step (3-4-
5) specifically, judging that the ciphertext of dividend, whether more than the ciphertext of divisor, is from left to right to judge dividend in the way of traveling through
In each whether more than or equal to the corresponding position in divisor, if once having wherein one less than the corresponding position in divisor,
Then represent that the ciphertext of dividend is not greater than the ciphertext of divisor.
10. the full homomorphic cryptography processing method based on modular arithmetic according to any one in claim 4 to 7, its feature
It is, in ciphertext additive operation, each first by ciphertext obtains correspondence according to deciphering formula (ciphertext mod p) mod s
Plaintext, next and the plaintext obtaining step-by-step carried out summation be added, judge whether the value that each obtains after suing for peace is equal to
System, if equal to then it represents that occurring in that carry, now returning carry value, and returning the result sued for peace in ciphertext position, and at this
Jia 1 in a upper summation process of ciphertext position;If it is not, then representing, carry does not occur, now return carry value and
The result of ciphertext position summation, and Jia 0 in a upper summation process of this ciphertext position.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611145127.8A CN106452723B (en) | 2016-12-13 | 2016-12-13 | Fully homomorphic encryption processing method based on modular operation |
EP17880833.3A EP3531611A4 (en) | 2016-12-13 | 2017-11-23 | Modulo operation-based fully homomorphic encryption processing method |
PCT/CN2017/112482 WO2018107949A1 (en) | 2016-12-13 | 2017-11-23 | Modulo operation-based fully homomorphic encryption processing method |
JP2019514179A JP6682041B2 (en) | 2016-12-13 | 2017-11-23 | Processing method of fully homomorphic encryption based on modulo arithmetic |
US16/106,029 US10868666B2 (en) | 2016-12-13 | 2018-08-21 | Fully homomorphic encryption method based on modular operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611145127.8A CN106452723B (en) | 2016-12-13 | 2016-12-13 | Fully homomorphic encryption processing method based on modular operation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106452723A true CN106452723A (en) | 2017-02-22 |
CN106452723B CN106452723B (en) | 2017-05-31 |
Family
ID=58217890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611145127.8A Active CN106452723B (en) | 2016-12-13 | 2016-12-13 | Fully homomorphic encryption processing method based on modular operation |
Country Status (5)
Country | Link |
---|---|
US (1) | US10868666B2 (en) |
EP (1) | EP3531611A4 (en) |
JP (1) | JP6682041B2 (en) |
CN (1) | CN106452723B (en) |
WO (1) | WO2018107949A1 (en) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106953722A (en) * | 2017-05-09 | 2017-07-14 | 深圳市全同态科技有限公司 | Ciphertext query method and system for full homomorphic encryption |
CN107294697A (en) * | 2017-07-21 | 2017-10-24 | 西安电子科技大学 | Symmetrical full homomorphic cryptography method based on plaintext similar matrix |
CN107977193A (en) * | 2017-12-12 | 2018-05-01 | 金陵科技学院 | A kind of high-resolution method under the framework based on B/S |
WO2018107949A1 (en) * | 2016-12-13 | 2018-06-21 | 深圳市全同态科技有限公司 | Modulo operation-based fully homomorphic encryption processing method |
CN109190395A (en) * | 2018-08-21 | 2019-01-11 | 浙江大数据交易中心有限公司 | A kind of full homomorphic cryptography method and system based on data transformation |
CN109190414A (en) * | 2018-08-09 | 2019-01-11 | 宁波大学 | A kind of full homomorphism for multiplier obscures method |
CN109412786A (en) * | 2018-11-14 | 2019-03-01 | 沈阳航空航天大学 | A kind of integer ciphertext arithmetic operation method based on homomorphic cryptography |
CN110019075A (en) * | 2018-08-09 | 2019-07-16 | 苏州科达科技股份有限公司 | Log encryption method and decryption method and device |
CN110335586A (en) * | 2018-03-31 | 2019-10-15 | 深圳市掌网科技股份有限公司 | A kind of information conversion method and system |
CN111885079A (en) * | 2020-07-31 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | Multi-party combined data processing method and device for protecting data privacy |
CN113098675A (en) * | 2019-12-23 | 2021-07-09 | 郑珂威 | Binary data encryption system and method based on polynomial complete homomorphism |
CN113343262A (en) * | 2021-06-22 | 2021-09-03 | 海光信息技术股份有限公司 | Homomorphic encryption device, homomorphic encryption chip and homomorphic encryption method |
CN113794548A (en) * | 2021-09-13 | 2021-12-14 | 深圳前海微众银行股份有限公司 | Homomorphic encryption method, apparatus, medium, and computer program product |
CN116743349A (en) * | 2023-08-14 | 2023-09-12 | 数据空间研究院 | Paillier ciphertext summation method, system, device and storage medium |
CN116964554A (en) * | 2021-02-26 | 2023-10-27 | 扎马简易股份有限公司 | Encryption scalar multiplication |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109921907B (en) * | 2019-02-12 | 2023-11-07 | 国网安徽省电力有限公司电力科学研究院 | Identity authentication and identification algorithm and system based on same |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
KR20210147645A (en) | 2020-05-29 | 2021-12-07 | 삼성전자주식회사 | Homomorphic encryption device and cyphertext operation method thereof |
CN112231718B (en) * | 2020-07-13 | 2024-03-12 | 广发银行股份有限公司 | Data encryption processing method, device, computer equipment and storage medium |
KR20220009643A (en) | 2020-07-16 | 2022-01-25 | 삼성전자주식회사 | Storage controller, and client and server including the same, method of operating the same |
CN112543091B (en) * | 2020-10-26 | 2022-10-14 | 中国人民武装警察部队工程大学 | Multi-key fully homomorphic encryption method with fixed ciphertext length |
CN112367157B (en) * | 2020-10-31 | 2023-05-12 | 深圳供电局有限公司 | Internet of things environment encryption method and device |
CN113032848B (en) * | 2021-05-20 | 2021-08-10 | 华控清交信息科技(北京)有限公司 | Data processing method and chip for data processing |
JP7187074B1 (en) * | 2021-10-26 | 2022-12-12 | 株式会社アクセル | Cryptographic processing device, cryptographic processing method, and cryptographic processing program |
JP7187076B1 (en) | 2021-11-26 | 2022-12-12 | 株式会社アクセル | Cryptographic processing device, cryptographic processing method, and cryptographic processing program |
CN113965314B (en) * | 2021-12-22 | 2022-03-11 | 深圳市洞见智慧科技有限公司 | Homomorphic encryption processing method and related equipment |
US11856083B2 (en) | 2022-01-06 | 2023-12-26 | International Business Machines Corporation | Analysis and debugging of fully-homomorphic encryption |
US20230344617A1 (en) * | 2022-04-20 | 2023-10-26 | Crypto Lab Inc. | Apparatus for bootstrap processing homomorphic encrypted message and method thereof |
CN115314600B (en) * | 2022-10-12 | 2023-01-24 | 山东沃尔美肥业有限公司 | Chemical fertilizer production monitoring data management method |
CN115801224B (en) * | 2023-01-16 | 2023-04-28 | 北京隐算科技有限公司 | Fully homomorphic encryption method supporting floating point number operation in cloud computing environment |
WO2024210231A1 (en) * | 2023-04-03 | 2024-10-10 | 엘지전자 주식회사 | Homomorphic encryption-based communication method and device therefor in communication system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259643A (en) * | 2012-08-14 | 2013-08-21 | 苏州大学 | Matrix fully homomorphic encryption method |
US20130246813A1 (en) * | 2011-11-11 | 2013-09-19 | Nec Corporation | Database encryption system, method, and program |
CN104283669A (en) * | 2014-08-25 | 2015-01-14 | 东南大学 | Heavy encryption depth optimization method in fully homomorphic encryption |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0924895B1 (en) * | 1997-12-17 | 2009-07-08 | Nippon Telegraph and Telephone Corporation | Encryption and decryption devices for public-key cryptosystems and recording medium with their processing programs recorded thereon |
US6785388B1 (en) * | 1998-09-16 | 2004-08-31 | Murata Kikai Kabushiki Kaisha | Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium |
US7532720B2 (en) * | 2003-10-15 | 2009-05-12 | Microsoft Corporation | Utilizing SIMD instructions within montgomery multiplication |
US20050157872A1 (en) * | 2003-11-12 | 2005-07-21 | Takatoshi Ono | RSA public key generation apparatus, RSA decryption apparatus, and RSA signature apparatus |
US7769168B2 (en) * | 2005-03-31 | 2010-08-03 | Microsoft Corporation | Locally interative encryption generating compliant ciphertext for general syntax specifications |
US20060251248A1 (en) * | 2005-05-03 | 2006-11-09 | Jesse Lipson | Public key cryptographic methods and systems with preprocessing |
JP5297918B2 (en) * | 2009-07-03 | 2013-09-25 | 日本電信電話株式会社 | Encrypted numeric binary conversion system, method and program |
US9946810B1 (en) * | 2010-04-21 | 2018-04-17 | Stan Trepetin | Mathematical method for performing homomorphic operations |
US9442980B1 (en) * | 2010-04-21 | 2016-09-13 | Stan Trepetin | Mathematical method for performing homomorphic operations |
US9350543B2 (en) * | 2012-07-26 | 2016-05-24 | Cisco Technology, Inc. | Method and system for homomorphicly randomizing an input |
JP6083234B2 (en) * | 2012-12-27 | 2017-02-22 | 富士通株式会社 | Cryptographic processing device |
CN105099653A (en) * | 2014-05-20 | 2015-11-25 | 华为技术有限公司 | Distributed data processing method, device and system |
CN105323209A (en) * | 2014-06-05 | 2016-02-10 | 江苏博智软件科技有限公司 | Cloud data security protection method adopting fully homomorphic encryption technology and multiple digital watermarking technology |
JP2016012111A (en) * | 2014-06-30 | 2016-01-21 | 富士通株式会社 | Encryption processing method, encryption processing device, and encryption processing program |
JP2016131335A (en) * | 2015-01-14 | 2016-07-21 | 富士通株式会社 | Information processing method, information processing program and information processing device |
US10061715B2 (en) * | 2015-06-02 | 2018-08-28 | Hong Kong Baptist University | Structure-preserving subgraph queries |
US10581812B2 (en) * | 2015-12-01 | 2020-03-03 | Duality Technologies, Inc. | Device, system and method for fast and secure proxy re-encryption |
US10129029B2 (en) * | 2016-06-16 | 2018-11-13 | International Business Machines Corporation | Proofs of plaintext knowledge and group signatures incorporating same |
US9973342B2 (en) * | 2016-06-16 | 2018-05-15 | International Business Machines Corporation | Authentication via group signatures |
US10833841B2 (en) * | 2016-07-13 | 2020-11-10 | Sap Se | Leakage-free order-preserving encryption |
CN106452723B (en) * | 2016-12-13 | 2017-05-31 | 深圳市全同态科技有限公司 | Fully homomorphic encryption processing method based on modular operation |
-
2016
- 2016-12-13 CN CN201611145127.8A patent/CN106452723B/en active Active
-
2017
- 2017-11-23 EP EP17880833.3A patent/EP3531611A4/en active Pending
- 2017-11-23 WO PCT/CN2017/112482 patent/WO2018107949A1/en unknown
- 2017-11-23 JP JP2019514179A patent/JP6682041B2/en active Active
-
2018
- 2018-08-21 US US16/106,029 patent/US10868666B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130246813A1 (en) * | 2011-11-11 | 2013-09-19 | Nec Corporation | Database encryption system, method, and program |
CN103259643A (en) * | 2012-08-14 | 2013-08-21 | 苏州大学 | Matrix fully homomorphic encryption method |
CN104283669A (en) * | 2014-08-25 | 2015-01-14 | 东南大学 | Heavy encryption depth optimization method in fully homomorphic encryption |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018107949A1 (en) * | 2016-12-13 | 2018-06-21 | 深圳市全同态科技有限公司 | Modulo operation-based fully homomorphic encryption processing method |
CN106953722A (en) * | 2017-05-09 | 2017-07-14 | 深圳市全同态科技有限公司 | Ciphertext query method and system for full homomorphic encryption |
CN106953722B (en) * | 2017-05-09 | 2017-11-07 | 深圳市全同态科技有限公司 | Ciphertext query method and system for full homomorphic encryption |
WO2018205549A1 (en) * | 2017-05-09 | 2018-11-15 | 深圳市全同态科技有限公司 | Fully homomorphic encryption-based ciphertext query method and system |
CN107294697A (en) * | 2017-07-21 | 2017-10-24 | 西安电子科技大学 | Symmetrical full homomorphic cryptography method based on plaintext similar matrix |
CN107294697B (en) * | 2017-07-21 | 2019-08-13 | 西安电子科技大学 | Symmetrical full homomorphic cryptography method based on plaintext similar matrix |
CN107977193A (en) * | 2017-12-12 | 2018-05-01 | 金陵科技学院 | A kind of high-resolution method under the framework based on B/S |
CN110335586B (en) * | 2018-03-31 | 2021-07-02 | 深圳市掌网科技股份有限公司 | Information conversion method and system |
CN110335586A (en) * | 2018-03-31 | 2019-10-15 | 深圳市掌网科技股份有限公司 | A kind of information conversion method and system |
CN110019075B (en) * | 2018-08-09 | 2021-08-10 | 苏州科达科技股份有限公司 | Log encryption method and device and log decryption method and device |
CN109190414A (en) * | 2018-08-09 | 2019-01-11 | 宁波大学 | A kind of full homomorphism for multiplier obscures method |
CN110019075A (en) * | 2018-08-09 | 2019-07-16 | 苏州科达科技股份有限公司 | Log encryption method and decryption method and device |
CN109190395B (en) * | 2018-08-21 | 2020-09-04 | 浙江大数据交易中心有限公司 | Fully homomorphic encryption method and system based on data transformation |
CN109190395A (en) * | 2018-08-21 | 2019-01-11 | 浙江大数据交易中心有限公司 | A kind of full homomorphic cryptography method and system based on data transformation |
CN109412786A (en) * | 2018-11-14 | 2019-03-01 | 沈阳航空航天大学 | A kind of integer ciphertext arithmetic operation method based on homomorphic cryptography |
CN113098675A (en) * | 2019-12-23 | 2021-07-09 | 郑珂威 | Binary data encryption system and method based on polynomial complete homomorphism |
CN113098675B (en) * | 2019-12-23 | 2023-04-18 | 郑珂威 | Binary data encryption system and method based on polynomial complete homomorphism |
CN111885079A (en) * | 2020-07-31 | 2020-11-03 | 支付宝(杭州)信息技术有限公司 | Multi-party combined data processing method and device for protecting data privacy |
CN116964554A (en) * | 2021-02-26 | 2023-10-27 | 扎马简易股份有限公司 | Encryption scalar multiplication |
CN116964554B (en) * | 2021-02-26 | 2024-08-13 | 扎马简易股份有限公司 | Encryption scalar multiplication |
CN113343262A (en) * | 2021-06-22 | 2021-09-03 | 海光信息技术股份有限公司 | Homomorphic encryption device, homomorphic encryption chip and homomorphic encryption method |
CN113343262B (en) * | 2021-06-22 | 2022-10-11 | 海光信息技术股份有限公司 | Homomorphic encryption device, homomorphic encryption chip and homomorphic encryption method |
CN113794548A (en) * | 2021-09-13 | 2021-12-14 | 深圳前海微众银行股份有限公司 | Homomorphic encryption method, apparatus, medium, and computer program product |
CN116743349A (en) * | 2023-08-14 | 2023-09-12 | 数据空间研究院 | Paillier ciphertext summation method, system, device and storage medium |
CN116743349B (en) * | 2023-08-14 | 2023-10-13 | 数据空间研究院 | Paillier ciphertext summation method, system, device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP2019517684A (en) | 2019-06-24 |
US20180359079A1 (en) | 2018-12-13 |
CN106452723B (en) | 2017-05-31 |
JP6682041B2 (en) | 2020-04-15 |
WO2018107949A1 (en) | 2018-06-21 |
EP3531611A1 (en) | 2019-08-28 |
US10868666B2 (en) | 2020-12-15 |
EP3531611A4 (en) | 2019-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106452723B (en) | Fully homomorphic encryption processing method based on modular operation | |
US11159305B2 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
US10652010B2 (en) | Fully homomorphic encrypted ciphertext query method and system | |
Tsuzuku | Finite groups and finite geometries | |
CN106850221B (en) | Information encryption and decryption method and device | |
JP5256342B2 (en) | Information generating apparatus, method, program, and recording medium thereof | |
CN104937537A (en) | Cryptographic method comprising multiplication with a scalar or exponentiation | |
CN107579813A (en) | information encryption and decryption method and device | |
US11392725B2 (en) | Security processor performing remainder calculation by using random number and operating method of the security processor | |
JP2014126866A (en) | Device and method for encryption processing | |
Coron et al. | High order masking of look-up tables with common shares | |
CN103595539A (en) | Method for encrypting format-preserved numeric type personally identifiable information | |
CN101483517A (en) | A technique for aacelerating characteristic 2 eeliptic curve cryptography | |
Bos et al. | Fast Arithmetic Modulo 2^ xp^ y±1 | |
JP2020515093A (en) | Computing device for coded addition | |
CN107154851A (en) | A kind of method and device of data encryption and decryption | |
CN115766190B (en) | Encryption method, decryption method and electronic equipment for arbitrary set elements | |
CN111831979B (en) | Method and device for analyzing data privacy protection protocol | |
Rahman et al. | Elliptic curve cryptography | |
Babenko et al. | Euclidean division method for the homomorphic scheme ckks | |
Opalikhina | Applied aspects of number theory | |
Sheikh et al. | Circuits and systems for security and privacy | |
Varghese et al. | A Novel Method for Mapping Plaintext Characters to Elliptic Curve Affine points over Prime Field and Pseudorandom Number Generation | |
Zakasovskaya et al. | Construction of asymmetric cryptosystems using finite non-commutative algebraic groups | |
Liu et al. | PDPHE: Personal Data Protection for Trans-Border Transmission Based on Homomorphic Encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220512 Address after: 518000 b1201, block B, innovation Plaza, No. 2007, Pingshan Avenue, Pingshan street, Pingshan District, Shenzhen, Guangdong Patentee after: SHENZHEN FHE TECHNOLOGIES Co.,Ltd. Address before: 518042 368d, floor 3, floor 1-6, building 301, chegongmiao plant, chegongmiao Industrial Zone, Futian District, Shenzhen, Guangdong Province Patentee before: SHENZHEN FHE TECHNOLOGIES Co.,Ltd. Patentee before: Hu Heping |