CN106452723A - Fully homomorphic encryption processing method based on modular operation - Google Patents

Fully homomorphic encryption processing method based on modular operation Download PDF

Info

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
Application number
CN201611145127.8A
Other languages
Chinese (zh)
Other versions
CN106452723B (en
Inventor
胡和平
廖云峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Fhe Technologies Co ltd
Original Assignee
Shenzhen Fhe Technologies Co ltd
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
Application filed by Shenzhen Fhe Technologies Co ltd filed Critical Shenzhen Fhe Technologies Co ltd
Priority to CN201611145127.8A priority Critical patent/CN106452723B/en
Publication of CN106452723A publication Critical patent/CN106452723A/en
Application granted granted Critical
Publication of CN106452723B publication Critical patent/CN106452723B/en
Priority to EP17880833.3A priority patent/EP3531611A4/en
Priority to PCT/CN2017/112482 priority patent/WO2018107949A1/en
Priority to JP2019514179A priority patent/JP6682041B2/en
Priority to US16/106,029 priority patent/US10868666B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, 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

A kind of full homomorphic cryptography processing method based on modular arithmetic
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.
CN201611145127.8A 2016-12-13 2016-12-13 Fully homomorphic encryption processing method based on modular operation Active CN106452723B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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