The present invention relates to a system for sharing real-time IoT data, and more specifically, to a real-time IoT data sharing system that supports attribute-based access control.
Data collected in real time from Internet of Things (IoT) devices can be transmitted to other electronic devices through the Internet and used in various ways. For example, when IoT data is encrypted and transmitted to a cloud server in order to allow an owner who has collected the IoT data and a user who needs the IoT data to share the IoT data, the cloud server can request that the owner generate a re-encryption key at the request of the user, convert the encrypted IoT data such that only the user can decrypt the same using the re-encryption key, and transmit the converted IoT data to the user. However, if the number of users requiring IoT data increases, it is difficult to share IoT data in real time due to the problem of performing complex encryption operations corresponding to the number of users because IoT devices have low computational performance.
According to embodiments, an IoT device that outsources some high-performance operations of an attribute-based encryption technique to a peripheral device in order to share IoT data in real time can be provided.
According to embodiments, a server that stores encrypted IoT data, retrieves IoT data using an attribute bloom filter as a query, and provides the IoT data to a legitimate consumer can be provided.
According to embodiments, a user device that generates an attribute bloom filter using attributes of an access policy thereof, transmits the attribute bloom filter to a server to request IoT data, and obtains IoT data retrieved using an attribute bloom filter as a query can be provided.
In accordance with an aspect of the present invention, the above and other objects can be accomplished by the provision of an IoT device including at least one sensor, which is configured to collect IoT data at regular intervals through the at least one sensor, to generate a partially encrypted intermediate ciphertext by performing at least some operations of attribute-based encryption on the IoT data, and to transmit the intermediate ciphertext to a peripheral device in order to request remaining operations of attribute-based encryption for the intermediate ciphertext.
In accordance with another aspect of the present invention, there is provided an electronic device including a communication interface, which is configured to provide external network communication connection to an IoT device using the communication interface, to receive data and an encryption request for the data from the IoT device, to generate a ciphertext by performing some operations of attribute-based encryption on the data in response to the encryption request, and to transmit the ciphertext to a server.
In accordance with a further aspect of the present invention, there is provided an electronic device configured to encrypt attributes constituting an access policy with a group key and create an attribute bloom filter using the encrypted access policy, to transmit the attribute bloom filter to a server to request IoT data, to receive a ciphertext searched by using the attribute bloom filter as a query and an attribute set for the ciphertext from the server, and to obtain IoT data by decrypting the ciphertext using the group key and a private key.
Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.
According to embodiments, it is possible to safely transmit data to multiple receivers through one-time encryption using an attribute-based encryption technique in a system sharing IoT data.
According to embodiments, it is possible to share IoT data with consumers (receivers) through a server in real time by performing an attribute-based encryption operation that requires relatively low performance by an IoT device and performing attribute-based encryption operation that requires relatively high performance by a peripheral device in a system sharing IoT data.
According to embodiments, when a consumer encrypts the attribute of his/her access policy with a group key shared with a device that generates IoT data and requests encrypted IoT data from a server using an attribute bloom filter generated using the access policy, the server transmits a ciphertext retrieved using an attribute bloom filter as a query to the consumer, to thereby provide IoT data only to the legitimate consumer without leaking information on the ciphertext.
The above and other objects, features and other advantages of the present invention will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of rights is not restricted or limited by these embodiments. Like reference numerals in each figure indicate like elements.
The terms used in the description below have been selected as general and universal ones in the related technical field, but there may be other terms depending on the development and/or change of technology, the preference of those skilled in the art, etc. Therefore, the terms used in the following description should not be understood as limiting technical ideas, but should be understood as exemplary terms for describing embodiments.
In addition, in a specific case, there are also terms arbitrarily selected by the applicant, and in this case, the detailed meaning will be described in the corresponding description section. Therefore, the terms used in the following description should be understood based on the meanings of the terms and the contents throughout the specification, not simply the names of the terms.
The IoT device 110 may detect data (e.g., human heartbeat) therearound through a sensor (e.g., an electrocardiogram sensor) at the end of the system 100 for sharing IoT data and share the detected data with another electronic device (e.g., user device 300). In one embodiment, the IoT device 110 may encrypt IoT data together with the peripheral device 120. For example, the IoT device 110 with low computational performance may outsource some operations of an encryption process according to attribute-based encryption to the peripheral device 120 with relatively high computational performance. The peripheral device 120 may be located around the IoT device 110 and serve as a path connecting the IoT device 110 to the external Internet. In one embodiment, the peripheral device 120 may provide resources necessary for the IoT device 110 to encrypt data. In terms of providing resources for encryption operation, the peripheral device 120 may be regarded as a security agent (SA). In various embodiments, the peripheral device 120 has better performance than the IoT device 110 and may be, for example, a router, a base station, or a roadside device. Attribute-based encryption includes a multiplication operation, an exponential operation, and a bilinear pairing operation, and the exponential operation and the bilinear pairing operation require a large amount of computation. Since the IoT device 110 has low power and low computational performance, it takes a long time to execute operations and it is difficult to process data in real time and transmit the same to the server 200 if all operations of attribute-based encryption are performed. In one embodiment, the IoT device 110 may perform only some operations of attribute-based encryption based on edge-computing and outsource a process including an exponential operation and a bilinear pairing operation requiring a relatively large amount of computation to the peripheral device 120.
The user device 300 may serve as a consumer that requests and obtains necessary IoT data from the server 200 to utilize the IoT data. The user device 300 may obtain/decrypt only desired data by receiving a private key from a trust authority (TA) 400 according to definition of an access policy. In one embodiment, the user device 300 may use an attribute bloom filter as a query in order to check whether an attribute set encrypted in a ciphertext in which IoT data has been encrypted according to attribute-based encryption and the private key of the data receiver (user device 300) match each other. A bloom filter is a probabilistic data structure used to test whether a set includes an element. The bloom filter includes several blocks, each block being composed of one bit and represented by a value of 0 or 1, to test whether an element is present in a set. In the Garbled bloom filter, one block is composed of several bits, and data stored in the bloom filter can be recovered. An access policy or an attribute set is included in a ciphertext according to attribute-based encryption, and a bloom filter for the access policy or attribute set may be generated. The IoT device 110 according to an embodiment may encrypt an attribute set for attributes of IoT data using a group key and transmit the encrypted attribute set to the server 200 through the peripheral device 120, and the user device 300 according to an embodiment may encrypt the access policy included in the private key generated according to KP-ABE with the group key, generate an attribute bloom filter, and transmit the attribute bloom filter to the server 200. The server 200 may query the encrypted attribute set generated by the IoT device 110 and the attribute bloom filter generated by the user device 300, and if they match, ascertain that the attribute set of the ciphertext and the access policy of the private key match each other. The receiver who succeeds in matching can decrypt the ciphertext using the private key. Since the process of generating and querying the attribute bloom filter includes only hash function operation, it requires a small amount of computation and enables rapid computation.
The server 200 may store encrypted IoT data using, for example, a cloud server. The server 200 may serve as a broker for retrieving stored IoT data for IoT data desired by a user and transmitting the IoT data in response to a user request. The server 200 may query attribute bloom filters created and transmitted by a plurality of user devices for necessary data thereof with respect to data attributes of a ciphertext, and transmit matching IoT data to each user device. Since only the system 100 for sharing IoT data and the user device 300 have a group key for IoT data, the server 200 only knows some information (attribute bloom filter) on the ciphertext and cannot decrypt the ciphertext, and thus security can be maintained.
The trust authority (TA) 400 may provide system initialization and authorization for entities. The TA 400 may provide device authentication for the IoT device 110 during an initial construction process. The TA 400 may generate parameters for the system through a setting process and distribute encryption keys suitable for respective entities (e.g., the IoT device 110 and the user device 300).
A key management center (KMC) 500 may periodically update and manage a group key G shared by the IoT device 110 and the user device 300.
In step S201, the IoT device 110 may collect data at regular intervals using a sensor. In various embodiments, the IoT device 110 may include various sensors, and the IoT device 110 may operate in a fixed position or may be movable. The IoT device 110 may perform primary encryption on the collected sensor data according to attribute-based encryption. For example, the IoT device 110 may perform some operations including only relatively simple operations in attribute-based encryption. The IoT device 110 may generate an attribute set obtained by symmetrically encrypting attributes of IoT data using a group key.
In step S202, the IoT device 110 may transmit the primarily encrypted data to the peripheral device 120. The IoT device 110 may transmit the encrypted attribute set to the peripheral device 120 along with the encrypted data.
In step S203, the peripheral device 120 may receive the data primarily encrypted according to attribute-based encryption and perform secondary encryption according to attribute-based encryption to generate a final ciphertext. The peripheral device 120 may perform a communication function for connecting to the external Internet, and may perform relatively high-performance computation compared to the IoT device 110. The peripheral device 120 may be, for example, a router, and may perform remaining operations of attribute-based encryption on the received data.
In step S204, the peripheral device 120 may transmit the final ciphertext and the attribute set for the ciphertext to the server 200.
In order to request desired IoT data, the user device 300 may encrypt attributes constituting an access policy included in a private key thereof using the group key and generate an attribute bloom filter (ABF) for the encrypted access policy in step S205, and request the desired IoT data by transmitting the attribute volume filter (ABF) to the server 200 in step S206.
In step S207, the server 200 may retrieve stored encrypted IoT data for an attribute set of matched IoT data using the attribute bloom filter (ABF) as a query. Since the encrypted attribute set and the attribute bloom filter using the encrypted access policy are compared, the server 200 can serve as a broker without the need to ascertain (decrypt) the encrypted IoT data.
In step S208, the server 200 may transmit a matched IoT data ciphertext to the user device 300 that has requested the IoT data.
In step S209, the user device 300 may decrypt the received ciphertext using the private key according to attribute-based encryption.
In step S401, the TA 400 may initialize the system by setting parameter values for performing the protocol.
In step S402, each entity may set security through the TA 400. Each entity (e.g., the IoT device 110, peripheral device (SA) 120, server 200, and user device 300) may transmit an ID to the TA for the entire system for sharing IoT data, and register with the TA to receive parameters necessary in a process of sharing IoT data.
In step S403, the IoT device 110 and the peripheral device (SA) 120 may exchange keys for authentication before transmitting IoT data. For example, the IoT device 110 may exchange key values necessary for mutual authentication in order to outsource a part of data encryption to the peripheral device 120 in advance.
In step S404, mutual authentication with the peripheral device (SA) 120 for the movable IoT device 110 may be established. As the mobile IoT device 110 such as a vehicle or a smartphone moves, the peripheral device (SA) 120 for Internet connection may be continuously changed. The IoT device 110 needs to rapidly authenticate with the peripheral device 120 to enable real-time data sharing. A handover process at the time of moving from a previous peripheral device 120 to the next peripheral device 120 may be set in advance. In various embodiments, various methods that can be used for handover between the mobile IoT device 110 and the peripheral device (SA) 120 for communication establishment may be applied. For example, the IoT device 110 may use a secure domain-based handover ReHand for rapid mutual authentication with respect to the peripheral device 120.
In step S405, mutual authentication is performed between the IoT device 110 and the peripheral device 120 to share IoT data, and the IoT device 110 and the peripheral device 120 encrypt the IoT data together and transmit the encrypted IoT data to the server 200. The IoT device 110 collects data through a sensor, and the IoT device 110, the peripheral device (SA) 120, and the server 200 perform mutual authentication using keys exchanged in system initialization settings. The IoT device 110 may randomly select a symmetric key and symmetrically encrypts the IoT data to create ED=(Data). The IoT device 110 may generate an intermediate ciphertext by encrypting the symmetric key with an algorithm .
The algorithm includes some operations of attribute-based encryption, and may include multiplication and subtraction operations requiring a relatively small amount of computation. The algorithm can partially encrypt data M for an attribute set S using a previously calculated MC. The IoT device 110 may symmetrically encrypt the attribute set S of IoT data using a key KGroup received from the KMC 500 to generate . The IoT device 110 may transmit ED obtained by symmetrically encrypting the IoT data, the intermediate ciphertext MC′, and the encrypted attribute set to the peripheral device (SA) 120. The peripheral device (SA) 120 may generate a final ciphertext CT= by performing the remaining operations of attribute-based encryption using an algorithm on the intermediate ciphertext MC′. The peripheral device (SA) 120 may transmit the symmetric ciphertext ED, the final ciphertext CT, and the encrypted attribute set to the server 200. The server 200 may store the symmetric ciphertext ED, the final ciphertext CT, and the encrypted attribute set received from the peripheral device (SA) 120 in the cloud server. This step will be described in detail in
In step S406, the user device 300 may perform mutual authentication and data request for the server 200 for IoT data access and may receive IoT data. The user device 300 and the server 200 may authenticate each other prior to IoT data request and transmission. The user device 300 may perform symmetric encryption
on an access policy included in the private key thereof using the key KGroup. The key KGroup is received from the KMC 500 and is shared with the IoT device 110, and the server 200 does not know the key KGroup. The user device 300 may generate an attribute bloom filter for the encrypted access policy using an algorithm ABFBuild and transmit the attribute bloom filter to the server 200 to request necessary IoT data. The server 200 may retrieve suitable IoT data be performing
on the stored in the cloud server using the received attribute bloom filter as a query. The server 200 may transmit for which TRUE is obtained as a result of ABFQuery to the user device 300. At the time of transmitting , the server 200 may transmit along with the symmetric ciphertext ED and the final ciphertext CT with respect to to the user device 300. The user device 300 may decrypt the received with the key KGroup to obtain an attribute set S of IoT data. The user device 300 may obtain the symmetric key by using Decrypt for the private key, the final ciphertext CT, and the attribute set S. The user device 300 may obtain the IoT data by decrypting the symmetric ciphertext ED using the symmetric key . This step will be described in detail in
The IoT data storage protocol of an embodiment may outsource a complex operation to the peripheral device (SA) 120 according to encryption outsourced key-policy attribute-based encryption (EO-KP-ABE). An access structure is composed of three components such as =. A is a l×m matrix, and ρ is a function mapped to each row Ai of A with the attribute name {att1 . . . attn}. Each attk=ρ(i) has an attribute value included in an attribute value set T=. An attribute set S for encrypted data can be defined as S=, and each value is an attribute value of attk.
A setup function Setup can be defined as Setup. The setup function Setup can generate a bilinear group having for different primes by executing . and T are multiplicative cyclic groups for N=p1p2p3 and a bilinear map . In addition, is a randomly selected value. The setup function Setup outputs a public key PK= and a master private key MSK= of the system.
A key generation function can be defined as KeyGen (PK.MSK.=(A.ρ.T)) KeyGen generates a private key corresponding to the access structure of each user device for the user device. Any column vector in which the first row is may be selected. For each , Qi can represent an attribute set . For each row Ai, may be selected by increasing X3 by an arbitrary power, and may be randomly selected. The key generation function calculates and outputs a secret key
An offline encryption function OfflineEnc can be defined as OfflineEnc(PK). OfflineEnc can select a random number set K=. OfflineEnc calculates AC= and outputs MC=.
A primary attribute-based encryption function can be defined as . partially encrypts a message M for an attribute set S using a previously calculated MC. selects, , calculates AC′=M·AC=M· S′=, and outputs MC′=.
A secondary attribute-based encryption function can be defined as (PK.MC′). calculates C=AC′. , and outputs CT=.
A decryption function Decrypt can be defined as Decrypt. Decrypt outputs M if S satisfies an authenticated set . First, it finds a set , and calculates if S satisfies . can be calculated as . Decrypt outputs FALSE (−) if it cannot find . Otherwise, it calculates
for each i ∈ . In addition, it calculates
and outputs M=C/. Hereinafter, the IoT device 110 may be referred to as Di, the peripheral device 120 may be referred to as SAt, and the server 200 may be referred to as Br.
In step S501, Di may select constants n1 and n2, calculate AU1=Hn1, AU2=HHn2, σ1=∥n2, and σ2=|n2), and send }to SAt.
In step S502, SAt may retrieve stored VerD
In step S503, Br may retrieve using and obtain and . Br checks whether and . If either of two fails, then Br stops the above step. Otherwise, if both pass, Br calculates SKIB=H, =H, and =H. Then, Br transmits to SAt.
In step S504, checks SAt whether . If checking passes, SAt calculates and transmits to Di.
In step S505, Di checks whether , and if it is, calculates SKIB =H. Then, Di checks whether , and if checking passes, calculates =, and replaces stored with . Then, it generates a symmetric key for encrypting Data, which is IoT data that Di intends to share, and calculates ED=(Data). In addition, Di generates MC′ using . Then, Di calculates = and . After calculating , Di transmits to .
In step S506, SAt calculates = and checks whether . If checking passes, SAt calculates =, replaces stored with , and replaces stored with . SAt calculates = and transmits to Br.
In step S507, Br calculates = and checks whether =. If checking passes, Br replaces stored with . Then, Br calculates and stores in a storage space of the server.
The function ABFBuild can be defined as ABFBuild(. The function ABFBuild generates a vacant ABF composed of blocks BABF. Here, each block is composed of λ-bits. The function ABFBuild connects an attribute name ρ(i) corresponding to the i-th row of A and an attribute value as one element . The function ABFBuild randomly selects J−1 λ-bit string in order to put each element ei in ABF, and calculates . The function ABFBuild hashes as using J hash functions that output one of the integers from 1 to BABF. The result of each hash function represents the position index of ABFA, and each enters the position of ABFA with . If the position is occupied by a previously added string, it is reused by . The function ABF Build repeats the above process for all rows of A and outputs ABFA.
The function ABFQuery can be defined as ABFQuery. The function ABFQuery combines the corresponding attribute name attk for each attribute value , and hashes it as H with a hash function J. For each , the function ABFQuery can obtain a string at the position H of ABFA. The function ABFQuery reconstructs the element as with this string. The function ABF Query takes the last +-bit string from the element and checks whether it is identical to attk|. If they are identical, it can be interpreted that the attribute name attk (and the attribute value are included in the access structure . The function ABFQuery obtains leading L bits of , which represent the row of the matrix corresponding to the attribute name attk and attribute value . After repeating the above process for all , the function ABFQuery creates a set with the obtained row number. If S satisfies the function ABFQuery can find ωi satisfying using the row of A corresponding to the obtained row number. In this case, the function ABFQuery outputs 1, which means TRUE, and in the opposite case, that is, if S does not satisfy , outputs 0.
In step S601, Cn randomly selects a constant d and calculates D= and . Cn transmits to Br.
In step S602, Br may retrieve using and obtain d=:D. Br checks whether , and if checking fails, the above step is stopped. Otherwise, Br calculates = and transmits to Cn.
In step S603, Cn checks whether . After checking, Cn calculates = and replaces with . Then, Cn calculates
and transmits
In step S604, Br calculates and verifies whether
Br calculates = and replaces with , To find data including S satisfying , Br executes a function
on all of the storage server. Br retrieves for all for which a query result value is TRUE and calculates
in order to encrypt all retrieval results. Br calculates = and transmits to Cn.
In step S605, Cn may obtain a ciphertext and a hidden attribute sets by performing step
Cn verifies whether and calculates S=, ks=Decrypt, and Data=(ED) for all .
In step S701, the IoT device 110 may collect IoT data at regular intervals through at least one sensor included in the IoT device 110.
In step S702, the IoT device 110 may generate an intermediate ciphertext obtained by partially encrypting the collected IoT data by performing some operations of attribute-based encryption. Some operations of attribute-based encryption may include multiplication and subtraction operations, and may not include exponential operation and bilinear pairing operation.
In step S703, the IoT device 110 may generate an attribute set for the IoT data. The IoT device 110 may encrypt the attribute set using a group key. The group key may be shared in advance with the user device 300 requiring IoT data by the key management center 500.
In step S704, the IoT device 110 may transmit the intermediate ciphertext and the encrypted attribute set together to the peripheral device 120 in order to request execution of the remaining operations of attribute-based encryption. The peripheral device 120 may provide external network communication connection for the IoT device 110 and may perform higher-performance operation than the IoT device 110. The remaining operations of attribute-based encryption requested for the peripheral device 120 may include exponential operation and bilinear pairing operation.
In step S801, the peripheral device 120 may receive an intermediate ciphertext and an encrypted attribute set from the IoT device 110.
In step S802, the peripheral device 120 may generate a final ciphertext for the intermediate ciphertext by performing the remaining operations of attribute-based encryption. The remaining operations of attribute-based encryption may include exponential operation and bilinear pairing operation.
In step S803, the peripheral device 120 may transmit the final ciphertext and the encrypted attribute set to the server.
In step S901, the user device 300 may generate an ABF for attributes of an access policy. The user device 300 may encrypt attributes constituting an access policy included in a private key using a group key and generate an attribute bloom filter using the encrypted access policy. The group key may be shared in advance with the IoT device 110 that has generated IoT data by the key management center 500.
In step S902, the user device 300 may transmit the ABF to the server 200 to request IoT data.
In step S903, the user device 300 may receive a ciphertext matching the ABF from the server 200. The ciphertext matching the ABF is a ciphertext of an attribute set retrieved using the ABF as a query.
In step S904, the user device 300 may decrypt the received ciphertext according to attribute-based encryption to obtain IoT data.
The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may be implemented using one or more general purpose or special purpose computers such as a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable logic unit (PLU), microprocessors, or any other devices capable of executing and responding to instructions, for example. A processing device may execute an operating system (OS) and one or more software applications running on the operating system. Further, the processing device may access, store, operate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device may include a plurality of processing elements and/or a plurality of types of processing elements. For example, the processing device may include a plurality of processors or a processor and a controller. Other processing configurations such as a parallel processor are possible.
Software may include a computer program, code, instructions, or a combination of one or more thereof, and may configure a processing device such that it operates as desired or issue commands to the processing device independently or collectively. To be interpreted by a processing device or to provide instructions or data to the processing device, software and/or data may be permanently or temporarily embodied in any type of machine, component, physical device, virtual equipment, computer storage medium or device, or transmitted signal waves. Software may be distributed to computer systems connected via a network and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
The method according to the embodiments may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiments or may be known to and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD- ROMs and DVDs, magneto-optical media such as floptical disks, and hardware devices specially configured to store and execute program instructions, such as a ROM, a RAM, and flash memory. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter as well as machine language code such as code created by a compiler. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
Although the embodiments have been described with limited examples and drawings, as described above, those skilled in the art can make various modifications and variations from the above description. For example, even if the described techniques are performed in an order different from the method described, and/or components such as the described system, structures, devices, and circuits are combined in a different form from the method described above or replaced by other components or equivalents, appropriate results can be achieved. Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2021-0186293 | Dec 2021 | KR | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/KR2022/013866 | 9/16/2022 | WO |