## 5 The Proposed Fortified-Edge 2.0 Framework
If the server's signature verification fails, the client aborts the authentication session to prevent further communication with a potentially compromised server. Finally, the client logs critical performance metrics, including execution time, CPU usage, and memory consumption, before closing the connection. ```
0: Server Public Key \(pk_{S}\), Client Private Key \(sk_{C}\)
0: Authentication Result
1: Step 1: Initiate Authentication Request
2: Establish a connection with the server. 3: Send an authentication request. 4: Step 2: Receive and Verify Challenge
5: Receive tuple \((V_{C}^{enc},S_{C})\) from the server. 6: Decrypt \(V_{C}^{enc}\) to obtain \(V_{C}\). 7: Verify signature Verify\((S_{C},V_{C},pk_{S})\). 8:if Signature is valid then
9: Reconstruct binary challenge \(C\) from \(V_{C}\). 10: Apply \(C\) to the PUF to generate response \(R\). 11: Vectorize \(R\) to obtain \(V_{R}\). 12: Sign \(V_{R}\) using client private key to obtain \(S_{R}\). 13: Send tuple \((V_{R},S_{R})\) to the server. 14: Receive authentication result. 15:else
16: Abort connection (invalid server signature). 17:endif
18: Step 3: Log and Close
19: Log execution time, CPU, and memory usage. 20: Close connection. ```
**Algorithm 4** Client Authentication Process

The secure authentication process using ECDSA is shown in Algorithm 5. The ECDSA Key Management and Signing process begins by attempting to load existing key pairs for both the server \((sk_{S},pk_{S})\) and the client \((sk_{C},pk_{C})\) from secure file storage. If the keys are missing or found to be invalid, new ECDSA key pairs are generated for both entities using a specified elliptic curve \(\mathcal{C}\), and the resulting keys are securely stored in PEM format for future sessions. Once key management is completed, the signing process involves taking a message \(M\) and a corresponding private key \(sk\), computing its digital signature \(\sigma\) using the ECDSA algorithm, and subsequently encoding the signature into a base64 format \(\sigma_{b}\) for transmission or storage. For signature verification, the received base64-encoded signature \(\sigma_{b}\) is first decoded to recover the original signature \(\sigma\), and the verification is performed against the message \(M\) using the public key \(pk\). The verification process outputs whether the signature is valid or invalid, ensuring the integrity and authenticity of transmitted messages within the authentication framework. The mathematical symbols used in the process algorithms are shown in Table 3. \begin{table}
\begin{tabular}{c l} \hline \hline
**Symbol** & **Meaning** \\ \hline \(\mathcal{C}\) & ECDSA Curve (e.g., NIST256p) \\ \hline \(sk_{S},pk_{S}\) & Server’s Private/Public Key \\ \hline \(sk_{C},pk_{C}\) & Client’s Private/Public Key \\ \hline \(M\) & Message to be signed \\ \hline \(\sigma\) & ECDSA Digital Signature \\ \hline \(\sigma_{b}\) & Base64 Encoded Signature \\ \hline \(\text{Sign}(M,sk)\) & Signing Function \\ \hline Verify\((\sigma,M,pk)\) & Signature Verification Function \\ \hline Base64 Encode\((\sigma)\) & Base64 Encoding \\ \hline Base64 Decode\((\sigma_{b})\) & Base64 Decoding \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Mathematical Symbols Used in ECDSA Key Management. ```
0: ECDSA Curve \(\mathcal{C}\), File Paths for Key Storage
0: Persistent Key Pairs for Server and Client
1:Step 1: Load or Generate Keys
2:Server: Attempt to load \((sk_{S},pk_{S})\) from files. 3:Client: Attempt to load \((sk_{C},pk_{C})\) from files. 4:if Keys are missing or invalid then
5: Generate new ECDSA key pair \((sk_{S},pk_{S})\) for server using curve \(\mathcal{C}\). 6: Store \((sk_{S},pk_{S})\) in PEM format. 7: Generate new ECDSA key pair \((sk_{C},pk_{C})\) for client using curve \(\mathcal{C}\). 8: Store \((sk_{C},pk_{C})\) in PEM format. 9:endif
10:Step 2: Signing a Message
11: Given a message \(M\) and private key \(sk\), compute:
12:\(\sigma=\text{Sign}(M,sk)\) using ECDSA. 13: Encode signature: \(\sigma_{b}=\text{Base64 Encode}(\sigma)\). 14: Return signature \(\sigma_{b}\).