Enhanced cryptographic hash digests using quantum computing

JP2025022771APending Publication Date: 2025-02-14ACCENTURE GLOBAL SERVICES LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024108830
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-08-03
Filing Date
2024-07-05
Publication Date
2025-02-14

AI Technical Summary

Benefits of technology

【0030】 本明細書の主題の1以上の実装形態の詳細を、添付の図面及び以下の記述により説明する。本主題のその他の特徴、態様、及び利点は、本説明、図面、及び特許請求の範囲から明らかとなるであろう。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025022771000001_ABST
    Figure 2025022771000001_ABST
Patent Text Reader

Abstract

To provide methods, systems and apparatuses for enhancing cryptographic hash digests using quantum computing.SOLUTION: A method comprising: obtaining a hash digest that represents a data input; dividing symbols in the hash digest into multiple groups of equal size; mapping each group to a respective point on a Bloch sphere; initializing each of multiple qubits to a quantum state specified by a respective point on the Bloch sphere; and initializing a quantum system comprising the multiple qubits, and computing an expectation value of the initialized quantum system to obtain a quantum fingerprint for the data input.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] This specification relates to cryptography, computer security, and quantum computing. [Background technology]

[0002] A hash function is a function that can be used to map data of any size and type into a fixed-length string. The value returned by a hash function is called a hash digest, hash value, hash code, or hash. Hash functions are used in several forms of digital communication and have a variety of use cases, including password storage, digital signatures, file management, and authentication.

[0003] Hash functions act as one-way functions, being easy and fast to compute forward but difficult to reverse (e.g., typically requiring significant computational resources). A wide range of hash functions exist, but many are potentially insecure (e.g., can be reversed without significant computational resources). Summary of the Invention [Problem to be solved by the invention]

[0004] This specification describes systems, methods, apparatus, and other techniques for strengthening cryptographic hash digests using quantum computing. [Means for solving the problem]

[0005] In general, innovative aspects of the subject matter described in this specification can be implemented in a method that includes the steps of obtaining a hash digest representing a data input, dividing the symbols of the hash digest into a number of equal-sized groups and mapping each group to a respective point on the Bloch sphere, initializing a quantum system of a number of qubits, where each qubit of the number of qubits is initialized to a quantum state specified by each point on the Bloch sphere, and calculating an expectation value of the initialized quantum system to obtain a quantum fingerprint for the data input.

[0006] Other implementations of this aspect include corresponding computer systems, devices, and computer programs stored on one or more computer storage devices, each configured to perform the operations of the method. One or more classical computer systems can be configured to perform specific operations or actions by virtue of software, firmware, hardware, or a combination thereof embedded in the system that, when operated, performs the operations or causes the system to perform the operations. One or more computer programs can be configured to perform specific operations or actions by virtue of including instructions that, when executed by a data processing device, cause the device to perform the operations.

[0007] Each of the above and other implementations can optionally include one or more of the following features, alone or in combination: In some implementations, mapping each group to a respective point on the Bloch sphere includes determining a magnitude of rotation around the Bloch sphere for each increment of symbols in the hash digest based on the number of groups, dividing the symbols in each group into a first subgroup and a second subgroup of symbols, using the magnitude of rotation to generate a mapping between candidate subgroups in a candidate subgroup set and respective rotation angles around the Bloch sphere, where the first subgroup and the second subgroup are members of the candidate subgroup set, and using the mapping to map the first subgroup of symbols and a right subgroup of symbols for each group to respective rotations of the Bloch sphere.

[0008] In some implementations, mapping the first subgroup of symbols and the right subgroup of symbols to respective rotations around the Bloch sphere includes mapping the first subgroup to colatitude angles for the rotation around the Bloch sphere and mapping the right subgroup to longitude angles for the rotation around the Bloch sphere.

[0009] In some implementations, the method further includes converting the colatitude and longitude angles from degrees to radians.

[0010] In some implementations, determining the magnitude of rotation around the Bloch sphere for each increment of the hash digest symbol is calculated as 360 / (h q / 2 -1), where h represents the maximum number of distinct symbols in the hash digest and g represents the number of groups.

[0011] In some implementations, mapping each of the first subgroup of symbols and the right subgroup of symbols to a respective rotation around the Bloch sphere with the incremental rotation size includes mapping the first candidate subgroup to a zero rotation of the Bloch sphere and iteratively increasing the zero rotation around the Bloch sphere by the rotation size, with subsequent candidate subgroups being mapped to incremental rotations around the Bloch sphere at each iteration until a mapping of all candidate subgroups to their respective rotations around the Bloch sphere is obtained.

[0012] In some implementations, initializing the quantum system and calculating the expectation value of the initialized quantum system includes classically simulating the initialization of the quantum system and the calculation of the expectation value.

[0013] In some implementations, initializing the quantum system and calculating an expectation value of the initialized quantum system includes sending a request to a quantum computer to perform a quantum computation for initialization of the quantum system and to calculate the expectation value, and receiving the calculated expectation value from the quantum computer.

[0014] In some implementations, mapping each county to a respective point on the Bloch sphere includes determining colatitude and longitude angles that designate, for each county, a respective point on the Bloch sphere.

[0015] In some implementations, initializing a qubit of the plurality of qubits in a quantum state each specified by a point on the Bloch sphere includes applying a parameterized single-qubit rotation gate to the qubit, where parameters of the single-qubit rotation gate include a colatitude angle and a longitude angle that specify the point on the Bloch sphere.

[0016] In some implementations, calculating the expectation value of the initialized quantum system includes calculating a state vector of the initialized quantum system and converting the state vector into an array of continuous values, where the entries of the array include probability amplitudes corresponding to each symbol of a hash algorithm used to generate the hash digest.

[0017] In some implementations, the number of groups includes a pre-defined number of groups specified by a user, the number of groups corresponding to the number of qubits of the plurality of qubits.

[0018] In some implementations, the hash digest contains an even number of symbols.

[0019] In some implementations, the method further includes receiving the data input and data identifying a user-specified hash algorithm, and applying the hash algorithm to the data input to generate a hash digest.

[0020] In some implementations, the quantum fingerprint consists of a sequence of consecutive values, and the method applies a hashing algorithm to the quantum fingerprint to obtain a strengthened hash digest for the data input.

[0021] In some implementations, the method further includes receiving a predetermined sampling strategy selected by a user, sampling values ​​of the Quantum Fingerprint according to the predetermined sampling strategy, and providing the sampled values ​​of the Quantum Fingerprint as an output, or applying a hashing algorithm to the sampled values ​​of the Quantum Fingerprint to obtain an enhanced hash digest for the data input.

[0022] In some implementations, the method is performed by a first party and the data input includes data shared with a second party. The method further includes receiving from the second party a first sequence of values ​​sampled from the quantum fingerprint generated by the second party and a first random number, sampling a second sequence of values ​​from the quantum fingerprint generated by the first party using a sampling strategy seeded by the first random number, and verifying the first sequence of values ​​by comparing the second sequence of values ​​to the first sequence of values.

[0023] In some implementations, the method further includes generating a second random number from an interval ranging from 0 to a power of base 2 with the number of groups as an exponent, sampling a third array of values ​​from the quantum fingerprint generated by the first party using a sampling strategy seeded by the second random number, providing the third array of values ​​and the second random number to a second party, and the second party verifying the third array of values ​​using the second random number.

[0024] The subject matter described herein can be implemented in a particular manner to realize one or more of the following advantages.

[0025] Many hash digests are not secure against hash algorithm attacks, and an adversary mounting such an attack may be able to recover the original information from the hash digest. For example, in a brute force attack, an adversary generates a large amount of data to be hashed, sends the data through the corresponding hash function, and checks whether it results in the same hash digest. If an identical hash digest is found for several randomly generated data, the adversary has successfully recovered the original data. Other examples of attacks include partial collision attacks, birthday attacks, and cryptanalysis attacks.

[0026] A system implementing the techniques described herein enhances hash digests generated from classical or quantum data, for example improving the security of the hash digest and its robustness against adversarial attacks (compared to conventional hashing techniques). A given hash digest is processed with configurable parameters and quantum computing operations to generate a quantum fingerprint. Because the quantum fingerprint is generated using quantum computing operations (either directly using a quantum computer or indirectly using a classical simulator), the quantum fingerprint is more complex (e.g., has a larger search space against brute force attacks and has improved avalanche effects) and is therefore better protected against adversarial attacks. Moreover, the quantum fingerprint can be further processed, such as hashed or sampled, to increase its complexity.

[0027] Moreover, the techniques described herein for strengthening hash digests can be used to strengthen any hashed information, such as hash digests generated from classical or quantum data. Additionally, the configurability of the parameters of the techniques described herein allows users to mutually verify shared secrets over channels that are not trusted for cryptographic purposes, along with adding additional complexity and / or entropy.

[0028] Moreover, although the techniques described herein are motivated by quantum computing and can be implemented using classical and quantum computing, the techniques do not require quantum computers, and can also be implemented using only classical computing, and do not require special purpose hardware, such as fault-tolerant quantum computers.

[0029] Moreover, the techniques described herein are broadly applicable to a variety of technology fields: in particular, because the techniques described herein strengthen a given hash digest (whether or not that hash digest is known to be weak), they can be used in any application where hash digests are currently used, such as password or user information storage, verifying document integrity, establishing identity, detecting malicious or altered code, blockchain or cryptocurrency applications, cookies or session IDs, digital signatures, or fast lookups.

[0030] The details of one or more implementations of the subject matter of this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims. [Brief description of the drawings]

[0031] [Figure 1] FIG. 1 is a conceptual block diagram of an example system for hash digest enhancement. [Diagram 2] 1 is a flowchart of an example process for generating a quantum fingerprint from a hash digest. [Diagram 3] FIG. 13 shows examples of quantum fingerprints for different hash digests. [Figure 4] FIG. 1 illustrates an example strategy for sampling from a quantum fingerprint. [Diagram 5] 1 is a flowchart of an example process for mapping hash digest symbols to points on the Bloch sphere. [Figure 6]FIG. 1 is a conceptual block diagram of an example process for enabling two parties to verify a shared secret or cryptographic primitive using quantum fingerprinting. [Figure 7] 1 is a schematic diagram of an example quantum computing device. [Figure 8] 1 is a schematic diagram of an exemplary general-purpose classical processor system.Like reference numbers and designations in the various drawings indicate like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0032] This specification describes a method and system for strengthening a cryptographic hash digest using quantum computing. The hash digest is divided into groups of equal size. The size of each group and the total number of groups depend on the configurable number of qubits and the type of hash digest. Each group is mapped to each point on the surface of the Bloch sphere using a mapping that also depends on the configurable number of qubits and the type of hash digest. Classical or quantum computations are performed to initialize the qubit system to a state determined by the points on the Bloch sphere, and expectations are calculated using the initialized qubits. The expectations are probability distributions that act as quantum fingerprints, which can be output as strengthened hash digests or can be further processed, such as rehashed or sampled.

[0033] FIGURE 1 is a conceptual block diagram of an example system 100 for hash digest enhancement. The example system 100 includes a grouping engine 102 and a mapping engine 104. In some implementations, the example system 100 includes a classical simulator 106. In other implementations, the example system 100 includes (or has access to) a quantum computing device 108. In other implementations, as shown in FIGURE 1, the example system 100 includes a classical simulator 106 and a quantum computing device 108. The components of the example system 100 may exchange electronic communications over one or more networks or may exchange communications in other manners, such as via one or more wired or wireless connections.

[0034] The example system 100 is configured to receive as input, e.g., from a user 110, a hash digest and parameter values ​​used to generate an enhanced version of the hash digest 112. The example system 100 is configured to process the received input 112 using a group engine 102, a mapping engine 104, and either a classical simulator 106 or a quantum computing device 108 to generate an enhanced hash digest 114 as output. In some implementations, the enhanced hash digest 114 may be a quantum fingerprint, such as quantum fingerprint 120. In other implementations, the enhanced hash digest 114 may be another hash digest generated, e.g., by the example system 100, by applying a hashing algorithm to the quantum fingerprint. In other implementations, the enhanced hash digest 114 may be, e.g., an array of values ​​sampled from the quantum fingerprint by the example system 100. Examples of enhanced hash digests that may be output by the example system 100 are described in more detail below with reference to FIGS. 2-4.

[0035] The grouping engine 102 receives the input 112 and uses user-selected parameters to divide the hash digest into groups to generate a grouped hash digest 116. The number of groups corresponds to the number of qubits used by the classical simulator 106 and / or quantum computing device 108 to compute the enhanced hash digest. Example operations performed by the grouping engine 102 are described in more detail below with reference to step 204 of an example process 200 shown in FIG. 2.

[0036] The mapping engine 104 receives the grouped hash digests 116 and maps each group to a respective point on the Bloch sphere 118. For example, the mapping engine 104 uses user-selected parameters to determine for each group a value of a colatitude angle θ with respect to the z-axis of the Bloch sphere and a value of a longitude angle φ with respect to the x-axis of the Bloch sphere. The value of this angle uniquely specifies a point on the Bloch sphere, which in turn uniquely specifies a state of a two-level quantum system, such as a qubit. Example operations performed by the mapping engine 104 are described in more detail below with reference to FIG. 5.

[0037] Classical simulator 106 is configured to receive a point on the Bloch sphere 118 and initialize a number of qubits to a quantum state specified by the point on the Bloch sphere 118. Classical simulator 106 is further configured to calculate expectation values ​​of the initialized qubits to obtain a quantum fingerprint for its data input. Operations performed by the classical simulator may include only classical operations, such as classical simulation of qubit initialization, evolution, and measurement. Example operations performed by classical simulator 106 are described in more detail below with reference to FIG. 2.

[0038] Quantum computing device 108 may be configured to receive a point on the Bloch sphere 118 and initialize a number of qubits to a quantum state specified by the point on the Bloch sphere 118. Quantum computing device 108 may also be configured to calculate expectation values ​​of the initialized qubits to obtain a quantum fingerprint for its data input. Operations performed by quantum computing device 108 may include quantum operations such as initialization, evolution, and measurement of physical qubits, as well as classical post-processing of measurement results to calculate expectation values. Example operations performed by quantum computing device 108 are described in more detail below with reference to FIG. 2.

[0039] 2 is a flow chart of an example process 200 for generating a quantum fingerprint from a hash digest. For convenience, process 200 is described as being performed by a system that includes one or more classical computing devices located at one or more locations, or one or more hybrid classical-quantum computing devices located at one or more locations. For example, system 100 of FIG. 1 may be capable of performing process 200 when suitably programmed in accordance with this specification.

[0040] The system obtains a hash digest (step 202). The hash digest can represent a classical or quantum data input of any size and can be generated using any hashing algorithm, such as a SHA variant, a WHIRLPOOL variant, or an MD variant. The hashing algorithm can be a broken hashing algorithm or an approved hashing algorithm. In some implementations, the system can directly receive the hash digest as input along with user-selected parameter values ​​for generating the quantum fingerprint, such as the number of qubits (discussed in more detail below with reference to step 204). In other implementations, the system can receive a classical or quantum data input, and the user-selected parameter values ​​can further include data specifying the hashing algorithm to use for generating the hash digest. In these implementations, the system can apply the user-selected hashing algorithm to the data input to generate the hash digest.

[0041] The system divides consecutive symbols in the hash digest into groups of equal size (step 204). The number of groups corresponds to the number of qubits used in the calculations of steps 208 and 210 below. The number of groups can be determined by the system, for example, based on the hashing algorithm used to generate the hash digest and / or based on the processing power and performance of the system. Alternatively, the number of groups can be preselected by a user and provided as an input in step 202. The size of each group depends on the type of hashing algorithm used to generate the hash digest, for example the length of the hash digest. In general, the size g of each group is given by g=l / q, where l represents the length of the hash digest obtained in step 202, and q represents the number of qubits. For example, if the hash digest is generated with a SHA-256 hashing algorithm, the number of groups can be 32, 16, 8, 4, or 2, and the size of each group can be 2, 4, 8, 16, or 32, respectively. As another example, if the hash digest is generated with the SHA-1 hashing algorithm, the number of groups may be 20, 10, 5, 4, or 2, and the size of each group may be 2, 4, 8, 10, or 20, respectively. As a specific example, the SHA-1 hash digest 78cfa9db542521fd96408f55aa8e793f16ff8905 can be divided into 20 groups: 78, cf, a9, db, 54, 25, 21, fd, 96, 40, 8f, 55, aa, 8e, 79, 3f, 16, ff, 89, 05, where the size of each group is g=40 / 20=2.

[0042] The system maps each group to a respective point on the Bloch sphere (step 206). In quantum computing, the Bloch sphere is a geometric representation of the pure state space of a two-level quantum mechanical system, such as a qubit. The Bloch sphere is a unit two-dimensional sphere whose antipodal points correspond to a pair of mutually orthogonal state vectors. The points on the sphere correspond to pure states of the system. Any pure state |ψ> is |ψ>=cosθ / 2|0>+e iφ sinθ / 2|1> where 0 ≤ θ ≤ π and 0 ≤ φ ≤ 2π. This representation is always unique because the points on the Bloch sphere represented by θ and φ are unique, even if the value of φ is not unique when |ψ> is one of the computational basis states |0> or |1>. The parameters θ and φ are interpreted in spherical coordinates as colatitudes with respect to the z axis and longitudes with respect to the x axis, respectively, Uniquely specifies a point on the unit sphere in JPEG2025022771000002.jpg1211.

[0043] To map each constellation generated in step 240 to a respective point on the Bloch sphere, the system determines the colatitude and longitude angles that designate each point on the Bloch sphere. An example process for mapping constellation symbols of a hash digest to respective points on the Bloch sphere is described in detail below with reference to FIG.

[0044] The system initializes a quantum system including multiple qubits by initializing each qubit of the multiple qubits to a quantum state specified by a respective point on the Bloch sphere (step 208). For example, the system may initialize one qubit of the multiple qubits to a quantum state specified by a respective point on the Bloch sphere by applying a parameterized single-qubit rotation gate to the qubit, where parameters of the single-qubit rotation gate include a colatitude angle and a longitude angle that specify a point on the Bloch sphere. For example, a single-qubit rotation gate may be JPEG2025022771000003.jpg37133 where θ and φ represent the co-latitude and longitude angles, respectively, and λ are Euler angles which can be set to zero.

[0045] The system calculates an expectation value for the initialized quantum system to obtain a quantum fingerprint for the data input (step 210). For example, the system can perform a calculation or apply a function that returns a state vector for the initialized multiple qubits. This state vector is then converted into an array of continuous values, e.g., 2 qubits if 20 qubits (or groups of 20) are used to perform steps 608 and 610. 20 By construction, each entry in the array is a probability amplitude corresponding to each element of the alphabet of the hashing algorithm. Thus, the array specifies a probability distribution. The array entries can be taken literally (not absolute valued or squared), and they generate negative and positive values. A graphical representation of the probability distribution can be used as a quantum fingerprint.

[0046] Figure 3 shows example quantum fingerprints for different hash digests. In each example quantum fingerprint, the x-axis represents possible outcomes (e.g., candidate subgroups, as described below), and the y-axis represents the (unnormalized) probability amplitudes associated with the possible outcomes.

[0047] A first example quantum fingerprint 300 was generated according to the example process 200 for a hash digest obtained using a hashing algorithm SHA-256, where the hash digest is divided into 16 groups of size 4 (i.e., the number of selected quantum bits is 16). A second example quantum fingerprint 320 was generated according to the example process 200 for the same hash digest obtained using a hashing algorithm SHA-256, where the hash digest is divided into 8 groups of size 8 (i.e., the number of selected quantum bits is 8). A third example quantum fingerprint 330 was generated according to the example process 200 for a hash digest obtained using a hashing algorithm SHA-1, where the hash digest is divided into 10 groups of size 4 (i.e., the number of selected quantum bits is 10). A fourth example quantum fingerprint 340 was generated according to the example process 200 for a hash digest obtained using a hashing algorithm SHA-256. Here, the hash digest is split into two groups of size 32 (i.e. the number of qubits selected is 2). As shown in the figure, increasing the number of groups (or equivalently, decreasing the group size) produces a more complex quantum fingerprint.

[0048] Returning to FIG. 2 , in some implementations, the system can perform steps 208 and 210 using only classical computation, e.g., by classically simulating the initialization of the quantum system and the calculation of the expectation value. In other implementations, steps 208 and 210 can be performed using both classical and quantum computation. For example, in some implementations, the system can include only classical computing devices. In these implementations, the system can send a request to perform a quantum computation to a quantum computing provider to perform the initialization of the quantum system and the calculation of the expectation value. The system can then receive the quantum computation results, e.g., the calculated expectation value, from the quantum computing provider. As another example, in some implementations, the system can include a quantum computing device. In these implementations, the system can perform steps 208 and 210 using the quantum computing device.

[0049] The system provides as output an enhanced hash digest for the data input. For example, in some implementations, the system can directly provide as output the quantum fingerprint as an enhanced hash digest (212a). In other implementations, the system can apply a hashing algorithm to the quantum fingerprint to rehash the hash digest obtained in step 202 and provide as output the rehashed hash digest (step 212b).

[0050] In some implementations, the system receives a user-selected predetermined sampling strategy, for example, included in the user-selected parameter values ​​for Quantum Fingerprint generation received in step 202, and samples the Quantum Fingerprint values ​​according to the predetermined sampling strategy. The system may then provide the sampled Quantum Fingerprint values ​​as output in step 212a, apply a hashing algorithm to the sampled Quantum Fingerprint values ​​to generate a rehashed hash digest, and provide the rehashed hash digest as output in step 212b.

[0051] 4 shows an example of a sampling strategy for a quantum fingerprint 400. Different sampling strategies or predefined sampling functions can be applied. For example, in some implementations, a sampling strategy is chosen for the interval [0,2 q A random number [range 0-1] can be generated and used as a seed for a parameterized sampling strategy. In the example shown in Figure 4, five values ​​are sampled according to user-selected sampling strategy parameters 404 to generate corresponding sample values ​​406.

[0052] 5 is a flow chart of an example process 500 for mapping hash digest symbols to points on the Bloch sphere. For convenience, process 500 is described as being performed by a system including one or more classical computing devices located at one or more locations. For example, system 100 of FIG. 1, suitably programmed in accordance with this specification, can perform process 500.

[0053] The system determines the magnitude of rotation of the Bloch sphere for each increment of symbols in the hash digest based on the number of groups (step 502). To determine the magnitude of rotation around the Bloch sphere for each increment of symbols in the hash digest, the system calculates 360 / (h q / 2−1), where h denotes the maximum number of distinct symbols in the hash digest, and q denotes the number of qubits (or equivalently, the number of groups).

[0054] For example, if the hash digest can contain hexadecimal symbols (h = 16), the length of the hash digest is 40 (l = 40), the number of groups is equal to 20 (q = 20), and the size of each group is 2 (g = l / q = 2). Therefore, the system rotates around the Bloch sphere per increment by 360 / (h g / 2 -1)=360 / (16 2 / 2 As another example, if the hash digest can contain hexadecimal symbols (h = 16), the length of the hash digest is 40 (l = 40), the number of groups is equal to 10 (q = 10), and the size of each group is 4 (g = 4), the system can calculate the magnitude of rotation around the Bloch sphere per increment as 360 / (h -1) = 360 / (16 - 1) = 24 degrees. g / 2 -1)=360 / (16 4 / 2 As another example, if the hash digest can contain hexadecimal symbols (h = 16), then the length of the hash digest is 40 (l = 40), the number of groups is equal to 5 (q = 5), and the size of each group is 8 (g = 8). Therefore, the system calculates the magnitude of rotation around the Bloch sphere per increment as 360 / (h -1)) = 360 / (255) = 1.41176 degrees. g / 2 -1)=360 / (16 8 / 2 -1) = 360 / (4095) = 0.08791 degrees.

[0055] The system divides the symbols of each group into a first, e.g., left, subgroup and a second, e.g., right, subgroup (step 504). For example, the system can divide each group into two equal-sized subgroups (so that each group resulting from step 204 of the example process 200 above has an even number of symbols). For example, the group "78" can be divided into a left subgroup "7" and a right subgroup "8". As another example, the group "78cf" can be divided into a left subgroup "78" and a right subgroup "cf". As another example, the group "78cfa9db" can be divided into a left subgroup "78cf" and a right subgroup "a9db".

[0056] For each increment, the system uses a rotation of the determined size on the Bloch sphere to generate a mapping that associates each possible value that the left and right subgroups can take (referred to herein as a "candidate subgroup") with each rotation around the Bloch sphere (step 506). The number of candidate subgroups depends on the hashing algorithm used to generate the hash digest and the size of the subgroups generated in step 504. For example, if the hash digest contains hexadecimal symbols and each subgroup is of size 1 (hence the group size is 2), there will be 16 candidate subgroups, namely 1, 2, 3, ..., F. For example, if the hash digest contains hexadecimal symbols and each subgroup is of size 2 (hence the group size is 4), there will be 256 candidate subgroups, namely 00, 01, 02, 03, ..., FE, FF.

[0057] To generate the mapping, the system may map the first candidate subgroup to a zero rotation around the Bloch sphere. The system may then iteratively increase the zero rotation around the Bloch sphere by the magnitude of the rotation determined in step 502, where in each iteration subsequent candidate subgroups are mapped to increasing rotations around the Bloch sphere until all candidate subgroups are mapped to their respective rotations on the Bloch sphere. Since the mapping is used to initialize the quantum system, as discussed above with reference to FIG. 2, the system further converts the values ​​calculated in degrees to radians, i.e., by multiplying the degree values ​​by π and dividing by 180.

[0058] Here is an example mapping where the hash digest contains hexadecimal symbols and each subgroup is of size 1 (so the magnitude of rotation around the Bloch sphere per increment is 24 degrees): JPEG2025022771000004.jpg150164

[0059] The system can then use a mapping to map the first and second subgroups of each group in the hash digest to respective rotation angles around the Bloch sphere. The mapping angle of rotation for each of the first (left) subgroups can correspond to the colatitude angle of each point on the Bloch sphere, and the mapping angle of rotation for each of the right subgroups can correspond to the longitude angle of each point on the Bloch sphere. For example, the group "78" can be mapped to a rotation angle [θ=124.0,φ=96.0], which, when converted from degrees to radians, corresponds to the point (sinθcosφ,sinθinφ,cosθ)=(sin2.16cos1.96,sin2.16sin1.68,cos21.16) on the Bloch sphere, and the state |ψ>=cos2.16 / 2|0>+e 1.68i sin2.16 / 2|1>.

[0060] 6 is a conceptual block diagram of an example process 600 for verifying data shared by two parties or shared cryptographic primitives / keys using quantum fingerprinting. The example process 600 takes place between a first party "Alice" 602 and a second party "Bob" 604. Communication between Alice 602 and Bob 604 may take place over any communication channel, such as a trusted or untrusted communication channel.

[0061] At stage (A) of the example process 600, Alice 602 communicates to Bob that she intends to verify pre-shared data or pre-shared cryptographic primitives / keys using the presently described quantum fingerprinting technique, such as the example process 200 of FIG. 2.

[0062] In stage (B), Alice 602 and Bob 604 communicate to negotiate parameter values ​​for generating the quantum fingerprint, such as the number of qubits to use, the type of hash, the sampling strategy, etc.

[0063] At stage (C), both Alice 602 and Bob 604 compute quantum fingerprints for the shared data or shared cryptographic primitives / keys, respectively, eg, according to example process 200 of FIG.

[0064] At stage (D), both Alice 602 and Bob 604 each have a q -1], where q represents the number of quantum bits negotiated in stage (B).

[0065] In stage (E), Alice 602 uses the random numbers generated in stage (D) to seed the sampling strategy negotiated in stage (B) to generate an array of sampled values ​​of her Quantum Fingerprint, [A]. Similarly, in stage (E), Bob 604 uses the random numbers generated in stage (D) to seed the sampling strategy negotiated in stage (B) to generate an array of sampled values ​​of her Quantum Fingerprint, [B].

[0066] At stage (F), Alice 602 communicates elements 0, 1,...,N of her sampling array [A] to Bob 604. Similarly, Bob 604 communicates elements 0, 1,...,N of his sampling array [B] to Alice 602. In some implementations, Alice 602 and Bob 604 can choose not to disclose the elements of their respective sampling arrays during transmissions to each other and can negotiate functions or operations, such as XOR, Mod, or Multiply functions, to apply to their respective sampling arrays before the elements are communicated to each other.

[0067] At stage (G), both Alice 602 and Bob 604 communicate to each other the random number (called a "sample ID") that they generated at stage (D).

[0068] In stage (H), Alice 602 verifies the sampling sequence [B] received from Bob 604 in stage (F) using the sample ID received from Bob 604 in stage (G). For example, Alice 602 can use the sampling ID received from Bob to seed the sampling strategy negotiated in stage (B) to generate a second sampling sequence of the value [B'] of her quantum fingerprint calculated in stage (C). If the second sampling sequence of value [B'] matches the sampling sequence [B] received from Bob 604 in stage (F), Alice 602 can verify the sampling sequence [B] received from Bob 604 in stage (F). For example, Alice 602 can determine whether the shared data or the shared cryptographic primitives / keys have been compromised or maliciously tampered with.

[0069] Similarly, in stage (H), Bob 604 uses the sampling ID received from Alice 602 in stage (G) to verify the sampling sequence [A] received from Alice 602 in stage (F). For example, Bob 604 can use the sampling ID received from Alice 602 to seed the sampling strategy negotiated in stage (B) to generate a second sampling sequence of the value [A'] of the quantum fingerprint he computed in stage (C). If the second sampling sequence of the value [A'] matches the sampling sequence [A] received from Alice 602 in stage (F), Bob 604 can verify the sampling sequence [B] received from Alice 602 in stage (F). For example, Bob 604 can determine whether the shared data or the shared cryptographic primitives / keys have been compromised or maliciously tampered with.

[0070] 7 is a block diagram of an example quantum computing device 700. The quantum computing device 700 can be used to perform quantum computing operations according to some implementations described herein. The quantum computing device 700 is intended to represent various forms of quantum computing devices. The components, their connections and relationships, and their functions shown herein are merely exemplary and are not intended to limit the implementation of the invention described and / or claimed herein.

[0071] Quantum computing device 700 includes a qubit assembly 710 and a control and measurement system 720. The qubit assembly includes a plurality of qubits, e.g., qubits 712, that are used in algorithmic operations or quantum computations. The qubits shown in FIG. 7 are arranged in a rectangular array, which is a schematic representation and is not intended to be limiting. The qubit assembly 710 also includes tunable coupling elements, e.g., couplers 714, that allow for interaction between the coupled qubits. In the schematic diagram of FIG. 7, each qubit is adjustably coupled to four neighboring qubits by respective coupling elements. However, this is an example arrangement of qubits and couplers, and other arrangements are possible, including non-rectangular arrangements, arrangements that allow coupling between non-adjacent qubits, and arrangements that include tunable coupling between three or more qubits.

[0072] Each qubit may be a two-level quantum system or device, with levels representing a logical value of 0 and a logical value of 1. The specific physical implementation of the qubits and how they interact will depend on a variety of factors, including the type of quantum computing device 700 or the type of quantum computation that the quantum computing device 700 performs. For example, in an atomic quantum computer, the qubits may be implemented via atoms, molecules, or solid-state quantum systems, such as hyperfine atomic states. As another example, in a superconducting quantum computer, the qubits may be implemented via superconducting qubits or semiconductor qubits, such as superconducting transmon states. As another example, in an NMR quantum computer, the qubits may be implemented via nuclear spin states.

[0073] In some implementations, a quantum computation can proceed by initializing the qubits to selected initial states and applying a sequence of quantum logic gates to the qubits. Examples of quantum logic gates include one-qubit gates, e.g., Pauli-X, Pauli-Y, Pauli-Z (also referred to as X, Y, Z), Hadamard gates, S gates, two-qubit gates, e.g., Control-X, Control-Y, Control-Z (also referred to as CX, CY, CZ), gates containing three or more qubits, e.g., Toffoli gates, etc. Quantum logic gates can be implemented by applying control signals 732 generated by control and measurement system 720 to the qubits and couplers.

[0074] For example, in some implementations, the qubits of the qubit assembly 710 are frequency tunable. In these examples, each qubit can have an associated operating frequency that is tunable by applying a voltage pulse through one or more drive lines coupled to the qubit. Examples of operating frequencies include a qubit idle frequency, a qubit interaction frequency, and a qubit readout frequency. Different frequencies correspond to different operations that the qubit can perform. For example, a qubit can be placed in a state where it does not strongly interact with other qubits by setting the operating frequency to a corresponding idle frequency, where it can be used to perform single qubit gates. As another example, when the qubits interact through fixed-coupled couplers, the qubits can be configured to interact with each other by setting their respective operating frequencies to several gate-dependent frequencies that are detuned from the common interaction frequency. In other cases, for example, when the qubits interact through tunable couplers, the qubits can be configured to interact with each other by setting the parameters of the individual couplers to allow interaction between the qubits, and then setting each of the qubits' operating frequencies to several gate-dependent frequencies that are detuned from the common interaction frequency. Such interactions can be performed to implement multi-qubit gates.

[0075] The type of control signal 732 used depends on the physical implementation of the qubit, for example, the control signal may include an RF or microwave pulse in an NMR or superconducting quantum computer system, or an optical pulse in an atomic quantum computer system.

[0076] A quantum computation can be completed by measuring the state of the qubit using a quantum measurable, such as Z, using a respective control signal 734. The measurement causes a readout signal 734 representing the measurement result to be sent back to the measurement and control system 720. The readout signal 734 may include an RF, microwave, or optical signal, depending on the physics of the quantum computing device 700 and / or the qubits. For convenience, the control signals 732 and readout signals 734 shown in FIG. 7 are shown as addressing only selected elements of the qubit assembly (i.e., the top and bottom rows), although in operation the control signals 732 and readout signals 734 may be addressable to each element of the qubit assembly 710.

[0077] As previously discussed, control and measurement system 720 is one example of a classical computer system that may be used to perform various operations on qubit assembly 710. Control and measurement system 720 includes one or more classical processors, such as classical processor 722, one or more memories, such as memory 724, and one or more I / O units, such as I / O unit 726, connected by one or more data buses, such as bus 726. Control and measurement system 720 may be programmed to send sequences of control signals 732 to the qubit assembly, e.g., to perform a selected sequence of quantum gate operations, and to receive sequences of read signals 734 from the qubit assembly, e.g., as part of performing a measurement operation.

[0078] The processor 722 is configured to process instructions for execution within the control and measurement system 720. In some implementations, the processor 722 is a single-threaded processor. In other implementations, the processor 722 is a multi-threaded processor. The processor 722 is capable of processing instructions stored in the memory 724.

[0079] The memory 724 stores information within the control and measurement system 720. In some implementations, the memory 724 includes a computer-readable medium, a volatile memory unit, and / or a non-volatile memory unit. In some cases, the memory 724 can include a storage device capable of providing mass storage for the system 720, such as a hard disk drive, an optical disk drive, a storage device shared by multiple computing devices over a network (e.g., cloud storage), and / or some other mass storage device.

[0080] The input / output devices 726 provide input and output operations to the control and measurement system. The input / output devices 726 can include D / A converters, A / D converters, and RF / microwave / optical signal generators, transmitters, and receivers to send control signals 732 to and receive read signals 734 from the qubit assemblies as appropriate for the physics of the quantum computer. In some implementations, the input / output devices 726 can also include one or more network interface devices, such as an Ethernet card, serial communication devices, such as an RS-232 port, and / or wireless interface devices, such as an 802.11 card. In some implementations, the input / output devices 726 can also include driver devices configured to receive input data and send output data to other external devices, such as a keyboard, printer, display device, etc.

[0081] Although an exemplary control and measurement system 720 is shown in FIG. 7, implementations of the subject matter and functional operations described herein can be implemented in other types of digital electronic circuitry, or computer software, firmware, or hardware, including the structures disclosed herein, structural equivalents thereof, or any combination of one or more thereof.

[0082] 8 is a schematic diagram of an exemplary general-purpose classical processor system 800. System 800 can be used for classical computing in accordance with some implementations described herein. System 800 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, mobile devices, and other suitable computers. The components, their connections and relationships, and their functions shown herein are merely exemplary and are not intended to limit the implementation of the invention described and / or claimed herein.

[0083] The system 800 includes a processor 810, a memory 820, a storage device 830, and an input / output device 840. The components 810, 820, 830, and 820 are interconnected using a system bus 850. The processor 810 enables processing of instructions for execution within the system 800. In one implementation, the processor 810 is a single-threaded processor. In another implementation, the processor 810 is a multi-threaded processor. The processor 810 may be capable of processing instructions stored in the memory 820 or the storage device 830 to display graphical information for a user interface on the input / output device 840.

[0084] The memory 820 stores information within the system 800. In one implementation, the memory 820 is a computer-readable medium. In one implementation, the memory 820 is a volatile memory unit. In another implementation, the memory 820 is a non-volatile memory unit.

[0085] The storage device 830 may be capable of providing mass storage to the system 800. In one implementation, the storage device 830 is a computer-readable medium. In various different implementations, the storage device 830 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.

[0086] The I / O device 840 provides input and output operations to the system. In one implementation, the I / O device 840 includes a keyboard and / or a pointing device. In another implementation, the I / O device 840 includes a display unit for displaying a graphical user interface.

[0087] The implementation of the digital and / or quantum subject matter and digital functional and quantum operations described herein may be implemented in digital electronic circuitry, suitable quantum circuitry, or more generally in a quantum computing system, physically embodied digital and / or quantum computer software or firmware, digital and / or quantum computer hardware including the structures disclosed herein and their structural equivalents, or any combination of one or more thereof. The term "quantum computing device" may include, but is not limited to, a quantum computer, a quantum information processing system, a quantum cryptography system, or a quantum simulator.

[0088] Implementations of the digital and / or quantum subject matter described herein may be implemented as one or more digital and / or quantum computer programs, i.e., one or more modules or engines of digital and / or quantum computer program instructions encoded on a tangible, non-transitory storage medium for execution by or for controlling the operation of a data processing device. The digital and / or quantum computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, one or more quantum bits, or one or more combinations thereof. Alternatively or additionally, the program instructions may be encoded into an artificially generated propagated signal capable of encoding digital and / or quantum information, such as, for example, a machine-generated electrical, optical, or electromagnetic signal generated to encode digital and / or quantum information for transmission to a suitable receiving device for execution by a data processing device.

[0089] The terms quantum information and quantum data refer to information or data carried, held, or stored by a quantum system. Here, the smallest non-trivial system is a qubit, a system that defines a quantum information unit. The term "qubit" encompasses all quantum systems that can be appropriately approximated as a two-level system in the corresponding context. Such quantum systems may include multi-level systems, for example having more than two levels. By way of example, such systems may include atoms, electrons, photons, ions, or superconducting qubits. In many implementations, the states underlying the computation are identified as a ground state and a first excited state, although it will be appreciated that other configurations are possible in which the computational states are identified as excited states of higher levels.

[0090] The term "data processing apparatus" refers to hardware for digital and / or quantum data processing and encompasses any type of apparatus, device, and machine for processing digital and / or quantum data. Examples include programmable digital processors, programmable quantum processors, digital computers, quantum computers, multiple digital and quantum processors or computers, and combinations thereof. The apparatus may be or may further include special purpose logic circuits, such as field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), or quantum simulators, which are quantum data processing apparatus designed to simulate or generate information about specific quantum systems. In particular, quantum simulators are special purpose quantum computers that do not have general quantum computing capabilities. In addition to hardware, the apparatus may optionally include code that creates an execution environment for digital and / or quantum computer programs, such as processor firmware, protocol stacks, database management systems, code that constitutes an operating system, or one or more combinations thereof.

[0091] A digital computer program, also referred to as a program, software, software application, module, engine, software module, script, or code, can be written in any type of programming language, including compiled or interpreted, or declarative or procedural, and can be deployed in any form, whether as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a digital computing environment. A quantum computer program, also referred to as or described as a program, software, software application, module, software module, script, or code, can be written in any type of programming language, including compiled or interpreted, or declarative or procedural, and can be translated into a suitable quantum programming language or written in a quantum programming language, such as, for example, QCL, Quipper, etc.

[0092] The digital and / or quantum computer program may, but need not, correspond to a file in a file system. The program may be stored as part of a file containing other programs and data, such as one or more scripts stored in a markup language document, a single file dedicated to the program in question, or multiple associated files, such as files storing one or more modules, subprograms, or code portions. The digital and / or quantum computer program may be deployed to run on one digital computer, or on one quantum computer, or on multiple digital and / or quantum computers located at one site or distributed across multiple sites and interconnected by a digital and / or quantum data communication network. A quantum data communication network is understood to be a network capable of transmitting quantum data using quantum systems such as qubits. Generally, digital data communication networks cannot transmit quantum data, but quantum data communication networks can transmit both quantum data and digital data.

[0093] The processes and logic flows described herein may be performed by one or more programmable digital and / or quantum computers operating on one or more digital and / or quantum processors that execute one or more digital and / or quantum computer programs, as appropriate, to perform functions by manipulating input digital and quantum data to generate output. The processes and logic flows may also be performed by, and apparatus may be so implemented as, special purpose logic circuitry, such as an FPGA or ASIC, or a quantum simulator, or a combination of special purpose logic circuitry or quantum simulators with one or more programmed digital and / or quantum computers.

[0094] When one or more digital and / or quantum computer systems are "configured" to perform a particular operation or action, it means that the system has software, hardware, or a combination thereof installed thereon that, when operated, causes the system to perform the operation or action. When one or more digital and / or quantum computer programs are configured to perform a particular operation or action, it means that one or more programs contain instructions that, when executed on a digital and / or quantum data processing device, cause the device to perform the operation or action. A quantum computer can also receive instructions from a digital computer that, when executed on the quantum computing device, causes the device to perform the operation or action.

[0095] A digital and / or quantum computer suitable for executing a digital and / or quantum computer program can be based on general purpose or application specific digital and / or quantum processors, or on both, or on any kind of central digital and / or quantum processing unit. In general, the central digital and / or quantum processing unit receives instructions and digital and / or quantum data from a read-only memory, a random access memory, or a quantum system suitable for transmitting quantum data such as photons, or a combination thereof.

[0096] The essential elements of a digital and / or quantum computer are a central processing unit for carrying out or executing instructions and one or more memory devices for storing instructions and digital and / or quantum data. The central processing unit and memory may be supplemented by or incorporated in special purpose logic circuits or quantum simulators. Typically, a digital and / or quantum computer also includes or is operatively coupled to one or more mass storage devices, e.g., magnetic disks, magneto-optical disks, optical disks, for storing digital and / or quantum data, or a quantum system suitable for storing quantum information, for receiving digital and / or quantum data therefrom, transferring digital and / or quantum data thereto, or both. However, it is not necessary for a digital and / or quantum computer to have such devices.

[0097] Digital and / or quantum computer readable media suitable for storing digital and / or quantum computer program instructions and / or digital and / or quantum data include all forms of non-volatile digital and / or quantum memories, media, and / or memory devices, examples of which include semiconductor memory devices such as EPROMs, EEPROMs, flash memory devices, magnetic disks such as internal hard disks or removable disks, magneto-optical disks, CD-ROM and DVD-ROM disks, and quantum systems such as trapped atoms and electrons. Quantum memory is understood to be a device capable of storing quantum data with high fidelity and efficiency for long periods of time, such as a light-matter interface where light is used for transmission and matter is used to store and preserve the quantum characteristics of the quantum data, such as superposition and quantum coherence.

[0098] Control of the various systems described herein, or portions thereof, may be implemented in a digital and / or quantum computer program product stored on one or more non-transitory machine-readable storage media and including instructions executable on one or more digital and / or quantum processing devices. The systems described herein, or portions thereof, may each be implemented as an apparatus, method, or system, which may include one or more digital and / or quantum processing devices, and a memory storing executable instructions for performing the operations described herein.

[0099] Although the present specification contains many details of specific implementations, these should not be considered as limiting the scope of the claims, but rather as a description of features specific to a particular implementation. Certain features described in the present specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Furthermore, even if features are described above as acting in a particular combination and are initially claimed as such, one or more features from a claimed combination can be excluded from the combination in some cases, and the claimed combination can also be directed to a subcombination or a variation of the subcombination.

[0100] Similarly, although operations are shown in a particular order in the figures, this should not be construed as requiring that such operations be performed in the particular order or sequence shown, or that all of the illustrated operations be performed, to achieve desired results. In certain circumstances, multitasking and parallel processing may also be advantageous. Furthermore, it should be understood that the separation of various system modules and components in the above implementations should not be understood to require such separation in all implementations, and that the described program elements and systems may generally be integrated into a single software product or packaged into multiple software products.

[0101] Particular implementations of the present subject matter have been described. Other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order to achieve desirable results. By way of example, the processes depicted in the accompanying figures do not necessarily require the particular order or hierarchy shown to achieve desirable results. In some cases, multitasking and parallel processing may also be advantageous.

Claims

1. Obtain a hash digest that represents the data input, Dividing the symbols of the hash digest into a number of equal-sized groups; Map each county onto a point on the Bloch sphere, Initializing a quantum system of a plurality of qubits, said plurality of qubits being initialized to a quantum state designated by each point on said Bloch sphere; Calculating an expectation value of the initialized quantum system to obtain a quantum fingerprint for the data input. A computer-implemented method comprising the steps of:

2. Mapping each county onto a point on the Bloch sphere is determining a magnitude of rotation around the Bloch sphere for each increment of a symbol in the hash digest based on the number of groups; dividing the symbols of each group into a first subgroup and a second subgroup of symbols; using the magnitude of rotation to generate a mapping between candidate subgroups in a candidate subgroup set and respective angles of rotation around the Bloch sphere, the first subgroup and the second subgroup being members of the candidate subgroup set; using a mapping to map a first subgroup of symbols and a right subgroup of symbols for each group onto respective rotations of the Bloch sphere; The method of claim 1 , comprising:

3. 3. The method of claim 2, wherein mapping the first subgroup of symbols and the right subgroup of symbols to respective rotations around the Bloch sphere comprises mapping the first subgroup to colatitude angles for a rotation around the Bloch sphere and mapping the right subgroup to longitude angles for the rotation around the Bloch sphere.

4. The method of claim 3 further comprising converting the co-latitude and longitude angles from degrees to radians.

5. Determining the magnitude of rotation around the Bloch sphere for each increment of the hash digest symbols is calculated as 360 / (h q/2 -1), where h represents the maximum number of distinct symbols in the hash digest and g represents a number of groups.

6. Mapping each of a first subgroup of symbols and a right subgroup of symbols to a respective rotation about the Bloch sphere using the incremental rotation magnitudes, comprising: Mapping a first candidate subgroup onto a zero rotation of the Bloch sphere; repeatedly increasing a zero rotation around the Bloch sphere by the magnitude of the rotation; Including, 3. The method of claim 2, wherein for each iteration, subsequent candidate subgroups are mapped to incremental rotations around the Bloch sphere to obtain a mapping of all candidate subgroups to each rotation around the Bloch sphere.

7. 2. The method of claim 1 , wherein initializing the quantum system and calculating the expectation value of the initialized quantum system comprises classically simulating the initialization of the quantum system and the calculation of the expectation value.

8. Initializing the quantum system and calculating the expectation value of the initialized quantum system includes: Sending a request to a quantum computer to perform a quantum computation for initializing the quantum system and to calculate the expectation value; receiving a calculated expectation value from the quantum computer; The method of claim 1 , comprising:

9. 2. The method of claim 1, wherein mapping each county to a respective point on the Bloch sphere comprises determining, for each county, colatitude and longitude angles that designate the respective point on the Bloch sphere.

10. 10. The method of claim 9, wherein initializing a qubit of the plurality of qubits in a quantum state specified by a point on the Bloch sphere respectively comprises applying a parameterized single-qubit rotation gate to the qubit, a parameter of the single-qubit rotation gate consisting of the colatitude angle and the longitude angle that specify the point on the Bloch sphere.

11. Calculating the expectation value of the initialized quantum system comprises: Calculating a state vector of the initialized quantum system; converting said state vector into an array of continuous values; Including, The method of claim 1 , wherein the array entries include probability amplitudes corresponding to each symbol of a hashing algorithm used to generate the hash digest.

12. the number of groups includes a predefined number of groups specified by a user; 2. The method of claim 1, wherein the number of groups corresponds to a number of qubits in the plurality of qubits.

13. The method of claim 1 , wherein the hash digest includes an even number of symbols.

14. receiving said data input and data identifying a user-specified hash algorithm; The method of claim 1 , further comprising: applying the hash algorithm to the data input to generate the hash digest.

15. the quantum fingerprint comprises a sequence of consecutive values; The method of claim 1 , wherein the method applies a hashing algorithm to the quantum fingerprint to obtain a hardened hash digest for the data input.

16. receiving a predetermined sampling strategy selected by a user; sampling values ​​of the quantum fingerprint according to the predetermined sampling strategy; 2. The method of claim 1 , further comprising providing a sampled value of the quantum fingerprint as an output or applying a hashing algorithm to the sampled value of the quantum fingerprint to obtain a hardened hash digest for the data input.

17. the method being performed by a first party; the data input includes data shared with a second party; The method further comprises: receiving from the second party a first sequence of values ​​sampled from a quantum fingerprint generated by the second party and a first random number; sampling a second sequence of values ​​from the quantum fingerprint generated by the first party using a sampling strategy seeded by the first random number; validating the first array of values ​​by comparing the second array of values ​​to the first array of values; The method of claim 1 further comprising:

18. generating a second random number from an interval ranging from 0 to a power of 2 with the number in the group as an exponent; sampling a third sequence of values ​​from the quantum fingerprint generated by the first party using the sampling strategy seeded by the second random number; providing the second party with the sequence of third values ​​and the second random number, the second party verifying the sequence of third values ​​using the second random number; The method of claim 17, further comprising:

19. one or more data processing devices; a non-transitory computer-readable storage medium in data communication with the one or more data processing devices and storing instructions; A system comprising: The instructions, when executed by the data processing apparatus, cause the one or more data processing apparatus to: Obtain a hash digest that represents the data input, Dividing the symbols of the hash digest into a number of equal-sized groups; Map each county onto a point on the Bloch sphere, Initializing a quantum system of a plurality of qubits, said plurality of qubits being initialized to a quantum state designated by each point on said Bloch sphere; Calculating an expectation value of the initialized quantum system to obtain a quantum fingerprint of the data input. A system that causes an operation, including a step, to be performed.

20. A computer-readable storage medium having stored thereon instructions, comprising: The instructions are executable by a processor and, when executed, cause the processor to: Obtain a hash digest that represents the data input, Dividing the symbols of the hash digest into a number of equal-sized groups; Map each county onto a point on the Bloch sphere, Initializing a quantum system of a plurality of qubits, said plurality of qubits being initialized to a quantum state designated by each point on said Bloch sphere; Calculating an expectation value of the initialized quantum system to obtain a quantum fingerprint of the data input. A computer-readable storage medium for causing a computer to perform operations comprising steps.