Data processing method and apparatus, and program product

By employing an equivalent point operation method in the Jacobian coordinate system, the vulnerability of elliptic curve cryptography to side-channel attacks in scalar multiplication is solved. This achieves resistance to power consumption/electromagnetic analysis and fault injection attacks, thereby improving the security and concealment of data processing.

WO2026124000A1PCT designated stage Publication Date: 2026-06-18CHINA RESOURCES MICROELECTRONICS HLDG LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
CHINA RESOURCES MICROELECTRONICS HLDG LTD
Filing Date
2025-10-29
Publication Date
2026-06-18

AI Technical Summary

Technical Problem

Existing elliptic curve cryptosystems are vulnerable to side-channel attacks when performing scalar multiplication, especially power/electromagnetic analysis and fault injection attacks, which can lead to the leakage of sensitive information and are unable to effectively defend against SPA and Safe-error attacks.

Method used

By employing the equivalent point operation method in the Jacobian coordinate system, when no point addition operation is performed, the operation steps of the equivalent point operation in the Jacobian coordinate system are completely consistent with those of the point addition operation, ensuring that there is no significant difference on the power consumption curve, thereby resisting side-channel attacks.

🎯Benefits of technology

It effectively resists side-channel attacks, prevents attackers from obtaining sensitive information by observing power consumption waveforms, and improves the security and concealment of data processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025130939_18062026_PF_FP_ABST
    Figure CN2025130939_18062026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to a data processing method and apparatus, and a program product. The data processing method comprises: acquiring a scalar and a first coordinate point; determining a second coordinate point on the basis of a preset elliptic curve; performing a point doubling operation on the second coordinate point to determine a third coordinate point; when a bit in the bit sequence of the scalar is 0, determining a fourth coordinate point on the basis of the first coordinate point, the third coordinate point and a first operation, and updating the third coordinate point on the basis of the fourth coordinate point; when a bit in the bit sequence of the scalar is non-zero, updating the third coordinate point on the basis of the first coordinate point, the third coordinate point and a second operation, wherein the operation types of the first operation and the second operation are the same; when the bit sequence of the scalar has not been traversed, performing a point doubling operation on the updated third coordinate point; and when the bit sequence of the scalar has been traversed, outputting the updated third coordinate point after the scalar has been traversed.
Need to check novelty before this filing date? Find Prior Art

Description

Data processing methods, devices, and software products

[0001] Related applications

[0002] This application claims priority to Chinese patent application filed on December 12, 2024, with application number 2024118354697, entitled "Data Processing Method, Apparatus, and Program Product", the entire contents of which are incorporated herein by reference. Technical Field

[0003] This application relates to the field of security chip technology, and in particular to a data processing method, apparatus, and program product. Background Technology

[0004] The statements herein are provided only as background information in connection with this application and do not necessarily constitute prior art.

[0005] With the continuous development of chip technology and the expanding application scenarios of chips, chip information security has received widespread attention. For example, in the field of automotive security chips, elliptic curve cryptography (ECC) is often used to protect the information security of data exchange processes. Compared with asymmetric encryption algorithms (Rivest–Shamir–Adleman, RSA), ECC has the advantage of "short keys" at the same level of security and has been widely implemented and applied, especially in the high-concurrency security authentication scenarios of vehicle-to-everything (V2X) technology in intelligent connected vehicles. ECC has replaced RSA as the mainstream public-key cryptosystem. Summary of the Invention

[0006] According to various embodiments of this application, a data processing method, an automotive security chip, an apparatus, and a program product are provided.

[0007] A data processing method includes: acquiring a scalar and a first coordinate point, wherein the first coordinate point is configured as a point on a preset elliptic curve in a Jacobian coordinate system; determining a second coordinate point based on the preset elliptic curve, wherein the second coordinate point is configured as the infinity point of the preset elliptic curve; performing one or more point multiplication operations on the second coordinate point to determine a third coordinate point; and updating the third coordinate point based on the scalar, including: when the bit sequence of the scalar is 0, determining a fourth coordinate point based on the first coordinate point, the third coordinate point, and a first operation, and updating the third coordinate point based on the fourth coordinate point. The fourth coordinate point is an equivalent point of the third coordinate point; when the bit sequence of the scalar is non-zero, the third coordinate point is updated based on the first coordinate point, the third coordinate point, and the second operation; wherein the first operation and the second operation have the same operation type; it is determined whether the bit sequence of the scalar is traversed; when the bit sequence of the scalar is not traversed, the point doubling operation is continued on the updated third coordinate point, and the point doubling operation is continued to be updated based on the scalar; when the bit sequence of the scalar is traversed, the updated third coordinate point after traversing the scalar is output.

[0008] Optionally, determining the fourth coordinate point based on the first coordinate point, the third coordinate point, and the first operation includes: determining the first affine point based on the third coordinate point; and determining the fourth coordinate point based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point, wherein the affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first coordinate point and the coordinate components of the third coordinate point through the first operation.

[0009] Optionally, the operation type includes one or more of the following: modular addition, modular subtraction, modular multiplication, or modular squaring.

[0010] Optionally, scalars include a set of binary numbers.

[0011] A data processing method includes: obtaining a scalar and a first coordinate point; configuring the first coordinate point as a point on a preset elliptic curve in a Jacobian coordinate system; determining a second coordinate point based on the preset elliptic curve; configuring the second coordinate point as the point at infinity of the preset elliptic curve; performing a doubling operation on the second coordinate point to obtain a third coordinate point; and updating the third coordinate point based on the scalar, including: when the bit sequence of the scalar is 0, obtaining a fourth coordinate point based on the first coordinate point and the third coordinate point through a first operation, wherein the fourth coordinate point is an equivalent point of the third coordinate point, and using the fourth coordinate point as the updated third coordinate point; when the bit sequence of the scalar is non-zero, updating the third coordinate point based on the first coordinate point and the third coordinate point through a second operation; responding to the traversal of the bit sequence of the scalar, outputting the updated third coordinate point obtained after traversing the scalar, otherwise performing a doubling operation on the updated third coordinate point, and updating the doubling third coordinate point again based on the scalar, until the bit sequence of the scalar is traversed; wherein the first operation and the second operation are of the same type.

[0012] Optionally, the step of obtaining a fourth coordinate point based on the first coordinate point and the third coordinate point through a first operation includes: obtaining a first affine point based on the third coordinate point; and obtaining the fourth coordinate point based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point; wherein the affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first coordinate point and the coordinate components of the third coordinate point through the first operation.

[0013] Optionally, the coordinates of the first coordinate point are (X2, Y2, Z2), the coordinates of the third coordinate point are (X1, Y1, Z1), the coordinates of the fourth coordinate point are (X3, Y3, Z3), and the coordinates of the first affine point are (X1 / Z1). 2 ,Y1 / Z1 3 The coordinate components of the fourth coordinate point, expressed in terms of the coordinate components of the first coordinate point and the third coordinate point, are: X3 = (X2 * Z2 * Y2) 4 *X1, Y3=(X2*Z2*Y2) 6 *Y1, Z3 = (X2 * Z2 * Y2) 2 *Z1.

[0014] Optionally, the operation type includes one or more of the following: modular addition, modular subtraction, modular multiplication, and modular squaring.

[0015] Optionally, both the first operation and the second operation include multiple operation steps, and the number of operation steps in the first operation and the second operation are the same. The operation type of each operation step in the first operation is the same as the operation type of the corresponding operation step in the second operation.

[0016] Optionally, the scalar multiplication employs a binary scalar multiplication algorithm.

[0017] Optionally, each bit sequence of the scalar is either 0 or 1.

[0018] A data processing apparatus is configured to perform the method described in any of the foregoing embodiments.

[0019] An automotive security chip is configured to perform the method described in any of the foregoing embodiments.

[0020] A computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, implement the steps of the method described in any of the foregoing embodiments.

[0021] A computer program product includes instructions that, when executed by a processor, implement the steps of the method described in any of the foregoing embodiments.

[0022] Details of one or more embodiments of this application are set forth in the following drawings and description. Other features, objects, and advantages of this application will become apparent from the specification, drawings, and claims. Attached Figure Description

[0023] To better describe and illustrate embodiments and / or examples of the inventions disclosed herein, reference may be made to one or more accompanying drawings. Additional details or examples used to describe the drawings should not be considered as limiting the scope of any of the disclosed inventions, the currently described embodiments and / or examples, or the best mode of these inventions as currently understood.

[0024] Figure 1 shows a flowchart of the first exemplary elliptic curve binary scalar multiplication algorithm;

[0025] Figure 2 shows a flowchart of the second exemplary elliptic curve binary scalar multiplication algorithm;

[0026] Figure 3 shows a flowchart of a data processing method provided in some embodiments of this application;

[0027] Figure 4 shows a schematic diagram of the structure of a data processing apparatus provided in some embodiments of this application;

[0028] Figure 5 is a flowchart of a data processing method in one embodiment of this application;

[0029] Figure 6 is a flowchart of the sub-steps of step S740 in one embodiment of this application. Detailed Implementation

[0030] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0031] The accompanying drawings described below are merely some embodiments of this application. For those skilled in the art, other drawings and other embodiments can be obtained based on these drawings without creative effort. Any adjustments and improvements made without departing from the concept of this application are within the protection scope of this application.

[0032] To keep the drawings simple, each figure only schematically shows the parts relevant to the embodiment and does not represent the actual structure of the product. Furthermore, for ease of understanding, the figures schematically depict only some structures or components; in reality, there may be more or fewer similar structures or components.

[0033] To provide reliable data security protection within chips and ensure data confidentiality and integrity, various encryption algorithms, such as Elliptic Curve Cryptography (ECC) and asymmetric encryption algorithms (RSA), are widely used in various chips and scenarios. For example, in security chips for intelligent connected vehicles, ECC is a public-key encryption technology based on the mathematical structure of elliptic curves, relying on the difficulty of solving the elliptic curve discrete logarithm problem (ECDLP). Compared to traditional RSA and DSA, ECC uses a shorter key length to provide the same security, thus offering significant advantages in efficiency and storage, making it the mainstream encryption method. Especially in the high-concurrency security authentication scenarios of V2X in intelligent connected vehicles, ECC has replaced asymmetric encryption algorithms as the mainstream public-key cryptosystem. Compared to smart cards and IoT security chips, automotive security chips have higher performance requirements for implementing ECC. Although the chips have abundant internal storage resources, they are essentially embedded microcontroller units (MCUs), which limits the consumption of on-chip resources. Side-channel attacks targeting cryptographic circuits are a major threat to information leakage. For example, side-channel attacks (SCA) exploit the power consumption, electromagnetic induction, and other side-channel information leaked during the operation of cryptographic algorithms within the circuit. By analyzing these features, secret data such as keys can be extracted. Power / electromagnetic analysis (PEA) is currently the most prevalent type of side-channel attack. It attacks by monitoring the leaked physical information such as current, voltage, and electromagnetic fields in the encryption system. For instance, simple power / EM analysis (SPA / SEMA) can be performed by directly observing the power consumption characteristics of the cryptographic circuit during operation. If there are clearly identifiable features on the power consumption curve, a large amount of sensitive information can be obtained by analyzing just one curve. Another example is fault injection attacks, which inject faults into critical steps of the cryptographic circuit's operation and analyze the injection results to obtain secret data. Elliptic curve cryptosystems often utilize elliptic curve scalar multiplication in key generation, encryption / decryption, and digital signature security processes to achieve their data protection objectives.

[0034] Please refer to Figure 1, which shows a flowchart of a first exemplary elliptic curve binary scalar multiplication algorithm, which includes the following steps:

[0035] S110: Input scalar a = (a i ,……,a1,a0)2,Point A is any point on the elliptic curve E(Fq);

[0036] S120: Set point F as the point at infinity of the elliptic curve E(Fq), i.e., F = 0;

[0037] S130: For the bit sequence of scalar a, from a i Iterate up to a0;

[0038] S131: Perform a doubling operation on point F, i.e., F = 2F;

[0039] S132: Determine a j Is it equal to 1, j∈[0,1,2,……,i];

[0040] S133: Perform a point addition operation on point F, i.e., F = F + A;

[0041] S134: Determine whether to iterate over scalar a;

[0042] S140: Output F, where F = kA.

[0043] In ECC scalar multiplication, the scalars are typically confidential, meaning they are sensitive information that cannot be obtained by attackers. In the above steps, when step S132 determines a... j If the value is 1, proceed to step S133; otherwise, continue traversing the next bit sequence a. j Execute step S131; after determining the traversal of scalar a in step S134, output F at this time. For example, if scalar a is a binary data, and the bit sequence represents the number of each bit in the binary data, such as scalar a being binary data 1011, then bit sequence a3 is 1, bit sequence a2 is 0, bit sequence a1 is 1, and bit sequence a0 is 0. To further explain the above steps, for example, when calculating scalar a = 1011, when traversing a3, F = 0 + A = A; when traversing a2, F = 2A; when traversing a1, F = 5A; when traversing a0, F = 11A, and the output is 11A after completing the traversal, thus obtaining the output result of the scalar multiplication. The problem with the implementation method of binary scalar multiplication is that the dot addition in step S133 only occurs in the current scalar a. i The calculation is only performed when the value is 1. The doubling operation in step S131 is required for each iteration of the bit sequence of scalar a. Since doubling and point addition are different types of operations, a clear difference can be observed in the power consumption curve. Therefore, if an attacker discovers that two doubling operations are performed consecutively, they can know that the binary scalar corresponding to the current loop is 0, thus leaking sensitive information. Therefore, this method cannot resist SPA attacks.

[0044] Another solution is if the current bit sequence a jWhen the result is 0, a sham operation is performed, that is, a point addition operation is still performed, but the result is discarded. Please refer to Figure 2, which shows a flowchart of the second exemplary elliptic curve binary scalar multiplication algorithm, which includes the following steps:

[0045] S210: Input scalar a, scalar a = (a i ..., a1, a0)2, point B is any point on the elliptic curve E(Fq);

[0046] S220: Set point F to the point at infinity of the elliptic curve E(Fq), i.e., F = 0;

[0047] S230: For the bit sequence of scalar a, from a i Iterate up to a0;

[0048] S231: Perform a doubling operation on point F, i.e., F = 2F;

[0049] S232: Determine a j Is it equal to 1, j∈[0,1,2,……,i];

[0050] S2321: Perform a point addition operation on point F, i.e., F' = F + B, and discard F';

[0051] S233: Perform a point addition operation on point F, i.e., F = F + B;

[0052] S234: Determine whether to iterate over scalar a;

[0053] S240: Output F, where F = kB.

[0054] The above implementation steps eliminate the differences between execution branches concerning scalars, that is, regardless of a jWhether the result is 1 or not, the specific calculation process involves point addition, making it impossible to distinguish the differences based on power consumption characteristics during execution, thus failing to resist SPA attacks. While the second ECC anti-attack scalar multiplication implementation eliminates branches in power consumption characteristics during execution and can resist SPA attacks, it cannot resist a type of fault injection attack (Safe-error). During the ECC circuit's power consumption, an attacker can inject a fault into the circuit at the point addition operation (i.e., step S2321) and determine the authenticity of the injected fault by observing its impact on the final execution result. If the injected fault affects the final execution result, it indicates that the point addition at the fault injection point is a true operation, meaning at least one of the multiple scalar bits corresponding to the current loop is not 0; conversely, if the injected fault does not affect the final result, it indicates that the point addition at the fault injection point is a false operation, meaning all the scalar bits corresponding to the current loop are 0. Once an attacker identifies the authenticity of point addition operations at each point in the ECC scalar multiplication process through a Safe-error attack, they can then obtain sensitive scalar information through SPA attacks. Besides the two methods mentioned above, other scalar multiplication implementations, such as the window method and the key averaging method, all have similar problems, namely, the execution of point addition operations can leak sensitive information.

[0055] To address the aforementioned issues, this application provides a data processing method that performs equivalent point operations on Jacobian coordinates when point addition is not required. This ensures that the operation steps of equivalent point operations on Jacobian coordinates are completely identical to those of point addition, with no significant difference in the power consumption curve. Without performing spoofing, this application prevents attackers from obtaining sensitive information by observing the power consumption waveform, thus resisting side-channel attacks.

[0056] The following description is in conjunction with the accompanying drawings.

[0057] Please refer to Figure 3, which shows a flowchart of a data processing method provided in some embodiments of this application. This method is used to protect chip information security and includes at least the following steps:

[0058] S310: Obtain a scalar and a first coordinate point, the first data including a set of positional numbers, the first coordinate point being configured as a point on a preset elliptic curve in the Jacobian coordinate system;

[0059] S320: Determine the second coordinate point based on the preset elliptic curve, and the second coordinate point is configured as the infinity point of the preset elliptic curve;

[0060] S330: Perform one or more point multiplication operations on the second coordinate point to determine the third coordinate point;

[0061] Updating the third coordinate point based on scalars includes:

[0062] S341: When the scalar bit sequence is 0, the fourth coordinate point is determined based on the first coordinate point, the third coordinate point and the first operation, and the third coordinate point is updated based on the fourth coordinate point. The fourth coordinate point is the equivalent point of the third coordinate point.

[0063] S342: When the bit sequence of the scalar is non-zero, update the third coordinate point based on the first coordinate point, the third coordinate point, and the second operation; wherein the first operation and the second operation are of the same type;

[0064] S350: Determine whether the scalar bit sequence has been traversed; if the scalar bit sequence has not been traversed, continue to perform the doubling operation on the updated third coordinate point, and continue to update the third coordinate point after the doubling operation based on the scalar.

[0065] S360: When traversing the bit sequence of a scalar, output the updated third coordinate point after traversing the scalar.

[0066] In the above steps, within elliptic curve cryptography, different elliptic curve implementations can be designed based on different data security requirements or application scenarios. Therefore, this application does not limit the predefined form of the elliptic curve and it can be predetermined based on design requirements. Jacobian coordinates are a coordinate system used for point operations on elliptic curves, especially in prime fields, where they can accelerate these operations and improve computational efficiency. In the traditional Cartesian coordinate system, points on an elliptic curve can be represented by two coordinate components, such as (x, y). However, in the Jacobian coordinate system, points on an elliptic curve can be represented by three-dimensional coordinates (X, Y, Z), where they have the following relationship with Cartesian coordinates: x = X / Z 2 y = Y / Z 3 This representation allows for the calculation of point addition and doubling operations without division. Typically, point operations on elliptic curves require numerous modular operations, especially division, which is relatively time-consuming. By using Jacobian coordinates, division can be postponed or replaced with more efficient multiplication. In the Jacobian coordinate system, when points M(X,Y,Z) and N(X',Y',Z') satisfy the condition: X / Z... 2 =X' / Z' 2 and Y / Z 3 =Y' / Z' 3In this case, points M and N can be considered equivalent points, meaning that points in the two Jacobian coordinate systems correspond to the same point T(x,y) after being transformed back to Cartesian coordinates. Point T can be considered an affine point of points M and N. Therefore, there can be a one-to-many relationship between affine points and equivalent points. Equivalent points represent points in the same Cartesian coordinate system, only using different Z values ​​in the Jacobian coordinate system. In this application, the first coordinate point P and the second coordinate point Q can be determined based on a preset elliptic curve E(Fq3). The first coordinate point P is a point on the elliptic curve E(Fq3), and the second coordinate point Q can be the point at infinity of the preset elliptic curve E(Fq3). The third coordinate point Q' is determined by performing one or more point multiplication operations on the second coordinate point Q. Then, when traversing based on the scalar k(ki,……,k0), the bit sequence kj of the scalar k can be compared with the value 0 (j∈[0,1,2,……,i]), thereby determining the specific execution process of scalar multiplication. For example, when the bit sequence kj of scalar k is 0, no point addition operation is performed on the third coordinate point Q'. The coordinates of the third coordinate point Q' can be (X1, Y1, Z1), and the coordinates of the first coordinate point P can be (X2, Y2, Z2). The equivalent point is calculated through the first operation, and the coordinates of the first affine point Q1 of the third coordinate point Q' are (X1 / Z1). 2 ,Y1 / Z1 3 Therefore, the coordinates of the fourth coordinate point R obtained from the first coordinate point P and the third coordinate point Q' through the first operation can be (X3, Y3, Z3). After the first operation, the coordinates of the fourth coordinate point R can be expressed as X3 = (X2 * Z2 * Y2) through the coordinate components of the first coordinate point P and the third coordinate point Q'. 4 *X1, Y3=(X2*Z2*Y2) 6 *Y1, Z3 = (X2 * Z2 * Y2) 2 *Z1, therefore, the affine point of the fourth coordinate point R is also (X1 / Z1). 2 ,Y1 / Z1 3Therefore, the third coordinate point Q' and the fourth coordinate point R are equivalent points. Thus, although the above process involves actual calculation steps, it does not actually affect the result of scalar multiplication. When the bit sequence kj of the scalar k is non-zero, a point addition operation is performed on the third coordinate point Q'. To make the point addition operation and the aforementioned equivalent point operation difficult for an attacker to distinguish, the same operation type as the first operation can be used in the second operation to ensure that there is no obvious difference in the outline of the power consumption waveform between the first and second operations. The implementation method of the second operation (i.e., which specific operation steps it includes) is not unique; the implementation steps of the second operation can be adjusted according to the implementation of the first operation to make it impossible for an attacker to distinguish between the equivalent point operation and the point addition operation. Since the relationship between affine points and coordinate points in the Jacobian coordinate system can be one-to-many, the coordinates of the fourth coordinate point R represented by the coordinate components of the first coordinate point P and the third coordinate point Q' can have multiple cases, thus updating the third coordinate point based on the determined fourth coordinate point. When updating the bit sequence of the scalar at the third coordinate point to a non-zero value based on the fourth coordinate point, it is possible to achieve a real computation process without affecting the calculation result of the scalar multiplication. This makes it difficult for attackers to observe the different processing methods of bit sequences of different scalars in the algorithm. When performing one or more doubling operations on the third coordinate point, the number of doubling operations depends on the selected scalar multiplication algorithm. Some algorithms require one doubling operation in each loop, such as the binary algorithm; while others require multiple doubling operations in each loop, such as the window method. The number of doubling operations is determined by the window width.

[0067] In some embodiments of this application, based on the data processing method provided in the above embodiments, when the bit sequence kj is 0, an equivalence point operation is performed, and the fourth coordinate point R(X3,Y3,Z3) is represented by the first coordinate point P(X2,Y2,Z2) and the third coordinate point Q'(X1,Y1,Z1). The following shows the implementation of the first operation in the first way:

[0068] Step 401: T1 = Z2 * Z2 → (T1 = Z2) 2 );

[0069] Step 402: T2 = X2 * T1 → (T2 = X2 * Z2) 2 );

[0070] Step 403: T3 = Y2 * Y2 → (T3 = Y2) 2 );

[0071] Step 404: T4 = T2 * T3 → (T4 = X2 * Y2) 2 *Z2 2 );

[0072] Step 405: T5 = T4 * X2 → (T5 = (X2 * Y2 * Z2) 2 );

[0073] Step 406: T6 = X2 * Y2 → (T6 = X2 * Y2);

[0074] Step 407: T7 = T6 * Z2 → (T7 = X2 * Y2 * Z2);

[0075] Step 408: T8 = T4 * T7 → (T8 = X2) 2 *Y2 3 *Z2 3 );

[0076] Step 409: T9 = p - T5 → (T9 = -(X2 * Y2 * Z2) 2 );

[0077] Step 410: T10 = p - X1 → (T10 = -X1);

[0078] Step 411: T11 = T8 * X2 → (T11 = (X2 * Y2 * Z2)) 3 );

[0079] Step 412: T12 = T7 * T11 → (T12 = (X2 * Y2 * Z2)) 4 );

[0080] Step 413: T13 = T9 * T9 → (T13 = (X2 * Y2 * Z2)) 4 );

[0081] Step 414: T14 = T10 * T13 → (T14 = -X1 * (X2 * Y2 * Z2)) 4 );

[0082] Step 415: Z3 = T5 * Z1 → (Z3 = Z1 * (X2 * Y2 * Z2) 2 );

[0083] Step 416: T16 = T7 * T7 → (T16 = (X2 * Y2 * Z2)) 2 );

[0084] Step 417: T17 = p - T16 → (T17 = -(X2 * Y2 * Z2)) 2 );

[0085] Step 418: T18 = p - T12 → (T18 = -(X2 * Y2 * Z2)) 4 );

[0086] Step 419: X3 = p - T14 → (X3 = X1 * (X2 * Y2 * Z2) 4 );

[0087] Step 420: T20 = T17 * T18 → (T20 = (X2 * Y2 * Z2)) 6 );

[0088] Step 421: T21 = p - T20 → (T21 = -(X2 * Y2 * Z2)) 6 );

[0089] Step 422: T22 = Y1 * T21 → (T22 = -Y1 * (X2 * Y2 * Z2) 6 );

[0090] Step 423: Y3 = p - T22 → (Y3 = Y1 * (X2 * Y2 * Z2) 6 ).

[0091] Based on steps 401 to 423 above, the coordinate components of the fourth coordinate point R are X3 = (X2 * Z2 * Y2). 4 *X1, Y3=(X2*Z2*Y2) 6 *Y1, Z3 = (X2 * Z2 * Y2) 2 *Z1, whose corresponding affine point is (X1 / Z1) 2 ,Y1 / Z1 3 The fourth coordinate point R corresponds to the same affine point as the third coordinate point Q'(X1,Y1,Z1), where T1 to T22 are intermediate parameters. Therefore, the fourth coordinate point R is an equivalent point to the third coordinate point Q'. The following shows the second implementation of the first operation:

[0092] Step 501: U1 = Z2 * Z2 → (U1 = Z2) 2 );

[0093] Step 502: U2 = X2 * U1 → (U2 = X2 * Z2) 2 );

[0094] Step 503: U3 = Y2 * Y2 → (U3 = Y2) 2 );

[0095] Step 504: U4 = U2 * U3 → (U4 = X2 * Y2) 2 *Z2 2 );

[0096] Step 505: U5 = U4 * X2 → (U5 = (X2 * Y2 * Z2) 2 );

[0097] Step 506: U6 = X2 * Y2 → (U6 = X2 * Y2);

[0098] Step 507: U7 = U6 * Z2 → (U7 = X2 * Y2 * Z2);

[0099] Step 508: U8 = U5 * U7 → (U8 = (X2 * Y2 * Z2) 3 );

[0100] Step 509: U9 = p - U5 → (U9 = -(X2 * Y2 * Z2) 2 );

[0101] Step 510: U10 = p - X1 → (U10 = - X1);

[0102] Step 511: U11 = U7 * U8 → (U11 = (X2 * Y2 * Z2)) 4 );

[0103] Step 512: U12 = U7 * U11 → (U12 = (X2 * Y2 * Z2) 5 );

[0104] Step 513: U13 = U8 * U8 → (U13 = (X2 * Y2 * Z2) 6 );

[0105] Step 514: U14 = U10 * U13 → (U14 = -X1 * (X2 * Y2 * Z2) 6 );

[0106] Step 515: Z3 = U8 * Z1 → (Z3 = Z1 * (X2 * Y2 * Z2) 3 );

[0107] Step 516: U16 = U9 * U9 → (U16 = (X2 * Y2 * Z2)) 4 );

[0108] Step 517: U17 = p - U16 → (U17 = -(X2 * Y2 * Z2)) 4 );

[0109] Step 518: U18 = p - U12 → (U18 = -(X2 * Y2 * Z2)) 5 );

[0110] Step 519: X3 = p - U14 → (X3 = X1 * (X2 * Y2 * Z2) 6 );

[0111] Step 520: U20 = U17 * U18 → (U20 = (X2 * Y2 * Z2)) 9);

[0112] Step 521: U21 = p - U20 → (U21 = -(X2 * Y2 * Z2)) 9 );

[0113] Step 522: U22 = Y1 * U21 → (U22 = -Y1 * (X2 * Y2 * Z2) 9 );

[0114] Step 523: Y3 = p - U22 → (Y3 = Y1 * (X2 * Y2 * Z2) 9 ).

[0115] Based on steps 501 to 523 above, the coordinate components of the fourth coordinate point R are X3 = (X2 * Z2 * Y2). 6 *X1, Y3=(X2*Z2*Y2) 9 *Y1, Z3 = (X2 * Z2 * Y2) 3 *Z1, whose corresponding affine point is (X1 / Z1) 2 ,Y1 / Z1 3 The fourth coordinate point R corresponds to the same affine point as the third coordinate point Q'(X1,Y1,Z1), where U1 to U22 are intermediate parameters. Therefore, the fourth coordinate point R is an equivalent point of the third coordinate point Q'. The method for achieving an equivalent point is not limited to the two first operations mentioned above, as long as X3 / Z3 is satisfied. 2 =X1 / Z1 2 Y3 / Z3 3 =Y1 / Z1 3 This is considered a method of achieving equivalence points.

[0116] Based on the data processing method provided in the above embodiments, when the bit sequence kj is a non-zero value, a point addition operation is performed to update the third coordinate point Q'(X1,Y1,Z1). The following shows an implementation method of the second operation:

[0117] Step 601: T1 = Z2 * Z2 → (T1 = Z2) 2 );

[0118] Step 602: T2 = X1 * T1 → (T2 = X1 * Z2) 2 =V1);

[0119] Step 603: T3 = Z1 * Z1 → (T3 = Z1) 2 );

[0120] Step 604: T4 = X2 * T3 → (T4 = X2 * Z1) 2 =V2);

[0121] Step 605: T1 = Z2 * T1 → (T1 = Z2) 3 );

[0122] Step 606: T1 = Y1 * T1 → (T1 = Y1 * Z2) 3 =S1);

[0123] Step 607: T3 = Z1 * T3 → (T3 = Z1) 3 );

[0124] Step 608: T3 = Y2 * T3 → (T3 = Y2 * Z1) 3 =S2);

[0125] Step 609: T4 = T4 - T2 → (T4 = V2 - V1 = h);

[0126] Step 610: T3 = T3 - T1 → (T3 = S2 - S1 = r);

[0127] Step 611: Z4 = Z1 * Z2 → (Z4 = Z1 * Z2);

[0128] Step 612: Z4 = Z4 * T4 → (Z4 = Z1 * Z2 * h);

[0129] Step 613: X4 = T4 * T4 → (X4 = h 2 );

[0130] Step 614: T2 = X4 * T2 → (T2 = V1 * h) 2 );

[0131] Step 615: T4 = X4 * T4 → (X4 = h 3 );

[0132] Step 616: X4 = T3 * T3 → (X4 = r 2 );

[0133] Step 617: X4 = X4 - T2 → (X4 = r 2 -V1*h 2 );

[0134] Step 618: X4 = X4 - T2 → (X4 = r 2 -2*V1*h 2 );

[0135] Step 619: X4 = X4 - T4 → (X4 = r 2 -2*V1*h 2 -h 3 );

[0136] Step 620: T1 = T1 * T4 → (T1 = S1 * h)3 );

[0137] Step 621: Y4 = T2 - X4 → (Y4 = V1 * h) 2 -X4);

[0138] Step 622: Y4 = Y4 * T3 → (Y4 = (V1 * h) 2 -X4)*r);

[0139] Step 623: Y4 = Y4 - T1 → (Y4 = (V1 * h) 2 -X4)*r-S1*h 3 ).

[0140] Based on the second calculation method of steps 601 to 623 above, wherein the intermediate parameter V1 = X1 * Z2 2 V2 = X2 * Z1 2 h = V2 - V1, S1 = Y1 * Z2 3 S2 = Y2 * Z1 3 Since r = S2 - S1, the third coordinate point Q' can be based on the coordinate component X4 = r 2 -h 3 -2*V1*h 2 Y4 = (V1 * h 2 -X4)*r-S1*h 3 Update Z4 = Z1 * Z2 * h. Compare the operation type of each step in the second operation above with the first type of first operation and the second type of first operation, as shown in Table 1 below:

[0141] Table 1: Comparison of Operation Types between the First and Second Operations

[0142] As shown in Table 1, the second operation is identical in type to both the first and second types of the first operation. Therefore, when an attacker analyzes the scalar multiplication process in elliptic curve cryptography, it is difficult to distinguish the specific operation of the scalar bits under 0 and non-zero values, making it difficult to determine the specific scalar and thus hindering data security. Furthermore, the first and second operations can also be used in other scalar multiplication implementations, such as the window method and key averaging method. That is, when point addition is required, the second operation is used; otherwise, the first operation is used for equivalent point calculation. This prevents attackers from deducing the scalar bits by observing the power consumption waveform.

[0143] In some embodiments of this application, obtaining a fourth coordinate point based on a first coordinate point, a third coordinate point, and a first operation includes: determining a first affine point based on the third coordinate point; determining a fourth coordinate point based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point, wherein the affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first coordinate point and the coordinate components of the third coordinate point through the first operation.

[0144] Since there is a one-to-many relationship between affine points and coordinate points, in order to ensure that the fourth coordinate point R is equivalent to the third coordinate point Q', we can first determine the first affine point Q1 of the third coordinate point through the third coordinate point Q', and then determine the fourth coordinate point R by classifying the coordinates of the first coordinate point P and the third coordinate point Q' through the first coordinate point P, the third coordinate point Q', the first affine point Q1, and the first operation. This improves the accuracy of determining the equivalent point and ensures that the first and second operations achieve the same operation type.

[0145] In some embodiments of this application, the operation types include one or more of modular addition, modular subtraction, modular multiplication, and modular squaring. The first and second operations can include all of the modular addition, modular subtraction, modular multiplication, and modular squaring operations, or two operations such as modular addition and modular subtraction, or modular multiplication and modular squaring, or even three operations such as modular addition, modular subtraction, and modular multiplication. This application does not impose specific limitations and adjustments can be made according to the actual design of the operation types for the first and second operations.

[0146] Based on the same technical concept, please refer to Figure 4, which shows a schematic diagram of the structure of a data processing device provided in some embodiments of this application. The data processing device 40 is used to protect chip information security and includes: an acquisition unit 41, used to acquire a scalar and a first coordinate point, the first coordinate point being configured as a point on a preset elliptic curve in a Jacobian coordinate system; a determination unit 42, used to determine a second coordinate point based on the preset elliptic curve, the second coordinate point being configured as the infinity point of the preset elliptic curve; a doubling operation unit 43, used to perform one or more doubling operations on the second coordinate point to determine a third coordinate point. An update unit 44 is used to update the third coordinate point based on the scalar, including: when the bit sequence of the scalar is 0, determining a fourth coordinate point based on the first coordinate point, the third coordinate point, and a first operation, and updating the third coordinate point based on the fourth coordinate point, the fourth coordinate point being an equivalent point of the third coordinate point; when the bit sequence of the scalar is non-zero, updating the third coordinate point based on the first coordinate point, the third coordinate point, and a second operation; wherein the first operation and the second operation have the same operation type. The judgment unit 45 is used to determine whether the bit sequence of the scalar has been traversed. When the bit sequence of the scalar has not been traversed, the doubling operation unit continues to perform doubling operation on the updated third coordinate point, and the update unit continues to update the third coordinate point after doubling operation based on the scalar. The output unit 46 is used to output the updated third coordinate point after traversing the scalar when the judgment unit determines that the bit sequence of the scalar has been traversed.

[0147] In some embodiments of this application, the updating unit 44 is further configured to determine a first affine point based on a third coordinate point; and to determine a fourth coordinate point based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point, wherein the affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first coordinate point and the coordinate components of the third coordinate point through a first operation.

[0148] The above division of units is merely a logical functional division. In actual implementation, they can be fully or partially integrated into a single physical entity, or they can be physically separated. Furthermore, these units can be implemented by a processor calling software; for example, a signal processing device includes a processor coupled to memory, which stores instructions. The processor calls the instructions stored in memory to implement any of the above signal processing methods or to realize the functions of each unit. The processor can be, for example, a general-purpose processor, such as a CPU, and the memory can be internal or external to the signal processing device. Alternatively, these units can be implemented as hardware circuits. The functions of some or all units can be realized through the design of the hardware circuit, which can be understood as one or more processors. For example, the hardware circuit includes an Application-Specific Integrated Circuit (ASIC), which implements the functions of some or all units by designing the logical relationships between the components within the circuit. Furthermore, the hardware circuit can be implemented using a programmable logic device (PLD), which may include a large number of logic gates. The logical relationships between the logic gates are configured through a configuration file, thereby realizing the functions of some or all units. All units of the above signal processing device can be implemented entirely through processor calling programs, or entirely through hardware circuits, or partially through processor calling programs with the remaining parts implemented through hardware circuits.

[0149] Based on the same technical concept, this application also provides a computer program product, including instructions that, when executed by a processor, execute the data processing method of the above embodiments.

[0150] A processor is a circuit capable of processing signals. For example, a processor includes circuits with instruction fetching and execution capabilities, such as a CPU, microprocessor, graphics processing unit (GPU), or digital signal processor (DSP). Alternatively, a processor can be implemented through the logical relationships of hardware circuits, which can be fixed or reconfigurable. For instance, a processor may include hardware circuits implemented using ASICs or PLDs, such as field-programmable gate arrays (FPGAs). In reconfigurable hardware circuits, the process of the processor loading a configuration file and configuring the hardware circuits can be understood as the processor loading instructions to implement the functions of some or all of the aforementioned units. Furthermore, a processor may include hardware circuits designed for artificial intelligence, which can be understood as an ASIC, such as one or more of a neural network processing unit (NPU), tensor processing unit (TPU), or deep learning processing unit (DPU).

[0151] As can be seen, each unit in the data processing device 40 described above can be one or more processors (or processing circuits) configured to implement the above methods, such as: CPU, GPU, NPU, TPU, DPU, microprocessor, DSP, ASIC, FPGA, or a combination of at least two of these processor types.

[0152] Furthermore, the units in the above signal processing apparatus can be integrated in whole or in part, or they can be implemented independently. In one implementation, these units are integrated together as a system-on-a-chip (SOC). The SOC may include at least one processor for implementing any of the above signal processing methods or for implementing the functions of each unit in the above signal processing apparatus.

[0153] This disclosure does not limit the type of memory. For example, the memory may include read-only memory (ROM) or random access memory (RAM). It may include non-volatile or volatile memory. It may include on-chip or off-chip memory resources. ROM includes, for example, mask ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash ROM; RAM includes, for example, static random-access memory (SRAM) or dynamic random-access memory (DRAM). On-chip memory resources refer to memory circuitry integrated within the chip, which is integrated with other circuits (e.g., processing circuits) to provide storage space for the chip. Examples include on-chip static random-access memory (SRAM) resources or on-chip configuration register space resources. Off-chip storage resources refer to independent storage circuits or chips, such as off-chip double data rate synchronous dynamic RAM (DDR SDRAM, abbreviated as DDR).

[0154] This application provides a data processing method, which is a scalar multiplication processing method based on elliptic curve cryptography. Figure 5 is a flowchart of a data processing method according to an embodiment of this application, including the following steps:

[0155] S710, obtain scalar a and the first coordinate point.

[0156] scalar a = (a i , ..., a1, a0)2, the first coordinate point is configured as a point on a preset elliptic curve in the Jacobian coordinate system.

[0157] S720 determines the second coordinate point based on a preset elliptic curve.

[0158] The second coordinate point is configured as the infinity point of the preset elliptic curve.

[0159] S730, perform a doubling operation on the second coordinate point to obtain the third coordinate point.

[0160] In one embodiment of this application, the doubling operation in step S730 can be performed once or multiple times.

[0161] S740, update the third coordinate point based on scalar a.

[0162] Referring to Figure 6, in one embodiment of this application, step S740 includes the following steps:

[0163] S741, determine the current bit sequence a of scalar a. j If the value is 0, proceed to step S742; otherwise, proceed to step S743.

[0164] j∈[0, 1, 2, ..., i]. In one embodiment of this application, scalar multiplication employs a binary scalar multiplication algorithm, where the bit sequence a j It can be 0 or 1.

[0165] S742, based on the first and third coordinate points, obtains the fourth coordinate point through the first operation.

[0166] The fourth coordinate point is an equivalent point to the third coordinate point. After obtaining the fourth coordinate point, the fourth coordinate point is used as the updated third coordinate point.

[0167] S743 updates the third coordinate point based on the first and third coordinate points through a second operation.

[0168] when a j When the value is 1, the third coordinate point is updated through the second operation based on the first and third coordinate points. The first and second operations have the same operation type.

[0169] S745, determine whether scalar a has been traversed. If yes, proceed to step S747; otherwise, proceed to step S746.

[0170] Perform a doubling operation and the first (or second) operation on each bit sequence of scalar a.

[0171] S746 performs a doubling operation on the updated third coordinate point.

[0172] Perform a doubling operation on the updated third coordinate point, and then return to step S741.

[0173] S747 outputs the third coordinate point obtained after traversing scalar a and updating it.

[0174] The scalar multiplication processing method based on elliptic curve cryptography described above performs the first operation when the scalar bit sequence is 0 and the second operation when the scalar bit sequence is non-zero. Since the first and second operations are of the same type, there is no obvious difference in the power consumption curve. This makes it impossible for attackers to obtain the value of the scalar (sensitive information) by observing the power consumption waveform, thus resisting side-channel attacks and fault injection attacks and improving data security.

[0175] In one embodiment of this application, step S742 includes: determining a first affine point based on a third coordinate point; and determining a fourth coordinate point based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point. The affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first and third coordinate points through a first operation.

[0176] In one embodiment of this application, the coordinates of the first coordinate point are (X2, Y2, Z2), the coordinates of the third coordinate point are (X1, Y1, Z1), the coordinates of the fourth coordinate point are (X3, Y3, Z3), and the coordinates of the first affine point are (X1 / Z1). 2 ,Y1 / Z1 3 The coordinate components of the fourth coordinate point, expressed in terms of the coordinate components of the first and third coordinate points, are: X3 = (X2 * Z2 * Y2) 4 *X1, Y3=(X2*Z2*Y2) 6 *Y1, Z3 = (X2 * Z2 * Y2) 2 *Z1.

[0177] In one embodiment of this application, both the first operation and the second operation include multiple operation steps, and the number of operation steps in the first operation and the second operation are the same. The operation type of each operation step in the first operation is the same as the operation type of the corresponding operation step in the second operation, that is, the first operation step of the first operation has the same operation type as the first operation step of the second operation, the second operation step of the first operation has the same operation type as the second operation step of the second operation, and so on.

[0178] Table 2 compares the performance of the embodiments of this application with the algorithms shown in Figures 1 and 2, where the scalar length in the scalar multiplication operation is t, the multiplication operation is PD, and the addition operation is PA.

[0179] Table 2

[0180] As shown in Table 2, the embodiments of this application can solve the problem of vulnerability to SPA and Safe-error attacks in the exemplary algorithm. Furthermore, the embodiments of this application have the same execution efficiency as the algorithm shown in Figure 2.

[0181] The embodiments of this application can not only improve the binary dot product method, but also enhance the security of other scalar multiplication implementation methods.

[0182] The data processing method of this embodiment (scalar multiplication processing method based on elliptic curve cryptography) is based on the same inventive concept as the data processing method of the above embodiment. For any content not specifically described in the data processing method of this embodiment (scalar multiplication processing method based on elliptic curve cryptography), please refer to the above introduction of the data processing method.

[0183] It should be understood that although the steps in the flowchart of this application are shown sequentially as indicated by the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowchart of this application may include multiple steps or multiple stages, which are not necessarily completed at the same time, but may be executed at different times, and the execution order of these steps or stages is not necessarily sequential, but may be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.

[0184] In this application, the term "multiple" can include two or more. The term "or" is used to describe the relationship between related objects, indicating a non-exclusive inclusion. For example, "A or B" can include: "A alone", "B alone", or "A and B", where "A" and "B" can include a single object or multiple objects. Similarly, "A, B, or C" and "A, B, and C" can include: "A alone", "B alone", "C alone", "A and B", "A and C", "B and C", or "A, B, and C", where "A", "B", and "C" can include a single object or multiple objects. Additionally, the " / " sign in this disclosure is used to indicate an "or" relationship between related objects.

[0185] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0186] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.

Claims

1. A data processing method, characterized in that, include: Obtain a scalar and a first coordinate point, which is configured as a point on a preset elliptic curve in the Jacobian coordinate system; The second coordinate point is determined based on the preset elliptic curve, and the second coordinate point is configured as the infinity point of the preset elliptic curve. Perform one or more point multiplication operations on the second coordinate point to determine the third coordinate point; Updating the third coordinate point based on the scalar includes: When the scalar bit sequence is 0, a fourth coordinate point is determined based on the first coordinate point, the third coordinate point, and the first operation, and the third coordinate point is updated based on the fourth coordinate point. The fourth coordinate point is an equivalent point of the third coordinate point. When the bit sequence of the scalar is non-zero, the third coordinate point is updated based on the first coordinate point, the third coordinate point, and the second operation; wherein the first operation and the second operation are of the same type. Determine whether the bit sequence of the scalar has been traversed; When the bit sequence of the scalar has not been traversed, continue to perform the doubling operation on the updated third coordinate point, and continue to update the third coordinate point after the doubling operation based on the scalar; When traversing the bit sequence of the scalar, output the updated third coordinate point after traversing the scalar.

2. The data processing method according to claim 1, characterized in that, The step of determining the fourth coordinate point based on the first coordinate point, the third coordinate point, and the first operation includes: The first affine point is determined based on the third coordinate point; The fourth coordinate point is determined based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point, wherein the affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first coordinate point and the coordinate components of the third coordinate point through the first operation.

3. The data processing method according to claim 1 or 2, characterized in that, The operation types include one or more of the following: modular addition, modular subtraction, modular multiplication, or modular squaring.

4. The data processing method according to claim 1, characterized in that, The scalar includes a set of binary numbers.

5. A data processing method, comprising: Obtain the scalar and the first coordinate point; The first coordinate point is configured as a point on a preset elliptic curve in the Jacobian coordinate system; The second coordinate point is determined based on the preset elliptic curve; The second coordinate point is configured as the infinity point of the preset elliptic curve; Perform a point multiplication operation on the second coordinate point to obtain the third coordinate point; as well as Updating the third coordinate point based on the scalar includes: When the scalar bit sequence is 0, a fourth coordinate point is obtained through a first operation based on the first coordinate point and the third coordinate point. The fourth coordinate point is an equivalent point of the third coordinate point, and the fourth coordinate point is used as the updated third coordinate point. When the bit sequence of the scalar is non-zero, the third coordinate point is updated through a second operation based on the first coordinate point and the third coordinate point; In response to the scalar bit sequence being traversed, the third coordinate point updated after traversing the scalar is output; otherwise, a doubling operation is performed on the updated third coordinate point, and the third coordinate point after the doubling operation is updated again based on the scalar, until the scalar bit sequence is traversed. The first operation and the second operation are of the same type.

6. The data processing method according to claim 5, characterized in that, The step of obtaining the fourth coordinate point based on the first coordinate point and the third coordinate point through the first calculation includes: The first affine point is obtained based on the third coordinate point; and The fourth coordinate point is obtained based on the coordinate components of the first coordinate point, the coordinate components of the third coordinate point, and the first affine point; wherein, the affine point of the fourth coordinate point is the first affine point, and the coordinate components of the fourth coordinate point are represented by the coordinate components of the first coordinate point and the coordinate components of the third coordinate point through the first operation.

7. The data processing method according to claim 6, characterized in that, The coordinates of the first coordinate point are (X2, Y2, Z2), the coordinates of the third coordinate point are (X1, Y1, Z1), the coordinates of the fourth coordinate point are (X3, Y3, Z3), and the coordinates of the first affine point are (X1 / Z1). 2 ,Y1 / Z1 3 The coordinate components of the fourth coordinate point, expressed in terms of the coordinate components of the first coordinate point and the third coordinate point, are: X3 = (X2 * Z2 * Y2) 4 *X1, Y3=(X2*Z2*Y2) 6 *Y1, Z3 = (X2 * Z2 * Y2) 2 *Z1.

8. The data processing method according to claim 5, characterized in that, The operation types include one or more of the following: modular addition, modular subtraction, modular multiplication, and modular squaring.

9. The data processing method according to claim 5, characterized in that, Both the first operation and the second operation include multiple operation steps, and the number of operation steps in the first operation and the second operation are the same. The operation type of each operation step in the first operation is the same as the operation type of the operation step in the corresponding second operation.

10. The data processing method according to claim 5, characterized in that, The scalar multiplication uses a binary scalar multiplication algorithm.

11. The data processing method according to claim 10, characterized in that, Each bit sequence of the scalar is either 0 or 1.

12. A data processing apparatus configured to perform the method of any one of claims 1 to 4 or the method of any one of claims 5 to 11.

13. An automotive security chip configured to perform the method of any one of claims 1-4 or any one of claims 5 to 11.

14. A computer-readable storage medium storing computer instructions thereon, characterized in that, When the computer instructions are executed by the processor, they implement the steps of the method according to any one of claims 1-4 or the steps of the method according to any one of claims 5 to 11.

15. A computer program product, comprising instructions, characterized in that, When the instructions are executed by the processor, they implement the steps of the method according to any one of claims 1-4 or the steps of the method according to any one of claims 5 to 11.