# Secure ECDSA SRAM-PUF Based on Universal Single/Double Scalar Multiplication Architecture
## 4 Hardware Architecture
### The Architecture of ECDSA  
The ECDSA module constitutes another core algorithmic component of the ECDSA-PUF hardware. Its hardware architecture is illustrated in Figure 4. Diverging from numerous existing ECSM architectures in the preceding chapters, the proposed ECDSA module ascends from the group operation layer to the ECDSA protocol layer. Consequently, beyond the ECSM/ECDSM module, it becomes imperative to accomplish the SHA256 module and the modular multiplier of the order \(n\) mandated by ECDSA to fulfill the complete ECDSA protocols. The ECDSA architecture is designed to perform two distinct types of signature verification. It executes \(cus\)\(ECDSA\_VER\) during the PUF generation stage and conducts the standard ECDSA signature verification algorithm as a hardware acceleration peripheral of the system after the PUF is generated. Therefore, this architecture must embody the concept of hardware reuse by utilizing a universal ECSM/ECDSM module and a modular multiplier with different calculation methods based on the specific calculation mode. Hardware multiplexing introduces additional multiplexers to govern the data paths in  
Figure 4: The hardware architecture of ECDSA. other modes. Our design allows the utilization of the same large-number multipliers and large-number adders for the underlying operations in various modes to conserve hardware resources. The data path of the ECDSA architecture follows these steps:  
1. The value \(m\) is processed in the SHA256 module through the hash operation to derive the digest value of the message. A fixed random interception is employed to capture 163 bits. It is crucial to note that the random interception must be firmly embedded in the circuit to prevent potential manipulation by attackers attempting to alter the HASH value through the configuration of the interception position. The hash interception may result in entropy loss; hence, entropy augmentation is performed in subsequent steps to restore the entropy that has been lost. 2. Compute \(u_{1}\) in the signature verification algorithm. In the context of \(cusECDSA\_VER\), the values \(s^{-1}\) and \(x_{p}\) directly feed into the modular multiplier for the computation of \(u_{1}\).In contrast, during standard ECDSA signature verification, the value \(s\) requires modulo inverse calculation using [PERSON]'s little theorem. Hence, a shift register is incorporated in the structure to sequentially output each bit of \(n-2\), controlling the input to the modulo multiplier and buffering the intermediate result in the \(s^{-1}\) register. 3. Calculate the ECSM of \(u_{1}\) by the base point \(G\). The result of the ECSM is cached in the \(u_{1}G\) register. According to the pipeline idea, the modular multiplier calculates \(u_{2}\) simultaneously, and the calculation of \(u_{2}\) is similar to the calculation of \(u_{1}\). Since \(s^{-1}\) is already obtained when calculating \(u_{1}\), performing a modular inversion is unnecessary. 4. The output of the modular multiplier transitions from \(u_{1}\) to \(u_{2}\). Subsequently, the strobe signal of the input selector is altered to input the public key \(H\), initiating the ECSM of the public key \(H\) by \(u_{2}\). 5. Compute the sum of \(u_{1}G\) points and \(u_{2}H\), generating distinct outputs based on the ECDSA module. For standard ECDSA signature verification, compute \(x_{p}\); for \(cusECDSA\_VER\), compute \(X\). 6. For standard ECDSA signature verification, compare \(x_{p}\) with \(r\). The module outputs \(1\) for identical results and \(0\) for different ones. For \(cusECDSA\_VER\), the module obtains four \(X\) values after four iterations. These 163-bit \(X\) values need to be extended to four 256-bit \(X\) values to match the number of RM code soft-decisions and restore the lost entropy.