# A Study on the Design of Fog Computing Architecture Using Sensor Networks
## 2 Related Research
### Attribute-Based Encryption  
Attribute-based encryption is a type of encryption method that allows only users who have sufficient attributes about encrypted data to decrypt the data. Attribute-based encryption starts from configuring identity values of identity-based encryption to a set of pre-determined attributes. The attribute-based method proposed by [PERSON], et al. in an early stage, used a threshold technique. A ciphertext contains Set S consisting of attributes owned by an encryptor. A user who wants to decode a ciphertext compares Set S' (a group of his/her own attributes) with Set S. If a certain number (k) of attributes is matched, the cipher text can be decrypted. After that, there have been many studies on diversified message encryption techniques, beyond the limitations of the threshold technique, which is a simple comparison of attribute values. As a result, two attribute-based encryption methods were proposed: key policy attribute-based encryption and ciphertext policy attribute-based encryption. The ciphertext-policy attribute-based encryption proposed by [PERSON] et. al solves the issue of key-policy attribute-based encryption in which an encryptor does not have an authority to access a ciphertext as a user [14]. A ciphertext created by ciphertext-policy attribute-based encryption contains access tree structure and encrypted data which are required to decrypt a ciphertext. A private key to be used consists of keys issued by a key issuer against attributes of a user. If an attribute value owned by a user is matched with an access tree structure included in a ciphertext, the ciphertext can be decoded. Figure 5: Clustering of Sensor Networks in an IoT environment. The process of ciphertext-policy attribute-based encryption is illustrated in Figure 6. Each user has an attribute such as 'Premium', 'Basic' or 'Drama'. In a message, an access tree of 'Premium' \(\vee\) ('Basic' \(\wedge\) 'Sports') is encrypted. User 2 also can decrypt the message because the access tree is satisfied. However, User M cannot decrypt the message because the access tree is not satisfied. The existing Ciphertext-Policy Attributed-Based Encryption (CP-ABE) method does not practically deal with revocation and delegation. It conducts flexible attribute delegation and revocation as an extended type of attribute-based encryption. Ciphertext-Policy Attributed-Based Threshold Decryption (CP-ABTD) has three characteristics: first, a delegator who owns a private key about an attribute group can assign his/her authority to a delegatee. Second, a delegator can decide delegation of his/her authority to a delegatee. Third, the proposed method allows revocation of attributes [15]. Most of the methods proposed in attribute-based encryption use a list of people who revoke attributes and NOT operations in Key-Policy Attribute-Based Encryption (KP-ABE). An example of an attribute revocation method is to set the expiry date on attributes. [PERSON] briefly mentioned how to revoke an attribute value, proposing CP-ABE [4]. The method to revoke attributes is to attach an expiry date to the private key and an attribute value of a ciphertext. The expiry date of an attribute value included in the private key is compared with the time value of a ciphertext. If the expiry date is passed, a user is not allowed to use an attribute value any more. However, this method does not propose how to renew expired attribute values. Therefore, the expiry date is passed, an attribute must be re-issued. In addition, this method does not consider how to revoke an attribute value before the expiry date. To propose how to revoke an attribute value in KP-ABE, [PERSON] allocates the revocation list to a ciphertext [16]. In addition, he creates a d-order equation, assuming that all ciphertext has 'd' (number) attribute values. A user who is not included in the revocation list uses his/her ID as an attribute value and calculates the private value through interpolation with a result from 'd+1' polynomial equations.