In many research works, there has been an orientation to studying and developing many of the applications of public-key cryptography to secure the data while transmitting in the systems, In this paper we present an approach to encrypt and decrypt the message text according to the ASCII(American Standard Code for Information Interchange) and RSA algorithm by converting the message text into binary representation and dividing this representation to bytes(8s of 0s and 1s) and applying a bijective function between the group of those bytes and the group of characters of ASCII and then using this mechanism to be compatible with using RSA algorithm, finally, Java application was built to apply this approach directly.
Public-Key Cryptography [1 ] [2] is the most common major factor for security and protection of Systems. It is a strong technique to secure the data transmitting within Systems. Public-Key Cryptography uses two roles(encrypting and decrypting functions). Encrypting function encrypts massage and converts it to cipher(gibberish) "C", Decrypting Function is applied to "C" to coming back to original message "M". decryption and encryption functions are inverse each other and use distinct keys(numbers) [1]. In a special case, the RSA Algorithm [1 ][2], the most strong common applications of Public-Key Cryptography which published by Rivest, Shamir and Adelman 1978. It depends on the difficult problem in mathematics which is "factorization problem". This Algorithm was built depending on exponential function E(Encryption Function)has inverse D(Decryption Function), but it is difficult to discovering it, because this depends on the " P = NP Problem [2]" is one of the biggest open problems in both mathematics and computer science. RSA Algorithm is used to encrypt and decrypt text according to represent alphabets (A, B, …….Z) as decimal numbers(from 0 ..to 25) [ 2], but what about if the text message includes numbers and some characters like: &@!*....? what about encryption and decryption text message by RSA according to ASCII(American Standard Code for Information Interchange) [3]. This paper focused on cryptography to secure the message while transmitting in the systems, so, protecting confidentiality and integrity of information. In this paper we will illustrate the use of RSA to encrypt and decrypt message which is to be transmitted from sender to receiver by a new approach related of ASCII. It's easy to convert any character in ASCII into associated number but How can we convert big numbers to the associated text by ASCII?. The answer of all inquiries was included in this paper, and a numerical example applied to illustrating the basic idea in applicable way, finally, Java application was built to apply this approach directly.
RSA Algorithm [1][2] is the most strong common applications of Public-Key Cryptography which published by Rivest, Shamir and Adelman 1978. It uses two distinct keys(two numbers), publickey which possible to be known to every one and the other is private-key which is secured and not allowed to exchange between the sender and reciver. This algorithm described as following:
1-Choose two distinct large random prime numbers p and q. 2-Compute , 3-Compute Euler’s function of n : . 4-Choose an integer e such that and , 5-Compute such that:
. The number e is the publickey and is the private -key. Let M is a message need to be encrypted and get cipher C, so, in the first the message M represented as blocks of numbers every value of block must be less than the number “n” [2]. For any block number ,such that: , the Encryption role of this algorithm is :
. and, the Decryption role is :
.
and Cipher C will be as form:
Suppose we have message text and want to encrypt it by RSA algorithm depending on ASCII, first, we will represent it as numbers by convert every character of the message text into associated number depending on ASCII, then we will apply RSA algorithm on those numbers which presented in, but when we want to coming back to original message, there will be problem because there are characters in ASCII represented as decimal numbers of two digits and the others represented as numbers in a three digits, for example the character “a” is represented as 97 and “v” is represented as 118, and " %" is represented as 37, so, for example the “av%” converted to the number “1189737” but according to the number"1189737" we can’t discover which message associated by ASCII even if we forwarded to dividing it’s digits because we don’t know the right mechanism for dividing!, not only for that, but also we want to represent the text as not big decimal numbers as possible as we can, to be able to apply RSA algorithm on that whole text directly in an efficient way.
In the following section we will illustrate our approach to be able to coming back to the original message and how we will use RSA algorithm with this approach.
We know that ASCII table [3] consists of 256 characters and the representation of them as numbers from 0 to 255, so, suppose the group A is equal to , and let’s define the function as form:
. It’s easy to know the number of elements of is . Indeed, is bijective function and so, it has inverse function. We can represent every dicimal number in A as a binary number by using binary and decimal number systems principles [5], and every number consists of 8 of 0s and 1s.
(we can add some 0s to the left of that representation if the number of digits is not 8 ), the same, we can represent every character as binary representation and every binary consists of 8 of 0s and 1s. Now, we will reivew our approch as algorithm, so suppose the message M which we want to encrypt it, this algorithm illus
This content is AI-processed based on open access ArXiv data.