A New Approach in Encryption: Magnus Kallus

advertisement
A New Approach in Encryption: Magnus Kallus
Vipul Srivastav
Abstract – Magnus Kallus is an approach in encryption.
Encryption is defined as “cryptography” which is formed
by 2 words - both of Latin origin, “crypto” i.e. “secret”
and “graphein” which means to “write”. So it basically
means to write something hidden that seems unreadable
to third party (in technical terms). Encryption is really
important in today’s world for keeping the information
secured and intact, and if the information is being
transferred from one point to another, to make sure that
the data being transmitted is well encrypted to maintain
its confidentiality and integrity and even if a third party
or an unauthorized user gains access to it (data), it will
be of no use to him/her as it would be encrypted.
Magnus Kallus is formed by 2 Latin words, “Magnus”
i.e. “immense” and “Kallus” i.e. “beauty”. Magnus
Kallus is basically a substitution cipher[1] which, in simple
terms, means that we map each letter in the message to be
encrypted to a character or a sequence of characters.
I. INTRODUCTION
In today world of digital era, message passing from one to
another end has become almost a daily job. We all like to see
that message which is transmitted reaches at the desired
location without any change in between. In other words, the
message transmitted should never get altered or stolen in
between the source and the destination. Neither should it get
destroyed/deleted by any third person. How to send then the
message in a secured way! This is where we try to devise
techniques and come across various algorithms for making the
message transferred in a secured way. Our approach is in
similar line by trying to devise a technique which we have
named as Magnus Kallus. It is based on encryption and
decryption mechanism. In following sections we have talked
about the process in detail. The approach also uses graphical
representations with various parameters used in the technique.
Encryption involves the following terms [1]:
Block Cipher: encryption is done in blocks [1]
Cipher Text (CT): the encrypted message
Encryption: the process of converting Plain Text into CT
Filler: is a character used for differentiating blocks in CT
Key: encryption is done with the help of key
Plain Text (PT): original message to be encrypted
Stream Cipher: encryption is done in streams of bytes
There are 2 kinds of encryption:
Asymmetric [1]: in which different keys are used by both
sender and receiver for encryption and decryption.
Symmetric [1]: in which same key is used by both sender and
receiver for encryption and decryption.
Magnus Kallus is example of a Symmetric Encryption
Scheme/Process.
Magnus Kallus has a slight resemblance to Caesar Cipher[1]
invented by Julius Caesar. When we talk about the Caesar
cipher in Mathematical terms, in Caesar Cipher process, each
letter of the message text is mapped to a number. Caesar
Cipher basically is a “shift cipher”, for example if we set the
“shift” value = 3 in the cipher, to illustrate this lets us take an
example PT: “abc”, the cipher shifts each letter or character of
PT 3 places to its right, since we have set the “shift” value =3,
and so we get CT as “def”. Mapping/Indexing is as follows:
1
A
9
I
17
Q
25
Y
2
B
10
J
18
R
26
Z
3
C
11
K
19
S
4
D
12
L
20
T
5
E
13
M
21
U
6
F
14
N
22
V
7
G
15
O
23
W
8
H
16
P
24
X
Table 1: Indexing of alphabets in Caesar cipher
Now let’s discuss the process of our approach i.e. Magnus
Kallus and what it’s all about. Magnus Kallus works for
Strings (sequence of characters) and Numbers. First we do
indexing of the 26 alphabets of the English Language. Index
Values should be preferably at least 2-digit numbers up-to any
n-digit number but they should be “heterogeneous” in nature
i.e. all digits should be different, so in the case of a-1 , b-2 , c3 , d-4 , e-5 , f-6 , g-7, h-8 , i-9 ; we add 26 to each of them to
make their index values become a 2 digit number, and in the
case of k-11 and v-22 we change their index values from 11 to
37 and 22 to 41 respectively to obey the heterogeneous
property. Index Table (I1) is as follows:
27
A
(1)
28
B
(2)
29
C
(3)
30
D
(4)
31
E
(5)
32
F
(6)
34
G
(7)
35
H
(8)
36
I
(9)
J
10
37
12
K
L
(11)
13
M
14
N
15
O
16
P
17
Q
18
R
19
S
20
T
21
U
41
23
24
25
26
V
W
X
Y
Z
(22)
Table 2: (I1) Indexing of alphabets in Magnus Kallus
The values in “( )” indicate the original values of the
alphabets as given in Table 1, these original values and their
changed values both will be used in our approach.
Magnus Kallus approach is a Block Cipher; it divides the
input string into “blocks” of “1-character” each of the input
string, which gets into further sub-blocks. An input of n
characters will generate n blocks and then each block will be
processed individually. The following diagram illustrates this:
Magnus kallus
SEVEN – which one to take. This is illustrated by the
following diagram :
N Character
Input String
1*361*j
1st Block
containing
1st letter
S
U
SSS
B
2nd Block
containing
2nd letter
…
…
.
.
B
L
O…
…
…
Fig: Block illustration
1
Nth Block
containing
Nth letter
C
K
√361=19’S’ {from I1}
Six (6) Seven (7), so this is the problem,
that as we come across this step, we don’t know which
number to take, whether ‘6’ or ‘7’.
S
II. THE PROCESS
The process is illustrated with the help of an example. So, let
us take a Plain Text (PT): “My name is Vipul h”. We use
“*” as filler to differentiate each sub-block and 2 successive
“**” to differentiate 2 main blocks. Now the process. The
above example has been knowingly taken to explain the
process.
Now we encrypt each character individually starting from
”M”. It has 13 as the associated value in the index table (I1)
Square the associated value i.e. 13 = 169.
Now 169 is further converted into cipher text as below:
(i) Write down first number as it is i.e. ‘1’ in this example
(ii) Write down second number in word form i.e. ‘six’ in this
example
(iii) See the first character, here it is ”s”
(iv) Take its associated index value i.e. ‘19’
(v) Square the value i.e. (19)² = 361, take this number next to
the first number earlier taken in step (i) above i.e. so far
generated (sub) text is ‘”1*361’” where “*” is filler between
the two “sub-blocks” of text generated.
(vi)Now take the third value i.e.”9” in this example.
(vii) This being the last number Add to it the first number i.e.
‘1’ in this case giving 1+9=10
(viii) Take the associated alphabet value from the Index table
i.e. ‘j’ in this case.
So, we have our Cipher Text generated with this algorithm as
1*361*j for the first character of the string i.e. ‘M’. This is
illustrated with the help of the following diagram.
M = (13)2 = 1|6|9
1
(s) ix
(19)2 = 361
9+1=10’j’ {from Table1}
Hence we get M as, 1*361*j.
We solve this problem with the help of Set theory, we define a
set D (doublet) which is defined as follows: first we write all
numbers i.e. 0-9 in their word form:
0-zero
1-one
2-(t)wo
3-(t)hree
4-(f)our
5-(f)ive
6-(s)ix
7-(s)even
8-eight
9-nine
Now define the Set D as,
D = {T1, T2, F1, F2, S1, S2}
T12
T23
F14
F25
S16
S27
Now, so whenever we come across these digits during
encryption, we append their respective values from Set D in
their encryption [which would help us in encryption] , as
illustrated below:
M = (13)2 = 1|6|9
1
(s) ix { append S1}
(19)2 = 361s1
9+1=10’j’
Hence we get M as, 1*361s1*j.
Now let us try to decrypt again and try to show the use of the
set D and how it is used in decryption.
1*361s1*j
1
Now we try to decrypt the CT which is 1*361*j as below –
(i)
Write down first number as it is i.e. ‘1’ in this case
(ii)
Take the next block i.e. 361 in this case
(iii)
Take the square root i.e. square root of 361 in this
case which is ’19’
(iv)
Take the corresponding value from the Index Table
(I1) which is‘s’ in this case. Now the problem with
letter‘s’ is that there can be two numbers i.e. SIX or
√361=19’S’s1 {from I1}
Six (6) Seven (7)
(s1)
(s2)
Now, since now we know s1 means ‘6’, we choose 6 and get
our 2 decrypted sub-blocks as 1|6|? , we now find the third
sub-block from CT: 1*361s1*j.
Since we know that 1 st character + last character = third block
in 1*361s1*j. We write, 1+x=j; 1+x= j10 {from Table1}
Magnus kallus
and so we get x as 9. So now we have decrypted all the 3 subblocks and we get 1|6|9. We take √169 = 13 M. {from Table
2}
Similarly, we encrypt all the other characters using their index
values from Table 2:I1.
in the front, in this case we don’t need to do this, it will be
further illustrated when we encrypt letter “h”.
E (15)2=2|2|5
Y (25)2= 6|2|5
2
(t)wo
(20)2=400t1 {from set D}
2+5=7g {from Table1}
=2*400t1*g
6
(t)wo
(20)2= 400t1 {from set D}
I (36)2 = 1|2|9|6
6+5=11k {from Table1}
=6*400t1*k
1
(t)wo
N (14)2= 1|9|6
(20)2=400t1 {from set D}
1
(n)ine
196
=1*196*g
(n)ine
1+6 =7g {from Table1}
1+6=7g {from Table1}
196
=1*400t1*196*g
A (27)2= 7|2|9
S (19)2= 3|6|1
7
(t)wo
3
(s)ix
(20)2= 400t1 {from set D}
7+9=16p {from Table1}
=7*400t1*p
Even if some parts of sub-blocks are same, they don’t create
any problem as our Cipher Text bears no resemblance with the
Plain Text.
M, Now, see the letter “M” is occurring second time, so in our
process, whenever a letter gets repeated we change its index
value by its multiple for the time being to ensure that the
repeated character(s) doesn’t have their encrypted blocks
similar to the original one {in this case the letter ‘m’} and
append “d” at the start which means “divide by original
index value”. The following diagram illustrates this concept.
The same process would be followed in case of “I”, which
would be illustrated when we‘ll come across letter “I”.
(19)2=361s1 {from set D}
3+1=4d {from Table1}
=3*361s1*d
V (37)2=1|3|6|9
1
(t)hree
(20)2=400t2 {from set D}
(s)ix
(19)2=361s1 {from set D} 1+9=10j
=1*400t2*361s1*j
I d72 {72 is a multiple of 36} =d(72) 2=5|1|8|4
Md39 {39 is a multiple of 3} =d(39) 2=1|5|2|1
1
(f) ive
5
(o)ne
(32)2=1024f2 {from set D}
(t)wo
20)2=400t1 1+1=2b
=d1*1024f2*400t1*b
E  (15)2=2|2|5 , If a number (after squaring) apart from the
1st place and the last place gets repeated, we change its
duplicate no. by adding a value = abs|1 st - last| and append “s”
(15)2=225
(e)ight
(31)2=961
5+4=9i
=
5*225*961*i
Magnus kallus
P (16)2=2|5|6
2
H 1*400t1*s576t1*f
(f)ive
1|
(32)2=1024f2
2+6=8h {from Table1}
=2*1024f2*h
√400= 20t1
T {from Table 2}
U (21)2=4|4|1
Two
(2:t1)
4
1+x=f6{from Table1}
1+x=6x=5
three
(3:t2)
(f)our
1 | 2| ? | 5
(32)2=1024f1 {from set D}
4+1=5e {from Table1}
=4*1024f1*e
s√576t1= {s24}t1
L (12)2=1|4|4
24 – abs |1st-last|
= 24 - abs |1-5|
= 24 – abs|-4|
= 24 – 4 = 20t1
1
(f)our
(20)2=400f1 {from set D}
1+4=5e {from Table1}
=1*400f1*e
Now, we encrypt the last character “h”. The letter “h” has
been knowingly taken to illustrate the concept stated above
that what do we do when a number (after squaring) apart from
the 1st and the last, gets repeated.
H (35)2 = 1|2|2|5. , here we see that digit “2” is occurring 2
times. So, we do as stated above, we add a value = abs|1 st-last|
to the duplicate’s index value and append “s” to it, which
means subtract value =abs|1 st-last| in index value for ease in
decryption. This is illustrated in the following diagram.
T
Two
(2:t1)
Three
(3:t2)
2
1|2|2|5
=√1225= 35 h {from Table 2}
H (35)2= 1|2|2|5
We have successfully encrypted all the characters of our PT.
Thus our Plain Text (PT): “My name is Vipul h” is
encrypted and we get our Cipher Text (CT) as:
1
(t)wo
(20)2=400t1 {from set D}
20+ abs |1st-last|
=20+abs |1-5|
=20+abs |-4|
=20+4 = s(24)2t1=s576t1 {from set D}
1*361s1*j**6*400t1*k**1*196*g**7*400t1*p**d1*1024f2
*400t1*b**2*400t1*g**1*400t1*196*g**3*361s1*d**1*40
0t2*361s1*j**5*225*961*i**2*1024f2*h**4*1024f1*e**1*
400f1*e**1*400t1*s576t1*f.
We have added “**” to differentiate each main block. 14
letters of our PT correspond to 14 blocks in our CT as shown
above.
1+5=6f {from Table1}
We’ll always have ONE STANDARD TABLE (Table 1) to
calculate the last block in our decryption process.
=1*400t1*s576t1*f
Now, we decrypt “h” to show that how the appended letter “s”
is helpful for decryption.
In the next section we discuss the concept applying to random
number indexing and the associated time aspect. We will also
discuss as to how, by simply changing the number of digits of
our index values for Table 2, we can make the process more
complex and secure.
Magnus kallus
III. Random No. Indexing in Table 2 and Time Aspect
It is not necessary that we always follow Table 2 for
encryption. The following Table shows the aspect of
Random Number Indexing and that since our process works
for any n-digit, provided it is heterogeneous, we can have
random number in any order, whether 2 digits or 3 digits.
This is illustrated by the following table:
412
A
321
H
478
O
356
B
542
I
376
P
627
C
173
J
256
Q
124
D
653
K
385
R
764
E
435
L
153
S
516
F
315
M
438
T
1234
V
245
213
567
365
W
X
Y
Z
Table 3: Random Number Indexing
435
G
342
N
987
U
Here, we only take “V” as our Plaint Text (PT) and compare
its cipher text with the earlier one using the same process as
illustrated and then we see that how by just increasing the no.
of digits has affected the cipher text and increased its
complexity.
V (1234) = 1|5|2|2|7|5|6 [‘2’ digit repeating]
1
2
Fig 1: No. of Digits Vs Complexity & time Graph
The above Graph shows us the relationship between the No. of
Digits in the Index value VERSUS the Complexity and time
aspects.
Hence, by using random numbers as index values, and then
using them for encryption, we can enhance the security and
complexity of the cipher text overall.
IV. KEY ASPECTS
(f)ive
(516)2=266256f2
(t)wo = (438)2= 191844t1
= 438 + abs|1st – last|
= 438 + abs|1-6|
= 438 + abs|-5|
= 438 + 5 = s(443)2= s196249t1
In Magnus Kallus encryption scheme, 2 tables will act as
“keys”. First will be the Table 1 which will be always used.
The second would be our Random Index Table.
This would give us the possibility of multiple cipher texts, i.e.
for one plain text, we can have multiple cipher texts since we
have different random indexing tables every time we perform
encryption.
V. CONCLUSION & FUTURE SCOPE
(s)even
(153)2=23409s2
[‘5’ digit repeating]
= 516 + abs|1st – last|
= 516 + abs|1-6|
= 516 + abs|-5|
= 516 + 5 =s(521)2=s271441f2
=1+6=7g{table 1}
=1*266256f2*191844t1*s196249t1*23409s2* s271441f2*g
Magnus Kallus encryption scheme has
tremendous potential, it can be combined
with other encryption schemes such as
RSA[2], DES[2], Diffie-Hellman Key
Exchange[1], to make a new scheme for
encryption. It may further be implemented
for Digital Signatures [1].
We can use other protocols for security of
the keys like Diffie-Hellman Key Exchange
or use a random number algorithm for
generating the random numbers.
V 1*400t2*361s1*j [from Table 2]
By comparing the two cipher texts of “V” obtained by using
Table 2 and Table 3, one can simply infer that how
complexity, time taken to decrypt and the length of the cipher
text increases exponentially by just increasing a index value
from 2 digit to 4 digits. This also enhances the security of the
text by making it more complex and hence it can effectively
secure the text transmitted.
The other possibility is that we can use
hexadecimals or mathematical operations
and try to use them in this scheme. Even the
alphabets can be thought of to map to 2
index values. Our basic aim is to make the
process more secure by inculcating some
other processes or logics.
Magnus kallus
ACKNOWLEDGEMENT
I am sincerely thankful to the faculty at the college for
allowing me to work on this problem. It has provided an inner
strength to take up such research projects to study with deep
insight and interest.
REFERENCES
Book References
[1] Cryptography And Network Security-William Stallings
Fourth Edition; Pearson.
[2] Cryptography And Network Security-Behrouz A.
Forouzan; Tata McGraw-Hill.
Download