## 6 Security Analysis and Performance Evaluation
### Security Analysis  
The multi-level ACE algorithm in our system adheres to the \"no read\" and \"no write\" security rules of mandatory access control, ensuring the confidentiality and accessibility of the IoT knowledge flow. * **Confidentiality:** In our system, the IoT knowledge transfer is encrypted using ACE, instantiated based on the ElGamal public-key encryption scheme [43], which is indistinguishable against selectively chosen plaintext attacks (IND-CPA) and secure under the DDH assumption. In the sanitization phase, the edge server uses the sanitizer key to re-encrypt the received ciphertext, without having knowledge of its specific content. Importantly, the identity of the sender and intended receiver remains undisclosed, as all messages share a consistent format and are broadcast to every cloud server. * **No read:** All receivers \(R_{j}\) satisfying \(P(i,j)=0\) are unable to access any information about \(m_{i}\) from sender \(S_{i}\). This fundamental requirement ensures system confidentiality and can be fulfilled using a standard encryption scheme. Mostly, a receiver only decrypts the part of the message corresponding to its identity level for efficiency. When \(P(i,j)=0,ek_{i}\) and \(dk_{j}\) are mismatched. As the receiver's key cannot correctly decrypt information encrypted by the non-corresponding key, obtaining plaintext is impossible, even if the receiver attempts to decrypt all parts of the message. * **No write:** If \(P(i,j)=0\), no sender \(S_{i}\) can convey information to any receiver \(R_{j}\). The sanitizer is unable to extract the identity-level information of the sender from \(C\) because each part of the ciphertext in message \(C\) shares a uniform structure, rendering it indistinguishable. Additionally, the sanitizer employs a specific random algorithm for received message \(C\) and cannot comprehend the message's content without the decryption key, preventing it from identifying the sender and receiver. So, a corrupt sender cannot collude with the sanitizer to transmit messages to an unauthorized receiver. On the other hand, if sender \(S_{i}\) seeks to convey information, it may substitute the information for random numbers in the message part corresponding to the receiver. However, with \(P(i,j)=0\), sender \(S_{i}\) lacks the encryption key corresponding to receiver \(R_{j}\). As a result, the receiver cannot decrypt the message part with its key after the sanitizer's processing, preventing the receiver from obtaining any information from an unauthorized sender. On the one hand, the FL model using ACE to set multiple security levels can provide personalized privacy protection for users, and the confidentiality of knowledge is provided by cryptography. On the other hand, blockchain ensures system reliability and that it is tamper-proof. * **Tamper-proof:** The process of knowledge sanitization is carried out through the execution of the script file within the smart contracts. As long as the smart contract works properly in Ethereum, the re-encryption of the message is executed correctly. The sanitization results will be publicly and permanently saved. The user's messages are checked using the hash function, and the message record is stored on the blockchain. Due to the transparency of blockchain, the tampered messages is traceable and cannot be denied. Each blockchain node in the system can detect any alterations. Consequently, our system can become tamper-proof and achieve the traceability of IoT knowledge. * **Reliability:** The decentralized feature of the blockchain can mitigate risks associated with a centralized structure. Each edge server holds the data for the entire blockchain, which avoids data recovery problems after a single server failure. Blockchain provides a trust mechanism for the IoT that does not rely on third parties, and its consensus mechanism can solve the problem of trust and synchronization among numerous edge servers. The trust problem of IoT users is solved through registration and authentication process.