Method, apparatus and device for processing encrypted information, and storage medium
By splitting the rotation step of the encrypted information into multiple factors and scheduling them to be executed on multiple computing resources, the problem of large computational load in homomorphic encrypted data processing is solved, and the power consumption of hardware devices in the cloud computing platform is reduced.
Patent Information
- Application Number
- CN202111602039.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-24
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2041-12-24
AI Technical Summary
Homomorphic encryption data processing involves a large amount of computation, resulting in high power consumption of cloud computing platform hardware.
The rotation step size of the encrypted information is divided into multiple factors, each of which is an integer power of 2. The rotation operations corresponding to these factors are scheduled to be executed on multiple computing resources. The computation process is optimized by controlling the total number of time slots and the total number of computing resources.
While ensuring performance, multiple rotation operations are performed with a minimum number of computing resources, effectively reducing the power consumption of cloud computing platform hardware.
Smart Images

Figure CN116340962B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the field of information technology, and in particular, to a processing method and device for encrypted information, an apparatus, and a storage medium. BACKGROUND
[0002] Homomorphic encryption (HE) is an encryption method. Specifically, the data processed by homomorphic encryption is processed to obtain an output, and the result of decrypting the output is the same as the output result obtained by processing the original unencrypted data with the same method.
[0003] However, the present inventors have found that the amount of calculation required for processing data subjected to homomorphic encryption is large, resulting in a large power consumption of the computing device. SUMMARY
[0004] To solve the above technical problems or at least partially solve the above technical problems, the present disclosure provides a processing method and device for encrypted information, an apparatus, and a storage medium. By obtaining encrypted information, a plurality of rotation operations before splitting can be implemented with the least number of computing resources under the condition of ensuring performance, thereby effectively reducing the power consumption of hardware devices in a cloud computing platform.
[0005] In a first aspect, the present disclosure provides a processing method for encrypted information suitable for a cloud computing platform, comprising:
[0006] obtaining encrypted information;
[0007] determining a plurality of rotation steps for rotating the encrypted information, each rotation step being composed of one or more factors, each factor being an integer power of 2;
[0008] scheduling rotation operations corresponding to the factors of the plurality of rotation steps to a plurality of computing resources for execution;
[0009] wherein the plurality of computing resources are determined according to a plurality of computing units and at least one time slot of the cloud computing platform, each computing resource being a computing resource of one computing unit in one time slot, the number of time slots corresponding to the plurality of computing resources being greater than or equal to the number of factors of a target rotation step, the target rotation step being a rotation step in the plurality of rotation steps that includes the most factors;
[0010] the total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation steps;
[0011] some of the computing resources in the plurality of computing resources have an association relationship between adjacent time slots, and the rotation results output by the plurality of computing resources include rotation results corresponding to the plurality of rotation steps, respectively.
[0012] Secondly, embodiments of this disclosure provide an apparatus for processing encrypted information, suitable for cloud computing platforms, comprising:
[0013] The acquisition module is used to acquire encrypted information;
[0014] The determining module is used to determine multiple rotation step sizes for rotating the encrypted information, each rotation step size consisting of one or more factors, each factor being an integer power of 2;
[0015] The scheduling module is used to schedule the rotation operations corresponding to the multiple rotation step size factors to multiple computing resources for execution;
[0016] The plurality of computing resources are determined based on the plurality of computing units of the cloud computing platform and at least one time slot. Each computing resource is the computing resource of a computing unit in one time slot. The number of time slots corresponding to the plurality of computing resources is greater than or equal to the number of factors of the target rotation step size. The target rotation step size is the rotation step size that includes the most factors among the plurality of rotation step sizes.
[0017] The total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation steps;
[0018] Among the multiple computing resources, some computing resources with adjacent time slots are related, and the rotation results output by the multiple computing resources include the rotation results corresponding to the multiple rotation steps respectively.
[0019] Thirdly, embodiments of this disclosure provide an electronic device, including:
[0020] Memory;
[0021] Processor; and
[0022] Computer programs;
[0023] The computer program is stored in the memory and configured to be executed by the processor to implement the method as described in the first aspect.
[0024] Fourthly, embodiments of this disclosure provide a computer-readable storage medium suitable for a cloud computing platform, having a computer program stored thereon, the computer program being executed by a processor to implement the method described in the first aspect.
[0025] The encryption information processing method, apparatus, device, and storage medium provided in this disclosure obtain encrypted information, determine multiple rotation step sizes for rotating the encrypted information, and split each rotation step size into multiple factors, such that each factor is an integer power of 2. This allows the cloud computing platform to store only the public key corresponding to the rotation step size being an integer power of 2, reducing the storage overhead of the cloud computing platform. Furthermore, the rotation operations corresponding to the multiple factors are scheduled to be executed on multiple computing resources of the cloud computing platform. Each computing resource is a computing unit on the cloud computing platform within a time slot. By controlling the total number of time slots occupied by these multiple computing resources to be greater than or equal to the number of factors in the rotation step size containing the most factors, the rotation operation corresponding to the rotation step size containing the most factors can be ensured to be implemented. Additionally, by controlling the total number of these multiple computing resources to be less than the total number of factors after splitting, the actual number of rotation operations executed is less than the total number of rotation operations corresponding to all factors. Thus, while ensuring performance, multiple rotation operations before splitting can be implemented with a minimum number of computing resources, effectively reducing the power consumption of the hardware devices in the cloud computing platform. Attached Figure Description
[0026] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0027] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, those skilled in the art can obtain other drawings based on these drawings without creative effort.
[0028] Figure 1 A schematic diagram illustrating an application scenario provided by an embodiment of this disclosure;
[0029] Figure 2 A schematic diagram of two-dimensional convolution provided in an embodiment of this disclosure;
[0030] Figure 3 A schematic diagram of a rotation operation provided in an embodiment of this disclosure;
[0031] Figure 4 A flowchart illustrating the method for processing encrypted information provided in this embodiment of the disclosure;
[0032] Figure 5 A schematic diagram illustrating the decomposition of the rotation step size into factors, provided for another embodiment of this disclosure;
[0033] Figure 6 An optimized schematic diagram of a computational graph provided for another embodiment of this disclosure;
[0034] Figure 7 This is a schematic diagram of the structure of multiple computing units provided in another embodiment of the present disclosure;
[0035] Figure 8 This is a schematic diagram illustrating the scheduling of rotation operations on split factors across multiple computing resources, as provided in another embodiment of this disclosure.
[0036] Figure 9 A flowchart illustrating a method for processing encrypted information according to another embodiment of this disclosure;
[0037] Figure 10 This is a schematic diagram illustrating the scheduling of rotation operations on split factors across multiple computing resources, as provided in another embodiment of this disclosure.
[0038] Figure 11 A flowchart illustrating a method for processing encrypted information according to another embodiment of this disclosure;
[0039] Figure 12 This is a schematic diagram illustrating the scheduling of rotation operations on split factors across multiple computing resources, as provided in another embodiment of this disclosure.
[0040] Figure 13 A schematic diagram of the structure of the encryption information processing apparatus provided in the embodiments of this disclosure;
[0041] Figure 14 A schematic diagram of the structure of an electronic device embodiment provided in this disclosure. Detailed Implementation
[0042] To better understand the above-mentioned objectives, features, and advantages of this disclosure, the solutions disclosed herein will be further described below. It should be noted that, unless otherwise specified, the embodiments and features described herein can be combined with each other.
[0043] Numerous specific details are set forth in the following description in order to provide a full understanding of this disclosure, but this disclosure may also be implemented in other ways different from those described herein; obviously, the embodiments in the specification are only some, and not all, of the embodiments of this disclosure.
[0044] Typically, due to the limited computing power of a terminal and the abundant computing resources of a cloud computing platform, the terminal may require some computing services from the cloud computing platform. For example, the terminal can send its data to be processed to the cloud computing platform, which then processes the data and sends the result back to the terminal. However, in some cases, for data confidentiality, the terminal user may not want the cloud computing platform to access the actual data, yet still requires the same service capabilities from the cloud computing platform. In such situations, homomorphic encryption (HE) comes into play. Figure 1 As shown, the data to be processed in terminal 11 is denoted as x, where x is the original text. Cloud computing platform 12 can be a single server or a cluster of multiple servers. Cloud computing platform 12 can implement the function f. Terminal 11 needs to obtain the processing result f(x), but to ensure the security of x, terminal 11 can encrypt x to obtain encrypted data, which can be denoted as enc(x). Furthermore, terminal 11 sends the encrypted data enc(x) to cloud computing platform 12. Cloud computing platform 12 can use function f to calculate enc(x), for example, using enc(x) as the input of function f, and the output of function f is denoted as f(enc(x)). The principle of homomorphic encryption is that f(enc(x)) = enc(f(x)), that is, the result obtained by calculating enc(x) through function f is equivalent to the encrypted result of f(x). Furthermore, the cloud computing platform 12 sends f(enc(x)) to the terminal 11. The terminal 11 decrypts f(enc(x)). Since decrypting f(enc(x)) is equivalent to decrypting enc(f(x)), f(x) can be obtained after decryption. Thus, the terminal 11 does not need to send x to the cloud computing platform 12 to obtain the result of function f processing x, i.e., f(x).
[0045] In some scenarios, the process by which the cloud computing platform 12 calculates enc(x) using function f is quite complex. For example... Figure 2 The diagram illustrates the computation process of performing a 2D convolution on the ciphertext enc(x). Here, 21 represents the input, which is enc(x), the ciphertext. The shaded area in 21 represents the original text x. 22 represents the kernel, which is the parameter of the function f, a convolution function with 9 values. 23 represents the output, f(enc(x)), which is the convolution result obtained after performing a 2D convolution on the ciphertext. Furthermore, Input, Kernel, and Output are all polynomials. The computation process of performing a 2D convolution on the ciphertext specifically includes performing a series of rotations on the ciphertext, for example...Figure 2 The numbers 30-38 shown are the new ciphertext polynomials obtained after rotating the ciphertext (i.e., the input). Each new ciphertext polynomial is then multiplied by its corresponding kernel value, and the results of multiple multiplications are summed together to obtain the convolution result.
[0046] Furthermore, when performing multiple rotation operations on the ciphertext, the rotation step size is different for each rotation. Specifically, there is a certain correspondence between the position of each value in the kernel and the rotation step size. For example... Figure 2 In the kernel shown, the position of value 0 corresponds to a rotation step of 6, the position of value 1 corresponds to a rotation step of 5, the position of value 2 corresponds to a rotation step of 4, the position of value 3 corresponds to a rotation step of 1, and the position of value 4 corresponds to a rotation step of 0. This means the ciphertext polynomial multiplied by value 4 is the unrotated ciphertext input. Furthermore, the position of value 5 corresponds to a rotation step of 24, the position of value 6 corresponds to a rotation step of 21, the position of value 7 corresponds to a rotation step of 20, and the position of value 8 corresponds to a rotation step of 19. In other words, rotating the ciphertext with a rotation step of 6 yields a new ciphertext polynomial 30, and so on, rotating the ciphertext with a rotation step of 19 yields a new ciphertext polynomial 38.
[0047] like Figure 3 The diagram illustrates the process of rotating the ciphertext 21 by a rotation step of 6 to obtain the new ciphertext polynomial 30. Figure 3 Each arrow shown represents a one-step rightward rotation from the previous step. Therefore, rotating ciphertext 21 six steps to the right yields a new ciphertext polynomial 30. It is understood that in other embodiments, ciphertext 21 can also be rotated to the left. The process of rotating to the left is analogous to the process of rotating to the right, and will not be elaborated here. Figure 3 The shaded area shown represents the original text x, which can be called the raw data. During the rotation of ciphertext 21, the original text x is also rotated by a certain step. For example... Figure 3 As shown, rotating ciphertext 21 by 6 steps means rotating the original text x by 6 steps as well. Furthermore, the process of rotating ciphertext 21 according to other rotation step sizes can be found in [reference needed]. Figure 3 The methods shown will not be elaborated upon here. It is understandable that the rotation process from ciphertext 21 to the new ciphertext polynomials 30-38 can be performed in parallel.
[0048] Furthermore, rotation is a common operator in homomorphic encryption tensor computation, but it is also a computationally expensive operator. It is estimated that rotation operators account for 70%-80% of the total computational cost in a ciphertext neural network inference computation. Therefore, the computational load required by cloud computing platforms in performing two-dimensional convolution on ciphertext enc(x) is very large, resulting in high power consumption of the devices performing this computation process in cloud computing platforms.
[0049] To address this problem, this disclosure provides a method for processing encrypted information, which will be described below with reference to specific embodiments.
[0050] Figure 4 This is a flowchart illustrating a method for processing encrypted information according to an embodiment of this disclosure. This embodiment is applicable to scenarios where the cloud computing platform 12, as described above, processes encrypted information, such as enc(x), provided by the terminal 11. Figure 4 As shown, the specific steps of this method are as follows:
[0051] S401, Obtain encrypted information.
[0052] For example Figure 1 As shown, the cloud computing platform 12 receives encrypted information from the terminal 11, which is enc(x), i.e. Figure 2 The ciphertext shown is 21.
[0053] S402. Determine multiple rotation step sizes for rotating the encrypted information, each rotation step size consisting of one or more factors, each factor being an integer power of 2.
[0054] For example, the cloud computing platform 12 determines the rotation stride for each of the multiple rotation operations required when performing a two-dimensional convolution on enc(x), for example... Figure 2 As shown, the ciphertext 21 needs to be rotated with rotation step sizes of 6, 5, 4, 1, 24, 21, 20, and 19 respectively. The rotation operation is equivalent to performing an automorphic transformation on the ciphertext 21, which requires a public key, which can be denoted as the Galois key. Different rotation step sizes require different Galois keys.
[0055] In one possible implementation, the public key can be provided by terminal 11 to cloud computing platform 12. For example, terminal 11 sends the public key to cloud computing platform 12 simultaneously with the ciphertext 21. However, terminal 11 may not be able to determine in advance which rotation steps cloud computing platform 12 will use to rotate the ciphertext 21. Therefore, terminal 11 could send the public key corresponding to each possible rotation step used by cloud computing platform 12, but this would result in a large amount of public key data. For example, if the order of the ciphertext polynomial is 1024 and the maximum rotation step is 1023, since there is a one-to-one correspondence between the rotation step and the public key, terminal 11 would need to send the public keys corresponding to rotation steps 1 through 1023 to cloud computing platform 12, i.e., terminal 11 would need to send 1023 different public keys. The data volume of 1023 public keys is very large, resulting not only in a large amount of data transmission by terminal 11 but also in a large storage overhead for cloud computing platform 12. In another possible implementation, the cloud computing platform 12 can also pre-store the public keys corresponding to rotation step sizes 1 through 1023, but this also leads to a large storage overhead for the cloud computing platform 12. Therefore, to address this problem, this embodiment provides an alternative method. For example, the terminal 11 can send the public keys corresponding to rotation step sizes of integer powers of 2 to the cloud computing platform 12, or the cloud computing platform 12 can pre-store the public keys corresponding to rotation step sizes of integer powers of 2. For example, if the order of the ciphertext polynomial is 1024 and the maximum rotation step size is 1023, then the terminal 11 only needs to send the public keys corresponding to rotation step sizes of 2 to the powers of 0, 1, 2, ..., 9 to the cloud computing platform 12, that is, the terminal 11 only needs to send 10 different public keys to the cloud computing platform 12. Alternatively, the cloud computing platform 12 only needs to pre-store these 10 different public keys. The correspondence between these 10 rotation step sizes and these 10 public keys is shown in Table 1 below:
[0056] Table 1
[0057] Rotation step Public key 1 Key(1) 2 Key(2) 4 Key(4) 8 Key(8) 16 Key(16) 32 Key(32) 64 Key(64) 128 Key(128) 256 Key(256) 512 Key(512)
[0058] Therefore, for any rotation step size, if the rotation step size is not an integer power of 2, it can be decomposed into multiple factors, each of which is an integer power of 2. This allows a rotation operation for any rotation step size to be implemented through rotation operations corresponding to each of the multiple factors.
[0059] For example Figure 2As shown, the cloud computing platform 12 needs to perform rotation operations on the ciphertext 21 according to rotation step sizes of 6, 5, 4, 1, 24, 21, 20, and 19 respectively. For example, taking rotation step size 6 as an example, the rotation operation on the ciphertext 21 according to rotation step size 6 can be denoted as Rot(ct, 6), where ct represents the ciphertext 21.
[0060] like Figure 5 As shown, Rot(ct, 6) can be implemented using Rot(ct, 4) and Rot(ct1, 2), where ct1 represents the new ciphertext polynomial obtained after executing Rot(ct, 4), i.e., ct1 represents the rotation result of Rot(ct, 4). That is, first rotating the ciphertext 21 to the right by 4 steps to obtain a new ciphertext polynomial, and then rotating the new ciphertext polynomial to the right by 2 steps is equivalent to rotating the ciphertext 21 to the right by 6 steps. In addition, Rot(ct, 6) can also be implemented using Rot(ct, 2) and Rot(ct1, 4), where ct1 represents the new ciphertext polynomial obtained after executing Rot(ct, 2), i.e., ct1 represents the rotation result of Rot(ct, 2). In addition, when the cloud computing platform 12 executes Rot(ct, 4), Key(4) participates in the calculation; when it executes Rot(ct1, 2), Key(2) participates in the calculation. Similarly, the rotation operations corresponding to other rotation step sizes can be decomposed using this method, and the decomposed results are as follows. Figure 5 As shown in the diagram. Here, ct2 represents the new ciphertext polynomial obtained after executing Rot(ct, 16), ct3 represents the new ciphertext polynomial obtained after executing Rot(ct2, 4), and ct4 represents the new ciphertext polynomial obtained after executing Rot(ct2, 2). It is understandable that when the step size of a rotation operation is decomposed into multiple factors, the order of the rotation operations corresponding to these factors is not restricted. For example, a step size of 19 is decomposed into three factors: 1, 2, and 16. The order of the rotation operations corresponding to these three factors is not restricted; for example, they could be... Figure 5 The code shows the sequence of executions: first Rot(ct, 16), then Rot(ct2, 2), and finally Rot(ct4, 1). Alternatively, it could be Rot(ct, 1), then Rot(ct2, 2), and finally Rot(ct4, 16). In this case, ct2 represents the new ciphertext polynomial obtained after executing Rot(ct, 1), and ct4 represents the new ciphertext polynomial obtained after executing Rot(ct2, 2).
[0061] S403. Schedule the rotation operations corresponding to the multiple rotation step size factors to multiple computing resources for execution.
[0062] like Figure 5 As shown, by decomposing each of the 8 rotation steps, it is possible to achieve...Figure 2 The 8 rotation operations become Figure 5 The diagram shows 16 spin operations. Furthermore, the cloud computing platform 12 can schedule these 16 spin operations across multiple computing resources for execution. It is understood that, according to... Figure 5 The splitting method shown is for Figure 2 The 8 rotation operations shown are broken down into 16 rotation operations. Figure 2 The computation process shown can be represented by a homomorphic computation graph, a data structure. Specifically, a homomorphic computation graph consists of nodes and edges. Nodes store data such as numerical values, ciphertext, and ciphertext polynomials from the kernel; different data can be stored in different nodes. Edges represent computational methods between different nodes, such as multiplication and addition. The process by which the cloud computing platform 12 schedules these 16 rotation operations to multiple computing resources can specifically be described as transforming the homomorphic computation graph into a more hardware-friendly one. For example... Figure 6 As shown, the homomorphic encryption scheduler (HE scheduler) in cloud computing platform 12 can transform a homomorphic encryption computation graph into a more hardware-friendly homomorphic encryption computation graph. Specifically, the more hardware-friendly homomorphic encryption computation graph can be... Figure 8 The diagram shows the computation graph when scheduling 16 rotation operations across 10 computing resources. In the specific transformation process, the homomorphic encryption scheduler needs to calculate the maximum value of the optimization function, which can be represented as g(perf, power), where perf represents performance; the shorter the time required to schedule the 16 rotation operations across multiple computing resources, the better the performance. This time can specifically be a timeslot. Power represents power consumption; the fewer rotation operations actually executed when scheduling the 16 rotation operations across multiple computing resources, the lower the power consumption. Figure 5 The 16 rotation operations shown after the split are actually intended to implement the 8 rotation operations before the split. Therefore, when these 16 rotation operations are scheduled to be executed on multiple computing resources, the actual number of rotation operations executed can be greater than or equal to 8. In some embodiments, the optimization function can be expressed as g = perf / power, and the larger this ratio is, the larger the value of the optimization function g is.
[0063] In addition, the homomorphic encryption scheduler can be a software resource in the cloud computing platform 12, and the computing resources can be hardware resources in the cloud computing platform 12 at different time slots.
[0064] For example, cloud computing platform 12 includes multiple computing units, which are hardware resources, specifically homomorphic encryption cores (HE cores). These multiple computing units can belong to the same physical machine or be distributed across different physical machines. These multiple computing units can be interconnected through a specific interconnect structure. For example... Figure 7 As shown, the cloud computing platform 12 includes four computing units: HE core 0, HE core 1, HE core 2, and HE core 3, and these four computing units are interconnected via an interconnect structure. In some embodiments, Figure 7 The overall architecture shown can be referred to as the architecture of a homomorphic encryption hardware accelerator, and the homomorphic encryption scheduler can obtain the architecture of this accelerator in advance.
[0065] Furthermore, each computing resource in the cloud computing platform 12 is a computing unit on a time slot, and each computing resource is used to perform a rotation operation. Therefore, in order to achieve Figure 5 The eight rotation operations shown before the split require at least eight computing resources. The cloud computing platform 12 can schedule these 16 rotation operations across multiple computing resources in several ways; one such implementation is described below. For example... Figure 8 As shown in the diagram, the 16 rotation operations indicated by the dashed box 80 can be scheduled to be executed on 10 computing resources. For example, the computing resource of HE core 0 on Timeslot 1 is designated as the first computing resource. This first computing resource can execute the rotation operation corresponding to 4, thereby enabling it to output the rotation result Rot(ct, 4). Furthermore, the computing resource of HE core 0 on Timeslot 2 is designated as the second computing resource. This second computing resource can execute the rotation operation corresponding to 16, and the output of the first computing resource can be used as the input of the second computing resource. Therefore, the second computing resource can execute the rotation operation corresponding to 16 on the output of the first computing resource, thus enabling it to output the rotation result Rot(ct, 20).
[0066] The plurality of computing resources are determined based on multiple computing units and at least one time slot of the cloud computing platform. Each computing resource is a computing unit's computing resource in one time slot. The number of time slots corresponding to the plurality of computing resources is greater than or equal to the number of factors of the target rotation step size. The target rotation step size is the rotation step size that includes the most factors among the plurality of rotation step sizes. The total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation step sizes. There is an association relationship between some adjacent computing resources in the plurality of computing resources. The rotation results output by the plurality of computing resources respectively include the rotation results corresponding to the plurality of rotation step sizes respectively.
[0067] like Figure 8 The 10 computing resources shown are determined based on the 4 computing units and multiple time slots of the cloud computing platform 12. The number of time slots can be determined in the following way: for example... Figure 8 As shown, the target rotation step size is determined from the rotation step sizes 6, 5, 4, 1, 24, 21, 20, and 19 before splitting. This target rotation step size is the rotation step size that includes the most factors among these eight rotation step sizes. For example, after splitting, rotation step size 21 and rotation step size 19 each include the most factors, for example, 3. Therefore, rotation step size 21 and rotation step size 19 can be used as target rotation step sizes. That is to say, to implement the rotation operation corresponding to the target rotation step size, at least 3 time slots are required. Therefore, the total number of time slots occupied by the 10 computing resources mentioned above is greater than or equal to 3 time slots. In addition, as Figure 8 As shown, rotation steps of 6, 5, 4, 1, 24, 21, 20, and 19 are sequentially split into 16 factors, each a power of 2. The 16 rotation operations corresponding to these 16 factors can be scheduled across 10 computing resources, with each resource executing one rotation operation. This means the total number of computing resources is less than the total number of factors, and the actual number of rotation operations executed is less than the total number of rotation operations corresponding to all factors. Furthermore, some adjacent computing resources within these 10 time slots have correlations; for example, the output of one time slot can be the input of the next. Additionally, since each computing resource can execute one rotation operation, the 10 resources can produce 10 rotation results, including the rotation results corresponding to the 8 rotation operations before splitting.
[0068] In summary, the process of the homomorphic encryption scheduler calculating the maximum value of the optimization function is based on ensuring that the total number of time slots is greater than or equal to 3 and that it is possible to achieve... Figure 5 Given the eight rotation operations prior to the split shown, find the minimum number of computational resources.
[0069] This embodiment of the disclosure obtains encrypted information, determines multiple rotation steps for rotating the encrypted information, and splits each rotation step into multiple factors, such that each factor is a power of 2. This allows the cloud computing platform to store only the public key corresponding to the rotation step of a power of 2, reducing the storage overhead of the cloud computing platform. Furthermore, the rotation operations corresponding to the multiple factors are scheduled to be executed on multiple computing resources of the cloud computing platform. Each computing resource is a computing unit on the cloud computing platform within a time slot. By controlling the total number of time slots occupied by these multiple computing resources to be greater than or equal to the number of factors in the rotation step with the most factors, the rotation operation corresponding to the rotation step with the most factors can be ensured to be implemented. Additionally, by controlling the total number of these multiple computing resources to be less than the total number of factors after splitting, the actual number of rotation operations executed is less than the total number of rotation operations corresponding to all factors. Thus, while ensuring performance, multiple rotation operations before splitting can be implemented with a minimum number of computing resources, effectively reducing the power consumption of the hardware devices in the cloud computing platform.
[0070] Figure 8 This paper introduces how a cloud computing platform can allocate rotation operations corresponding to all decomposed factors to different computing resources for execution through reasonable scheduling. The scheduling process is described below with specific examples. For instance, [the following section describes a specific implementation of this scheduling process]. Figure 8 The 16 factors shown after the split constitute the first set S. Assume that scheduling the rotation operations of these 16 factors across multiple computing resources can be performed by calling the function h(S, t). The function h(S, t) works as follows: select the most frequently occurring factor from the first set S, for example, factor 4, and allocate the rotation operation of factor 4 to an idle computing unit in time slot t. Thus, S can be divided into two sets, the first set denoted as S0. A The second set is denoted as S. B , among which, S A Composed of the related factors of factor 4, where the related factors of factor 4 do not include factor 4 itself, S B It consists of non-correlated factors of factor 4. Furthermore, by calling the function h(S)... A ,t+1) will S A The factor rotation operation is scheduled to be executed on computing resources starting from time slot t+1, by calling the function h(S B ,t) will S B The rotation operations of the factors in the equation are scheduled to be executed on computational resources starting from time slot t. Where h(S) A ,t+1) and h(S B The implementation processes for and t are similar to those for h(S, t), and h(S, t) is the implementation process for h(S, t). At+1) precedes h(S) B ,t) execute. Similarly, S A It can be divided into two sets, namely S A1 and S A2 , among which, S A1 Similar to S A S A2 Similar to S B , targeting S A1 Call function h(S) A1 (t+2). For S A2 Call function h(S) A2 , t+1). h(S A1 ,t+2) precedes h(S) A2 Execute at t+1). Similarly, S B It can be divided into two sets, namely S B1 and S B2 , among which, S B1 Similar to S A S B2 Similar to S B , targeting S B1 Call function h(S) B1 (t+1). For S B2 Call function h(S) B2 ,t). h(S) B1 t+1) precedes h(S) B2 ,t) execute. Additionally, h(S) A2 t+1) precedes h(S) B1 Execute at t+1). Continue in this manner, iterating until no set can be partitioned.
[0071] Specifically, the rotation operations corresponding to the multiple rotation step size factors are scheduled to be executed on multiple computing resources, including, for example... Figure 9 The following steps are shown:
[0072] S901. Determine the first factor that appears most frequently among the factors corresponding to the plurality of rotation step sizes.
[0073] like Figure 10 As shown, it can be determined from the dashed box 80 that factor 4 appears most frequently, so factor 4 is designated as the first factor. Therefore, the rotation operations within the dashed box 80 can be divided into a set 81 that includes factor 4 and a set 82 that does not include factor 4.
[0074] S902. Schedule the rotation operation corresponding to the first factor to be executed on the first computing resource, wherein the first computing resource is determined by the first computing unit and the first time slot.
[0075] For exampleFigure 10 As shown in ①, control core 0 to perform a factor 4 rotation operation on time slot 1, that is, schedule the factor 4 rotation operation to be executed on the first computing resource, which is determined by the first computing unit, such as HE core 0, and the first time slot, such as Timeslot 1. The input of the first computing resource is ct as described above. Furthermore, Figure 10 The text states that core 0 is HE core 0, core 1 is HE core 1, core 2 is HE core 2, and core 3 is HE core 3.
[0076] S903. Schedule the rotation operation corresponding to the associated factor of the first factor to be executed on the computing resources starting from the second time slot, where the second time slot is the next time slot after the first time slot.
[0077] like Figure 10 As shown, by removing the rotation operation on factor 4 from set 81, we obtain set 83. Set 83 includes the rotation operations corresponding to the associated factors of factor 4. Set 83 is similar to S as described above. A Set 82 is similar to S as described above. B The rotation operations in set 83 begin execution in time slot 2, while the rotation operations in set 82 begin execution in time slot 1. In other words, the rotation operations in set 83 can be scheduled to be executed on computing resources starting from the second time slot, such as Timeslot2, which is the next time slot after Timeslot1.
[0078] Specifically, the rotation operations corresponding to the associated factors of the first factor are scheduled to be executed on computing resources starting from the second time slot, including, for example... Figure 11 The following steps are shown:
[0079] S1101. Determine the second factor associated with the first factor, wherein the second factor appears most frequently among the associated factors of the first factor.
[0080] For example, set 83 includes rotation operations corresponding to the associated factors of factor 4. The factor that appears most frequently is determined from set 83. For instance, factors appearing in set 83 include 1, 2, and 16. The factors that appear most frequently are 1 and 16. For example, factor 1 and factor 16 appear twice, and factor 1 appears once. Therefore, in set 83, factor 1 and factor 16 are equally important. In this case, either factor 1 or factor 16 can be chosen as the second factor. For example, factor 16 can be chosen as the second factor associated with factor 4. Furthermore, the rotation operations within set 83 are divided into set 84, which includes factor 16, and set 85, which does not include factor 16.
[0081] S1102. Schedule the rotation operation corresponding to the second factor to be executed on the second computing resource. The second computing resource is determined by the first computing unit and the second time slot. The output of the first computing resource is the input of the second computing resource.
[0082] For example Figure 10 As shown in ②, control core 0 to perform a factor 16 rotation operation on time slot 2, that is, schedule the factor 16 rotation operation to be executed on the second computing resource, which is determined by the first computing unit, such as HE core 0, and the second time slot, such as Timeslot 2.
[0083] S1103. Schedule the rotation operation corresponding to the associated factor of the second factor to be executed on the computing resources starting from the third time slot, wherein the third time slot is the next time slot of the second time slot, and the output of the second computing resource is the input of the computing resources starting from the third time slot.
[0084] like Figure 10 As shown, by removing the rotation operation on factor 16 from set 84, we obtain set 86. Set 86 includes the rotation operations corresponding to the associated factors of factor 16. Set 86 is similar to S as described above. A1 Set 85 is similar to S as described above. A2 The rotation operations in set 86 begin execution from the third time slot, for example, time slot 3, which is the next time slot after time slot 2. The rotation operations in set 85 begin execution from time slot 2. For example... Figure 10 As shown in ③, core 0 is controlled to perform a factor 1 rotation operation on time slot 3, that is, the factor 1 rotation operations in set 86 are scheduled to be executed on the computing resources determined by core 0 and time slot 3. In addition, the output of the second computing resource is the input of the computing resources determined by core 0 and time slot 3.
[0085] S1104. Schedule the rotation operation corresponding to the third factor associated with the first factor to be executed on the third computing resource, wherein the third computing resource is a computing resource that starts from the second time slot and does not include the second computing resource, and the output of the first computing resource is the input of the third computing resource.
[0086] For example, set 83 includes rotation operations corresponding to the associated factors of factor 4. Factors appearing in set 83 include 1, 2, and 16. The above steps treat 16 as the second factor associated with factor 4, so factors 1 and 2 can be denoted as the third factors associated with factor 4. Therefore, set 85, excluding factor 16, includes rotation operations corresponding to the third factors. Further, the most frequently occurring factor is determined from set 85. Since factors 1 and 2 appear the same number of times in set 85, they are considered equally important. One factor is chosen, for example, factor 1, thus dividing set 85 into a set including factor 1 and a set excluding factor 1. Further, as... Figure 10 As shown in ④, core 1 is controlled to perform a factor 1 rotation operation on time slot 2, that is, the factor 1 rotation operation is scheduled to be executed on the computing resources determined by core 1 and time slot 2. Figure 10 As shown in ⑤, core 2 is controlled to perform a factor 2 rotation operation on time slot 2, that is, the factor 2 rotation operation is scheduled to be executed on the computing resources determined by core 2 and time slot 2. Here, the computing resources determined by core 1 and time slot 2, and the computing resources determined by core 2 and time slot 2 are computing resources starting from time slot 2 and excluding the second computing resource, respectively. The computing resources determined by core 1 and time slot 2, and the computing resources determined by core 2 and time slot 2 can be referred to as the third computing resources, and the output of the first computing resource is the input of the third computing resource.
[0087] Optionally, the third computing resource is the computing resource corresponding to the second computing unit. The second computing unit may be a different computing unit from the first computing unit described above, such as HE core 0. For example, the second computing unit may be HE core 1 or HE core 2.
[0088] Optionally, the method further includes: scheduling the rotation operations corresponding to the non-associated factors of the first factor to be executed on computing resources starting from the first time slot.
[0089] For example Figure 10 The set 82 shown includes rotation operations corresponding to the non-associated factors of factor 4, and the rotation operations in this set 82 are executed starting from time slot 1.
[0090] Specifically, scheduling the rotation operations corresponding to the non-associated factors of the first factor to be executed on computing resources starting from the first time slot includes: if there are idle computing resources corresponding to the first time slot, then scheduling the rotation operations corresponding to the non-associated factors of the first factor to be executed on computing resources starting from the first time slot.
[0091] For example, factors appearing in set 82 include 1, 2, 8, and 16. The factors that appear most frequently are 1 and 16, each appearing twice. Therefore, factors 1 and 16 in set 82 are equally important. In this case, either factor 1 or factor 16 can be chosen, for example, factor 1, thus dividing set 82 into set 87 (which includes factor 1) and set 88 (which does not include factor 1). At this time, there are still idle computing resources in time slot 1, so it can be processed as follows... Figure 10 As shown in ⑥, core 3 is controlled to perform a factor 1 rotation operation on time slot 1, that is, the factor 1 rotation operations in set 87 are scheduled to idle computing resources starting from time slot 1. Further, by removing the factor 1 rotation operations from set 82, set 89 is obtained, which is similar to S as described above. B1 Set 88 is similar to S as described above. B2 The rotation operations in set 89 begin in time slot 2, while the rotation operations in set 88 begin in time slot 1. Since factors 2 and 16 appear the same number of times in set 89, either factor 2 or factor 16 can be chosen, for example, choosing factor 2, resulting in a set that includes factor 2, but no set that does not include factor 2. Further, according to... Figure 10 As shown in ⑦, core 3 is controlled to perform a factor 2 rotation operation on slot 2, and according to... Figure 10 As shown in ⑧, control core 3 to perform a rotation operation with a factor of 16 on time slot 3.
[0092] If there are no idle computing resources in the first time slot, then query the computing resources starting from the second time slot for idle computing resources; schedule the rotation operations corresponding to the non-associated factors of the first factor to be executed on the idle computing resources.
[0093] For example, the rotation operations in set 88 begin execution in time slot 1. Although there are still idle computing resources in time slot 1—for example, the computing resources of core 1 and core 2 in time slot 1—the two rotation operations in set 88 are related; that is, the rotation result of Rot(ct, 16) is the input of Rot(ct2, 8). Therefore, the two rotation operations in set 88 need to be executed in two adjacent time slots. Thus, the computing resources starting from time slot 2 search for adjacent idle computing resources in the same time slot. For example, the computing resources of core 2 in time slot 3 and core 2 in time slot 4 are adjacent idle computing resources in two time slots. Therefore, they can be executed according to… Figure 10As shown in ⑨, the rotation operation with factor 16 in set 88 is scheduled to be executed on the computing resources of core 2 in time slot 3, and the rotation operation with factor 8 in set 88 is scheduled to be executed on the computing resources of core 2 in time slot 4. Furthermore, the computing resources of core 1 in time slot 3 and core 1 in time slot 4 are also adjacent idle computing resources in two time slots. Therefore, in other embodiments, the rotation operation with factor 16 in set 88 can also be scheduled to be executed on the computing resources of core 1 in time slot 3, and the rotation operation with factor 8 in set 88 can be scheduled to be executed on the computing resources of core 1 in time slot 4.
[0094] like Figure 10 As shown, when HE core 0 performs a factor 4 rotation operation in time slot 1, Key(4) participates in the calculation process of this rotation operation. When HE core 0 performs a factor 16 rotation operation in time slot 2, Key(16) participates in the calculation process of this rotation operation. When HE core 3 performs a factor 1 rotation operation in time slot 1, Key(1) participates in the calculation process of this rotation operation. At this time, Key(4), Key(16), and Key(1) can be placed in a cache so that when Key(1) is used again in time slots 2 and 3, and when Key(16) is used again in time slot 3, the corresponding computing unit can directly obtain Key(1) or Key(16) from the cache, without having to repeatedly read from external storage. This cache can be an internal cache of a computing unit, or it can be a cache such as Figure 10 The diagram shows a shared cache for the four computing units. This means that each public key only needs to be read from external storage once, eliminating the need for repeated readings. The reading process can be performed by one or more computing units, or by other components or parts outside the four computing units. Furthermore, when a public key is read from external storage, it can be broadcast to all four computing units.
[0095] In addition, Figure 10 In this context, adjacent computing resources in some time slots have certain correlations. Specifically, the output of a computing resource in a previous time slot can be the input of a computing resource in a subsequent time slot. For example, after HE core 0 performs a rotation operation with a factor of 4 in time slot 1, it can output the rotation result Rot(ct, 4), which can be used as the input for the computing resources of HE core 0, HE core 1, and HE core 2 in time slot 2, respectively. Specifically, this correlation can be achieved through… Figure 10The interconnection structure shown is implemented as follows. For example, when HE core 0 outputs the rotation result of Rot(ct, 4) in time slot 1, the rotation result of Rot(ct, 4) can be sent to HE core 1 and HE core 2 respectively through this interconnection structure, so that HE core 1 and HE core 2 can further perform corresponding rotation operations on the rotation result of Rot(ct, 4) in time slot 2 respectively.
[0096] In addition, such as Figure 7 The process shown can be simplified to, for example: Figure 10 The process shown, the specific principles and implementation process are the same as Figure 12 The same applies, so I won't go into details here.
[0097] In this embodiment, after performing a rotation operation using computing resources from the previous time slot, the public key used in that rotation operation is stored in a cache. This allows computing resources in the next time slot to retrieve the same public key from the cache, eliminating the need for repeated retrieval from external storage. This significantly improves the time and space utilization of data (e.g., public keys), further saving power and enhancing performance.
[0098] Figure 10 This is a schematic diagram of a processing apparatus for encrypted information on a cloud computing platform, provided in an embodiment of this disclosure. The encrypted information processing apparatus provided in this embodiment can execute the processing flow provided in the encrypted information processing method embodiment, such as... Figure 13 As shown, the encrypted information processing device 130 includes:
[0099] Module 131 is used to acquire encrypted information;
[0100] The determining module 132 is used to determine multiple rotation step sizes for rotating the encrypted information, each rotation step size consisting of one or more factors, each factor being an integer power of 2;
[0101] The scheduling module 133 is used to schedule the rotation operations corresponding to the multiple rotation step size factors to multiple computing resources for execution;
[0102] The plurality of computing resources are determined based on the plurality of computing units of the cloud computing platform and at least one time slot. Each computing resource is the computing resource of a computing unit in one time slot. The number of time slots corresponding to the plurality of computing resources is greater than or equal to the number of factors of the target rotation step size. The target rotation step size is the rotation step size that includes the most factors among the plurality of rotation step sizes.
[0103] The total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation steps;
[0104] Among the multiple computing resources, some computing resources with adjacent time slots are related, and the rotation results output by the multiple computing resources include the rotation results corresponding to the multiple rotation steps respectively.
[0105] It is understandable that the scheduling module 133 can schedule the rotation operations corresponding to the multiple rotation step size factors to multiple computing resources for execution in various ways. In one feasible implementation, when the scheduling module 133 schedules the rotation operations corresponding to the multiple rotation step size factors to multiple computing resources for execution, it is specifically used to: determine the first factor that appears most frequently among the multiple rotation step size factors; schedule the rotation operation corresponding to the first factor to a first computing resource for execution, the first computing resource being determined by a first computing unit and a first time slot; and schedule the rotation operation corresponding to the associated factor of the first factor to a computing resource starting from a second time slot for execution, the second time slot being the next time slot after the first time slot.
[0106] Optionally, when scheduling module 133 schedules the rotation operation corresponding to the associated factor of the first factor to be executed on a computing resource starting from the second time slot, it is specifically used to: determine the second factor associated with the first factor, wherein the second factor appears most frequently among the associated factors of the first factor; schedule the rotation operation corresponding to the second factor to be executed on the second computing resource, wherein the second computing resource is determined by the first computing unit and the second time slot, and the output of the first computing resource is the input of the second computing resource; and schedule the rotation operation corresponding to the third factor associated with the first factor to be executed on the third computing resource, wherein the third computing resource is a computing resource starting from the second time slot and excluding the second computing resource, and the output of the first computing resource is the input of the third computing resource.
[0107] Optionally, the third computing resource is the computing resource corresponding to the second computing unit. For example, the second computing unit can be any computing unit other than the first computing unit, and there can be one or more second computing units.
[0108] Optionally, the scheduling module 133 is further configured to: schedule the rotation operation corresponding to the associated factor of the second factor to be executed on the computing resources starting from the third time slot, wherein the third time slot is the next time slot of the second time slot, and the output of the second computing resource is the input of the computing resources starting from the third time slot.
[0109] The above describes how to schedule the rotation operations corresponding to the associated factors of the first factor. For the unassociated factors of the first factor, the scheduling module 133 is also used to schedule the rotation operations corresponding to the unassociated factors of the first factor to be executed on the computing resources starting from the first time slot.
[0110] It is understandable that after scheduling the rotation operation corresponding to the associated factor of the first factor to the corresponding computing resources, the first time slot may or may not have idle computing resources.
[0111] If there are available computing resources corresponding to the first time slot, the scheduling module 133 can schedule the rotation operation corresponding to the non-associated factor of the first factor to be executed on the computing resources starting from the first time slot.
[0112] If there are no idle computing resources in the first time slot, the encryption information processing device 130 further includes a query module 134. In this case, the query module 134 is used to query idle computing resources from the computing resources starting from the second time slot; the scheduling module 133 is used to schedule the rotation operation corresponding to the non-associated factor of the first factor to be executed on the idle computing resources.
[0113] Figure 13 The encrypted information processing apparatus of the illustrated embodiment can be used to execute the technical solution of the above method embodiment. Its implementation principle and technical effect are similar, and will not be repeated here.
[0114] The above describes the internal functions and structure of a device for processing encrypted information, which can be implemented as an electronic device. Figure 13 A schematic diagram illustrating the structure of an electronic device embodiment provided in this disclosure. (See attached diagram.) Figure 14 As shown, the electronic device includes a memory 141 and a processor 142.
[0115] Memory 141 is used to store programs. In addition to the programs described above, memory 141 can also be configured to store various other data to support operation on the electronic device. Examples of this data include instructions for any application or method used to operate on the electronic device, contact data, phone book data, messages, pictures, videos, etc.
[0116] The memory 141 can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic storage, flash memory, magnetic disk or optical disk.
[0117] Processor 142, coupled to memory 141, executes the program stored in memory 141 for:
[0118] Obtain encrypted information;
[0119] Determine multiple rotation step sizes for rotating the encrypted information, each rotation step size consisting of one or more factors, each factor being an integer power of 2;
[0120] The rotation operations corresponding to the multiple rotation step size factors are scheduled to be executed on multiple computing resources;
[0121] The plurality of computing resources are determined based on the plurality of computing units of the cloud computing platform and at least one time slot. Each computing resource is the computing resource of a computing unit in one time slot. The number of time slots corresponding to the plurality of computing resources is greater than or equal to the number of factors of the target rotation step size. The target rotation step size is the rotation step size that includes the most factors among the plurality of rotation step sizes.
[0122] The total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation steps;
[0123] Among the multiple computing resources, some computing resources with adjacent time slots are related, and the rotation results output by the multiple computing resources include the rotation results corresponding to the multiple rotation steps respectively.
[0124] Furthermore, such as Figure 14 As shown, the electronic device may also include other components such as a communication component 143, a power supply component 144, an audio component 145, and a display 146. Figure 14 The diagram only shows some components and does not mean that the electronic device includes only these components. Figure 14 Figure 14 The components shown.
[0125] The electronic device can be a terminal as described above, or it can be a hardware device in a cloud computing platform as described above. When the electronic device is a terminal, the communication component 143 is used to send encrypted information, such as enc(x), to the cloud computing platform.
[0126] When the electronic device is a hardware device in a cloud computing platform, the communication component 143 can receive the encrypted information, such as enc(x). The processor 142 can execute the program stored in the memory 141 to perform the calculation process on enc(x). For example, it can use a function f to calculate enc(x) to obtain f(enc(x)). The specific calculation process can be referred to the calculation process described in the above method embodiment, and will not be repeated here. The communication component 143 can also feed back f(enc(x)) to the terminal.
[0127] Communication component 143 is configured to facilitate wired or wireless communication between electronic devices and other devices. The electronic devices can access wireless networks based on communication standards, such as WiFi, 2G, or 3G, or combinations thereof. In one exemplary embodiment, communication component 143 receives broadcast signals or broadcast-related information from an external broadcast management system via a broadcast channel. In one exemplary embodiment, communication component 143 also includes a near-field communication (NFC) module to facilitate short-range communication. For example, the NFC module may be implemented based on radio frequency identification (RFID) technology, Infrared Data Association (IrDA) technology, ultra-wideband (UWB) technology, Bluetooth (BT) technology, and other technologies.
[0128] Power supply component 144 provides power to various components of an electronic device. Power supply component 144 may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power to the electronic device.
[0129] Audio component 145 is configured to output and / or input audio signals. For example, audio component 145 includes a microphone (MIC) configured to receive external audio signals when the electronic device is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in memory 141 or transmitted via communication component 143. In some embodiments, audio component 145 also includes a speaker for outputting audio signals.
[0130] Display 146 includes a screen, which may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen can be implemented as a touchscreen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touches, swipes, and gestures on the touch panel. The touch sensors can sense not only the boundaries of the touch or swipe action but also the duration and pressure associated with the touch or swipe operation.
[0131] In addition, this disclosure also provides a computer-readable storage medium suitable for cloud computing platforms, on which a computer program is stored, which is executed by a processor to implement the encrypted information processing method described in the above embodiments.
[0132] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0133] The above description is merely a specific embodiment of this disclosure, enabling those skilled in the art to understand or implement it. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not to be limited to the embodiments described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A method for processing encrypted information suitable for cloud computing platforms, wherein, The method includes: Obtain encrypted information; Determine multiple rotation step sizes for rotating the encrypted information, each rotation step size consisting of one or more factors, each factor being an integer power of 2; The rotation operations corresponding to the multiple rotation step size factors are scheduled to be executed on multiple computing resources; The plurality of computing resources are determined based on the plurality of computing units of the cloud computing platform and at least one time slot. Each computing resource is the computing resource of a computing unit in one time slot. The number of time slots corresponding to the plurality of computing resources is greater than or equal to the number of factors of the target rotation step size. The target rotation step size is the rotation step size that includes the most factors among the plurality of rotation step sizes. The total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation steps; Among the multiple computing resources, some computing resources with adjacent time slots are related, and the rotation results output by the multiple computing resources include the rotation results corresponding to the multiple rotation steps respectively.
2. The method according to claim 1, wherein, The rotation operations corresponding to the multiple rotation step size factors are scheduled to be executed on multiple computing resources, including: Determine the first factor that appears most frequently among the factors corresponding to the plurality of rotation step sizes; The rotation operation corresponding to the first factor is scheduled to be executed on the first computing resource, which is determined by the first computing unit and the first time slot; The rotation operation corresponding to the associated factor of the first factor is scheduled to be executed on the computing resources starting from the second time slot, which is the next time slot after the first time slot.
3. The method according to claim 2, wherein, The rotation operations corresponding to the associated factors of the first factor are scheduled to be executed on computing resources starting from the second time slot, including: Identify a second factor associated with the first factor, wherein the second factor appears most frequently among the associated factors of the first factor; The rotation operation corresponding to the second factor is scheduled to be executed on the second computing resource, which is determined by the first computing unit and the second time slot. The output of the first computing resource is the input of the second computing resource. The rotation operation corresponding to the third factor associated with the first factor is scheduled to be executed on the third computing resource, which is a computing resource that starts from the second time slot and does not include the second computing resource, and the output of the first computing resource is the input of the third computing resource.
4. The method according to claim 3, wherein, The method further includes: The rotation operation corresponding to the associated factor of the second factor is scheduled to be executed on the computing resources starting from the third time slot, which is the next time slot after the second time slot, and the output of the second computing resource is the input of the computing resources starting from the third time slot.
5. The method according to claim 3, wherein, The third computing resource is the computing resource corresponding to the second computing unit.
6. The method according to claim 2, wherein, The method further includes: The rotation operations corresponding to the non-associated factors of the first factor are scheduled to be executed on computing resources starting from the first time slot.
7. The method according to claim 6, wherein, The rotation operations corresponding to the unrelated factors of the first factor are scheduled to be executed on computing resources starting from the first time slot, including: If there are available computing resources corresponding to the first time slot, the rotation operation corresponding to the non-associated factor of the first factor will be scheduled to be executed on the computing resources starting from the first time slot.
8. The method according to claim 7, wherein, The method further includes: If there are no available computing resources in the first time slot, then query available computing resources from the computing resources starting from the second time slot; The rotation operations corresponding to the non-associated factors of the first factor are scheduled to be executed on the idle computing resources.
9. A device for processing encrypted information, suitable for a cloud computing platform, wherein, include: The acquisition module is used to acquire encrypted information; The determining module is used to determine multiple rotation step sizes for rotating the encrypted information, each rotation step size consisting of one or more factors, each factor being an integer power of 2; The scheduling module is used to schedule the rotation operations corresponding to the multiple rotation step size factors to multiple computing resources for execution; The plurality of computing resources are determined based on the plurality of computing units of the cloud computing platform and at least one time slot. Each computing resource is the computing resource of a computing unit in one time slot. The number of time slots corresponding to the plurality of computing resources is greater than or equal to the number of factors of the target rotation step size. The target rotation step size is the rotation step size that includes the most factors among the plurality of rotation step sizes. The total number of the plurality of computing resources is less than the total number of factors corresponding to the plurality of rotation steps; Among the multiple computing resources, some computing resources with adjacent time slots are related, and the rotation results output by the multiple computing resources include the rotation results corresponding to the multiple rotation steps respectively.
10. The apparatus according to claim 9, wherein, When the scheduling module schedules the rotation operations corresponding to the multiple rotation step size factors to be executed on multiple computing resources, it is specifically used for: Determine the first factor that appears most frequently among the factors corresponding to the plurality of rotation step sizes; The rotation operation corresponding to the first factor is scheduled to be executed on the first computing resource, which is determined by the first computing unit and the first time slot; The rotation operation corresponding to the associated factor of the first factor is scheduled to be executed on the computing resources starting from the second time slot, which is the next time slot after the first time slot.
11. The apparatus according to claim 10, wherein, When the scheduling module schedules the rotation operation corresponding to the associated factor of the first factor to be executed on computing resources starting from the second time slot, it is specifically used for: Identify a second factor associated with the first factor, wherein the second factor appears most frequently among the associated factors of the first factor; The rotation operation corresponding to the second factor is scheduled to be executed on the second computing resource, which is determined by the first computing unit and the second time slot. The output of the first computing resource is the input of the second computing resource. The rotation operation corresponding to the third factor associated with the first factor is scheduled to be executed on the third computing resource, which is a computing resource that starts from the second time slot and does not include the second computing resource, and the output of the first computing resource is the input of the third computing resource.
12. The apparatus according to claim 11, wherein, The scheduling module is also used for: The rotation operation corresponding to the associated factor of the second factor is scheduled to be executed on the computing resources starting from the third time slot, which is the next time slot after the second time slot, and the output of the second computing resource is the input of the computing resources starting from the third time slot.
13. An electronic device, wherein, include: Memory; processor; as well as Computer programs; The computer program is stored in the memory and configured to be executed by the processor to implement the method as described in any one of claims 1-8.
14. A computer-readable storage medium suitable for a cloud computing platform, wherein a computer program is stored thereon, When the computer program is executed by a processor, it implements the method as described in any one of claims 1-8.
Citation Information
Patent Citations
Generation method and device of rotation factor
CN102045279A
Methods and devices for multi-granularity parallel FFT butterfly computation
US20140330880A1