DNA Computing in de praktijk - Department of Software Technology

advertisement
DNA Computing in de praktijk
S.D. Anoep V.R. Badal
V.R.K. Boedhram
S.P. Rangoe D.J. Strijdhaftig
F.S.D. van der Werf
Abstract
In dit artikel wordt de praktische toepasbaarheid van DNA computing onderzocht. Hiertoe wordt eerst
een korte introductie gegeven tot DNA computing en vervolgens worden twee algemene
toepassingsgebieden beschreven, te weten informatieopslag en parallelle verwerking. Deze worden
gevolgd door twee specifieke toepassingen, cryptografie en signaalverwerking. Concluderend wordt
gesteld dat DNA computing nog niet praktisch toepasbaar is, zolang er nog geen vorderingen in de
biochemie worden gemaakt met betrekking tot de snelheid van DNA operaties.
1. Inleiding
In de informatica zijn veel problemen bekend die niet in polynomiale tijd opgelost kunnen
worden. In de zoektocht naar oplossing met een doenlijk tijdsbestek, is men beland op een
biologisch spoor. De moleculaire biologie wordt nu gebruikt om oplossingen voor problemen
uit de informatica te genereren. Hiervoor kan DNA worden gebruikt en vandaar dat deze
methode DNA computing genoemd wordt.
In 1994 ontdekte Adleman een methode om met behulp van DNA het Hamiltoons pad
probleem op te lossen [1]. Sindsdien is er veel onderzoek gedaan naar de mogelijkheden van
DNA met betrekking tot calculaties. In dit artikel komt de praktische toepasbaarheid van DNA
computing aan bod.
DNA computing wordt toegepast als oplossingsmethode voor ondoenlijke problemen, maar
kan ook voor andere toepassingsgebieden worden gebruikt.
Om een goed begrip te krijgen van DNA computing, wordt eerst een algemene inleiding
over DNA gegeven. Hierna komt informatieopslag aan bod, omdat dit een essentieel onderdeel
is van de informatica. Deze informatie moet verwerkt kunnen worden en het liefst op een zo
efficiënt mogelijke manier. DNA computing biedt de mogelijkheid om deze informatie parallel
te verwerken. In het hoofdstuk over parallelle processing zal hierop dieper worden ingegaan.
Met behulp van deze twee fundamenten kunnen praktische toepassingen gerealiseerd worden,
zoals cryptografie en signaalverwerking. Vervolgens worden deze twee toepassingen
beschreven, omdat bij deze toepassingen informatieopslag en parallelle verwerking in DNA
computing goed gebruikt kunnen worden.
Bij de behandeling van cryptografie komen zowel encryptie als het kraken van
encryptiemethoden aan de orde. Tot slot wordt digitale signaalverwerking behandeld.
Ter afsluiting van het artikel wordt er een conclusie getrokken aangaande de praktische
toepasbaarheid en haalbaarheid van het gebruik van DNA op de verschillende
toepassingsgebieden.
2. DNA Computing
Voordat ingegaan wordt op het gebruik van DNA als berekeningsmiddel en het gebruik hiervan
op de verschillende toepassingsgebieden, moeten we een goed beeld krijgen van de structuur
van DNA zelf.
2.1.
Wat is DNA?
DNA (desoxyribonucleïnezuur) bevat de complete erfelijke informatie van een organisme.
Hierin liggen uiterlijke kenmerken, zoals oog- en haarkleur, vast.
Elk DNA molecule bestaat uit twee complementaire strengen die op hun beurt uit vier
verschillende nucleotiden bestaan, ook wel basen genoemd: adenine, thymine, cytosine en
guanine. Deze vier basen zullen in het vervolg worden aangeduid met de letters: A, T, C en G.
De twee strengen zijn op een zodanige manier met elkaar verbonden dat zij een dubbele
helix, de chemische structuur van DNA, vormen. Zij worden bij elkaar gehouden door
waterstofbruggen, die slechts voorkomen bij complementaire basenparen. Deze zijn ook wel
bekend als Watson-Crick complementen, die enerzijds gevormd worden door A en T en
anderzijds door C en G.
Elke nucleotide heeft twee uiteinden, waarvan één een fosfaatgroep en de ander een
hydroxidegroep bevat. De fosfaatgroep staat ook wel bekend als 5’, terwijl de hydroxidegroep
wordt aangeduid als 3’. Bovendien zijn deze twee groepen complementen van elkaar, zoals de
nucleotiden, die de Watson-Crick complementen vormen.
Wanneer nucleotiden samengebracht worden om een keten te vormen wordt het ene uiteinde
van de ene nucleotide verbonden aan het complementaire uiteinde van een andere nucleotide
[3]. Daarom kunnen we de opeenvolging van basen in zulke ketens beschouwen alsof zij
geordend zijn. Deze ordening speelt een belangrijke rol, omdat zij beperkingen legt op het
uitvoeren van operaties op de strengen. DNA ketens zouden niet bruikbaar zijn als deze niet te
manipuleren waren. Dit is mogelijk met behulp van enzymen, die een reactie aangaan en
vervolgens het gewenste resultaat leveren. Een aantal van deze operaties zal beschreven
worden in de volgende sectie.
2.2.
Operaties op DNA
Hierboven is gesproken over de operaties die op DNA kunnen worden uitgevoerd. Er bestaan
veel van deze operaties, maar in dit gedeelte zullen slechts die operaties worden behandeld, die
in de rest van het artikel ook toegepast worden [9, 17].
•
•
•
•
•
•
•
Synthese: een DNA keten wordt stap voor stap opgebouwd uit nucleotiden. Zo wordt
om de keten ACT te vormen de nucleotide A als basis gebruikt. De A basen worden
vergoten met een oplossing van C basen. De reactie die volgt creëert de keten AC. De
overgebleven reactie vloeistof wordt afgevoerd waarna de AC ketens worden
overgoten met T basen. Het eindresultaat is de keten ACT.
Ontharden: door de temperatuur te verlagen kunnen twee complementaire DNA
strengen worden samengevoegd tot een helix.
Smelten: door de temperatuur te verhogen kan een DNA helix worden gesplitst in twee
complementaire DNA strengen.
Amplificatie: door een DNA oplossing achtereenvolgens te verwarmen en af te koelen
wordt een helix gesplitst en weer samengevoegd. Door dit proces uit te voeren in een
oplossing van basen hechten de vrije basen zich bij het afkoelen aan de
complementaire strengen waardoor er in plaats van één helix, twee helices worden
gevormd. Elke keer dat dit proces wordt uitgevoerd wordt het aantal DNA strengen
verdubbeld.
Detecteer: nagaan of in een DNA oplossing een bepaalde DNA streng tenminste één
keer voorkomt.
Extractie: het extraheren van DNA strengen die een bepaalde substreng bevatten.
Lengte: het extraheren van DNA strengen met een bepaalde lengte.
2.3.
Het ontstaan van DNA computing
Nu er voldoende achtergrondinformatie over de structuur van DNA en de operaties hierop
uiteen is gezet, kan overgegaan worden op de ontwikkeling van DNA computing.
In de afgelopen jaren zijn er verscheidene nieuwe ideeën ontwikkeld om niet-elektronische
natuurlijke verschijnselen te gebruiken voor efficiënte berekeningen. In de klassieke, op
elektronica gebaseerde berekeningen wordt informatie per bit opgeslagen en gewijzigd door
elektrische en elektromagnetische middelen. Het aantal stappen dat per tijdseenheid doorlopen
wordt, is zeer groot, maar het aantal processors dat parallel kan draaien is klein. Het hoofddoel
van de eerdergenoemde nieuwe ideeën was niet het aantal stappen per tijdseenheid te
vergroten, maar het aantal processors dat parallel kon draaien te verhogen.
In 1994 kwamen verschillende benaderingen op gang die gebruik maakten van de
biologische eigenschappen van DNA ketens om informatie op te slaan en te wijzigen. Het
algemene idee is om een groot aantal DNA ketens als parallel draaiende processors te
gebruiken, zo kwam DNA computing tot stand [17, 21].
Adleman was de eerste, die de berekeningskracht van DNA ter sprake bracht. Dit deed hij
door enkele instanties van het Hamiltoons pad probleem op te lossen door middel van
biologische experimenten met DNA strengen [1, 17]. Adleman was ruim een week bezig met
dit experiment, wat heel ontmoedigend lijkt, maar het grote voordeel is dat het aantal operaties
slechts lineair groeit met het aantal knopen van de graaf. Dit is verreweg het meest efficiënte
algoritme om dit probleem op te lossen, aangezien er geen deterministisch polynomiaal
algoritme bekend is voor het oplossen van dit probleem.
Lipton breidde het werk van Adleman uit, zodat het de mogelijkheid bood om elk NP
probleem in polynomiale tijd op te lossen [21] en bracht de praktische relevantie van deze
benadering op gang. Hij stelde een biologisch berekeningsmodel op, dat naast de klassieke
elementen, ook grote verzamelingen van DNA ketens kon manipuleren. Dit hield in dat er
operaties werden uitgevoerd op elke DNA keten in een reageerbuis. Op deze wijze
correspondeerde elke DNA keten met een hoeveelheid aan informatie en al deze hoeveelheden
zouden parallel verwerkt kunnen worden.
In 1995 werd DNA computing nog populairder: het SAT probleem werd opgelost met een
nieuw en praktischer algoritme [12]. Ook werd eraan gedacht DNA nu te gebruiken als
geheugen, waarover meer te vinden is in het volgende hoofdstuk. Adleman zelf was degene die
het geheugenmodel presenteerde. Donald Beaver stelde voor om DNA te gebruiken om grote
getallen te ontbinden in factoren. Dit is een relevant probleem in vele cryptografische
toepassingen, die ter sprake komen in het hierop betrekking hebbende hoofdstuk. Bovendien
was hij degene die een Turing machine ontwierp met behulp van een enkele DNA keten.
Na deze ontwikkelingen nam de populariteit van DNA computing immens toe. Vele
onderzoeken werden gedaan en ook werden er vele artikelen over dit onderwerp gepubliceerd.
3. Informatieopslag
Nu het aspect van DNA duidelijk naar voren is gebracht, zal informatieopslag met DNA
computing worden behandeld en wordt aangegeven of dit een verbetering is in vergelijking met
de huidige opslagmethoden.
Dit hoofdstuk bespreekt de mogelijkheid om informatie in DNA reeksen op te slaan.
Vervolgens worden de voor- en nadelen, die kleven aan het gebruik van DNA als
informatiemedium, besproken.
3.1.
DNA en dataopslag
In de huidige informatiemaatschappij is informatiebehoud van cruciaal belang. Elke dag groeit
de hoeveelheid informatie. Jarenlang wist men de grenzen van de transistor te verleggen, maar
de dag dat dit niet meer zal lukken is niet ver meer. Daarom wordt men gedreven om nieuwe
manieren te vinden om informatie op te slaan.
3.1.1.
Associatief geheugen
Baum beschrijft in zijn artikel de mogelijkheid om DNA te gebruiken als associatief geheugen
[2]. Het geheugen is in feite een vat met DNA moleculen. Twee verschillende DNA reeksen
worden gebruikt om een 0 en een 1 te coderen. Een woord bestaat dan uit een samenstelling
van deze subreeksen.
Een geheugen is nutteloos als er geen lees- en schrijfoperaties kunnen worden uitgevoerd.
Omdat het geheugen associatief is, is voor een leesoperatie een subreeks van het te lezen woord
nodig. Met behulp van extractie, beschreven in het vorige hoofdstuk, kunnen alle DNA
moleculen met een bepaalde subreeks worden gescheiden van de DNA moleculen die deze
subreeks niet bevatten. Nadat de DNA moleculen met de subreeks zijn gescheiden kan men van
die moleculen het complete woord lezen. Na een leesoperatie moeten de DNA moleculen, die
uit het geheugen zijn gehaald, weer terug in het geheugen worden geplaatst. Het is eenvoudiger
om voor de leesoperatie met behulp van amplificatie eerst een kopie te maken van het
geheugen en na de leesoperatie het geheugen te vervangen door de kopie.
Schrijfoperaties gebeuren door het toevoegen van het woord aan het geheugen. Het woord
kan met behulp van de synthese worden gecreëerd. Het nieuwe woord wordt dan fysiek
toegevoegd aan het geheugen, dat wil zeggen het vat met DNA. Het verwijderen van woorden
gebeurt door middel van extractie.
Door de DNA reeksen logisch op te delen in een adresgedeelte en een datagedeelte, kan
DNA worden gebruikt als random access memory. Om het datagedeelte terug te krijgen moet
het volledige adresgedeelte worden meegegeven. Als een bepaald adres al eerder is beschreven,
moet een volgende schrijfoperatie op dat adres door een verwijderoperatie worden voorgegaan.
Als dit niet wordt gedaan bevat het geheugen twee verschillende waarden voor één
geheugenlocatie. Het geheugen is dan onbruikbaar.
Er zijn ook andere manieren om met DNA data op te slaan. Zo maakt het Sticker model [17]
gebruik van twee soorten DNA strengen: geheugenstrengen en stickers. Geheugenstrengen
bestaan uit meerdere regionen en representeren binaire strings. Stickers zijn de Watson-Crick
complementen van de regionen van geheugenstrengen. Als van een bepaalde regio de
bijbehorende sticker aanwezig is, betekent dit dat het geassocieerde bit op 1 gesteld is, terwijl
afwezigheid van de sticker het bit op 0 stelt. Door de aan- of afwezigheid van stickers wordt
een geheugenstreng geheel of gedeeltelijk tot een helix gevormd. Zo een geheugenstreng dat
geheel of gedeeltelijk een helix is, heet een complex. Een complex met k regionen representeert
dus een string met k bits.
3.1.2.
Relationele Databases
Experimenten hebben aangetoond dat het in de praktijk zelfs mogelijk is om grootschalige
databases in DNA [20] te implementeren. Daarbij was het mogelijk om associatief door de
database te zoeken. Katsányi neemt dit nog een stap verder [10]. Katsányi geeft een mogelijke
implementatie in chemische reacties van queries op relationele DNA databases. Met behulp van
deze implementaties is het mogelijk om queries op DNA databases uit te voeren zoals op
‘normale’ databases. Operaties zoals vereniging, doorsnede, cartesisch product, projectie en
verschil zijn dan mogelijk.
3.1.3.
Databescherming
DNA reeksen zijn erg gevoelig voor invloeden van buiten af: een los DNA molecule kan
eenvoudig worden vernietigd door ongunstige omstandigheden [27], zoals extreme
temperaturen en straling. Als DNA onder de juiste omstandigheden wordt bewaard, is deze
gevoeligheid geen probleem. Voor sommige toepassingen van geheugen echter is dat niet
mogelijk.
Een oplossing hiervoor is om het DNA te injecteren in een levend organisme dat onder
extreme omstandigheden overleeft. De informatie wordt dan samengevoegd met het DNA van
het organisme zelf. Zodra het organisme sterft gaat ook de informatie verloren. Om
informatiebehoud te verzekeren moet het organisme zich om die reden vermenigvuldigen en
daarbij de informatie doorgeven. Onderzoek heeft uitgewezen dat de bacterie Deinococcus een
uitstekende kandidaat is [27]. Deze bacterie is bestand tegen extreme omstandigheden zoals
extreme temperaturen, ultraviolette en ioniserende straling.
Het DNA van deze bacterie is volledig bekend. De informatie moet dusdanig worden
gecodeerd dat de DNA reeksen niet voorkomen in het DNA van het organisme zelf, om
ongewenste mutaties te voorkomen. Een probleem is dat de bacterie de informatie gaat
interpreteren als genetische code. Om dit te voorkomen worden speciale DNA reeksen gebruikt
die de bacterie vertellen dat op dat punt de genetische code stopt. De bacterie zal dan de rest
van DNA reeks negeren.
3.2.
Voordelen
Het grote voordeel van dataopslag met behulp van DNA is de enorme opslagdichtheid.
Theoretisch kan 1 gram DNA ongeveer 4.2 x 1021 bits opslaan, terwijl een conventioneel
geheugen ‘slechts’ 109 bits per gram kan opslaan [20] en een liter water met DNA 108
terabytes [10]. Baum vindt vaten met DNA die evenveel informatie als de menselijke hersenen
kunnen opslaan niet ondenkbaar [2].
Een ander groot voordeel is dat het zoeken door DNA databases met constante tijd kan
worden uitgevoerd [10]. Huidige database-implementaties gebaseerd op de elektrische
computer kunnen dit niet evenaren. Naarmate de database meer informatie bevat duurt het
zoeken langer.
Door de informatie te injecteren in organismen kan deze informatie de meeste extreme
omstandigheden overleven. De bacterie zal zich vermenigvuldigen, dus als één bacterie sterft
maakt dat niet uit, er zijn dan nog veel andere bacteriën die de juiste informatie dragen.
3.3.
Nadelen
DNA geheugen is gebaseerd op chemische reacties. Dit brengt een bepaalde mate van
onzekerheid in het spel. Men kan er nooit 100 procent zeker van zijn dat een bepaalde
chemische reactie daadwerkelijk zal plaatsvinden. Dat reagerende moleculen daadwerkelijk
met elkaar ‘botsen’, is nooit te voorspellen. Door grote hoeveelheden te gebruiken kan de fout
wel erg klein worden gemaakt, maar volledige zekerheid is niet mogelijk.
Zoals vermeld kan de informatie ter bescherming bij organismen worden geïnjecteerd. Bij
vermenigvuldiging is echter niet uitgesloten dat er mutaties kunnen plaatsvinden. Dit zou de
integriteit van de informatie aan kunnen tasten. De gekozen bacterie heeft wel een laag
mutatiegehalte, maar het is niet uitgesloten. Daarnaast is het mogelijk een checksum aan de
informatie toe te voegen om integriteit te controleren.
De toegankelijkheid van het DNA geheugen is zeer slecht in vergelijking met huidige
geheugens. Geheugens gebaseerd op transistors kunnen lees- en schrijfoperaties in
microseconden uitvoeren. Bij DNA liggen toegangstijden in orde van uren [2].
4. Parallelle operaties met behulp van DNA computing
Nu informatie in DNA opgeslagen kan worden, wordt ingegaan op de potentie van DNA als
essentieel onderdeel van een parallelle computer. Onderzoek hiernaar is gericht op het maken
van parallelle modellen, die uitgevoerd kunnen worden met op DNA gebaseerde chemische
processen en het ontwikkelen van algoritmen hiervoor. Biologische macromoleculen kunnen
gebruikt worden voor het opslaan van informatie in deze parallelle computers [14].
4.1.
Parallelle biologische machines
Biochemische reacties kunnen gebruikt worden om algoritmen op te lossen. Wetend dat een
vast aantal biochemische reacties tegelijkertijd kan plaatsvinden, kunnen er dus miljoenen
parallelle berekeningen uitgevoerd worden [8]. Methoden voor het oplossen van verschillende
NP complete problemen zijn voorgesteld en uitgevoerd op kleine schaal. Het is echter de vraag
of deze algoritmen makkelijk te ontwikkelen en te implementeren zijn en of deze wel optimaal
gebruik maken van het parallelle aspect van DNA computing.
4.1.1.
DNA keten als basis
Voor het realiseren van een biologische computer moet men een parallelle machine construeren
waarbij iedere fase die een processor kan aannemen gecodeerd is als een DNA keten. De
bewerkingen kunnen dan vervolgens tegelijkertijd worden uitgevoerd op alle DNA moleculen.
Deze worden gebruikt voor het uitvoeren van parallelle lokale lees- en/of schrijfoperaties van
het geheugen, logische operaties en de basiseigenschappen, zoals wiskundige berekeningen.
4.1.2.
Hoge graad van parallellisme
Het rekenvermogen wordt bepaald door de tijd dat een instructie plaatsvindt en de graad van
het parallellisme. De duur van een biologische operatiestap is ongeveer 100 seconden. Dit is
dus aanzienlijk langer dan een instructie uitgevoerd op een elektronische computer.
Aangezien een biologische computer (1026 moleculen) een hogere graad heeft dan een
elektronische computer (105 processoren) is een biologische computer in theorie veel
krachtiger. Het geschatte aantal instructies dat parallel uitgevoerd kan worden op een
biologische computer is 1024, dit is gelijk aan 634.195 computers die van 1945 tot 1995
miljarden instructies per seconde uitvoerden [11]. Wat de onderzoekers dus motiveert is de
gedachte dat deze vorm van parallellisme problemen kan oplossen, die niet oplosbaar zijn met
de huidige elektronische computers.
4.1.3.
Parallelle rekenkunde
In de traditionele DNA computing wordt aan de hand van de uitvoer teruggewerkt naar de
invoer; uit alle mogelijke oplossingen wordt dan de correcte geselecteerd. Deze aanpak is
prima voor het oplossen van combinatorische problemen, echter voor het bouwen van een
breed inzetbare DNA computer is het nodig om mathematische operaties uit te kunnen voeren.
Het wordt dan nodig om vanuit de invoer te werken naar het correcte resultaat.
Guarnieri, Fliss en Bancroft [6] zijn erin geslaagd om een op DNA gebaseerd optelalgoritme
te implementeren. Om positieve binaire getallen op te tellen moet een toegepaste codering in
staat zijn om van elk bit informatie over de waarde, de positie en de carry te coderen. Een getal
wordt daarom gecodeerd door DNA strengen die elk kunnen worden opgedeeld in drie delen
namelijk een deel voor de carry, een deel voor de binaire waarde en een deel voor de operator.
De optelling van 2 bit integers geschiedt in twee fasen:
1 Het genereren van DNA representaties van alle 2 bit integers.
2 Het uitvoeren van de horizontale kettingreactie.
De horizontale kettingreactie houdt het volgende in: de 2 bit integers kunnen paarsgewijs
worden opgeteld. Het optellen van een paar gebeurt in vier stappen. Bij elke stap worden
bepaalde complementen gekoppeld om een nieuwe langere streng te vormen welke uiteindelijk
het eindresultaat representeert.
Volgens Guarnieri et al. werden experimenten van 1+1, 1+0, 0+1 en 0+0 met succes
uitgevoerd [6].
Een nadeel bij deze methode is dat de uitkomst een andere vorm heeft dan de invoer waardoor
het nog niet mogelijk is om verder te tellen met een verkregen eindresultaat. Nog een nadeel is
dat het werk minstens twee dagen in beslag neemt. Relatief weinig werk in DNA computing,
maar wel extreem veel vergeleken met traditionele computing.
Om te concurreren met het gebruikelijke silicium, is het belangrijk dat een biologische
machine snel basisoperaties kan uitvoeren. Traditionele computers kunnen namelijk
rekenkundige en booleaanse operaties in enkele stappen uitvoeren. Guarnieri en Bancroft
hebben een basis gelegd in het sommeren maar doordat hun algoritme slechts twee getallen per
keer kon optellen en geen herhaaldelijke operaties kon uitvoeren werd bij het massieve
parallelle aspect tekort geschoten.
Vervolgens kwamen er nog verscheidene algoritmen voor het oplossen van dit rekenkundige
probleem. Totdat Rubin et al. een demonstratie gaven van experimentele sequentiële
rekenoperaties. Dit had als gevolg dat ook omkeerbare rekenoperaties konden worden
uitgevoerd [19].
Hoewel het gebruikelijk is om aritmetische en booleaanse operaties uit te voeren op
numerieke en booleaanse data zal parallele rekenkunde ons instaat stellen om op hele
verzamelingen operaties uit te voeren.
4.1.4.
Versnelling van operaties
Beaver, Reif, en Papadimitrion [19] hebben onafhankelijk van elkaar bewezen dat elke
sequentiële operatie, die gebonden is aan een lineaire ruimte exponentieel versneld kan worden.
Ze toonden aan dat een sequentiële Turing machine berekeningen met ruimte s in tijd O(s) kon
simuleren.
4.2.
Voordelen
Biologische machines hebben ten opzichte van de huidige supercomputers vele positieve
aspecten. Zo is duidelijk geworden dat ze een veel hogere graad van parallellisme kunnen
aannemen. Dit is een doorbraak voor het oplossen van uitermate complexe problemen, die
bijvoorbeeld niet met huidige supercomputers opgelost kunnen worden óf zo lang duren dat ze
niet haalbaar zijn.
Een ander duidelijk aantoonbaar voordeel is het efficiënte energieverbruik. Adleman toonde
aan dat er naar schatting 2 x 1019 molecule operaties kunnen plaatsvinden per Joule. In
verhouding met de huidige supercomputers waarbij op zijn hoogst 109 operaties per Joule
kunnen plaatsvinden, is dit dus extreem zuinig.
Uit het voorgaande hoofdstuk is de opslag, die haalbaar is binnen een processor van een
biologische machine, zeer opmerkelijk te noemen. Zo kan bij het opslaan van gegevens in
DNA moleculen de dichtheid toenemen tot ongeveer 1 bit per kubieke nanometer. Huidige
opslagmedia, zoals een videotape, bevatten informatie met een dichtheid van ongeveer 1 bit per
1012 nanometer. In het hoofdstuk van informatieopslag werd hierop dieper ingegaan.
4.3.
Nadelen
Het probleem van parallelle rekenkunde is dat het nog niet ontwikkeld is, terwijl de basis al wel
is gelegd. Zo moeten er bijvoorbeeld algoritmen komen die het parallelle aspect van een
biologische machine nog beter kunnen benutten. Het is tot nu toe alleen nog maar gelukt om
een fractie van de totale graad van parallellisme te verkrijgen.
Een aspect dat ook hierbij komt kijken, is dat het lastig is voor ontwikkelaars om een
biologische machine te ontwikkelen en te implementeren. Het totale systeem is veel te complex
hiervoor, waardoor er met veel dingen rekening gehouden moet worden.
Bovendien liggen de productiekosten van de gebruikte hardware hoog, want de hoeveelheid
DNA die nodig is om een proces uit te voeren kan zelfs oplopen tot het totale gewicht van de
Aarde [1, 17].
5. Cryptografie
DNA computing brengt nieuwe mogelijkheden voor de cryptografie met zich mee. Zoals
beschreven in voorgaande hoofdstukken zijn parallelle verwerking en geheugen voordelen van
DNA computing. Dit, gecombineerd met de willekeurige aard van DNA strengen, kan gebruikt
worden om te experimenteren met nieuwe en bestaande encryptiemethoden of om bestaande
methoden te kraken.
De beveiliging van data door middel van cryptografie is door de jaren heen steeds
belangrijker geworden. Dit heeft te maken met het sterk toenemende communicatieverkeer,
evenals de aard van de communicatie. Er blijkt een sterke vraag te zijn naar vertrouwelijk
dataverkeer en identificatie van personen dan wel computers. Doordat er steeds grotere
hoeveelheden data versleuteld moeten worden, is snelheid van de encryptiemethoden van
belang.
Dit hoofdstuk zal twee methoden beschrijven voor encryptie door middel van DNA
computing evenals een methode om een bestaande encryptiemethode te kraken. Hiertoe wordt
eerst in de volgende sectie een inleiding gegeven tot deze methoden, die zijn geïmplementeerd
in conventionele computers. Vervolgens wordt beschreven hoe DNA computing hiervoor ook
gebruikt kan worden, om af te sluiten met een discussie over de praktische toepasbaarheid van
DNA cryptografie.
5.1.
Introductie tot cryptografie
Data, die gelezen en begrepen kan worden zonder speciale middelen, wordt plaintext genoemd.
Met encryptie wordt deze plaintext geconverteerd met behulp van een sleutel naar
onbegrijpelijke ciphertext. De omgekeerde operatie, van ciphertext naar plaintext, wordt
decryptie genoemd.
Encryptie kan opgedeeld worden in twee gebieden, te weten conventionele encryptie en
public key encryptie. Bij conventionele encryptie wordt één sleutel gebruikt voor de encryptie
en decryptie van een bericht. De Data Encryption Standard (DES) is een bekend voorbeeld van
een conventionele encryptiemethode. Een probleem bij conventionele encryptie is de distributie
van de sleutel. Omdat zender en ontvanger de geheime sleutel nodig hebben, is er een vorm van
transport nodig. Bij onderschepping van deze sleutel is de hele encryptie nutteloos. Public key
encryptie lost dit probleem op door verschillende sleutels te gebruiken voor encryptie en
decryptie. In dit artikel zal niet worden ingegaan op public key encryptie. Encryptiemethoden
kunnen tevens opgedeeld worden in drie andere categorieën: substitutie ciphers, transpositie
ciphers en one-time pads.
Substitutie ciphers vervangen elke letter in de plaintext door een andere letter om deze te
verbergen. Eén van de oudste en bekendste substitutie ciphers is de Caesar cipher waarbij de a
een D wordt, de b een E, de c een F en de z een C. Er zijn vele varianten hierop mogelijk zoals
het gebruik van verschillende alfabetten voor substitutie of het vervangen van één letter door
een lettergroep. Transpositie ciphers vervangen de letters in de plaintext niet, zij veranderen
slechts de volgorde van de letters om het bericht te verbergen [22].
5.2.
Cryptografie door middel van DNA computing
In deze sectie worden twee encryptiemethoden besproken, en hoe deze geïmplementeerd
kunnen worden in DNA. Ook zal een methode gegeven worden om een bestaande
encryptiemethode te kraken met DNA computing.
5.2.1.
Steganografie met DNA
Steganografie is het verbergen van geheime berichten in andere onbelangrijke informatie, en
wordt als een simpele vorm van cryptografie beschouwd. Het komt voort uit een
spionagetechniek uit de Tweede Wereldoorlog waarbij een verkleinde foto op de punten in een
brief geplakt werd.
In het hoofdstuk over informatieopslag met DNA werd geschat dat een liter water met DNA
ongeveer 108 terabytes aan informatie kan opslaan. Door hierin een geheim bericht van enkele
megabytes te verstoppen, is het ondoenlijk het bericht te ontdekken zonder kennis van de
plaats.
Clelland et. al hebben in een paper dit idee uitgewerkt [4]. Zij hebben uit de doeken gedaan
hoe steganografie mogelijk is door berichten gecodeerd als DNA strengen te verbergen door ze
in een grote hoeveelheid DNA te verstoppen. Zij gebruikten hierbij een substitutie cipher
waarbij elk uniek tripel basen een letter van het alfabet werd toegewezen. Het begin en eind
van het geheime bericht werd aangegeven door speciale reeksen basenparen. De ontvanger kent
deze reeksen en kan de juiste enzymen gebruiken om het bericht te amplificeren en uiteindelijk
te extraheren.
Doordat kleine hoeveelheden DNA extreem veel basenparen bevatten is het voor een
onderschepper ondoenlijk om de plaats van het bericht te ontdekken zonder kennis van de
speciale reeksen basenparen. Deze methode blijkt ook zeer robuust te zijn, Clelland et. al
hebben namelijk een experiment uitgevoerd waarbij een geheim bericht volgens bovenstaande
procedure in ongeveer 100 nucleotiden gecodeerd werd. Vervolgens heeft hij het DNA (met
bericht) op de punten van een geprinte brief gepipetteerd en deze brieven verstuurd via de post.
Na ontvangst was het mogelijk om het geheime bericht geheel correct te decoderen door
amplificatie en extractie [4].
5.2.2.
DNA One-time pads
Tot nu toe is er slechts één onbreekbare encryptiemethode bekend, namelijk de zogenoemde
one-time pads. Het is in feite een substitutie cipher waarbij een willekeurige bitreeks als sleutel
wordt gebruikt. De bitreeks is van dezelfde grootte als de te versleutelen data. Om de encryptie
tot stand te brengen wordt de plaintext eerst geconverteerd naar een bitreeks. Vervolgens wordt
de ciphertext verkregen door bit voor bit de booleaanse XOR-operatie uit te voeren op de
sleutel en de plaintext [22].
De kracht van deze methode zit in het feit dat de ciphertext geen enkele informatie bevat die
decryptie mogelijk kan maken zonder kennis van de gebruikte sleutel. Het grote nadeel van
deze methode is dat de sleutel even lang moet zijn als de plaintext. Dit kan voor problemen
zorgen bij encryptie van grote hoeveelheden data zoals videobestanden. Een ander nadeel is dat
dezelfde sleutel bekend moet zijn bij zowel ontvanger als zender [22].
DNA heeft een aantal karakteristieken die het mogelijk maken om one-time pads te
gebruiken. DNA strengen hebben namelijk van nature een willekeurige samenstelling. Het is
zeer eenvoudig om een DNA streng te verkrijgen met volstrekt willekeurige basenparen. Een
andere eigenschap is de capaciteit van informatieopslag van DNA strengen. Deze twee
eigenschappen maken DNA zeer geschikt voor het construeren van sleutels voor one-time pads.
Gehani et al. hebben beschreven hoe het mogelijk is om DNA computing te gebruiken om
data te versleutelen door middel van one-time pads. Er zijn hierbij drie stappen nodig: het
coderen van de sleutel en plaintext in DNA, het genereren van de sleutel en het implementeren
van de booleaanse XOR-operatie in DNA operaties [5].
Voor de codering van de plaintext en het generen van de one-time pads in DNA wordt
gekozen voor DNA tiles, complexen van meerdere DNA strengen. Deze tiles worden gebruikt
omdat er parallelle XOR-operaties voor bekend zijn en omdat deze zelfassemblerend zijn, wat
het genereren van de sleutel mogelijk maakt [5].
5.2.3.
DES kraken met de DNA computer
Behalve het construeren van sterke encryptie met DNA computing, kan deze vorm van
computing ook gebruikt worden om bestaande encryptiemethoden te kraken. Met het kraken
van een encryptiemethode zoals DES wordt bedoeld het ontdekken van de sleutel bij een
bekend paar plaintext-ciphertext. Als deze sleutel bekend is, kan alle andere ciphertext van
diezelfde sleutel gedecodeerd worden.
DES is een encryptiemethode die 64 bit berichten met een 56 bit sleutel codeert in 64 bit
door het gebruik van substitutie en transpositie meerdere keren uit te voeren. Door cryptanalyse
zijn er technieken bekend waardoor DES sneller gekraakt kan worden dan met de brute force
methode. Ook zijn er andere methoden voorgesteld zoals speciaal geconstrueerde silicium von
Neumann-computers, die DES zouden kunnen breken in niet meer dan 7 uur [25]. De manier
waarop DNA computing gebruikt kan worden om achter de sleutel te komen, gegeven één
plaintext-ciphertext paar, wordt beschreven door Boneh et. al [3].
Om plaintext te coderen wordt gebruik gemaakt van een zogenaamd DES-circuit,
opgebouwd uit P-boxes en S-boxes. P-boxes is een stuk hard- of software die een bitreeks
transponeert aan de hand van een sleutel. Een S-box substitueert een bitreeks. Bij coderen van
een plaintext bericht wordt dit DES-circuit 16 keer achter elkaar doorlopen [22].
Voor decryptie van een ciphertext zijn slechts kleine aanpassingen van het DES-circuit
nodig. Boneh beschouwt daarom in zijn artikel de encryptie- en decryptie-circuits als
gelijkwaardig.
Het plan van Boneh om de sleutel k te achterhalen bij een bekend plaintext-ciphertext (M,E)
paar is al volgt:
1. Construeer het decryptie circuit DES-1 in DNA.
2. Genereer voor elke mogelijke sleutel een paar bitreeks (kn ,Mn)= DES-1 (E,kn).
3. Extraheer alle DNA strengen die M bevatten.
4. Extraheer k uit deze DNA strengen.
Boneh beschrijft in zijn artikel de constructie van het DES-circuit met gebruik van DNA
operaties. Dit wordt gedaan door bitreeksen te gebruiken, gecodeerd als reeksen van
basenparen. Verder gebruikt hij de booleaanse operatie XOR en lookup tables. Voor meer
informatie over deze operaties zie [3].
5.3.
Voordelen
DNA computing biedt twee voordelen met betrekking tot het gebied van cryptografie. Ten
eerste de hoge opslagdichtheid van DNA. Zoals beschreven in het hoofdstuk over
informatieopslag kan er veel meer data worden opgeslagen dan met conventionele
opslagmedia, zoals magnetische schijven. Op het gebied van steganografie is dit van cruciaal
belang, omdat de grootte van de dummy data ten opzichte van het geheime bericht de sterkte
van deze methode aangeeft. Ook bij one-time pads is dit een belangrijk voordeel, omdat veel
grotere hoeveelheden data dan tot nu toe mogelijk ermee gecodeerd kunnen worden.
Een andere karakteristiek van DNA computing is de mogelijkheid tot parallelle verwerking.
Deze eigenschap wordt gebruikt door Boneh bij zijn algoritme voor het kraken van DES. Het
genereren van alle mogelijke sleutel-plaintext paren gebeurt parallel. Dit zorgt ervoor dat het
probleem in lineaire tijdcomplexiteit opgelost kan worden, dat wil zeggen dat de methode in
DNA beter schaalbaar is dan geïmplementeerd op conventionele computers.
5.4.
Nadelen
Het probleem bij DNA computers is dat de operaties weliswaar parallel uitgevoerd worden,
maar dat de rekentijd groot is, vergeleken bij conventionele computers. Boneh geeft als
schatting dat het breken van DES in ongeveer drie maanden mogelijk moet zijn met zijn
methode. Dit steekt natuurlijk schril af tegen de zeven uur van Wiener met zijn methode van
speciale (silicium) hardware [25].
6. Signaalverwerking
Een tweede toepassing van DNA computing is signaalverwerking. Deze sectie beschrijft een
toepassing van de verwerkingscapaciteit van DNA in digitale signaalverwerkingsproblemen
(DSP problemen). Ondanks dat digitale signalen worden gebruikt als invoer in
gegevensverwerkingtoepassingen van DNA (bijvoorbeeld in databases [13, 20]), zijn er geen
eerdere onderzoeken geweest naar het toepassen van DNA computing voor het oplossen van
DSP problemen. Eerst zullen we kijken naar een toepassing van een
signaalverwerkingsprobleem dat als bewijs kan dienen voor op DNA gebaseerde DSP
problemen. Vervolgens wordt het belangrijkste aspect van deze toepassing besproken en ook de
toepassing van de uitvoering van DNA gegevensbestanden op digitale signalen.
6.1.
DNA verwerking toegepast op gelijkheidsproblemen
Toepassingen in signaal- en beeldverwerking vereisen de gelijkenis van ofwel twee signalen
ofwel delen van de twee signalen. Er bestaan verschillende soortgelijke problemen, waar het
ongelijkheidsschattingsprobleem [7] een voorbeeld van is.
Men heeft veel werk verricht aan het ongelijkheidsschattingsprobleem. Criteria die hiervoor
het meest gebruikt worden, zijn fotometrische gelijkenis en ruimteconsistentie. Er is een
beperking die ruimteconsistentie oplegt aan het ongelijkheidsgebied, te weten ordering
constraint. Dit houdt in dat als men een pixel A heeft die links van een pixel B staat, dat deze
orde gehandhaafd moet blijven door zowel pixel A als pixel B.
In de meeste DSP toepassingen worden de beschikbare gegevens verstoord door ruis dat als
een bijkomend en stationair proces wordt gemodelleerd. Gelijkheidsproblemen kunnen
opgelost worden met behulp van DNA [23]. Indien het ongelijkheidsschattingsprobleem goed
genoeg geformuleerd is, kan dit probleem opgelost worden door gebruik te maken van DNA
moleculen. Het ontharden van DNA kan heel gemakkelijk gebeuren met behulp van een
computer en is dus toepasbaar om dit probleem op te lossen [26].
Als men een DSP probleem wil oplossen met behulp van DNA computing, dan is de eerste
stap het coderen van de te vergelijken signalen in een reeks van de basen. Als men een
codewoord ontwerpt, zijn er bepaalde beperkingen om niet-specifieke kruising (non-specific
hybridization) te voorkomen omdat bij de bestaande toepassingen op bio-computing deze niet
wenselijk is. Echter kan de niet-specifieke kruising wel nuttig (en zelfs noodzakelijk) zijn in de
toepassingen van de signaalverwerking. Dit omdat een nauwkeurige gelijkenis vaak genoeg
niet mogelijk is vanwege de aard van de signalen en de aanwezigheid van ruis.
Verder is er ook nog een gelijkenis gewenst in de mean-squared-error (MSE). Het effect
van temperatuurschommelingen op DNA moleculen is afhankelijk van hoe hun basen zijn
gecombineerd in de streng [16]. Als men deze verhoudingen heel goed plaatst en aan
codewoorden van DNA een signaalwaarde geeft, kan men de gelijkenissen controleren door de
temperatuur van de kruisingen aan te passen.
Om een oplossing te vinden voor het ongelijkheidsschattingsprobleem, kan men gebruik
maken van het ontharden van DNA. Dit gebeurt dan doordat de linkerbeeldlijn wordt
gecodeerd in een bepaalde DNA reeks en de rechterbeeldlijn wordt gecodeerd in het WatsonCrick complement van deze reeks. Als beide DNA reeksen in een oplossing worden gedaan, zal
dit ertoe leiden dat reeksen die gelijk zijn aan elkaar een helix vormen. Als gevolg van de nietspecifieke kruising zullen de reeksen die niet gelijk zijn aan elkaar ‘bellen’ vormen [23]. Indien
men de codewoorden zorgvuldig ontwerpt, kan het ontharden van DNA een krachtig
hulpmiddel zijn om een optimale oplossing te vinden. Als men de lengte van elke bel opmeet
en ook de positie van elke bel bepaalt vanuit beide richtingen, dan verkrijgt men de gezochte
ongelijkheidsschattingen.
6.2.
Op DNA gebaseerde gelijkenis van digitale signalen.
Het vertonen van gelijkenissen tussen digitale signalen is een fundamenteel probleem dat
voorkomt bij vele signaalverwerkingstoepassingen. Het ontharden van DNA wordt hier
gebruikt als zoek- of classificatiemechanisme door de gelijkenissen tussen signalen te
kwantificeren. Kenmerkend voor het gelijkheidsprobleem zijn de onnauwkeurigheid van
gelijkenissen en de aanwezigheid van ruis. Ruis is vaak onvermijdelijk en komt vooral uit het
signaalvormingsproces, het transmissiemedium, het opnameprocédé of een combinatie van
deze drie. Kortom om het gelijkheidsprobleem op te lossen, is het noodzakelijk om de
gelijkenissen tussen signalen te kwantificeren.
Digitale signalen moeten eerst in reeksen van het DNA alfabet (A,C,G,T) gecodeerd worden
om een DNA oplossing te kunnen genereren. Om ruis en onvolmaakte gelijkenissen op te
vangen, wordt de Noise Tolerance Constraint (NTC) geïntroduceerd. NTC zorgt ervoor dat de
onvolmaakt gelijkenissen gecontroleerd kunnen worden door de temperatuur van de kruisingen
aan te passen, indien men de onderlinge verhoudingen van DNA basen zorgvuldig plaats en
signaalwaarden toekent aan codewoorden [23, 24]. NTC geeft geen oplossing voor het
codewoordontwerp, maar geeft slechts een verband tussen gehele waarden en het smeltpunt van
DNA opeenvolgingen.
6.3.
Op DNA gebaseerde opslag van digitale signalen
Er wordt op dit moment onderzoek gedaan naar het gebruik van DNA als opslagmiddel voor
digitale signalen. Men gaat er vanuit dat een op DNA gebaseerde opslag ons zo bekende
magnetische schijf niet gaat vervangen, maar dat het wel een compacte, economische en
duurzame vorm van opslag kan verstrekken.
Als men andere opslagmiddelen vergelijkt, dan biedt het gebruik van DNA om digitale
signalen of gegevens op te slaan veel voordelen. Gegevensbestanden repliceren en het
opvragen van gegevensbestanden kan op allerlei manieren plaatsvinden. Als men
vraagmoleculen krijgt, kan met behulp van ontharden van DNA op een zeer efficiënte manier
worden gezocht naar gelijkwaardige moleculen in het gegevensbestand. Hierbij is de vraagtijd
niet afhankelijk van de grootte van het gegevensbestand, omdat het hele bestand parallel
doorzocht kan worden, dit in tegenstelling tot digitale gegevensbestanden.
6.4.
Voordelen
De voordelen van het gebruik van DNA om gegevens digitaal op te slaan, voornamelijk
signalen, omvatten: informatiecompactheid, economische replicatie van gegevensbestanden,
efficiënte vraagmechanismen, het opvangen van ruis met behulp van NTC en een vraagtijd die
onafhankelijk is van de grootte van het gegevensbestand.
6.5.
Nadelen
Het oplossen van DSP problemen met behulp van DNA is nog niet realiseerbaar met de huidige
technieken.
7. Conclusie
Er wordt vooruitstrevend onderzoek gevoerd naar de mogelijkheden van DNA computing,
waarbij in mindere mate de praktische toepasbaarheid in ogenschouw wordt genomen. Dit
artikel tracht desondanks verschillende praktische toepassingsgebieden van DNA computing te
onderzoeken.
Om praktische informaticatoepassingen te implementeren zijn er verschillende
hulpmiddelen nodig. Het is noodzakelijk om informatie op te slaan, zowel de te verwerken
informatie als programmacode. Uit het onderzoek is gebleken dat informatieopslag goed
mogelijk is met DNA computing, het biedt zelfs voordelen zoals een grote opslagcapaciteit en
constante toegangstijden. De opslagcapaciteit is zo groot dat het volledige gebruik ervan
uitzonderlijk is. Vooralsnog zijn de toegangstijden lang maar deze zullen met de chemische
vooruitgang afnemen.
Parallellisatie met behulp van DNA computing kan voor verschillende doorbraken in de
technologische sector zorgen. Zo zullen problemen, waarvan de oplossingen veel tijd vergen, in
een acceptabel tijdsinterval opgelost kunnen worden. Bovendien kan het voor een schoner
milieu zorgen, vanwege het feit dat biologische machines een stuk zuiniger zijn dan welke
huidige machine dan ook.
Cryptografie en signaalverwerking zijn beiden specifieke toepassingen die zowel
informatieopslag als parallelle verwerking gebruiken. De getrokken conclusies gelden dus ook
voor deze specifieke toepassingen.
Concluderend kan gesteld worden dat DNA computing zeer veel potentie heeft om een
algemeen toepasbare verwerkingsmethode te worden. Er is echter nog veel onderzoek nodig
naar snellere methodes voor DNA manipulatie voordat deze praktisch toepasbaar worden. De
toekomst van DNA computing is voorlopig nog afhankelijk van de vorderingen in de
biochemie.
Referenties
[1] Adleman, L. M. (1994). Molecular Computation of Solutions to Combinatorial Problems.
Science, 266:1021-1024.
[2] Baum, E. (1995). Building an Associative Memory Vastly Larger Than the Brain. Science,
268:583-585.
[3] Boneh, D., Dunworth, C., & Lipton, R. (1996), Breaking DES using a molecular
computer. Proceedings of DNA-Based Computers, volume 27 of DIMACS: Series in Discrete
Mathematics and Theoretical Computer Science. American Mathematical Society.
[4] Clelland, C. T., Risca, V., & Bancroft, C. (1999). Hiding messages in DNA microdots.
Nature, 399:533-534.
[5] Gehani, A., LaBean, T.H., & Reif, J.H. (1999). DNA-based Cryptography. Proceedings of
5th International Meeting on DNA Based Computers, MIT, 14-15 June.
[6] Guarnieri, F., Fliss, M., & Bancroft, C. (1996). Making DNA add. Science, 273:220-223.
[7] Haralick, R.M. and Shapiro, L.G. (1993). Image matching in Computer and Robot Vision.
Reading MA: Addison-Wesley, vol. II, Ch. 16.
[8] Hug, H. & Schuler. R. (2001). DNA-based parallel computation of simple arithmetic.
Proceedings of DNA Computing, 7th International Meeting on DNA Based-Computers, DNA
2001, Tampa, U.S.A., 10-13 June 2001, 159–166, University of South Florida.
[9] Kari L. (1997). DNA Computing: Arrival of Biological Mathematics. Math. Intelligencer,
19(2):9-22.
[10] Katsányi, I. (2003). On Implementing Relational Databases on DNA Strands. Acta
Cybernetica, 16(2):259-270.
[11] Li, K. (1996). Massively Parallel Biological Computing. NP-Complete, 4(1):5-8.
[12] Lipton, R. J. (1995). Using DNA to solve NP-Complete Problems. Science 268:542-545.
[13] Mills, A.P., Yurke, B. & Platzman, P.M. (1999). Article for analog vector algebra
computation. Biosystems, 52(1-3):175–180.
[14] Ogihara, M., & Ray, A. (1999). Executing parallel logical operations with DNA. Congress
on Evolutionary Computation, Washington, DC, pages 972-979, IEEE.
[15] Peterson, I. (1996 July 2). Ivars Peterson's MathLand: DNA adds up. [WWW document]
http://www.maa.org/mathland/mathland_7_22.html.
[16] Peyret, N., Seneviratne, P.A., Allawi, H.T. & SantaLucia, Jr., J. (1999). Nearest-neighbor
thermodynamics and NMR of DNA sequences with internal A-A, C-C, G-G, and T-T
mismatches. Biochemistry, 38(12):3468–3477.
[17] Pisanti, N. (1997). A survey on DNA-Computing. (Report No. TR-97-07). Pisa, Italy:
Universita di Pisa Departimento di Informatica.
[18] Qiu, Z. F., & Lu, M. (2000). A new solution for Boolean Circuit with DNA Computer.
Technical report, Texas A&M University, Department of Electrical Engineering.
[19] Reif, J. H. (1998) Paradigms for Biomolecular Computation. Proceedings of First
International Conference on Unconventional Models of Computation, Auckland, New Zealand,
January 1998, 72-93.
[20] Reif, J., LaBean, T., Pirrung, M., Rana, V., Guo, B., Kingsford, C. & Wickham, G.
(2001). Experimental Construction of Very Large Scale DNA Databases with Associative
Search Capability. Proceedings of DNA Computing, 7th international Meeting on DNA-Based
Computers, DNA 2001, Tampa, U.S.A., 10-13 June 2001, 231-247, University of South
Florida.
[21] Rooβ, D. & Wagner, K. W. (1996). On the power of DNA Computing. Information and
computation 131(2):95-109.
[22] Tanenbaum, Andrew S. (2003). Computer networks (4th ed.). Upper Saddle River, New
Jersey: Prentice Hall PTR.
[23] Tsaftaris, S.A. (2003). DNA-based digital signal processing. M.S. thesis, Evanston:
Northwestern University, Deptartment of Electrical Computer Engineering.
[24] Tsaftaris, S.A., Katsaggelos, A.K., Pappas, T.N., Papoutsakis, E.T. (2001). DNA-based
matching of digital signals. Proceedings of International Conference on Acoustics, Speech,
and Signal Processing, vol. 5, Montreal, Quebec, Canada, May 17–21, 2004, 581–584, IEEE.
[25] Wiener, M. J. (1996). Efficient DES Key Search. presented at the Rump session of Crypto
‘93. Reprinted in Practical Cryptography for Data Internetworks, W. Stallings, editor, IEEE
Computer Society Press, 31-79.
[26] Winfree, E. (1995). On the computational power of DNA annealing and ligation.
Proceedings of DNA-Based Computers: DIMACS Workshop, 4 April, 1995, 199–221.
[27] Wong, P. C., Wong, K.-K. & Foote, H. (2003). Organic Data Memory using the DNA
Approach. Communications of the ACM, 46(1):95-98.
Download