<?xml version='1.0'?>
<!DOCTYPE art SYSTEM 'http://www.biomedcentral.com/xml/article.dtd'>
<art>
   <ui>1471-2105-8-176</ui>
   <ji>1471-2105</ji>
   <fm>
      <dochead>Research article</dochead>
      <bibl>
         <title>
            <p>DNA-based watermarks using the DNA-Crypt algorithm</p>
         </title>
         <aug>
            <au id="A1">
               <snm>Heider</snm>
               <fnm>Dominik</fnm>
               <insr iid="I1"/>
               <email>dominik.heider@uni-muenster.de</email>
            </au>
            <au id="A2" ca="yes">
               <snm>Barnekow</snm>
               <fnm>Angelika</fnm>
               <insr iid="I1"/>
               <email>barneko@uni-muenster.de</email>
            </au>
         </aug>
         <insg>
            <ins id="I1">
               <p>Department of Experimental Tumorbiology, University of Muenster, Badestr. 9, D-48149 Muenster, Germany</p>
            </ins>
         </insg>
         <source>BMC Bioinformatics</source>
         <issn>1471-2105</issn>
         <pubdate>2007</pubdate>
         <volume>8</volume>
         <issue>1</issue>
         <fpage>176</fpage>
         <url>http://www.biomedcentral.com/1471-2105/8/176</url>
         <xrefbib>
            <pubidlist>
               <pubid idtype="pmpid">17535434</pubid>
               <pubid idtype="doi">10.1186/1471-2105-8-176</pubid>
            </pubidlist>
         </xrefbib>
      </bibl>
      <history>
         <rec>
            <date>
               <day>26</day>
               <month>2</month>
               <year>2007</year>
            </date>
         </rec>
         <acc>
            <date>
               <day>29</day>
               <month>5</month>
               <year>2007</year>
            </date>
         </acc>
         <pub>
            <date>
               <day>29</day>
               <month>5</month>
               <year>2007</year>
            </date>
         </pub>
      </history>
      <cpyrt>
         <year>2007</year>
         <collab>Heider and Barnekow; licensee BioMed Central Ltd.</collab>
         <note>This is an Open Access article distributed under the terms of the Creative Commons Attribution License (<url>http://creativecommons.org/licenses/by/2.0</url>), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</note>
      </cpyrt>
      <abs>
         <sec>
            <st>
               <p>Abstract</p>
            </st>
            <sec>
               <st>
                  <p>Background</p>
               </st>
               <p>The aim of this paper is to demonstrate the application of watermarks based on DNA sequences to identify the unauthorized use of genetically modified organisms (GMOs) protected by patents. Predicted mutations in the genome can be corrected by the DNA-Crypt program leaving the encrypted information intact. Existing DNA cryptographic and steganographic algorithms use synthetic DNA sequences to store binary information however, although these sequences can be used for authentication, they may change the target DNA sequence when introduced into living organisms.</p>
            </sec>
            <sec>
               <st>
                  <p>Results</p>
               </st>
               <p>The DNA-Crypt algorithm and image steganography are based on the same watermark-hiding principle, namely using the least significant base in case of DNA-Crypt and the least significant bit in case of the image steganography. It can be combined with binary encryption algorithms like AES, RSA or Blowfish. DNA-Crypt is able to correct mutations in the target DNA with several mutation correction codes such as the Hamming-code or the WDH-code. Mutations which can occur infrequently may destroy the encrypted information, however an integrated fuzzy controller decides on a set of heuristics based on three input dimensions, and recommends whether or not to use a correction code. These three input dimensions are the length of the sequence, the individual mutation rate and the stability over time, which is represented by the number of generations. <it>In silico </it>experiments using the Ypt7 in <it>Saccharomyces cerevisiae </it>shows that the DNA watermarks produced by DNA-Crypt do not alter the translation of mRNA into protein.</p>
            </sec>
            <sec>
               <st>
                  <p>Conclusion</p>
               </st>
               <p>The program is able to store watermarks in living organisms and can maintain the original information by correcting mutations itself. Pairwise or multiple sequence alignments show that DNA-Crypt produces few mismatches between the sequences similar to all steganographic algorithms.</p>
            </sec>
         </sec>
      </abs>
   </fm>
   <bdy>
      <sec>
         <st>
            <p>Background</p>
         </st>
         <p>Sensitive information, especially secret information must be protected against unauthorized access. To achieve this researchers have looked for new cryptographic or steganographic techniques. Existing algorithms encrypt or hide information in binary files, however there are other media, which can be used. There are several algorithms, which encode information into DNA sequences. Examples are the concepts of Clelland et al., Gehani et al., Leier et al, Wong et al. and Arita et al <abbrgrp><abbr bid="B1">1</abbr><abbr bid="B2">2</abbr><abbr bid="B3">3</abbr><abbr bid="B4">4</abbr><abbr bid="B5">5</abbr></abbrgrp>. These techniques can be used for authentication or to store data for long time.</p>
         <sec>
            <st>
               <p>Clelland et al</p>
            </st>
            <p>Inspired by the micro-dots used during the 2nd world war, Clelland et al. developed an extension of this principle <abbrgrp><abbr bid="B1">1</abbr></abbrgrp>. The scientists produced artificial DNA strands, which contained secret messages. A triplet encodes one character or number (Table <tblr tid="T1">1</tblr>). The Clelland algorithm is a simple substitution cipher which encodes characters into DNA sequences using the following encoding function</p>
            <tbl id="T1">
               <title>
                  <p>Table 1</p>
               </title>
               <caption>
                  <p>Clelland code table. Modified from Clelland et al. [1].</p>
               </caption>
               <tblbdy cols="2">
                  <r>
                     <c ca="center">
                        <p>character = triplet</p>
                     </c>
                     <c ca="center">
                        <p>character = triplet</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="2">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>A = CGA</p>
                     </c>
                     <c ca="center">
                        <p>U = CTG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>B = CCA</p>
                     </c>
                     <c ca="center">
                        <p>V = CCT</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>C = GTT</p>
                     </c>
                     <c ca="center">
                        <p>W = CCG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>D = TTG</p>
                     </c>
                     <c ca="center">
                        <p>X = CTA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>E = GGC</p>
                     </c>
                     <c ca="center">
                        <p>Y = AAA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>F = GGT</p>
                     </c>
                     <c ca="center">
                        <p>Z = CTT</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>G = TTT</p>
                     </c>
                     <c ca="center">
                        <p>0 = ACT</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>H = CGC</p>
                     </c>
                     <c ca="center">
                        <p>1 = ACC</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>I = ATG</p>
                     </c>
                     <c ca="center">
                        <p>2 = TAG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>J = AGT</p>
                     </c>
                     <c ca="center">
                        <p>3 = GCA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>K = AAG</p>
                     </c>
                     <c ca="center">
                        <p>4 = GAG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>L = TGC</p>
                     </c>
                     <c ca="center">
                        <p>5 = AGA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>M = TCC</p>
                     </c>
                     <c ca="center">
                        <p>6 = TTA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>N = TCT</p>
                     </c>
                     <c ca="center">
                        <p>7 = ACA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>O = GGA</p>
                     </c>
                     <c ca="center">
                        <p>8 = AGG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>P = GTG</p>
                     </c>
                     <c ca="center">
                        <p>9 = GCG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Q = AAC</p>
                     </c>
                     <c ca="center">
                        <p>&#8852; =  ATA</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>R = TCA</p>
                     </c>
                     <c ca="center">
                        <p>, = TCG</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>S = ACG</p>
                     </c>
                     <c ca="center">
                        <p>. = GAT</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>T = TTC</p>
                     </c>
                     <c ca="center">
                        <p>: = GCT</p>
                     </c>
                  </r>
               </tblbdy>
            </tbl>
            <p>&#8226; <it>E </it>: <it>X </it>&#8594; <it>Y</it></p>
            <p>&#8226; <it>X </it>&#8712; {<it>A</it>, <it>B</it>, <it>C</it>,..., <it>Z</it>, 0, 1,..., 9, ".",","," : ","&#8852;"}</p>
            <p>&#8226; <it>Y </it>&#8712; {<it>xyz </it>: <it>x</it>, <it>y</it>, <it>z </it>&#8712; {<it>A</it>, <it>C</it>, <it>G</it>, <it>T</it>}}</p>
            <p>The decoding function is corresponding <it>D </it>: <it>Y </it>&#8594; <it>X</it>.</p>
            <p>Now Clelland et al. ligated two primers with the synthesized DNA sequences, a forward and a reverse primer. These ligated sequences were mixed up with dummy strands. Important preconditions are:</p>
            <p>&#8226; length of dummy strand = length of message DNA with primers</p>
            <p>&#8226; #copies of each dummy = #copies of message DNA</p>
            <p>The receiver must know the decoding function and the primer to decode the message. The primers are used for the polymerase chain reaction and in the last step the amplified DNA sequence has to be sequenced and decoded. To improve the security one can use dummy strands, which are not random but correspond to words out of a dictionary.</p>
         </sec>
         <sec>
            <st>
               <p>Gehani et al</p>
            </st>
            <p>The original One-Time pad uses the XOR &#8211; exclusive <b>or </b>(&#8853;). In the case of DNA, the XOR is very impracticable and therefore it is better to use the properties of DNA. Gehani et al. established a DNA One-Time pad by creating word pairs <abbrgrp><abbr bid="B2">2</abbr></abbrgrp>. The first word is the plain text and the second one is the cipher text. After such a block of plain and cipher text, there is a stop codon (Figure <figr fid="F1">1</figr>). The DNA polymerase completes the plain and cipher text.</p>
            <fig id="F1">
               <title>
                  <p>Figure 1</p>
               </title>
               <caption>
                  <p>DNA One-Time pad</p>
               </caption>
               <text>
                  <p><b>DNA One-Time pad</b>. <it>A</it><sub><it>i</it></sub>: plain text, <it>B</it><sub><it>i</it></sub>: cipher text (and primer for the DNA polymerase), black box: stop Modified from Gehani et al. [2].</p>
               </text>
               <graphic file="1471-2105-8-176-1"/>
            </fig>
            <p>To encode a message, the plain text is mixed with the DNA sequences. It binds directly to the corresponding complementary sequence. The DNA polymerase creates the cipher text accordingly and the decoding is functionally analogous. The cipher text binds to its complement and the DNA polymerase creates the plain text.</p>
         </sec>
         <sec>
            <st>
               <p>Leier et al</p>
            </st>
            <p>Leier et al. encoded binary information into DNA sequences. A short DNA sequence represents the binary 1<sub>2</sub>, another one represents 0<sub>2 </sub><abbrgrp><abbr bid="B3">3</abbr></abbrgrp>. Further there are another two short DNA sequences, which represent start and end. The fragments have sticky ends and can be ligated (Figure <figr fid="F2">2</figr>). All resulting sequences are like this <it>s</it>{0<sub>2</sub>|1<sub>2</sub>}<it>e</it>. The start and end marker have primer sequences on one site for the polymerase chain reaction, which can not be ligated.</p>
            <fig id="F2">
               <title>
                  <p>Figure 2</p>
               </title>
               <caption>
                  <p>DNA binary strands</p>
               </caption>
               <text>
                  <p><b>DNA binary strands</b>. Short DNA strands represent the binary 1<sub>2 </sub>(light blue), 0<sub>2 </sub>(white), start and end marker (dark blue).These sequences can be ligated to long strands by using the sticky ends. Modified from Leier et al. [3].</p>
               </text>
               <graphic file="1471-2105-8-176-2"/>
            </fig>
            <p>Although it seems to be more complicated, it is very similar to the algorithm of Clelland et al. The resulting DNA sequence is mixed with dummy strands and can only be detected and isolated knowing the primer sequences.</p>
         </sec>
         <sec>
            <st>
               <p>Wong et al</p>
            </st>
            <p>Wong et al. developed a steganographic algorithm based on DNA, which is able to store data in living organisms <abbrgrp><abbr bid="B4">4</abbr></abbrgrp>. The data are translated into a DNA sequence which is inserted into a vector. The insert sequence is flanked by two primer sequences which do not exist in the genome yet. This vector is introduced into a cell of a living organism where it coexists and is replicated with the genomic DNA. To extract the data they used a polymerase chain reaction.</p>
            <p>Wong et al. used a substitution cipher similar to Clelland et al. to encode a song text into a DNA sequence and stored it in <it>Deinococcus radiodurans</it>. <it>Deinococcus radiodurans </it>survive extreme conditions, e.g. ionizing radiation, so the song text can be stored for hundreds of years.</p>
         </sec>
         <sec>
            <st>
               <p>Arita et al</p>
            </st>
            <p>Arita et al. developed a steganographic algorithm based on the degenerative genetic code. Amino acid codes are redundant so that the translation of mRNA into proteins is a substitution cipher with the following characteristics</p>
            <p>&#8226; <it>E </it>: <it>X </it>&#8594; <it>Y</it></p>
            <p>&#8226; <it>X </it>&#8712; {<it>xyz </it>: <it>x</it>, <it>y</it>, <it>z </it>&#8712; {<it>A</it>, <it>C</it>, <it>G</it>, <it>U</it>}}</p>
            <p>&#8226; <it>Y </it>&#8712; {<it>A</it>, <it>C</it>, <it>D</it>, <it>E</it>, <it>F</it>, <it>G</it>, <it>H</it>, <it>I</it>, <it>K</it>, <it>L</it>, <it>M</it>, <it>N</it>, <it>P</it>, <it>Q</it>, <it>R</it>, <it>S</it>, <it>T</it>, <it>V</it>, <it>W</it>, <it>Y</it>, <it>STOP</it>}</p>
            <p>But the inverse function <it>D </it>: <it>Y </it>&#8594; <it>X </it>is not injective.</p>
            <p>An example:</p>
            <p>threonine(T) = E(ACU) = E(ACC) = E(ACA) = E(ACG)</p>
            <p>The triplet of threonine is redundant in the third base so mutations in the third base do not exert any influence on the translation of threonine and the translated protein. These mutations are called "synonymous substitutions", in contrast to the "non-synonymous substitutions".</p>
            <p>Arita et al. translated each letter of the English alphabet into six codons (Table <tblr tid="T2">2</tblr>). A value of 0 means to keep the original base at the third position of a codon, while a value of 1 means to change the third base at that position. Arita et al. added a parity bit to each letter, to keep it odd for possible error detection <abbrgrp><abbr bid="B5">5</abbr></abbrgrp>. They encoded 'KEIO' into the <it>ftsZ </it>gene of <it>Bacillus subtilis </it>which is essential for cell division and demonstrated as expected that the changed codon sequences did not affect the cell division, colony morphology, growth rate and sporulation frequency of these bacteria. To extract the encoded message one has to know the original sequence so that one can decide whether the codon is the original or the altered sequence.</p>
            <tbl id="T2">
               <title>
                  <p>Table 2</p>
               </title>
               <caption>
                  <p>Arita et al. encryption. The translation table for the English alphabet. Modified from Arita et al. [5].</p>
               </caption>
               <tblbdy cols="4">
                  <r>
                     <c ca="center">
                        <p>000001</p>
                     </c>
                     <c ca="center">
                        <p>...</p>
                     </c>
                     <c ca="center">
                        <p>010011</p>
                     </c>
                     <c ca="center">
                        <p>R</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>000010</p>
                     </c>
                     <c ca="center">
                        <p>E</p>
                     </c>
                     <c ca="center">
                        <p>100011</p>
                     </c>
                     <c ca="center">
                        <p>H</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>000100</p>
                     </c>
                     <c ca="center">
                        <p>T</p>
                     </c>
                     <c ca="center">
                        <p>001101</p>
                     </c>
                     <c ca="center">
                        <p>D</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>001000</p>
                     </c>
                     <c ca="center">
                        <p>A</p>
                     </c>
                     <c ca="center">
                        <p>010101</p>
                     </c>
                     <c ca="center">
                        <p>L</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>010000</p>
                     </c>
                     <c ca="center">
                        <p>O</p>
                     </c>
                     <c ca="center">
                        <p>100101</p>
                     </c>
                     <c ca="center">
                        <p>C</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>100000</p>
                     </c>
                     <c ca="center">
                        <p>S</p>
                     </c>
                     <c ca="center">
                        <p>011001</p>
                     </c>
                     <c ca="center">
                        <p>M</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>000111</p>
                     </c>
                     <c ca="center">
                        <p>N</p>
                     </c>
                     <c ca="center">
                        <p>101001</p>
                     </c>
                     <c ca="center">
                        <p>U</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>001110</p>
                     </c>
                     <c ca="center">
                        <p>F</p>
                     </c>
                     <c ca="center">
                        <p>110100</p>
                     </c>
                     <c ca="center">
                        <p>J</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>010110</p>
                     </c>
                     <c ca="center">
                        <p>G</p>
                     </c>
                     <c ca="center">
                        <p>111000</p>
                     </c>
                     <c ca="center">
                        <p>Q</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>011010</p>
                     </c>
                     <c ca="center">
                        <p>W</p>
                     </c>
                     <c ca="center">
                        <p>011111</p>
                     </c>
                     <c ca="center">
                        <p>Z</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>011100</p>
                     </c>
                     <c ca="center">
                        <p>Y</p>
                     </c>
                     <c ca="center">
                        <p>101111</p>
                     </c>
                     <c ca="center">
                        <p>'</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>100110</p>
                     </c>
                     <c ca="center">
                        <p>B</p>
                     </c>
                     <c ca="center">
                        <p>110111</p>
                     </c>
                     <c ca="center">
                        <p>.</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>101010</p>
                     </c>
                     <c ca="center">
                        <p>V</p>
                     </c>
                     <c ca="center">
                        <p>111011</p>
                     </c>
                     <c ca="center">
                        <p>&amp;</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>101100</p>
                     </c>
                     <c ca="center">
                        <p>K</p>
                     </c>
                     <c ca="center">
                        <p>110001</p>
                     </c>
                     <c ca="center">
                        <p>P</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>001011</p>
                     </c>
                     <c ca="center">
                        <p>I</p>
                     </c>
                     <c ca="center">
                        <p>111101</p>
                     </c>
                     <c>
                        <p/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>110010</p>
                     </c>
                     <c ca="center">
                        <p>X</p>
                     </c>
                     <c ca="center">
                        <p>111110</p>
                     </c>
                     <c>
                        <p/>
                     </c>
                  </r>
               </tblbdy>
            </tbl>
         </sec>
         <sec>
            <st>
               <p>Comparison to DNA-Crypt</p>
            </st>
            <p>Clelland et al., Gehani et al. and Leier et al. produced synthesized DNA sequences which were mixed with dummy strands. These sequences contained a secret message. Knowing the unique primer sequence, the secret message can be read out.</p>
            <p>Wong et al. and Arita et al. introduced DNA sequences containing a secret message into living organisms. Wong et al. used a vector which incorporated into the genome of <it>Deinococcus radiodurans </it>and Arita et al. used point mutations in redundant codons. Arita et al. used a parity bit for error detection. The disadvantage is that if mutations occur, the hidden information is lost.</p>
            <p>The DNA-Crypt algorithm is based on small redundant regions comparable to least significant bits in the case of image steganography (Figure <figr fid="F3">3</figr>). The least significant bits encode a difference in colour of just one on the colour scale, not visible to the human eye, and can be used to hide information in images.</p>
            <fig id="F3">
               <title>
                  <p>Figure 3</p>
               </title>
               <caption>
                  <p>steganographic algorithms</p>
               </caption>
               <text>
                  <p><b>steganographic algorithms</b>. The function of steganographic algorithms.</p>
               </text>
               <graphic file="1471-2105-8-176-3"/>
            </fig>
            <p>Text or binary information can also be encoded using any DNA based encryption. However unlike image steganography, the DNA steganography does not lead to a loss of information if the focused range is a protein coding region. DNA-Crypt checks for "synonymous codons" in a genome and point mutations are produced by changing the bases [see Additional file <supplr sid="S1">1</supplr>].</p>
            <suppl id="S1">
               <title>
                  <p>Additional file 1</p>
               </title>
               <text>
                  <p>The DNA-Crypt v.2.</p>
               </text>
               <file name="1471-2105-8-176-S1.zip">
                  <p>Click here for file</p>
               </file>
            </suppl>
            <p>This algorithm offers the possibility to incorporate data into the genome of living organisms, using an alternative method to Wong et al. <abbrgrp><abbr bid="B4">4</abbr></abbrgrp> (Figure <figr fid="F4">4</figr>). The algorithm is similar to the algorithm of Arita et al., but DNA-Crypt has some important extensions e.g. the use of several encryption and mutation correction codes, which allows encoding of binary information. These extensions are described in the next subsections <abbrgrp><abbr bid="B5">5</abbr></abbrgrp>. A comparative overview of the algorithms and their features is shown in table <tblr tid="T3">3</tblr>.</p>
            <tbl id="T3">
               <title>
                  <p>Table 3</p>
               </title>
               <caption>
                  <p>Comparison of the DNA encryption algorithms</p>
               </caption>
               <tblbdy cols="8">
                  <r>
                     <c ca="center">
                        <p>algorithm</p>
                     </c>
                     <c ca="center">
                        <p>organism</p>
                     </c>
                     <c ca="center">
                        <p>affect</p>
                     </c>
                     <c ca="center">
                        <p>error detection</p>
                     </c>
                     <c ca="center">
                        <p>error correction</p>
                     </c>
                     <c ca="center">
                        <p>binary</p>
                     </c>
                     <c ca="center">
                        <p>encryption</p>
                     </c>
                     <c ca="center">
                        <p>utilization</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="8">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Clelland et al.</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>20</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Gehani et al.</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Leier et al.</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>&#8804; 9</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Wong et al.</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>20</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Arita et al.</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>&#8804; 5</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>
                           <b>DNA-Crypt</b>
                        </p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>-</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>+</p>
                     </c>
                     <c ca="center">
                        <p>&#8804; <b>8</b></p>
                     </c>
                  </r>
               </tblbdy>
               <tblfn>
                  <p>organism: the use of this algorithm in living organisms;</p>
                  <p>affect: observation that the algorithm exerts an effect on the organims;</p>
                  <p>error detection/correction: the algorithm shows an error detection/correction function;</p>
                  <p>binary: binary information can be encoded;</p>
                  <p>encryption: the use of binary encryption algorithm like AES or RSA;</p>
                  <p>utilization: storage utilization in a 100 bp DNA sequence;</p>
                  <p>- = negative;</p>
                  <p>+ = positive;</p>
               </tblfn>
            </tbl>
            <fig id="F4">
               <title>
                  <p>Figure 4</p>
               </title>
               <caption>
                  <p>The DNA-Crypt algorithm</p>
               </caption>
               <text>
                  <p><b>The DNA-Crypt algorithm</b>. The function of the DNA-Crypt algorithm.</p>
               </text>
               <graphic file="1471-2105-8-176-4"/>
            </fig>
         </sec>
         <sec>
            <st>
               <p>Encoding binary information using DNA-Crypt</p>
            </st>
            <p>DNA-Crypt encodes binary information using the following substitution cipher:</p>
            <p>&#8226; <it>E </it>: <it>X </it>&#8594; <it>Y</it></p>
            <p>&#8226; <it>X </it>= {<it>xy </it>: <it>x, y </it>&#8712; {0<sub>2</sub>, 1<sub>2</sub>}}</p>
            <p>&#8226; <it>Y </it>&#8712; {<it>A</it>, <it>C</it>, <it>G</it>, <it>T</it>}</p>
            <p>A standard setting is given in table <tblr tid="T4">4</tblr>.</p>
            <tbl id="T4">
               <title>
                  <p>Table 4</p>
               </title>
               <caption>
                  <p>DNA-Crypt binary encryption. The standard settings for encoding binary sequences in DNA-Crypt.</p>
               </caption>
               <tblbdy cols="2">
                  <r>
                     <c ca="center">
                        <p>binary sequence</p>
                     </c>
                     <c ca="center">
                        <p>base</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="2">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>00<sub>2</sub></p>
                     </c>
                     <c ca="center">
                        <p>T</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>01<sub>2</sub></p>
                     </c>
                     <c ca="center">
                        <p>G</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>10<sub>2</sub></p>
                     </c>
                     <c ca="center">
                        <p>C</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>11<sub>2</sub></p>
                     </c>
                     <c ca="center">
                        <p>A</p>
                     </c>
                  </r>
               </tblbdy>
            </tbl>
            <p>The binary sequence 0111001001001111<sub>2 </sub>would be encoded to <it>E</it>(0111001001001111<sub>2</sub>) = <it>GATCGTAA</it>.</p>
            <p>Two bits could be encoded by one base, so one byte needs four bases for its encoding.</p>
            <p>Based on this binary encryption, several private and public key cryptographic algorithms are integrated in DNA-Crypt:</p>
            <p>&#8226; One-Time pad <abbrgrp><abbr bid="B6">6</abbr></abbrgrp></p>
            <p>&#8226; AES <abbrgrp><abbr bid="B7">7</abbr></abbrgrp></p>
            <p>&#8226; Blowfish <abbrgrp><abbr bid="B6">6</abbr></abbrgrp></p>
            <p>&#8226; RSA <abbrgrp><abbr bid="B8">8</abbr><abbr bid="B9">9</abbr></abbrgrp></p>
            <p>To use DNA-Crypt one has to register so that DNA-Crypt can create AES, Blowfish and RSA keys for the user. These keys can be used to encrypt the binary information which then gets integrated into the genome. In addition it is possible to export and to import these keys and to exchange them with other users. Further the user can create new keys in DNA-Crypt or delete old ones. Another possibility is to use a One-Time pad instead of an encryption key. Compared to Arita et al. our substitution cipher allows to use several encryption algorithms as decribed above. In addition DNA-Crypt offers a better storage utilization compared to the algorithm of Arita et al. (four instead of six synonomous codons per character).</p>
         </sec>
         <sec>
            <st>
               <p>Mutation correction</p>
            </st>
            <p>Mutations do not occur very often, approximately 10<sup>-10 </sup>to 10<sup>-15 </sup>per cell division, but they can destroy the encrypted information in DNA sequences. To correct these failures DNA-Crypt uses a correction code based on binary correction. One of them is the 8/4 Hamming-code and another one is the WDH-code <abbrgrp><abbr bid="B10">10</abbr></abbrgrp>. The advantage of the WDH-code is that it can correct more mutations than the 8/4 Hamming-code. The n-times WDH-code repeats the enrypted DNA sequence n times. It can correct <inline-formula><m:math name="1471-2105-8-176-i1" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mrow><m:mo>&#8970;</m:mo><m:mrow><m:mfrac><m:mrow><m:mi>n</m:mi><m:mo>&#8722;</m:mo><m:mn>1</m:mn></m:mrow><m:mn>2</m:mn></m:mfrac></m:mrow><m:mo>&#8971;</m:mo></m:mrow></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaadaGbdaqaamaalaaabaGaemOBa4MaeyOeI0IaeGymaedabaGaeGOmaidaaaGaayj84laawUp+aaaa@3608@</m:annotation></m:semantics></m:math></inline-formula> failures. All WDH-codes where n is an odd number are perfect.</p>
            <p>The 8/4 Hamming-code can only correct &#8804; 25% of the mutations. Four bits are used for information (b3,b2,b1,b0) and the other four bits as parity bits. A complete byte is represented by these eight bits <it>b</it><sub>3</sub>,<it>b</it><sub>3 </sub>&#8853; <it>b</it><sub>2 </sub>&#8853; <it>b</it><sub>1</sub>,<it>b</it><sub>2</sub>, &#172;<it>b</it><sub>2 </sub>&#8853; <it>b</it><sub>1 </sub>&#8853; <it>b</it><sub>0</sub>,<it>b</it><sub>1</sub>, &#172;<it>b</it><sub>3 </sub>&#8853; <it>b</it><sub>1 </sub>&#8853; <it>b</it><sub>0</sub>,<it>b</it><sub>0</sub>, &#172;<it>b</it><sub>3 </sub>&#8853; <it>b</it><sub>2 </sub>&#8853; <it>b</it><sub>0</sub></p>
            <p>which are called h7, h6, h5, h4, h3, h2, h1, h0. To decode the byte, the following parity sums are build:</p>
            <p>&#8226; <it>p </it>= <it>h</it><sub>7 </sub>&#8853; <it>h</it><sub>6 </sub>&#8853; <it>h</it><sub>5 </sub>&#8853; <it>h</it><sub>4 </sub>&#8853; <it>h</it><sub>3 </sub>&#8853; <it>h</it><sub>2 </sub>&#8853; <it>h</it><sub>1 </sub>&#8853; <it>h</it><sub>0</sub></p>
            <p><it>c</it><sub>0 </sub>= <it>h</it><sub>7 </sub>&#8853; <it>h</it><sub>5 </sub>&#8853; <it>h</it><sub>1 </sub>&#8853; <it>h</it><sub>0</sub></p>
            <p><it>c</it><sub>1 </sub>= <it>h</it><sub>7 </sub>&#8853; <it>h</it><sub>3 </sub>&#8853; <it>h</it><sub>2 </sub>&#8853; <it>h</it><sub>1</sub></p>
            <p><it>c</it><sub>2 </sub>= <it>h</it><sub>5 </sub>&#8853; <it>h</it><sub>4 </sub>&#8853; <it>h</it><sub>3 </sub>&#8853; <it>h</it><sub>1</sub></p>
            <p>If <it>p </it>= 1 there are 0 or 2 failures in the byte. The byte was transmitted correct, if the parity bits <it>c</it><sub>0</sub>, <it>c</it><sub>1</sub>, <it>c</it><sub>2 </sub>are correct, which means equal to 1. If not, there happened 2 failures, which cannot be corrected.</p>
            <p>If <it>p </it>= 0 there is 1 failure in the byte which can be corrected using table <tblr tid="T5">5</tblr>.</p>
            <tbl id="T5">
               <title>
                  <p>Table 5</p>
               </title>
               <caption>
                  <p>The 8/4 Hamming-code correction table</p>
               </caption>
               <tblbdy cols="4">
                  <r>
                     <c ca="center">
                        <p>
                           <it>c</it>
                           <sub>0</sub>
                        </p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>c</it>
                           <sub>1</sub>
                        </p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>c</it>
                           <sub>2</sub>
                        </p>
                     </c>
                     <c ca="center">
                        <p>failure</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="4">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>6</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>4</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>2</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>0</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>7</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>5</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>1</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>3</sub>
                        </p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>0</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>h</it>
                           <sub>1</sub>
                        </p>
                     </c>
                  </r>
               </tblbdy>
            </tbl>
            <p>Only one of four bits can be corrected. But not all mutations can be corrected by the 8/4 Hamming-code. Failures which only differ in one bit can be corrected, e.g. 00 &#8596; 01 or 11 &#8596; 10. Failures like 00 &#8596; 11 or 10 &#8596; 01 cannot be corrected.</p>
            <p>The limiting resource for mutation correction is not the time, but the space. The advantage of the 8/4 Hamming-code is that it is very compact. The space requirements of the 8/4 Hamming-code is <it>f</it>(<it>n</it>) = 2<it>n </it>&#8712; &#920;(<it>n</it>). In contrast to <inline-formula><m:math name="1471-2105-8-176-i2" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mi>f</m:mi><m:mo stretchy="false">(</m:mo><m:mi>n</m:mi><m:mo stretchy="false">)</m:mo><m:mo>=</m:mo><m:mrow><m:mo>{</m:mo><m:mrow><m:mtable><m:mtr><m:mtd><m:mrow><m:msup><m:mi>n</m:mi><m:mn>2</m:mn></m:msup><m:mo>,</m:mo><m:mtext>&#160;</m:mtext><m:mi>n</m:mi><m:mtext>&#160;</m:mtext><m:mi>i</m:mi><m:mi>s</m:mi><m:mtext>&#160;</m:mtext><m:mi>a</m:mi><m:mi>n</m:mi><m:mtext>&#160;</m:mtext><m:mi>o</m:mi><m:mi>d</m:mi><m:mi>d</m:mi><m:mtext>&#160;</m:mtext><m:mi>n</m:mi><m:mi>u</m:mi><m:mi>m</m:mi><m:mi>b</m:mi><m:mi>e</m:mi><m:mi>r</m:mi></m:mrow></m:mtd></m:mtr><m:mtr><m:mtd><m:mrow><m:msup><m:mi>n</m:mi><m:mn>2</m:mn></m:msup><m:mo>+</m:mo><m:mi>n</m:mi><m:mo>,</m:mo><m:mtext>&#160;</m:mtext><m:mi>e</m:mi><m:mi>l</m:mi><m:mi>s</m:mi><m:mi>e</m:mi></m:mrow></m:mtd></m:mtr></m:mtable></m:mrow><m:mo>}</m:mo></m:mrow><m:mo>&#8712;</m:mo><m:mi>&#920;</m:mi><m:mo stretchy="false">(</m:mo><m:msup><m:mi>n</m:mi><m:mn>2</m:mn></m:msup><m:mo stretchy="false">)</m:mo></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaacqWGMbGzcqGGOaakcqWGUbGBcqGGPaqkcqGH9aqpdaGadeqaauaabeqaceaaaeaacqWGUbGBdaahaaWcbeqaaiabikdaYaaakiabcYcaSiabbccaGiabd6gaUjabbccaGiabdMgaPjabdohaZjabbccaGiabdggaHjabd6gaUjabbccaGiabd+gaVjabdsgaKjabdsgaKjabbccaGiabd6gaUjabdwha1jabd2gaTjabdkgaIjabdwgaLjabdkhaYbqaaiabd6gaUnaaCaaaleqabaGaeGOmaidaaOGaey4kaSIaemOBa4MaeiilaWIaeeiiaaIaemyzauMaemiBaWMaem4CamNaemyzaugaaaGaay5Eaiaaw2haaiabgIGiolabfI5arjabcIcaOiabd6gaUnaaCaaaleqabaGaeGOmaidaaOGaeiykaKcaaa@620B@</m:annotation></m:semantics></m:math></inline-formula> for the WDH-code.</p>
            <p>For example to encode one byte, which means a DNA sequence of four bases, the 8/4 Hamming-code needs eight synonymous codons instead of twenty synonymous codons for the 5-times WDH-code. In contrast to the data published by Arita et al. we can not only exibit error detection but error corrections which enables us to maintain the data. This obviously represents an important advantage.</p>
         </sec>
         <sec>
            <st>
               <p>fuzzy controller</p>
            </st>
            <p>The integrated fuzzy controller decides and recommends whether to use the 8/4 Hamming-code, the WDH-code or no mutation correction for optimal performance <abbrgrp><abbr bid="B11">11</abbr><abbr bid="B12">12</abbr><abbr bid="B13">13</abbr><abbr bid="B14">14</abbr></abbrgrp> [see Additional file <supplr sid="S2">2</supplr>]. It uses the Singleton-fuzzyfication and has three input dimensions with each separated into three triangular sets. The first dimension is the individual mutation rate (<it>&#966;</it>) of the DNA sequence containing the secret message (Figure <figr fid="F5">5</figr>). This is based on a standard mutation rate, by default 1 * 10<sup>-7 </sup>for prokaryotes and 1 * 10<sup>-10 </sup>for eukaryotes, which is changed by specific mutation rates (<it>&#945;</it><sub><it>i</it></sub>) for each base pair. These changes are based on the transversion and transition rate and in addition on the stability (<it>&#948;</it>) of GC rich regions.</p>
            <suppl id="S2">
               <title>
                  <p>Additional file 2</p>
               </title>
               <text>
                  <p>The fuzzy controller.</p>
               </text>
               <file name="1471-2105-8-176-S2.jar">
                  <p>Click here for file</p>
               </file>
            </suppl>
            <fig id="F5">
               <title>
                  <p>Figure 5</p>
               </title>
               <caption>
                  <p>The first input dimension</p>
               </caption>
               <text>
                  <p><b>The first input dimension</b>. The first input dimension of the fuzzy controller is the mutation rate. The first input dimension is separated intro three triangular sets <it>X</it><sub><it>i </it></sub>= (<it>a</it><sub><it>m</it></sub>, <it>a</it><sub><it>&#955;</it></sub>, <it>a</it><sub><it>&#961;</it></sub>). The first called "<it>low</it>" = (0, 0, 6) describes a low mutation rate. The second "<it>middle</it>" = (10, 4, 16) and the third "<it>high</it>" = (20, 14, 20) describe a middle and a high mutation rate.</p>
               </text>
               <graphic file="1471-2105-8-176-5"/>
            </fig>
            <p>&#8226; <inline-formula><m:math name="1471-2105-8-176-i3" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:mi>&#966;</m:mi><m:mo>=</m:mo><m:mstyle displaystyle="true"><m:msubsup><m:mo>&#8721;</m:mo><m:mrow><m:mi>i</m:mi><m:mo>=</m:mo><m:mn>0</m:mn></m:mrow><m:mn>3</m:mn></m:msubsup><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mi>i</m:mi></m:msub><m:mo>/</m:mo><m:mn>4</m:mn></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaaiiGacqWFgpGzcqGH9aqpdaaeWaqaaiab=f7aHnaaBaaaleaacqWGPbqAaeqaaOGaei4la8IaeGinaqdaleaacqWGPbqAcqGH9aqpcqaIWaamaeaacqaIZaWma0GaeyyeIuoaaaa@3ABE@</m:annotation></m:semantics></m:math></inline-formula></p>
            <p>&#8226; <inline-formula><m:math name="1471-2105-8-176-i4" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mn>0</m:mn></m:msub><m:mo>=</m:mo><m:mo>#</m:mo><m:mi>C</m:mi><m:mo>&#8727;</m:mo><m:mo stretchy="false">(</m:mo><m:mstyle displaystyle="true"><m:msubsup><m:mo>&#8721;</m:mo><m:mrow><m:mi>i</m:mi><m:mo>=</m:mo><m:mi>A</m:mi><m:mo>,</m:mo><m:mi>G</m:mi><m:mo>,</m:mo><m:mi>T</m:mi></m:mrow><m:mn>3</m:mn></m:msubsup><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mrow><m:mi>C</m:mi><m:mi>i</m:mi></m:mrow></m:msub><m:mo>/</m:mo><m:mn>3</m:mn><m:mo stretchy="false">)</m:mo><m:mo>/</m:mo><m:mi>&#948;</m:mi></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaaiiGacqWFXoqydaWgaaWcbaGaeGimaadabeaakiabg2da9iabcocaJiabdoeadjabgEHiQiabcIcaOmaaqadabaGae8xSde2aaSbaaSqaaiabdoeadjabdMgaPbqabaGccqGGVaWlcqaIZaWmcqGGPaqkcqGGVaWlcqWF0oazaSqaaiabdMgaPjabg2da9iabdgeabjabcYcaSiabdEeahjabcYcaSiabdsfaubqaaiabiodaZaqdcqGHris5aaaa@47FE@</m:annotation></m:semantics></m:math></inline-formula></p>
            <p>&#8226; <inline-formula><m:math name="1471-2105-8-176-i5" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mn>1</m:mn></m:msub><m:mo>=</m:mo><m:mo>#</m:mo><m:mi>G</m:mi><m:mo>&#8727;</m:mo><m:mo stretchy="false">(</m:mo><m:mstyle displaystyle="true"><m:msubsup><m:mo>&#8721;</m:mo><m:mrow><m:mi>i</m:mi><m:mo>=</m:mo><m:mi>A</m:mi><m:mo>,</m:mo><m:mi>C</m:mi><m:mo>,</m:mo><m:mi>T</m:mi></m:mrow><m:mn>3</m:mn></m:msubsup><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mrow><m:mi>G</m:mi><m:mi>i</m:mi></m:mrow></m:msub><m:mo>/</m:mo><m:mn>3</m:mn><m:mo stretchy="false">)</m:mo><m:mo>/</m:mo><m:mi>&#948;</m:mi></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaaiiGacqWFXoqydaWgaaWcbaGaeGymaedabeaakiabg2da9iabcocaJiabdEeahjabgEHiQiabcIcaOmaaqadabaGae8xSde2aaSbaaSqaaiabdEeahjabdMgaPbqabaGccqGGVaWlcqaIZaWmcqGGPaqkcqGGVaWlcqWF0oazaSqaaiabdMgaPjabg2da9iabdgeabjabcYcaSiabdoeadjabcYcaSiabdsfaubqaaiabiodaZaqdcqGHris5aaaa@4808@</m:annotation></m:semantics></m:math></inline-formula></p>
            <p>&#8226; <inline-formula><m:math name="1471-2105-8-176-i6" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mn>2</m:mn></m:msub><m:mo>=</m:mo><m:mo>#</m:mo><m:mi>A</m:mi><m:mo>&#8727;</m:mo><m:mstyle displaystyle="true"><m:msubsup><m:mo>&#8721;</m:mo><m:mrow><m:mi>i</m:mi><m:mo>=</m:mo><m:mi>C</m:mi><m:mo>,</m:mo><m:mi>G</m:mi><m:mo>,</m:mo><m:mi>T</m:mi></m:mrow><m:mn>3</m:mn></m:msubsup><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mrow><m:mi>A</m:mi><m:mi>i</m:mi></m:mrow></m:msub><m:mo>/</m:mo><m:mn>3</m:mn></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaaiiGacqWFXoqydaWgaaWcbaGaeGOmaidabeaakiabg2da9iabcocaJiabdgeabjabgEHiQmaaqadabaGae8xSde2aaSbaaSqaaiabdgeabjabdMgaPbqabaGccqGGVaWlcqaIZaWmaSqaaiabdMgaPjabg2da9iabdoeadjabcYcaSiabdEeahjabcYcaSiabdsfaubqaaiabiodaZaqdcqGHris5aaaa@43C6@</m:annotation></m:semantics></m:math></inline-formula></p>
            <p>&#8226; <inline-formula><m:math name="1471-2105-8-176-i7" xmlns:m="http://www.w3.org/1998/Math/MathML"><m:semantics><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mn>3</m:mn></m:msub><m:mo>=</m:mo><m:mo>#</m:mo><m:mi>T</m:mi><m:mo>&#8727;</m:mo><m:mstyle displaystyle="true"><m:msubsup><m:mo>&#8721;</m:mo><m:mrow><m:mi>i</m:mi><m:mo>=</m:mo><m:mi>A</m:mi><m:mo>,</m:mo><m:mi>C</m:mi><m:mo>,</m:mo><m:mi>G</m:mi></m:mrow><m:mn>3</m:mn></m:msubsup><m:mrow><m:msub><m:mi>&#945;</m:mi><m:mrow><m:mi>T</m:mi><m:mi>i</m:mi></m:mrow></m:msub><m:mo>/</m:mo><m:mn>3</m:mn></m:mrow></m:mstyle></m:mrow><m:annotation encoding="MathType-MTEF">
 MathType@MTEF@5@5@+=feaafiart1ev1aaatCvAUfKttLearuWrP9MDH5MBPbIqV92AaeXatLxBI9gBaebbnrfifHhDYfgasaacH8akY=wiFfYdH8Gipec8Eeeu0xXdbba9frFj0=OqFfea0dXdd9vqai=hGuQ8kuc9pgc9s8qqaq=dirpe0xb9q8qiLsFr0=vr0=vr0dc8meaabaqaciaacaGaaeqabaqabeGadaaakeaaiiGacqWFXoqydaWgaaWcbaGaeG4mamdabeaakiabg2da9iabcocaJiabdsfaujabgEHiQmaaqadabaGae8xSde2aaSbaaSqaaiabdsfaujabdMgaPbqabaGccqGGVaWlcqaIZaWmaSqaaiabdMgaPjabg2da9iabdgeabjabcYcaSiabdoeadjabcYcaSiabdEeahbqaaiabiodaZaqdcqGHris5aaaa@43EE@</m:annotation></m:semantics></m:math></inline-formula></p>
            <p>The first input dimension is separated into three triangular sets <it>X</it><sub><it>i </it></sub>= (<it>a</it><sub><it>m</it></sub>, <it>a</it><sub><it>&#955;</it></sub>, <it>a</it><sub><it>&#961;</it></sub>) <abbrgrp><abbr bid="B15">15</abbr><abbr bid="B16">16</abbr><abbr bid="B17">17</abbr><abbr bid="B18">18</abbr><abbr bid="B19">19</abbr><abbr bid="B20">20</abbr></abbrgrp>. The first called "<it>low</it>" = (0, 0, 6) describes a low mutation rate. The second "<it>middle</it>" = (10, 4, 16) and the third "<it>high</it>" = (20, 14, 20) describes a middle and a high mutation rate.</p>
            <p>The second input dimension is the length of the DNA sequence containing the secret message (Figure <figr fid="F6">6</figr>).</p>
            <p>The triangular sets are "<it>short</it>" = (0, 0, 24), "<it>middle</it>" = (40, 16, 64) and "<it>long</it>" = (80, 56, 80).</p>
            <fig id="F6">
               <title>
                  <p>Figure 6</p>
               </title>
               <caption>
                  <p>The second input dimension</p>
               </caption>
               <text>
                  <p><b>The second input dimension</b>. The second input dimension of the fuzzy controller is the length of the sequence containing the encrypted message. The triangular sets are "<it>short</it>" = (0, 0, 24), "<it>middle</it>" = (40, 16, 64) and "<it>long</it>" = (80, 56, 80).</p>
               </text>
               <graphic file="1471-2105-8-176-6"/>
            </fig>
            <p>The third input dimension is the stability over time, which is represented by the number of generations (Figure <figr fid="F7">7</figr>). It is separated into "<it>low</it>" = (0, 0, 400), "<it>middle</it>" = (500, 100, 900) and "<it>high</it>" = (1000, 600, 1000).</p>
            <fig id="F7">
               <title>
                  <p>Figure 7</p>
               </title>
               <caption>
                  <p>The third input dimension</p>
               </caption>
               <text>
                  <p><b>The third input dimension</b>. The third input dimension is the stability over time, which is represented by the number of generations. It is separated into "<it>low</it>" = (0, 0, 400), "<it>middle</it>" = (500, 100, 900) and "<it>high</it>" = (1000, 600, 1000).</p>
               </text>
               <graphic file="1471-2105-8-176-7"/>
            </fig>
            <p>The three input dimensions are linked through a set of rules based on heuristics to one output dimension [see Additional file <supplr sid="S3">3</supplr>]. The maximum of each correction code means a cut on the y axis (Figure <figr fid="F8">8</figr>). In the next step the fuzzy controller decides, whether to use an 8/4 Hamming-code, a WDH-code or no mutation correction by using the first-maximum method and recommends it to the user.</p>
            <suppl id="S3">
               <title>
                  <p>Additional file 3</p>
               </title>
               <text>
                  <p>The set of rules for the fuzzy-controller.</p>
               </text>
               <file name="1471-2105-8-176-S3.txt">
                  <p>Click here for file</p>
               </file>
            </suppl>
            <fig id="F8">
               <title>
                  <p>Figure 8</p>
               </title>
               <caption>
                  <p>The output dimension of the fuzzy controller</p>
               </caption>
               <text>
                  <p><b>The output dimension of the fuzzy controller</b>. The triangular sets are "<it>none</it>" = (0, 0, 400), "<it>Hamming &#8211; code</it>" = (500, 100, 900) and "<it>WDH &#8211; code</it>" = (1000, 600, 1000). The maximum of a triangular set, calculated by the set of heuristics of the fuzzy controller, means a cut on the y axis. A cut at 0.28 for none correction code, at 0.67 for Hamming-code and at 0.45 for the WDH-code is shown. The first-of-maximum (fom) represents the recommended correction code, in this case the fuzzy controller recommends the Hamming-code.</p>
               </text>
               <graphic file="1471-2105-8-176-8"/>
            </fig>
         </sec>
      </sec>
      <sec>
         <st>
            <p>Results</p>
         </st>
         <p>The program described above was tested by <it>in silico </it>experiments using the DNA sequence encoding the Ypt7 in <it>Saccharomyces cerevisiae</it>.</p>
         <sec>
            <st>
               <p>Ypt7</p>
            </st>
            <p>The small GTPases termed Ypt in yeast and Rab in higher eukaryotes are molecular switches in cellular transport processes <abbrgrp><abbr bid="B21">21</abbr></abbrgrp>. Each Ypt protein is localized to the membrane of specific intracellular compartments and highly specific for a particular transport step <abbrgrp><abbr bid="B22">22</abbr></abbrgrp>.</p>
            <p>The Ypt7 GTPase from <it>S. cerevisiae </it>is involved in late endosome-to-vacuole transport and vacuole fusion events <abbrgrp><abbr bid="B23">23</abbr><abbr bid="B24">24</abbr></abbrgrp>. Ypt7 is one of the 11 members of the <it>S. cerevisiae </it>Ypt family and is homologous to mammalian Rab7.</p>
            <p>Analysis of the Ypt7 DNA sequence showed that 32% of the codons allow synonymous substitutions, resulting in 16 bytes, which could be encrypted (Table <tblr tid="T6">6</tblr>). The first steganogram contains the message "this is a test" and the second one "yet another test" [see Additional file <supplr sid="S4">4</supplr>].</p>
            <tbl id="T6">
               <title>
                  <p>Table 6</p>
               </title>
               <caption>
                  <p>DNA-Crypt analysis of the Ypt7 DNA sequence. It is possible to encrypt 16.5 bytes in the Ypt7 DNA sequence.</p>
               </caption>
               <tblbdy cols="4">
                  <r>
                     <c ca="center">
                        <p>name</p>
                     </c>
                     <c ca="center">
                        <p>amino acids</p>
                     </c>
                     <c ca="center">
                        <p>syn. codons</p>
                     </c>
                     <c ca="center">
                        <p>bytes</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="4">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>Ypt7</p>
                     </c>
                     <c ca="center">
                        <p>206</p>
                     </c>
                     <c ca="center">
                        <p>32.039%</p>
                     </c>
                     <c ca="center">
                        <p>16.5</p>
                     </c>
                  </r>
               </tblbdy>
            </tbl>
            <suppl id="S4">
               <title>
                  <p>Additional file 4</p>
               </title>
               <text>
                  <p>The DNA sequences of the Ypt7 and the two steganograms.</p>
               </text>
               <file name="1471-2105-8-176-S4.txt">
                  <p>Click here for file</p>
               </file>
            </suppl>
            <p>The results of the analyses of these steganograms with the fuzzy controller are shown in table <tblr tid="T7">7</tblr>. Translation with DNA-Crypt and the <it>Expasy Translate Tool </it>shows that the translated amino acid sequences are identical <abbrgrp><abbr bid="B25">25</abbr></abbrgrp>.</p>
            <tbl id="T7">
               <title>
                  <p>Table 7</p>
               </title>
               <caption>
                  <p>Ypt7 steganogram fuzzy controller results</p>
               </caption>
               <tblbdy cols="3">
                  <r>
                     <c ca="center">
                        <p>name</p>
                     </c>
                     <c ca="center">
                        <p>
                           <it>&#966;</it>
                        </p>
                     </c>
                     <c ca="center">
                        <p>correction code</p>
                     </c>
                  </r>
                  <r>
                     <c cspan="3">
                        <hr/>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>steganogram 1</p>
                     </c>
                     <c ca="center">
                        <p>9.48</p>
                     </c>
                     <c ca="center">
                        <p>8/4 Hamming-code</p>
                     </c>
                  </r>
                  <r>
                     <c ca="center">
                        <p>steganogram 2</p>
                     </c>
                     <c ca="center">
                        <p>10.5</p>
                     </c>
                     <c ca="center">
                        <p>8/4 Hamming-code</p>
                     </c>
                  </r>
               </tblbdy>
            </tbl>
            <p>The pairwise and the multiple sequence alignments show a few mismatches between the three sequences (Figures <figr fid="F9">9</figr>, <figr fid="F10">10</figr>, <figr fid="F11">11</figr>).</p>
            <fig id="F9">
               <title>
                  <p>Figure 9</p>
               </title>
               <caption>
                  <p>Dotplot of Ypt7 and steganogram 1</p>
               </caption>
               <text>
                  <p><b>Dotplot of Ypt7 and steganogram 1</b>. Pairwise sequence alignment with <it>Dotlet </it>between the original sequence and the steganogram containing "this is a test" [26].</p>
               </text>
               <graphic file="1471-2105-8-176-9"/>
            </fig>
            <fig id="F10">
               <title>
                  <p>Figure 10</p>
               </title>
               <caption>
                  <p>Dotplot of Ypt7 and steganogram 2</p>
               </caption>
               <text>
                  <p><b>Dotplot of Ypt7 and steganogram 2</b>. Pairwise sequence alignment with <it>Dotlet </it>between the original sequence and the steganogram containing "yet another test" [26].</p>
               </text>
               <graphic file="1471-2105-8-176-10"/>
            </fig>
            <fig id="F11">
               <title>
                  <p>Figure 11</p>
               </title>
               <caption>
                  <p>Multiple sequence alignment</p>
               </caption>
               <text>
                  <p><b>Multiple sequence alignment</b>. Multiple sequence alignment of the original sequence and two steganograms [27].</p>
               </text>
               <graphic file="1471-2105-8-176-11"/>
            </fig>
            <p>The pairwise sequence alignment was performed with <it>Dotlet </it>and the multiple sequence alignment was performed using <it>ClustalW </it>of the <it>European Bioinformatics Institute </it>with standard settings <abbrgrp><abbr bid="B26">26</abbr><abbr bid="B27">27</abbr></abbrgrp>.</p>
         </sec>
      </sec>
      <sec>
         <st>
            <p>Discussion</p>
         </st>
         <p>DNA-Crypt produces few sequence mismatches similar to the low noise in image steganography. In case of image steganography one can look at the least significant bits to attack the steganographic algorithms. To attack DNA steganography one can perform pairwise or multiple sequence alignments with the original sequences.</p>
      </sec>
      <sec>
         <st>
            <p>Conclusion</p>
         </st>
         <p>The DNA-Crypt algorithm can encode cryptic messages into DNA sequences, which can be used as watermarks for authentication. DNA-Crypt is a substantial extension to other steganographic algorithms based on DNA, which can be used in combination with a binary encryption algorithm such as AES, RSA or Blowfish and a mutation correction code such as the Hamming-code or the WDH-code. The most appropriate code of these correction codes can be selected by a fuzzy controller, which uses three input dimensions.</p>
         <p>Mutations, which cause changes in the reading frame, are problematic and are not appropriate for DNA steganography. Mutations, which change a non-synonymous codon to a synonymous codon or vice versa are more important as these mutations cause errors in the encrypted information. The relevance of these errors depends on the encrypted information. If the encrypted information is an image, e.g. a logo, there would be only a linear colour shift in the image, which is not very relevant and can be corrected very easily. However if the encrypted information must remain correct, e.g. a password, the WDH-code must be used to detect these mutations.</p>
         <p>We have not encoutered any problems so far performing our <it>in silico </it>analyses using DNA-Crypt watermarks in DNA coding regions. The use of DNA-Crypt in non-coding sequences like a regulatory RNA sequence or promoter, and enhancer sequences has to be tested <it>in silico </it>and <it>in vivo</it>. Further analyses to clarify, whether alternative splicing events pose a problem for watermarks still have to be carried out. In conclusion DNA-Crypt algorithm represents an interesting tool for hiding authenticating watermarks within coding DNA sequences <it>in silico </it>and most probably in living organisms without affecting the process of protein translation and protein function.</p>
      </sec>
      <sec>
         <st>
            <p>Availability and requirements</p>
         </st>
         <p><b>Project Name: </b>DNA-Crypt</p>
         <p>
            <b>Project Homepage: </b>
            <url>http://www.uni-muenster.de/Biologie.NeuroVer/Tumorbiologie/DNA-Crypt/index.html</url>
         </p>
         <p><b>Operating Systems: </b>Cross-platform</p>
         <p><b>Programming Language: </b>Java 5.0 or higher</p>
      </sec>
      <sec>
         <st>
            <p>Authors' contributions</p>
         </st>
         <p>DH: conception, software development, sequence alignments, figure preparation, manuscript preparation</p>
         <p>AB: conception, design, manuscript preparation, coordination, research funds collection. The authors read and approved the final manuscript.</p>
      </sec>
   </bdy>
   <bm>
      <ack>
         <sec>
            <st>
               <p>Acknowledgements</p>
            </st>
            <p>The authors thank Prof. Dr. Achim Clausing and Dr. Mark Kail for critical reading the manuscript. This work is part of the PhD thesis of DH.</p>
         </sec>
      </ack>
      <refgrp>
         <bibl id="B1">
            <title>
               <p>Hiding messages in DNA microdots</p>
            </title>
            <aug>
               <au>
                  <snm>Clelland</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Risca</snm>
                  <fnm>V</fnm>
               </au>
               <au>
                  <snm>Bancroft</snm>
                  <fnm>C</fnm>
               </au>
            </aug>
            <source>Nature</source>
            <pubdate>1999</pubdate>
            <volume>399</volume>
            <fpage>533</fpage>
            <lpage>534</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1038/21092</pubid>
                  <pubid idtype="pmpid" link="fulltext">10376592</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B2">
            <title>
               <p>DNA-based cryptography</p>
            </title>
            <aug>
               <au>
                  <snm>Gehani</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>LaBean</snm>
                  <fnm>TH</fnm>
               </au>
               <au>
                  <snm>Reif</snm>
                  <fnm>JH</fnm>
               </au>
            </aug>
            <source>Dimacs Series In Discrete Mathematics and Theoretical Computer Science</source>
            <pubdate>2000</pubdate>
            <volume>54</volume>
            <fpage>233</fpage>
            <lpage>249</lpage>
         </bibl>
         <bibl id="B3">
            <title>
               <p>Cryptography with DNA binary strands</p>
            </title>
            <aug>
               <au>
                  <snm>Leier</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Richter</snm>
                  <fnm>C</fnm>
               </au>
               <au>
                  <snm>Banzhaf</snm>
                  <fnm>W</fnm>
               </au>
               <au>
                  <snm>Rauhe</snm>
                  <fnm>H</fnm>
               </au>
            </aug>
            <source>BioSystems</source>
            <pubdate>2000</pubdate>
            <volume>57</volume>
            <fpage>13</fpage>
            <lpage>22</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1016/S0303-2647(00)00083-6</pubid>
                  <pubid idtype="pmpid" link="fulltext">10963862</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B4">
            <title>
               <p>Organic data memory using the DNA approach</p>
            </title>
            <aug>
               <au>
                  <snm>Wong</snm>
                  <fnm>PC</fnm>
               </au>
               <au>
                  <snm>Wong</snm>
                  <fnm>KK</fnm>
               </au>
               <au>
                  <snm>Foote</snm>
                  <fnm>H</fnm>
               </au>
            </aug>
            <source>Communications of the ACM</source>
            <pubdate>2003</pubdate>
            <volume>46</volume>
         </bibl>
         <bibl id="B5">
            <title>
               <p>Secret signatures inside genomic DNA</p>
            </title>
            <aug>
               <au>
                  <snm>Arita</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Ohashi</snm>
                  <fnm>Y</fnm>
               </au>
            </aug>
            <source>Biotechnol Prog</source>
            <pubdate>2004</pubdate>
            <volume>20</volume>
            <fpage>1605</fpage>
            <lpage>1607</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1021/bp049917i</pubid>
                  <pubid idtype="pmpid" link="fulltext">15458352</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B6">
            <aug>
               <au>
                  <snm>Schneier</snm>
                  <fnm>B</fnm>
               </au>
            </aug>
            <source>Applied Cryptography</source>
            <publisher>Pearson Education</publisher>
            <pubdate>1996</pubdate>
         </bibl>
         <bibl id="B7">
            <title>
               <p>Announcing the ADVANCED ENCRYPTION STANDARD(AES)</p>
            </title>
            <aug>
               <au>
                  <cnm>Standards of NI Technology</cnm>
               </au>
               <au>
                  <cnm>Eds</cnm>
               </au>
            </aug>
            <source>Federal Information Processing Standards Publication</source>
            <pubdate>2001</pubdate>
            <volume>197</volume>
         </bibl>
         <bibl id="B8">
            <title>
               <p>On digital signatures and public key cryptosystems</p>
            </title>
            <aug>
               <au>
                  <snm>Rivest</snm>
                  <fnm>RL</fnm>
               </au>
               <au>
                  <snm>Shamir</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Adleman</snm>
                  <fnm>L</fnm>
               </au>
               <au>
                  <cnm>Eds</cnm>
               </au>
            </aug>
            <source>MIT Laboratory for Computer Science Technical Memorandum</source>
            <pubdate>1977</pubdate>
            <volume>82</volume>
         </bibl>
         <bibl id="B9">
            <aug>
               <au>
                  <snm>Rivest</snm>
                  <fnm>RL</fnm>
               </au>
               <au>
                  <snm>Shamir</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Adleman</snm>
                  <fnm>L</fnm>
               </au>
               <au>
                  <cnm>Eds</cnm>
               </au>
            </aug>
            <source>A method for obtaining digital signatures and public-key cryptosystems</source>
            <publisher>New York, NY, USA: Communications of the ACM</publisher>
            <pubdate>1978</pubdate>
         </bibl>
         <bibl id="B10">
            <title>
               <p>The data link layer</p>
            </title>
            <aug>
               <au>
                  <snm>Tanenbraum</snm>
                  <fnm>AS</fnm>
               </au>
            </aug>
            <source>Computer Networks</source>
            <publisher>Prentice Hall</publisher>
            <editor>Franz M</editor>
         </bibl>
         <bibl id="B11">
            <title>
               <p>An experiment in linguistic synthesis with a fuzzy logic controller</p>
            </title>
            <aug>
               <au>
                  <snm>Mamdani</snm>
                  <fnm>EH</fnm>
               </au>
            </aug>
            <source>Int. Journal of Man-Maschines Studies</source>
            <pubdate>1975</pubdate>
            <volume>7</volume>
            <fpage>1</fpage>
            <lpage>13</lpage>
         </bibl>
         <bibl id="B12">
            <title>
               <p>Fuzzy logic in control systems: Fuzzy logic controller</p>
            </title>
            <aug>
               <au>
                  <snm>Lee</snm>
                  <fnm>CC</fnm>
               </au>
            </aug>
            <source>IEEE Trans. on Systems Man and Cybernetics</source>
            <pubdate>2000</pubdate>
            <volume>20</volume>
            <fpage>404</fpage>
            <lpage>435</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1109/21.52551</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B13">
            <title>
               <p>An introductory survey of fuzzy control</p>
            </title>
            <aug>
               <au>
                  <snm>Sugeno</snm>
                  <fnm>M</fnm>
               </au>
            </aug>
            <source>Information Science</source>
            <pubdate>1985</pubdate>
            <volume>36</volume>
            <fpage>59</fpage>
            <lpage>83</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1016/0020-0255(85)90026-X</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B14">
            <title>
               <p>Fuzzy identification of systems and its applications to modeling and control</p>
            </title>
            <aug>
               <au>
                  <snm>Sugeno</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Takagi</snm>
                  <fnm>T</fnm>
               </au>
            </aug>
            <source>IEEE Transactions of Systems, Man and Cybernetics</source>
            <pubdate>1985</pubdate>
            <volume>15</volume>
            <fpage>116</fpage>
            <lpage>132</lpage>
         </bibl>
         <bibl id="B15">
            <title>
               <p>Fuzzy sets</p>
            </title>
            <aug>
               <au>
                  <snm>Zadeh</snm>
                  <fnm>LA</fnm>
               </au>
            </aug>
            <source>Information and Control</source>
            <pubdate>1965</pubdate>
            <volume>8</volume>
            <fpage>338</fpage>
            <lpage>353</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1016/S0019-9958(65)90241-X</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B16">
            <title>
               <p>A rationale for fuzzy control</p>
            </title>
            <aug>
               <au>
                  <snm>Zadeh</snm>
                  <fnm>LA</fnm>
               </au>
            </aug>
            <source>Journal of Dynamic Systems, Measurement and Control</source>
            <pubdate>1972</pubdate>
            <volume>94</volume>
            <fpage>3</fpage>
            <lpage>4</lpage>
         </bibl>
         <bibl id="B17">
            <title>
               <p>Outline of a new approach to the analysis of complex systems and decision processes</p>
            </title>
            <aug>
               <au>
                  <snm>Zadeh</snm>
                  <fnm>LA</fnm>
               </au>
            </aug>
            <source>IEEE Transactions of Systems, Man and Cybernetics</source>
            <pubdate>1973</pubdate>
            <volume>3</volume>
            <fpage>28</fpage>
            <lpage>44</lpage>
         </bibl>
         <bibl id="B18">
            <title>
               <p>The concept of linguistic variable and its application to approximate reasing, Part 1</p>
            </title>
            <aug>
               <au>
                  <snm>Zadeh</snm>
                  <fnm>LA</fnm>
               </au>
            </aug>
            <source>Information Sciences</source>
            <pubdate>1975</pubdate>
            <volume>8</volume>
            <fpage>199</fpage>
            <lpage>249</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1016/0020-0255(75)90036-5</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B19">
            <title>
               <p>The concept of linguistic variable and its application to approximate reasing, Part 2</p>
            </title>
            <aug>
               <au>
                  <snm>Zadeh</snm>
                  <fnm>LA</fnm>
               </au>
            </aug>
            <source>Information Sciences</source>
            <pubdate>1975</pubdate>
            <volume>8</volume>
            <fpage>301</fpage>
            <lpage>357</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1016/0020-0255(75)90046-8</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B20">
            <title>
               <p>The concept of linguistic variable and its application to approximate reasing, Part 3</p>
            </title>
            <aug>
               <au>
                  <snm>Zadeh</snm>
                  <fnm>LA</fnm>
               </au>
            </aug>
            <source>Information Sciences</source>
            <pubdate>1975</pubdate>
            <volume>8</volume>
            <fpage>43</fpage>
            <lpage>80</lpage>
            <xrefbib>
               <pubid idtype="doi">10.1016/0020-0255(75)90017-1</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B21">
            <title>
               <p>Chemical biology of protein lipidation: semi-synthesis and structure elucidation of prenylated RabGTPases</p>
            </title>
            <aug>
               <au>
                  <snm>Watzke</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Brunsveld</snm>
                  <fnm>L</fnm>
               </au>
               <au>
                  <snm>Durek</snm>
                  <fnm>T</fnm>
               </au>
               <au>
                  <snm>Alexandrov</snm>
                  <fnm>K</fnm>
               </au>
               <au>
                  <snm>Rak</snm>
                  <fnm>A</fnm>
               </au>
               <au>
                  <snm>Goody</snm>
                  <fnm>R</fnm>
               </au>
               <au>
                  <snm>Waldmann</snm>
                  <fnm>H</fnm>
               </au>
            </aug>
            <source>Org Biomol Chem</source>
            <pubdate>2005</pubdate>
            <volume>3</volume>
            <fpage>1157</fpage>
            <lpage>1164</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1039/b417573e</pubid>
                  <pubid idtype="pmpid" link="fulltext">15785799</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B22">
            <title>
               <p>The full complement of yeast Ypt/Rab-GTPases and their involvement in exo- and endocytic trafficking</p>
            </title>
            <aug>
               <au>
                  <snm>Gotte</snm>
                  <fnm>M</fnm>
               </au>
               <au>
                  <snm>Lazar</snm>
                  <fnm>T</fnm>
               </au>
               <au>
                  <snm>Yoo</snm>
                  <fnm>J</fnm>
               </au>
               <au>
                  <snm>Scheglmann</snm>
                  <fnm>D</fnm>
               </au>
               <au>
                  <snm>Gallwitz</snm>
                  <fnm>D</fnm>
               </au>
            </aug>
            <source>Subcell Biochem</source>
            <pubdate>2000</pubdate>
            <volume>34</volume>
            <fpage>133</fpage>
            <lpage>173</lpage>
            <xrefbib>
               <pubid idtype="pmpid">10808333</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B23">
            <title>
               <p>Endocytosis in yeast: evidence for the involvement of a small GTP-binding protein (Ypt7p)</p>
            </title>
            <aug>
               <au>
                  <snm>Wichmann</snm>
                  <fnm>H</fnm>
               </au>
               <etal/>
            </aug>
            <source>Cell</source>
            <pubdate>1992</pubdate>
            <volume>71</volume>
            <fpage>1131</fpage>
            <lpage>1142</lpage>
            <xrefbib>
               <pubidlist>
                  <pubid idtype="doi">10.1016/S0092-8674(05)80062-5</pubid>
                  <pubid idtype="pmpid" link="fulltext">1473149</pubid>
               </pubidlist>
            </xrefbib>
         </bibl>
         <bibl id="B24">
            <title>
               <p>Involvement of Ypt7p, a small GTPase, in traffic from late endosome to the vacuole in yeast</p>
            </title>
            <aug>
               <au>
                  <snm>Schimoller</snm>
                  <fnm>F</fnm>
               </au>
               <au>
                  <snm>Riezmann</snm>
                  <fnm>H</fnm>
               </au>
            </aug>
            <source>J Cell Sci</source>
            <pubdate>1993</pubdate>
            <volume>106</volume>
            <fpage>823</fpage>
            <lpage>830</lpage>
            <xrefbib>
               <pubid idtype="pmpid" link="fulltext">8308065</pubid>
            </xrefbib>
         </bibl>
         <bibl id="B25">
            <title>
               <p>ExPASy - Translate tool</p>
            </title>
            <url>http://us.expasy.org/tools/dna.html</url>
         </bibl>
         <bibl id="B26">
            <title>
               <p>Swiss Institute for Experimental Cancer Research Dotlet</p>
            </title>
            <url>http://www.isrec.isb-sib.ch/java/dotlet/Dotlet.html</url>
         </bibl>
         <bibl id="B27">
            <title>
               <p>European Bioinformatics Institute ClustalW</p>
            </title>
            <url>http://www.ebi.ac.uk</url>
         </bibl>
      </refgrp>
   </bm>
</art>
