Abstract
In the last years, cloud computing has emerged as a new information technology (IT) model. Which provides an easy way for data processing and storage remotely through a network. Nowadays, cloud storage has become an attractive storage scheme for users to store their data. When users store their files remotely in a cloud storage system, they still worried about the security of their files and the guarantee of the confidentiality and the integrity of them. In this work, we propose a multi-agent framework to provide cloud data storage security. The proposed multi-agent framework enables the security of data in cloud storage by providing both integrity and confidentiality of data. For this purpose, we proposed a client-side encryption method, which is based on the use of both AES and RSA algorithms, it provides the confidentiality and privacy of data besides the performance. Proof of retrievability based on the use of hash function is adopted in our multi-agent framework, to enable data integrity check.
Introduction
During the last years, information technology has widely developed, aiming to increase the power of the computing resources and to decrease their costs, which led to the situation where big data can be collected, stored and treated.
In that context, cloud computing rapidly appears as IT solution of choice for many companies and individuals. According to the national institute of standards and technology: “cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction” [13].
Cloud storage is a model of networked online storage where data is stored on multiple virtual servers [16], it enables the users to store and manage their data remotely in the cloud. Due to cloud computing characteristics, like the multi-tenancy nature, the virtualization and the outsourcing of sensitive data. The users of cloud storage are perplexed about how security can be guaranteed in the cloud storage system. Moreover, they are worried about hosting their sensitive data in the cloud storage systems. The characteristics of cloud computing can create a serious data risk as the same resources are used among the different users [1].
The existing cloud storage systems use a cloud side encryption technique, to provide the confidentiality of the stored data, which means that they are capable to reach the real data of the user. Besides almost of them do not provide a technique and a way to allow the users to check the correctness of their data. There is always a big concern of whether the cloud storage provider can access to our data without our permission and reveal them to unauthorized entities and also if he stores our data correctly in its virtual servers. The data security is the biggest challenge for cloud storage providers. This term means protecting information and information systems from unauthorized access, use, disclosure, disruption, modification, or destruction in order to provide integrity, confidentiality and availability [8].
Motivated by these raised facts and in order to provide the security of data in the cloud storage systems, we propose in this research a multi-agent framework of security. The proposed multi-agent framework based on the use of encryption techniques to provide the integrity and the confidentiality of data. A client side encryption method is proposed to protect the data of the user at the cloud servers. It is based on the use of both RSA and AES algorithms, which are used to guarantee the confidentiality and privacy of data. A proof of retrievability based on the use of hash function is adopted, to provide data integrity, and to guarantee that the data are still intact in the cloud storage systems.
The rest of this paper is organised as follows. Section 2 briefly reviews some related works. Section 3 presents the proposed multi-agent framework. In Section 4, we propose an implementation and use case using the jade platform. Section 5 discusses the performance of our proposed multi-agent framework. Finally, a conclusion and future works are given in Section 6.
Literature review
In the literature, many works used the multi-agent system to provide the cloud computing security. The use of multi-agent system comes with different techniques and methods, which can be classified into encryption methods, identity and access management (IAM) techniques, intrusion detection systems and trust and monitoring methods.
From an encryption methods perspective, many works have been proposed, because the encryption of data is the core of the confidentiality. Islam and Habiba [11] proposed an agent-based framework for providing security to data storage in cloud. Their proposal contains three different layers, the user layer, the cloud service provider layer and the storage layer. For each layer, ants are used to maintain the security in the cloud system. In their work they based on the use of encryption techniques, fist they classified the security into many levels then they applied a different algorithm for each security level. The classification of security into many levels increase their system performance. Rhazlane et al. [21] proposed an intelligent multi-agent system based solution for data protection in the cloud. Their solution is based on the encryption process before storage, it allows selective data encryption at the column level with a possibility of performing the encryption process on one part of the data using different encryption keys, they used an approach that uses a cryptographic system based on encryption keys stored in the data owner side, who constantly keeps the encrypted data at the server level and performs decryption only on the client side.
From an IAM perspective, several contributions have been proposed, IAM remains one of the greatest challenges. Alguliev and Abdullayeva [19] proposed an identity management based security architecture of cloud computing, they used multi-agent system to create an identity federation process over a federation cloud. In their work, they based on the use of single sign-on technique that allows the users to authenticate at a single identity provider and gain access to all cloud service providers in a federation with identity providers without providing any additional information. Zhou and Qin [5] proposed a security framework for cloud data storage based on multi-agent system, the proposed cloud security framework can be divided into two layers: one is a cloud data storage layer, and the other is the proxy service layer based on multi-agent. To achieve their goal, they set an access control policy of cloud-based data in a confidentiality agent, which is able to define corresponding mathematical formulas for each user’s access structure. The formula formed by the data access control policy is defined as security formula.
From an intrusion detection perspective, several approaches have been proposed. Muthurajkumar et al. [20] proposed an agent-based intelligent approach for the malware detection for infected cloud data storage files. The main objective of their work is to detect malware infected files while transmitting the files from server to client and to provide a secure way to transfer files among users. To achieve their goal, the malwares are first classified based on their families and then they are compared with exact matching algorithm and maximum matching algorithm. By using this technique in their work, the presence of malwares are detected. Achbarou et al. [14] proposed a multi agent approach based intrusion detection system (IDS). The IDS is used for detecting and preventing attacks in the cloud environment. Their solution is structured around three main interacting layers and seven agents interact in their approach, they used two special agents, the intrusion detection agent is an intelligent IDS that can detect two signals, one of which is known intrusion and another intrusion unknown, and the intrusion prevention agent. This agent performs some preventive services like blocking of suspicious traffics.
From a trust and monitoring perspective, several works have been proposed, Sianipar et al. [6] proposed the construction of agent-based trust in cloud infrastructure, their system detect unauthorized access by verifying and monitoring the integrity of cloud infrastructure security relevant parts. In this work, they based on the use of trusted boot with TPM (Trusted Platform Module) to perform integrity verification at boot-time, their solution also monitors access to security relevant parts, such as hardware/software configuration, to be able to detect any changes at run-time. Venkateshwaran et al. [7] proposed a security framework for agent-based cloud computing. The proposed framework consists of various modules includes a security agent, serving as front end authenticator and trust analyzer of a cloud. To maintain the trust in agents’ interaction, a trust model is used. When a trusted communication happens, the trust degree of the agent gets increase. Similarly, when a non-trusted communication happens, the trust degree of the agent gets decrease.
As we notice, several techniques for cloud security have been proposed. It becomes necessary to choose the most suitable technique, to provide the security of data in cloud storage and to fulfil all the security properties, such as confidentiality and integrity.
A multi-agent framework for cloud data storage security
The data security is the biggest challenge for cloud providers. In this section we present our solution, which is based on the use of encryption techniques to provide the security in cloud storage systems. First; we present the multi-agent framework architecture, after that; we describe the multi-agent framework and we explain how it works, and then; we present the proposed encryption and the integrity check methods respectively, which are used to guarantee the confidentiality and integrity of data in cloud storage systems.
The multi-agent framework architecture
The structure of the cloud storage system consists of four layers: the storage (physical) layer; it contains the physicals storage, the management (virtual) layer; it is the core of cloud storage, the application interface layer (API); it is used to access the cloud storage system, and the access layer; which is used for the access control [3]. To achieve our goal, and to guarantee the security of data in cloud storage, we used a group of agents, which are distributed among the different storage layers and they collaborate between them to ensure the security of data in the cloud storage. Figure 1 presents the multi-agent framework architecture. The description of agents and the tasks of each one of them are defined as follows:
The multi-agent framework architecture.
The data owner (DO): The data owner layer represents a cloud user, who wants to store its data in a cloud storage system. In this level, we used four types of agents, which are defined as the following:
Interface agent: This agent is responsible of presentation for data and the interaction with the user. Its first job is to authenticate the user with the help of the authenticator agent; it also interacts with the encryption agent and/or the proxy agent during the interaction. It contains the following modules: posting module, an analyzer module, communication module and knowledge base. Figure 2 represents the interface agent.
The interface agent. Proxy agent: This agent is an intermediary between the agents at data owner layer and the other agents of the system. It is responsible for passing the requests of the user and the reception of the responses, through the mobile agent. Therefore, it interacts with the interface agent. This agent contains the following modules: processing module, communication module and knowledge base. Figure 3 represents the proxy agent.
The proxy agent. Authenticator agent: This agent is responsible for the authentication of the user; it is requested by the interface agent, to authenticate the user. This agent contains the following modules: processing module, communication module and knowledge base. Figure 4 represents the authenticator agent.
The authenticator agent. Mobile agent: This agent is the channel of communication between the data owner layer and the cloud provider layer. Its job is to move between the two layers and carry the requests and responses. It is used to provide a safe communication and to reduce the traffic. This agent contains the following modules: processing module, communication module and knowledge base. Figure 5 represents the mobile agent.
The mobile agent. Encryption agent: This agent is responsible of the encryption operation, it encodes the data, using the user’s secret key before sending them to the cloud provider, and it is also responsible of the generation of the hash code and the digital signature of the user’s file. In the other way, this agent is used to decode the user’s data, to make them readable. It contains the following modules: an encryption module, communication module and knowledge base. Figure 6 represents the encryption agent.




The encryption agent.
The cloud provider (CP): this layer represents a cloud provider, which provides data storage service to the customers. In this level, we used one agent:
Cloud provider agent: this agent works on behalf of the cloud storage provider. It interacts with the mobile agent of the data owner layer, and then he executes the request of the data owner. After that, he returns the result to the mobile agent. This agent contains the following modules: processing module, communication module and knowledge base. Figure 7 represents the cloud provider agent.
The cloud provider agent.
The proposed multi-agent framework allows the user to store its data in cloud storage and it enables the security to them. To reach this goal, the agents collaborate and interact between them.
To store its data in cloud storage, the user authenticates himself through the interface agent, with the help of the authenticator agent. Then, the interface agent posts the interface. Now the user can select any file and ask to store it. The interface agent asks the encryption agent to perform the encryption operation. After that, it asks the proxy agent to send the encrypted file to the cloud storage. The proxy agent requests the mobile agent, which moves to the cloud storage, and carries the encrypted file. In the cloud storage level, the mobile agent asks to the cloud provider agent to store the encrypted file. After the storage operation, it moves again to the data owner layer and informs the proxy agent, which notifies the interface agent that the file is stored correctly. Figure 8 shows the sequence diagram which summarizes the interaction between the agents to store a file, where the steps are as follows:
The interaction of agents to store a file.
Step 01: the user provides its username and password to the interface agent. Step 02: the interface agent asks the authenticator agent to verify the user’s identity. Step 03: the authenticator agent checks the user’s identity, and returns the result. Step 04: if the identity is correct, the access is allowed, else, it is rejected. Step 05: the user asks the interface agent to send a file to the cloud storage. Step 06: the interface agent asks the encryption agent to perform the encryption. Step 07: the encryption agent encodes the file and informs the interface agent. Step 08: the interface agent asks the proxy agent to send the file to the cloud storage. Step 09: the proxy agent requests the mobile agent to carry the user’s file to the cloud. Step 10: the mobile agent moves to the cloud and asks the cloud provider agent. Step 11: the cloud provider agent stores the file and notifies the mobile agent. Step 12: the mobile agent backs to the data owner and informs the proxy agent. Step 13: the proxy agent notifies the interface agent that the file is stored successfully. Step 14: the interface agent informs the user that its file is now in the cloud storage.
To turn over the data, the user can demand to retrieve a required file through the interface agent with the help of the proxy agent, which requests the mobile agent to move to the cloud storage and retrieve the required file with the help of the cloud provider agent. The cloud provider agent returns the required file to the mobile agent. Which moves again to the data owner side and gives the required file to the proxy agent. The interface agent asks the encryption agent to decode the retrieved file. Then it posts it to the user. Figure 9 shows the sequence diagram which summarizes the interaction between the agents to retrieve a file, where the steps are as follows:
The interaction of agents to retrieve a file.
Step 01: the user provides its username and password to the interface agent. Step 02: the interface agent asks the authenticator agent to verify the user’s identity. Step 03: the authenticator agent checks the user’s identity, and returns the result. Step 04: if the identity is correct, the access is allowed, else, it is rejected. Step 05: the user asks the interface agent to retrieve a file from the cloud storage. Step 06: the interface agent asks the proxy agent to retrieve the file from the cloud. Step 07: the proxy agent orders the mobile agent to move and retrieve the file. Step 08: the mobile agent moves to the cloud side and asks the cloud provider agent. Step 09: the cloud provider agent returns the file to the mobile agent. Step 10: the mobile agent backs to the data owner and informs the proxy agent. Step 11: the proxy agent passes the file to the interface agent. Step 12: the interface agent asks the encryption agent to decrypt the file. Step 13: the encryption agent decrypts the file and informs the interface agent. Step 14: the interface agent posts the file to the user.
The user can also check if its data still intact in the cloud storage side. Therefore, he can select any file and ask to check its correctness through the interface agent with the help of the proxy agent, which asks the mobile agent to move to the cloud storage and retrieve the hash code of the required file. The mobile agent moves to the cloud storage side and retrieves the required hash code with the help of the cloud provider agent. Now the mobile agent moves again to the data owner side and gives the retrieved hash code to the proxy agent, which informs the interface agent. The interface agent asks the encryption agent to verify the integrity of the required file and informs the user with the result of the check. Figure 10 shows the sequence diagram which summarizes the interaction between the agents to check a file, where the steps are as follows:
The interaction of agents to check a file.
Step 01: the user provides its username and password to the interface agent. Step 02: the interface agent asks the authenticator agent to verify the user’s identity. Step 03: the authenticator agent checks the user’s identity, and returns the result. Step 04: if the identity is correct, the access is allowed, else, it is rejected. Step 05: the user selects a file and asks the interface agent to check its integrity. Step 06: the interface agent asks the proxy agent to check the file’s integrity. Step 07: the proxy agent requests the mobile agent to retrieve the required hash code. Step 08: the mobile agent moves to the cloud storage side and asks the cloud provider agent. Step 09: the cloud provider agent returns the generated hash to the mobile agent. Step 10: the mobile agent backs and returns the hash code to the proxy agent. Step 11: the proxy agent passes the generated hash code to the interface agent. Step 12: the interface agent asks the encryption agent to perform the verification. Step 13: the encryption agent verifies the file and informs the interface agent. Step 14: the interface agent informs the user by the result of the check.
The communication: data owner to cloud provider.
The encryption of data is one of the confidentiality techniques. It guarantees that only who has the keys can reach the real data. Confidentiality can be achieved through proper encryption technique: symmetric and asymmetric algorithms [15]. Furthermore, there are three levels of secrecy named: the communication channel encryption (CCE), CCE and server side encryption (SSE), and the last one is the highest level, named client-side encryption (CSE) [23]. In our multi-agent framework, we propose a client side encryption method. It is based on the use of both RSA and AES algorithms. RSA algorithm along with digital signature is applied for providing cloud data security [12]. It can be used for public and private key exchange, generated digital signatures, or encryption of small size blocks of data [22]. In our proposed method, we used RSA algorithm to generate the digital signature (RSA-DS) of the user’s file. This digital signature is used to authenticate the user during the interaction with the cloud storage provider. We also used RSA algorithm to exchange messages and to encode/decode small size files (the digital signature and the hash code) exchanged between the data owner and the cloud provider. Figure 11 shows the communication from the data owner to the cloud using the RSA algorithm, and Fig. 12 shows the communication from the cloud to the data owner using the RSA algorithm. AES algorithm is selected by the researchers as a technique for data encryption and decryption [9]. Thus, AES algorithm is used to encode/decode the file of the data owner in its side, to enable the highest level of secrecy. The encryption method contains three steps, which are explained in the following. Table 1 defines the used annotations.
Annotations of the proposed encryption method
Annotations of the proposed encryption method
The communication: cloud provider to data owner.
Step 1: key generation and sharing: The data owner uses RSA algorithm to generate a pair key (DOPrivate, DOPub) and uses AES algorithm to generate a secret key (DOAES) for himself. Cloud provider also uses the RSA algorithm to generate a pair key for himself (CPPrivate, CPPub). For the keys sharing, only the public keys of both cloud provider and data owner are exchanged between them.
Step 2: storage: the data owner encrypts its file (F) using its secret key (DOAES): F1
The storage process.
Step 3: retrieving: To retrieve the data from the cloud storage, the data owner requests the required file (F1) from the cloud provider, accompanied with its encrypted digital signature, Request (F1, Encrypt (signF1, CPPub)). The cloud provider receives the package, and verifies the digital signature; Verify (signF1, DOPub), if the digital signature is correct, the cloud provider responds and sends the file to the data owner: Send (F1), else the request is cancelled. The file transferred to the data owner is encrypted by its secret key (DOAES). Thus, only the data owner can decrypt it. After receiving the encrypted file, he uses its secret key (DOAES) to decrypt it, F
The retrieving process.
Data integrity is one of the most critical elements in any information system. Generally, data integrity means protecting data from unauthorized deletion, modification, or fabrication [24]. Data Integrity is very important among the other cloud challenges. It gives the guarantee that data is of high quality, correct, unmodified [10]. There are two basic methods to provide such integrity: proof of retrievability and proof of data possession [4].
In our proposed integrity check method, we adopted the use of a proof of retrievability, which is based on the use of hash function, to ensure the integrity of the user’s file in the cloud storage. A hash function takes a data of variable length and produces a data of fixed length. It produces small and static length data, which is unique for each data. Any kind of change to any bits in the data consequences is a huge alteration to the hash code [17]. To allow the integrity check, the data owner computes a hash code of the whole file and stores it locally before outsourcing the file to cloud provider. Whenever the data owner needs to check the integrity of a file; he sends a request to retrieve its hash code from the cloud provider and asks to recompute the hash code of the required file. The cloud provider responds with the required hash code to the data owner, then the last can compare the re-computed hash code with the previously stored value, in order to check the file concreteness. There are two types of integrity check. In public check the user requests another entity to perform the check. In our multi-agent framework, we used a private check; where the data owner is the responsible for the check of the integrity [2]. Thus, for each data owner, there is a local repository, which is used to store the generated hash codes. This repository is used during the integrity check process. Like in Fig. 15, the integrity check method contains four steps, which are explained in the following:
The integrity check method.
Step 1: pre-processing: the data owner generates a hash code of the encrypted file (F1), hashF1
Step 2: integrity establishment: In this step, the generated hash code is stored in the local machine of the data owner in a dedicated repository: Store (hashF1).
Step 3: upload: In this step, only the file of the data owner is uploaded to the cloud storage server: Send (F1).
Step 4: verification: In this step, the data owner requests the hash code of the required file, accompanied with its digital signature, Request (Hash (F1), Encrypt (signF1, CPPub)). The cloud provider verifies the digital signature, using the user’s public key, Verify (signF1, DOPub). If it is correct, he responds with the requested hash code to the data owner: hashF2
The integrity check process.
The jade multi-agent framework simulation.
The interaction of agents during the task: add file to the cloud.
Add file to cloud storage.
In this section, we simulated the proposed architecture in our local machine. Because we are interested in the cloud storage system, we did not implement the whole cloud system, but we simulated only the cloud storage using the jade platform, jade is a java platform for multi-agent system. Thus, we used MySQL database to store the data and we have assumed that the cloud provider and the data owner are in the same system domain and sharing the uniform system parameters. Figure 17 shows the implemented jade platform, where, container-1 reflects the data owner and container-2 reflects the cloud provider.
The interaction of agents during the task: check the file’s correctness.
The integrity check notification.
The agents interaction when trying to add a file during attack.
Add file to the cloud: to store a file in the cloud, the data owner selects a file from its local device through the interface agent and demands to store it in cloud storage. Figure 19 shows the GUI for the task: add file to the cloud. The interaction between the agents, to perform this task, is captured using the jade sniffer tool and it is shown in Fig. 18.
Check the file’s correctness: to show the integrity check technique, we have assumed that the cloud provider deleted the required file. Thus, we deleted the file from the database (MySQL), then; we performed the integrity check. The result of the check indicates that the file was altered and the data owner can contact the cloud provider. The interaction between the agents, to perform the check task is shown in Fig. 20. The interface agent posts the result of the data integrity check. Figure 21 shows the notification that the file was altered.
Attacks simulation: in this stage, we want to simulate two scenarios, the usurpation of identity; the user account can be hacked, and the attack during transfer. In both of them, the provided digital signature is not correct; the hacker does not have the private key, to generate the signature, and in the attack during transfer, the signature is altered. To simulate them, we provided an incorrect signature to the cloud provider. Figure 22 shows the agents interaction and Fig. 23 shows the result of the test.
Response time of both client-server model and mobile agent model
The attack notification.
We performed two kinds of evaluation. In the first one, we evaluated the use of mobile agent model in our proposed multi-agent framework, compared with the client-server model, where the response time is considered as the evaluation metric. In the second one, we evaluated our proposed encryption method, compared with both AES and RSA algorithms, where the encryption/decryption time is considered as the evaluation metric.
Mobile agent vs client-server model performance.
In this step, we evaluated the use of the mobile agent model in our proposed architecture, and it is compared with the client-server model. Thus, the performance evaluation is performed using both models. So, we implemented our proposed architecture (Fig. 1) using both mobile agent and client-server model. The scenarios of experiments are the request of the cloud storage by the user and the augmentation of the number of those requests each time. The response times for a different number of requests are measured, using each model and it is considered as the evaluation metric [18].
In the begin, it seems like the client-server model and mobile agent model have the same response time, but when we raise the number of the user’s requests, the response time of mobile agent is better than the client-server model. Figure 24 shows the results.
Performance analysis of the proposed encryption method
The AES algorithm encryption/decryption time.
The RSA algorithm encryption/decryption time.
In this step, we evaluated our proposed encryption method. Thus, the evaluation is performed theoretically and it is applied in the proposed encryption method separately of our proposed architecture. For that, we implemented our proposed encryption method and other existing methods, using java language. In this case, the scenarios of experiments are the encryption and decryption of many different size files, using our proposed method of encryption and the existing techniques like the RSA and AES algorithms. The encryption and decryption time is considered as the evaluation metrics.
.Encryption/decryption time results
Our technique (AES 
AES algorithm vs our technique (AES 
We performed experiments on intel (r) core (tm) i5 3230 m cpu 2.6 ghz processor with 4 gb of ram on windows 8.1 operating system. We carried out experiments on 32 kb, 64 kb, 128 kb, 128 kb, 512 kb and 1024 kb size text files. In this paper, we used RSA pair key of 2048 bits. AES key of 128 bits, and we chose to apply the same RSA pair key of the data owner (2048 bits key), for the generation/verification of the digital signature (md5 with RSA). The RSA digital signature is applied on the hash code, which is generated by applying the sha-256 (secure hash algorithm) hash function on the user’s file. The application of sha-256 hash function generates a message digest of 32 bytes. The generation of the RSA digital signature of the user’s file is performed by applying the md5 with RSA digital signature on that hash code, the result is an RSA digital signature of 256 bytes size in each time.
In our client-side encryption method, we applied both AES and RSA algorithms. The use of RSA provides secure transmission, but it makes the encryption and decryption time very long and slow; because the user’s file is usually a big size file. To overcome this problem, we chose to apply the AES algorithm to encrypt and to decrypt the file of the user, in the user side, besides the exchange of its digital signature with the RSA algorithm, to secure the channel between the data owner and the cloud provider. Thus, for the encryption, the user encrypts two type of files, its file using the AES secret key, and the RSA digital signature using its RSA private key, so: Encryption Time
The decryption of the RSA digital signature, which is used for the user’s authentication, is performed in the cloud side, so the user is not concerned by any task, and he decrypts only the received file from the cloud storage, with its AES secret key, so: Decryption Time
AES algorithm vs our technique (AES 
RSA algorithm vs our technique (AES 
Table 3 shows the encryption and decryption time using AES, RSA and our technique. Figure 25 represents the results of AES algorithm, Fig. 26 represents the results of RSA algorithm, and Fig. 27 represents the results of our technique (AES
For the encryption, as in Fig. 28, the use of our technique increases the encryption time compared with using AES algorithm, with a simple difference between them, which represents the needed time for the encryption of the digital signature (256 bytes) with RSA algorithm, that is the same in each time and it is performed in only 550 ms.
For the decryption, like in Fig. 29, the use of AES algorithm or our combined technique (AES
RSA algorithm compared to our technique (AES
RSA)
For the decryption time, our technique (AES
For the encryption, as shown in Fig. 31, in the begin; the use of RSA algorithm seems better than our technique (AES
RSA algorithm vs our technique (AES 
For the encryption, as shown in Fig. 32, our proposed encryption method takes a medium level between the two other algorithms. Thus we can say that we provided a strong encryption method besides the performance.
AES algorithm vs RSA algorithm vs our technique (AES 
For the decryption, like in Fig. 33, our proposed technique and the AES algorithm take the same decryption time, and when we compared them with RSA, they did not even figure in the graph.
AES algorithm vs RSA algorithm vs our technique (AES 
In cloud storage systems, there is always a big concern about data security. The main aim of this research paper is the proposition of a multi-agent framework to provide data security in the cloud storage systems. The proposed multi-agent framework is based on the use of the multi-agent systems paradigm as a development methodology, and encryption techniques to maintain the data security. Our proposition enables both integrity and confidentiality of data. In the first phase, contrary to the existing cloud storage techniques, which encode the user’s files in its side, we proposed a client-side encryption method, and unlike the others related works, we used both symmetric and asymmetric algorithms. RSA algorithm is used to verify the user’s authenticity using its digital signature, and to secure the communication, all messages and small size files exchanged between the data owner and the cloud provider are protected with RSA algorithm. While AES algorithm is used to encode and decode the files of the user on its side. The combination of both AES and RSA algorithms in our encryption method provides a stronger way to ensure the confidentiality of data, and it increases the performance of the encryption method. In the second phase, because almost of existing cloud storage providers do not allow data integrity check in their systems, we proposed an integrity check method, which provides a proof of retrievability based on hash function. The hash function generates a hash code for each file of the user. The generated hash code is stored in the data owner side in a dedicated repository, and it is used for integrity check purpose. The comparison of the generated hash code by the cloud provider and the stored one locally enables data integrity check. The main contributions of the paper are:
The proposition of a multi-agent architecture for cloud storage security. The proposition of a client-side encryption method to provide the confidentiality of data. The combination of both symmetric and asymmetric algorithms to provide a high security level besides the performance. The proposition of an integrity check method to enable the data integrity.
The perspectives of this study are:
The use of mobile agents to supervise the virtual machines of the user in the cloud storage side and to guarantee their security. The adaptation of our proposed multi-agent framework to allow data sharing, by introducing agents for keys management and sharing between the authorized users.
Footnotes
Authors’ Bios
