Data processing method and device, electronic equipment and computer readable medium

By determining the set of exponents of the initial polynomial and the unit root, and utilizing the Fast Fourier Transform, the problem of high time complexity in polynomial calculation is solved, achieving more efficient data processing.

CN116074008BActive Publication Date: 2026-04-21BEIJING INFOSEC TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
BEIJING INFOSEC TECH CO LTD
Filing Date
2023-01-06
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing technologies suffer from high time complexity and low efficiency in polynomial computation, especially when the polynomial degree is high, which affects data processing efficiency.

Method used

By determining the set of exponents of the initial polynomial and the unit root, the point-value representation is converted into a coefficient representation using the Fast Fourier Transform, thus reducing the time complexity.

Benefits of technology

It effectively reduces the time complexity of polynomial algorithms, improves data processing efficiency, reduces memory resource consumption, and shortens user waiting time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116074008B_ABST
    Figure CN116074008B_ABST
Patent Text Reader

Abstract

This disclosure presents embodiments of a data processing method, apparatus, electronic device, and computer-readable medium. One specific implementation of the data processing method includes: determining an initial polynomial based on an acquired set of specified data, wherein the number of specified data in the set of specified data is one less than a positive integer power of two; determining a unit root based on the number of specified data in the set of specified data, obtaining a set of exponents of the unit root; generating a numerical set based on the set of exponents of the unit root and the initial polynomial; performing a transformation on the numerical set based on a Fast Fourier Transform, and determining the coefficients of each term in the initial polynomial represented by coefficients based on the transformation result. This can improve data processing efficiency, reduce memory resource consumption, shorten the time required for data processing, and thus reduce user waiting time.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-referencing

[0002] This disclosure claims priority to Chinese Patent Application No. 202210722724.1, filed on June 24, 2022, entitled "Data Processing Method, Apparatus, Electronic Device and Computer-Readable Medium", the entire contents of which are incorporated herein by reference. Technical Field

[0003] Embodiments of this disclosure relate to the field of computer technology, and more particularly to data processing methods, apparatus, electronic devices, and computer-readable media. Background Technology

[0004] In cryptography, polynomials are widely used. For example, in Private Set Intersection (PSI), a common application scenario in secure multi-party computation is to find a polynomial f(x) such that the equation f(x) = 0 has a solution to the given set X. The conventional method involves iterative expansion using polynomial multiplication to obtain the coefficients of the polynomial. This method has high time complexity and low efficiency. Summary of the Invention

[0005] The summary portion of this disclosure is intended to provide a brief overview of concepts that will be described in detail in the detailed description portion. This summary portion is not intended to identify key or essential features of the claimed technical solutions, nor is it intended to limit the scope of the claimed technical solutions. Some embodiments of this disclosure provide data processing methods, apparatuses, electronic devices, and computer-readable media to address one or more of the technical problems mentioned in the background section above.

[0006] In a first aspect, some embodiments of this disclosure provide a data processing method, including: determining an initial polynomial based on an acquired set of specified data, wherein the number of specified data in the set of specified data is one less than a positive integer power of two; determining a unit root based on the number of specified data in the set of specified data, and obtaining a set of exponents of the unit root; generating a numerical set based on the set of exponents of the unit root and the initial polynomial; performing a transformation process on the numerical set based on a fast Fourier transform, and determining the coefficients of each term in the initial polynomial expressed by coefficients based on the transformation result.

[0007] In some embodiments, determining an initial polynomial based on the acquired set of set data includes: for each set of set data in the set of set data, taking the set data as a constant term, determining a difference formula between the variable and the constant term to obtain multiple difference formulas; and determining the product operation of the multiple difference formulas as the initial polynomial.

[0008] In some embodiments, determining the unit root based on the number of specified data in the specified data set and obtaining the exponent set of the unit root includes: determining the unit root as a target number of times the unit root is a unit root, wherein the target number is a number greater than the number of specified data in the specified data set; and determining the exponent set of the unit root based on the target number and obtaining the exponent set of the unit root.

[0009] In some embodiments, determining the exponent set of the unit root based on the target number to obtain the exponent power set of the unit root includes: determining positive integers from zero and one to a preset number as the exponents of the unit root to obtain the positive exponent power set of the unit root, wherein the preset number is one less than the target number.

[0010] In some embodiments, the numerical set is transformed based on the Fast Fourier Transform, and the coefficients of the initial polynomial are determined according to the transformation result. This includes: performing an inverse Fast Fourier Transform on the numerical values ​​in the numerical set, and determining the transformation result as the coefficients of the initial polynomial.

[0011] In some embodiments, determining the exponent set of the unit root based on the target number to obtain the exponent power set of the unit root includes: determining negative integers from zero and negative one to a preset number of negative values ​​as the exponents of the unit root to obtain the negative exponent power set of the unit root, wherein the preset number is one less than the target number.

[0012] In some embodiments, the numerical set is transformed based on the Fast Fourier Transform, and the coefficients of the initial polynomial are determined according to the transformation result. This includes: performing a Fast Fourier Transform on the numerical values ​​in the numerical set, and dividing each transformed numerical value by the target number, and determining the quotients as the coefficients of the initial polynomial.

[0013] In some embodiments, generating a numerical set based on the set of exponents of the root of unity and an initial polynomial includes: taking each exponent in the set of exponents of the root of unity as a variable in the initial polynomial, determining the numerical value of the initial polynomial, and obtaining the numerical set.

[0014] In some embodiments, the method further includes: outputting the coefficients of each term of the initial polynomial.

[0015] Secondly, some embodiments of this disclosure provide a data processing apparatus, including: a polynomial determination unit configured to determine an initial polynomial based on an acquired set of set data, wherein the number of set data in the set data set is one less than a positive integer power of two; a unit root determination unit configured to determine a unit root based on the number of set data in the set data set, thereby obtaining a set of exponents of the unit root; a generation unit configured to generate a numerical set based on the set of exponents of the unit root and the initial polynomial; and a coefficient determination unit configured to perform a transformation process on the numerical set based on a fast Fourier transform, and determine the coefficients of each term in the initial polynomial expressed by coefficients based on the transformation result.

[0016] In some embodiments, the polynomial determination unit is further configured to, for each set data in the set data set, use the set data as a constant term, determine the difference formula between the variable and the constant term to obtain multiple difference formulas; and determine the product operation of the multiple difference formulas as the initial polynomial.

[0017] In some embodiments, the unit root determination unit is further configured to determine the unit root as a target number of times the unit root is a unit root, wherein the target number is a number greater than the number of set data in the set data set; and based on the target number, to determine the exponent set of the unit root, thereby obtaining the exponent power set of the unit root.

[0018] In some embodiments, the unit for determining the unit root is further configured to determine zero, one to a preset number of positive integers as the exponents of the unit root, thereby obtaining a set of positive exponent powers of the unit root, wherein the preset number is one less than the target number.

[0019] In some embodiments, the coefficient determination unit is further configured to perform an inverse fast Fourier transform on the numerical values ​​in the numerical set, and to determine the transform result as the coefficients of each term in the initial polynomial expressed in coefficient form.

[0020] In some embodiments, the unit for determining the root of unit is further configured to determine zero, negative integers from -1 to a preset number of negative values ​​as the exponents of the root of unit, thereby obtaining a set of negative exponent powers of the root of unit, wherein the preset number is one less than the target number.

[0021] In some embodiments, the coefficient determination unit is further configured to perform a fast Fourier transform on the values ​​in the set of values, and to divide each transformed value by the target number, and to determine the resulting quotients as the coefficients of the initial polynomial expressed in terms of coefficients.

[0022] In some embodiments, the generating unit is further configured to use each exponent in the set of exponents of the root of unity as a variable in the initial polynomial to determine the value of the initial polynomial and obtain a set of values.

[0023] In some embodiments, the apparatus further includes an output unit configured to output the coefficients of the initial polynomial.

[0024] Thirdly, some embodiments of this disclosure provide an electronic device, including: one or more processors; and a storage device having one or more programs stored thereon, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement the method described in any of the implementations of the first aspect above.

[0025] Fourthly, some embodiments of this disclosure provide a computer-readable medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the method described in any of the implementations of the first aspect above.

[0026] The various embodiments of this disclosure have the following beneficial effects: the data processing methods of some embodiments of this disclosure can effectively reduce the time complexity of polynomial algorithms and improve data processing efficiency. Specifically, one of the reasons for high time complexity is that iterative expansion is usually used to process polynomials. This significantly increases time complexity when the degree of the polynomial is high, thus affecting data processing efficiency. Based on this, the data processing methods of some embodiments of this disclosure can determine the initial polynomial and the set of exponents of the unit roots based on a set of data. Then, the exponent of each unit root can be substituted into the initial polynomial as a variable to obtain the corresponding numerical value of the equation. This yields the point-value representation of the initial polynomial. Based on the Fast Fourier Transform, the point-value representation can be converted into a coefficient representation. Compared with traditional iterative expansion, this method can effectively reduce time complexity, reduce memory resource consumption, and improve data processing efficiency. This can reduce user waiting time. Attached Figure Description

[0027] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and elements are not necessarily drawn to scale.

[0028] Figure 1 This is an architecture diagram of an exemplary system to which some embodiments of this disclosure can be applied;

[0029] Figure 2 These are flowcharts of some embodiments of the data processing method according to this disclosure;

[0030] Figure 3 These are schematic diagrams illustrating the structure of some embodiments of the data processing apparatus according to this disclosure;

[0031] Figure 4 This is a schematic diagram of the structure of an electronic device suitable for implementing some embodiments of the present disclosure. Detailed Implementation

[0032] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0033] It should also be noted that, for ease of description, only the parts relevant to the invention are shown in the accompanying drawings. Unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other.

[0034] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.

[0035] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0036] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0037] This disclosure will now be described in detail with reference to the accompanying drawings and embodiments.

[0038] Figure 1 An exemplary system architecture 100 is shown that can be applied to some embodiments of the present disclosure for data processing methods or apparatus.

[0039] like Figure 1 As shown, system architecture 100 may include terminal devices 101 and 102, network 103, and server 104. Network 103 can be used as a medium to provide communication links between terminal devices 101, 102, and server 104. Network 103 may include various connection types, such as wired or wireless communication links or fiber optic cables, etc.

[0040] Users can use terminal devices 101 and 102 to interact with server 104 via network 103 to receive or send messages, etc. Various client applications can be installed on terminal devices 101 and 102, such as secure multi-party computation applications, shopping applications, web browsers, and instant messaging tools.

[0041] The terminal devices 101 and 102 here can be either hardware or software. When terminal devices 101 and 102 are hardware, they can be various electronic devices with displays, including but not limited to smartphones, tablets, e-book readers, laptops, and desktop computers. When terminal devices 101 and 102 are software, they can be installed in the electronic devices listed above. They can be implemented as, for example, multiple software programs or software modules used to provide distributed services, or as a single software program or software module. No specific limitations are made here.

[0042] Server 104 can be a server that provides various services, such as a backend server that supports the applications installed on terminal devices 101 and 102. Upon receiving data processing instructions, the backend server can construct an initial polynomial based on a set of data, and can analyze and process the initial polynomial. It can also send the processing results (such as the coefficients of the initial polynomial) to terminal devices 101 and 102.

[0043] The server 104 here can be either hardware or software. When server 104 is hardware, it can be implemented as a distributed server cluster consisting of multiple servers, or as a single server. When server 104 is software, it can be implemented as, for example, multiple software programs or software modules used to provide distributed services, or as a single software program or software module. No specific limitations are made here.

[0044] It should be noted that the data processing method provided in the embodiments of this disclosure can be executed by server 104 or by terminal devices 101 and 102. Accordingly, the data processing device can be located in server 104 or in terminal devices 101 and 102. No specific limitations are made here.

[0045] It should be understood that Figure 1 The number of terminal devices, networks, and servers shown is merely illustrative. Any number of terminal devices, networks, and servers can be included depending on actual needs.

[0046] Continue to refer to Figure 2 The diagram illustrates a flow 200 of some embodiments of a data processing method according to the present disclosure. The method includes the following steps:

[0047] Step 201: Determine the initial polynomial based on the acquired set of data.

[0048] In some embodiments, the entity executing the data processing method (e.g. Figure 1 The server shown can determine the initial polynomial based on the acquired set of specified data. The number of specified data points in the set is one less than a positive integer power of two. The executing entity can acquire the set of specified data in various ways. For example, a user can input the set of specified data through a terminal device and send it to the executing entity for local storage. Alternatively, the executing entity can acquire the set of specified data from other electronic devices.

[0049] In some embodiments, for each set of data in the set of data, firstly, the executing entity can use that set of data as a constant term to determine the difference formula between the variable and the constant term, thereby obtaining multiple difference formulas. Then, the product operation of the multiple difference formulas can be used to determine the initial polynomial. As an example, the set of data is X = {x...} i |i=1,2…n,n=2 k -1}, where x i Let represent the i-th set data; n and k are positive integers. At this point, the initial polynomial can be f(x) = (x-x1)(x-x2)···(xx) n ),or Where x represents a variable; x1, x2, x... n x i This represents a constant term.

[0050] It should be noted that, using the conventional expansion algorithm, each term needs to be multiplied individually. The time complexity in this case is O(n^2). 2 In this case, the more data sets there are and the more complex the polynomials, the longer the processing time will be.

[0051] Step 202: Determine the unit root based on the number of specified data in the specified data set, and obtain the exponent set of the unit root.

[0052] In some embodiments, the executing entity can determine the root of unity, i.e., the degree of the root of unity, based on the number of specified data in the aforementioned specified data set. It is understood that for an nth-degree polynomial, the number of coefficients after expansion is typically n+1. Therefore, for the initial polynomial f(x) obtained from the aforementioned specified data set X, the root of unity can be determined to be a target degree root of unity, i.e. Where e represents the natural base; π is the mathematical constant pi. Here, the target number is generally one greater than the number of data points in the given dataset. That is, the target number is usually an integer power of two.

[0053] In some embodiments, the executing entity can determine the exponent set of the unit root based on the target number, and thus obtain the exponent power set of the unit root. Optionally, the executing entity can determine zero, one to a preset number of positive integers as the exponents of the unit root, respectively, to obtain the positive exponent power set of the unit root. The preset number is generally one less than the target number. That is, the preset number is a set data quantity value. That is, zero and one to a preset number of positive integers are used as positive exponents. As an example, for the unit root... Its exponent can be j = 0, 1, 2…n. In this case, we can obtain the set of exponent powers of the root of unity. Where, x j This represents the j-th power of the root of unity.

[0054] In some embodiments, the executing entity can determine zero, negative integers from -1 to a preset number of negative values ​​as the exponents of the root of unity, thereby obtaining a set of negative exponent powers of the root of unity. That is, zero and negative integers from -1 to a preset number of negative values ​​are respectively used as negative exponents. As an example, for the root of unity... Its negative exponent can be -j = 0, -1, -2, ..., -n. In this case, we can obtain the set of negative exponent powers of the root of unity. Where, x j This represents the negative j-th power of the root of unity.

[0055] Step 203: Generate a numerical set based on the set of exponents of the unit root and the initial polynomial.

[0056] In some embodiments, based on the initial polynomial obtained in step 201 and the set of exponents of the root of unity obtained in step 202, the executing entity can generate a numerical set. Here, the executing entity can use each exponent in the set of exponents of the root of unity as a variable in the initial polynomial, thereby determining the value of the initial polynomial and thus obtaining the numerical set.

[0057] As an example, consider the set of positive exponents of the root of unity. The executing entity can x j Substituting the initial polynomial, we obtain the numerical value f(x). j This yields the numerical set [f(x0), f(x1), ..., f(x)]. n )].in,

[0058] For example, the set of negative exponents of the root of unity. The executing entity can x j Substituting the initial polynomial, we obtain the numerical value f(x). jThis yields the numerical set [f(x0), f(x1), ..., f(x)]. n )].in,

[0059] Step 204: Based on the Fast Fourier Transform, the numerical set is transformed, and the coefficients of each term in the initial polynomial are determined according to the transformation result.

[0060] In some embodiments, the executing entity may perform a transformation on the numerical set obtained in step 203 based on the Fast Fourier Transform. Then, based on the transformation result, the coefficients of each term in the initial polynomial using coefficient representation are determined.

[0061] As an example, for the set of positive exponents based on the root of unity The resulting set of values ​​can be processed by the execution entity using an inverse Fast Fourier Transform (IFFT). For example, the execution entity can construct a numerical array according to the subscript order of the exponents, and then perform an IFFT on the array. The result of the transformation can then be determined as the coefficients of the initial polynomial, i.e., [a0, a1, ... a...]. n In this case, the initial polynomial expressed in coefficient form is: Among them, a i Let represent the coefficient of the i-th term.

[0062] Understandably, using the inverse fast Fourier transform can effectively reduce the complexity of data processing, thereby reducing time complexity. The time complexity of the data processing method disclosed above is O(nlog₂n), which has a significant advantage over traditional polynomial iteration operations. This allows for the rapid acquisition of polynomial coefficients, which is beneficial for improving data processing efficiency. Simultaneously, it reduces the consumption of memory resources.

[0063] For example, for the set of negative exponents based on the root of unity The resulting set of values ​​can be processed by the execution entity using a Fast Fourier Transform. Afterwards, the transformed values ​​(e.g., A0, A1, ... A...) can be... n Divide each quotient by the target number. Thus, the resulting quotients can be used as the coefficients of each term in the initial polynomial, expressed in terms of coefficients. In this way, we can also obtain the same result of the inverse fast Fourier transform.

[0064] Understandably, using the Fast Fourier Transform (FFT) can also effectively reduce the complexity of data processing, thereby reducing time complexity. Compared to the Inverse Fast Fourier Transform, the time complexity of the above data processing method is also approximately O(nlog₂n). It also has a significant advantage over traditional polynomial iteration operations. This also allows for the rapid acquisition of polynomial coefficients, which is beneficial for improving data processing efficiency.

[0065] In some embodiments, the executing entity may also output the coefficients of the initial polynomial. For example, the coefficients may be sent to a terminal device or other electronic device for display or storage. Alternatively, the executing entity may store the coefficients in cache memory or display them.

[0066] The data processing method provided in some embodiments of this disclosure can determine the initial polynomial and the set of exponents of the unit roots based on a set of data. Then, the exponent of each unit root can be substituted into the initial polynomial as a variable to obtain the corresponding numerical value of the equation. This yields the point-value representation of the initial polynomial. Through inverse fast Fourier transform (FFT), the point-value representation can be converted into a coefficient representation. Compared with traditional iterative expansion methods, the data processing method of this disclosure can effectively reduce time complexity and improve data processing efficiency, thereby reducing user waiting time.

[0067] Continue to refer to Figure 3 As a response to the above Figure 2 The present disclosure provides some embodiments of a data processing apparatus for implementing the method shown, and these apparatus embodiments are similar to... Figure 2 Corresponding to the method embodiments shown, the device can be specifically applied to various electronic devices.

[0068] like Figure 3 As shown, the data processing apparatus 300 in some embodiments may include: a polynomial determination unit 301, configured to determine an initial polynomial based on an acquired set of set data, wherein the number of set data in the set data set is one less than the positive integer power of two; a unit root determination unit 302, configured to determine a unit root based on the number of set data in the set data set, and obtain a set of exponents of the unit root; a generation unit 303, configured to generate a numerical set based on the set of exponents of the unit root and the initial polynomial; and a coefficient determination unit 304, configured to perform a transformation process on the numerical set based on a fast Fourier transform, and determine the coefficients of each term in the initial polynomial expressed by coefficients based on the transformation result.

[0069] In some embodiments, the polynomial determination unit 301 may be further configured to, for each set data in the set data set, use the set data as a constant term, determine the difference formula between the variable and the constant term to obtain multiple difference formulas; and determine the product operation of the multiple difference formulas as the initial polynomial.

[0070] In some embodiments, the unit root determination unit 302 may be further configured to determine the unit root as a target number of times the unit root is determined, wherein the target number is a number greater than the number of set data in the set data set; and based on the target number, the exponent set of the unit root is determined to obtain the exponent set of the unit root.

[0071] In some embodiments, the unit root determination unit 302 may be further configured to determine zero, one to a preset number of positive integers as the exponents of the unit root, respectively, to obtain a set of positive exponent powers of the unit root, wherein the preset number is one less than the target number.

[0072] In some embodiments, the coefficient determination unit 304 may be further configured to perform an inverse fast Fourier transform on the numerical values ​​in the numerical set, and to determine the transform result as the coefficients of each term in the initial polynomial expressed in coefficient form.

[0073] In some embodiments, the unit root determination unit 302 may be further configured to determine zero, negative integers from negative one to a preset number of negative values ​​as the exponents of the unit root, thereby obtaining a set of negative exponent powers of the unit root, wherein the preset number is one less than the target number.

[0074] In some embodiments, the coefficient determination unit 304 may be further configured to perform a fast Fourier transform on the values ​​in the numerical set, and divide each transformed value by the target number, and determine the resulting quotients as the coefficients of the initial polynomial expressed in terms of coefficients.

[0075] In some embodiments, the generation unit 303 may be further configured to use each exponent in the set of exponents of the root of unity as a variable in the initial polynomial, determine the value of the initial polynomial, and obtain a set of values.

[0076] In some embodiments, the device 300 may further include an output unit ( Figure 3 (not shown in the image), is configured to output the coefficients of each term of the initial polynomial.

[0077] It is understandable that the units described in the device 300 are related to the reference. Figure 2 The steps in the described method correspond accordingly. Therefore, the operations, features, and beneficial effects described above for the method also apply to the device 300 and the units contained therein, and will not be repeated here.

[0078] The following is for reference. Figure 4 It illustrates electronic devices suitable for implementing some embodiments of this disclosure (e.g., Figure 1 The structural diagram of the server (400) in the middle. Figure 4 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments of this disclosure.

[0079] like Figure 4 As shown, electronic device 400 may include a processing device (e.g., a central processing unit, a graphics processor, etc.) 401, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 402 or a program loaded from storage device 408 into random access memory (RAM) 403. RAM 403 also stores various programs and data required for the operation of electronic device 400. Processing device 401, ROM 402, and RAM 403 are interconnected via bus 404. Input / output (I / O) interface 405 is also connected to bus 404.

[0080] Typically, the following devices can be connected to I / O interface 405: input devices 406 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 407 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 408 including, for example, magnetic tapes, hard disks, etc.; and communication devices 409. Communication device 409 allows electronic device 400 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 4 An electronic device 400 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively. Figure 4 Each box shown can represent a device or multiple devices as needed.

[0081] In particular, according to some embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication device 409, or installed from storage device 408, or installed from ROM 402. When the computer program is executed by processing device 401, it performs the functions defined above in the methods of some embodiments of this disclosure.

[0082] It should be noted that, in some embodiments of this disclosure, the computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium may be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In some embodiments of this disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In some embodiments of this disclosure, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0083] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.

[0084] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device. The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: determine an initial polynomial based on an acquired set of specified data, wherein the number of specified data in the set of specified data is one less than a positive integer power of two; determine a unit root based on the number of specified data in the set of specified data, obtaining a set of exponents of the unit root; generate a numerical set based on the set of exponents of the unit root and the initial polynomial; and perform a transformation process on the numerical set based on a fast Fourier transform, determining the coefficients of each term in the initial polynomial expressed in coefficient form based on the transformation result.

[0085] Furthermore, computer program code for performing operations of some embodiments of this disclosure can be written in one or more programming languages ​​or a combination thereof. Programming languages ​​include object-oriented programming languages—such as Java, Smalltalk, and C++—and conventional procedural programming languages—such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0086] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0087] The units described in some embodiments of this disclosure can be implemented in software or hardware. The described units can also be housed in a processor; for example, a processor may be described as including a polynomial determination unit, a root of unity determination unit, a generation unit, and a coefficient determination unit. The names of these units do not necessarily limit the specific unit; for example, the polynomial determination unit may also be described as "a unit that determines an initial polynomial based on an acquired set of set data."

[0088] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0089] The above description is merely a selection of preferred embodiments of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of the invention involved in the embodiments of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described inventive concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features with similar functions disclosed in the embodiments of this disclosure.

Claims

1. A data processing method applied to a privacy-preserving set intersection (PSI) scenario in secure multi-party computation, the method comprising: The processor of the electronic device determines an initial polynomial based on the acquired set of preset data, wherein the number of preset data in the set of preset data is one less than the positive integer power of two. The processor determines the unit root based on the number of specified data in the specified data set, and obtains the set of exponents of the unit root; The processor sequentially substitutes each exponent from the set of exponents of the unit root into the initial polynomial to perform calculations and generate a numerical set. The processor performs a transformation on the numerical set based on the Fast Fourier Transform, and determines the coefficients of each term in the initial polynomial using coefficient representation based on the transformation result; The processor outputs the coefficients for subsequent cryptographic operations on the intersection of the privacy-preserving sets.

2. The method according to claim 1, wherein, The step of determining the initial polynomial based on the acquired set of data includes: For each set of data in the set of data, the set of data is used as a constant term, and the difference formula between the variable and the constant term is determined to obtain multiple difference formulas; The product of multiple difference formulas is used to determine the initial polynomial.

3. The method according to claim 2, wherein, Based on the number of specified data points in the specified data set, the unit root is determined, resulting in the set of exponents of the unit root, including: The unit root is determined to be a target number of times the unit root, wherein the target number is one greater than the number of set data in the set data set; Based on the target number, determine the exponent set of the unit root, and obtain the exponent power set of the unit root.

4. The method according to claim 3, wherein, The step of determining the exponent set of the unit root based on the target number, and obtaining the exponent power set of the unit root, includes: Zero, one to a predetermined number of positive integers are respectively determined as the exponents of the unit root, resulting in the set of positive exponent powers of the unit root, wherein the predetermined number is one less than the target number.

5. The method according to claim 4, wherein, The process of transforming the numerical set based on the Fast Fourier Transform, and determining the coefficients of each term in the initial polynomial using coefficient representation based on the transformation result, includes: Perform an inverse fast Fourier transform on the numerical values ​​in the set of values, and determine the transformation result as the coefficients of each term in the initial polynomial expressed by coefficients.

6. The method according to claim 3, wherein, The step of determining the exponent set of the unit root based on the target number, and obtaining the exponent power set of the unit root, includes: Zero, negative one to a preset number of negative integers are respectively determined as the exponents of the unit root, resulting in the set of negative exponent powers of the unit root, wherein the preset number is one less than the target number.

7. The method according to claim 6, wherein, The process of transforming the numerical set based on the Fast Fourier Transform, and determining the coefficients of each term in the initial polynomial using coefficient representation based on the transformation result, includes: Perform a Fast Fourier Transform on the values ​​in the set of values, and divide each transformed value by the target number. The resulting quotients are then used as the coefficients of the initial polynomial.

8. The method according to any one of claims 1-7, wherein, Based on the set of exponents of the unit root and the initial polynomial, a numerical set is generated, including: Each exponent in the set of exponents of the unit root is used as a variable in the initial polynomial to determine the value of the initial polynomial, thus obtaining a set of values.

9. A data processing apparatus for use in a PSI (Protected Multi-Party Computation) scenario, the apparatus being deployed in an electronic device, the apparatus comprising: The polynomial determination unit is configured to determine an initial polynomial based on an acquired set of set data, wherein the number of set data in the set data is one less than the positive integer power of two. The unit root determination unit is configured to determine the unit root based on the number of specified data in the specified data set, and obtain the exponent set of the unit root; The generating unit is configured to sequentially substitute each exponent in the set of exponents of the root of unity into the initial polynomial to perform calculations to generate a set of values. The coefficient determination unit is configured to perform a transformation process on the numerical set based on the Fast Fourier Transform, and determine the coefficients of each term of the initial polynomial represented by coefficients based on the transformation result. The output unit is configured to output the coefficients for subsequent cryptographic operations of the PSI.

10. An electronic device, comprising: One or more processors; Storage device, on which one or more programs are stored, When the one or more programs are executed by the one or more processors, the one or more processors implement the method as described in any one of claims 1-8.

11. A computer-readable medium having a computer program stored thereon, wherein, When the program is executed by the processor, it implements the method as described in any one of claims 1-8.

Citation Information

Patent Citations

  • Method and device for obtaining zero knowledge proof based on distributed processing, medium and system

    CN111585770A

  • Polynomial multiplication hardware implementation system suitable for lattice cryptographic algorithm

    CN114297571A