Securing Java Source Files Using the Cipher Cryptographic Algorithm

*Asma'a Al-Hakimi, Muhammad Ibrahim Ravi Bin Gobi and Misbah ul Iman*

## **Abstract**

Reverse engineering poses a substantial threat to software and hardware systems, allowing unauthorized access to proprietary information, algorithms, and trade secrets. This chapter introduces a new cryptographic algorithm designed to thwart reverse engineering efforts. The research methodology involved conducting experiments to assess the technique's efficacy, yielding promising results. It emphasizes the importance of integrating cryptographic methods as a preventive measure against reverse engineering. Through encryption, decryption, and obfuscation, developers can bolster their systems'security and mitigate reverse engineering risks. The experiments validate the algorithm's potential in safeguarding sensitive information and intellectual property. Reverse engineering involves analyzing and reconstructing a system's design, code, or logic to gain unauthorized access or replicate its functionality, potentially leading to intellectual property theft, security breaches, and financial losses. The proposed technique significantly hampers reverse engineering attempts, making it challenging for attackers to understand the system's logic or extract meaningful information.

**Keywords:** cryptography, cipher algorithm, reverse engineering, software security, symmetric encryption

## **1. Introduction**

Reverse engineering is the process of analyzing a product, system, or technology to understand its design, functionality, and operation. It involves disassembling, examining, and studying the components, algorithms, and code of the subject to gain insights into how it works. In recent years, reverse engineering has become increasingly important and has faced emerging challenges, new perspectives, and innovative applications [1].

Let us explore some of these aspects.

• Intellectual Property Protection: Reverse engineering can be used to gain unauthorized access to proprietary information, leading to concerns about intellectual property theft. Protecting trade secrets and maintaining the legal boundaries of reverse engineering is a significant challenge [2].


software developers comprehend codebases that lack proper documentation, aiding in maintenance, bug fixing, and system upgrades [9].

## **2. Exploration of existing cryptography techniques**

Cryptography is a fundamental aspect of modern computer security and plays a crucial role in protecting sensitive information, ensuring data integrity, and enabling secure communication over insecure channels [10].

Cryptography is the practice and study of techniques used to secure information and communication by converting it into an unintelligible form, thereby protecting it from unauthorized access or malicious activities. It is an essential aspect of modern information security, providing confidentiality, integrity, authentication, and nonrepudiation [11].

The primary objective of cryptography is to ensure that sensitive data remains confidential during storage, transmission, and processing. This is achieved using cryptographic algorithms, which manipulate the plaintext (**original message**) into ciphertext (**encrypted message**) using encryption keys. The encrypted data can only be deciphered back to its original form by authorized individuals who possess the corresponding decryption keys [12].

There are two fundamental categories of cryptography: symmetric key cryptography and public key cryptography. In symmetric key cryptography, a single key is used for both encryption and decryption. This key must be securely shared between the sender and the intended recipient. On the other hand, public key cryptography employs a pair of mathematically related keys: a public key for encryption and a private key for decryption. The public key can be freely distributed, while the private key must be kept secret [13].

Cryptography techniques are used in various applications, such as secure communication protocols (e.g., SSL/TLS), data encryption at rest and in transit, digital signatures, secure authentication systems, and secure storage of sensitive information. It plays a crucial role in protecting personal data, financial transactions, confidential business information, and government secrets.

The strength of cryptographic systems relies on the complexity of the algorithms and the length of the encryption keys used. Cryptanalysis is the science of analyzing cryptographic systems to identify vulnerabilities or weaknesses that could be exploited by attackers. Consequently, ongoing research and development in cryptography are essential to stay ahead of potential threats and ensure the robustness of security mechanisms [14].

In recent years, emerging technologies such as blockchain, quantum computing, and homomorphic encryption have introduced new challenges and opportunities in the field of cryptography. These advancements continue to drive the evolution of cryptographic techniques to address the changing landscape of information security and privacy [15].

The following section presents cryptography techniques:

#### **2.1 Symmetric encryption**

Symmetric encryption algorithms use a single shared key to both encrypt and decrypt data. Well-known symmetric encryption algorithms include the Advanced Encryption Standard (AES), which is widely used and considered secure. AES operates on fixed-size blocks (128 bits) and supports key sizes of 128, 192, or 256 bits [16].

## **2.2 Asymmetric encryption**

Asymmetric encryption (also known as public key encryption) employs a pair of mathematically related keys: a public key for encryption and a private key for decryption. The encryption key is made public, allowing anyone to encrypt messages, while the decryption key remains private. Popular asymmetric encryption algorithms include Rivest-Shamir-Adleman (RSA) (encryption technique) and Elliptic Curve Cryptography (ECC) [17].

## **2.3 Hash functions**

Hash functions take an input (message) and produce a fixed-size output (hash value). A key feature of hash functions is that they are one-way, meaning it is computationally infeasible to derive the original message from the hash value. Commonly used hash functions include the Secure Hash Algorithm (SHA) family, such as SHA-256, SHA-384, and SHA-512 [18].

## **2.4 Digital signatures**

Digital signatures are used to verify the authenticity and integrity of digital documents or messages. They involve the use of asymmetric encryption to create a unique signature for a document that can be verified by anyone with access to the signer's public key. The Digital Signature Algorithm (DSA) and the Elliptic Curve Digital Signature Algorithm (ECDSA) are widely used for digital signatures [19].

#### **2.5 Key exchange protocols**

Key exchange protocols establish a shared secret key between two parties communicating over an insecure channel. One widely used key exchange protocol is the Diffie-Hellman key exchange, which allows two parties to generate a shared secret without explicitly transmitting it over the network [20].

#### **2.6 Post-quantum cryptography**

With the rise of quantum computing, there has been increasing interest in postquantum cryptography. These cryptographic algorithms are designed to be resistant to attacks by quantum computers. Examples include lattice-based cryptography, code-based cryptography, and multivariate cryptography [21].

Cryptography is a dynamic field, and new techniques and algorithms are constantly being developed to address emerging threats and technological advancements. Researchers and practitioners are continually working to improve cryptographic techniques to ensure the security of digital communications and protect sensitive information [22].

## **3. The mechanism of cryptography**

The mechanism of cryptography to protect code can be represented conceptually through a series of steps. Here is a graphical representation using text:


**Figure 1.** *Cryptographic algorithm process.*

While this textual representation does not provide a visual graph, it outlines the sequential steps involved in the mechanism of cryptography to protect code. The encryption step converts the original code into ciphertext, making it unreadable without the decryption key. The decryption step, performed by authorized individuals with the decryption key, retrieves the original code for access and use. **Figure 1** illustrates the encryption process.

## **4. Distinguishing symmetric encryption from asymmetric encryption**

## **4.1 Symmetric encryption**

Symmetric encryption, also known as secret-key encryption, uses a single shared key to both encrypt and decrypt data. The same key is used by both the sender and the receiver, which means that both parties must have access to the key in advance. The strength and security of symmetric encryption lie in the secrecy of the shared key [23].

## *4.1.1 Case 1*

One of the most widely used symmetric encryption algorithms is the Advanced Encryption Standard (AES). AES operates on fixed-size blocks of data and supports key sizes of 128, 192, or 256 bits. For example, if Eva wants to send an encrypted message to YG using AES, they both need to agree on a secret key beforehand. EVA encrypts the message using the shared key and sends the encrypted ciphertext to YG. YG then uses the same shared key to decrypt the ciphertext and retrieve the original message.

```
4.1.2 Case 2
```
*Securing Java Source Files Using the Cipher Cryptographic Algorithm DOI: http://dx.doi.org/10.5772/intechopen.114348*

## **4.2 Asymmetric encryption**

Asymmetric encryption, also known as public key encryption, employs a pair of mathematically related keys: a public key and a private key. The public key is made freely available, while the private key must be kept secret. These keys are mathematically linked, but it is computationally infeasible to derive the private key from the public key. **Table 1** presents the comparison of Symmetric and Asymmetric in terms of key security.

## *4.2.1 Case 1*

The RSA algorithm is a widely used asymmetric encryption algorithm. In RSA, each user has a pair of keys: a public key and a private key. For example, if EVA wants


#### **Table 1.**

*Comparison between symmetric and asymmetric.*

to send an encrypted message to YG, she can use YG's public key to encrypt the message. Only YG, with the corresponding private key, can decrypt the message.

```
4.2.2 Case 2
```
## **5. Cryptographic algorithm to prevent reverse engineering for Java source file**

### **5.1 Original code**

This section discusses the method of implementing the cryptographic algorithm to prevent reverse engineering of Java applications. The algorithm shall be deployed in the source file of the Java application. In this section, the first discussion is a presentation of implementing the cryptographic algorithm, and the second discussion is a presentation of methodology testing of the algorithm's effectiveness in stopping reverse engineering.

#### *5.1.1 Implementing cryptographic algorithm*

To prevent reverse engineering, usually, protection is applied to the class file while the source file is left without protection. In this chapter, the protection will be in the source file. The cryptographic algorithms that will be applied for the protection are AES and Cipher. The following steps are to discuss the flow of protecting the code.

Generate the AES secret key. It is optional to create it mathematically or using KeyGenerator; for the purpose of this research, it will be created mathematically to ensure more security.

Apply the Cipher algorithm. To apply the Cipher algorithm for encryption, Java Cryptography Architecture (JCA) and Java Cryptography Extension (JCE) libraries. These libraries provide very important information to escalate the security of Java applications.

Create SecretKey as an object; the secretkey class presents a secretkey for an encryption algorithm.

Initialize the cipher object; the cipher class will be used for encryption and decryption. After applying the cipher and secretkey for the encryption, perform encryption operation, after initializing the cipher object and the secretkey.

The cipher and the Java Cryptography Architecture will absorb the code in the source file to be encrypted, then while compiling the source to create the binary file, an extra layer of encryption is created, which will add more security to the application. In the case of decryption, the code will be transformed to different language that is not readable by human. However, the application is running perfectly and providing the required output.

#### *5.1.2 Testing methodology*

In this section, empirical evaluation consists of an experiment. The measurements of the experiment are the ability to execute the code to provide the same output as the original code and the ability to read variables, classes, and logic flow of the code. The environment used to conduct the experiment is NetBeans. The attributes of the experiment are lines of code (LOC) before and after reversing, the number of libraries created after reversing and comparing against the original code, the number of discovered methods, and the comparison against the original code.

The tools used for the reversing against the cryptographic algorithm are JD and CAVAJ reversing tools to determine the ability of the cryptographic to protect the source file from reversing. **Figure 2** illustrates the structure of the experiment.

To start the process of the experiment, the original code of Java must be provided, and the output of the running program must be able to be compared after applying the cryptography algorithm. The following steps present the process of deploying the algorithm to the original code.

A. Step 1: Get the Java original code in the source file. The following code is Java source file.

*Securing Java Source Files Using the Cipher Cryptographic Algorithm DOI: http://dx.doi.org/10.5772/intechopen.114348*

**Figure 3.** *Output of original code.*

The above code is to get input from the user and provide feedback based on the input required. The reason for using a communicative program is to ensure that after applying the algorithm, the program still has the ability to perform and provide proper and understandable communication to the user and to make sure that the algorithm did not change or harm the structure of the original code. **Figure 3** illustrates the output of the original code. **Figure 4** illustrates the location of the file created after running the application.

Based on the above running code and the output, this will be the benchmark to be used for experimenting on the code after deploying the algorithm to make sure that the program is sufficient and usable and provide proper output that is understandable by the user.

B. Step 2: Deploying cryptographic algorithms to protect source code. **Figure 4** illustrates the class file of cryptographic algorithm.

*Securing Java Source Files Using the Cipher Cryptographic Algorithm DOI: http://dx.doi.org/10.5772/intechopen.114348*

Based on the above code, **Table 2** presents the description of each element.

After deploying the cryptographic algorithm into the code, the source code has been compiled to create the binary file. With the extra security layer that has been added to the class file after compiling, the code form in the class file has changed and become more encrypted, unlike the usual code. **Figure 5** illustrates the byte code presentation after applying the cryptographic algorithm.

C. Step 3: Execute and evaluate the cryptographic algorithm within the provided codebase to generate a safeguarded source file. **Figure 6** depicts the successful execution of the code for text file generation. The encrypted code is showcased in **Figure 6** after the application of the cryptography algorithm.


**Table 2.** *Encryption code description.*

#### **Figure 5.**

*Class file of cryptographic algorithm*


**Figure 6.** *Successfully created text file.*

*Securing Java Source Files Using the Cipher Cryptographic Algorithm DOI: http://dx.doi.org/10.5772/intechopen.114348*

The source file has been compiled successfully and was written in the file. While reversing and revealing the source file, the original code has changed to a different one that is not readable by human; however, the application is running and providing sufficient output as required by the user; the source file is presented in **Figure 7.**

D.Step 4: Two reversing tools have been used for the experiment to test the effectiveness and efficiency of the proposed algorithm. The purpose of using JD and CAVAJ is to test with each tool the ability to reveal and read the encrypted code, test if the decrypted code is running, and provide an output that is the same as the original and encrypted code. The first tool used was CAVAJ. This tool generated an error notification as it was not able to read the encrypted class file, as presented in **Figure 8.**

The encrypted code was tested to generate output similar to the output generated from the original code; after testing, it was obvious the algorithm did not harm the code and kept it protected and provided the same output as the original code with the same amount of the time as the original code. **Figure 9** illustrates the output of the encrypted code.

Based on the testing with CAVAJ, the results were successful; the algorithm was able to defend and hide the codes from the reversing tool, the JD reversing tool was used to conduct the same test against the encrypted code, the class file was added to the environment of JD to determine the ability to reveal the code the result of the test is illustrated in **Figure 10.**

**Figure 7.** *Code after running the cryptography algorithm.*

**Figure 8.** *Reversing encrypted source file with CAVAJ.*


**Figure 9.** *Running source file after encryption.*

## **6. Discussion and findings**

Based on the experiment, the effectiveness of employing a cipher cryptographic algorithm to secure Java source files was evaluated. The experiment involved utilizing the CAVAJ and JD decompilers to ascertain whether encrypted code could be deciphered, thereby compromising its security.

The results of the experiment indicate that the encrypted code generated through the cipher cryptographic algorithm remained impervious to decryption attempts by the decomplication tools. Despite using these tools to inspect the encrypted code, no readable output was obtained; instead, error messages were encountered, signifying the robustness of the encryption. This outcome underscores the efficacy of utilizing cipher cryptographic algorithms to safeguard Java source files from unauthorized access and reverse engineering.

*Securing Java Source Files Using the Cipher Cryptographic Algorithm DOI: http://dx.doi.org/10.5772/intechopen.114348*

#### **Figure 10.** *Reversing encrypted source file with JD.*




#### **Table 3.**

*Similarity calculation before and after reversing.*


#### **Table 4.**

*Reversing tools correctness tests.*

Furthermore, the functionality of the encrypted code was assessed to ensure that its execution remained intact post-encryption. The experiment confirmed that the encrypted code was executed with the same level of functionality as the original unencrypted code, thereby validating the suitability of the chosen cryptographic approach for preserving both security and functionality. **Table 3** presents the numerical findings of the experiment comparing encrypted and original code.

These findings have significant implications for software developers and organizations seeking to enhance the security of their Java applications. By integrating cipher cryptographic algorithms into their development processes, developers can mitigate the risk of intellectual property theft and unauthorized access to sensitive code. Additionally, the ability of encrypted code to maintain its functionality ensures that security measures do not compromise the performance or usability of the software. The ability of the reversing tool to read the encrypted code is presented in **Table 4**.

The experiment demonstrates the effectiveness of employing cipher cryptographic algorithms as a viable strategy for securing Java source files. Moving forward, further research could explore the performance of different cryptographic algorithms and their impact on both security and code execution to provide comprehensive insights for software developers and security practitioners.

## **7. Conclusion**

The Cryptographic Algorithm to Prevent Reverse Engineering for Java Source Files has shown promising results in protecting sensitive code from unauthorized access.

#### *Securing Java Source Files Using the Cipher Cryptographic Algorithm DOI: http://dx.doi.org/10.5772/intechopen.114348*

Through the conducted experiment, it was observed that the proposed cryptography technique successfully encrypted the Java source file, thereby mitigating the risk of reverse engineering. The need to protect Java source files arises from the desire to safeguard intellectual property, proprietary algorithms, and confidential information embedded within the code. Reverse engineering poses a significant threat as it allows unauthorized individuals to analyze, modify, or replicate the source code, potentially compromising its integrity, security, and commercial value.

By employing cryptographic algorithms, the code can be transformed into an encrypted format that is computationally infeasible to decipher without the corresponding decryption key. While the experiment demonstrated the efficacy of the employed cryptography algorithm, it is important to acknowledge that encryption alone may not provide absolute protection. Additional security measures, such as access controls, secure development practices, and code obfuscation, should be considered in conjunction with encryption to create a more robust defense against reverse engineering. Furthermore, the proposed cryptography algorithm can be enhanced in the future by incorporating advanced encryption techniques, employing stronger key management practices, and adapting to emerging cryptographic standards.

Ongoing research and development in the field of cryptography can help address potential vulnerabilities, improve encryption algorithms, and enhance the overall security of Java source files. In summary, the Cryptographic Algorithm to Prevent Reverse Engineering demonstrates a promising approach to protect Java source files. By combining encryption with other security measures, developers can enhance the security posture of their code and mitigate the risk of unauthorized access and reverse engineering. Continued advancements in cryptography will contribute to the evolution of stronger and more effective protection mechanisms for Java source files and other valuable intellectual property.

## **8. Future work**

Based on the positive outcomes of the cryptography algorithm proposed, there is an opportunity to develop a hybrid encryption approach to secure both the source code and class files. The algorithm has the potential to be further improved and transformed into a tool that allows developers to selectively encrypt specific sections of the code within designated methods, thereby augmenting the overall protection. Cipher algorithms can be enhanced further to explore and implement more advanced cryptographic algorithms to further enhance the security of Java source files. Evaluate the performance and effectiveness of algorithms such as AES, RSA, or others in the context of Java source file protection. Furthermore, to optimize the performance of the cryptographic algorithm to minimize its impact on the overall system performance. Consider techniques such as parallel processing, algorithmic improvements, or hardware acceleration to achieve efficient encryption and decryption.

*Biometrics and Cryptography*

## **Author details**

Asma'a Al-Hakimi<sup>1</sup> \*, Muhammad Ibrahim Ravi Bin Gobi<sup>2</sup> and Misbah ul Iman<sup>3</sup>

1 Faculty of Information Sciences and Engineering, Management, and Science, University, University Drive, Off Persiaran Olahraga, Shah Alam, Selangor Darul, Ehsan, Malaysia

2 School of Computing, Faculty of Computing and Engineering, Quest International University, Ipoh, Perak, Malaysia

3 Sr. Specialist Applications, Dubai Holding Asset Management, Dubai, UAE

\*Address all correspondence to: asmaa@msu.edu.my

© 2024 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

## **References**

[1] Luoma-aho M. Java Script Web Cryptography API. Metropolia; 2015

[2] Kessler GC. Introduction on to cryptography Webinar InformaBon. 2012 [Online]. Available from: https:// commons.erau.edu/db-securitystudiespartofthecommunica tiontechnologyandnewmedia commons%0Ascholarly

[3] Al-Hakimi A, Md Sultan AB. Hybrid obfuscation of encryption. Coding Theory Essentials [Working Title]. IntechOpen; 2023. DOI: 10.5772/ intechopen.109662

[4] Al-Sanjary OI, Ibrahim OA, Sathasivem K. A new approach to optimum steganographic algorithm for secure image. In: 2020 IEEE Int. Conf. Autom. Control Intell. Syst. I2CACIS 2020 – Proc. IEEEExplore; 2020. pp. 97-102. DOI: 10.1109/ I2CACIS49202.2020.9140186

[5] Prema G, Natarajan S. Steganography using genetic algorithm along with visual cryptography for wireless network application. In: 2013 Int. Conf. Inf. Commun. Embed. Syst. ICICES. IEEEExplore; 2013. pp. 727-730. DOI: 10.1109/ICICES.2013.6508373

[6] Rao TVN. Application of elliptical curve cryptography in empowering cloud data security. International Journal of Recent and Innovation Trends in Computer Communication. 2017;**5** (August):117-121. [Online]. Available from: http://www.ijritcc.org

[7] Bulat R, Ogiela MR. Personalized cryptography algorithms – A comparison between classic and cognitive methods. In: Proc. – 52nd Annu. IEEE/IFIP Int. Conf. Dependable Syst. Networks - Suppl. Vol. DSN-S 2022. IEEEExplore;

2022. pp. 43-44. DOI: 10.1109/DSN-S54099.2022.00026

[8] Sravya G, Kumar MOVP, Sudarsana Reddy Y, Jamal K, Mannem K. The ideal block ciphers-correlation of AES and PRESENT in cryptography. In: Proc. 3rd Int. Conf. Intell. Sustain. Syst. ICISS 2020. IEEEExplore; 2020. pp. 1107-1113. DOI: 10.1109/ICISS 49785.2020.9315883

[9] Matching T, Test R. Cryptography. TEST. 2001;**1937**(1992):162-173

[10] Jorstad N, Landgrave T. Cryptographic algorithm metrics. 20th National Information Systems Security. Institute for Defense Analyses Science and Technology Division; 1997. [Online]. Available from: http://csrc.nist. gov/nissc/1997/proceedings/128.pdf

[11] Kubba ZMJ, Hoomod HK. A hybrid modified lightweight algorithm combined of two cryptography algorithms PRESENT and Salsa20 using chaotic system. In: 1st Int. Sci. Conf. Comput. Appl. Sci. CAS 2019. 2019. pp. 199-203. DOI: 10.1109/ CAS47993.2019.9075488

[12] Gowda SN. Innovative enhancement of the Caesar cipher algorithm for cryptography. In: Proc. – 2016 Int. Conf. Adv. Comput. Commun. Autom. (Fall), ICACCA 2016. 2016. pp. 1-4. DOI: 10.1109/ICACCAF.2016. 7749010

[13] Hunacek M. Cryptography: An introduction. In: Introductin to Number Theory. 2023. pp. 55-63. DOI: 10.1201/ 9781003318712-4

[14] Patnaik LR. Cryptography and network for Bachelor of Technology Computer Science and Engineering. Veer Surendra Sai University of Technology; 2011. pp. 273-303

[15] Gupta A, Walia NK. Cryptography algorithms: A review. International Journal of Engineering and Developmental Research. 2014;**2**(2): 1667-1672. [Online]. Available from: http://citeseerx.ist.psu.edu/viewdoc/ download;jsessionid=FEF3E8340D C536679E3C83BF43F1616C?doi= 10.1.1.674.7141&rep=rep1&type=pdf

[16] Sagar V, Kumar K. A symmetric key cryptography using genetic algorithm and error back propagation neural network. In: 2015 2nd International Conference on Computing for Sustainable Global Development (INDIACom), New Delhi, India. IEEEExplore; 2015. pp. 1386-1391

[17] Triandi B, Ekadiansyah E, Puspasari R, Iwan LT, Rahmad F. Improve security algorithm cryptography Vigenere Cipher using chaos functions. In: 2018 6th Int. Conf. Cyber IT Serv. Manag. CITSM 2018, no. Citsm. 2019. pp. 1-5. DOI: 10.1109/ CITSM.2018.8674376

[18] Ogiela L, Ogiela MR, Ogiela U. Cognitive information systems in secure information management and personalized cryptography. In: 2014 Joint 7th International Conference on Soft Computing and Intelligent Systems (SCIS) and 15th International Symposium on Advanced Intelligent Systems (ISIS), Kitakyushu, Japan. IEEEExplore; 2014. pp. 1152-1157. DOI: 10.1109/SCIS-ISIS.2014.7044798

[19] Submitted to Cs530: Advanced Algorithm Design and Analysis. 2015

[20] Suzaki T, Minematsu K, Morioka S, Kobayashi E. TWINE: A lightweight, versatile block cipher. In: ECRYPT

Workshop on Lightweight Cryptography. nec.com; 2011

[21] Das SB, Mishra SK, Sahu AK. Cryptography algorithm. In: A New Modif. Version Stand. RSA Cryptogr. Algorithm. Vol. 767. 2020. pp. 281-287

[22] Rahmani MKI. Cryptographic algorithms and protocols. In: A Step Towar. Soc. 5.0 Res. Innov. Dev. Cloud-Based Comput. Technol., 2021. 2021. pp. 11-20. DOI: 10.1201/97810031 38037-2

[23] Rachmawati D, Budiman MA, Wardhono MI. Hybrid cryptosystem for image security by using Hill Cipher 4x4 and ElGamal Elliptic curve algorithm. In: 2018 IEEE Int. Conf. Commun. Networks Satell. Comnetsat 2018 – Proc. 2018. pp. 49-54. DOI: 10.1109/ COMNETSAT.2018.8684121

[24] Jangid RK, Mohmmad N, Didel A, Taterh S. Hybrid approach of image encryption using DNA cryptography and TF Hill Cipher Algorithm. In: Int. Conf. Commun. Signal Process. ICCSP 2014 – Proc. 2014. pp. 934-938. DOI: 10.1109/ ICCSP.2014.6949981

[25] Semwal P, Sharma MK. Comparative study of different cryptographic algorithms for data security in cloud computing. In: Proc. – 2017 3rd Int. Conf. Adv. Comput. Commun. Autom. (Fall), ICACCA 2017. IEEEExplore; 2018. pp. 1-7. DOI: 10.1109/ICACCAF. 2017.8344738

## **Chapter 4**
