This proposed work projects mainly on providing the security for user’s information in public cloud with less computational cost. In previous work (Mowbray et al (2012)) specified about the privacy manager for defining the policy specification. Here, the policy specification should be maintained by the clients itself for choosing their encryption algorithm and where to apply that algorithm and all.
The method obfuscation discussed here about encrypting the data from the user side itself and user itself to protect user data from the service provider. For that, Extended Vigenere Cipher is used in this work which provides better encryption mechanism with less computational time. Gurpreet singh and Supriya(2013) proposed the Modified Vigenere Encryption Algorithm (MVEA) which differs from standard Vigenere algorithm by including all characters in the keyboard of the computer system. But the current internet world using the mobile as their system and they want everything should be in the mobile environment. In this scenario, using all special characters as a keyword is again becoming the complex task. To avoid these kind of difficulties, we modified and extended the standard Vigenere Encryption algorithm with only alpha-numeric characters. And also, this system could achieve better avalanche effect than MVEA while using alpha numeric characters (totally 62) instead of 95 characters which is discussed in MVEA.
The proposed EVEA doesn't contain any special characters because we are not going to use this for any transfer of information. The main objective of this work is to enhance the privacy for client's data which is stored in public cloud storage. This information need not going to be shared any other client's. If the need arise then the third party auditor introduce the key management policies with the use of any encryption algorithms.
In the proposed EVEA, CTi is the cipher text obtained from the given plain text PTi by using the key text KTi. Some article discussed about modified Vigenere Cipher by using the ASCII value of the given text. But here, the EVEA doesn't consider the ASCII value. It simply uses the same mathematical expression which is used for standard Vigenere Cipher but with 62 characters. If we go with the 26 characters, then 26 possible Caesar cipher are applied and cipher text is generated.
The Extended Vigenere Encryption algorithm (EVEA) character with its values is shown in Table 1.
Table 1
Enhanced Vigenere Cipher Table
|
A
|
B
|
C
|
D
|
E
|
.
|
.
|
.
|
W
|
X
|
Y
|
Z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
a
|
b
|
c
|
d
|
.
|
.
|
.
|
x
|
y
|
z
|
A
|
A
|
B
|
C
|
D
|
E
|
.
|
.
|
.
|
W
|
X
|
Y
|
Z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
a
|
b
|
c
|
d
|
.
|
.
|
.
|
x
|
y
|
z
|
B
|
B
|
C
|
D
|
E
|
F
|
.
|
.
|
.
|
X
|
Y
|
Z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
a
|
b
|
c
|
d
|
e
|
.
|
.
|
.
|
y
|
z
|
A
|
C
|
C
|
D
|
E
|
F
|
G
|
.
|
.
|
.
|
Y
|
Z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
a
|
b
|
c
|
d
|
e
|
f
|
.
|
.
|
.
|
z
|
A
|
B
|
D
|
D
|
E
|
F
|
G
|
H
|
.
|
.
|
.
|
Z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
.
|
.
|
.
|
A
|
B
|
C
|
E
|
E
|
F
|
G
|
H
|
I
|
.
|
.
|
.
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
a
|
b
|
c
|
d
|
e
|
f
|
g
|
h
|
.
|
.
|
.
|
B
|
C
|
D
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
W
|
W
|
X
|
Y
|
Z
|
0
|
.
|
.
|
.
|
i
|
j
|
k
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
|
|
|
T
|
U
|
V
|
X
|
X
|
Y
|
Z
|
0
|
1
|
.
|
.
|
.
|
j
|
k
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
|
|
|
U
|
V
|
W
|
Y
|
Y
|
Z
|
0
|
1
|
2
|
.
|
.
|
.
|
k
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
|
|
|
V
|
W
|
X
|
Z
|
Z
|
0
|
1
|
2
|
3
|
.
|
.
|
.
|
l
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
|
|
|
W
|
X
|
Y
|
0
|
0
|
1
|
2
|
3
|
4
|
.
|
.
|
.
|
m
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
|
|
|
X
|
Y
|
Z
|
1
|
1
|
2
|
3
|
4
|
5
|
.
|
.
|
.
|
n
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
|
|
|
Y
|
Z
|
0
|
2
|
2
|
3
|
4
|
5
|
6
|
.
|
.
|
.
|
o
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
|
|
|
Z
|
0
|
1
|
3
|
3
|
4
|
5
|
6
|
7
|
.
|
.
|
.
|
p
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
|
|
|
0
|
1
|
2
|
4
|
4
|
5
|
6
|
7
|
8
|
.
|
.
|
.
|
q
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
|
|
|
1
|
2
|
3
|
5
|
5
|
6
|
7
|
8
|
9
|
.
|
.
|
.
|
r
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
|
|
|
2
|
3
|
4
|
6
|
6
|
7
|
8
|
9
|
a
|
.
|
.
|
.
|
s
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
|
|
|
3
|
4
|
5
|
7
|
7
|
8
|
9
|
a
|
b
|
.
|
.
|
.
|
t
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
|
|
|
4
|
5
|
6
|
8
|
8
|
9
|
a
|
b
|
c
|
|
|
|
u
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
|
|
|
5
|
6
|
7
|
9
|
9
|
a
|
b
|
c
|
d
|
|
|
|
v
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
|
|
|
6
|
7
|
8
|
a
|
a
|
b
|
c
|
d
|
e
|
|
|
|
w
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
|
|
|
7
|
8
|
9
|
b
|
b
|
c
|
d
|
e
|
f
|
|
|
|
x
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
|
|
|
8
|
9
|
a
|
c
|
c
|
d
|
e
|
f
|
g
|
|
|
|
y
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
|
|
|
9
|
a
|
b
|
d
|
d
|
e
|
f
|
g
|
h
|
|
|
|
z
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
|
|
|
a
|
b
|
c
|
w
|
w
|
x
|
y
|
z
|
0
|
|
|
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
|
|
|
|
|
|
|
t
|
u
|
v
|
x
|
x
|
y
|
z
|
0
|
1
|
|
|
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
|
|
|
|
|
|
|
u
|
v
|
w
|
y
|
y
|
z
|
0
|
1
|
2
|
|
|
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
|
|
|
|
|
|
|
v
|
w
|
x
|
z
|
z
|
0
|
1
|
2
|
3
|
|
|
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
|
|
|
|
|
|
|
w
|
x
|
y
|
Key selection is the major task in all encryption algorithms. In Vigenere Cipher also the key length should be a maximum and if it's minimum then it should be repeatable until it equals the length of the given plain text. If we make the large text as key then it's should be shared with some other or to be saved in some place. Again, it should be the tedious task from the user side to maintain the key in the secure manner.
In this work, algorithm for key maintenance should also be reduced by using the plain text itself as a key. Instead of repeating the same key multiple times for equals the length of the plain text, we can use the same plaintext as key to encrypt the plain text as cipher text. If the plain text will be the key then we have to make a copy of the whole plain text to recall the key when decryption occurs.
In account of all above mentioned difficulties, the proposed work come with the solution to include language processing technique which used to chunk the whole text into characters. The whole plain text is chunked into separate words and ten words considered as a segment. In a segment, first five words will be encrypted using the next five words. Most of the times, characters may not be equal if we go with the words length. In such scenario, the actual Vigenere Cipher technique of repeatable key is to be followed.
For example, the sentence "Cryptography is the important subject in computer science that everyone needs to study"
By applying the chunking the five words total length is 33 characters and next five words is 29 characters length. In this case, again the key starts from the first character of the key word and it consumes the needed key length from the given words. Another one drawback arises that the next 33 characters in cipher text is same as plain text. To overcome this, simple keyword to be used to encrypt the plain text as cipher text as it is in Vigenere cipher. So, this proposed works follows obfuscation policy with simple encryption techniques without the involvement of cloud service provider and third party auditor.
3.1Process Flow for Obfuscation Technique
The process flow diagram in Fig. 1 explains the flow of obfuscation technique. Here, the input data is given by the user and the data is stored in an array. Then, encryption and data masking are performed on the data. After that, the data is stored in public cloud storage. Whenever the user wants to access the data, the user retrieves the data from the cloud and decrypts it at the user’s system.
3.1.1 Data Chunking
In this module, the plain text is given by the user. This plain text is taken as input for this module. Then, chunking process is applied on the plain text. The process results in chunked data. The chunked data is stored in a two dimensional array. During subsequent processes, this two dimensional array is used for encryption and decryption of the data.
3.1.2 Data Encryption
The data stored in two dimensional arrays is taken as input for this module. The encryption process comprises of two phases. During the first phase, the data in even numbered rows of the two dimensional array is added with the data in odd numbered rows of the two dimensional array. If the number of data in the odd rows is less than the number of data in even rows, then the data in odd row is repeated up to the length of the data in even row. Or else, the data is taken as it is. After that, the data in the even numbered rows of the two dimensional array is encrypted.
During the second phase, the data in the odd numbered rows of the two dimensional array is encrypted using a random key, which is given by the user. The key is repeated for the length of the data in the odd numbered rows of the two dimensional array and added to the data. After this, the data in the odd rows is also encrypted. Then, the encrypted text (i.e., cipher text) is stored in the public cloud.
3.1.3 Authentication
Whenever the user wants to retrieve the data from the cloud storage, the authentication process is performed. Authentication provides security for the data in the cloud storage. It protects data from unwanted use. It also provides integrity for the data stored in public cloud storage. A user can retrieve the data only after passing through this authentication process.
3.1.4 Decryption
The data which is retrieved from the cloud is used as an input in this module. This process is converse to that of the encryption process. This module also constitutes two phases. Firstly, the data in the odd rows of the array is decrypted using the random key, which has been used for encryption. After this process, the data in the odd rows will be decrypted.
Subsequently during the second phase, the data in the even rows are decrypted using the data in the odd rows of the array. If the cardinality of data in odd rows is less than the cardinality of the data in even rows of the two dimensional array, then data in the odd rows are repeated up to the length of the data in the even rows. Or else the data in the odd rows of the array is taken as it is. Then, the data in the even rows of the two dimensional array are decrypted using the odd row data. The decrypted data is the original data that the user wants.
3.2 Extended Vigenere Encryption Algorithm
The extended Vigenere encryption algorithm includes key generation, encryption and decryption with key verification. Intelligent rules are applied to extract the key from the given plain text.
The intelligent rules are written to implement the language processing technique in order to make decision regarding the character length with respect to word count. This procedure is explained in an algorithmic form as follows.
Intelligent Rules for Key Manipulation Algorithm (IRKMA)
Input : File with Plain text PT, Number of words in one segment N
Output : Segmented words S1, S2, ...Sl - S(PT)
1. Start
2. Read the Plain text PT and chunk into words (w)
3. Count the word in the given file and represent as Number (w)
4. Get the input N
5. Read the words w1, w2, ...wn based on the given length and segment as S1, S2, ...Sl
Pseudocode for Extended Vigenere Encryption Algorithm
Key Generation
Input : Segmented Plain text S(PT), keyword KW
Output : Cipher CT
- Give Segmented PlainText S(PT)
- Choose the segment length L
- Once segment length is chosen, divided into two segments S1(PT) and S2(PT)
- Count the words in both segments separately wc1 and wc2
- Check wc1 = wc2,
5a. If yes choose wc2 as key for wc1
5b. Else make wc2 as length equals wc1 by repeat the character of wc2 from initial character and updated wc2 which chosen as key for wc1
Encryption :
6. Initialize cipherText to null
7. If S1(PT) is less than length of S2(PT) then choose subpart of wc2 which equals the length of wc1.
8. Now choose the wc2 as encryption key KT for wc1 of plain text PT
9. Apply the Encryption process of Vigenere Cipher Algorithm using equation 1
10. Choose the simple keyword some KL=n
11. Apply simple Vigenere Cipher Algorithm for S2(PT) using the simple key KW
12. Encrypt S2(PT) using the equation 1and get CTkw
13. Encrypted text CTkw append with CTi in the segment of S2(PT)
Decryption :
Input : Cipher Text CT, Keyword KW
Ouptut : Plain Text PT
1. Apply IRKMA to segment the Cipher Text CT
2. Decrypt CTkw by keyword KW using equation 2 to get S2(PT)
3. Check wc2 = wc1(CTi), If equals apply the wc2 as key to decrypt CTi by applying equation 2
4. Else make wc2 as length equals wc1 by repeat the character of wc2 from initial character and updated wc2 which chosen as key for wc1
5. Apply the decryption expression as given equation 2.
6. Receive the plain text PT
As mentioned in algorithm for key generation, the key is count as the words 6 to 10 of the plain text and total characters are counted for the five words. After, manipulate the key length as equal to the plain text to be encrypted apply the encryption algorithm steps. The key is applied to alternate five words and it also reduces the repeatability in keywords in actual Vigenere Cipher algorithm. The word length may be vary based on the user’s perspective. This makes the proposed algorithm to supports dynamic key generation and it will not be same as every time while the encryption carried out for plain text.
The encryption are carried out with the same process as followed in Vigenere Cipher. The mathematical expression for encryption process is given in equation 1
CTi = Ekt(PTi) = (PTi + KTi) mod 62 (1)
The decryption is carried out by the equation 2
PTi = Dkt(PTi) = (CTi - KTi) mod 62 (2)
By using this EVEA, the privacy over the information is preserved with less computation complexity. And also, storage space for key management is also neglected. Section 4 provides the experimental results and analysis the performance of EVEA by comparing with Standard Vigenere Cipher Algorithm (SVCA) and MVEA [1].