Data Encryption Based On Protein Synthesis - Nguyen Dang Binh
Data Encryption Based On Protein Synthesis - Nguyen Dang Binh
Data Encryption Based On Protein Synthesis - Nguyen Dang Binh
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Data</strong> <strong>Encryption</strong> <strong>Based</strong> <strong>On</strong> <strong>Protein</strong> <strong>Synthesis</strong><br />
S. R. Alisobhani, F. Mehrabanpoor, Y. Nosrati and B. Sadeghi B.<br />
Faculty of Information Technology, Institute for Advanced Studies in Basic Sciences (IASBS), Gavazang,<br />
Abstract - <strong>Based</strong> on trial and error nature has arrived<br />
to the best possible solutions, and throughout the history,<br />
mankind has found solutions to his problems with an eye<br />
on this source of valuable insights. <strong>On</strong>e of these recent<br />
insightful discoveries is the DNA in nuclei of living<br />
organisms’ cells. DNA holds vast amounts of evolutional<br />
information in the form of coded chemical components<br />
.AS such, it could be used as a mechanism to encode and<br />
transfer information. With respect to this aspect of DNA,<br />
the methodology proposed in this article is on the grounds<br />
of protein biosynthesis in living organs’ cells .In addition,<br />
a combination of existing methodologies complementary<br />
to our method is represented.<br />
In this system, based on data encoding in the DNA,<br />
initially, basic components of data are encoded and using<br />
Huffman Code and exiting methods of fingerprinting,<br />
encoded data are transferred to the destination.<br />
Keywords: Cryptography, DNA, Huffman Code,<br />
<strong>Protein</strong> <strong>Synthesis</strong>, fingerprint<br />
1 Introduction<br />
Generally speaking, Cryptography is the method<br />
of protecting information by transforming the<br />
messages into a form that an eavesdropper is<br />
unable to understand it, for the purpose of secure<br />
transmission [4, 7]. <strong>On</strong>ly the ones who posses a<br />
secret key can transform it back to the information<br />
intended to be transmitted. <strong>On</strong> the other hand,<br />
<strong>Encryption</strong> could be considered as a process of<br />
scrambling the plain text (information intended to be<br />
transmitted) by use of an algorithm and a secret key.<br />
This results in the production of an encrypted<br />
message, referred to as cipher text. The reverse<br />
process, intended to make the encrypted information<br />
readable again, is referred to as decryption<br />
(i.e. deciphering). This is the goal of encryption to<br />
make sure that adversaries are not capable of<br />
decrypting the information without having the secret<br />
key [4, 7].Concerning this objective, this article<br />
proposes an encryption algorithm based on the<br />
mechanism through which proteins are generated<br />
within the cellular environment. Initially, the process<br />
of protein biosynthesis, key players, and major steps<br />
are briefly explained as a required concept. Then,<br />
two coding schemes are introduced with binary and<br />
alphabetic outputs. For alphabetic output, Huffman<br />
coding as a method of data compression and<br />
Zanjan, Iran.<br />
encryption to binary digits is dealt with next [1].<br />
Lastly, to enhance algorithm efficiency for a secure<br />
transmission, fingerprinting is applied and explained.<br />
2 Required Concepts of <strong>Protein</strong><br />
Biosynthesis<br />
In terms of structure, proteins are of high<br />
molecular weight and consist essentially of<br />
combinations between carboxyl and amino groups of<br />
amino acids forming a linear structure [3].<br />
These polymers of amino acids are joined by<br />
peptide bonds. Twenty different amino acids make<br />
up essentially all proteins on earth. The fundamental<br />
structure of each of these amino acids comprises of<br />
a central carbon (Alpha carbon) bonded to<br />
a hydrogen atom (H), carboxyl group (-COOH), an<br />
Amino group (-NH2), and a unique side chain or<br />
R-group. This is the side chain of the amino acid that<br />
gives it a unique characteristic distinguishing it from<br />
others. Besides, the side chain is the determinant of<br />
the chemical characteristics of the amino acid. The<br />
peptide bonds -responsible for joining the molecule<br />
together- covalently bond the amino acids in the<br />
chain. The carboxyl group of one amino acid with<br />
amino group of the next amino acid forms the<br />
peptide bond. This is a type of condensation reaction<br />
resulting in the loss of a molecule of water [5].<br />
The major regard of this article to propose<br />
an encryption algorithm is aimed at protein<br />
biosynthesis, a process through which proteins in<br />
cellular environment are produced. However, central<br />
to protein biosynthesis is the Central Dogma of<br />
Molecular Biology [5] which explains the transcription<br />
of DNA to RNA to <strong>Protein</strong>, three steps after having<br />
DNA replicated:<br />
1. The DNA codes for the production of<br />
messenger RNA (mRNA) during transcription.<br />
2. In eukaryotic cells, the mRNA is processed<br />
(essentially by splicing) and migrates from the<br />
nucleus to the cytoplasm.(We will not cover this step<br />
in this article)<br />
3. Messenger RNA carries coded information<br />
to ribosome. The ribosome "reads" this information<br />
and uses it for protein synthesis. This process is<br />
called translation.
For For this this process process to to to begin, begin, begin, instructions instructions or<br />
or<br />
blueprints blueprints blueprints are are are required. required. These These instructions instructions instructions could could be<br />
be<br />
found on DNA. Deoxyribonucleic Deoxyribonucleic acid (DNA)<br />
(DNA) is a<br />
nucleic nucleic nucleic acid acid acid that that that contains contains the the genetic genetic genetic instructions<br />
instructions<br />
used used used in in in the the the development development development and and functioning functioning of of all<br />
all<br />
known known known living living living organisms. organisms. The The DNA DNA DNA is is situated situated situated in in in the<br />
the<br />
the<br />
nucleus, nucleus, organized organized into into chromosomes.<br />
chromosomes.<br />
2.1 DNA<br />
The The main main role role of of DNA DNA molecules molecules is the long long-term long<br />
term<br />
storage e of of information information needed needed to to construct other<br />
other<br />
components components components of of cells, cells, cells, such such as as as proteins proteins proteins and and and RNA<br />
RNA<br />
RNA<br />
molecules. molecules. molecules. The The The DNA DNA DNA that that makes makes makes up up up the the the human<br />
human<br />
genome genome genome can can can be be be subdivided subdivided subdivided into into into information information bytes<br />
bytes<br />
bytes<br />
called genes [5]; ; each each gene gene encodes encodes a unique<br />
unique<br />
protein protein that that performs a specialized special<br />
special ized function in in the<br />
the<br />
cell. cell. cell. <strong>On</strong> <strong>On</strong> the the the other other other hand, hand, hand, other other DNA DNA DNA sequences sequences sequences have<br />
have<br />
have<br />
structural structural structural purposes, purposes, or or or are are involved involved in in in regulating regulating regulating the<br />
the<br />
the<br />
use use of of this this genetic genetic information.<br />
information.<br />
In In terms terms of of structure, DNA is a long polymer<br />
polymer<br />
made made made from from repeating repeating repeating units units units called called called nucleotides. nucleotides. nucleotides. In<br />
In<br />
living ving organisms, organisms, DNA DNA does does not not usually usually exist as a<br />
single single single molecule, molecule, but but instead instead as as a a tightly-associated<br />
tightly<br />
tightly associated<br />
pair of molecules. Two wo long strands of the DNA<br />
entwine entwine entwine like like vines, vines, in in in the the shape shape shape of of of a a a double double double helix<br />
helix<br />
helix<br />
[5, [5 8]. . The nucleotide nucleotide repeats, repeats<br />
contain containing both the<br />
segment segment segment of of of the the the backbone backbone backbone of of of the the the molecule, molecule, molecule, which<br />
which<br />
holds holds holds the the the chain chain together, together, together, and and a a a base, base, base, which which which interacts<br />
interacts<br />
interacts<br />
with with with the the the other other other DNA DNA DNA strand strand in in the the the helix. helix. In In general, general, a<br />
a<br />
base base base linked linked linked to to to a a sugar sugar is is called called a a a nucleoside nucleoside nucleoside and and and a<br />
a<br />
a<br />
base base base linked linked to to a a sugar sugar and and and one one or or more more phosphate<br />
groups groups is is called called a a nucleotide.<br />
nucleotide.<br />
The The DNA DNA double double helix helix is is is stabilized stabilized by by hydrogen<br />
bonds bonds bonds between between between the the bases bases attached attached attached to to the the the two<br />
two<br />
two<br />
strands. strands. strands. The The The four four four bases bases found found found in in in DNA DNA DNA are are are adenine<br />
adenine<br />
(abbreviated (abbreviated (abbreviated A), A), A), cytosine cytosine cytosine (C), (C), guanine guanine (G) (G) (G) and<br />
and<br />
and<br />
thymine th (T) ) [5, 8]. 8] Each ach type type of of base on one one strand<br />
forms forms forms a a a bond bond bond with with with just just just one one type type of of of base base on on on the the the other<br />
other<br />
other<br />
strand. strand. strand. This This is is called called complementary complementary complementary base base pairing<br />
[5, 5, 8], 8] , , with with A A bonding bonding only only to to T, T, and and C C bonding bonding only<br />
to to to G. G. This This arrangement arrangement arrangement of of two two two nucleotides nucleotides nucleotides binding<br />
binding<br />
together across the th<br />
e double double helix helix is called a a base base pair<br />
pair<br />
[5, 8]. 8] Due to a weak bond between base pairs, DNA<br />
strands strands strands could could could be be pulled pulled apart apart like like a a a zipper. zipper<br />
zipper<br />
2.2 CODONS<br />
As As previously previously mentioned, mentioned, proteins proteins are are assembled<br />
assembled<br />
from from from amino amino acids acids acids using using using information information encoded encoded encoded in<br />
in<br />
in<br />
genes. genes Each Each protein protein has has has its its its own unique amino acid<br />
sequence sequence sequence that that that is is specified specified by by the the nucleotide<br />
nucleotide<br />
nucleotide<br />
sequence sequence sequence of of of the the the gene gene gene encoding encoding encoding this this this protein. protein. protein. The<br />
The<br />
genetic genetic code code is is a a set set of of three-nucleotide three<br />
three nucleotide sets sets called<br />
called<br />
CODONS and each three-nucleotide three<br />
nucleotide combination<br />
combination<br />
stands for an amino acid, for example AUG AUG stands<br />
for methionine [5, 8].<br />
There are 4 4 bases bases in 3<br />
3-letter combinations; there<br />
are 64 64 possible codons codons ( (4 (<br />
encode the twenty standard amino acids, giving<br />
most amino acids more than one possible codon.<br />
There are also three 'stop' or 'nonsense' codons<br />
signifying the end of the the coding region<br />
are the TAA, TGA and TAG codons.<br />
Figure 2. 2<br />
3 letter combinations; there<br />
combinations). These<br />
These<br />
encode the the twenty twenty standard amino acids, giving<br />
most amino acids more than one possible codon.<br />
There are also three 'stop' or or 'nonsense' 'nonsense' codons<br />
signifying the end of the coding region [5, 8]; ; these<br />
are the TAA, TGA and TAG codons. This is shown in<br />
Figure1 Figure1: : The chemical structure structure of DNA.<br />
Hydrogen bonds bonds bonds are are shown shown as as as dotted dotted lines.<br />
lines.<br />
Figure 2: the combination of 4 base pairs in<br />
codons<br />
2.3 Transcription<br />
DNA transcription transcription is is a a process process process that that involves involves the<br />
the<br />
transcribing of genetic information, information, i.e. i.e. the codons codons of<br />
a gene from from DNA DNA to to RNA<br />
RNA [5]. . Simply stated, in<br />
transcription an an an mRNA mRNA mRNA template, template, template, encoding encoding encoding the<br />
the<br />
the<br />
sequence of of of the the the protein protein protein in in in the the the form form form of of of a a trinucleotide<br />
trinucleotide<br />
code, is is transcribed transcribed from from from the the genome genome to to to provide provide provide a<br />
a<br />
a<br />
template for for for translation. translation. Transcription Transcription Transcription copies copies the<br />
the<br />
template from from from one one one strand strand of of the the the DNA DNA DNA double double double helix,<br />
helix,<br />
helix,<br />
called the template template strand<br />
strand [5, 8].
Like DNA, RNA is composed of nucleotide bases.<br />
RNA however, contains the nucleotides adenine,<br />
guanine, cytosine and uricil (U) [5]. When RNA<br />
polymerase transcribes the DNA, guanine joins with<br />
cytosine and adenine joins with uricil. RNA<br />
polymerase moves along the DNA until it reaches a<br />
terminator sequence. At that point, RNA polymerase<br />
releases the mRNA polymer and detaches from the<br />
DNA [5, 8].<br />
The outline of this stage involves following steps:<br />
• DNA unwinds.<br />
• RNA polymerase recognizes a specific<br />
base sequence in the DNA called a promoter and<br />
binds to it. The promoter identifies the start of a<br />
gene, which strand is to be copied, and the direction<br />
that it is to be copied.<br />
• Complementary bases are assembled<br />
(U instead of T).<br />
• A termination code in the DNA indicates<br />
where transcription will stop.<br />
The mRNA produced is called an mRNA<br />
transcript.<br />
2.4 Translation<br />
The next step is to produce a chain of amino<br />
acids based on the sequence of nucleotides in the<br />
mRNA. The nucleotide sequence of an mRNA<br />
molecule is read from one end of mRNA to the other,<br />
in groups of three successive bases previously<br />
named codons. In the cytoplasm, mRNA combines<br />
with one or more ribosomes. Ribosomes act as<br />
catalysts to assemble individual amino acids into<br />
polypeptide chains. Ribosomes contain a small and<br />
a large subunit. Each subunit contains rRNA of<br />
varying length and a set of proteins. <strong>On</strong>e portion of<br />
the mRNA molecule attaches to the smaller subunit<br />
and a tRNA with its amino acid attaches to the other<br />
subunit, thus the codon of the mRNA attracts a<br />
complementary anticodon on the tRNA. This<br />
codon-anticodon matching brings a specified amino<br />
acid into position [5].<br />
After pairing with mRNA, the tRNA amino-acid is<br />
held in a vice-like grip on the ribosome’s larger<br />
subunit. Then ribosome moves on to the new<br />
location along the mRNA to repeat the same process<br />
again. Second tRNA now approaches the ribosome<br />
and pairs its anti codon with the second codon of<br />
mRNA. Thus two tRNA molecules and their amino<br />
acids stand next to one another on the mRNA. In a<br />
fraction of a second these two amino acids are<br />
joined together by a special enzyme to form a<br />
dipeptide. Now the first tRNA is freed and moves<br />
back to the cytoplasm leaving the amino acid<br />
attached to the second amino acid. Ribosome, then,<br />
proceeds by moving along the mRNA and doing the<br />
same process again until it reaches the final one or<br />
two codons of the mRNA which are chain<br />
terminators or stop signals. The polypeptide bond is<br />
formed by removal of water between amino acids.<br />
Now the polypeptide is released from ribosome and<br />
will coil to yield the functional protein [5].<br />
3. <strong>Data</strong> <strong>Encryption</strong><br />
From the protein synthesis process, three factors<br />
are taken for granted for proposed encryption<br />
algorithm. Amino acids represent our basic units of<br />
data, combinations of these basic units produce the<br />
codes, which is codon in protein synthesis, and<br />
codon tables serve the purpose of coding table (refer<br />
to figure2).<br />
These concepts are expanded in the following<br />
lines.<br />
3.1 <strong>Data</strong> Unit<br />
Digital computers operate zeroes and ones,<br />
meaning that entire data that computers are<br />
processing to surprise human race, are enormous<br />
amounts of information in the form of binary digits.<br />
However, in order to construct coding tables, bits<br />
cannot represent appropriate data units due to their<br />
not having enough semantic weight. Instead, an<br />
alternative is to consider an array of 8 bits, which is a<br />
“Bite”. The advantage of this option is that we are<br />
dealing with 256 different states rather than 2 states<br />
of the former scheme. By encrypting these Bites<br />
entire data will be encoded.<br />
3.2. Coding <strong>Data</strong> Units and Table of Codes<br />
With regard to figure 2, the combinations of four<br />
elements (i.e. U, C, A, G) and 3 positions provides<br />
4 3 =64 states from which almost twenty amino acids<br />
are produced while more than one codon for some<br />
unit (amino acid) is used. To enhance the coding<br />
efficiency, appropriate number of elements should<br />
be combined together in appropriate number of<br />
positions to cater for n number of states. Two<br />
methods are suggested differing in their output:<br />
In the first method every two bits are<br />
assumed one element. Because 2 bits account for 4<br />
states (i.e. 00, 01, 10, 11) there are 4 different 2 bit<br />
elements in one bite. So 4 4 =256 states. Figure 3<br />
illustrates this coding scheme.<br />
In the second method, similar to the<br />
previous scheme, there are 4 elements in one bite;<br />
the difference, however, is that in the second method<br />
each of 00, 01, 10, 11 are assigned to an alphabetic<br />
letter. Simply stated, the outcome is the<br />
combinations of 4 letters. Again 4 4 =256.(we will refer<br />
to this mechanism throughout the paper as second<br />
method) Figure 4 illustrates this coding scheme.
Figure 3: Illustration of first method - <strong>On</strong>e Bite of<br />
data is translated to one Bite of code.<br />
Figure 4: Illustration of second method - <strong>On</strong>e Bite<br />
of data is translated to a string.<br />
In Figures 5-a, b, these two coding methods are<br />
compared in term of their coding structure.<br />
Figure 5-a: indicates the table of unique codes<br />
based on first method.<br />
Elements including: 00, 01, 10 and 11.<br />
Figure 5-b: indicates the table of unique codes<br />
based on second method.<br />
Elements including: A, H, K and M<br />
3.3 The transmission<br />
Since data communication in digital systems is in<br />
the form of 0 and 1, the first method well complies<br />
with these communication channels. However,<br />
because the second method produces the alphabetic<br />
outputs rather than binary digits, additional encoding<br />
is employed to transform alphabets to binary system<br />
while improving security. This is carried out by<br />
Huffman coding.<br />
4 Required background of Huffman<br />
Code<br />
Huffman Coding is a lossless method of<br />
compressing data and a form of entropy encoding<br />
[1, 6]. Lossless data compression is an algorithm<br />
where original data can be reconstructed from the<br />
compressed data. Entropy encoding is lossless data<br />
compression which assigns codes to symbols with<br />
the length of each codeword proportional to the<br />
frequency of that symbol [4, 7]. Specifically Huffman<br />
codes are variable-length codes; shorter codeword<br />
are assigned to symbols with the highest frequency.<br />
This has an advantage over fixed-length codes as<br />
the average overall bits produced after encoding the<br />
data using variable-length codes, is fewer than<br />
encoding the same data using fixed-length codes.<br />
4.1 Encoding using Huffman Tree<br />
The technique works by creating a binary tree of<br />
nodes. This is done first by considering each symbol<br />
to be encoded as a single tree, each consisting of<br />
a single node. Each node is shown by the frequency<br />
of its symbol. The trees which sum of their root<br />
nodes is the least total frequency among other trees<br />
are selected, “producing” the sub trees of a new root<br />
which is the sum of the frequencies of the sub trees.<br />
The sub trees are then removed from the forest.<br />
This process is recursive and continues until only<br />
one tree -The Huffman Encoding Tree- remains.<br />
Each level is represented using one bit code, 0 or 1.<br />
Classically a value of 0 is associated with an edge to<br />
any left child and a value of 1 with an edge to any<br />
right child .Thus the most frequent symbols’ codes<br />
have fewer bits as they are nearer to the root [1].<br />
There are two variations for constructing Huffman<br />
codes: arbitrary and right-heavy Huffman coding. In<br />
the former, after combining two least frequent<br />
symbols as sub trees of the new root, the decision is<br />
arbitrary as to assign which sub tree as the right or<br />
left child of the root. However in the latter algorithm<br />
this is always the sub tree having greater frequency<br />
assigned as the right child. “By concatenating the<br />
labels associated with the edges that make up the<br />
path from the root to a leaf, we get a binary string.<br />
Thus the mapping is defined [1].”
4.2 Decoding the Huffman code<br />
In Huffman trees each symbol is a leaf which<br />
results in that Huffman codes have prefix property.<br />
In codes with prefix property, no codeword is the<br />
prefix of any other codeword in the set. The<br />
decoding is done by taking the root of the Huffman<br />
tree and recording 0 if the left child is traversed and<br />
1 if the right child is visited. By reaching a leaf that<br />
symbol’s codeword is recovered.<br />
5 Transmission encryption algorithms<br />
In the section 3.3, we have stated that our second<br />
encoding mechanism requires to be digitized. By<br />
means of Huffman coding, the data could be<br />
compressed and also encrypted for the second time.<br />
With 4 alphabet letters, 256 states are arranged.<br />
This results in the presence of maximum 256<br />
different symbols and consequently the same<br />
maximum number of leaves in each Huffman tree.<br />
As all the possible states of arrangements of Amino<br />
acids might not be used in the data being encrypted,<br />
the number of leaves of each Huffman tree might be<br />
fewer than 256.<br />
Having constructed the Huffman tree, the output<br />
of second method is used for the input of the tree<br />
thus converting the arrays of alphabets into strings of<br />
binary data. But the problem is, the Huffman<br />
encoding tree should also be transmitted along with<br />
the message, reducing the effectiveness of this<br />
algorithm. <strong>On</strong>e typical solution to the problem is to<br />
encode symbols along with their frequencies using<br />
RSA method and transmit them along with the<br />
message. At the receiver’s end, Huffman tree could<br />
be reconstructed from frequencies to decrypt the<br />
message.<br />
The alternative robust solution is to use the binary<br />
image of the recipient’s fingerprint, or specifically the<br />
binary image of his or her minutiae. In the process of<br />
fingerprinting, minutiae are specific points in a finger<br />
image which vary from person to person and also<br />
from finger to finger. After fingerprinting, the number<br />
and locations of minutiae for each finger is recorded<br />
and a binary image is created from this information.<br />
A binary image is defined as an image where each<br />
pixel has 2 possible values, black or white. Therefore<br />
each pixel can be stored in memory by one bit of<br />
information which is 1 if it is black and 0 if it is white<br />
[2].<br />
When the Huffman tree is constructed for<br />
a message, the symbols’ codeword are achieved<br />
which are variable-length codes in a binary form.<br />
Having the binary codeword of each symbol, in the<br />
binary image of the recipient’s minutiae, the image<br />
should be searched to find the adjacent pixels which<br />
form each binary codeword. The addresses or<br />
coordinates of the first set of pixels forming the<br />
binary codeword of each symbol should be recorded<br />
and transmitted along with the message [2, 1].<br />
At the destination, for decrypting the message,<br />
the intended recipient’s fingerprint should be used to<br />
decode the message. The binary image of the<br />
recipient’s minutiae is again used for achieving the<br />
codeword of symbols. This is done by putting<br />
together the information of pixels that their<br />
addresses -or coordinates- are given for each<br />
symbol’s codeword. As the minutiae of each finger of<br />
each individual is likely to be unique, if adversaries<br />
get access to the key, which is the symbols and their<br />
codeword in terms of the recipient’s minutiae<br />
information , it is nearly impossible for them to<br />
decrypt the message as they do not have access to<br />
the fingerprint of the recipient.<br />
6 Conclusion and Future Works<br />
In this paper, after a brief revision of protein<br />
biosynthesis, we used it to introduce an encryption<br />
mechanism with two coding schemes. We have also<br />
taken the advantage of Huffman coding to further<br />
strengthen our method and provide compatibility with<br />
common communication medium. We are working<br />
on other methods to generate keys rather than<br />
minutiae of each finger. Besides, an extended<br />
coding scheme supporting several data types is in<br />
the center of attention.<br />
Acknowledgments<br />
We appreciate insightful instructions and<br />
generous contributions of Dr.R.Gharib and<br />
Mr.A.Abedini from whom we have learned a lot.<br />
References<br />
[1] Thomas H. Cormen, Charles E. Leiserson ,<br />
Ronald L. Rivest , Clifford Stein. Introduction<br />
to Algorithms, Second Edition, The MIT Press<br />
(2001).<br />
[2] A. Farina, Z. M. Kovacs-Vajna, A. Leone,<br />
Fingerprint minutiae extraction from Skeletonized<br />
Binary Images, Pattern Recognition, (1999).<br />
[3] A. C. Guyton, J. E. Hall, Text Book of<br />
medical physiology, ninth edition, W.B. Saunders<br />
Company, 10th edition (2000).<br />
[4] R. W. Hamming, Coding and Information<br />
Theory, Prentice-Hall (1980).<br />
[5] S. Ignacimuthu,S.J. , Basic Bioinformatics,<br />
Alpha Science International Ltd.
[6] M. Mohtashemi, <strong>On</strong> the cryptanalysis of<br />
Huffman Codes-Master Thesis (1992).<br />
[7] A.Tanenbaum, Computer networks, .Fourth<br />
edition, ISBN: 0-13-066102-3.<br />
[8] J.D.Watson , T.A.Baker, S.P. Bell , A.Gann ,<br />
M.Levine, R.Losick, Molecular Biology of the Gene ,<br />
Benjamin Cummings; 5th edition (2003).