23.07.2013 Views

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

SHOW MORE
SHOW LESS

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).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!