]>Fast Parallel Molecular Algorithms for DNA-Based Computation: Solving the Elliptic Curve Discrete Logarithm Problem over <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"><mml:mi>G</mml:mi><mml:mi>F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math> : Algorithm 7
(1) Picking01 ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , 𝑟 )
(2) Picking02 ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , 𝑇 1 1 )
(3) PickingInverse ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , 𝑇 1 2 )
(4) PickingEqual ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , 𝑟 , 𝑇 2 )
(5) For ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑦 1 , 𝑥 2 , 𝑦 2 , 𝑇 3 ) to 𝑗 = 0
 (5a) Append 𝑀 1
EndFor
(6) ParallelAdder ( 𝑇 0 , 𝑥 0 𝑟 + 𝑛 + 𝑗 )
(7) ParallelAdder ( 𝑇 0 , 𝑛 , 𝑦 1 , 𝑦 2 , 𝑟 + 𝑛 + 𝑀 )
(8) ParallelDivision ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑥 2 , 𝑟 + 𝑛 + 𝑀 + 𝑛 )
(9) For ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑀 + 𝑛 , 𝑟 + 𝑛 + 𝑀 , 𝑟 + 𝑛 + 𝑀 + 2 𝑛 ) to 𝑗 = 0
 (9a) 𝑛 1 and 𝑇 𝑚 = + ( 𝑇 3 , 𝑥 1 𝑥 1 + 𝑗 )
 (9b) Append 𝑇 𝑠 = ( 𝑇 3 , 𝑥 1 𝑥 1 + 𝑗 ) and Append ( 𝑇 𝑚 , 𝑥 1 𝑟 + 𝑛 + 𝑗 )
 (9c) ( 𝑇 𝑠 , 𝑥 0 𝑟 + 𝑛 + 𝑗 )
EndFor
(10) ParallelMultiplier 𝑇 3 = ( 𝑇 𝑚 , 𝑇 𝑠 )
(11) ParallelShifter ( 𝑇 3 , 𝑛 , 𝑟 + 𝑛 , 𝑟 + 𝑛 )
(12) ParallelAdder ( 𝑇 3 , 𝑛 , 𝑟 + 𝑛 + 𝑛 + 𝑛 × 𝑛 )
(13) ParallelDivision ( 𝑇 3 , 𝑛 , 𝑦 1 , 𝑟 + 𝑛 + 𝑛 + 𝑀 𝑛 , 𝑟 + 𝑛 + 𝑛 + 𝑀 )
(14) ( 𝑇 3 , 𝑛 , 𝑥 1 , 𝑟 + 𝑛 + 𝑛 + 𝑀 , 𝑟 + 𝑛 + 𝑛 + 𝑀 + 𝑛 )
SUPPOSE 𝑇 0 = ( 𝑇 0 , 𝑇 3 )
(15) ParallelMultiplier 𝑈 = 𝑛 + 𝑀 + 𝑛 + 𝐷
(16) ParallelShifter ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 𝑛 , 𝑟 + 𝑛 + 𝑈 𝑛 )
(17) ParallelAdder ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑛 × 𝑛 )
(18) ParallelAdder ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 )
(19) ParallelAdder ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 , 𝑥 1 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 𝑛 )
(20) For ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 𝑛 , 𝑥 2 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 𝑛 + 𝑛 ) to 𝑗 = 0
 (20a) Append 𝑛 1
EndFor
(21) ParallelAdder ( 𝑇 0 , 𝑥 𝑎 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 3 𝑛 + 𝑗 )
SUPPOSE ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 2 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 3 𝑛 , 𝑟 + 𝑛 + 𝑈 + 𝑀 + 4 𝑛 )
(22) ParallelAdder 𝑋 = 𝑈 + 𝑀 + 5 𝑛
(23) ParallelMultiplier ( 𝑇 0 , 𝑛 , 𝑥 1 , 𝑟 + 𝑛 + 𝑋 𝑛 , 𝑟 + 𝑛 + 𝑋 )
(24) ParallelShifter ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑈 𝑛 , 𝑟 + 𝑛 + 𝑋 )
(25) ParallelAdder ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑋 + 𝑛 + 𝑛 × 𝑛 )
(26) ParallelAdder ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑋 + 𝑛 + 𝑀 𝑛 , 𝑟 + 𝑛 + 𝑋 𝑛 , 𝑟 + 𝑛 + 𝑋 + 𝑛 + 𝑀 )
SUPPOSE ( 𝑇 0 , 𝑛 , 𝑟 + 𝑛 + 𝑋 + 𝑛 + 𝑀 , 𝑦 1 , 𝑟 + 𝑛 + 𝑋 + 𝑛 + 𝑀 + 𝑛 )
(27) For 𝑌 = 𝑛 + 𝑀 + 𝑛 + 𝑛 to 𝑗 = 0
 (27a) 𝑛 1 and 𝑇 𝑚 = + ( 𝑇 0 , 𝑥 1 𝑟 + 𝑋 + 𝑗 )
 (27b) Append 𝑇 𝑠 = ( 𝑇 0 , 𝑥 1 𝑟 + 𝑋 + 𝑗 ) and Append ( 𝑇 𝑚 , 𝑥 1 𝑟 + 𝑛 + 𝑋 + 𝑌 + 𝑗 )
 (27c) ( 𝑇 𝑠 , 𝑥 0 𝑟 + 𝑛 + 𝑋 + 𝑌 + 𝑗 )
EndFor
(28) For 𝑇 0 = ( 𝑇 𝑚 , 𝑇 𝑠 ) to 𝑗 = 0
 (28a) 𝑛 1 and 𝑇 𝑚 = + ( 𝑇 0 , 𝑥 1 𝑟 + 𝑛 + 𝑋 + 𝑌 𝑛 + 𝑗 )
 (28b) Append 𝑇 𝑠 = ( 𝑇 0 , 𝑥 1 𝑟 + 𝑛 + 𝑋 + 𝑌 𝑛 + 𝑗 ) and Append ( 𝑇 𝑚 , 𝑥 1 𝑟 + 𝑛 + 𝑋 + 𝑌 + 𝑛 + 𝑗 )
 (28c) ( 𝑇 𝑠 , 𝑥 0 𝑟 + 𝑛 + 𝑋 + 𝑌 + 𝑛 + 𝑗 )
EndFor
(29) Append 𝑇 0 = ( 𝑇 𝑚 , 𝑇 𝑠 ) bits 0 to each strand in 𝑛 + 𝑋 + 𝑌 and 𝑇 1 1 . Then, append values of 𝑇 1 2 and 𝑥 2 of each strand to
   the end in 𝑦 2 , and append values of 𝑇 1 1 and 𝑥 1 of each strand to the end in 𝑦 1
(30) Append 𝑇 1 2 bits 0 to every strand in 𝑋 + 𝑌 + 2 𝑛
(31) 𝑇 2
EndProcedure
Algorithm 7: Procedure AddTwoNode 𝑇 0 .