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} T12 T23 F14 F25 S16 S27 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= j10 {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=7g {from Table1} =2*400t1*g 6 (t)wo (20)2= 400t1 {from set D} I (36)2 = 1|2|9|6 6+5=11k {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 =7g {from Table1} 1+6=7g {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=16p {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=4d {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=10j =1*400t2*361s1*j I d72 {72 is a multiple of 36} =d(72) 2=5|1|8|4 Md39 {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=2b =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=9i = 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=8h {from Table1} =2*1024f2*h √400= 20t1 T {from Table 2} U (21)2=4|4|1 Two (2:t1) 4 1+x=f6{from Table1} 1+x=6x=5 three (3:t2) (f)our 1 | 2| ? | 5 (32)2=1024f1 {from set D} 4+1=5e {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=5e {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=6f {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=7g{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.