## 4 The Proposed AAC-IoT System Model
### Attribute-Based Access Control Scheme  
The ABAC scheme is proposed to allow the DUs to access the DO's uploaded data. In general, a set of attributes are predefined, and they are used for the construction of each access control policy. In this proposed ABAC scheme, the number of attributes is selected in accordance with the importance of data, and then the access policy is created. For instance, industrial data can be submitted with lesser attributes due to its non-sensitivity. In the same way, healthcare data are required to be provided with a high number of attributes due to the sensitivity of the data. The number of attributes for the access control policy is determined from a fuzzy logic method by taking into account data type and data preference. * Data Type \((D_{T})\): The input data type is defined as the type of the data that can be either sensitive or non-sensitive. The sensitive data represent the importance of the data, i.e., if data are confidential, then they are sensitive; otherwise, they are non-sensitive data. Figure 6: Neural Network for DU Authentication. Data Preference(\(D_{P}\)): The preference of data is defined as the priority provided from the DO. The DOs give a priority based on their requirement for the selection of the number of attributes. If the DO decides to be more protected, then the preference is higher, otherwise it is less. The degree of truth is the key concept of fuzzy logic which is enabled to make a decision according to the given input. The fuzzy logic method works on the basis of three processes as follows,  
* Fuzzification: The two inputs \(D_{T}\) and \(D_{P}\) are in the form of crisp values which are converted into a fuzzy set in the fuzzifier; then it moves to the next block after conversion. * Interference Engine: This engine is responsible for decision making, and the process takes place based on the generated IF-THEN rules. A knowledge base is connected to an interference engine which consists of a set of defined rules based on the considered set of inputs. Table 1 depicts the input and its corresponding output. The fuzzy sets are operated using the membership function that is represented as \(\mu_{F}\): \(X\rightarrow[0,1]\). The \(X\) is the input that maps towards the membership function, and \(F\) is the fuzzy set. The term \(N(a)\) represents the number of selected attributes, and \(n(T)\) is the total number of attributes. The input follows the result as per the rule and gives the output to the next block. * De-Fuzzification: The fuzzy set output from the engine is converted into crisp values in this defuzzifier. According to the obtained results, the number of attributes is used for generation of policy. A policy is defined based on the attributes that are based on subject attributes(\(A_{s}\)), object attributes (\(A_{O}\)), environment attributes (\(A_{E}\)) and permission attributes (\(A_{P}\)). According to the four type of attributes, the access policy is generated, and then the DU that passes the policy is allowed to access the DO's data. The fuzzy logic method in the selection of attributes is illustrated in Figure 7. While the result is to consider a lesser number of attributes, then \(A_{P}\) and \(A_{s}\) will be taken into account for the construction of the access policy. The fuzzy membership function is defined initially, and it can be updated as per increases in input. This fuzzy logic method is operated for each upload request from the DO. The attribute-based access control policies are generated and updated into the HLF blockchain and used whenever the DU submits a request for a data.