• 沒有找到結果。

Molecular Solutions of the RSA Public-key Cryptosystem on a DNA-based Computer

N/A
N/A
Protected

Academic year: 2021

Share "Molecular Solutions of the RSA Public-key Cryptosystem on a DNA-based Computer"

Copied!
15
0
0

加載中.... (立即查看全文)

全文

(1)

DOI 10.1007/s11227-011-0627-z

Molecular solutions of the RSA public-key

cryptosystem on a DNA-based computer

Weng-Long Chang· Kawuu Weicheng Lin · Ju-Chin Chen· Chih-Chiang Wang · Lai Chin Lu · Minyi Guo· Michael (Shan-Hui) Ho

© Springer Science+Business Media, LLC 2011

Abstract The RSA public-key cryptosystem is an algorithm that converts a plain-text to its corresponding cipher-plain-text, and then converts the cipher-plain-text back into its corresponding plain-text. In this article, we propose five DNA-based algorithms— parallel adder, parallel subtractor, parallel multiplier, parallel comparator, and parallel modular arithmetic—that construct molecular solutions for any (plain-text, cipher-text) pair for the RSA public-key cryptosystem. Furthermore, we demonstrate that an

W.-L. Chang (



)· K.W. Lin · J.-C. Chen · C.-C. Wang

Department of Computer Science and Information Engineering, National Kaohsiung University of Applied Sciences, No 415, Chien Kung Road, Kaohsiung 807, Taiwan, R.O.C.

e-mail:changwl@cc.kuas.edu.tw K.W. Lin e-mail:linwc@cc.kuas.edu.tw J.-C. Chen e-mail:joan@csie.ncku.edu.tw C.-C. Wang e-mail:Steven.cc.wang@gmail.com L.C. Lu

Department of Industrial and Management Engineering, National Kaohsiung University of Applied Sciences, No 415, Chien Kung Road, Kaohsiung 807, Taiwan, R.O.C.

e-mail:rachel@cc.kuas.edu.tw

M. Guo

Department of Computer Software, The University of Aizu, Aizu-Wakamatsu City, Fukushima 965-8580, Japan

e-mail:minyi@u-aizu.ac.jp

M.(S.-H.) Ho

Computer Center and Institute of Electrical Engineering, National Taipei University, 151, University Rd., San Shia 237, Taipei County, Taiwan, R.O.C.

(2)

eavesdropper can decode an encrypted message overheard with the linear steps in the size of the encrypted message overheard.

Keywords The RSA public-key cryptosystem· Plain-text · Cipher-text · Biomolecular computing· DNA-based computing

1 Introduction

The RSA public-key cryptosystem [1] is the primary cryptosystem used for security on the Internet and World Wide Web. Feynman [2] first offered molecular computa-tions in 1961, but his idea was implemented for several decades. In 1994, Adleman [3] succeeded in solving an instance of the Hamiltonian path problem in a test tube by handling DNA strands. DNA-based algorithms had been offered to solve many com-putational problems, and these contained satisfiability [4], maximal clique [5], three-vertex-colouring [6], parallelism of three molecular operations by dealing with sev-eral natural questions [7], the energy barrier problem without pseudoknots and tem-porary arcs [8], the optimization problem nucleic acid sequence design [9], the maxi-mum cut problem [10], and the binary integer programming problem [11]. From [12], several circuits that amplify nucleic acid signals were constructed and characterized. One potentially significant area of application for DNA algorithms is the breaking of encryption schemes [13,14]. In [15], they introduced methods for controlling the asymptotic turnover of strand displacement-based DNA catalysts and showed how these could be used to construct linear classifier systems. From [16], the DNA-based algorithms are proposed to perform molecular verification of rule-based systems. From [17–19] based arithmetic algorithms are proposed, and from [20] DNA-based algorithms for constructing DNA databases are also offered.

DES (the United States Data Encryption Standard) is one of the most widely used cryptographic systems. It produces a 64-bit ciphertext from a 64-bit plaintext under the control of a 56-bit key. A cryptanalyst obtains a plaintext and its corresponding ciphertext and wishes to determine the key used to perform the encryption. The most naive approach to this problem is to try all 256 keys, encrypting the plaintext under each key until a key that produces the ciphertext is found and is called the plaintext-ciphertext attack. Adleman and his coauthors [14] provided a description of such an attack using the sticker model of molecular computation. Start with approximately 256 identical ssDNA memory strands each 11,580 nucleotides long. Each memory strand contains 579 contiguous blocks each 20 nucleotides long. As it is appropri-ate in the sticker model, there are 579 stickers—one complementary to each block. Memory strands with annealed stickers are called memory complexes. When the 256 memory complexes have half of their sticker positions occupied at the end of the computation, they weigh approximately 0.7 g and, in solution at 5 g/liter, would oc-cupy approximately 140 ml. Hence, the volume of the 1303 tubes needs be no more than 140 ml each. It follows that the 1303 tubes occupy, at most, 182 L and can, for example, be arrayed in 1 m long and wide and 18 cm deep.

Adleman and his coauthors [14] indicated that at the end of computation for break-ing DES, 256× (56 key bits + 64 ciphertext bits) pairs were generated and processed.

(3)

Adleman and his coauthors [14] also pointed out that this codebook for breaking DES has approximately 263 (8× 1018) bits of information (the equivalent of ap-proximately one billion 1 gigabyte CDs). The actual running time for the algorithm of breaking DES depends on how fast the operations can be performed. If each oper-ation requires 1 day, then the computoper-ation for breaking DES will require 18 years. If each operation requires 1 hour, then the computation for breaking DES will require approximately 9 months. If each operation can be completed in 1 minute, then the computation for breaking DES will take 5 days. Finally, if the effective duration of a step can be reduced to 1 second, then the effort for breaking DES will require 2 hours. While it has been argued that special purpose electronic hardware [14] or massively parallel supercomputers (the IBM Blue Gene/L machine is capable of 183.5 TFLOPS or 183.5× 1012 floating-point operations per second) might be used to break DES in a reasonable amount of time, it appears that today’s most powerful sequential ma-chines would be unable to accomplish the task.

The rest of the paper is organized as follows: in Sect.2, we introduce DNA models of computation proposed by Adleman and his coauthors in detail. In Sect.3, we give a high-level description of our DNA-based algorithm for the encryption function. By breaking this down into submodules in Sect.4, we prove the operation of the various novel algorithms for arithmetic, shifted and comparative operations. In Sect.5, based on our DNA-based algorithm to the encryption function, we also give a high-level de-scription of our DNA-based algorithm for finding the corresponding plain-text from a cipher-text. In Sect.6, we demonstrate that the time complexity of our DNA-based algorithm is cubic on the input size. In Sect.7, we show how the basic operations within our model may be implemented by means of using standard laboratory opera-tions on DNA strands. In Sect.8, we conclude with a brief discussion.

2 Background

In this section, we review the basic structure of the DNA molecule and then discuss available techniques for dealing with DNA that will be used to figure out any (plain-text, cipher-text) pair in the RSA public-key cryptosystem.

2.1 The structure of DNA

From [6,21,22], it is indicated that DNA (deoxyribonucleic acid) encodes the genetic information of cellular organisms. It includes polymerchains, commonly referred to as DNA strands. Strands may be synthesized to order by an automated process. Each strand may be viewed as a sequence of nucleotides, or bases, attached to a sugar-phosphate “backbone.” The four DNA nucleotides are adenine, guanine, cytosine, and thymine, commonly abbreviated to A, G, C, and T, respectively. Each strand has, in light of chemical convention, a 5and a 3end, thus any single strand has a natural orientation. This orientation (and, hence, the notation used) is due to fact that one end of the single strand has a free (i.e., unattached to another nucleotide) 5 phos-phate group, and the other has a free 3 deoxyribose hydroxyl group. The classical double helix of DNA is formed when two separate strands bond. Bonding occurs by

(4)

Fig. 1 DNA denaturing and

annealing

the pairwise attraction of bases; A bonds with T and G bonds with C. The pairs (A, T) and (G, C) are therefore known as complementary base pairs. Double-stranded DNA may be dissolved into single strands (or denatured) by heating the solution to a tem-perature determined by the composition of the strand [6,21,22]. Heating breaks the hydrogen bonds between complementary strands (Fig.1) from [6,23]. Since a G–C pair is joined by three hydrogen bonds, the temperature required to break it is slightly higher than that for an A–T pair, joined by only two hydrogen bonds. This factor must be taken into account when designing sequences to represent computational el-ements. Annealing is the reverse of melting, whereby a solution of single strands is cooled, and allowing complementary strands to bind together (Fig.1) from [6,23]. In double-stranded DNA, if one of the single strands contains a discontinuity (i.e., one nucleotide is not bonded to its neighbor) then this may be repaired by DNA ligase from [6]. This allows us to create a unified strand from several bound together by their respective complements.

2.2 Adleman’s experiment for solution of a satisfiability problem

Adleman and his coauthors [24,25] performed experiments that were applied to, respectively, solve a 6-variable 11-clause formula and a 20-variable 24-clause 3-conjunctive normal form (3-CNF) formula. A Lipton encoding [4] was used to rep-resent all possible variable assignments for the chosen 6-variable or 20-variable SAT problem. For each of the 6 variables x1, . . . , x6, two distinct 15 base value sequences were designed. One represents true (T), xkT, and another represents false (F), xkFfor 1≤ k ≤ 6. Each of the 26 truth assignments was represented by a library sequence of 90 bases consisting of the concatenation of one value sequence for each variable. DNA molecules with library sequences are termed library strands and a combinatorial pool containing library strands is termed a library. The 6-variable library strands were synthesized by employing a mix-and-split combinatorial synthesis technique [24]. The library strands were assigned library sequences with x1at the 5-end and x6at the 3-end (5− x1− x2− x3− x4− x5− x6− 3). Thus, synthesis began by assem-bling the two 15 base oligonucleotides with sequences x6Tand x6F. This process was repeated until all 6 variables had been treated. The similar method also is applied to solve a 20-variable of 3-SAT [25].

(5)

2.3 DNA manipulations

A (test) tube is a set of molecules of DNA (a multiset of finite strings over the alphabet {A, C, G, T}). Given a tube, one can perform the following operations:

1. Separate(T , s, T1, T2). Given a tube T and a short strand of DNA, s, the operation produces two new tubes T1and T2. Tube T1contains all of the molecules of DNA in the tube T which includes s as a sub-strand and tube T2consists of all of the molecules of DNA in the tube T which does not contain s as a substrand.

2. Merge({Ti}). Given any n tubes T1, . . . , Tn, the operation yields Merge(T1, . . . , Tn) =ni=1Ti= T1∪ T2· · · ∪ Tn. This implies that it is to pour any n tubes into one,

without any change in the individual strands.

3. Discard(T ). The operation sets T to be an empty set (T← ∅).

4. Amplify(T ,{Ti}). Given a tube T , the operation produces a number of identical copies, Ti, of tube T , and then discard(T ).

5. Concatenate(s1, s2). Given two strands of DNA, s1and s2, the operation returns a new strand of DNA, comprised of the concatenation of s1and s2. If s1is a null strand of DNA, return s2, and if s2is a null strand of DNA, return s1.

6. Appendhead(T , s). Given a nonempty tube T and a short strand of DNA, s, the operation first creates a null tube, U , and then, in parallel, for each string ti∈ T

finishes the following: U← Merge(U, Concatenate(s, ti))and return U . If T is initially empty, then U contains only s.

7. Detect(T ). The operation returns true if T includes at least one DNA molecule (T = ∅), otherwise returns false.

8. Read. Given a tube T , the operation is used to describe a single molecule, which is contained in tube T . Even if T contains many different molecules each encoding a different set of bases, the operation can give an explicit description of exactly one of them.

3 Our DNA-based algorithm for the encryption function in the RSA public-key cryptosystem

In the RSA cryptosystem [1], the transformation of a plain-text M, whose value is less than the value of n, associated with a public key P= (e, n) is P (M) = Me (mod n). The transformation of a cipher-text C associated with a secret key S = (d, n) is S(C)= Cd (mod n). The encryption function and the decryption function, P (M) = Me (mod n) and S(C)= Cd (mod n), are used to finish encryption and decryption for a message, M. From [1], the following procedure is applied to compute encryp-tion, Me (mod n). Decrypencryp-tion, Cd (mod n), can be performed similarly using d and Cinstead of e and M.

Procedure Encryption(M, e, n)

(1) Let ek−1. . . e0be the binary representation of e

(2) C= 1.

(3) For i= k down to 1

(6)

(3b) If ei−1== 1 then

(3c) Set C to the remainder of C∗ M when divided by n. EndIf

EndFor

(4) Halt and now C is the encrypted form of M. EndProcedure

Assume that the length of the public-key, e, in the RSA public-key cryptosystem is k bits, and it can be represented as a k-bit binary number, ek−1. . . e0, where the value

of each bit ei is either 1 or 0 for 0≤ i ≤ k − 1. For every bit ei, two distinct 15 base

value sequences are designed to respectively represent the value “0” for ei and the

value “1” for ei. For the sake of convenience in our presentation, assume that ei 1

denotes the value of ei to be 1 and ei 0 defines the value of ei to be 0. The following

DNA algorithm is applied to first construct the solution space of every plaintext, then to implement the encryption function Encryption(M, e, n), and finally to construct the correspondence of between plain-text and cipher-text.

Algorithm 1 Implementing the procedure, Encryption(M, e, n). (1) MakeValue(Tn). (2) Init(T0, Tn). (3) MakeInitialValue(Te). (4) InitialEncryptedForm(T0). (5) For i= k down to 1 (5a) InitialSum(T0, ((2∗ (k − i + 1) − 1) − 1) ∗ (k + 1) + 1).

(5b) BinaryParallelMultiplier(T0,2∗(k −i +1)−1, 2∗(k −i +1)−1, C, C). (5c) AssignmentOperator(T0,2∗ (k − i + 1) − 1).

(5d) BinaryParallelDivider(T0,2∗ (k − i + 1) − 1).

(5e) TruncatedAssignmentOperator(T0,2∗ (k − i + 1) − 1, 2 ∗ (k − i + 1)). (5f) Separate(Te, e1i−1, TeON, TeOFF).

(5g) If (Detect(TeON)== true) then

(5h) InitialSum(T0, (2∗ (k − i + 1) − 1) ∗ (k + 1) + 1).

(5i) BinaryParallelMultiplier(T0,2∗ (k − i + 1), 2 ∗ (k − i + 1), C, M). (5j) AssignmentOperator(T0,2∗ (k − i + 1)).

(5k) BinaryParallelDivider(T0,2∗ (k − i + 1)).

(5l) TruncatedAssignmentOperator(T0,2∗(k −i +1), 2∗(k −i +1)+1). Else (5m) TruncatedAssignmentOperator(T0,2∗ (k − i + 1) − 1, 2∗ (k − i + 1) + 1). EndIf (5n) Te= Merge(TeON, TeOFF). EndFor EndAlgorithm

Theorem 1 From those steps in Algorithm1, the correspondence of between

(7)

Proof On the execution of Step (1), it calls MakeValue(Tn) to yield tube Tnthat

con-tains a DNA strand encoding the production of two large odd prime numbers, n. Then, on the execution of Step (2), it calls Init(T0, Tn) to generate tube T0that includes DNA

strands encoding 2k plain-texts. The execution of Step (3) calls MakeInitialValue(Te)

to produce tube Tethat contains a DNA strand encoding the public key, e. Next, the

execution of Step (4) calls InitialEncryptedForm(T0) to perform the execution of Step (2) in the procedure, Encryption(M, e, n) and to generate the initial encrypted form of the corresponding cipher-text for every plain-text in tube T0.

Step (5) is a loop and is mainly used to perform the function of the only loop (Step (3)) in the procedure, Encryption(M, e, n). Next, on the first execution of Step (5a), since the value of the loop index, i, is k, the value of the second argument is one. Therefore, it calls InitialSum(T0, 1) and perform to set the initial value of the sum (product) of the first multiplication. On the first execution of Step (5b), because the value of the loop index, i, is k, the second and the third arguments are one and the fourth argument and the fifth argument are used to represent the multiplicand and the multiplier of the first multiplication. Hence, it calls BinaryParallelMultiplier(T0, 1, 1, C, C) to perform computation of C2 in Step (3a) in Encryption(M, e, n). Next, on the first execution of Step (5c), since the value of the loop index, i, is k, the value of the second argument is one. Thus, it calls AssignmentOperator(T0, 1) to perform to set the initial value of the dividend in the first division. On the first execution of Step (5d), because the value of the loop index, i, is k, the value of the second argument is one. Therefore, it calls BinaryParallelDivider(T0, 1) to finish the division (modular operation) of Step (3a) in Encryption(M, e, n). Next, on the first execution of Step (5e), since the value of the loop index, i, is k, the second argument and the third argument are one and two. Hence, it calls TruncatedAssignmentOperator(T0, 1, 2) to update the encrypted form of a cipher-text. This implies that the execution of Step (3a) in Encryption(M, e, n) can be finished by means of Step (5a) through (5e).

On the first execution of Step (5f), it generates tube TON

e that includes all of the

strands having ek−11 because the value of the loop index, i, is k and tube TeOFFthat

consists of all of the strands having ek−10. Next, the first execution of Step (5g),

it uses the detect operations to check whether there is any DNA sequence in TeON. This means that the execution of Step (3b) in Encryption(M, e, n) can be finished by means of Step (5f) through (5g). If Step (5g) returns a true, this implies that the execu-tion of Step (3c) in Encrypexecu-tion(M, e, n) will be executed. So, Step (5h) through Step (5l) are used to finish the execution of Step (3c) in Encryption(M, e, n). If Step (5g) returns a false, then Step (5m) is applied to set the next encrypted form of a cipher-text to the current encrypted form. Next, the first execution of Step (5n) applies the merge operation to pour tubes TeON and TeOFF into Te. This is to say that tube Te

reserves the strand encoding the public-key, e. Repeat execution of Step (5a) through Step (5n) until the last time of the loop is processed. Finally, tube T0 contains the strands encoding the final encrypted form of every cipher-text. Therefore, the corre-spondence of between plain-text and cipher-text in the RSA public-key cryptosystem can be constructed from those steps in Algorithm1. 

(8)

4 Algorithm modules

We now introduce, in detail, the various modules which are combined to form the overall algorithm for the encryption function in the RSA public-key cryptosystem. 4.1 A DNA strand for representing n in the RSA public-key cryptosystem

Assume that the length of n is k bits and n is represented as a k-bit binary number, nk. . . n1, where the value of each bit njis either 1 or 0 for 1≤ j ≤ k. The bits nkand

n1represent the most significant bit and the least significant bit for n, respectively. For every bit nj, two distinct 15 base value sequences are designed to respectively

represent the value “0” for nj and the value “1” for nj. For the sake of convenience

in our presentation, assume that n1j denotes the value of nj to be 1 and n0j defines

the value of nj to be 0. The following algorithm, MakeValue(Tn), is proposed to

construct a DNA strand for encoding n. Procedure MakeValue(Tn)

(1) For j= 1 to k

(1a) Appendhead(Tn, nj).

EndFor EndProcedure

Lemma 1 A DNA strand for representing n in the RSA public-key cryptosystem can

be constructed from the algorithm, MakeValue(Tn).

Proof Each time Step (1a) is used to append distinct 15 base value sequences,

rep-resenting the value “1” or “0” for nj, onto the head of every strand in tube Tn. After

repeating execution of Step (1a), it produces tube Tn that consists of a DNA strand

representing n. 

4.2 Solution space of DNA sequences for any plain-text in the RSA public-key cryptosystem

Suppose that the length of a plain-text M is k bits and is represented as a k-bit binary number, mk. . . m1, where the value of each bit mj is either 1 or 0 for 1≤ j ≤ k. The

bits mk and m1represent the most significant bit and the least significant bit for M,

respectively. For every bit mj, from [24,25] two distinct 15 base value sequences

are designed to respectively represent the value “0” for mj and the value “1” for mj.

Also, assume that m1

j denotes the value of mj to be 1 and m

0

j defines the value of

mj to be 0. The following algorithm is used to construct solution space of DNA

sequences for any plain-text of k bits in the RSA public-key cryptosystem. Procedure Init(T0, Tn)

(1) For j= 1 to k

(1a) Amplify(T0, T1, T2). (1b) Appendhead(T1, m1j).

(9)

(1c) Appendhead(T2, m0j). (1d) T0= Merge(T1, T2). EndFor

(2) For j= k down to 1

(2a) Separate(Tn, n1j, TnON, TnOFF).

(2b) Separate(T0, m1j, T0ON, T0OFF). (2c) If (Detect(TnON)== true) then

(2d) T0== Merge(T0=, T0ON)and T0<= Merge(T0<, T0OFF). Else

(2e) T0>= Merge(T0>, T0ON)and T0== Merge(T0=, T0OFF). EndIf

(2f) T0= Merge(T0, T0=)and Tn= Merge(TnON, TnOFF).

(2g) Discard(T0>). EndFor

(3) T0= Merge(T0, T0<). EndProcedure

Lemma 2 Solution space of DNA sequences for any plain-text of k bits in the RSA

public-key cryptosystem can be constructed from the algorithm, Init(T0, Tn).

Proof Similar to Algorithm1and Lemma1.  4.3 Solution space of DNA sequences for public-key in the RSA public-key

cryptosystem

Algorithm1uses MakeInitialValue(Te), as a sub-module, to construct a DNA strand

for encoding e, the public-key denoted in Sect.3in the RSA public-key cryptosys-tem. The following algorithm, MakeInitialValue(Te), is proposed to construct a DNA

strand for encoding e.

Procedure MakeInitialValue(Te)

(1) For i= 0 to k − 1

(1a) Appendhead(Te, ei).

EndFor EndProcedure

Lemma 3 Solution space of DNA sequences for the key, e, in the RSA

public-key cryptosystem can be constructed from the algorithm, MakeInitialValue(Te).

Proof Similar to Algorithm1and Lemma1.  4.4 Solution space of DNA sequences for any cipher-text in the RSA public-key

cryptosystem

Assume that the length of a cipher-text C in the RSA public-key cryptosystem is k bits. From the procedure Encryption(M, e, n), the encrypted form of a cipher-text

(10)

C is finally obtained after at most updating (2∗ k + 1) times of the value for the cipher-text C. Therefore, suppose that a cipher-text C is represented as a k-bit bi-nary number, ca,k. . . ca,1, where the value of each bit ca,j is either 1 or 0 for 1 ≤ a ≤ (2 ∗ k + 1) and 1 ≤ j ≤ k. The bits, ca,k and ca,1, represent the most

sig-nificant bit and the least sigsig-nificant bit for C, respectively. The first k-bit binary num-ber, c1,k. . . c1,1, is used to represent the initial encrypted form of C. The last k-bit binary number, c(2∗k+1),k. . . c(2∗k+1),1, is used to represent the final encrypted form of C. For other k-bit binary numbers, they are applied to represent the intermediate encrypted form of C. For every bit ca,j, two distinct 15 base value sequences were

designed to respectively represent the value “0” for ca,j and the value “1” for ca,j.

For convenience, we assume that ca,j1 denotes the value of ca,j to be 1 and ca,j0

de-fines the value of ca,j to be 0. The following algorithm is used to construct solution

space of DNA sequences for the initial encrypted forms to any cipher-text in the RSA public-key cryptosystem. Procedure InitialEncryptedForm(T0) (1) Appendhead(T0, c1,11 ). (2) For j= 2 to k (2a) Appendhead(T0, c1,j0 ). EndFor EndProcedure

Lemma 4 Solution space of DNA sequences for the initial encrypted forms to any

cipher-text in the RSA public-key cryptosystem can be constructed from the algorithm,

InitialEncryptedForm(T0).

Proof Similar to Algorithm1and Lemma1.  4.5 Solution space of DNA sequences for the initial value of the sum in a multiplier A k-bit multiplier is used to finish multiplication of two binary numbers of k bits. It is done by successive additions and shifting of k times. The product obtained from the k-bit multiplier can be up to (2∗ k) bits long. A k-bit multiplier is done by suc-cessive additions and shifting of k times. Hence, suppose that the length of an integer Y is (2∗ k) bits. The integer Y is used to represent the augend and the sum of suc-cessive additions in a k-bit multiplier. From the procedure Encryption(M, e, n), the encrypted form of a cipher-text C is finally obtained after at most finishing (2∗ k) multiplication instructions. That is to say, at most (2∗ k2)successive additions and shifting are completed. Therefore, suppose that Y is represented as a (2∗ k)-bit bi-nary number, yf,(2∗k). . . yf,1, where the value of each bit yf,g is either 1 or 0 for 1 ≤ f ≤ (2 ∗ k2+ 2 ∗ k) and 1 ≤ g ≤ (2 ∗ k). The bits, yf,(

2∗k)and yf,1, represent the

most significant bit and the least significant bit for Y , respectively. Two binary num-bers yf,(2∗k). . . yf,1and yf+1,(2∗k). . . yf+1,1represent the augend and the sum of the

successive f th addition and shift, respectively. This implies that the binary number yf+1,(2∗k). . . yf+1,1is the augend of the successive (f+ 1)th addition and shift. For

(11)

represent the value “0” for yf,g and the value “1” for yf,g. For convenience, we

as-sume that yf,g1 denotes the value of yf,g to be 1 and yf,g0 defines the value of yf,gto

be 0. The following algorithm is used to construct solution space of DNA sequences for the initial value of the sum in a k-bit multiplier.

Procedure InitialSum(T0, f ) (1) For g= 1 to 2 ∗ k

(1a) Appendhead(T0, yf,g0 ). EndFor

EndProcedure

Lemma 5 Solution space of DNA sequences for the initial value of the sum in a k-bit

multiplier can be constructed from the algorithm, InitialSum(T0, f ).

Proof Similar to Algorithm1and Lemma1.  4.6 The construction of a binary parallel multiplier

A binary parallel multiplier is a function that finishes the arithmetic multiplication for two binary numbers of k bits. The product obtained from the multiplication of two k-bit binary numbers can be up to (2∗ k) bits long. The following algorithm is proposed to finish the function of a binary parallel multiplier. The two parameters α and β in the algorithm are used to represent the multiplicand and the multiplier of a binary parallel multiplier. Assume that βf1is applied to represent the value of “1” for the f th bit of the multiplier (β) to the f th addition and shift.

Procedure BinaryParallelMultiplier(T0, a, u, α, β) (1) For f= 1 to k

(1a0) Appendhead(T0, z0(u−1)∗(k+1)+f,0). (1a) Separate(T0, βf1, T3, T4).

(1a1) If (Detect(T3)== true) then (1b) For g= 1 to f − 1

(1b1) Separate(T3, y1f+(u−1)∗(k+1),g, T1, T2). (1b10) If (Detect(T1)== true) then

(1b2) Appendhead(T1, yf1+(u−1)∗(k+1)+1,g)and

Appendhead(T1, z0f+(u−1)∗(k+1),g). EndIf

(1b20) If (Detect(T2)== true) then

(1b3) Appendhead(T2, yf0+(u−1)∗(k+1)+1,g)and

Appendhead(T2, z0f+(u−1)∗(k+1),g). EndIf (1b4) T3= merge(T1, T2). EndFor (1c) BinaryParallelAdder(T3, f + (u − 1) ∗ (k + 1) + 1, g, a). (1c1) For g= (k + f ) to (k + f ) (1c11) Separate(T3, zf1+(u−1)∗(k+1),g−1, T1, T2).

(12)

(1c12) If (Detect(T1)== true) then

(1c13) Appendhead(T1, y1f+(u−1)∗(k+1)+1,g)and

Appendhead(T1, z0f+(u−1)∗(k+1),g). EndIf

(1c14) If (Detect(T2)== true) then

(1c15) Appendhead(T2, y0f+(u−1)∗(k+1)+1,g)and

Appendhead(T2, z0f+(u−1)∗(k+1),g). EndIf

(1c16) T3= Merge(T1, T2). EndFor

(1d) For g= (k + f + 1) to 2 * k

(1d1) Appendhead(T3, yf0+(u−1)∗(k+1)+1,g)and

Appendhead(T3, z0f+(u−1)∗(k+1),g). EndFor

EndIf

(1d2) If (Detect(T4)== true) then (1e) For g= 1 to 2 ∗ k

(1e1) T1= Separate(T4, yf1+(u−1)∗(k+1),g, T1, T2). (1e10) If (Detect(T1)== true) then

(1e2) Appendhead(T1, yf1+(u−1)∗(k+1)+1,g)and

Appendhead(T1, z0f+(u−1)∗(k+1),g). EndIf

(1e20) If (Detect(T2)== true) then

(1e3) Appendhead(T2, yf0+(u−1)∗(k+1)+1,g)and

Appendhead(T2, z0f+(u−1)∗(k+1),g). EndIf (1e4) T4= Merge(T1, T2). EndFor EndIf (1f) T0= Merge(T3, T4). EndFor EndProcedure

Lemma 6 The algorithm, BinaryParallelMultiplier(T0, a, u, α, β), can be applied to

finish the function of a binary parallel multiplier.

Proof The multiplication of the multiplicand and the multiplier of k bits is finished

through k times of successive additions and left shift. Step (1) is the main loop and is applied to finish the function of a binary parallel multiplier. This means that the main loop is used to finish successive additions and left shift of k times for the k-bit multiplicand and the k-bit multiplier. With each addition and each left shift, the least significant position of the multiplicand and the multiplier of k bits is added; the input carry must be 0. So, each execution for Step (1a0) uses the appendhead operation to append 15-based DNA sequences for representing z0(u−1)∗(k+1)+f,0onto the head of every strand in T0. Next, on each execution of Step (1a), it employs the extract

(13)

operation to form tube T3including the strands having βf1, and tube T4consisting of the strands having βf0. Each execution of Step (1a1) is used to check whether contains any DNA strand for tube T3or not. If a true is returned, then the enclosed steps will be run.

Next, for tube T3, Step (1b) is a loop and it is applied to finish additions and left shift of the front (f− 1) bits for the f th addition and left shift. The number of shifted bit to the f th shift is (f−1) bits. This implies that the front (f −1) bits of the addend (multiplicand) for the f th addition are all zero. Therefore, it is inferred that the front (f − 1) bits of the sum to the f th addition are equal to the front (f − 1) bits of the augend to the f th addition. Hence, on each execution of Step (1b1), it employs the

ex-tract operation to form tube T1including the strands having yf+(u−1)∗(k+1),g= 1, and

tube T2consisting of the strands having yf+(u−1)∗(k+1),g= 0. Each execution of Step

(1b10) is applied to examine whether contains any DNA strand for tube T1or not. If a

true is returned, then Step (1b2) will be run. Next, each execution of Step (1b2) uses

the appendhead operations to append yf1+(u−1)∗(k+1)+1,g and z0f+(u−1)∗(k+1),g onto the head of every strand in T1. Each execution of Step (1b20) is used to test whether contains any DNA strand for tube T2or not. If a true is returned, then Step (1b3) will be run. Each execution of Step (1b3) applies the appendhead operations to append yf0+(u−1)∗(k+1)+1,g and z0f+(u−1)∗(k+1),g onto the head of every strand in T2. Then each execution of Step (1b4) applies the merge operation to pour tubes T1and T2 into T3. Tube T3contains the strands finishing addition and left shift of a bit. Repeat execution of Steps (1b1) through (1b4) until the front (f − 1) bits are processed. Tube T3contains the strands finishing addition of the front (f − 1) bits for the f th addition and left shift.

Next, each execution of Step (1c) calls the algorithm, BinaryParallelAdder(T3, f+ (u− 1) ∗ (k + 1) + 1, g, a), to finish addition and left shift of k bits for the f th bit through the (k+ f − 1)th bit. Because after BinaryParallelAdder(T3, f + (u − 1) ∗ (k+1)+1, g, a) is performed, it perhaps generates the carry “1” for the (k +f −1)th bit. Therefore, on each execution of Step (1c11), it employs the extract operation to form tube T1including the strands having zf+(u−1)∗(k+1),g−1= 1, and tube T2 con-sisting of the strands having zf+(u−1)∗(k+1),g−1= 0. Each execution of Step (1c12)

is applied to test whether contains any DNA strand for tube T1or not. If a true is returned, then Step (1c13) will be run. Next, each execution of Step (1c13) uses the

appendhead operations to append y1f+(u−1)∗(k+1)+1,gand z0f+(u−1)∗(k+1),g onto the head of every strand in T1. Each execution of Step (1c14) is used to examine whether contains any DNA strand for tube T2or not. If a true is returned, then Step (1c15) will be run. Each execution of Step (1c15) applies the appendhead operations to append yf0+(u−1)∗(k+1)+1,g and z0f+(u−1)∗(k+1),g onto the head of every strand in T2. Then each execution of Step (1c16) applies the merge operation to pour tubes T1 and T2 into T3. Tube T3includes the strands performing addition of a bit.

Step (1d) is a loop and is used to finish addition and left shift of (k− f + 1) bits, because the last (k− f + 1) bits of the addend (multiplicand) for the f th addition and left shift are all zero. Therefore, it is inferred that the last (k− f + 1) bits of the sum to the f th addition and left shift are equal to the last (k− f + 1) bits of the augend to the f th addition and left shift. Execution of Step (1d1) applies the

(14)

based on biological operations in Adleman’s experiments. This algorithm has sev-eral advantages. First, the Adleman program [22] is used to generate good DNA se-quences to construct the corresponding table between any plain-text and any cipher-text in the RSA public-key cryptosystem. Good DNA sequences are applied to de-crease a rate of errors for hybridization. This indicates that the proposed algorithm actually has a lower rate of errors for hybridization. Secondly, the basic biological operations in Adleman’s experiments are employed to finish the function of a k-bit parallel adder, the function of a k-bit parallel subtractor, the function of a k-bit par-allel multiplier, the function of a (2∗ k)-bit parallel divider, the function of a k-bit parallel comparator, the function of a (2∗ k)-bit parallel assignment operator, and the function of a k-bit parallel truncated assignment operator. This means that the pro-posed algorithm has the computational capability of mathematics to finish addition (“+”), subtraction (“−”), multiplication (“∗”), division (“÷”), and assignment (“=”) operations. Thirdly, after the tube containing the strands encoding every (plain-text, cipher-text) pair is produced from Algorithm1, the number of steps for decoding an encrypted message overheard by an eavesdropper is linear in the size of the encrypted message overheard.

Currently, the future of molecular computers is unclear. It is possible that in the future molecular computers will be the clear choice for performing massively parallel computations. However, there are still many technical difficulties to overcome before this becomes a reality. We hope that this paper helps to demonstrate that molecular computing is a technology worth pursuing.

Acknowledgements The authors would like to give many thanks to Dr. Amos who is the author of the 6th reference and the 23th reference for proposing valuable information on Sect.7entitled “Biological Implementation.”

References

1. Rivest RL, Shamir A, Adleman L (1978) A method for obtaining digital signatures and public-key crytosystem. Commun ACM 21:120–126

2. Feynman RP (1961) There’s plenty of room at the bottom. In: Gilbert DH (ed) Minaturization. Rein-hold, New York, pp 282–296

3. Adleman L (1994) Molecular computation of solutions to combinatorial problems. Science 266:1021– 1024

4. Lipton RJ (1995) DNA solution of hard computational problems. Science 268:542–545

5. Quyang Q, Kaplan PD, Liu S, Libchaber A (1997) DNA solution of the maximal clique problem. Science 278:446–449

6. Amos M (1997) DNA computation. PhD thesis, Department of Computer Science, the University of Warwick

7. Harju T, Li C, Petre I, Rozenberg G (2005) Parallelism in gene assembly. In: DNA computing. Lecture notes in computer science, vol 3384, p 686. doi:10.1007/11493785_12

8. Thachuk C, Manuch J, Rafiey A, Mathieson L-A, Stacho L, Condon A (2010) An algorithm for the energy barrier problem without pseudoknots and temporary arcs. Pac Symp Biocomput 15:108–119 9. Zadeh JN, Wolfe BR, Pierce NA (2010) Nucleic acid sequence design via efficient ensemble defect

optimization. J Comput Chem. doi:10.1002/jcc.21633

10. Xiao D, Li W, Zhang Z, He L (2005) Solving the maximum cut problems in the Adleman–Lipton model. Biosystems 82:203–207

11. Yeh C-W, Chu C-P, Wu K-R (2006) Molecular solutions to the binary integer programming problem based on DNA computation. Biosystems 83(1):56–66

(15)

12. Zhang DY, Turberfield AJ, Yurke B, Winfree E (2007) Engineering entropy-driven reactions and net-works catalyzed by DNA. Science 318(5853):1121–1125

13. Boneh D, Dunworth C, Lipton RJ (1996) Breaking DES using a molecular computer. In: Proceedings of the 1st DIMACS workshop on DNA based computers, 1995. DIMACS series in discrete mathemat-ics and theoretical computer science, vol 27. American Mathematical Society, Providence, pp 37–66 14. Adleman L, Rothemund PWK, Roweis S, Winfree E (1999) On applying molecular computation to

the data encryption standard. In: The 2nd annual workshop on DNA computing, Princeton University. DIMACS series in discrete mathematics and theoretical computer science. American Mathematical Society, Providence, pp 31–44

15. Zhang DY, Seelig G (2011) DNA-based fixed gain amplifiers and linear classifier circuits. In: DNA 16. Lecture notes in computer science, vol 6518, p 176

16. Yeh C-W, Chu C-P (2008) Molecular verification of rule-based systems based on DNA computation. IEEE Trans Knowl Data Eng 20(7):965–975

17. Guarnieri F, Fliss M, Bancroft C (1996) Making DNA add. Science 273:220–223

18. Ho M(S-H) (2005) Fast parallel molecular solutions for DNA-based supercomputing: the subset-product problem. Biosystems 80:233–250

19. Ahrabian H, Nowzari-Dalini A (2004) DNA simulation of nand Boolean circuits. Adv Model Optim 6(2):33–41

20. Schuster A (2005) DNA databases. Biosystems 81:234–246

21. Paun G, Rozenberg G, Salomaa A (1998) DNA computing: new computing paradigms. Springer, New York. ISBN:3-540-64196-3

22. Boneh D, Dunworth C, Lipton RJ, Sgall J (1996) On the computational power of DNA. Discrete Appl Math 71:79–94. Special Issue on Computational Molecular Biology

23. Amos M (2005) Theoretical and experimental DNA computation. Springer, Berlin

24. Braich RS, Johnson C, Rothemund PWK, Hwang D, Chelyapov N, Adleman LM Solution of a satis-fiability problem on a gel-based DNA computer. In: Proceedings of the 6th international conference on DNA computation. Lecture notes in computer science. Springer, Berlin

25. Braich RS, Johnson C, Rothemund PWK, Hwang D, Chelyapov N, Adleman LM (2002) Solution of a 20-variable 3-SAT problem on a DNA computer. Science 296(5567):499–502

26. Diffie W, Hellman M (1976) New directions in cryptography. IEEE Trans Inf Theory IT-22(6):644– 654

27. Shor PW (1997) Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM J Comput 26(5):1484–1509

28. Chang W-L, Ho M, Guo M (2005) Fast parallel molecular algorithms for DNA-based computation: factoring integers. IEEE Trans Nanobiosci 4(2):149–163

29. Li K, Zou S, Xv J (2008) Fast parallel molecular algorithms for DNA-based computation: solv-ing the elliptic curve discrete logarithm problem over GF(2n). J Biomed Biotechnol 2008:518093. doi:10.1155/2008/518093

30. Chang W-L, Huang S-C, Lin KW, Ho M(SH) (2009) Fast parallel DNA-based algorithms for molec-ular computation: discrete logarithm. J Supercomput

數據

Fig. 1 DNA denaturing and annealing

參考文獻

相關文件

Reading Task 6: Genre Structure and Language Features. • Now let’s look at how language features (e.g. sentence patterns) are connected to the structure

好了既然 Z[x] 中的 ideal 不一定是 principle ideal 那麼我們就不能學 Proposition 7.2.11 的方法得到 Z[x] 中的 irreducible element 就是 prime element 了..

Wang, Solving pseudomonotone variational inequalities and pseudocon- vex optimization problems using the projection neural network, IEEE Transactions on Neural Networks 17

volume suppressed mass: (TeV) 2 /M P ∼ 10 −4 eV → mm range can be experimentally tested for any number of extra dimensions - Light U(1) gauge bosons: no derivative couplings. =&gt;

For pedagogical purposes, let us start consideration from a simple one-dimensional (1D) system, where electrons are confined to a chain parallel to the x axis. As it is well known

The observed small neutrino masses strongly suggest the presence of super heavy Majorana neutrinos N. Out-of-thermal equilibrium processes may be easily realized around the

Define instead the imaginary.. potential, magnetic field, lattice…) Dirac-BdG Hamiltonian:. with small, and matrix

incapable to extract any quantities from QCD, nor to tackle the most interesting physics, namely, the spontaneously chiral symmetry breaking and the color confinement.. 