## 5 The Proposed Scheme
### The Designed Fast Searchable Decryption Algorithm  
As the core module of the ABE-RS framework, the FSD algorithm enables keyword-based search on encrypted data through the inverted index, as shown in Figure 4. The algorithm consists of _InvertTable Initialization_, _Complete Inverted-Index Table_, and _Fast Searchable Decryption_, which are shown in Algorithms 1 and 2. * _InvertTable Initialization_. The IIT is initialized as InvertTable = { LabelCipher(keyword): [] for keyword in keywordsList }. The DO extracts the keyword set \(S_{w}\) and generates the encrypted tag cipher for each keyword \(w_{i}\). This structure creates an empty linked list container for each encrypted keyword \(I_{1,w_{i}}\), which serves as the foundation for storing the encrypted data index in the subsequent steps. * _Complete Inverted-Index Table_. This process iterates through all encrypted keywords and constructs a comprehensive mapping between each keyword \(I_{w}\) and its associated encrypted data \(CT_{\mathbb{M},L}\), as outlined in Algorithm 1. ```
Input:\(GP\), \(CT_{\mathbb{M},L}\), \(I_{w}\), \(InvertTable\) Output: Updated \(InvertTable\)
1 for\(CT_{\mathbb{M},L}\in\mathcal{F}\)do
2\(Main_{w}\gets I_{w}\) ;
3\(InvertTable[Main_{w}].append(CT_{\mathbb{M},L})\) ;

Figure 4: Encrypted linked list index for fast search. ```
Input:\(GP\), \(AK_{\text{iid}}\), \(IPK_{\text{iid}}\), \(T_{w}\), \(SK_{\text{s,iid}}\), \(\text{InvertTable}\) Output:\(M\) or \(\bot\)
1 if\(\text{Verify}(AK_{\text{iid}},IPK_{\text{iid}})\)then
2 for\(\text{Main}_{w}\in\text{InvertTable}.keys()\)do
3 if\(\text{Search}(T_{w},Main_{w})\)then
4 for\(CT_{\text{M},L}\in\text{InvertTable}[Main_{w}]\)do
5 if\(M\leftarrow\text{Dec}(GP,CT_{\text{M},L},SK_{\text{s,iid}})\)then
6 return\(M\) ;
7
8 else
9 return\(\bot\);
10
11 else
12 return\(\bot\);
```

**Algorithm 2**Fast Searchable Decryption

_Fast Searchable Decryption_. The fast searchable decryption of the FDS algorithm is shown in Algorithm 2. First, we verify the identity (line 1); then, based on \(T_{w}\), we find the entry in the _InvertTable_ that matches the main key \(Main_{w}\) (lines 2-3). If a matching ciphertext is found, we decrypt and verify the access rights, returning the decrypted message (lines 4-6); otherwise, the decryption fails or the search fails and it returns \(\bot\) (lines 7-10). ## 6 Analysis

In this section, we conduct correctness and security analyses. ### Correctness Analysis

From Verify's Equation (12), we can obtain

\[ \begin{split} AK_{1}/(AK_{3})^{\alpha}&=(g^{\alpha})^ {b^{\prime}}(g^{\mu})^{H_{1}(\text{iid}||b)}/(g^{b^{\prime}})^{\alpha}\\ &=g^{\mu H_{1}(\text{iid}||b)}=\text{IP}K_{\text{iid}}.\end{split}  \tag{16}\]

From Search's Equation (14), we can obtain

\[ \begin{split}& H_{3}(e(I_{0},\text{decode}(\theta\oplus\delta)))\\ &=H_{3}(e(g^{\delta_{i}},\text{decode}(\text{encode}((T_{3})^{\beta})\oplus H_{3}(e(g^{\beta},((g^{ \alpha})^{\tau})))\oplus H_{3}(e((g^{\tau})^{\alpha},g^{\beta})))))\\ &=H_{3}(e(g^{\delta_{j}},\text{decode}(\text{encode}((T_{3})^{ \beta}))))\\ &=H_{3}(e(g^{\theta S_{j}},H_{2}(w^{\prime})^{\pi\cdot H_{1}(Y^{ \prime})}))=I_{1,\pi_{j},Y^{\prime}}^{(up)}.\end{split}  \tag{17}\]

From Dec's Equation (15), we can obtain

\[ \begin{split}&\frac{e(K_{1,Y},C_{1})}{e(K_{3},C_{2})\cdot e(K_{4},C_{ 3,Y})}\\ =&\frac{e(g^{\sigma}g^{\sigma}g^{\sigma\tau}g^{ \beta\tau^{\prime}H_{1}(Y)}R,g^{\sigma})}{e(g^{\mu}R^{\prime},g^{\delta s}) \cdot e(g^{\mu}R^{\prime},g^{\sigma\tau H_{1}(Y)})}\\ =&\frac{e(g,g)^{\sigma\sigma}\cdot e(g,g)^{sat} \cdot e(g,g)^{\delta s\mu}\cdot e(g,g)^{\sigma\eta^{\prime}H_{1}(Y)}}{e(g,g)^ {\delta\eta^{\prime}\sigma H_{1}(Y)}}\\ =& e(g,g)^{\sigma\sigma}\cdot e(g,g)^{sat}; \end{split}