DETAILED ACTION
Claims 1-4 are presented for examination.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
Claims 1-4 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 1 and 4 recite the acronyms “XMSS” and “LMS” without defining them at least once, therefore it is not clear what they stand for. For the purpose of examination, the acronyms are interpreted based on the definition provided in the specification.
Claims 1 and 4 recite “indexth” node, it is not clear what the significance of the suffix “th” is. For the purpose of examination, the claims are interpreted as reciting “index node”.
Claims 1 and 4 recite “nodes within (a left node) authentication path (of a Merkle tree) needing updating”, however it is not clear how it is determined whether a node within an authentication path needs updating or not, therefore this limitation renders the claims indefinite.
Claims 1 and 4 recite “generating an authentication node index value integer of authentication path nodes within the authentication path needing updating” which provides antecedent basis for multiple index value integers, therefore the recitation ““iterating the left and right node variables with a merging operation until reaching the authentication node index value integer” is ambiguous because it is not clear which index value integer is being referred to.
Claims 2-3 depend on claim 1 and therefore they inherit the above rejections.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1- 4 are rejected under 35 U.S.C. 101 because they are directed to an abstract idea not integrated into a practical application and without significantly more.
Step 1: Statutory Category
Claims 1-4 satisfy the statutory category requirement because they are directed to processes and therefore, they are statutory under 35 U.S.C. 101.
Step 2A, Prong 1 – Judicial Exception (Abstract Idea)
The independent claims 1 and 4 recite generating/updating data and manipulating data in the nodes of a tree data structure, for example the claims recite instructions to carry out a post-quantum cryptographic authentication session having an authentication path of a Merkle tree and operably configured to execute three subroutines configured to update left-node authentication in XMSS and LMS post-quantum cryptography algorithms; executing a first subroutine of the three subroutines that includes generating an authentication node index value integer of authentication path nodes within the authentication path needing updating; updating, if the generated authentication node index value integer is zero, a left authentication node at a 0th level of the Merkle tree and not proceeding with execution of a second subroutine of the three subroutines; executing, if the generated authentication node index value integer is greater than zero, the second subroutine of the three subroutines that includes initializing a left node variable and initializing a right node variable based on a generated leaf position; and executing a third subroutine of the three subroutines that includes iterating the left and right node variables with a merging operation until reaching the authentication node index value integer and swapping the left node variable with an indexth node within the authentication path. These features correspond to mental steps.
The dependent claims also recite mental steps including computing output from merged data, generating more data and executing routines in parallel.
Step 2A, Prong 2 – Integration into a practical Application
The judicial exception is not integrated into a practical application. Although, executing the subroutines to update and swap node variables modify the tree structure, this does not integrate the judicial exception into a practical application.
Step 2B- “Significantly More”
The claims do not include additional elements that are sufficient to amount to significantly more than the judicial exception. In particular, some claims recite a processor and/or memory at a high-level of generality, however these are generic computer components, thus the claims are mere instructions to implement the judicial exception on generic computer components. Mere recitations of applying an exception using a generic computer do not amount to significantly more than the abstract idea. Therefore, the claims are not patent eligible.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-4 are rejected under 35 U.S.C. 103 as being unpatentable over Paruzel (US Patent No.10,581,616) in view of Suresh et al (US Pub.No.2022/0123943).
Re Claim 1. Paruzel discloses a computer-implemented method utilizing an algorithmic-based approach to find a memory-efficient left-node authentication path in [XMSS and LMS] post-quantum cryptography algorithms (col.1, Il.11-15, Cryptosystems are used to communicate securely over public channels. Some cryptosystems provide authenticity through the use of digital signatures. A Merkle Signature Scheme (MSS) may utilize a cryptographic hash tree (e.g., a Merkle tree; col.2, Il.31-36, the systems and techniques described here can make hash-based signature schemes more feasible on embedded devices, for example, making it possible to shrink the private key and generate authentication paths while providing fast signature generation with low memory and processor utilization; col.6, ll.26-34, In the example shown in FIG. 1, the devices 102, 104 may use a quantum-resistant cryptosystem that cannot be compromised by the example quantum-enabled adversary 108. For instance, the devices 102, 104 may communicate using a cryptosystem that is secure against a quantum computer that can efficiently execute Sher's algorithm or other types of algorithms that are known to compromise the security of certain conventional cryptography standards; col.7, Il.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes (or right-hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g. starting index=1, then in that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node-or a right node may be determined by the order of traversal); comprising the steps of: providing a computer with at least one processor operably configured to carry out a post-quantum cryptographic authentication session having an authentication path of a Merkle tree and operably configured to execute computer readable instructions having an algorithm with three subroutines configured to update left-node authentication in [XMSS and LMS] post-quantum cryptography algorithms (Fig. 1; col.2, ll.31-36, the systems and techniques described here can make hash-based signature schemes more feasible on embedded devices, for example, making it possible to shrink the private key and generate authentication paths while providing fast signature generation with low memory and processor utilization; col.1, Il.11-15, Cryptosystems are used to communicate securely over public channels. Some cryptosystems provide authenticity through the use of digital signatures. A Merkle Signature Scheme (MSS) may utilize a cryptographic hash tree (e.g., a Merkle tree); col.4, Il.15-18, instructions (e.g.computer code, a computer program, etc.) associated with an operating system, computer applications, or other resources may be stored on non-volatile memory 110, the volatile memory 112, or a combination thereof; col.6, Il.26-34, in the example shown in FIG. 1 the devices 102, 104 may use a quantum-resistant cryptosystem that cannot be compromised by the example quantum-enabled adversary 108. For instance, the devices 102, 104 may communicate using a cryptosystem that is secure against a quantum computer that can efficiently execute Shor's algorithm or other types of algorithms that are known to compromise the security of certain conventional cryptography standards; col.17, Il.54-61, The example process 900 may include additional or different operations, and the operations may be performed in the order shown or in another order. In some cases, one or more of the operations shown in FIG. 9 are implemented as processes that include multiple operations, sub-processes or other types of routines. In some cases, operations can be combined, performed in parallel, iterated or otherwise repeated or performed in another manner; col.20, Il.28-35, A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or either unit suitable for use in a computing environment);
executing a first subroutine of the three subroutines that includes generating an authentication node index value integer of authentication path nodes within the authentication path needing updating (Fig. 6; col.12, Il.28-35, In some implementations, the state of the caches, e.g. TopNodesCache and BottomNodesCache, produce an authentication path for a current signing index, q. In some instances, after signing, the caches are updated to a state that can produce an authentication path for the next value of the signing index q+1. In some cases, the update invalidates certain nodes in TopNodesCache and BottomNodesCache, and introduces another into the BottomNodesCache);
updating, if the generated authentication node index value integer is zero, a left authentication node at a 0th level of the Merkle tree and not proceeding with execution of a second subroutine of the three subroutines (Fig. 6, col.12, ll.46-51, The difference in the state 630, 640 is that the right node DR will no longer be needed as a node in any future authentication paths, and therefore, is removed from the cache. The storage space previously used by node DR is overwritten in the cache with DL, its left sibling node and col.19, as shown in the example of FIG. 6, the right node D.sub.R at index 0 of the cache memory is replaced with its sibling left node D.sub.L at index 0 of the cache memory since the right node will no longer be used in an authentication path);
executing, if the generated authentication node index value integer is greater than zero, the second subroutine of the three subroutines that includes initializing a left node variable and initializing a right node variable based on a generated leaf position;
(col.7, ll.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes (or right-
hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g: starting index=1, then in that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node or a right node may be determined by the order of traversal; col.8, Il.15-16, The authentication path contains the nodes that are siblings of the nodes on the path from the leaf node to the root; col.9, Il.29-41, The result is an array that is ordered by the lifetime of the nodes. In other words, nodes on the left side of the tree will be used first in an authentication path computation while nodes on the right side of the tree will be used last. Likewise, the nodes on the left side (least significant index) of the array 3308 may be removed prior to the nodes on the right (most significant index). For example, the nodes in the array 3308 shown in FIG. 38 may be removed in order, such that nodes D, B, E have the shortest life and are removed first (from left to right), while nodes A, C, G have the longest life and are removed last (from left to right));
and executing a third subroutine of the three subroutines that includes iterating the left and right node variables with a merging operation until reaching the authentication node index value integer and swapping the left node variable with an indexth node within the authentication path. (col.7, Il.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes. (or right-hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g. starting index=1, then in that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node or a right node may be determined by the order of traversal; col.8, Il.15-16, The authentication path contains the nodes that are siblings of the nodes on the path from the leaf node to the root; col.9, Il.29-41, The result is an array that is ordered by the lifetime of the nodes. In other words, nodes on the left side of the tree will be used first in an authentication path computation while nodes on the right side of the tree will be used last. Likewise, the nodes on the left side (least significant index) of the array 3308 may be removed prior to-the nodes on the right (most significant index). For example, the nodes in the array 3308 shown in FIG. 38 may be removed in order, such that nodes D, 8, E have the shortest life and are removed first (from left to right), while nodes A, C, G have the longest life and are removed last from left to right; col.10, Il.40-42, In some cases, these nodes are removed or replaced with their sibling nodes; col.11, Il.29-34, In the systems and techniques described here, an algorithm that iterates through the leaf nodes of the subtree in descending order (effectively building the subtree in reverse compared to a conventional TreeHash algorithm) is referred to as "TreeHashv”; col.12, Il.36-56, FIG. 6 illustrates an example update operation for an active subtree 610, 620. In this example, the signing index q is initialize.d to the index 0, shown in the subtree 610 on the left. After generating a digital signature for a current value of the signing index q=0 and updating the BotlomNodesCache (from the state 630 on the left to the state 640 on the right), the signing index is incremented by 1 (e.g., q=q+1) to generate a digital signature for the next value of the signing index q=1, shown in subtree 620 on the right. As shown, in both states 630, 640, an authentication path can be found from the nodes in the BottomNodesCache. The difference in the state 630, 640 is that the right node DR will no longer be needed as a node in any future authentication paths, and therefore, is removed from the cache. The storage space previously used by node DR is overwritten in the cache with DL, its left sibling node. In some implementations of the update procedure, there will always be at least one right node that is removed and replaced with its left node counterpart. In this example, the other nodes in the cache remain unchanged when the cache is updated from state 630 to state 640; as noted, the right and left node can be determined based upon the order of traversal; therefore, a left node maybe replaced [swapped] with a node using the indexing).
Paruzel does not explicitly disclose: authentication path in XMSS and LMS post-quantum cryptography algorithms comprising the steps of: providing a computer with at least one processor operably configured to carry out a post-quantum cryptographic authentication session having an authentication path…..and operably configured to execute computer readable instructions having an algorithm with three subroutines configured to update …authentication in XMSS and LMS post-quantum cryptography algorithms.
However, Suresh discloses: authentication path in XMSS and LMS post-quantum cryptography algorithms comprising the steps of: providing a computer (computing architecture 1100) with at least one processor (one or more processors 1102) operably configured to carry out a post-quantum cryptographic authentication session having an authentication path …….and operably configured to execute computer readable instructions having an algorithm with three subroutines (Suresh, Fig. 11; [0030], Subject matter described herein addresses these and other issues by providing systems and methods to implement accelerators for post-quantum cryptography secure XMSS and LMS hash-based signing and verification; [0084], FIG. 11 illustrates an embodiment of an exemplary computing architecture that may be suitable for implementing various embodiments as previously described. In various embodiments, the computing architecture 1100 may comprise or be implemented as part of an electronic device; [0089], the one or more processors 1102 each include one or more processor cores 1107 to process instructions which, when executed, perform operations for system and user software'; multiple sub-routines may be used) configured to update … authentication in XMSS and LMS post-quantum cryptography algorithms (Suresh [0023], Described herein are exemplary systems and methods to implement accelerators for post-quantum cryptography secure hash-based signature algorithms; [0024], The extended Merkle signature scheme (XMSS) and/or an extended Merkle many time signature scheme (XMSS-MT) are hash-based signature schemes that can protect against attacks by quantum computers. As used herein, the term XMSS shall refer to both the XMSS scheme and the XMSS-MT scheme; [0026], The Leighton/Micali signature (LMS) scheme is another hash-based signature scheme that uses Leighton/Micali one-time signatures (LM-OTS) as the one-time signature building block; [0029], The third major operation is a tree-hash operation, which constructs a Merkle tree. In an XMSS verification, an authentication path that is provided as part of the signature and the output of L-tree operation is processed by a tree-hash operation to generate the root node of the Merkle tree, which should correspond to the XMSS public key; [0030], Subject matter described herein addresses these and other issues by providing systems and methods to implement accelerators for post-quantum cryptography secure XMSS and LMS hash-based signing and verification);
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify Paruzel with Suresh for the purpose of implementing algorithms that are secure against quantum computers, thereby providing accelerators that reduce computation cost (Suresh; [0002-0004], [0030]).
Re Claim 2. Paruzel in view of Suresh discloses the computer-implemented method according to claim 1, further comprising: executing the third subroutine that includes computing an output of the merging operation of the left and right node variables with a node generated from the second subroutine based on the authentication path node position (col.7, Il.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes (or right-hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g. starting index=1, then in that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node or a right node may be determined by the order of traversal; col.8, Il.15-16, The authentication path contains the nodes that are siblings of the nodes on the path from the leaf node to the root; col.9, Il.29-41, The result is an array that is ordered by the lifetime of the nodes. In other words, nodes on the left side of the tree will be used first in an authentication path computation while nodes on the right side of the tree will be used last. Likewise, the nodes on the left side (least significant index) of the array 330B may be removed prior to the nodes on the right (most significant index). For example, the nodes in the array 330B shown in FIG. 3B may be removed in order, such that nodes D, B, E have the shortest life and are removed first (from left to right), while nodes A, C, G have the longest life and are removed last from left to right; col.10, Il.40-42, In some cases, these nodes are removed or replaced with their sibling nodes'; col. 11, Ins. 29-34, 'In the systems and techniques described here, an algorithm that iterates through the leaf nodes of the subtree in descending order (effectively building the subtree in reverse compared to a conventional TreeHash algorithm) is referred to as "TreeHashv"; col.12, ll.36-56, FIG.6 illustrates an example update operation for an active subtree 610, 620. In this example, the signing index q is initialized to the index 0, shown in the subtree 610 on the left. After generating a digital signature for a current value of the signing index q=0 and updating the BottomNodesCache (from the state 630 on the left to the state 640 on the right), the signing index is incremented by 1 (e.g., q=q+1) to generate a digital signature for the next value of the signing index q=1, shown in subtree 620 Oil the right. As shown, in both states 630,640, an authentication path can be found from the nodes in the BoltomNodesCache. The difference in the state 630, 640 is that the right node DR will no longer be needed as a node in any future authentication paths, and therefore, is removed from the cache. The storage space previously used by node DR is overwritten in the cache with DL, its left sibling node. In some implementations of the update procedure, there will always be at least one right node that is removed and replaced with its left node counterpart. In this example, the other nodes in the cache remain unchanged when the cache is updated from state 630 to state 640; as noted, the right and left node can be determined based upon the order of traversal; therefore, a left node maybe replaced [swapped] with a node previously along the authentication path).
Re Claim 3. Paruzel in view of Suresh discloses the computer-implemented method according to claim 1, wherein the first subroutine and the second subroutine are executed in parallel and independently (col.17, Il.54-61, The example process 900 may include additional or different operations, and the operations may be performed in the order shown or in another order. In some cases, one or more of the operations shown in FIG. 9 are implemented as processes that include multiple operations, sub-processes or other types of routines. In some cases, operations can be combined, performed in parallel, iterated or otherwise repeated or performed in another manner; col.20, Il.28-35, A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment).
Re Claim 4. Paruzel discloses a method for utilizing an algorithmic-based approach to find a memory-efficient left-node authentication path in [XMSS and LMS] post-quantum cryptography algorithms (col.1, Il.11-15, Cryptosystems are used to communicate securely over public channels. Some cryptosystems provide authenticity through the use of digital signatures. A Merkle Signature Scheme (MSS) may utilize a cryptographic hash tree (e.g., a Merkle tree); col.2, Ins. 31-36, the systems and techniques described here can make hash-based signature schemes more feasible on embedded devices, for example, making it possible to shrink the private key and generate authentication paths while providing fast signature generation with low memory and processor utilization; col.6, Il.26-34, In the example shown in FIG.1, the devices 102, 104 may use a quantum-resistant cryptosystem that cannot be compromised by the example quantum-enabled adversary 108. For instance, the devices 102, 104 may communicate using a cryptosystem that is secure against a quantum computer that can efficiently execute Shor's algorithm or other types of algorithms that are known to compromise the security of certain conventional cryptography standards; col.7, Il.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes (or right-hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g. starting index=1. then in that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node or a right node may be determined by the order of traversal)
comprising: providing an index calculator with a memory storage unit (non-volatile memory 110, the volatile memory 112) or utilizing arithmetic operations, the index calculator generating an authentication node index value integer of authentication path nodes within a left-node authentication path of a Merkle tree needing updating [in a XMSS algorithm or a LMS algorithm] (Fig.6; col.1, Il.11-15, Cryptosystems are used to communicate securely over public channels: Some cryptosystems provide authenticity through the use of digital signatures. A Merkle Signature Scheme (MSS) may utilize a cryptographic hash tree (e.g., a Merkle tree); col.4, Il.15-18, Instructions (e.g., computer code, a computer program, etc.) associated with an operating system, computer applications, or other resources may be stored on non-volatile memory 110, the volatile memory 112, or a combination therefore; col.12, Il.28-35, In some implementations, the state of the caches,e.g. TopNodesCache and BottomNodesCache, produce an authentication path for a current signing index, q. In some instances, after signing, the caches are updated to a state that can produce an authentication path for the next value of the signing index q+1. In some cases, the update invalidates certain nodes in TopNodesCache and BottomNodesCache, and introduces another into the BottomNodesCache);
and updating, if the generated authentication node index value integer is zero, a left authentication node at a 0th level of the Merkle tree without further update of any node within the authentication path (Fig.6, col.12, The difference in the state 630, 640 is that the right node DR will no longer be needed as a node in any future authentication paths, and therefore, is removed from the cache. The storage space previously used by node DR is overwritten in the cache with DL, its left sibling node and col. as shown in the example of FIG. 6, the right node D.sub.R at index 0 of the cache memory is replaced with its sibling left node D.sub.L at index 0 of the cache memory since the right node will no longer be used in an authentication path);
providing, if the generated authentication node index value integer is greater than zero, a Merkle leaf generator that initializes a left node variable and initializes a right node variable based on a generated leaf position (col.1, Il.11-15, Cryptosystems are used to communicate securely, over public channels. Some cryptosystems provide authenticity through the use of digital signatures. A Merkle Signature Scheme (MSS) may utilize a cryptographic hash tree (e.g.: a Merkle tree; col.7, Il.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes (or right-hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g. starting index=1, then in that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node or a right node may be determined by the order of traversal; col 8, Il.15-16, The authentication path contains the nodes that are siblings of the nodes on the path from the leaf node to the root; col.9, Il.29-41, The result is an array that is. ordered by the lifetime of the nodes. In other words, nodes on the left side of the tree will be used first in an authentication path computation while nodes on the right side of the tree will be used last Likewise, the nodes on the left side (least significant index) of the array 330B may be removed prior to the nodes on the right (most significant index). For example, the nodes in the array 3308 shown in FIG. 38 may be removed in order, such that node,1, D, 8, E have the shortest life and are removed first {from left to right). while nodes A, C, G have the longest life and are removed last (from left to right));
and providing finite-state machine that iterates the left and right node variables with a merging operation until reaching the authentication node index value integer and swapping the left node variable with an indexth node within the authentication path.
(col.7, Il.13-23, At each level i, the node position is indexed from left to right by 0 to 2H-1-1. In this example, the nodes with even number indices are referred to as left nodes (or left-hand nodes), and those with odd number indices right nodes (or right-hand nodes). In some cases, the node position may be indexed based on a different starting index. For example, if starting index is an odd number, e.g. starting index=1, then in
that case, the odd number indices are left nodes and the even number indices are right nodes. In some cases, whether a node is a left node or a right node may be determined by the order of traversal; col.8, Il.15-16, The authentication path contains the nodes that are siblings. of the nodes on the path from the leaf node to the root; col.9, Il.29-41, The result is an array that is ordered by the lifetime of the nodes. In other words, nodes on the left side of the tree will be used first in an authentication path computation while nodes on the right side of the tree will be used last. Likewise, the nodes on the left side (least significant index) of the array 3308 may be removed prior to the nodes on the right {most significant index). For example, the nodes in the array 3308 shown in FIG. 38 may be removed in order, such that nodes D, 8, E have the shortest life and are removed first (from left to right), while nodes A, C, G have the longest life and are removed last from left to right; col.10, Il.40-42, In some cases, these nodes are removed or replaced with their sibling nodes; col.11, Il.29-34, In the systems and techniques described here, an algorithm that iterates through the leaf nodes of the subtree in descending order (effectively building the subtree in reverse compared to a conventional TreeHash algorithm) is referred to as "TreeHashv”; col.12, Il.36-56; FIG. 6 illustrates an example update operation for an active subtree 610, 620. In this example, the signing index q is initialized to the index 0, shown in the subtree 610 on the left. After generating a digital signature for a current value of the signing index q=0 and updating the BottomNodesCache (from the state 630 on the left to the state 640 on the right}, the signing index is incremented by 1 (e.g., q=q+1) to generate a digital signature for the next value of the signing index q=1, shown in subtree 620 on the right. As shown, in both states 630, 640, an authentication path can be found from the nodes in the BottomNodesCache. The difference in the state 630, 640 is that the right node DR will no longer be needed as a node in any future authentication paths, and therefore, is removed from the cache. The storage space previously used by node DR is overwritten in the cache with DL, its left sibling node. In some implementations of the update procedure, there will always be at least one right node that is removed and replaced with its left node counterpart. In this example, the other nodes in the cache remain unchanged when the cache is updated from state 630 to state 640.; as noted, the right and left node can be determined based upon the order of traversal; therefore, a left node maybe replaced [swapped] with a node using the indexing).
Paruzel does not explicitly disclose a method for utilizing an algorithmic-based approach to find a memory-efficient left-node authentication path in XMSS and LMS post-quantum cryptography algorithms comprising: updating in a XMSS algorithm or a LMS algorithm.
However, Suresh discloses a method for utilizing an algorithmic-based approach to find a memory-efficient left-node authentication path in XMSS and LMS post-quantum cryptography algorithms comprising: updating in a XMSS algorithm or a LMS algorithm (Suresh [0023], Described herein are exemplary systems and methods to implement accelerators or post-quantum cryptography secure hash-based signature algorithms; [0024], The extended Merkle
signature scheme (XMSS) and/or an extended Merkle many time signature scheme (XMSS-MT) are hash-based signature schemes that can protect against attacks by quantum computers. As used herein, the term XMSS shall refer to both the XMSS scheme and the XMSS-MT scheme; [0026], The Leighton/Micali signature (LMS) scheme is another hash-based signature scheme that uses Leighton/Micali one-time signatures (LM-OTS) as the one-time signature building block; [0029], The third major operation is a tree-hash operation, which constructs a Merkle tree. In an XMSS verification, an authentication path that is provided as part of the signature and the output of L-tree operation is processed by a tree-hash operation to generate the root node of the Merkle tree, which should correspond to the XMSS public key; [0030], Subject matter described herein addresses these and other issues by providing systems and methods to implement accelerators for post- quantum cryptography secure XMSS and LMS hash-based signing and verification; [0084], FIG. 11 illustrates an embodiment of an exemplary computing architecture that may be suitable for implementing various embodiments as previously described. In various embodiments, the computing architecture 1100 may comprise or be implemented as part of an electronic device;
[0089], the one or more processors 1102 each include one or more processor cores 1107 to process instructions which, when executed, perform operations for system and user software).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the invention to modify Paruzel with Suresh for the purpose of implementing algorithms that are secure against quantum computers, thereby providing accelerators that reduce computation cost (Suresh; [0002-0004], [0030]).
Prior art made of record, however not relied upon, includes:
Matthew et al (US Pub.No.2019/0319804) describes a mechanism for facilitating unified accelerator for classical and post-quantum digital signature schemes in computing environments, according to one embodiment. A method of embodiments, as described herein, includes unifying classical cryptography and post-quantum cryptography through a unified hardware accelerator hosted by a trusted platform of the computing device. The method may further include facilitating unification of a first finite state machine associated with the classical cryptography and a second finite state machine associated with the post-quantum cryptography though one or more of a single the hash engine, a set of register file banks, and a modular exponentiation engine [Abstract].
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to NOURA ZOUBAIR whose telephone number is (571)270-7285. The examiner can normally be reached Monday - Friday.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, ALI SHAYANFAR can be reached at 571-270-1050. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/NOURA ZOUBAIR/Primary Examiner, Art Unit 2434