<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Bioeng. Biotechnol.</journal-id>
<journal-title>Frontiers in Bioengineering and Biotechnology</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Bioeng. Biotechnol.</abbrev-journal-title>
<issn pub-type="epub">2296-4185</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1173763</article-id>
<article-id pub-id-type="doi">10.3389/fbioe.2023.1173763</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Bioengineering and Biotechnology</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>An image cryptography method by highly error-prone DNA storage channel</article-title>
<alt-title alt-title-type="left-running-head">Zan et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fbioe.2023.1173763">10.3389/fbioe.2023.1173763</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zan</surname>
<given-names>Xiangzhen</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="fn" rid="fn1">
<sup>&#x2020;</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chu</surname>
<given-names>Ling</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="fn" rid="fn1">
<sup>&#x2020;</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Xie</surname>
<given-names>Ranze</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Su</surname>
<given-names>Yanqing</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Yao</surname>
<given-names>Xiangyu</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Xu</surname>
<given-names>Peng</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/963034/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Liu</surname>
<given-names>Wenbin</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/886686/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>Institute of Computational Science and Technology</institution>, <institution>Guangzhou University</institution>, <addr-line>Guangzhou</addr-line>, <addr-line>Guangdong</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>School of Computer Science of Information Technology</institution>, <institution>Qiannan Normal University for Nationalities</institution>, <addr-line>Duyun</addr-line>, <addr-line>Guizhou</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>Guangdong Provincial Key Laboratory of Artificial Intelligence in Medical Image Analysis and Application</institution>, <addr-line>Guangzhou</addr-line>, <addr-line>Guangdong</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/622003/overview">Jose Ruben Morones-Ramirez</ext-link>, Autonomous University of Nuevo Le&#xf3;n, Mexico</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2228358/overview">Chanjuan Liu</ext-link>, Dalian University of Technology, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1316895/overview">Tao Song</ext-link>, China University of Petroleum, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2241749/overview">Henry Han</ext-link>, Baylor University, United States</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Peng Xu, <email>gdxupeng@gzhu.edu.cn</email>; Wenbin Liu, <email>wbliu6910@gzhu.edu.cn</email>
</corresp> <fn fn-type="equal" id="fn1">
<label>
<sup>&#x2020;</sup>
</label>
<p>These authors contributed equally to the work</p>
</fn>
<fn fn-type="other">
<p>This article was submitted to Synthetic Biology, a section of the journal Frontiers in Bioengineering and Biotechnology</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>19</day>
<month>04</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1173763</elocation-id>
<history>
<date date-type="received">
<day>25</day>
<month>02</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>30</day>
<month>03</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Zan, Chu, Xie, Su, Yao, Xu and Liu.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Zan, Chu, Xie, Su, Yao, Xu and Liu</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>
<bold>Introduction:</bold> Rapid development in synthetic technologies has boosted DNA as a potential medium for large-scale data storage. Meanwhile, how to implement data security in the DNA storage system is still an unsolved problem.</p>
<p>
<bold>Methods:</bold> In this article, we propose an image encryption method based on the modulation-based storage architecture. The key idea is to take advantage of the unpredictable modulation signals to encrypt images in highly error-prone DNA storage channels.</p>
<p>
<bold>Results and Discussion:</bold> Numerical results have demonstrated that our image encryption method is feasible and effective with excellent security against various attacks (statistical, differential, noise, and data loss). When compared with other methods such as the hybridization reactions of DNA molecules, the proposed method is more reliable and feasible for large-scale applications.</p>
</abstract>
<kwd-group>
<kwd>image encryption</kwd>
<kwd>DNA storage</kwd>
<kwd>highly error-prone DNA storage channel</kwd>
<kwd>multiple sequence alignment</kwd>
<kwd>information security</kwd>
</kwd-group>
<contract-num rid="cn001">62071228 62002079</contract-num>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>As the storage medium of genetic information, DNA molecules have the advantage of long durability, high density, and low cost. Recent advancements in their synthesis and sequencing technologies have made DNA a promising medium to deal with the challenges of data explosion (<xref ref-type="bibr" rid="B21">Qian et al., 2020</xref>; <xref ref-type="bibr" rid="B15">Meiser et al., 2022</xref>). Currently, researchers have devoted a lot of effort to accurately recover information from the noised sequence pool (<xref ref-type="bibr" rid="B8">Erlich and Zielinski, 2017</xref>; <xref ref-type="bibr" rid="B14">Meiser et al., 2019</xref>; <xref ref-type="bibr" rid="B2">Antkowiak et al., 2020</xref>; <xref ref-type="bibr" rid="B20">Press et al., 2020</xref>; <xref ref-type="bibr" rid="B11">Jeong et al., 2021</xref>). However, how to ensure the security of private data in DNA storage is an important question that is still in its infancy.</p>
<p>
<xref ref-type="bibr" rid="B5">Clelland et al. (1999)</xref> first hid some secret letters in microdots of DNA molecules. Later, <xref ref-type="bibr" rid="B9">Gehani et al. (2004)</xref> realized the one-time pad encryption on DNA molecules through DNA microarray technology. In the past decade, researchers have continued to explore the encryption potential of complex biochemical processes. <xref ref-type="bibr" rid="B28">Yang et al. (2014)</xref> implemented a 32-bit one-time pad encryption that simulated one-bit exclusive-OR (XOR) operation by DNA strand displacement reaction (SDR). Later, <xref ref-type="bibr" rid="B17">Peng et al. (2018)</xref> developed a three-dimensional DNA self-assembly pyramid structure to achieve double-bit encryption. <xref ref-type="bibr" rid="B32">Zhang et al. (2019)</xref> constructed a DNA origami cryptography method by folding M13 viral scaffolds which could communicate braille-like patterns at the nanometer scale. <xref ref-type="bibr" rid="B30">Zakeri et al. (2016)</xref> accomplished short message communication by chromatogram patterning and multiplexed DNA sequence encoding technology. <xref ref-type="bibr" rid="B18">Peng et al. (2021)</xref> proposed a one-time-pad cipher algorithm by confusion mapping and random adapter, which could guarantee controllable biological security. Recently, some researchers also developed an SDR-based chaos system to generate secret keys (<xref ref-type="bibr" rid="B26">Wang et al., 2020</xref>; <xref ref-type="bibr" rid="B35">Zou et al., 2021</xref>; <xref ref-type="bibr" rid="B34">Zhu et al., 2022</xref>). However, the reliability and practicability of these methods are limited in two aspects. First, they are vulnerable to the base errors that are prevalent in DNA storage. Due to the over-reliance on highly specific biomolecule hybridization reactions, these methods require specialized design and accurate synthesis of DNA sequences. Even a few base errors can cause encryption failure. Second, the experiments are sophisticated and may produce unpredictable results in case of some subtle variations in experiment conditions (temperature, time, and ion concentration). Moreover, noise environments may even worsen the unpredictability of the results. In addition, these experimental processes are time-consuming, difficult to monitor, and not suitable for large-scale applications.</p>
<p>Recently, our group proposed a modulation-based DNA storage architecture that is extremely robust to insertion&#x2013;deletion&#x2013;substitution (IDS) errors. The basic idea is that the modulation signal not only converts the binary information into DNA sequences during the write phase but also detects synchronization errors and decodes the corrected data during the read phase (<xref ref-type="bibr" rid="B31">Zan et al., 2022</xref>). <xref ref-type="fig" rid="F1">Figure 1</xref> shows an example of the recovered image under different noise levels by three strategies. The first one reconstructs the images directly by multiple sequence alignment (MSA) algorithms. The second one infers a possible modulation signal <italic>M</italic>&#x2032; by MSA and then reconstructs the images using the inferred <italic>M</italic>&#x2032; as in <xref ref-type="bibr" rid="B31">Zan et al. (2022)</xref>. While the last one recovers images using the true modulation signal <italic>M</italic>. As noises increase, the first two gradually fail to recover the original image while the last one could perfectly recover it. Since MSA is the only method available for noise correction without the knowledge of coding in DNA storage and since IDS errors are inherent in the synthesis and sequencing processes, the modulation signal could serve as a secure key in a high-error DNA storage channel.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Recovered images at error rate 5%, 10%, and 20% by MSA, inferred, and true modulation signal. The recovered images by the first two methods gradually become vague as the error rate increases, while the one by the true modulation signal is completely correct.</p>
</caption>
<graphic xlink:href="fbioe-11-1173763-g001.tif"/>
</fig>
<p>In this article, we explore the feasibility of image encryption in a high DNA storage channel. The proposed image encryption scheme consists of two layers: conventional encryption and DNA storage channel encryption. The first layer implements pixel scrambling and diffusion, and the second layer adds further complex confusion to DNA sequences (or DNA pixels) by taking advantage of the uncertainty in the DNA storage channel. Simulation results have demonstrated that the proposed method could resist cipher attack at the DNA sequence level when the noise is larger than 20%. It is also very robust to DNA base errors and sequence losses. Security analysis proves that it has a large key space, is sensitive to the key and plaintext, and can cope with statistical attacks. In sum, the proposed method achieves an excellent combination of the silico-based and carbon-based information security technologies and paves a solid foundation for data security in future DNA-based information architecture.</p>
</sec>
<sec id="s2">
<title>2 Encryption and decryption</title>
<p>
<xref ref-type="fig" rid="F2">Figure 2</xref> shows the schematic diagram of the proposed encryption and decryption processes, which includes two stages. The first stage performs regular pixel scrambling and diffusion at the binary level. The second stage further encrypts the binary data into DNA sequences by a known modulation key; then, these are transmitted through the highly error-prone DNA storage channel, which consists of several DNA operating technologies with high error rates, such as light-directed maskless array DNA synthesis with an error rate of approximately 15% (<xref ref-type="bibr" rid="B2">Antkowiak et al., 2020</xref>), biased polymerase chain reaction (PCR) (<xref ref-type="bibr" rid="B4">Chen et al., 2020</xref>), and nanopore sequencing with error rates between 10% and 15% (<xref ref-type="bibr" rid="B27">Wang et al., 2021</xref>). Finally, the output ciphertext is a pool of DNA sequences involving large amounts of insertion&#x2013;deletion&#x2013;substitution errors. The decryption process is the reverse of encryption.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Schematic diagram of encryption and decryption processes. To the left is traditional cryptography which includes scrambling and diffusion at the binary level. To the right is modulation-based cryptography at the highly error-prone DNA storage channel. Black arrows represent the encryption process, while blue arrows indicate the decryption process.</p>
</caption>
<graphic xlink:href="fbioe-11-1173763-g002.tif"/>
</fig>
<sec id="s2-1">
<title>2.1 Secret key generation</title>
<p>Secret keys mainly consist of two parts. One is the chaotic systems which include the piecewise linear chaotic map (PWLCM) (<xref ref-type="bibr" rid="B1">Alawida et al., 2019</xref>; <xref ref-type="bibr" rid="B33">Zhou et al., 2021</xref>) and logistic map (<xref ref-type="bibr" rid="B25">Sui et al., 2015</xref>; <xref ref-type="bibr" rid="B24">2014</xref>), while the other is the modulation key.</p>
<p>The dynamic equation of PWLCM can be described by the following function:<disp-formula id="e1">
<mml:math id="m1">
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0.5</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>0.5</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0.5</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>/</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2264;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(1)</label>
</disp-formula>where the parameter <italic>p</italic> should be in the range of (0, 0.5), and the status value <italic>X</italic>(<italic>n</italic>) is in the range of (0,1).</p>
<p>The logistic map is defined as follows:<disp-formula id="e2">
<mml:math id="m2">
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>X</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(2)</label>
</disp-formula>where the parameter <italic>&#x3bb;</italic> should be in the range of (0, 4), and the status value <italic>X</italic>(<italic>n</italic>) is in the range of (0,1).</p>
<p>We use the abovementioned chaotic systems to generate three random sequences, two of which are generated by the PWLCM with the initial status values <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(0) and <italic>X</italic>
<sub>
<italic>c</italic>
</sub>(0) and one by a logistic map with the initial status value <italic>X</italic>
<sub>
<italic>d</italic>
</sub>(0). To relate the initial values with the plain image, we use Keccak (<xref ref-type="bibr" rid="B3">Bertoni et al., 2013</xref>) to hash the plain image to generate a fixed-length <italic>K</italic> (512&#xa0;bit), which can be divided into 32 blocks, each of 16-bit. We denote it as <italic>K</italic> &#x3d; {<italic>k</italic>
<sub>1</sub>, <italic>k</italic>
<sub>2</sub>, &#x2026; , <italic>k</italic>
<sub>32</sub>}. The initial status values are derived as follows:<disp-formula id="e3">
<mml:math id="m3">
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>128</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#x2217;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>64</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>128</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#x2217;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>64</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="true">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>23</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>128</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:mo>&#x2217;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>5</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>64</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>After retrieving the initial value [i.e., <italic>X</italic>
<sub>
<italic>r</italic>
</sub> (0)] and the corresponding chaotic map, we iterate through the chaotic map <italic>n</italic> times [(i.e., <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(<italic>n</italic>)] to remove transient processes and then continue to iterate it to obtain the random sequence of the specified length.</p>
<p>Modulation key <italic>M</italic> is a binary sequence of equal length to the encoded DNA sequence. In <italic>M</italic>, &#x2018;0&#x2019; represents A/T and &#x2018;1&#x2019; represents C/G (<xref ref-type="bibr" rid="B31">Zan et al., 2022</xref>). The 01 composition of the key directly reflects the base composition of the encoded DNA sequence. Since the DNA sequences with extreme guanine&#x2013;cytosine (GC) content or long homopolymers (i.e., longer repeats of the same base, i.e., AAAAAA&#x2026;) are difficult to synthesize and prone to sequencing errors, most of the DNA storage works comply with some encoding constraints on the DNA sequences, such as the GC content of 45%&#x2013;55% and homopolymer runs of <inline-formula id="inf1">
<mml:math id="m4">
<mml:mo>&#x2264;</mml:mo>
<mml:mn>3</mml:mn>
</mml:math>
</inline-formula>nt (<xref ref-type="bibr" rid="B8">Erlich and Zielinski, 2017</xref>). In our encryption scheme, the percentage of 1&#xa0;s (or 0&#xa0;s) in the modulation key (equivalent to the GC content) and the consecutive length of 1&#xa0;s (or 0&#xa0;s) (equivalent to the homopolymer runs) also adhere to these constraints. From a key space perspective, this makes key cracking more difficult.</p>
</sec>
<sec id="s2-2">
<title>2.2 Encryption algorithm</title>
<p>Given an image <italic>P</italic> with size <italic>W</italic> &#xd7; <italic>H</italic> and the iteration number <inline-formula id="inf2">
<mml:math id="m5">
<mml:mi>n</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="[" close=")">
<mml:mrow>
<mml:mn>100</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>. Let <italic>N</italic> &#x3d; <italic>W</italic> &#xd7; <italic>H</italic>, the detailed encryption process can be depicted as follows.</p>
<sec id="s2-2-1">
<title>2.2.1 Traditional cryptography by scrambling and diffusion</title>
<p>
<statement content-type="step" id="step_1">
<label>Step 1</label>
<p>Get the secret keys <italic>&#x3bb;</italic>, <italic>p</italic>, <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(0), <italic>X</italic>
<sub>
<italic>c</italic>
</sub>(0), and <italic>X</italic>
<sub>
<italic>d</italic>
</sub>(0).</p>
</statement>
</p>
<p>
<statement content-type="step" id="step_2">
<label>Step 2</label>
<p>Use <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(0), <italic>n</italic>, and Eq. <xref ref-type="disp-formula" rid="e1">1</xref> to generate one sequence <italic>S</italic>
<sub>
<italic>R</italic>
</sub> of length <italic>W</italic>. Sort <italic>S</italic>
<sub>
<italic>R</italic>
</sub> in the ascending order to get the corresponding index sequence <inline-formula id="inf3">
<mml:math id="m6">
<mml:msubsup>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, number the rows of pixels of the original image <italic>P</italic>, and adjust row positions according to <inline-formula id="inf4">
<mml:math id="m7">
<mml:msubsup>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> to finish row-wise permutation operations. The row-wise scrambled image is denoted as <italic>P</italic>
<sub>1</sub>. For example, let <italic>S</italic>
<sub>
<italic>R</italic>
</sub> &#x3d; {35, 60, 13} and image <italic>P</italic> &#x3d; {<italic>r</italic>
<sub>1</sub>, <italic>r</italic>
<sub>2</sub>, <italic>r</italic>
<sub>3</sub>}, where <italic>r</italic>
<sub>
<italic>i</italic>
</sub> (1 &#x2264; <italic>i</italic> &#x2264; 3) stands for the <italic>i</italic>-<italic>th</italic> row of pixels, the corresponding index sequence is <inline-formula id="inf5">
<mml:math id="m8">
<mml:msubsup>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>3,1,2</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, and the row-wise scrambled image is <italic>P</italic>
<sub>1</sub> &#x3d; {<italic>r</italic>
<sub>3</sub>, <italic>r</italic>
<sub>2</sub>, <italic>r</italic>
<sub>1</sub>}.</p>
</statement>
</p>
<p>
<statement content-type="step" id="step_3">
<label>Step 3</label>
<p>Similar to <xref ref-type="statement" rid="step_2">Step 2</xref>, use <italic>X</italic>
<sub>
<italic>c</italic>
</sub>(0), <italic>n</italic>, and Eq. <xref ref-type="disp-formula" rid="e1">1</xref> to generate one sequence <italic>S</italic>
<sub>
<italic>C</italic>
</sub> of length <italic>H</italic> and perform column-wise permutation operations on <italic>P</italic>
<sub>1</sub>. The scrambled image is denoted as <italic>P</italic>
<sub>2</sub>.</p>
</statement>
</p>
<p>
<statement content-type="step" id="step_4">
<label>Step 4</label>
<p>Use <italic>X</italic>
<sub>
<italic>d</italic>
</sub>(0), <italic>n</italic>, and Eq. <xref ref-type="disp-formula" rid="e2">2</xref> to generate a sequence <italic>D</italic> of length of <italic>W</italic> &#xd7; <italic>H</italic>. Reshape <italic>P</italic>
<sub>2</sub> into one-dimensional sequence <italic>Q</italic>. Performing diffusion operation on <italic>Q</italic> using Eq. <xref ref-type="disp-formula" rid="e4">4</xref> yields <italic>Q</italic>&#x2032;. Finally, reshape <italic>Q</italic>&#x2032; into a two-dimensional <italic>W</italic> &#xd7; <italic>H</italic> matrix <italic>P</italic>
<sub>3</sub>.<disp-formula id="e4">
<mml:math id="m9">
<mml:msup>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:mi>D</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>256</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:mi>D</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>256</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>Q</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2295;</mml:mo>
<mml:mi>D</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mi>m</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>d</mml:mi>
<mml:mn>256</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
</statement>
</p>
</sec>
<sec id="s2-2-2">
<title>2.2.2 Dynamic modulation cryptography</title>
<p>
<statement>
<label>Step 1</label>
<p>Obtain the secret key <italic>M</italic>.</p>
</statement>
</p>
<p>
<statement>
<label>Step 2</label>
<p>Transform <italic>P</italic>
<sub>3</sub> into the binary form <inline-formula id="inf6">
<mml:math id="m10">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, and partition <inline-formula id="inf7">
<mml:math id="m11">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2032;</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> into strands of fixed length (<italic>l</italic> &#x3d; <italic>len</italic>(<italic>M</italic>)). All these strands are encrypted with <italic>M</italic> to generate their corresponding DNA sequences <italic>C</italic> according to a simple mapping rule (00 &#x2192; A, 01 &#x2192; T, 10 &#x2192; C, 11 &#x2192; G). For instance, assuming <italic>M</italic> &#x3d; &#x2018;<bold>1001</bold>1001<bold>1001</bold>&#x2019;, the message strand &#x2018;010011010110&#x2019; is aligned with <italic>M</italic> into two rows, and a DNA sequence &#x2018;<bold>CTAC</bold>GTAG<bold>CTTC</bold>&#x2019; can be obtained after mapping each column of the two rows into one DNA base.</p>
</statement>
</p>
<p>
<statement>
<label>Step 3</label>
<p>Transform <italic>C</italic> into the final ciphertext <italic>C</italic>&#x2032; through the highly error-prone DNA storage channel.</p>
</statement>
</p>
</sec>
</sec>
<sec id="s2-3">
<title>2.3 Decryption algorithm</title>
<p>As an asymmetric cryptosystem is more secure than a symmetric cryptosystem (<xref ref-type="bibr" rid="B6">Dong, 2015</xref>), the decryption keys are not identical to the encryption ones in our method. The decryption scheme uses the keys <italic>&#x3bb;</italic>, <italic>p</italic>, <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(<italic>n</italic>), <italic>X</italic>
<sub>
<italic>c</italic>
</sub>(<italic>n</italic>), <italic>X</italic>
<sub>
<italic>d</italic>
</sub>(<italic>n</italic>), and <italic>M</italic> to execute the reverse operation on the encryption algorithm. First, according to the modulation decoding method (<xref ref-type="bibr" rid="B31">Zan et al., 2022</xref>), <italic>M</italic> is used to correct noises in the sequenced data <italic>C</italic>&#x2032; and decode them to obtain the two-dimensional pixel matrix <italic>P</italic>
<sub>3</sub>. Second, Eqs. <xref ref-type="disp-formula" rid="e4">4</xref>, <xref ref-type="disp-formula" rid="e2">2</xref>, <italic>&#x3bb;</italic>, and <italic>X</italic>
<sub>
<italic>d</italic>
</sub>(<italic>n</italic>) are used to perform reverse diffusion operations on <italic>P</italic>
<sub>3</sub> to get <italic>P</italic>
<sub>2</sub>. Finally, Eq. <xref ref-type="disp-formula" rid="e1">1</xref>, <italic>p</italic>, <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(<italic>n</italic>), and <italic>X</italic>
<sub>
<italic>c</italic>
</sub>(<italic>n</italic>) are used to perform reverse scrambling operations on <italic>P</italic>
<sub>2</sub> to derive plain image <italic>P</italic>.</p>
</sec>
</sec>
<sec sec-type="results" id="s3">
<title>3 Results</title>
<p>We demonstrate our results on the 100 &#xd7; 100 Lena image as a proof of concept. It is encoded by 400 DNA sequences of 200 bases without considering overheads of the index because we assume that the clustering accuracy can be perfect. To investigate the proper noise channel for robust encryption, we take a series of simulation experiments with noises ranging from 2% to 40% and sequence copies ranging from 5 to 10,000.</p>
<sec id="s3-1">
<title>3.1 Key space analysis</title>
<p>The key space of the proposed method is sufficiently large to withstand any brute force attack. In the traditional decryption process, the receiver has to know the five parameters <italic>&#x3bb;</italic>, <italic>p</italic>, <italic>X</italic>
<sub>
<italic>r</italic>
</sub>(<italic>n</italic>), <italic>X</italic>
<sub>
<italic>c</italic>
</sub>(<italic>n</italic>), and <italic>X</italic>
<sub>
<italic>d</italic>
</sub>(<italic>n</italic>). As their valid precision is 10<sup>&#x2013;16</sup>, the key space of the five parameters will be<disp-formula id="e5">
<mml:math id="m12">
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">key</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>80</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2248;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>266</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(5)</label>
</disp-formula>Given that the sequence length is 200, and the percentage of 1s in the carrier strand is about 0.5, the modulation key space is<disp-formula id="e6">
<mml:math id="m13">
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:mn>200</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>&#x2248;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>196</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(6)</label>
</disp-formula>The total key space of our method is<disp-formula id="e7">
<mml:math id="m14">
<mml:mi>S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">key</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#xd7;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>80</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:mn>200</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mfenced>
<mml:mo>&#x2248;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>462</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x226b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>128</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(7)</label>
</disp-formula>It is much larger than the theoretical secure key value 2<sup>128</sup> (<xref ref-type="bibr" rid="B7">Dong et al., 2022</xref>). As the modulation key space alone is larger than 2<sup>128</sup>, we can conclude that the storage channel can serve as another layer for data security.</p>
</sec>
<sec id="s3-2">
<title>3.2 Ciphertext attack in DNA sequence level</title>
<p>Attackers have two possible ways to decipher the encrypted image in the noisy DNA storage channel. One is to infer a possible modulation key <italic>M</italic>&#x2032; by MSA and then decipher the sequenced reads by it, and the other is to directly decipher sequenced reads by the MSA algorithm. This is because there are only two methods of correcting base errors in DNA storage: constraint coding and multiple sequence alignment (MSA) without prior knowledge. As MSA fundamentally relies on pairwise sequence alignment algorithms, such as the Needleman&#x2013;Wunsch algorithm (<xref ref-type="bibr" rid="B16">Needleman, 1970</xref>) and seeks to find a globally optimal alignment between multiple copies, there is limited variability in alignment accuracy across MSA software tools (<xref ref-type="bibr" rid="B19">Pervez et al., 2014</xref>). Assuming all keys are known except for <italic>M</italic>, we apply one of the famous MSA tools named MAFFT (<xref ref-type="bibr" rid="B12">Katoh et al., 2002</xref>) to conduct a series of experiments.</p>
<p>It is impossible to infer a potential modulation key when the error rate is higher than 20%. The attacker can decipher the encrypted image if the inferred key <italic>M</italic>&#x2032; is very similar to <italic>M</italic>. Here, we assume that the attackers could have sufficient sequence copies to infer <italic>M</italic>. <xref ref-type="fig" rid="F3">Figure 3A</xref> shows that the average Hamming distance between <italic>M</italic> and <italic>M</italic>&#x2032; increases as the error rate increases. When the error rate is larger than 20%, the average Hamming distance is about 80, and increasing sequence copies may even result in a larger Hamming distance (see the top left corner). <xref ref-type="fig" rid="F3">Figure 3B</xref> further shows the Hamming distance distribution at 10,000 sequence copies. The least Hamming distance may reach 32 at an error rate of 20%. That is, there are at least 32 errors in the inferred modulation keys with 200&#xa0;bits. As the error rate increases, this lower limit could further increase. Therefore, inferring the true modulation key becomes almost impossible in a high error channel.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Cipher attack at different error rates and sequence copies. <bold>(A)</bold> Average Hamming distance between inferred and true modulation keys. <bold>(B)</bold> Distribution of Hamming distances of inferred modulation keys at sequence copies 10,000. <bold>(C)</bold> Decrypted images by inferred modulation keys. <bold>(D)</bold> Decrypted images by MSA. In <bold>(C)</bold> and <bold>(D)</bold>, the values in parentheses denote NPCR and UACI, respectively.</p>
</caption>
<graphic xlink:href="fbioe-11-1173763-g003.tif"/>
</fig>
<p>Without knowing the modulation key <italic>M</italic>, it is almost impossible to decipher the real image when the error rate is larger than 20%. To evaluate the difference between the decrypted and original images, the number of pixels change rate (NPCR) and unified average changing intensity (UACI) are calculated as<disp-formula id="e8">
<mml:math id="m15">
<mml:mi>D</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2260;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>o</mml:mi>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>w</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>e</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(8)</label>
</disp-formula>
<disp-formula id="e9">
<mml:math id="m16">
<mml:mi>N</mml:mi>
<mml:mi>P</mml:mi>
<mml:mi>C</mml:mi>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>D</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
</mml:math>
<label>(9)</label>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m17">
<mml:mi>U</mml:mi>
<mml:mi>A</mml:mi>
<mml:mi>C</mml:mi>
<mml:mi>I</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>W</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo stretchy="false">&#x7c;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>255</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
<mml:mi>%</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(10)</label>
</disp-formula>where <italic>W</italic> and <italic>H</italic> are the width and height of two images (<italic>c</italic>
<sub>1</sub> and <italic>c</italic>
<sub>2</sub>), respectively. <xref ref-type="fig" rid="F3">Figures 3C, D</xref> show the decrypted images using different sequence copies by the inferred modulation key and MSA, respectively. Compared with the original image, the decrypted images are all seriously distorted with <italic>NPCR</italic> &#x2248; 1 and <italic>UACI</italic> &#x2248; 0.5, even at sequence copies 1,000. The utilization of the traditional cryptographic techniques further increases crack difficulties.</p>
</sec>
<sec id="s3-3">
<title>3.3 Sensitivity analysis</title>
<p>The proposed method is sensitive to secrete keys and plaintext. A slight change in the key (i.e., a single bit change) or plaintext could cause a completely different encrypted result. First, the sensitivity of the PWLCM and logistic map has been confirmed in many image-encryption works (<xref ref-type="bibr" rid="B25">Sui et al., 2015</xref>; <xref ref-type="bibr" rid="B24">Sui et al., 2014</xref>; <xref ref-type="bibr" rid="B1">Alawida et al., 2019</xref>; <xref ref-type="bibr" rid="B33">Zhou et al., 2021</xref>). At the same time, 1&#xa0;bit insertion/deletion in the modulation signal will affect the encoding of a large number of pixels. Second, plaintext sensitivity is accomplished by the pixel diffusion process and initial status values of the chaotic systems which are strongly related to the plain image.</p>
</sec>
<sec id="s3-4">
<title>3.4 Statistical analysis</title>
<p>The proposed method can resist statistical attacks. <xref ref-type="fig" rid="F4">Figure 4</xref> shows the histogram of the pixels in the original image (A) and the encoded eight-base pixel DNA strands (B). The distribution of the encoded DNA sequences is more flat than that of the original. Considering the IDS noises in the sequenced reads, the distribution in (B) tends to be more uniform. <xref ref-type="table" rid="T1">Table 1</xref> shows the correlation coefficients of the ciphered image after dislocation and diffusion. All values in the three directions are close to the ideal value of 0 (<xref ref-type="bibr" rid="B10">Ghadirli et al., 2019</xref>). That is, the encrypted pixels are distributed randomly. The information entropy of the cyphered image is 7.950121813, which is very close to the ideal value of 8 (<xref ref-type="bibr" rid="B10">Ghadirli et al., 2019</xref>). Therefore, the encrypted image shows favorable randomness.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Distribution of pixel intensity histogram. <bold>(A)</bold> Plain image. <bold>(B)</bold> Encrypted image.</p>
</caption>
<graphic xlink:href="fbioe-11-1173763-g004.tif"/>
</fig>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Correlation coefficients in different directions of original and ciphered images.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Image</th>
<th align="center">Horizontal</th>
<th align="center">Vertical</th>
<th align="center">Diagonal</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Original</td>
<td align="center">0.873734246</td>
<td align="center">0.945931872</td>
<td align="center">0.827460129</td>
</tr>
<tr>
<td align="center">Ciphered</td>
<td align="center">&#x2212;0.011323434</td>
<td align="center">&#x2212;0.010079104</td>
<td align="center">0.007942569</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s3-5">
<title>3.5 Robustness analysis</title>
<p>The proposed method is robust to the two most commonly seen errors in DNA storage: base errors and sequence loss. Sequence loss refers to the loss of some DNA molecules during DNA storage processes (e.g., DNA decay, PCR, and sequencing) due to the complexity of the biochemical reactions. <xref ref-type="fig" rid="F5">Figure 5A</xref> shows the decrypted images at an error rate of 20<inline-formula id="inf8">
<mml:math id="m18">
<mml:mo>&#x223c;</mml:mo>
<mml:mn>40</mml:mn>
<mml:mi>%</mml:mi>
</mml:math>
</inline-formula> and sequence copies 50&#x223c;1,000. The original images could be completely deciphered, given sufficient sequence copies. <xref ref-type="fig" rid="F5">Figure 5B</xref> shows the decrypted images which could retain the portrait even at a loss rate of 50%. It should be added that the proposed method can easily be combined with an erasure code, such as a fountain code (<xref ref-type="bibr" rid="B13">Mackay, 2005</xref>), to further improve its resistance to sequence loss attacks. The combined method is quite simple. All that is required is to encode <italic>P</italic>
<sub>3</sub> with a fountain code prior to dynamic modulation encryption. To the best of our knowledge, such robustness can only be achieved by modulation-based DNA storage architecture (<xref ref-type="bibr" rid="B29">Yazdi et al., 2017</xref>; <xref ref-type="bibr" rid="B2">Antkowiak et al., 2020</xref>; <xref ref-type="bibr" rid="B20">Press et al., 2020</xref>; <xref ref-type="bibr" rid="B23">Srinivasavaradhan et al., 2021</xref>; <xref ref-type="bibr" rid="B22">Song et al., 2022</xref>; <xref ref-type="bibr" rid="B31">Zan et al., 2022</xref>).</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Robustness to base errors and sequence loss. <bold>(A)</bold> Decrypted images at different error rates and sequence copies. <bold>(B)</bold> Decrypted images at different sequence loss rates.</p>
</caption>
<graphic xlink:href="fbioe-11-1173763-g005.tif"/>
</fig>
</sec>
<sec id="s3-6">
<title>3.6 Classical attack analysis</title>
<p>The proposed method is resistant to classical attacks, such as known plaintext attacks, chosen plaintext attacks, and chosen ciphertext attacks. As mentioned earlier, the secret keys depend not only on the given initial values, such as modulation keys and system parameters, but also on the plain image. For every plain image, the keys are changed both in the encryption process and decryption process. As such, attackers cannot extract any useful information, either by encrypting a pre-designed special image or by decrypting a certain ciphertext. This concludes that chosen plaintext, chosen ciphertext, and known plaintext attacks do not work against the proposed method.</p>
</sec>
<sec id="s3-7">
<title>3.7 Comparisons with other methods</title>
<p>
<xref ref-type="table" rid="T2">Table 2</xref> shows the detailed comparisons of existing studies. When compared with other methods, our method has the following advantages in terms of encryption using DNA molecules: first, the modulation key and chaotic systems feature our encryption scheme with dynamic encoding and encryption, which can withstand any kind of brute force attack. More importantly, modulation encoding provides a natural way to comply with biochemical constraints for long-term storage. Second, encrypting data by noise storage channels avoids the complexity and uncertainty in biochemical reactions, such as DNA strand displacement, DNA hiding, and DNA self-assembly. Finally, it is the only method with both high logical information density and strong robustness, which can tolerate extreme environments with high base noise and sequence loss. We believe that all these features endow our method with the potential to achieve reliable, secure, robust, and scalable encryption for DNA storage.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Comparisons of encryption methods for DNA storage.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Literatures</th>
<th align="center">Dynamic encoding</th>
<th align="center">Dynamic encryption</th>
<th align="center">Robustness</th>
<th align="center">Biological encryption</th>
<th align="center">Large-scale encryption</th>
<th align="center">Logical density (bits/nt)</th>
<th align="center">Key space</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">
<xref ref-type="bibr" rid="B28">Yang et al. (2014)</xref>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#x2a;</td>
<td align="center">&#x2a;</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">0.006</td>
<td align="center">
<inline-formula id="inf9">
<mml:math id="m19">
<mml:mo>(</mml:mo>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>25</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>1000</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mrow>
<mml:mn>2000</mml:mn>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mo>)</mml:mo>
</mml:math>
</inline-formula>
</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B30">Zakeri et al. (2016)</xref>
</td>
<td align="center">&#xd7;</td>
<td align="center">&#x2a;</td>
<td align="center">&#x2a;</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">0.239</td>
<td align="center">9.1 &#xd7; 10<sup>61</sup>
</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B32">Zhang et al. (2019)</xref>
</td>
<td align="center">&#xd7;</td>
<td align="center">&#x2a;</td>
<td align="center">&#x2a;</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">0.001</td>
<td align="center">2<sup>702</sup>
</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B18">Peng et al. (2021)</xref>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">1.65</td>
<td align="center">2<sup>400</sup>
</td>
</tr>
<tr>
<td align="center">
<xref ref-type="bibr" rid="B34">Zhu et al. (2022)</xref>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">&#xd7;</td>
<td align="center">2.0</td>
<td align="center">2<sup>1,536</sup>
</td>
</tr>
<tr>
<td align="center">This work</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">
<italic>&#x221a;</italic>
</td>
<td align="center">1.0</td>
<td align="center">2<sup>462</sup>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>&#xd7;, indication of minimum level of support; <italic>&#x221a;</italic>, indication of acceptable level of support; &#x2a;, partial fulfillment.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
</sec>
<sec sec-type="conclusion" id="s4">
<title>4 Conclusion</title>
<p>We propose an image encryption method for DNA storage which includes two parts: conventional encryption and DNA storage channel encryption. The proposed method highlights the importance of unpredicted modulation signals in a highly error-prone DNA storage channel. Simulation results show that our method is feasible and effective for encrypting and decrypting images when the error rate of the DNA storage channel is higher than 20%. There are two ways to generate such high noise: one is to adopt high-error DNA operating technologies, such as light-directed maskless array DNA synthesis, biased PCR, and nanopore sequencing; the other is to construct multiple substitution-rich copies prior to DNA synthesis with an error rate of 20% for each coding sequence. Further analysis of the security shows that it is sensitive to both keys and plaintexts, has a large enough key space, and can resist various attacks (i.e., statistical, only ciphertext, noise and data loss, etc.). When compared with other state-of-the-art encryption methods, our approach has high logical information density, compliance with biochemical constraints, and strong robustness to base errors and sequence loss; it is thus more suitable for large-scale DNA encryption storage. Although designed for image encryption, our method can also be applied to other areas of encryption. Relying on the powerful error correction capability of the modulation-based DNA storage architecture, we believe our approach will further accelerate the arrival of large-scale DNA encrypted storage.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s5">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/supplementary material; further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s6">
<title>Author contributions</title>
<p>XZ and WL conceived the concept. XZ wrote the Python codes. XZ and XY conducted simulation and data analysis. XZ and YS prepared the figures and tables. XZ and LC drafted the manuscript. RX and PX revised the manuscript. WL and PX supervised the study. All authors read and approved the final manuscript.</p>
</sec>
<sec id="s7">
<title>Funding</title>
<p>This work was supported in part by the National Natural Science Foundation of China (No. 62072128 and 24562002079), the Natural Science Foundation of Guangdong Province of China (No. 2023A1515011401), and the Open Project of Guangdong Provincial Key Laboratory of Artificial Intelligence in Medical Image Analysis and Application (No. 2022B1212010011).</p>
</sec>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, editors, and reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Alawida</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Samsudin</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Teh</surname>
<given-names>J. S.</given-names>
</name>
<name>
<surname>Alkhawaldeh</surname>
<given-names>R. S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A new hybrid digital chaotic system with applications in image encryption</article-title>. <source>Signal Process.</source> <volume>160</volume>, <fpage>45</fpage>&#x2013;<lpage>58</lpage>. <pub-id pub-id-type="doi">10.1016/j.sigpro.2019.02.016</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Antkowiak</surname>
<given-names>P. L.</given-names>
</name>
<name>
<surname>Lietard</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Darestani</surname>
<given-names>M. Z.</given-names>
</name>
<name>
<surname>Somoza</surname>
<given-names>M. M.</given-names>
</name>
<name>
<surname>Stark</surname>
<given-names>W. J.</given-names>
</name>
<name>
<surname>Heckel</surname>
<given-names>R.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Low cost dna data storage using photolithographic synthesis and advanced information reconstruction and error correction</article-title>. <source>Nat. Commun.</source> <volume>11</volume>, <fpage>5345</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-020-19148-3</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Bertoni</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Daemen</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Peeters</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Van Assche</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2013</year>). <source>Keccak. Times cited in web of science core collection: 85 total times cited: 90 cited reference count: 11</source>.</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>Y.-J.</given-names>
</name>
<name>
<surname>Takahashi</surname>
<given-names>C. N.</given-names>
</name>
<name>
<surname>Organick</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Bee</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Ang</surname>
<given-names>S. D.</given-names>
</name>
<name>
<surname>Weiss</surname>
<given-names>P.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>Quantifying molecular bias in dna data storage</article-title>. <source>Nat. Commun.</source> <volume>11</volume>, <fpage>3264</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-020-16958-3</pub-id>
</citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Clelland</surname>
<given-names>C. T.</given-names>
</name>
<name>
<surname>Risca</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Bancroft</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>1999</year>). <article-title>Hiding messages in dna microdots</article-title>. <source>Nature</source> <volume>402</volume>, <fpage>533</fpage>&#x2013;<lpage>534</lpage>. <pub-id pub-id-type="doi">10.1038/21092</pub-id>
</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dong</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Asymmetric color image encryption scheme using discrete-time map and hash value</article-title>. <source>Optik</source> <volume>126</volume>, <fpage>2571</fpage>&#x2013;<lpage>2575</lpage>. <pub-id pub-id-type="doi">10.1016/j.ijleo.2015.06.035</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dong</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A novel image encryption scheme based on pseudo-random coupled map lattices with hybrid elementary cellular automata</article-title>. <source>Inf. Sci.</source> <volume>593</volume>, <fpage>121</fpage>&#x2013;<lpage>154</lpage>. <pub-id pub-id-type="doi">10.1016/j.ins.2022.01.031</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Erlich</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zielinski</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Dna fountain enables a robust and efficient storage architecture</article-title>. <source>Science</source> <volume>355</volume>, <fpage>950</fpage>&#x2013;<lpage>954</lpage>. <pub-id pub-id-type="doi">10.1126/science.aaj2038</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Gehani</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>LaBean</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Reif</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2004</year>). <source>DNA-Based cryptography</source>. <publisher-loc>Berlin, Heidelberg</publisher-loc>: <publisher-name>Springer Berlin Heidelberg</publisher-name>, <fpage>167</fpage>&#x2013;<lpage>188</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-540-24635-0_12</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ghadirli</surname>
<given-names>H. M.</given-names>
</name>
<name>
<surname>Nodehi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Enayatifar</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>An overview of encryption algorithms in color images</article-title>. <source>Signal Process.</source> <volume>164</volume>, <fpage>163</fpage>&#x2013;<lpage>185</lpage>. <pub-id pub-id-type="doi">10.1016/j.sigpro.2019.06.010</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jeong</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Park</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Kim</surname>
<given-names>J. W.</given-names>
</name>
<name>
<surname>No</surname>
<given-names>J. S.</given-names>
</name>
<name>
<surname>Jeon</surname>
<given-names>H. H.</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>J. W.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Cooperative sequence clustering and decoding for dna storage system with fountain codes</article-title>. <source>Bioinformatics</source> <volume>37</volume>, <fpage>3136</fpage>&#x2013;<lpage>3143</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btab246</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Katoh</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Misawa</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Kuma</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Miyata</surname>
<given-names>T.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>Mafft: A novel method for rapid multiple sequence alignment based on fast Fourier transform</article-title>. <source>Nucleic Acids Res.</source> <volume>30</volume>, <fpage>3059</fpage>&#x2013;<lpage>3066</lpage>. <pub-id pub-id-type="doi">10.1093/nar/gkf436</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mackay</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>Fountain codes</article-title>. <source>IEE Proc. Part I, Commun.</source> <volume>152</volume>, <fpage>1062</fpage>&#x2013;<lpage>1068</lpage>. <pub-id pub-id-type="doi">10.1049/ip-com:20050237</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meiser</surname>
<given-names>L. C.</given-names>
</name>
<name>
<surname>Antkowiak</surname>
<given-names>P. L.</given-names>
</name>
<name>
<surname>Koch</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>W. D.</given-names>
</name>
<name>
<surname>Kohll</surname>
<given-names>A. X.</given-names>
</name>
<name>
<surname>Stark</surname>
<given-names>W. J.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Reading and writing digital data in dna</article-title>. <source>Nat. Protoc.</source> <volume>15</volume>, <fpage>86</fpage>&#x2013;<lpage>101</lpage>. <pub-id pub-id-type="doi">10.1038/s41596-019-0244-5</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meiser</surname>
<given-names>L. C.</given-names>
</name>
<name>
<surname>Nguyen</surname>
<given-names>B. H.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Y.-J.</given-names>
</name>
<name>
<surname>Nivala</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Strauss</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ceze</surname>
<given-names>L.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>Synthetic dna applications in information technology</article-title>. <source>Nat. Commun.</source> <volume>13</volume>, <fpage>352</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-021-27846-9</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Needleman</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wunsch</surname>
<given-names>C. D.</given-names>
</name>
</person-group> (<year>1970</year>). <article-title>A general method applicable to the search for similarities in the amino acid sequence of two proteins</article-title>. <source>J. Mol. Biol.</source> <volume>48</volume>, <fpage>443</fpage>&#x2013;<lpage>453</lpage>. <pub-id pub-id-type="doi">10.1016/0022-2836(70)90057-4</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>One-time-pad cryptography scheme based on a three-dimensional dna self-assembly pyramid structure</article-title>. <source>PLOS ONE</source> <volume>13</volume>, <fpage>e0206612</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0206612</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Cui</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>One-time-pad cipher algorithm based on confusion mapping and dna storage technology</article-title>. <source>PLoS ONE</source> <volume>16</volume>, <fpage>e0245506</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0245506</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pervez</surname>
<given-names>M. T.</given-names>
</name>
<name>
<surname>Babar</surname>
<given-names>M. E.</given-names>
</name>
<name>
<surname>Nadeem</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Aslam</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Awan</surname>
<given-names>A. R.</given-names>
</name>
<name>
<surname>Aslam</surname>
<given-names>N.</given-names>
</name>
<etal/>
</person-group> (<year>2014</year>). <article-title>Evaluating the accuracy and efficiency of multiple sequence alignment methods</article-title>. <source>Evol. Bioinforma.</source> <volume>10</volume>, <fpage>EBO.S19199</fpage>. <pub-id pub-id-type="doi">10.4137/EBO.S19199</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Press</surname>
<given-names>W. H.</given-names>
</name>
<name>
<surname>Hawkins</surname>
<given-names>J. A.</given-names>
</name>
<name>
<surname>Jones</surname>
<given-names>S. K.</given-names>
</name>
<name>
<surname>Schaub</surname>
<given-names>J. M.</given-names>
</name>
<name>
<surname>Finkelstein</surname>
<given-names>I. J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Hedges error-correcting code for dna storage corrects indels and allows sequence constraints</article-title>. <source>Proc. Natl. Acad. Sci. U. S. A.</source> <volume>117</volume>, <fpage>18489</fpage>&#x2013;<lpage>18496</lpage>. <pub-id pub-id-type="doi">10.1073/pnas.2004821117</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Qian</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ouyang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Ping</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Dna storage: Research landscape and future prospects</article-title>. <source>Natl. Sci. Rev.</source> <volume>7</volume>, <fpage>1092</fpage>&#x2013;<lpage>1107</lpage>. <pub-id pub-id-type="doi">10.1093/nsr/nwaa007</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Geng</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Gong</surname>
<given-names>Z.-Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gong</surname>
<given-names>C.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>Robust data storage in dna by de bruijn graph-based de novo strand assembly</article-title>. <source>Nat. Commun.</source> <volume>13</volume>, <fpage>5361</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-022-33046-w</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Srinivasavaradhan</surname>
<given-names>S. R.</given-names>
</name>
<name>
<surname>Gopi</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Pfister</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yekhanin</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <source>Trellis bma: Coded trace reconstruction on ids channels for dna storage</source>.</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sui</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Duan</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Meng</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Asymmetric multiple-image encryption based on coupled logistic maps in fractional Fourier transform domain</article-title>. <source>Opt. Lasers Eng.</source> <volume>62</volume>, <fpage>139</fpage>&#x2013;<lpage>152</lpage>. <pub-id pub-id-type="doi">10.1016/j.optlaseng.2014.06.003</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sui</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Color image encryption by using yang-gu mixture amplitude-phase retrieval algorithm in gyrator transform domain and two-dimensional sine logistic modulation map</article-title>. <source>Opt. Lasers Eng.</source> <volume>75</volume>, <fpage>17</fpage>&#x2013;<lpage>26</lpage>. <pub-id pub-id-type="doi">10.1016/j.optlaseng.2015.06.005</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Three-variable chaotic oscillatory system based on dna strand displacement and its coupling combination synchronization</article-title>. <source>IEEE Trans. NanoBioscience</source> <volume>19</volume>, <fpage>434</fpage>&#x2013;<lpage>445</lpage>. <pub-id pub-id-type="doi">10.1109/TNB.2020.2989577</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Bollas</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Au</surname>
<given-names>K. F.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Nanopore sequencing technology, bioinformatics and applications</article-title>. <source>Nat. Biotechnol.</source> <volume>39</volume>, <fpage>1348</fpage>&#x2013;<lpage>1365</lpage>. <pub-id pub-id-type="doi">10.1038/s41587-021-01108-x</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>A molecular cryptography model based on structures of dna self-assembly</article-title>. <source>Chin. Sci. Bull.</source> <volume>59</volume>, <fpage>1192</fpage>&#x2013;<lpage>1198</lpage>. <pub-id pub-id-type="doi">10.1007/s11434-014-0170-4</pub-id>
</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yazdi</surname>
<given-names>S. M. H. T.</given-names>
</name>
<name>
<surname>Gabrys</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Milenkovic</surname>
<given-names>O.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Portable and error-free dna-based data storage</article-title>. <source>Sci. Rep.</source> <volume>7</volume>, <fpage>5011</fpage>. <pub-id pub-id-type="doi">10.1038/s41598-017-05188-1</pub-id>
</citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zakeri</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Carr</surname>
<given-names>P. A.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>T. K.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Multiplexed sequence encoding: A framework for dna communication</article-title>. <source>PLoS One</source> <volume>11</volume>, <fpage>e0152774</fpage>. <pub-id pub-id-type="doi">10.1371/journal.pone.0152774</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zan</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>A robust and efficient dna storage architecture based on modulation encoding and decoding</article-title>. <source>bioRxiv</source> <volume>2022</volume>, <fpage>490755</fpage>. <pub-id pub-id-type="doi">10.1101/2022.05.25.490755</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Chao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). <article-title>Dna origami cryptography for secure communication</article-title>. <source>Nat. Commun.</source> <volume>10</volume>, <fpage>5469</fpage>. <pub-id pub-id-type="doi">10.1038/s41467-019-13517-3</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>2d mixed pseudo-random coupling ps map lattice and its application in s-box generation</article-title>. <source>Nonlinear Dyn.</source> <volume>103</volume>, <fpage>1151</fpage>&#x2013;<lpage>1166</lpage>. <pub-id pub-id-type="doi">10.1007/s11071-020-06098-0</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhu</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Luo</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>An operational dna strand displacement encryption approach</article-title>. <source>Nanomater. (Basel)</source> <volume>12</volume>, <fpage>877</fpage>. <pub-id pub-id-type="doi">10.3390/nano12050877</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zou</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Encryption algorithm based on dna strand displacement and dna sequence operation</article-title>. <source>IEEE Trans. NanoBioscience</source> <volume>20</volume>, <fpage>223</fpage>&#x2013;<lpage>234</lpage>. <pub-id pub-id-type="doi">10.1109/TNB.2021.3058399</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>