Abstract: The embodiments herein provide a method and system for provisioning secure communication services by using a Row-Column-Diagonal (RCD) technique in a cloud environment. The data is inputted in a matrix using a RCD engine. The RCD engine receives one or more signals including status of a series of RCD bits. The RCD bits includes a row bit, a column bit, a diagonal bit, and a transpose bit indicating the operations to be performed on the matrix. Further, the RCD engine encrypts the data in the matrix in accordance to the one or more signals received from the RCD bits. Further, the encrypted data is decrypted by performing the operations on encryption data matrix in reverse order. Furthermore, a system and method for securely uploading and downloading the data in the cloud environment using the RCD engine is disclosed. FIG. 1
CLIAMS:We claim:
1. A method for performing encryption using a row-column-diagonal (RCD) engine, the method comprising:
inputting data in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
encrypting said data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said encryption comprises at least one of:
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit,
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
transposing said matrix in accordance to said status of said transpose bit.
2. The method of claim 1, wherein said method further comprises decrypting said encrypted data by performing said at least one operation in reverse order.
3. The method of claim 1, wherein said matrix is a two-dimensional matrix.
4. The method of claim 1, wherein said matrix is a three-dimensional matrix.
5. The method of claim 1, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
6. A method for performing decryption using a row-column-diagonal (RCD) engine, the method comprising:
retrieving encrypted data stored in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
decrypting said encrypted data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said decryption comprises at least one of:
transposing said matrix in accordance to said status of said transpose bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit, and
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit.
7. The method of claim 5, wherein said decryption comprises performing said at least one operation on said encrypted data in reverse order.
8. The method of claim 5, wherein said matrix is a two-dimensional matrix.
9. The method of claim 5, wherein said matrix is a three-dimensional matrix.
10. The method of claim 5, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
11. A method for securely sharing data among a host and a cloud environment, wherein said cloud environment comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to upload data on said central cloud;
managing, at said RCD supervisor, a RCD table including information about availability of said cloud in said cloud environment;
sharing, by said RCD supervisor, with said available cloud and said host, RCD data bits, a series of RCD bits indicating operations to be performed on said data, and a validation data;
generating, at said host, a key associated with said host;
receiving, at said central cloud, said key generated by said host;
sending, by said central cloud, an encrypted response to said host in response to receiving said key;
determining, by said host, whether said encrypted response is valid using said validation data;
encrypting, by said host, said data using said RCD data bits and said series of RCD bits in response to determining that said encrypted response is valid; and
uploading, from said host, said encrypted data on said cloud.
12. The method of claim 11, wherein managing said RCD table including said information about availability of said cloud in said cloud environment comprising:
sending a query in said cloud environment to determine availability of said clouds in said cloud environment;
receiving information about availability of said clouds in said cloud environment; and
updating said RCD table in accordance to said information received from said cloud.
13. The method of claim 11, wherein said method further comprises:
receiving said host address form said host;
receiving said cloud address from said cloud; and
computing said validation data using said host address and said cloud address.
14. The method of claim 11, wherein said validation data comprises at least one of said host address and said cloud address.
15. The method of claim 11, wherein said encrypted response is encrypted using said key associated with said host, wherein said key comprises RCD data bits generated by said host.
16. The method of claim 11, where encrypting, by said host, said data using said RCD data bits and said series of RCD bits further comprises:
inputting data in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
encrypting said data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said encryption comprises at least one of:
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit,
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
transposing said matrix in accordance to said status of said transpose bit.
17. The method of claim 16, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
18. The method of claim 11, wherein said method further comprises:
determining, by said host, whether said encrypted response comprises address associated with said sub-cloud;
receiving, by said central cloud, a new key associated with said host in response to determining that said encrypted response comprises address associated with said sub-cloud;
receiving, by said host, a new encrypted response from said cloud;
determining, by said host, whether said new encrypted response is valid using said validated data;
encrypting said data using said RCD data bits and said series of RCD bits in response to determining that said new encrypted response is valid; and
uploading, from said host, said encrypted data on said sub-cloud.
19. The method of claim 18, wherein said new encrypted response is encrypted using said new key associated with said host, wherein said new key comprises new RCD data bits generated by said host.
20. A method for securely sharing data over a cloud environment, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to upload data on said central cloud;
sharing, by said RCD supervisor, with said central cloud and said host, RCD data bits, a series of RCD bits indicating operations to be performed on said data, and a validation data;
generating, at said host, a key associated with said host;
receiving, at said central cloud, said generated key associated with said host;
sending, by said central cloud, an encrypted response indicating information about availability of said clouds in said cloud environment;
determining, by said host, whether said encrypted response is valid using said validation data;
extracting said information about available cloud in said cloud environment in response to determining that said encrypted response is valid;
generating, at said host, a key associated with said host;
receiving, by said available cloud, said new key associated with said host;
sending a new encrypted response from said available cloud in response to receiving said new key associated with said host;
determining, by said host, whether said new encrypted response is valid using said validated data;
encrypting, by said host, said data using said RCD data bits and said series of RCD bits in response to determining that said new encrypted response is valid; and
uploading, from said host, said encrypted data on said available cloud.
21. The method of claim 20, wherein said available cloud is said central cloud.
22. The method of claim 20, wherein said available cloud is said sub-cloud.
23. The method of claim 20, wherein said encrypted response is encrypted using said key associated with said host, wherein said key comprises RCD data bits generated by said host.
24. The method of claim 20, wherein said new encrypted response is encrypted using said new key associated with said host, wherein said new key comprises new RCD data bits generated by said host.
25. The method of claim 20, wherein said validation data comprises at least one of host address and cloud address.
26. The method of claim 20, where encrypting, by said host, said data using said RCD data bits and said series of RCD bits in response to determining that said encrypted response is valid further comprises:
inputting data in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
encrypting said data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said encryption comprises at least one of:
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit,
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
transposing said matrix in accordance to said status of said transpose bit.
27. The method of claim 26, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
28. A method for securely sharing data among a host and a cloud environment, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to download data from said central cloud;
allocating, at said RCD supervisor, cloud including said data requested by said host using a RCD table;
sharing, by said RCD supervisor, with said allocated cloud and said host, RCD data bits, a series of RCD bits indicating operations to be performed on said data, and a validation data;
generating, at said allocated cloud, a key associated with said allocated cloud;
receiving, at said host, said generated key shared by said allocated cloud;
sending, by said host, an encrypted response to said allocated host in response to receiving said key;
determining, at said allocated cloud, whether said encrypted response is valid using said validation data;
downloading, at said host, said data in response to determining said encrypted response is valid; and
decrypting, at said host, said data using said RCD data bits and said series of RCD bits.
29. The method of claim 28, wherein said allocated cloud is said central cloud.
30. The method of claim 28, wherein said allocated cloud is said sub-cloud.
31. The method of claim 28, wherein said RCD table includes information about said data availability in said cloud environment.
32. The method of claim 28, wherein said method further comprises:
receiving said host address form said host;
receiving said cloud address from said cloud; and
computing said validation data using said host address and said cloud address.
33. The method of claim 28, wherein said validation data comprises at least one of said host address and said cloud address.
34. The method of claim 28, wherein said encrypted response is encrypted using said key associated with said allocated host, wherein said key comprises RCD data bits generated by said host.
35. The method of claim 28, where decrypting, by said host, said data using said RCD data bits and said series of RCD bits further comprises:
retrieving encrypted data stored in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
decrypting said encrypted data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said decryption comprises at least one of:
transposing said matrix in accordance to said status of said transpose bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit, and
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit.
36. The method of claim 35, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
37. A method for securely sharing data over a cloud environment, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to download data from said central cloud;
sharing, by said RCD supervisor, with said central cloud and said host, RCD data bits with said available cloud and said host, a series of RCD bits indicating operations to be performed on said data, and a validation data;
allocating, at said central cloud, cloud including said data requested by said host using a RCD table;
generating, at said allocated cloud, a key associated with said allocated cloud;
receiving, at said host, said key shared by said allocated cloud;
sending, by said host, an encrypted response to said allocated host in response to receiving said key;
determining, at said allocated cloud, whether said encrypted response is valid using said validation data;
downloading, at said host, said data in response to determining said encrypted response is valid; and
decrypting, at said host, said data using said RCD data bits and said series of RCD bits.
38. The method of claim 37, wherein said allocated cloud is said central cloud.
39. The method of claim 37, wherein said allocated cloud is said sub-cloud.
40. The method of claim 37, wherein said RCD table includes information about said data availability in said cloud environment.
41. The method of claim 37, wherein said validation data comprises at least one of said host address and said cloud address.
42. The method of claim 37, wherein said encrypted response is encrypted using said key associated with said allocated host, wherein said key comprises RCD data bits generated by said host.
43. The method of claim 37, where decrypting, by said host, said data using said RCD data bits and said series of RCD bits further comprises:
retrieving encrypted data stored in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
decrypting said encrypted data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said decryption comprises at least one of:
transposing said matrix in accordance to said status of said transpose bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit, and
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit.
44. The method of claim 43, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
45. A system for performing encryption using a row-column-diagonal (RCD) engine, the RCD engine is configured to perform steps as claimed in at least one of claim 1 to 5.
46. A system for performing decryption using a row-column-diagonal (RCD) engine, the RCD engine is configured to perform steps as claimed in at least one of claim 6 to 10.
47. A system for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, the RCD engine is configured to perform steps as claimed in at least one of claim 11 to 19.
48. A system for securely sharing data over a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the RCD engine is configured to perform steps as claimed in at least one of claim 20 to 27.
49. A system for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the RCD engine is configured to perform steps as claimed in at least one of claim 28 to 36.
50. A system for securely sharing data over a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the RCD engine is configured to perform steps as claimed in at least one of claim 37 to 44.
51. A computer program product for performing encryption using a row-column-diagonal (RCD) engine, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 1 to 5.
52. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 6 to 10.
53. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 11 to 19.
54. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 20 to 27.
55. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 28 to 36.
56. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 37 to 44.
Date: - 18th day of September, 2013 Signature:-
Vikram Pratap Singh Thakur
Patent Agent ,TagSPECI:FORM 2
The Patent Act 1970
(39 of 1970)
&
The Patent Rules, 2005
COMPLETE SPECIFICATION
(SEE SECTION 10 AND RULE 13)
TITLE OF THE INVENTION
“Provisioning secure data communication in a cloud environment”
APPLICANTS:
Name : Samsung India Electronics Pvt Ltd.
Nationality : Indian
Address : Logix Cyber Park Plot No C-28 & 29,Tower D Noida Sec - 62.
The following specification particularly describes and ascertains the nature of this invention and the manner in which it is to be performed:-
TECHNICAL FIELD
[001] The embodiments herein generally relate to a cloud based secure communication systems, and more particularly to a mechanism for provisioning secure communication services by using a Row-Column-Diagonal (RCD) technique in a cloud environment.
BACKGROUND
[002] Known computing systems use shared servers to provide resources, software, and data to computers as requested by a client computer. A cloud environment provides web-based tools or an application that enables the computing systems to access shared resources through a web browser. Drastic increase in the data communication and use of the shared resources has introduced significant challenges in providing secure communication in the cloud environment. Therefore, many different encryption, decryption, and secure data sharing systems and methods have been widely adopted as an effective countermeasure. The conventional systems and methods mainly focus on data and less focus on system where the data actually is stored and shared securely. Further, until the users are assured that the cloud providers can maintain security control over their data; they may also hesitant for deploying their business-critical applications or storing their important data in the cloud environment. Thus, there remains a need of a secure, robust, and reliable system and method for provisioning encryption, decryption, and secure data sharing and communication services in the cloud environments.
OBJECT OF INVENTION
[003] The principal object of the embodiments herein is to provide a method and system for provisioning secure communication services using a Row-Column-Diagonal (RCD) engine in a cloud environment.
[004] Another object of the embodiments is to provide a mechanism for performing encryption using a RCD engine.
[005] Another object of the embodiments is to provide a mechanism for performing decryption using a RCD engine.
[006] Another object of the embodiments is to provide a mechanism for securely sharing 2-dimentional format data in a cloud environment using a RCD engine.
[007] Another object of the embodiments is to provide a mechanism for securely sharing 3-dimentional format data in a cloud environment using a RCD engine.
[008] Another object of the embodiments is to provide a mechanism for securely storing 2-dimentional format data or 3-dimentional format data in a cloud environment using a RCD engine.
[009] Another object of the embodiments is to provide a mechanism for securely uploading data on a cloud environment using a RCD engine.
[0010] Another object of the embodiments is to provide a mechanism for securely downloading data from a cloud environment using a RCD engine.
SUMMARY
[0011] Accordingly the embodiments provide a system, method, and computer program product for performing encryption using a row-column-diagonal (RCD) engine. The method includes inputting data in a matrix. In an embodiment the matrix includes RCDs. Further, the method includes receiving the signal includes status of a series of RCD bits indicating operations to be performed on the matrix, the series of RCD bits includes the a row bit, a column bit, a diagonal bit, and a transpose bit. Furthermore, the method includes encrypting the data in the matrix in accordance to the received signal indicating the status of the series of the RCD bits. The encryption of the data in the matrix includes the following steps: i) performing one or more operation on the rows of the matrix in accordance to the status of the row bit ii) performing one or more operation on the columns of the matrix in accordance to the status of the column bit iii) performing one or more operation on the diagonals of the matrix in accordance to the status of the diagonal bit, and iv) transposing the matrix in accordance to the status of the transpose bit.
[0012] Accordingly the embodiments provide a system, method, and computer program product for performing decryption using a row-column-diagonal (RCD) engine. The method includes retrieving encrypted data stored in a matrix. In an embodiment the matrix includes RCDs. Further, the method includes receiving the signal includes status of a series of RCD bits indicating operations to be performed on the matrix, the series of RCD bits includes the a row bit, a column bit, a diagonal bit, and a transpose bit. Furthermore, the method includes decrypting the data in the matrix in accordance to the received signal indicating the status of the series of the RCD bits. The decryption of the data in the matrix includes the one or more steps: i) transpose the matrix in accordance to the status of the transpose bit. Furthermore, the method includes performing decrypting the encrypted data by performing the steps of the encryption in reverse order ii) performing one or more operation on the diagonals of the matrix in accordance to the status of the diagonal bit iii) performing one or more operation on the columns of the matrix in accordance to the status of the column bit, and iv) performing one or more operation on the rows of the matrix in accordance to the status of the row bit.
[0013] Accordingly the embodiments provide a system, method, and computer program product for securely sharing data among a host and a cloud environment using a row-column-diagonal (RCD) engine. The cloud environment includes a central cloud connected to a plurality of sub-clouds. The method includes receiving, by a RCD supervisor, a request to upload data on the central cloud. Further, the method includes managing, at the RCD supervisor, a RCD table including information about availability of the cloud in the cloud environment. Furthermore, the method includes sharing, with the available cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. Furthermore, the method includes generating, at the host, a key associated with the host. Furthermore, the method includes receiving, at the central cloud, the key generated by the host and sending an encrypted response to the host in response to receiving the key. Furthermore, the method includes determining, by the host, whether the encrypted response is valid using the validation data and encrypting the data using the RCD data bits and the series of RCD bits in response to determining that the encrypted response is valid. Furthermore, the method includes uploading, from the host, the encrypted data on the cloud.
[0014] Accordingly the embodiments provide a system, method, and computer program product for securely sharing data among a host and a cloud environment using a row-column-diagonal (RCD) engine. The cloud environment includes a central cloud connected to a plurality of sub-clouds. The method includes receiving, by a RCD supervisor, a request to upload data on the central cloud, and allocating a cloud including the data requested by the host using a RCD table. In an embodiment, the allocated cloud can be the central cloud or the sub-cloud. Further, the method includes sharing, with the available cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. Furthermore, the method includes generating, at the allocated cloud, a key associated with the allocated cloud. Furthermore, the method includes receiving, at the host, the generated key shared by the allocated cloud, and sending an encrypted response to the allocated host in response to receiving the key. Furthermore, the method includes determining, at the allocated cloud, whether the encrypted response is valid using the validation data. Furthermore, the method includes downloading, at the host, the data in response to determining the encrypted response is valid, and decrypting the data using the RCD data bits and the series of RCD bits.
[0015] These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood, however, that the following descriptions, while indicating preferred embodiments and numerous specific details thereof, are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof, and the embodiments herein include all such modifications.
BRIEF DESCRIPTION OF FIGURES
[0016] This invention is illustrated in the accompanying drawings, throughout which like reference letters indicate corresponding parts in the various figures. The embodiments herein will be better understood from the following description with reference to the drawings, in which:
[0017] FIG. 1 is a diagram illustrating, among other things, a high level overview of a system, according to embodiments as disclosed herein;
[0018] FIG. 2 is a diagram illustrating, among other things, another way of implementing the system, according to embodiments as disclosed herein;
[0019] FIG. 3 is an example illustration of central cloud based architecture of the system, according to embodiments as disclosed herein;
[0020] FIG. 4 shows bits used by RCD engine to perform various operations for encrypting, decrypting, and securely sharing (uploading and downloading) data, according to embodiments as disclosed herein;
[0021] FIG. 5 is a flow chart illustrating generally, a method for performing encryption using the RCD engine, according to embodiments as disclosed herein;
[0022] FIG. 6 is an example block diagram of RCD encryption module of the RCD engine, according to embodiments as disclosed herein;
[0023] FIG. 7 shows an example illustration of operation performed on row of data matrix, according to embodiments as disclosed herein;
[0024] FIG. 8 shows an example illustration of operation performed on column of the data matrix, according to embodiments as disclosed herein;
[0025] FIG. 9 shows an example illustration of operation performed on diagonal of the data matrix, according to embodiments as disclosed herein;
[0026] FIG. 10 shows an example illustration of transpose operation performed on the data matrix, according to embodiments as disclosed herein;
[0027] FIG. 11 is a flow chart illustrating generally, a method for performing decryption using the RCD engine, according to embodiments as disclosed herein;
[0028] FIG. 12 is an example block diagram of RCD decryption module of the RCD engine, according to embodiments as disclosed herein;
[0029] FIG. 13 is a sequence diagram illustrating operations performed for securely uploading data using the RCD engine, according to embodiments as disclosed herein;
[0030] FIG. 14 is a flow chart describing a method for securely uploading data using the RCD engine, according to embodiments as disclosed herein;
[0031] FIG. 15 is a sequence diagram illustrating operations performed for securely downloading data using the RCD engine, according to embodiments as disclosed herein;
[0032] FIG. 16 is a flow chart describing a method for securely downloading data using the RCD engine, according to embodiments as disclosed herein; and
[0033] FIG. 17 depicts a computing environment implementing the system and method, in accordance with various embodiments as disclosed herein.
DETAILED DESCRIPTION OF INVENTION
[0034] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. Also, the various embodiments described herein are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments. The term “or” as used herein, refers to a non-exclusive or, unless otherwise indicated. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein can be practiced and to further enable those skilled in the art to practice the embodiments herein. Accordingly, the examples should not be construed as limiting the scope of the embodiments herein.
[0035] Prior to describing the present invention in detail, it is useful to provide definitions for key terms and concepts used herein. Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.
[0036] Cloud environment: Can be a central or distributed cloud architecture including a central cloud connected to a plurality of sub-clouds configured to provide secure data communication (storing, sharing, uploading, and downloading) services. The cloud environment can be configured to include sufficient infrastructure and components to offer information resources, services, and applications to users.
[0037] Host: Can be any general purpose computer or electronic device capable of securely storing, sharing, uploading, and downloading data with the cloud environment.
[0038] Row-Column-Diagonal (RCD) supervisor: Can be any general purpose computer or server configured to provide a degree of trust to enable secure data communication (uploading and downloading) between the cloud environment and the host. The RCD supervisor defines arithmetic and logical operations to be performed on row, column, diagonal, and transpose of a data matrix, such as to securely encrypt and decrypt the data.
[0039] RCD engine: A component configured to perform arithmetic and logical operations set on the row, column, diagonal and transpose of the data matrix in a random secured fashion. For example, the component can be, but not limited to, an executable process, a thread of execution, a program, or computer instructions running in the host, the cloud environment, and the RCD supervisor.
[0040] The embodiments herein achieve a method and system for provisioning secure communication services by using a Row-Column-Diagonal (RCD) technique in a cloud environment. In an embodiment, a system and method for performing encryption using a RCD engine is provided. The method includes inputting data in a matrix. The matrix can be a 2-diementional matrix or 3-dimentiaonal matrix including rows, columns, and diagonals. The RCD engine is configured to receive one or more signals including status of a series of RCD bits. The RCD bits includes a row bit, a column bit, a diagonal bit, and a transpose bit indicating the operations to be performed on the matrix. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. Further, the RCD engine can be configured to encrypt the data in the matrix in accordance to the one or more signals received from the RCD bits. The encryption of the data in the matrix includes the following steps: i) performing one or more operation on the rows of the matrix in accordance to the status of the row bit ii) performing one or more operation on the columns of the matrix in accordance to the status of the column bit iii) performing one or more operation on the diagonals of the matrix in accordance to the status of the diagonal bit, and iv) transposing the matrix in accordance to the status of the transpose bit.
[0041] Furthermore, the method includes performing decryption of the encrypted data by performing the steps of the encryption in reverse order. In an embodiment, a system and method for performing decryption using the RCD engine. The method includes retrieving the encrypted data stored in the matrix. The RCD engine is configured to receive one or more signals including status of the series of RCD bits indicating the operations to be performed on the matrix. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. Further, the RCD engine can be configured to decrypt the data in the matrix in accordance to the one or more signals received from the RCD bits. The decryption of the data in the matrix includes one or more steps: i) transpose the matrix in accordance to the status of the transpose bit. Furthermore, the method includes performing decryption of the encrypted data by performing the steps of the encryption in reverse order ii) performing one or more operation on the diagonals of the matrix in accordance to the status of the diagonal bit iii) performing one or more operation on the columns of the matrix in accordance to the status of the column bit, and iv) performing one or more operation on the rows of the matrix in accordance to the status of the row bit.
[0042] In an embodiment, a system and method for securely for securely sharing data among a host and a cloud environment using the RCD engine. The cloud environment includes a central cloud connected to a plurality of sub-clouds. The method includes method includes receiving, by a RCD supervisor, a request to upload data on the central cloud. Further, the method includes managing, at the RCD supervisor, a RCD table including information about availability of the cloud in the cloud environment. Furthermore, the method includes sharing, with the available cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. Furthermore, the method includes generating, at the host, a key associated with the host, Furthermore, the method includes receiving, at the central cloud, the key generated by the host and sending an encrypted response to the host in response to receiving the key. Furthermore, the method includes determining, by the host, whether the encrypted response is valid using the validation data and encrypting the data using the RCD data bits and the series of RCD bits in response to determining that the encrypted response is valid. Furthermore, the method includes uploading, from the host, the encrypted data on the cloud.
[0043] In an embodiment, a system and method for securely sharing data among a host and a cloud environment using the RCD engine. The method includes method includes receiving, by a RCD supervisor, a request to upload data on the central cloud, and allocating a cloud including the data requested by the host using a RCD table. In an embodiment, the allocated cloud can be the central cloud or the sub-cloud. Further, the method includes sharing, with the available cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. Furthermore, the method includes generating, at the allocated cloud, a key associated with the allocated cloud. Furthermore, the method includes receiving, at the host, the generated key shared by the allocated cloud, and sending an encrypted response to the allocated host in response to receiving the key. Furthermore, the method includes determining, at the allocated cloud, whether the encrypted response is valid using the validation data. Furthermore, the method includes downloading, at the host, the data in response to determining the encrypted response is valid, and decrypting the data using the RCD data bits and the series of RCD bits.
[0044] The system and method is secure, reliable, dynamic, effective, and efficient for provisioning the secure communication services by using the RCD technique in the cloud environment. The system and method can be used in cloud, memories, and data sharing in 2g, 3g, 4g, 5g, or any other wired and wireless communication. Further, the proposed system and method can be implemented using existing infrastructure, components, and modules, and may not require extensive set-up or instrumentation.
[0045] Referring now to the drawings, and more particularly to FIGS. 1 through 17, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments.
[0046] FIG. 1 illustrating generally, among other things, a high level overview of a system 100, according to embodiments as disclosed herein. In an embodiment, the system 100 includes a Row-Column-Diagonal (RCD) supervisor 102, a host 104, and a cloud environment 106. The cloud environment 106 can be a central or distributed cloud architecture including a central cloud connected to a plurality of sub-clouds configured to provide secure data sharing and communication services. An example illustration of the central cloud based architecture of the system 100 is described with respect to the FIG. 3. The central cloud can be configured to include sufficient infrastructure and components to offer information resources, services, and applications to users. The RCD supervisor 102, the host 104, and the cloud environment 106 includes a RCD engine 108 configured to perform operations set on rows, columns and diagonals of a data matrix in a random secured fashion. The matrix described herein can be a 2-diementional matrix or 3-dimentiaonal matrix including rows, columns, and diagonals to store the data received from the user. The RCD engine 108 can be implemented on the RCD supervisor 102, the host 104, and the cloud environment 106 such as to enable data sharing (uploading and downloading) between the RCD engine 108 at the host 104, the RCD engine 108 at the cloud 106 and the RCD supervisor 102 in a random secured manner.
[0047] The RCD engine 108 can be configured to include a key generation module 110, a randomization module 112, a control module 114, a storage module 116, a key validation module 118, an address recorder module 120, and a RCD E-N (encryption-encryption) module 122. In an embodiment, the key generation module 110 can be configured to generate a key associated with each of the RCD supervisor 102, the host 104, and the cloud environment 106. The key generation module 110 can be configured to generate the keys during the process of securely sharing (uploading and downloading) the data. The randomization module 112 can be configured to randomize the keys generated by the key generation module 110. The RCD engine 108 allows the RCD supervisor 102, the host 104, and the cloud environment 106 to use two lines, namely a secure control line (SCL) and a secure data line (SDL) respectively. The SCL can be used to transfer the keys, acknowledgments, response, control signals, or the like and the actual encrypted data can be transferred through the SDL. In an embodiment, the control module 114 can be configured to determine which line needs to be used by the RCD supervisor 102, the host 104, and the cloud environment 106 during the secure data communication.
[0048] In an embodiment, the storage module 116 can be configured to store the data, keys, acknowledgement, and control instructions related to the RCD supervisor 102, the host 104, and the cloud environment 106. Each of the RCD supervisor 102, the host 104, and the cloud environment 106 can be configured to maintain a RCD table including the information about the data, such as for example, but not limited to, file, size, keys used during the data sharing (uploading and downloading) process, cloud environment, including central cloud, and sub-cloud information, available cloud storage space information, or the like.
[0049] In an embodiment, the key validation module 118 can be configured to validate the keys associated with the RCD supervisor 102, the host 104, and the cloud environment 106. In response to receiving the key, the RCD supervisor 102, the host 104, and the cloud environment 106, in communication with the key validation module 118, can be configured to validate the keys using validation data. The validation data described herein can be the combination of the unique address of the host 104 and the unique address of the cloud environment 106. In an embodiment, the unique address associated with the host 104 and the cloud environment 106 can be recorded using the address recorder module 120. In an embodiment, the RCD EN module 122 can be configured to perform encryption and decryption process for the data based on status of RCD bits. The details related to the RCD bits are described in conjunction with the FIG. 4. Further, the details of the operations performed by the system 100 for encrypting, decrypting, and securely sharing the data are described in conjunction with the FIGS. 5 through 16.
[0050] The FIG. 1 shows an exemplary overview of the system 100 but, it is to be understood that another embodiment is not limited thereto. Further, the system 100 can include different modules (not shown) communicating among each other along with other hardware or software components. For example, the component can be, but not limited to, a process running in the electronic device, an executable process, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on an electronic device and the electronic device can be the component.
[0051] FIG. 2 is a diagram illustrating, among other things, another way of implementing the system 100, according to embodiments as disclosed herein. As shown in the FIG. 2, the RCD supervisor 102 can be implemented as a part of the cloud environment 106.
[0052] FIG. 3 is an example illustration of central cloud based architecture 300 of the system 100, according to embodiments as disclosed herein. In an embodiment, the cloud environment 106 can be a central or distributed cloud architecture including a central cloud 302 and the RCD supervisor 102, both of which are connected to a plurality of independent clouds 304 and sub-clouds 306 configured to provide secure data sharing and communication services. In the central cloud based architecture 300 most of the load of transactions in the system 100 can be handled by the central cloud 302 with minimal RCD related contents from the RCD supervisor 102. In the architecture 300, the status of the independent clouds 304, the sub-clouds 306, keys and acknowledgment information can be maintained by the central cloud 302, such that the allocation of the cloud transfer control to another cloud, during the process of sharing (downloading and uploading) the data, can be performed at the central cloud 302. The RCD supervisor 102 can be configured to generate and share the RCD data bits and the status of the RCD bits with the central cloud 302 and the host 104 during the sharing (downloading and uploading) process. Further, the details related to the sharing (downloading and uploading) process is described in conjunction with the FIGS. 13 through 16.
[0053] FIG. 4 shows bits 400 used by the RCD engine 108 to perform the various operations for encrypting, decrypting, and securely sharing (uploading and downloading) the data, according to embodiments as disclosed herein. In an embodiment, the RCD engine 108 uses the values of a RCD bit 402 and a RCD data bit 404 to perform various operations on the data matrix. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. The RCD bits 402 can be configured to include a row bit (R), a column bit (C), a diagonal bit (D), and a transpose bit (T) indicating the operations to be performed on the matrix. These RCD bits 402 can be defined by the RCD supervisor 102 intimating the RCD engine 108 about which operation need to be performed on the rows, columns, diagonals, or transpose of the data matrix. The RCD bits 402 includes the information regarding the operation set which has to be performed on either row, column or diagonal of the data matrix or transpose of the data matrix. A general structure of the RCD bits is as follows: R OPR C OPC D OPD T (10 bit).
[0054] Where, R represents the row bit, OPR represents the operation to be performed on the row of the data matrix, C represents the column bit, OPC represents the operation to be performed on the column of the data matrix, D represents the diagonal bit, OPD represents the operation to be performed on the diagonal of the data matrix, and R represents the transpose bit.
[0055] In an embodiment, the R, C, D, and T is a single bit including either 0 (off) or 1 (on) indicating the status of the R, C, D, and T of the data matrix. For example, if the R bit is 1 then the RCD engine 108 determines that operation on the row of the data matrix need to be performed. Further, the operation which needs to be performed on the row of the data matrix can be determined by using the status of the 2 bits of the OP field, which are separately defined for encryption and decryption process as follows:
Encryption Operation Set
00 Addition (+)
01 Subtraction (-)
10 XOR
11 NOT
decryption Operation Set
00 Subtraction (-)
01 Addition (+)
10 XOR
11 NOT
[0056] In an example, during the encryption process, if the C bit indicates 1 and the OPC bits indicates 00 then an addition operation can be performed on the column of the data matrix. Similarly, if the D bit indicates 0 then no operation is performed on the data matrix and next bits status are checked and associated operations are performed accordingly. Further, various operations performed on the data matrix to encrypt the data using the RCD engine 108 is described in conjunction with the FIGS. 5 through 10.
[0057] In another example, during the decryption process, if the C bit indicates 1 and the OPC bits indicates 00 then a subtraction operation can be performed on the columns of the data matrix. Similarly, if the D bit indicates 0 then no operation is performed on the data matrix and next bits status are checked and associated operations are performed accordingly. Further, various operations performed on the data matrix to decrypt the data using the RCD engine 108 is described in conjunction with the FIGS. 11 and 12. In an embodiment, the operations can be customized by increasing and decreasing the operations at any time. If the operations are increased then the RCD bits 402 may also be changed accordingly.
[0058] FIG. 5 is a flow chart illustrating generally, a method 500 for performing encryption using the RCD engine 108, according to embodiments as disclosed herein. The method 500 starts at 502. At 504, the method 500 includes data in a matrix. The matrix can be configured to store the data in a 2-diementional or 3-dimentiaonal format including rows, columns, and diagonals. At 506, the method 500 includes receiving one or more signals including status of a series of RCD bits. The RCD bits includes the row bit, the column bit, the diagonal bit, and the transpose bit indicating the operations to be performed on the data matrix.
[0059] At 508, the method 500 includes determining whether the status of the row bit is indicating ON (or row bit=1). At 510, the method 500 includes encrypt the data by performing an operation on the row of the data matrix in accordance to the status of the row bit. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. For example, if the RCD engine 108 determines that the status of the row bit is ON then the associated operation to be performed on the rows of the data matrix can be determined using the next 2 bits of the RCD bits 402. The method 500 allows the RCD engine 108 to encrypt the data by performing the associated operation on the rows of the data matrix.
[0060] Further, at 512, the method 500 includes determining whether the status of the column bit is indicating ON (or column bit=1). In an embodiment, after the operation is performed on the rows of the data matrix, the method 500 allows the RCD engine 108 to determine the status of the column bit. At 514, the method 500 includes encrypt the data by performing an operation on the column of the data matrix in accordance to the status of the column bit. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. For example, if the RCD engine 108 determines that the status of the column bit is ON then the associated operation to be performed on the column of the data matrix can be determined using the next 2 bits of the RCD bits 402. The method 500 allows the RCD engine 108 to encrypt the data by performing the associated operation on the column of the matrix in accordance to the RCD bits 402.
[0061] Furthermore, at 516, the method 500 includes determining whether the status of the diagonal bit is indicating ON (or diagonal bit=1). In an embodiment, after the operation is performed on the diagonals of the data matrix, the method 500 allows the RCD engine 108 to determine the status of the diagonal bit. At 518, the method 500 includes encrypt the data by performing an operation on the diagonal of the data matrix in accordance to the status of the diagonal bit. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. For example, if the RCD engine 108 determines that the status of the diagonal bit is ON then the associated operation to be performed on the diagonal of the data matrix can be determined using the next 2 bits of the RCD bits 402. The method 500 allows the RCD engine 108 to encrypt the data by performing the associated operation on the diagonal of the matrix in accordance to the RCD bits 402.
[0062] Furthermore, at 520, the method 500 includes determining whether the status of the transpose bit is indicating ON (or transpose bit=1). In an embodiment, after the operation is performed on the diagonal of the data matrix, the method 500 allows the RCD engine 108 to determine the status of the transpose bit. At 522, the method 500 includes encrypt the data by transposing the data matrix in accordance to the status of the transpose bit. For example, if the RCD engine 108 determines that the status of the transpose bit is ON then the RCD engine 108 can be configured to transpose the data matrix. At 524, the method 500 includes storing the encrypted data matrix. The method 500 allows the RCD engine 108 to store the encrypted data matrix. The method 500 ends at 526. Furthermore, example illustrations of performing the encryption are described in conjunction with the FIGS 6 through 10.
[0063] FIG. 6 is an example block diagram 600 of RCD encryption module of the RCD engine 108, according to embodiments as disclosed herein. In an embodiment, while the encryption is performed, the data stream can be converted into an m*m square data matrix, for this data matrix RCD data of n bits (where n<=m) and the RCD bits 402 of 16 bit (10 RCD bits and 6 bits of padding). The RCD bits 402 can be used to determine which operation needs to be performed on row, column, diagonal, or transpose of the m*m data matrix. As shown in the FIG. 6, based on the RCD bits 402 and the RCD data bits 404, the data input is (m*m) data matrix and output is (m+2)(m+2) data matrix. In an embodiment, the data encryption can take place by inputting the data serially. The serial data can be inputted to make a 2-dimentional data matrix. The RCD bit 402 can provide the RCD signal (1 bit signal) and operation signal (2 bit signal), such as to perform operations on the rows, columns, diagonals, and transpose of the m*m data matrix. For example, the operation on the row of the m*m data matrix can be performed with the RCD data bits 404 based on the R bit selection signal (1 bit signal) and OPR signal (2 bit). The operation on the column of the m*m data matrix can be performed with the RCD data bits 404 based on the C bit selection signal (1 bit signal) and OPC signal (2 bit). Similarly, the operation on the diagonal of the m*m data matrix can be performed with the RCD data bits 404 based on the D bit selection signal (1 bit signal) and OPD signal (2 bit). The transpose of the m*m data matrix can be performed with the RCD data bits 404 based on the T bit selection signal (1 bit signal).
[0064] Further, a carry handling unit can be used to handle the carry bit remained while performing the operations on the rows, columns, and diagonals of the m*m data matrix. The additional two rows generated during the encryption can be result of the carry generated during the addition or subtraction operations on the data matrix. While first operation can be performed on the m*m data matrix (the matrix can be padded with all 0's on all 4 sides. Now the m*m data matrix is (m+2) * (m+2) data matrix. Top row of this (m+2) * (m+2) data matrix can include the carry of one diagonal (1st bit of the 1st row) and rest bits may include carry bit of the column. Similarly, left most column of the (m+2) * (m+2) data matrix can include diagonal carry (first and last) and remaining the carry of row operation. All these carry bits can be handled by the carry handling unit. Furthermore, example illustrations describing the encryption of the data by performing various operations on the row, column, diagonal, and transpose of the m*m data matrix is described in conjunction with the FIGS. 7 through 10.
[0065] FIG. 7 shows an example illustration 700 of operation performed on the row of the data matrix, according to embodiments as disclosed herein. In an embodiment, a line buffer can used to store the RCD bits 402 and the RCD data bits 404. The operation on the row of the m*m data matrix can be performed with the RCD data bits 404 based on the R bit selection signal (1 bit signal) and OPR signal (2 bit). The RCD engine 108 can be configured to determine whether the status of the row bit is indicating ON (or row bit=1). For example, a bit reader can be used to read the row bit and (1 single bit) and OPR bits (2 bits) indicating which operation needs to be performed on the row operation. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. The carry handling unit can be used to handle the carry bit remained while performing the addition or subtraction operations on the row of the matrix. The encryption of the data in the row of the matrix can be done by performing the operation determined by the OPR bits of the RCD bits 402.
[0066] FIG. 8 shows an example illustration 800 of operation performed on the column of the data matrix, according to embodiments as disclosed herein. In an embodiment, the line buffer can used to store the RCD bits 402 and the RCD data bits 404. The operation on the column of the m*m data matrix can be performed with the RCD data bits 404 based on the C bit selection signal (1 bit signal) and OPC signal (2 bit). The RCD engine 108 can be configured to determine whether the status of the column bit is indicating ON (or diagonal bit=1). For example, the bit reader can be used to read the column bit and (1 single bit) and the OPC bits (2 bits) indicating which operation needs to be performed on the column operation. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. The carry handling unit can be used to handle the carry bit remained while performing the addition or subtraction operations on the column of the data matrix. The encryption of the data in the column of the data matrix can be done by performing the operation determined by the OPC bits of the RCD bits 402.
[0067] FIG. 9 shows an example illustration 900 of operation performed on the diagonal of the data matrix, according to embodiments as disclosed herein. In an embodiment, the operation on the diagonal of the m*m data matrix can be performed with the RCD data bits 404 based on the D bit selection signal (1 bit signal) and OPD signal (2 bit). The RCD engine 108 can be configured to determine whether the status of the diagonal bit is indicating ON (or diagonal bit=1). For example, the bit reader can be used to read the diagonal bit and (1 single bit) and the OPD bits (2 bits) indicating which operation needs to be performed on the diagonal operation. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. The carry handling unit can be used to handle the carry bit remained while performing the addition or subtraction operations on the diagonal of the data matrix. The encryption of the data in the diagonal of the data matrix can be done by performing the operation determined by the OPD bits of the RCD bits 402.
[0068] FIG. 10 shows an example illustration 1000 of transpose operation performed on the data matrix, according to embodiments as disclosed herein. In an embodiment, the transpose of the m*m data matrix can be performed with the RCD data bits 404 based on the T bit signal (1 bit signal). The RCD engine 108 can be configured to determine whether the status of the transpose bit is indicating ON (or diagonal bit=1). For example, the bit reader can be used to read the diagonal bit and (1 single bit) indicating whether to transpose the data matrix or not.
[0069] In an embodiment, an example of encrypting a sample data is described. Consider an encrypted data ERCD_bits, RCD_data_bits (DATA) and the RCD supervisor 102 generates the RCD data bits= [0 1 1 0 0 0 0 1] and RCD bits= [100-001-110-1]. While the encryption, the RCD bit is read from the Most Significant Bit (MSB) to Least Significant Bit (LSB). This implies that operation can be performed in the following order: addition operation on the row, no operation on the column, XOR operation on the diagonal, and transpose of the m*m matrix. Further, consider a 64 bit data arranged in 8*8 data matrix and the RCD engine 108 performs the operation (OP) on respective row, column, and diagonal as mentioned by the RCD bits=[100-001-110-1]. The encryption performed on the 8*8 matrix with the RCD data bit based on the RCD bits information is as follows:
[0070] FIG. 11 is a flow chart illustrating generally, a method 1100 for performing decryption using the RCD engine 108, according to embodiments as disclosed herein. The method 1100 starts at 1102. At 1104, the method 1100 includes retrieving encrypted data from the data matrix. The data decryption can be performed by inputting the encrypted data in the RCD engine 108. The data received can be arranged in 2-dimensional or 3-dimensional format including rows, columns, and diagonals. At 1106, the method 1100 includes receiving one or more signals including status of a series of RCD bits. The RCD bits includes the row bit, the column bit, the diagonal bit, and the transpose bit indicating the operations to be performed on the data matrix. The RCD bit provides the operation selection signal (1 bit signal) and operation signal (2 bit) to the RCS engine 108 to decrypt the data on the matrix.
[0071] In an embodiment, the decryption is almost similar to the encryption but the only difference is the RCD bits. The RCD bits for the decryption are read in reverse order than that of the encryption. This means that the first RCD bit checked can be the transpose then the diagonal and then the column and at last the row bit. At 1108, the method 1100 includes determining whether the status of the transpose bit is indicating ON (or transpose bit=1). At 1110, the method 1100 includes decrypt the data by transposing the data matrix in accordance to the status of the transpose bit. For example, if the RCD engine 108 determines that the status of the transpose bit is ON then the RCD engine 108 can be configured to transpose the data matrix.
[0072] Further, at 1112, the method 1100 includes determining whether the status of the diagonal bit is indicating ON (or diagonal bit=1). In an embodiment, after the transpose of the data matrix is performed, the method 1100 allows the RCD engine 108 to determine the status of the diagonal bit. At 1114, the method 1100 includes decrypt the data by performing an operation on the diagonal of the data matrix in accordance to the status of the diagonal bit. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. For example, if the RCD engine 108 determines that the status of the diagonal bit is ON then the associated operation to be performed on the diagonal of the data matrix can be determined using the next 2 bits of the RCD bits 402. The method 1100 allows the RCD engine 108 to decrypt the data by performing the associated operation on the diagonal of the matrix in accordance to the RCD bits 402.
[0073] Furthermore, at 1116, the method 1100 includes determining whether the status of the column bit is indicating ON (or column bit=1). In an embodiment, after the operation is performed on the diagonals of the data matrix, the method 1100 allows the RCD engine 108 to determine the status of the column bit. At 1118, the method 1100 includes decrypt the data by performing an operation on the column of the data matrix in accordance to the status of the column bit. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. For example, if the RCD engine 108 determines that the status of the column bit is ON then the associated operation to be performed on the column of the data matrix can be determined using the next 2 bits of the RCD bits 402. The method 1100 allows the RCD engine 108 to decrypt the encrypted data by performing the associated operation on the column of the matrix in accordance to the RCD bits 402.
[0074] Furthermore, at 1120, the method 1100 includes determining whether the status of the row bit is indicating ON (or row bit=1). In an embodiment, after the operation is performed on the columns of the data matrix, the method 1100 allows the RCD engine 108 to determine the status of the row bit. At 1122, the method 1100 includes decrypt the encrypted data by performing an operation on the row of the data matrix in accordance to the status of the row bit. The operations described herein can include for example, but not limited to, addition operation, subtraction operation, XOR operation, NOT operation, or the like. For example, if the RCD engine 108 determines that the status of the row bit is ON then the associated operation to be performed on the rows of the data matrix can be determined using the next 2 bits of the RCD bits 402. The method 1100 allows the RCD engine 108 to decrypt the encrypted data by performing the associated operation on the rows of the data matrix.
[0075] Furthermore, at 1124, the method 1100 includes storing the decrypted data matrix. The method 1100 allows the RCD engine 108 to store the decrypted data matrix. The method 1100 ends at 1126. Furthermore, an example illustration of performing the decryption is described in conjunction with the FIGS. 12.
[0076] FIG. 12 is an example block diagram 1200 of RCD decryption module of the RCD engine 108, according to embodiments as disclosed herein. In an embodiment, while the decryption is performed, the encrypted data stream can be converted into an m*m square data matrix, for this data matrix RCD data of n bits (where n<=m) and the RCD bits 402 of 16 bit (10 RCD bits and 6 bits of padding). The RCD bits 402 can be used to determine which operation needs to be performed on row, column, diagonal, or transpose of the m*m data matrix. As shown in the FIG. 12, based on the RCD bits 402 and the RCD data bits 404, the data input is (m+2)(m+2) data matrix and output is (m*m) data matrix.
[0077] The decryption is almost similar to the encryption but, the only difference is the RCD bits. The RCD bits for the decryption can be read in reverse order (from the LSB to the MSB) than that of the encryption. This means that the first RCD bit checked is the transpose then the diagonal and then the column and at last the row bit. In an embodiment, the data decryption can take place by inputting the encrypted data serially. The serial data can be inputted to make a 2-dimentional data matrix. The RCD bit 402 can provide the RCD signal (1 bit signal) and operation signal (2 bit signal), such as to transpose the matrix and perform operations on the diagonals, columns, and rows of the (m+2) (m+2) data matrix. For example, the transpose of the (m+2) (m+2) data matrix can be performed with the RCD data bits 404 based on the T bit selection signal (1 bit signal). The operation on the diagonal of the (m+2) (m+2) data matrix can be performed with the RCD data bits 404 based on the D bit selection signal (1 bit signal) and OPD signal (2 bit). Similarly, the operation on the column of the (m+2) (m+2) data matrix can be performed with the RCD data bits 404 based on the C bit selection signal (1 bit signal) and OPC signal (2 bit). The operation on the row of the (m+2) (m+2) data matrix can be performed with the RCD data bits 404 based on the R bit selection signal (1 bit signal) and OPR signal (2 bit).
[0078] Further, a carry handling unit can be used to handle the carry bit remained while performing the operations on the diagonals, columns, and rows of the (m+2) (m+2) data matrix. The additional two rows generated during the decryption can be result of the carry generated during the addition or subtraction operations on the data matrix. While first operation can be performed on the (m+2) (m+2) data matrix (the matrix can be padded with all 0's on all 4 sides. Now, the (m+2) (m+2) data matrix is (m*m) data matrix.
[0079] In an embodiment, an example of encrypting a sample data is described. Consider a decrypted data DRCD_bits, RCD_data_bits (DATA) and the RCD supervisor 102 generates the RCD data bits= [0 1 1 0 0 0 0 1] and RCD bits= [100-001-110-1]. During the decryption, the RCD bits are read in reverse order (from the LSB to the MSB). This implies that operation can be performed in the following order: transpose of the (m+2) (m+2) matrix, XOR operation on the diagonal, no operation on the column, and addition operation on the row. Further, an 64 bit encrypted data arranged in 8*8 data matrix and the RCD engine 108 performs the operation (OP) on respective row, column, and diagonal as mentioned by the RCD bits=[100-001-110-1] in reverse order. The decryption performed on the (m+2) (m+2) matrix with the RCD data bit based on the RCD bits information is as follows:
[0080] Thought the encryption is described using row-column-diagonal-transpose fashion but, it is to be understood that other embodiments are not limited thereto. Further, the encryption can be done using any fashion without departing from the scope of the invention. Furthermore, the decryption of the encrypted data can be performed by performing the steps of the encryption in reverse order. For example, if the encryption is performed in column-row-diagonal-transpose fashion then the decryption can be performed in reverse order as transpose-diagonal-row-column, respectively. In another example, if the encryption is performed in diagonal-column-row-transpose fashion then the decryption can be performed in reverse order as transpose-row-column-diagonal, respectively.
[0081] FIG. 13 is a sequence diagram 1300 illustrating operations performed for securely uploading data using the RCD engine 108, according to embodiments as disclosed herein. In an embodiment, at 1302, the RCD supervisor 102 can be configured to receive a request for uploading data on the cloud environment 106 from the host 104. At 1304, the RCD supervisor 102 can be configured to manage a RCD table including information about availability of clouds. The RCD table includes the information about the data, such as for example, but not limited to, file, size, keys used during the data sharing (uploading and downloading) process, cloud environment, including the central cloud, and the sub-cloud information, available cloud storage space information, or the like. The information can be used when the upload request is encountered from the host, such as to choose the available cloud (may be central cloud or the sub-cloud) for uploading the data. The RCD supervisor 102 can be configured to send a query to the cloud environment 106 to determine the availability of the clouds in response to receiving the request from the host 104. Each cloud in the cloud environment 106 can be configured to provide the information such as for example, status of the cloud, available cloud storage space, files stored on the cloud, or the like. The RCD supervisor 102 can be configured to receive the information and update the RCD table accordingly.
[0082] At 1306, the RCD supervisor 102 can be configured to share, with the available cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. In an embodiment, each of the host and cloud can be associated a unique address uniquely identifying the host and the cloud. The validation data described herein can be sum of unique addresses of the participating entities (for example the host and the cloud). The RCD engine 102 can be configured to receive the unique address associated with the host and the cloud, and computes the validation as: validation data = unique_address_host + unique_address_cloud
[0083] At 1308, the host 104 can be configured to generate a key associated with the host. The host 104, in communication with the key generation module 110, can be configured to generate the key at the host 104. The key described herein can be an 8 bit key (R C D OP T (Left two bits are padding or empty)) including the RCD data bits indicating the operations to be performed on the data. At 1310, the host 104 can be configured to share the generated key with the available cloud in the cloud environment 106. At 1312, the available cloud can be configured to generate a response in response to receiving the key associated with the host. The response can include address of the available cloud address or any other data. The available cloud can be configured to encrypt the response using the key (including the RCD data bits indicating the operations to be performed on the data) received from the host 104 and send the encrypted response to the host 104, such as shown at 1314. In an embodiment, the RCD bits used while encrypting the response can be different than that used while encrypting the data.
[0084] At 1316, the host 104 can be configured to validate the encrypted response using the validation data shared by the RCD supervisor 102. In an embodiment, if the available cloud does not have sufficient storage space to store the data shared by the host, or the cloud may not be available due to any reason then the available cloud can be configured to communicate with the sub-clouds and provide the available sub-cloud address in the response. In such scenario, the host 104 can be configured to send a new key to the sub-cloud in response to determining that the response received from the available cloud is valid and includes an address for the sub-cloud. Further, the sub-cloud may send a new response to the host by encrypting the new response using the new key received from the host 104. The host 104 can then be configured to validate the new encrypted response using the validation data. The RCD engine 108 allows the host 104 and the cloud to share the key and the response using the SCL as described herein.
[0085] At 1318, the host 104 can be configured to encrypt the data using the RCD data bits and the series of RCD bits indicating the operations to be performed while encrypting the data. The encryption of the data can be performed using the RCD engine 108 as described herein. At 1320, the host 104 can be configured to upload the encrypted data on the cloud. The RCD engine 108 allows the host and the cloud to upload the encrypted data using the SDL as described herein.
[0086] FIG. 14 is a flow chart describing a method 1400 for securely uploading data using the RCD engine 108, according to embodiments as disclosed herein. In an embodiment, at step 1402, the method 1400 includes receiving a request from the host 104 for uploading the data on the cloud. In an example, the method 1400 allows the RCD supervisor 102 to receive a request for uploading the data on the cloud environment 106 from the host 104. At step 1404, the method 1400 includes managing a RCD table including information about availability of clouds. In an example, the method 1400 allows the RCD supervisor 102 to send a query to the cloud environment 106 to determine the availability of the clouds in response to receiving the request from the host 104. Each cloud in the cloud environment 106 can be configured to include the information such as for example such as for example, but not limited to, file, size, keys used during the data sharing (uploading and downloading) process, cloud environment, including the central cloud, and the sub-cloud information, available cloud storage space information, or the like. The method 1400 allows the RCD supervisor 102 to receive the information and update the RCD table accordingly.
[0087] At step 1406, the method 1400 includes sharing, with the available cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. Each of the host and cloud can be associated a unique address uniquely identifying the host and the cloud. The validation data described herein can be sum of unique addresses of the participating entities (for example the host and the cloud). In an example, the method 1400 allows the RCD supervisor 102 to share the RCD data bits, the series of RCD bits indicating operations to be performed on the data, the validation data, or the like with the available cloud and the host.
[0088] At step 1408, the method 1400 includes generating a key associated with the host. In an example, the method 1400 allows the key generation module 110 to generate the key at the host 104 and share with the available cloud. The key described herein can be an 8 bit key (R C D OP T (Left two bits are padding or empty)) including the RCD data bits indicating the operations to be performed on the data. At step 1410, the method 1400 includes receiving the key shared by the host 104. At step 1412, the method 1400 includes sending an encrypted response to the host in response to receiving the key at the available cloud. The response can include address of the available cloud address (central cloud or sub-cloud address) or any other data. The available cloud can be configured to encrypt the response using the key (including the RCD data bits indicating the operations to be performed on the data) received from the host 104 and send the encrypted response to the host 104. The RCD bits used while encrypting the response can be different than that used while encrypting the data. In an example, the method 1400 allows the available cloud to send the encrypted response to the host 104.
[0089] At step 1414, the method 1400 includes validating the encrypted response using the validation data shared by the RCD supervisor 102. At step 1416, the method 1400 includes determining whether the encrypted response is valid. At step 1418, the method 1400 includes determining whether the response includes address associated with a sub-cloud in response to determining that the encrypted response is valid. In an embodiment, if the available cloud does not have sufficient storage space to store the data shared by the host, or the cloud may not be available due to any reason then the available cloud can be configured to communicate with the sub-clouds and provide the available sub-cloud address in the response.
[0090] In an embodiment, at step 1420, the method 1400 includes encrypting the data using the RCD data bits, and the series of RCD bits indicating the operations to be performed while encrypting the data, in response to determining that the response does not include the sub-cloud address. The encryption of the data can be performed using the RCD engine as described herein. At step 1422, the method 1400 includes uploading the encrypted data on the cloud. The method 1400 allows the RCD engine 108 to upload the encrypted data on the cloud.
[0091] In an embodiment, at step 1424, the method 1400 includes generating a new key associated with the host in response to determining that the response received from the cloud includes address of the sub-cloud. The new key described herein can be an 8 bit key (R C D OP T (Left two bits are padding or empty)) including the RCD data bits indicating the operations to be performed on the data. In an example, the method 1400 allows the key generation module 110 to generate the new key at the host 104 and share with the sub-cloud. At step 1426, the method 1400 includes receiving the new key shared by the host 104. At step 1428, the method 1400 includes sending a new encrypted response to the host in response to receiving the new key at the sub-cloud. The new response can include address of the available cloud address (central cloud or sub-cloud address) or any other data. The available cloud can be configured to encrypt the response using the key (including the RCD data bits indicating the operations to be performed on the data) received from the host 104 and send the new encrypted response to the host 104. The RCD bits used while encrypting the response can be different than that used while encrypting the data. In an example, the method 1400 allows the available cloud to send the encrypted response to the host 104.
[0092] At step 1430, the method 1400 includes validating the new encrypted response using the validation data shared by the RCD supervisor 102. At step 1432, the method 1400 includes determining whether the new encrypted response is valid. At step 1434, the method 1400 includes determining whether the new response includes address associated with another sub-cloud in response to determining that the new encrypted response is valid. In an embodiment, if the available sub-cloud does not have sufficient storage space to store the data shared by the host, or the cloud may not be available due to any reason then the sub-cloud can be configured to communicate with other sub-clouds and provide other available sub-cloud address in the new response. In an embodiment, the method 1400 includes repeating the steps 1424-1434 in response to determining that the new response includes other sub-cloud address.
[0093] In an embodiment, at step 1436, the method 1400 includes encrypting the data using the RCD data bits and the series of RCD bits indicating the operations to be performed while encrypting the data, in response to determining that the new response does not include other sub-cloud address. The encryption of the data can be performed using the RCD engine as described herein. At step 1438, the method 1400 includes uploading the encrypted data on the sub-cloud. The method 1400 allows the RCD engine 108 to upload the encrypted data on the sub-cloud.
[0094] FIG. 15 is a sequence diagram 1500 illustrating operations performed for securely downloading data using the RCD engine 108, according to embodiments as disclosed herein. In an embodiment, at 1502, the RCD supervisor 102 can be configured to receive a request for downloading data on the cloud environment 106 from the host 104. At 1504, allocate a cloud including the data requested by the host 104 using the RCD table. The RCD table includes the information about the data, such as for example, but not limited to, file, size, keys used during the data sharing (uploading and downloading) process, cloud environment, including the central cloud, and the sub-cloud information, available cloud storage space information, or the like. In an embodiment, if the data requested by the host 104 is available on more than one cloud, or the cloud may not be available due to any reason then the available cloud can be configured to communicate with the sub-clouds and provide the other sub-cloud address. The information can be used by the RCD supervisor 102 or the central cloud to allocate the cloud including the data requested by the host 104. The allocated cloud described herein can be the central cloud or any sub-cloud in the cloud environment 106.
[0095] At 1506, the RCD supervisor 102 can be configured to share, with the allocated cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. In an embodiment, each of the host and cloud can be associated a unique address uniquely identifying the host and the cloud. The validation data described herein can be sum of unique addresses of the participating entities (for example the host and the cloud). The RCD engine 102 can be configured to receive the unique address associated with the host and the cloud, and computes the validation as: validation data = unique_address_host + unique_address_cloud.
[0096] At 1508, the allocated cloud (including the data requested by the host 104) can be configured to generate a key associated with the allocated cloud. The allocated cloud, in communication with the key generation module 110, can be configured to generate the key at the allocated cloud. The key described herein can be an 8 bit key including the RCD data bits indicating the operations to be performed on the data. At 1510, the allocated cloud can be configured to share the generated key with the host 104. At 1512, the host can be configured to generate a response in response to receiving the key associated with the allocated cloud. The response can include address of the available cloud address (central cloud or sub-cloud address) or any other data. At 1514, the host 104 can be configured to encrypt the response using the key (including the RCD data bits indicating the operations to be performed on the data) received from the allocated cloud and send the encrypted response to the allocated cloud. In an embodiment, the RCD bits used while encrypting the response can be different than that used while encrypting the data.
[0097] At 1516, the allocated cloud can be configured to validate the encrypted response using the validation data shared by the RCD supervisor 102. The RCD engine 108 allows the host 104 and the allocated cloud to share the key and the response using the SCL as described herein. At 1518, the host 104 can be configured to download the encrypted data from the allocated cloud. The RCD engine 108 allows the host and the allocated cloud to download the encrypted data using the SDL as described herein. At 1520, the host 104 can be configured to decrypt the data using the RCD data bits and the series of RCD bits indicating the operations to be performed while decrypting the data. The decryption of the data can be performed using the RCD engine 108 as described herein.
[0098] FIG. 16 is a flow chart describing a method 1600 for securely uploading data using the RCD engine 108, according to embodiments as disclosed herein. In an embodiment, at step 1602, the method 1600 includes receiving a request from the host 104 for downloading the data from the cloud. In an example, the method 1600 allows the RCD supervisor 102 to receive a request for downloading the data from the cloud environment 106. At step 1604, the method 1600 includes allocating a cloud including the data requested by the host 104 using the RCD table. The RCD table includes the information about the data, such as for example, but not limited to, file, size, keys used during the data sharing (uploading and downloading) process, cloud environment, including the central cloud, and the sub-cloud information, available cloud storage space information, or the like. In an embodiment, if the data requested by the host 104 is available on more than one cloud, or the cloud may not be available due to any reason then the available cloud can be configured to communicate with the sub-clouds and provide the other sub-cloud address. The information can be used by the RCD supervisor 102 or the central cloud to allocate the cloud including the data requested by the host 104. The allocated cloud described herein can be the central cloud or any sub-cloud in the cloud environment 106.
[0099] At step 1606, the method 1600 includes sharing, with the allocated cloud and the host, RCD data bits, a series of RCD bits indicating operations to be performed on the data, and a validation data. Each of the host and cloud can be associated a unique address uniquely identifying the host and the cloud. The validation data described herein can be sum of unique addresses of the participating entities (for example the host and the cloud). The RCD engine 102 can be configured to receive the unique address associated with the host and the cloud, and computes the validation as: validation data = unique_address_host + unique_address_cloud.
[00100] At step 1608, the method 1600 includes generating a key associated with the allocated cloud. In an example, the method 1600 allows the key generation module 110 to generate the key at the allocated cloud and share with the allocated cloud. The key described herein can be an 8 bit key including the RCD data bits indicating the operations to be performed on the data. At step 1610, the method 1600 includes receiving the key shared by the allocated cloud. At step 1612, the method 1600 includes sending an encrypted response to the allocated cloud in response to receiving the key. The response can include address of the available cloud address (central cloud or sub-cloud address) or any other data. The host can be configure to encrypt the response using the key (including the RCD data bits indicating the operations to be performed on the data) received from the allocated cloud and send the encrypted response to the allocated cloud. The RCD bits used while encrypting the response can be different than that used while encrypting the data. In an example, the method 1600 allows the host 104 to send the encrypted response to the allocated cloud. The RCD engine 108 allows the host 104 and the allocated cloud to share the key and the response using the SCL as described herein
[00101] At step 1614, the method 1600 includes validating the encrypted response using the validation data shared by the RCD supervisor 102. At step 1616, the method 1600 includes determining whether the encrypted response is valid. In an example, the method 1600 allows the allocated cloud to determine whether the encrypted response is valid using the validate data. In an embodiment, at step 1618, the method 1600 includes downloading the encrypted data from the allocated cloud on the host 104 in response to determining that the encrypted response is valid. The RCD engine 108 allows the host and the allocated cloud to download the encrypted data using the SDL as described herein. Further, at step 1620, the method 1600 includes encrypting the data using the RCD data bits and the series of RCD bits indicating the operations to be performed while decrypting the data. In an example, the method 1600 allows the host 104 to decrypt the data using the RCD engine 108 as described herein.
[00102] The various actions, units, steps, blocks, or acts described in the sequence diagrams and the flowcharts can be performed in the order presented, in a different order, simultaneously, or a combination thereof. Further, in some embodiments, some of the actions, units, steps, blocks, or acts listed in the methods may be omitted, added, skipped, or modified without departing from the scope of the invention. Furthermore, the various actions, units, steps, blocks, or acts are summarized into individual blocks where some of them can be performed by the RCD supervisor 102, the host 104, the cloud environment 106, or any equivalent thereof. The methods and other description described herein provide a basis for a control program which can be easily implemented using a microprocessor, microcontroller, or a combination thereof.
[00103] Furthermore, the various modules, components, devices, names, blocks, matrixes, labels, elements, or the like described with respective to FIGS. 1 through 16 are only for illustrative purpose and does not limit the scope of the invention, Furthermore, it is understood that any other modules, components, devices, names, blocks, matrixes, labels, elements, can be used to perform the same, similar, or substantially similar operations or functions without departing from the scope of the invention.
[00104] FIG. 17 depicts a computing environment 1702 implementing the application, in accordance with various embodiments as described herein. As depicted, the computing environment 1702 comprises at least one processing unit 1704 that is equipped with a control unit 1706 and an Arithmetic Logic Unit (ALU) 1708, a memory 1710, a storage unit 1712, a clock chip 1714, plurality of networking devices 1716, and a plurality Input output (I/O) devices 1718. The processing unit 1704 is responsible for processing the instructions of the algorithm. The processing unit 1704 receives commands from the control unit 1706 in order to perform its processing. Further, any logical and arithmetic operations involved in the execution of the instructions are computed with the help of the ALU 1708.
[00105] The overall computing environment 1702 can be composed of multiple homogeneous and/or heterogeneous cores, multiple CPUs of different kinds, special media and other accelerators. The processing unit 1704 is responsible for processing the instructions of the algorithm. The processing unit 1704 receives commands from the control unit 1706 in order to perform its processing. Further, any logical and arithmetic operations involved in the execution of the instructions are computed with the help of the ALU 1708. Further, the plurality of process units may be located on a single chip or over multiple chips.
[00106] The algorithm comprising of instructions and codes required for the implementation are stored in either the memory unit 1710 or the storage 1712 or both. At the time of execution, the instructions may be fetched from the corresponding memory 1710 and/or storage 1712, and executed by the processing unit 1704. The processing unit 1704 synchronizes the operations and executes the instructions based on the timing signals generated by the clock chip 1714. The embodiments disclosed herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements. The modules, components, devices, names, blocks, matrixes, labels, elements, or the like shown in the FIGS. 1-17 include various units, blocks, modules, or steps described in relation with methods, processes, algorithms, or systems of the embodiments, which can be implemented using any general purpose processor and any combination of programming language, application, and embedded processor.
[00107] The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can, by applying current knowledge, readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore, while the embodiments herein have been described in terms of preferred embodiments, those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the embodiments as described herein.
STATEMENT OF CLAIMS
We claim:
1. A method for performing encryption using a row-column-diagonal (RCD) engine, the method comprising:
inputting data in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
encrypting said data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said encryption comprises at least one of:
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit,
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
transposing said matrix in accordance to said status of said transpose bit.
2. The method of claim 1, wherein said method further comprises decrypting said encrypted data by performing said at least one operation in reverse order.
3. The method of claim 1, wherein said matrix is a two-dimensional matrix.
4. The method of claim 1, wherein said matrix is a three-dimensional matrix.
5. The method of claim 1, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
6. A method for performing decryption using a row-column-diagonal (RCD) engine, the method comprising:
retrieving encrypted data stored in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
decrypting said encrypted data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said decryption comprises at least one of:
transposing said matrix in accordance to said status of said transpose bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit, and
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit.
7. The method of claim 5, wherein said decryption comprises performing said at least one operation on said encrypted data in reverse order.
8. The method of claim 5, wherein said matrix is a two-dimensional matrix.
9. The method of claim 5, wherein said matrix is a three-dimensional matrix.
10. The method of claim 5, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
11. A method for securely sharing data among a host and a cloud environment, wherein said cloud environment comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to upload data on said central cloud;
managing, at said RCD supervisor, a RCD table including information about availability of said cloud in said cloud environment;
sharing, by said RCD supervisor, with said available cloud and said host, RCD data bits, a series of RCD bits indicating operations to be performed on said data, and a validation data;
generating, at said host, a key associated with said host;
receiving, at said central cloud, said key generated by said host;
sending, by said central cloud, an encrypted response to said host in response to receiving said key;
determining, by said host, whether said encrypted response is valid using said validation data;
encrypting, by said host, said data using said RCD data bits and said series of RCD bits in response to determining that said encrypted response is valid; and
uploading, from said host, said encrypted data on said cloud.
12. The method of claim 11, wherein managing said RCD table including said information about availability of said cloud in said cloud environment comprising:
sending a query in said cloud environment to determine availability of said clouds in said cloud environment;
receiving information about availability of said clouds in said cloud environment; and
updating said RCD table in accordance to said information received from said cloud.
13. The method of claim 11, wherein said method further comprises:
receiving said host address form said host;
receiving said cloud address from said cloud; and
computing said validation data using said host address and said cloud address.
14. The method of claim 11, wherein said validation data comprises at least one of said host address and said cloud address.
15. The method of claim 11, wherein said encrypted response is encrypted using said key associated with said host, wherein said key comprises RCD data bits generated by said host.
16. The method of claim 11, where encrypting, by said host, said data using said RCD data bits and said series of RCD bits further comprises:
inputting data in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
encrypting said data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said encryption comprises at least one of:
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit,
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
transposing said matrix in accordance to said status of said transpose bit.
17. The method of claim 16, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
18. The method of claim 11, wherein said method further comprises:
determining, by said host, whether said encrypted response comprises address associated with said sub-cloud;
receiving, by said central cloud, a new key associated with said host in response to determining that said encrypted response comprises address associated with said sub-cloud;
receiving, by said host, a new encrypted response from said cloud;
determining, by said host, whether said new encrypted response is valid using said validated data;
encrypting said data using said RCD data bits and said series of RCD bits in response to determining that said new encrypted response is valid; and
uploading, from said host, said encrypted data on said sub-cloud.
19. The method of claim 18, wherein said new encrypted response is encrypted using said new key associated with said host, wherein said new key comprises new RCD data bits generated by said host.
20. A method for securely sharing data over a cloud environment, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to upload data on said central cloud;
sharing, by said RCD supervisor, with said central cloud and said host, RCD data bits, a series of RCD bits indicating operations to be performed on said data, and a validation data;
generating, at said host, a key associated with said host;
receiving, at said central cloud, said generated key associated with said host;
sending, by said central cloud, an encrypted response indicating information about availability of said clouds in said cloud environment;
determining, by said host, whether said encrypted response is valid using said validation data;
extracting said information about available cloud in said cloud environment in response to determining that said encrypted response is valid;
generating, at said host, a key associated with said host;
receiving, by said available cloud, said new key associated with said host;
sending a new encrypted response from said available cloud in response to receiving said new key associated with said host;
determining, by said host, whether said new encrypted response is valid using said validated data;
encrypting, by said host, said data using said RCD data bits and said series of RCD bits in response to determining that said new encrypted response is valid; and
uploading, from said host, said encrypted data on said available cloud.
21. The method of claim 20, wherein said available cloud is said central cloud.
22. The method of claim 20, wherein said available cloud is said sub-cloud.
23. The method of claim 20, wherein said encrypted response is encrypted using said key associated with said host, wherein said key comprises RCD data bits generated by said host.
24. The method of claim 20, wherein said new encrypted response is encrypted using said new key associated with said host, wherein said new key comprises new RCD data bits generated by said host.
25. The method of claim 20, wherein said validation data comprises at least one of host address and cloud address.
26. The method of claim 20, where encrypting, by said host, said data using said RCD data bits and said series of RCD bits in response to determining that said encrypted response is valid further comprises:
inputting data in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
encrypting said data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said encryption comprises at least one of:
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit,
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
transposing said matrix in accordance to said status of said transpose bit.
27. The method of claim 26, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
28. A method for securely sharing data among a host and a cloud environment, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to download data from said central cloud;
allocating, at said RCD supervisor, cloud including said data requested by said host using a RCD table;
sharing, by said RCD supervisor, with said allocated cloud and said host, RCD data bits, a series of RCD bits indicating operations to be performed on said data, and a validation data;
generating, at said allocated cloud, a key associated with said allocated cloud;
receiving, at said host, said generated key shared by said allocated cloud;
sending, by said host, an encrypted response to said allocated host in response to receiving said key;
determining, at said allocated cloud, whether said encrypted response is valid using said validation data;
downloading, at said host, said data in response to determining said encrypted response is valid; and
decrypting, at said host, said data using said RCD data bits and said series of RCD bits.
29. The method of claim 28, wherein said allocated cloud is said central cloud.
30. The method of claim 28, wherein said allocated cloud is said sub-cloud.
31. The method of claim 28, wherein said RCD table includes information about said data availability in said cloud environment.
32. The method of claim 28, wherein said method further comprises:
receiving said host address form said host;
receiving said cloud address from said cloud; and
computing said validation data using said host address and said cloud address.
33. The method of claim 28, wherein said validation data comprises at least one of said host address and said cloud address.
34. The method of claim 28, wherein said encrypted response is encrypted using said key associated with said allocated host, wherein said key comprises RCD data bits generated by said host.
35. The method of claim 28, where decrypting, by said host, said data using said RCD data bits and said series of RCD bits further comprises:
retrieving encrypted data stored in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
decrypting said encrypted data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said decryption comprises at least one of:
transposing said matrix in accordance to said status of said transpose bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit, and
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit.
36. The method of claim 35, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
37. A method for securely sharing data over a cloud environment, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the method comprising:
receiving, by a Row-Column-Diagonal (RCD) supervisor, a request to download data from said central cloud;
sharing, by said RCD supervisor, with said central cloud and said host, RCD data bits with said available cloud and said host, a series of RCD bits indicating operations to be performed on said data, and a validation data;
allocating, at said central cloud, cloud including said data requested by said host using a RCD table;
generating, at said allocated cloud, a key associated with said allocated cloud;
receiving, at said host, said key shared by said allocated cloud;
sending, by said host, an encrypted response to said allocated host in response to receiving said key;
determining, at said allocated cloud, whether said encrypted response is valid using said validation data;
downloading, at said host, said data in response to determining said encrypted response is valid; and
decrypting, at said host, said data using said RCD data bits and said series of RCD bits.
38. The method of claim 37, wherein said allocated cloud is said central cloud.
39. The method of claim 37, wherein said allocated cloud is said sub-cloud.
40. The method of claim 37, wherein said RCD table includes information about said data availability in said cloud environment.
41. The method of claim 37, wherein said validation data comprises at least one of said host address and said cloud address.
42. The method of claim 37, wherein said encrypted response is encrypted using said key associated with said allocated host, wherein said key comprises RCD data bits generated by said host.
43. The method of claim 37, where decrypting, by said host, said data using said RCD data bits and said series of RCD bits further comprises:
retrieving encrypted data stored in a matrix, wherein said matrix comprises RCDs;
receiving at least one signal comprising status of a series of RCD bits indicating operations to be performed on said matrix, wherein said series of RCD bits comprises at least one of a row bit, a column bit, a diagonal bit, and a transpose bit; and
decrypting said encrypted data in said matrix in accordance to said at least one received signal comprising said status of said series of said RCD bits, wherein said decryption comprises at least one of:
transposing said matrix in accordance to said status of said transpose bit,
performing said at least one operation on said at least one diagonal of said matrix in accordance to said status of said diagonal bit, and
performing said at least one operation on said at least one column of said matrix in accordance to said status of said column bit, and
performing said at least one operation on said at least one row of said matrix in accordance to said status of said row bit.
44. The method of claim 43, wherein said operation comprises at least one of addition operation, subtraction operation, XOR operation, and NOT operation.
45. A system for performing encryption using a row-column-diagonal (RCD) engine, the RCD engine is configured to perform steps as claimed in at least one of claim 1 to 5.
46. A system for performing decryption using a row-column-diagonal (RCD) engine, the RCD engine is configured to perform steps as claimed in at least one of claim 6 to 10.
47. A system for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, the RCD engine is configured to perform steps as claimed in at least one of claim 11 to 19.
48. A system for securely sharing data over a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the RCD engine is configured to perform steps as claimed in at least one of claim 20 to 27.
49. A system for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the RCD engine is configured to perform steps as claimed in at least one of claim 28 to 36.
50. A system for securely sharing data over a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the RCD engine is configured to perform steps as claimed in at least one of claim 37 to 44.
51. A computer program product for performing encryption using a row-column-diagonal (RCD) engine, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 1 to 5.
52. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 6 to 10.
53. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 11 to 19.
54. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 20 to 27.
55. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 28 to 36.
56. A computer program product for securely sharing data among a host and a cloud environment using a Row-Column-Diagonal (RCD) engine, wherein said cloud comprises a central cloud connected to a plurality of sub-clouds, the product comprising:
an integrated circuit comprising at least one processor;
at least one memory having a computer program code within said circuit, wherein said at least one memory and said computer program code with said at least one processor cause said product to perform steps as claimed in at least one of claim 37 to 44.
Date: - 18th day of September, 2013 Signature:-
Vikram Pratap Singh Thakur
Patent Agent
ABSTRACT
The embodiments herein provide a method and system for provisioning secure communication services by using a Row-Column-Diagonal (RCD) technique in a cloud environment. The data is inputted in a matrix using a RCD engine. The RCD engine receives one or more signals including status of a series of RCD bits. The RCD bits includes a row bit, a column bit, a diagonal bit, and a transpose bit indicating the operations to be performed on the matrix. Further, the RCD engine encrypts the data in the matrix in accordance to the one or more signals received from the RCD bits. Further, the encrypted data is decrypted by performing the operations on encryption data matrix in reverse order. Furthermore, a system and method for securely uploading and downloading the data in the cloud environment using the RCD engine is disclosed.
FIG. 1
| # | Name | Date |
|---|---|---|
| 1 | Form 5.pdf | 2013-09-24 |
| 2 | Form 3.pdf | 2013-09-24 |
| 3 | Drawings.pdf | 2013-09-24 |
| 4 | Disclosure_26_SEL_12_983_Form 2.pdf | 2013-09-24 |
| 5 | 2742-del-2013-GPA-(27-09-2013).pdf | 2013-09-27 |
| 6 | 2742-del-2013-Form-1-(27-09-2013).pdf | 2013-09-27 |
| 7 | 2742-DEL-2013-FORM-26 [15-05-2023(online)].pdf | 2023-05-15 |
| 7 | 2742-del-2013-Correspondence Others-(27-09-2013).pdf | 2013-09-27 |
| 8 | SEL_New POA_ipmetrix.pdf | 2015-04-16 |
| 8 | 2742-DEL-2013-US(14)-HearingNotice-(HearingDate-24-05-2023).pdf | 2023-04-21 |
| 9 | FORM 13-change of POA - Attroney.pdf | 2015-04-16 |
| 10 | 2742-DEL-2013-FER.pdf | 2018-11-22 |
| 11 | 2742-DEL-2013-FER_SER_REPLY [15-05-2019(online)].pdf | 2019-05-15 |
| 12 | 2742-DEL-2013-ASSIGNMENT DOCUMENTS [10-10-2019(online)].pdf | 2019-10-10 |
| 13 | 2742-DEL-2013-8(i)-Substitution-Change Of Applicant - Form 6 [10-10-2019(online)].pdf | 2019-10-10 |
| 14 | 2742-DEL-2013-FORM-26 [11-10-2019(online)].pdf | 2019-10-11 |
| 15 | 2742-DEL-2013-US(14)-HearingNotice-(HearingDate-24-05-2023).pdf | 2023-04-21 |
| 16 | 2742-DEL-2013-FORM-26 [15-05-2023(online)].pdf | 2023-05-15 |
| 17 | 2742-DEL-2013-Correspondence to notify the Controller [15-05-2023(online)].pdf | 2023-05-15 |
| 18 | 2742-DEL-2013-Written submissions and relevant documents [08-06-2023(online)].pdf | 2023-06-08 |
| 19 | 2742-DEL-2013-Annexure [08-06-2023(online)].pdf | 2023-06-08 |
| 20 | 2742-DEL-2013-PatentCertificate07-07-2023.pdf | 2023-07-07 |
| 21 | 2742-DEL-2013-IntimationOfGrant07-07-2023.pdf | 2023-07-07 |
| 22 | 2742-DEL-2013-PROOF OF ALTERATION [17-01-2024(online)].pdf | 2024-01-17 |
| 1 | searchstrategy_23-04-2018.pdf |