ArticlePDF Available

Abstract and Figures

RSA Crypto-Algorithm is well-known and widely used public key cryptographic algorithm due to the prominent level of proven security which depends on the difficulty of large integer factorization problem. RSA is heavily based on the modular arithmetic of large integers and the whole RSA includes three parts: key generation, encryption and decryption process. In this paper, we propose a software simulation version via Ms. C# 2013.NET of RSA cryptosystem and its internal modules independently using efficient arithmetic operations and robust number theories. The simulation was tested for 32-bit encryption and decryption keys. We observed that the message that will be encrypted should be limited to the range of the modulus. This implies that the range should begin from zero to the modulus minus one. The simulation showed a comparable delay results for encryption/decryption process especially when it configured with small message sizes 10-200 byte at a time.
Content may be subject to copyright.
Software Simulation of Variable Size Message Encryption Based RSA Crypto-
Algorithm Using Ms. C#. NET
1 Hasan Al-Qadeeb, 1 Qasem Abu Al-Haija and 2 Noor A. Jebril
1 King Faisal University, Department of Electrical Engineering, Al-Ahsa 31982, P.O. Box 380
2 Computer Sciences Department, King Faisal University, Ahsa, 31982, P.O. 380, Saudi Arabia
ABSTRACT
RSA Crypto-Algorithm is well-known and widely
used public key cryptographic algorithm due to the
prominent level of proven security which depends
on the difficulty of large integer factorization
problem. RSA is heavily based on the modular
arithmetic of large integers and the whole RSA
includes three parts: key generation, encryption
and decryption process. In this paper, we propose
a software simulation version via Ms. C#
2013.NET of RSA cryptosystem and its internal
modules independently using efficient arithmetic
operations and robust number theories. The
simulation was tested for 32-bit encryption and
decryption keys. We observed that the message
that will be encrypted should be limited to the
range of the modulus. This implies that the range
should begin from zero to the modulus minus one.
The simulation showed a comparable delay results
for encryption/decryption process especially when
it configured with small message sizes 10-200 byte
at a time.
KEYWORDS
Public Key Cryptography; RSA Algorithm; Visual
Studio.NET, C#.NET 2013.
1. INTRODUCTION
Recently, the enormous neoteric technological
revolution in telecommunication and data sharing
such as cloud computing and Internet of things
(IoT) has raised the demand for essential
infrastructure to develop secure communication
over insecure channels for different applications.
Wide range of solutions have been proposed and
investigated for the last couple of decades to
constructing and analyzing algorithms of secret
data sharing/storing by employing different
mathematical schemes along with computer
engineering techniques. The art of providing such
solutions is called cryptography. Cryptography [5]
provides different algorithms to prevent third
parties (or the public) from reading/accessing the
private messages communicated between two
trusted parties. Cryptography provides wide range
of services and applications [3] such as:
Identification, Key establishment, Secret sharing,
Electronic cash, Games [4], Certificates and
Authentication, Digital Signature, Quantum Key
Distribution and many others.
Classical cryptosystems are antique methods used
to secure data in the medieval period. Unluckily,
such kind of cryptography is too poor and simple
to be broken by attackers, especially using
computers. In contrast, it is such a terrific way to
understand the main idea of cryptosystems.
Therefore, more sophisticated methods were
designed to assure various levels of security, these
methods are categorized as: Symmetric Key
Cryptography (SKC) and Public Key
Cryptography (PKC). SKC algorithms use only
one private key shared between the sender and the
receiver while PKC algorithms use two keys, one
is kept private for the decryption operation, and
the other key is made public for all users.
Generally, PKC algorithms are very powerful and
secure, but they need high computational power
compared with symmetric key algorithms [6].
RSA Crypto Algorithm is well-known example of
PKC.
PKC is heavily based on digital arithmetic and
number theory algorithms. The digital arithmetic
[7] operations such additions, multiplications,
divisions and modular operations form the core
part of any processor or coprocessor design. On
the other hand, the number theory [5] was largely
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
35
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
separated from other fields of Mathematics as it is
topically related to elementary arithmetic, except
that the concern now is with more advanced and
subtle aspects of the subject. It has rapidly grown
in recent years in practical importance through its
use in areas such as coding theory, cryptography
and statistical mechanics. Such advanced
algorithms comprise of modular arithmetic,
modular exponentiation, prime number theory,
Chinese Reminder Theorem, and Fermat's Little
Theorem and Euler's Theorem. It has attracted
many of the most outstanding mathematicians in
history including Euclid, Diophantus, Fermat,
Legendre, Euler, Gauss, Dedekind, Jacobi,
Eisenstein, Sieve of Eratosthenes and Hilbert all
made immense contribution to its development.
Many of these number theory algorithms and
digital arithmetic operations are contribution as
building blocks of RSA cryptosystem.
In the last years, many hardware/software
solutions tried to address the efficient design
public key algorithms such as RSA. The most
commonly used solutions were the FPGA design
and synthesize such as [8] and the
microprogramming of Microcontroller chips such
as [9] as well as the high-level simulations. In this
paper, we propose a high-level simulation of 32-
bit RSA Crypto-algorithm using Microsoft visual
studio 2012. Net suite - C# language. In addition
to RSA encryption/decryption processes, the
simulator encompasses several tools many
arithmetic and number theory algorithms that are
commonly used in designing several PKC
algorithms.
The remaining of this paper is organized as
follows: Section 2 re-visited the theoretical topics
of RSA Cryptosystem and Section 3 provides the
simulation environment of the proposed system.
Section 4, system analysis and evaluation, contains
simulation outcomes and experimental results
together with the discussions which include
performance measures the proposed simulation for
different message sizes. Finally, Section 6
concludes the paper.
2. RSA CRYPTOSYSTEM-REVISITED
RSA which stands for Rivest, Shamir, and
Adleman, the three scientists who defined the
algorithm, is public key crypto algorithm that its
strength based on the difficulty of integer
factorization. Being a PKC algorithm means that
everyone can encrypt a message, but only
authorized users can decipher the message.
2. 1 RSA Algorithm
RSA algorithm works as follows: Firstly, choose
two large distinct prime numbers (p) and (q). The
product of these numbers is assumed to be called
the modulus (n) which is the component of the
public key, but the number must be large enough
such that the numbers (p) and (q) cannot be
feasibly extracted to have a robust system. Then
generate the encryption key (e) which must be co-
prime to the Euler number 𝜑(𝑛)=(𝑝 − 1)×(𝑞 −
1). Then create the decryption key (d) such
that (𝑒×𝑑)𝑚𝑜𝑑 𝜑(𝑛)= 1. And, finally both of
public and private are known. The complete steps
of RSA Algorithm is given in figure 1.
Figure 1. Complete steps of RSA algorithm
2.2 Mathematical Proof of RSA Algorithm
RSA computations can be mathematically proofed
by forward substitution of the encryption process
of plaintext message M to get the ciphered
message C and then by backward substitution of
Ciphertext C to get back the plaintext message M
as shown in the figure 2 below.
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
36
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
Figure 2. Proof of RSA algorithm
2.3 RSA Challenge
The idea of RSA challenges [5] has been set before
with lower-strength ciphers to encourage
researcher with computational number theory and
practical difficulty of factoring large integers. The
RSA challenges were held by the RSA
laboratories. They were concerned about factoring
enormous number keys. That is, the keys are the
product of two large prime numbers. However, the
historical challenges were ranging between 576
bits to 2048 bits as eight RSA challenge numbers.
They awarded a cash prize to the first person to
factor each challenge number. Prizes ranged from
$10,000 for the 576-bit challenge to $200,000 for
2048 bits. Previous RSA challenges have revealed
that the US-government backed DES (Data
Encryption Standard) was vulnerable to a brute
force attack that yielded the result of a 56-bit key
in a little over 22 hours [1].
2.4 RSA Factoring
Factoring a number means defining that number as
a product of prime numbers. Examples of prime
numbers are 2, 3, 5, 7, 11, and 13. Those numbers
do not divide by any smaller number except 1. On
the other hand, a composite number can be written
as the product of smaller primes. Those are called
prime factors, also. For instance, the number 665 is
a product of the primes 5, 7, and 19. A number is
said to be factored when all its prime factors are
identified. The difficulty of factorization increases,
as the length of the number increases. Factoring
100-bit number is not difficult with advanced
algorithms. The first person to submit a correct
factorization for any of the challenge numbers was
eligible for a cash prize. Given the amount of
computation required for such a factorization, the
prizes were mainly symbolic. They served as a
small incentive for public demonstrations of
factoring on a large scale. In 2005, the largest
number of RSA to be factored was 640 bits. RSA-
2048 bit stands as the biggest number of RSA to be
factored. The GNFS [10] is one of the best
algorithms for factoring very large numbers. GNFS
consists of a sieving phase that searches for a fixed
set of prime numbers for candidates that have a
particular algebraic relationship, modulo the
number to be factored. This is followed by a
matrix solving phase that creates a large matrix
from the candidate values, and then solve it to
determine the factors.
2.5 Possible Attacks Of RSA
Reasonably, there is no system perfect, but there
are systems hard to be attacked. RSA is frequently
used in applications such as e-mail, e-banking,
remote login, etc., where security of digital data is
a primary concern. Over years, numerous attacks
on RSA illustrating RSA’s present and potential
vulnerability have brought our attention to the
security issues of RSA cryptosystem. Although
twenty years of research have led to several
fascinating attacks, none of them is devastating.
They mostly illustrate the dangers of improper use
of RSA. Indeed, securely implementing RSA is a
nontrivial task. However, these possible attacks
can be divided into four main disciplines that can
be depicted in the following figure (figure 3)
which summarizes the possible attacks on RSA as
reported in the literature [2].
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
37
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
Figure 3. Possible Attacks on RSA
3. SIMULATION ENVIRONMENT
The completed design of RSA is comprised of six
levels: random two prime numbers, parallel
multiplication of the prime numbers and their
decremented values, encryption key, decryption
key, encryption and decryption levels. In fact, the
implementation of RSA Cryptosystem is heavily
based on modular arithmetic and exponentiation
involving large prime numbers. This work
proposes a software simulation for RSA
Cryptosystem using MS. C#.Net 2013. The
simulation and testing was conducted using high-
performance computing platform which has the
specifications shown in table 1.
Primarily, modular exponentiation with large
modulus is considered as the core operation of
RSA computation which is typically obtained by
carrying out repeated modular multiplications.
Unfortunately, this will consume extensively long-
time delay. Consequently, the speed of the
cryptosystem will totally depend on the speed of
the modular multiplication as well as the number
of modular multiplication components. Therefore,
to increase the speed of the modular multiplication,
Interleaved Algorithm [11] was particularly chosen
as an efficient solution. Finally, this system can be
utilized for several security claims such as network
routers and security gateways using certain
protocols.
Table 1: High Performance Computer Specifications
Processor
4th generation Intel® Core™ i7 quad-
core [3.4GHz,8MB Shared Cache]
Operating
system
Windows 8.1 64 bit
Memory
16GB DDR3 - 1600MHz
Hard drive
2TB 7200 RPM SATA
Graphics
2GB AMD Radeon R7 240 [DVI,
HDMI, & DVI to VGA]
Screen
23" LED Display
3.1 Design Modules
The system design to be accomplished, it included
multistage phases of mathematical computations
using several arithmetic and number theory
algorithms are taken into consideration. As seen
from figure 4 below, the RSA Crypt-system passes
through the following stages:
1. Stage # 1: Plaintext message (M) Preparation.
The original message to be encrypted by the
RSA simulator can be easily entered by the
Keyboard and then the text is converted to
string of numbers using Extended ASCII
Coding tables [12].
2. Stage #2: Generating two large Primes (P, Q).
This process started by generate two large
numbers using Pseudo Random Number
Generation (PRNG) using Linear Feedback
Shift Registers (LFSRs) as in [13] and then
followed by primality testing module based on
Rabin Miller primality testing algorithm [14].
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
38
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
3. Stage # 3: Arithmetic Multiplication. This
includes Modulus Generation by Multiplication
of two large primes (p, q) and Euler function
Generation by Multiplication of (p-1 and q-1).
We have used the sequential multiplication with
redundant carry save audition which is
considered as high-speed multiplier.
4. Stage # 4: Generation Public Encryption Key
(e). This is accomplished by choosing random
(e) using RNG between 2 and φ(𝑛) with the
condition of GCD (e, 𝜑(𝑛) ) to assure that e and
𝜑(𝑛) are relatively prime. We have used
Euclidean Algorithm [15] to compute the
greatest common devisor (GCD) between two
non-negative integers.
5. Stage # 5: Generation of Private Decryption
Key (d). This is accomplished by using
modular inverse operation and we have chosen
Extended Euclidean Algorithm which is well-
known extension of the Euclidean algorithm
[14] to find the modular multiplicative inverse
of two co-prime numbers.
6. Stage # 6: Encryption/ Decryption Stage. This is
the most expensive operation of RSA algorithm
and can be done by applying modular
exponentiation. Modular exponentiation is a
great technique to simplify modular arithmetic
calculation. Its function is to calculate the
modulus for very high-power exponents. In
fact, we selected Right to Left Interleaved
Modular Exponentiation Algorithm because it is
an efficient method to be implemented
practically, especially when the exponent
becomes very large [11]. Finally, the numbers
are converted back to text using the same ASCII
tables for number-to-text.
Figure 4. Complete process of RSA dataflow stages on both communication sides
3.2 RSA Arithmetic
As seen from previous sub-section, RSA
Arithmetic involves all the theorems and
algorithms used in designing the RSA components.
These include modular exponentiation, modular
multiplication, modular inverse, multiplier, adders,
primality testing, greatest common divider and
random number generator.
Starting with the modular exponentiation, the
Right to Left Modular Exponentiation Algorithm
principle is to take the exponent in binary radix
and starts from the least significant bit. Firstly, we
initiate a register C with the value one. After that,
if the corresponding bit of the exponent is ‘1’ then
we put in that register the modular multiplication
of the base by the register C. However, if the
corresponding bit of the exponent is ‘0’then the
register C remains the same. This will pass through
a loop with the length of the exponent iterations.
As it is clear from its name that it takes the bits of
the exponent from the right to the left. For each
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
39
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
iteration, there should be an initiated register S and
calculate the modular multiplication of S2. Finally,
the output will be ready at the end of the loop at
register C.
Secondly, we used the Interleaved Algorithm as
the modular multiplication. At the beginning, we
initiate three registers P, I and J where P is set at
zero. This will pass through a loop with the length
of the first operand iterations. Then we put in
register P the multiplication of two by P. After
that, if the corresponding bit of the first operand is
‘1’ then we put in register I the second operand.
However, if the corresponding bit of the exponent
is ‘0’ then the register I remains the same. Then we
put in register P the addition I and P. After that, we
do two comparisons if the register P is greater than
the modulus then we put in register P the
subtraction of P minus the modulus. Finally, the
output will be ready at the end of the loop at
register P.
Third, we used the Extended Euclidean Algorithm
as the modular inverse. At the beginning, we
initiate three registers Q, T, B0, X1 and X0. If the
modulus is ‘1’ then the output is ‘1’. We put the
modulus in the register B0, zero in the register X0
and one in X1. After that, we do a loop until A
becomes greater 1. Inside the loop, we do the
following: we put in Q the division of a by B. The
modular of A and B in the register T. Then we put
T in A, X0 in T, X1 Q * X0 in X0 and T in X1.
After finishing from the loop, we do a comparison
if the register X1 is less than 0 then we put B0 in
X1. Finally, the output will be register X1.
We used the Carry Save Adder based Carry Look
Ahead Adder. It is a parallel operation of full
adders. The number of full adders depends on the
operand’s length. So, each full adder can handle
one-bit addition. After that, the results of the full
adders should pass through carry look ahead adder
to find the result. We used the sequential multiplier
where it is based on the CSA. Here we used a shift
register for the second operand and a multiple
generator. The multiple generator is simply the
‘ANDing’ between the first operand the
corresponding bit of the second operand. Each
result of the multiple generator will be added in the
CSA with the previous carry and the previous
vector. We initiate the previous carry and the
previous vector as zeroes. Finally, the output will
be the addition of the previous carry and the
previous vector by the carry look-ahead adder.
We used Euclidean Algorithm to find the greatest
common divisor. Its principle can be done only by
performing the modular multiplication. We simply
do a loop until the second input becomes greater
zero. Inside the loop, we do the following: the
modular multiplication of the two inputs. Then we
put exchange the input registers. After that, we put
the reminder in the second input register. The
output will be ready after finishing the loop in the
first input register. Finally, we used the linear
Feedback Shift Register as the random number
generator. It is fast and so simply. Its operation lies
on the ‘XOR’ gate. It takes the last two bits and
pass them through the gate and the result is
inserted as input to the generator. In addition, the
linear Feedback Shift Register is initiated at one.
3.3 Overview Of MS-C# 2012.NET
C# [16] is a modern, general-purpose, object-
oriented programming (OOP) language developed
by Microsoft and approved by ECMA and ISO.
OOP is an approach to software development in
which the structure of the software is based on
objects interacting with each other to accomplish a
task. This interaction takes the form of messages
passing back and forth between the objects. In
response to a message, an object can perform an
action. An object is a structure for incorporating
data and the procedures for working with that data.
For example, if you were interested in tracking
data associated with products in inventory, you
would create a product object that is responsible
for maintaining and working with the data
pertaining to the products.
C# is widely used professional language for
several reasons such that: Modern, general-purpose
programming language, Object oriented,
Component oriented, Easy to learn, Structured
language, it produces efficient programs, it can be
compiled on a variety of computer platforms and
it’s a Part of .Net Framework. C# application types
include Windows Console applications, Windows
Forms applications, ASP.NET Web applications,
ASP.NET Web Service applications, Smart Device
applications, ActiveX applications, and setup and
deployment applications.
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
40
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
4. SYSTEM ANALYSIS AND EVALUATION
In this research, we provide a software
implementation for the RSA architecture given in
figure 4. There are many approaches and
programming languages that can be used for this
purpose. In this work, we have used the C#.NET
programing language (part of Visual Studio 2013
suite) due to its proven efficiency and ease of
interaction between objects [16]. The main
window of our simulator is shown in figure 5 (a).
Figure 5. (a ) RSA Software Ma in M enu (b) All Pro gr am Compo nents
Figure 6. Sa mp le Simulation Run s
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
41
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
Table 2: Time characteristic of encryption using C#.NET for 32-bit RSA
Size (Byte)
27
51
81
102
150
200
303
Time (ms)
2
8
20
33
83
170
490
The simulation program of 32-bit RSA has been
examined for different text message sizes as shown
in the table 2 along with figure 7. The simulation
runs showed that encryption/decryption of small
message sizes (10-200 bytes) has recorded a lowest
delay time with average delay time 10 170 ms.
Comparing these results with our similar design
using Arduino microcontroller in [9 will give
better delay times for small size messages as
Arduino based design relate between the message
size and the required time for
encryption/decryption linearly due to the block
size of the encryption that used in this version.
However, for larger block sizes, FPGA design in
[8] is better option for hardware based RSA
coprocessor.
Figure 7. Time characteristic of encryption using C#.NET
for 32-bit RSA
5. CONCLUSIONS AND FUTURE WORKS
In conclusion, a software program of RSA
cryptographic system was successfully simulated
via Ms. C# 2013.NET.Also, many other design set
algorithms are simulated separately as independent
components such as primality tester and modular
exponentiation. The simulation was tested for 32-
bit encryption and decryption keys. We observed
that the message that will be encrypted should be
limited to the range of the modulus. This implies
that the range should begin from zero to the
modulus minus one. Moreover, the attacks pointed
out previously provided a clear idea on how to
support and strengthen the structure of the RSA
functions. In future, this design can be stretched
out to higher encryption and decryption bit-size by
revising and modifying the utilized algorithms.
Also, ciphering audio and video data public key
cryptography can be performed along with
Steganography. Moreover, several public and
symmetric key cryptographic algorithms could be
simulated and verified using the design sets
mentioned in this project; such as: El-Gamal
Cryptosystem, Diffie-Helman Key exchange
system, Data Encryption Standard (DES),
Advanced Encryption Standards (AES), and many
others.
REFERENCES
1. Security. (2001). RSA poses $200,000 crypto.
John Leyden challenge. Retrieved from:
http:// www.theregister.com
2. D. Boneh. (1999). Twenty Years of Attacks
on the RSA Cryptosystem. Notices of the
American Mathematical Society (AMS), Vol.
46, No. 2, pp. 203-213.
3. V. Karatsiolis, L. Langer, A. Schmidt, E.
Tews and A. Wiesmaier. (2010).
Cryptographic Application Scenarios.
Darmstadt, Germany.
4. S. Rao and D. Tse. (2009). Discrete
Mathematics and Probability Theory. Note 5
of CS 70 Discrete Mathematics and
Probability Theory.
5. W. Trappe. (2006). Introduction to
Cryptography with Coding Theory. 2nd
edition. Pearson Education. Inc. pp 10-11, 76-
78, 81-82.
6. A.J. Menezes, P.C.V. Oorschot and S.A.
Vanstone. (1996). Handbook of Applied
Cryptography”, CRC Press, Boca Raton,
Florida.
7. M. D. Ercegovac and T. Lang. (2004). Digital
Arithmetic. Morgan Kaufmann Publishers,
Elsevier, vol.1, p.p.51-136.
8. Q. Abu Al-Haija, M. Smadi, M. Al-Ja’fari and
A. Al-Shua’ibi (2014). Efficient FPGA
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
42
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
Implementation of RSA Coprocessor Using
Scalable Modules. 9th International
Conference on Future Networks and
Communications (FNC-2014), by Elsevier,
Ontario, Canada.
9. Q. Abu Al-Haija, M. Al Tarayrah, H. Al-
Qadeeb and A. Al-Lwaimi. (2014). A Tiny
RSA Cryptosystem Based on Arduino
Microcontroller Useful for Small Scale
Networks. International Symposium on
Emerging Inter-networks, Communication
and Mobility (EICM 2014), Elsevier, Canada.
10. K. Thorsten. (2006). On polynomial selection
for the general number field
sieve. Mathematics of Computation. 75 (256):
20372047. doi:10.1090/S0025-5718-06-
01870-9.
11. M. Knezevic, F. Vercauteren, and I.
Verbauwhede. (2010). Faster Interleaved
Modular Multiplication Based on Barrett and
Montgomery Reduction Methods. IEEE
Transactions on Computers, Vol. 59 (12).
12. ASCII Coding Tables. Retrieved from:
http://www.asciitable.com
13. Q. A. Al-Haija, N. A. Jebril, and A. Al-
Shua'ibi. (2015). Implementing variable
length Pseudo Random Number Generator
(PRNG) with fixed high frequency (1.44
GHZ) via Vertix-7 FPGA family. Network
Security and Communication Engineering,
CRC press, Pp. 105 -108.
14. R. Shams, F. H. Khan, U. Jillani and M.
Umair. (2012). Introducing Primality Testing
Algorithm with an Implementation on 64 bits
RSA Encryption Using Verilog. Engineering
& Technology, vol. 2(1), pp. 12-17.
15. Q. A. Al-Haija, M. Al-Ja'fari and M. Smadi.
(2016). A comparative study up to 1024 bit
Euclid's GCD algorithm FPGA
implementation and synthesizing. 5th
International Conference on Electronic
Devices, Systems and Applications (ICEDSA),
Ras Al Khaimah, United Arab Emirates, pp.
1-4.
16. D. Clark. (2011). Beginning C# Object-
Oriented Programming|: 1st edition. APRESS
publishers, 2011
International Journal of Cyber-Security and Digital Forensics (IJCSDF) 6(1): 35-43
43
The Society of Digital Information and Wireless Communications (SDIWC), 2017 ISSN: 2305-0012
... In recent years, advanced synthesis and design have been achieved in the development of new telecommunication and data sharing technologies such as mobile-based applications, cloud computing, and Internet of things (IoT) [6]. This, in turn, has raised the demand to develop secure communication over insecure channels for different applications. ...
... Many types of research have been conducted to ensure data security for many shapes of shared data. For example, the software-based Rivest-Shamir-Adleman (RSA) cryptosystem which is used to encrypt and decrypt text messages prior communicating them by sender and receiver [6]. On the other hand, there is a need for portable email version along with the one offered by KFU official website which enables the user to access the KFU email by the web-based links. ...
Preprint
Full-text available
Nowadays, the development of innovative technology has emerged, particularly in mobile phones. People are often using smartphones daily in almost every aspect of their lives to use different applications and share various types of information quickly while moving anywhere. Mobile's email applications are classified as one of the important applications to communicate ubiquitously since the use of email is considered as the best formal way for communication inside any organization. Due to this importance of e-mail and the daily needs of using it especially for faculty members and students, we propose to develop a mobile application for KFU E-Mail system with secure data transmission. The proposed application has encryption and decryption features to ensure security. As a result, the students and faculty members can communicate via the email application in a safer and more comfortable way.
... In recent years, advanced synthesis and design have been achieved in the development of new telecommunication and data sharing technologies such as mobile-based applications, cloud computing, and Internet of things (IoT) [6]. This, in turn, has raised the demand to develop secure communication over insecure channels for different applications. ...
... Many types of research have been conducted to ensure data security for many shapes of shared data. For example, the software-based Rivest-Shamir-Adleman (RSA) cryptosystem which is used to encrypt and decrypt text messages prior communicating them by sender and receiver [6]. On the other hand, there is a need for portable email version along with the one offered by KFU official website which enables the user to access the KFU email by the web-based links. ...
Article
Full-text available
Nowadays, the development of innovative technology has emerged, particularly in mobile phones. People are often using smartphones daily in almost every aspect of their lives to use different applications and share various types of information quickly while moving anywhere. Mobile's email applications are classified as one of the important applications to communicate ubiquitously since the use of email is considered as the best formal way for communication inside any organization. Due to this importance of e-mail and the daily needs of using it especially for faculty members and students, we propose to develop a mobile application for KFU E-Mail system with secure data transmission. The proposed application has encryption and decryption features to ensure security. As a result, the students and faculty members can communicate via the email application in a safer and more comfortable way.
Conference Paper
Full-text available
In this paper, we are implementing fast pseudo random number generator (PRNG) based on linear feedback shift register (LFSR) method with variable datapath sizes (8 bit –to- 1024 bit). The design was synthesized using Xilinx Virtex 7 chip family with target device XC7VH290T-2-HCG1155 in terms of maximum frequency and area of the FPGA design. As a result, a fixed maximum frequency of 1436.678MHz for different datapaths has been achieved. Thus, the results conformed a linear relationship between area and bit length. Consequently, the obtained results are attractive for many embedded system applications such as cryptographic algorithm design.
Conference Paper
Full-text available
RSA Cryptography is a well-known example of public key cryptographic algorithms that involves robust encryption/decryption processes. In this paper, a microcontroller based RSA is designed and proposed. Arduino Mega2560R3 microcontroller supported with external memory and a screen touch LCD as well as a double keypad has been used under the programming of C language to implement the proposed RSA coprocessor with 32 bits. It was found that the trade of between message size and the encryption time can be drawn as a liner relationship according to the block size of the encryption phase. However, such design with a MCU provided with a small solar cell (and off course with a backup battery) as well as small block sizes is considered useful for the use in wireless sensor network (WSN) applications due to the ease of connecting the MCU to the WSN which as well avoid the processing time of encryption/decryption processes that could be executed by the MCU instead of the life limited sensors. © 2014 The Authors. Published by Elsevier B.V. Peer-review under responsibility of the Program Chairs of FNC-2014.
Conference Paper
Full-text available
RSA Cryptosystem is considered the first practicable secure algorithm that can be used to protect information during the communication. The significance of high security and efficient implementations of RSA have formed the base of many cryptographic engineering researches. In fact, the implementation of RSA Cryptosystem is heavily based on modular arithmetic and exponentiation involving large prime numbers. In this paper, we propose an efficient FPGA design and architecture for RSA cryptosystem using ALTERA FPGA Hardware Kit. The proposed design comprises six levels: random two prime numbers, parallel multiplication of the prime numbers and their decremented values, get encryption key, get decryption key, encryption and decryption levels. As the modular multiplication is considered as the heart of RSA computations, Interleaved Algorithm was particularly chosen as an efficient solution to speed up the modular multiplication. The experimental part of this work has been synthesized for both ALTERA Cyclone IV EP4CE115F29C7 and VERTIX VII VC707 FPGA kits and resulted in a maximum frequencies of 15.725 MHz, 17.629 MHz respectively. These findings make our design comparable and a good choice for efficient RSA Cryptoprocessor design. The results for the FPGA implementation for EC design using these curves is also proposed in this paper. © 2014 The Authors. Published by Elsevier B.V. Peer-review under responsibility of the Program Chairs of FNC-2014.
Article
Full-text available
A new structure to develop 64-bit RSA encryption engine on FPGA is being presented in this paper that can be used as a standard device in the secured communication system. The RSA algorithm has three parts i.e. key generation, encryption and decryption. This procedure also requires random generation of prime numbers, therefore, we are proposing an efficient fast Primality testing algorithm to meet the requirement for generating the key in RSA algorithm. We use right-to-left-binary method for the exponent calculation. This reduces the number of cycles enhancing the performance of the system and reducing the area usage of the FPGA. These blocks are coded in Verilog and are synthesized and simulated in Xilinx 13.2 design suit.
Article
Full-text available
The applications that use cryptography as well as the em-ployed devices pose various requirements and constraints. These have to be considered during the development or analysis of cryptographic algorithms that are secure and practicable. This paper presents several real-world cryptographic applications. It also discusses typical crypto-graphic devices like smartcards. We provide therefore necessary data for evaluating the applicability of cryptographic algorithms.
Article
Beginning C# Object-Oriented Programming brings you into the modern world of development as you master the fundamentals of programming with C# and learn to develop efficient, reusable, elegant code through the object-oriented programming (OOP) methodology. Take your skills out of the 20th century and into this one with Dan Clark's accessible, quick-paced guide to C# and object-oriented programming, completely updated for .NET 4.0 and C# 4.0. As you develop techniques and best practices for coding in C#, one of the world's most popular contemporary languages, you'll experience modeling a “real world” application through a case study, allowing you to see how both C# and OOP (a methodology you can use with any number of languages) come together to make your code reusable, modern, and efficient. With more than 30 fully hands-on activities, you'll discover how to transform a simple model of an application into a fully-functional C# project, including designing the user interface, implementing the business logic, and integrating with a relational database for data storage. Along the way, you will explore the .NET Framework, the creation of a Windows-based user interface, a web-based user interface, and service-oriented programming, all using Microsoft's industry-leading Visual Studio 2010, C#, Silverlight, the Entity Framework, and more.
Conference Paper
In this paper, we are targeting Altera Cyclone IV FPGA family to design an efficient GCD (Greatest Common Divisor) coprocessor based on Euclid's method with variable datapath sizes. The design was synthesized using seven chip technologies in terms of maximum frequency and critical path delay of the coprocessor. As a result, the comparison between different FPGA devices shows that Xilinx devices XC7VH290T-2-HCG1155 as well as XC7K70T-2-FBG676 recorded the best values of maximum frequencies of 243.934 MHz down to 39.94 MHz for 32 bit and 1024 bit datapaths, respectively. Finally, the comparison with previous designs illustrates that the proposed coprocessor design has a throughput efficiency of even two times faster than other designs. Hence, the proposed work will help the FPGA system designers to better utilize the hardware performance for many applications such as cryptosystems design.
Article
From the Publisher: A valuable reference for the novice as well as for the expert who needs a wider scope of coverage within the area of cryptography, this book provides easy and rapid access of information and includes more than 200 algorithms and protocols; more than 200 tables and figures; more than 1,000 numbered definitions, facts, examples, notes, and remarks; and over 1,250 significant references, including brief comments on each paper.
Book
Digital arithmetic includes all aspects of the specification, analysis, and implementation of arithmetic operations (±, ×, ÷, , etc.) in digital systems such as general-purpose processors, digital signal processors, graphics, and various embedded systems. These aspects include number systems, arithmetic algorithms, hardware implementation of arithmetic operators (adders, multipliers, dividers), elementary function implementation, and floating-point arithmetic. The implementors of arithmetic units and systems must compromise between various objectives: speed, area (cost), power consumption, accuracy, reusability… hence, no “best solutions” exist in general, but solutions that can be significantly different depending on whether you are designing a circuit for a cellular phone or for a supercomputer.