Performance Analysis of Hybrid Cryptographic Algorithms Rabbit Stream and Enhanced Dual RSA

Cryptography is a technique for encoding data by encrypting plaintext into an unreadable (meaningless) form. Cryptographic methods have good and bad performance depending on the type of algorithm we use. Therefore, the purpose of this study is to measure speed by combining the two algorithms used. The Rabbit Stream algorithm is a stream cipher algorithm whose system security depends on the generation of a key bit stream (keystream), which only guarantees 128-bit key security but has the advantage of being fast in the encryption and decryption process, while the Enhanced Dual RSA algorithm is an asymmetric algorithm to increase data protection from the Dual RSA algorithm by utilizing the Pells equation as a substitute for public key exponents. On the other hand, the algorithm in question requires a significant amount of time to encrypt messages with a large capacity when compared to the Rabbit Stream algorithm. Nonetheless, the study's findings suggest that using a hybrid method is comparatively faster for processing substantial amounts of data.


Introduction
The development of technology in this era is a very important thing. Technology is able to help various organizations, companies, or other parties in communicating and exchanging data or documents. Along with the development of the times, agencies tend to use electronic documents in exchanging data because it is very easy and fast, but in data exchange, theft is often committed by third parties for personal gain [1]. Therefore data security is very important to keep confidential and to maintain the confidentiality of the data, and cryptographic techniques are needed [2].
Data security using cryptographic techniques is one way to hide the original message in another form that cannot be accessed or modified by unauthorized persons. Cryptography can be classified into two types based on the key used, namely symmetric cryptography and asymmetric cryptography. Symmetric cryptography is a cryptographic algorithm that uses the same key in the encryption and decryption processes. The communicating entities must exchange keys so that they can be used in the decryption process. The secret key used by the sender and receiver can be a series of random letters and numbers. Examples of symmetric algorithms: the Spritz algorithm, Rabbit Stream, RC4, TwoFish, Rijndael, etc [3]. Asymmetric cryptography is a public key algorithm that uses two different keys in the encryption and decryption processes, namely one for encryption and one for decryption. The public key used for encryptsion can be known publicly, while the private key is not desired [4].
In asymmetric cryptography, one of the keys is published, and knowing the public key will be an opportunity for unauthorized persons to decipher all the keys, even though it requires a long process. The advantage of using an asymmetric algorithm is that it provides greater scalability than a symmetric algorithm and guarantees confidentiality and authentication, but an asymmetric algorithm works much slower than a symmetric [5]. Using a symmetric algorithm can often be penetrated by cryptanalysts easily because the security of a symmetric algorithm depends only on the secrecy of the key. If the key used can be guessed or known by irresponsible parties, then all messages can be easily decrypted [6].
The Rabbit Stream algorithm is a stream cipher cryptographic algorithm that only guarantees the secrecy of a 128-bit key and uses the same key in encrypting and decrypting messages. The encryption and decryption process is carried out by XOR the generated key with plaintext or ciphertext [7]. The Rabbit Stream algorithm has a very fast process in key generation, encryption, and decryption processes. The security of the RSA algorithm, in general, does not only lie in the large number of key characters generated but actually lies in the difficulty of factoring very large numbers into prime numbers. The purpose of factoring is to get the public key and private key [8]. The Enhanced Dual RSA algorithm is an asymmetric algorithm to increase data protection from the Dual RSA algorithm by utilizing the Pells equation as a substitute for public key exponents [9]. The Enhanced Dual RSA cryptographic algorithm is less efficient for encrypting large messages because it produces a ciphertext that increases many times, causing problems, namely where it takes a long time during the encryption process and in sending the ciphertext. So this study combined the Enhanced Dual RSA algorithm with Rabbit Stream in a hybrid scheme to solve existing problems.

Methods
At this stage, to speed up the process of encrypting and decrypting large-capacity data, researchers use a hybrid method. Hybrid cryptography is a cryptographic technique that takes advantage of the advantages of each algorithm by combining symmetric and asymmetric algorithms. In hybrid cryptography, the sender generates a symmetric algorithm key, and then the plaintext will be encrypted using the private key to produce a ciphertext. The symmetric algorithm private key is encrypted using the asymmetric algorithm public key so as to get the cipherkey. Then the ciphertext and cipherkey will be sent to the recipient. To get the contents of the message sent, the recipient decrypts the cipherkey using the asymmetric private key algorithm and gets the symmetric private key. Furthermore, this symmetrical private key will be used to decrypt the ciphertext so as to get the original plaintext. The algorithms used in this study are the Rabbit Stream algorithm and the Enhanced Dual RSA algorithm.

Rabbit Stream Algorithm
The Rabbit Stream algorithm was first published publicly in 2003, Rabbit Stream is a stream cipher that only guarantees the security of a secret key of 128 bit. where the encryption and decryption processes are performed by XOR bit of plaintext with the key to be converted into ciphertext [10]. The steps in the process of encryption and decryption of the Rabbit Stream algorithm are as follows. Where is the counter carry bit, , + 1 based on Before calculating the following state function, the system counter is updated by following the steps above: d. Next state function The essence of the Rabbit Stream algorithm is the iteration of the system, which is defined by the following equation: The next step is using the formula:

Encryption and decryption process
The steps below will show the process of encryption and decryption of the Rabbit Stream algorithm as an example, as follows. 3. The encryption process is that the key that has been obtained from the generation process is XOR with each two-digit hexadecimal number with plaintext, resulting in: "9a02527a0ed14a95dc4d0c8b1cf0c6139b09496d6bd64d9dda4d"

4.
The decryption process, namely the ciphertext and key received, is XOR with two digits each and produces the original plaintext.

Enhanced Dual RSA Algorithm
The RSA algorithm is a public key algorithm invented by Ron Rivest, Adi Shamir, and Leonard Adleman in 1978.
The RSA algorithm uses two keys to encrypt and decrypt messages [11]. Dual RSA is a development algorithm from RSA used to reduce memory usage and increase the security of the RSA algorithm [12]. The Enhanced Dual RSA algorithm is a public key algorithm to increase the security of the Dual RSA algorithm by using Pell's equation to hide exponential public keys and pseudo modulus to avoid factorization attacks. The proposed system uses the number z as the pseudo modulus, so it is very difficult to infer the value of n. The steps in the encryption and decryption process of the Enhanced Dual RSA algorithm are as follows.

Results and Discussion
At this stage, the researcher will show the results of combining the Rabbit Stream and Enhanced Dual RSA algorithms using the Python programming language. Where the text data to be sent is first encrypted with the Rabbit Stream algorithm, which will later produce ciphertext. Furthermore, the key from the Rabbit Stream algorithm, whose key has been determined over 128 bit, is encrypted with the Enhanced Dual RSA algorithm, which produces the cipherkey. So that the ciphertext and cipherkey will be contributed to the recipient simultaneously. To return the encrypted text data, the recipient decrypts the cipherkey using the Enhanced Dual RSA private key algorithm, which generates a Rabbit Stream key. Then the ciphertext is decrypted using the Rabbit Stream key algorithm to produce plaintext. The specifications of the laptop used are as follows: Aenean massa.
Length of character plaintext: 100 In Figure 1, the results of the encryption and decryption process will be shown by combining the Rabbit Stream algorithm and the Enhanced Dual RSA algorithm. The processing time will be displayed automatically when the encryption and decryption process is complete. The Figure 2 shows the process of encrypting text data using the Rabbit Stream algorithm and encrypting the Rabbit key with an Enhanced Dual RSA public key. The processing time will be displayed automatically when the encryption and decryption process is complete. The Figure 3 shows an encryption and decryption process with a hybrid schema where the encoded text data can be restored to the original message. The runtime will be displayed automatically when the encryption and decryption process is complete.

Key
: DEVANKA SARUMAHA Plaintext : Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdieta Length of character plaintext: 400 In Figure 4, the results of the encryption and decryption process will be shown by combining the Rabbit Stream algorithm and the Enhanced Dual RSA algorithm. The processing time will be displayed automatically during the encryption and decryption process.

Figure 4. Encryption and Decryption Results
From the appearance of the encryption program above that uses the same key with different plaintext character lengths, it can be seen that the resulting ciphertext, if converted into text, will show results that cannot be read or understood, and the Rabbit key encryption using the Enhanced Dual RSA algorithm produces a cipherkey that is increased many times. In the display of the decryption program, it can be seen that ciphertext that cannot be understood can be returned to the original plaintext without reducing or adding to the contents of the message characters. From the results of the encryption and decryption processes, it is concluded that the time required during the encryption process is longer when compared to the time required during the decryption process.
From the appearance of programs that use the same key with different plaintext character lengths, it shows the difference in the time needed during the encryption and decryption processes. The difference in time required is shown in Table 1. The key used is in accordance with the provisions of the Rabbit stream algorithm, which is 128 bits or 16 characters long.
Based on the time required for data encryption and decryption, a relationship between length of charcter and runtime speed can be seen in Figure 5.

Conclusions
The study's findings suggest that using a combination of two algorithms in the encryption process generates a very large and random ciphertext that differs from the previous key. Consequently, without knowledge of the passwords for these algorithms, a hacker will need more time to compute the original message. Additionally, the Enhanced Dual RSA algorithm used in conjunction with the Rabbit Stream Algorithm generates a cipher key that is significantly more complex and challenging for cryptanalysts to decode. The encryption process requires more time compared to the decryption process, as it involves several stages. Finally, the decryption process of the ciphertext is successful in returning the original message without modifying its character content. Length of character