## 5 The Proposed Scheme
### The Designed Fast Searchable Decryption Algorithm
We also compared our scheme with others [26; 30; 31] in terms of _Setup_, _Keygen_, _Enc_, _ReEnc_, _Search_, and _Dec_, as summarized in Table 3. As shown, scheme [26] incurs the highest setup overhead, while scheme [30] has the highest key generation cost. Moreover, our scheme supports a lower-overhead search compared to [31], allowing for the locating of ciphertexts containing the target keywords before decryption. Although the decryption cost per ciphertext is relatively high, the efficient search significantly reduces the overall cost and enables the precise decryption of the matched ciphertexts. ### Experimental Tests

We implemented our ABE-RS scheme using the Charm-Crypto library (v0.5) [43] and the built-in SS512 elliptic curve with Python 3.8.10. Experiments were conducted on a server with an Intel Core i7 processor (2.11 GHz) and 11 GB RAM, running Ubuntu 20.04 LTS (64-bit). To ensure statistical stability and reliable performance evaluation, the results were averaged across 20 trials. Each trial was conducted independently, with the framework re-generating all relevant cryptographic elements--including public/private keys, ciphertexts, and index entries--using fresh random seeds. First, we measured the execution time of the encryption, search, and decryption processes under varying numbers of attributes and keywords. The encryption time depends on the number of attributes defined by the data owner's access policy and the number of extracted keywords. The search process, which is based on public-key searchable encryption, depends only on the size of the keyword dictionary. The decryption time is influenced solely by the number of attributes. As shown in Figure 5a, with the keyword dictionary size fixed at 500, both the encryption and decryption times increase with the number of attributes, while the search time remains approximately 676 ms. As shown in Figure 5b, with the number of attributes fixed at 50, the encryption and search times increase with the number of keywords, while the decryption time remains around 267 ms. \begin{table}
\begin{tabular}{l c c c c} \hline \hline
**Scheme** & **Public Key Size** & **Secret Key Size** & **Ciphertext Size** & **Trapdoor Size** \\ \hline Deng [30] & \((\mathcal{V}_{A}+log_{\mathcal{V}_{A}})|\mathbb{G}|+|\mathbb{G}_{T}|\) & \(log_{\mathcal{V}_{A}}|\mathbb{G}|\) & \((\mathcal{V}_{M}+log_{\mathcal{V}_{M}})|\mathbb{G}|+|\mathbb{G}_{T}|\) & – \\ [PERSON] [26] & \((\iota+\mathcal{V}_{A}+4)|\mathbb{G}|+|\mathbb{G}_{T}|+|\mathbb{Z}_{p}|\) & \((\mathcal{V}_{L}+t+2)|\mathbb{G}|\) & \((\mathcal{V}_{M}+6)|+|\mathbb{G}_{T}|+|\mathbb{Z}_{p}|\) & – \\ [PERSON] [31] & – & \(\mathcal{V}_{M}|\mathbb{G}|+\mathcal{V}_{M}|\mathbb{Z}_{p}|\) & \((\mathcal{V}_{M}+1+2\mathcal{V}_{L}+2)|\mathbb{G}|+|\mathbb{G}_{T}|\) & \((5+\mathcal{V}_{q})|\mathbb{G}|\) \\ Ours & \((\mathcal{V}_{A}+3)|\mathbb{G}|+|\mathbb{G}_{T}|\) & \((log_{\mathcal{V}_{M}}+\mathcal{V}_{A}+3)|\mathbb{G}|\) & \((2\mathcal{V}_{M}+log_{\mathcal{V}_{M}}+2+t)|\mathbb{G}|\) & \((log_{\mathcal{V}_{M}}+1)|\mathbb{G}|+log_{p}|\) \\ \hline \hline \end{tabular} \(\mathcal{V}_{A}\): number of attributes in the system; \(\mathcal{V}_{L}\): number of updates for the ciphertext; \(\mathcal{V}_{M}\): number of users in the system; \(\mathcal{V}_{M}\): number of keys in the system; \(\mathcal{V}_{M}\): number of rows of the LSSS matrix; \(\mathcal{V}_{A_{M}}\): number of attributes in \(\mathcal{S}_{aidi}\); \(|\mathbb{G}|/|\mathbb{G}_{T}|/|\mathbb{Z}_{p}|\): length of the elements in \(\mathbb{G}\), \(\mathbb{G}_{T}\), and \(\mathbb{Z}_{p}\), respectively; \(\mathcal{V}_{L}\): number of revoked keywords; \(\mathcal{V}_{q}\): number of query keywords.

\end{table} 
Table 2: Comparisons of storage overhead.