Kryptografia molekularna

advertisement
Kryptografia molekularna
Krzysztof Maćkowiak
Doradztwo Gospodarcze DGA S.A., Politechnika Poznańska
www.kryptografia.com
Celem referatu jest przybliŜenie innej, alternatywnej metody ochrony danych.
Niekonwencjonalne podejście, wykorzystujące cząsteczki DNA, umoŜliwia
wykonywanie najwaŜniejszych operacji wykorzystywanych w ochronie danych
takich jak: szyfrowanie, ukrywanie danych (steganografia), tworzenie skrótu,
kryptoanaliza oraz identyfikacja osób. W referacie przedstawione będą
podstawowe pojęcia związane z biologią (budowa cząsteczki DNA, łańcuchowa
reakcja polimerazy, sekwencjonowanie) oraz bioinformatyką (komputer DNA i
jego porównanie z komputerami tradycyjnymi, wykorzystywanie DNA i RNA do
rozwiązywania problemów obliczeniowych). Omówione będą w skrócie
sposoby wykorzystywania cząsteczek DNA w ochronie danych oraz dokładnie
przedstawione zostaną przykładowe metody kryptografii i steganografii z
wykorzystaniem cząsteczek DNA.
1. Budowa cząsteczek DNA
Wszystkie organizmy Ŝywe mają podobną molekularną budowę biochemiczną.
Składają się z tych samych molekuł: białek i kwasów nukleinowych. Kwasy
nukleinowe kodują informację genetyczną potrzebną do wytwarzania białek i
przekazania tych reguł następnym pokoleniom.
WyróŜniamy dwa rodzaje kwasów nukleinowych:
DNA – deoksyrybonukleinowy (deoxyribonucleic acid),
RNA – rybonukleinowy (ribonucleic acid).
Zasadę budowy DNA odkryli w 1953 roku:
J.D. Watson i F.H. Crick – model helisy – Nagroda Nobla,
M. Wilkins – Nagroda Nobla,
R.E. Franklin.
DNA jest dwuniciową helisą składającą się z prostszych molekuł (nukleotydów).
Pojedynczy nukleotyd zbudowany jest z:
cząsteczki cukru – deoksyrybozy (2’-deoxyribose), zawierającej pięć atomów
węgla, oznaczonych od 1’ do 5’.
jednej grupy fosforanowej,
zasady azotowej.
Molekuły DNA róŜnią się zasadami azotowymi. To właśnie zdefiniowana kolejność
zasad zawartych w cząsteczkach DNA stanowi nośnik informacji genetycznych.
WyróŜnia się cztery zasady azotowe: adenina A (adenine), guanina G (guanine),
cytozyna C (cytosine) oraz tymina T (tymine). Adenina i guanina to pochodne
puryny, natomiast cytozyna i tymina to pochodne pirymidyny.
Nukleotydy w zaleŜności od występujących w nich zasad nazywamy:
deoksyguanylanem
(z
guaniną),
deoksyadenylanem
(z
adeniną),
deoksycytydylanem (z cytozyną) oraz deoksytymidylanem (z tyminą). Łańcuch DNA
jest oligonukleotydem.
Podwójną helisę DNA otrzymujemy dzięki wiązaniom zasad komplementarnych
(wiązania wodorowe, H-bond). Ze względu na budowę helisy, moŜliwe są purynowopirymidowe pary zasad. Jednym ze składników musi być puryna, drugim zaś
piramidyna. Powstawanie par zasad (hybrydyzacja, parowanie) jest dodatkowo
ograniczone warunkami tworzenia się wiązań wodorowych. Atomy wodoru w
zasadach zajmują dokładnie zdefiniowane połoŜenie. Adenina nie moŜe tworzyć
pary z cytozyną, gdyŜ w jednej z pozycji wiąŜących mogłyby znajdować się dwa
wodory, natomiast w drugim brakowałoby wodoru (komplementarność zasad).
Podobnie guanina nie moŜe tworzyć pary z tyminą. MoŜliwe jest utworzenie
następujących par: A-T (adenina-tymina) oraz G-C (guanina-cytozyna).
Pomiędzy zasadami występują wiązania wodorowe:
podwójne pomiędzy A i T,
potrójne pomiędzy G i C.
Rdzeń DNA jest stały dla całej cząsteczki i składa się z reszt deoksyrybozy
połączonych resztami fosforanowymi. Zasady purynowe i pirymidowe znajdują się
wewnątrz łańcucha, a fosforany i reszty deoksyrybozy – na zewnątrz helisy. Zasady
są skręcone względem siebie pod kątem 36˚. Zatem na całkowity skręt helisy
przypada 10 nukleotydów w kaŜdym łańcuchu.
Łańcuch DNA wykazuje polarność. Jeden z jego końców ma grupę 5’-OH, drugi
3’-OH. Przyjmuje się, Ŝe niezwiązana grupa 5’-OH jest ulokowana w nukleotydzie
znajdującym się po lewej stronie zapisu, natomiast grupa 3’-OH po prawej stronie.
Zasady zapisujemy, więc w kierunku 5’->3’.
Obie nici DNA mają przeciwną orientację - są antyrównoległe. Znając jeden łańcuch,
moŜna odtworzyć drugi poprzez operację odwrotnego dopełnienia (reverse
complementation).
5’ … TAGACTTAGGC … 3’
3’ … ATCTGAATCCG … 5’
Jest to podstawa mechanizmu replikacji DNA w komórkach. W procesie replikacji,
biorą udział enzymy, zwane polimerazami DNA, które w procesie tym czerpią
instrukcje od matrycowych łańcuchów DNA.
Dwuniciowa helisa stabilizowana jest przez wiązania wodorowe między
komplementarnymi zasadami. Po ich zerwaniu dwa łańcuchy DNA z łatwością się
rozdzielają. Efekt ten moŜna uzyskać, przez ogrzewanie roztworu DNA, jego
zakwaszaniu albo alkalizację, powodujące jonizację zasad tzw. denaturację. Proces
rozplatania dwuniciowej helisy nazywamy topnieniem. Temperatura topnienia zaleŜy
od ilości odpowiednich par zasad. Musi być ona wyŜsza, gdy mamy więcej par G-C,
które są stabilniejsze od par A-T.
1.1. Reakcja łańcuchowa polimerazy (PCR – polymerase chain reaction)
Reakcja PCR opracowana została przez K.B. Mullisa i M. Smitha, którzy otrzymali za
to odkrycie Nagrodę Nobla w dziedzinie chemii w 1993 roku. Jest to reakcja
powielania (amplifikacji) określonej sekwencji DNA. Reakcja PCR wykorzystuje
enzym (polimerazę DNA), który jest katalizatorem syntezy pojedynczego łańcucha
DNA. Polega ona na rozpleceniu podwójnego łańcucha (etap denaturacji). Etap
anilingu: hybrydyzacja primera komplementarnego do końca 5’ pojedynczego
łańcucha DNA. Kolejny etap: polimeryzacja – do końca 3’ primera zostanie
dobudowana komplementarna nić DNA. W efekcie tych trzech etapów powstanie
dwuniciowa helisa. Poszczególne etapy związane są ze zmianą temperatury,
dlatego w reakcji PCR wykorzystywana jest polimeraza odporna na wysoką
temperaturę.
Jednokrotna reakcja podwaja liczbę kopii. Wielokrotne zastosowanie reakcji PCR
powoduje ekspotencjalny przyrost liczby kopii. Błędy w procesie powielania
występują bardzo rzadko, mniej więcej raz na 10 miliardów zreplikowanych zasad.
1.2 Sekwencjonowanie
Metoda ta, wynaleziona przez naukowców amerykańskich i brytyjskich w roku 1977,
polega na podziale cząsteczki DNA na fragmenty a następnie na odczytaniu
sekwencji nukleotydów, z których składa się ta cząsteczka.
Istnieje wiele metod sekwencjonowania. Przykładowe metody:
1. Elektroforeza DNA w Ŝelu agarozowym – fragmenty łańcuchów DNA
umieszczamy w 4 kieszonkach i poddajemy działaniu silnego pola
elektrycznego, na skutek czego fragmenty DNA migrują w Ŝelu w kierunku
elektrody dodatniej (DNA ma ładunek ujemny) z szybkością zaleŜną od ich
wielkości i kształtu. Następnie odczytujemy sekwencję na podstawie
kolejności prąŜków. Metoda nie jest pozbawiona błędów.
2. Sekwencjonowanie przez hybrydyzację – wykorzystujemy moŜliwość
tworzenia helisy z pojedynczej nici. Chcemy odczytać sekwencję nukleotydów
pojedynczej nici o długości n. Wprowadzamy ją do roztworu wraz z pełną
biblioteką oligonukleotydów o długości k (k<<n). Oligonukleotydy, które
wykrywamy na podstawie fluorescencji, przyłączają się do łańcucha. Po
przyłączeniu moŜemy na podstawie barwy przyłączonych oligonukleotydów
odczytać szukaną sekwencję łańcucha. Bibliotekę nukleotydów moŜna
stworzyć na specjalnym chipie.
Bioinformatyka (bioinformatics, biocomputing) zajmuje się symulacjami
komputerowymi w biochemii i biologii molekularnej, tworzeniem i zarządzaniem
bazami danych, poszukiwaniem, wyciąganiem, analizą i interpretacją informacji z
biologicznych baz danych, tworzeniem nowych algorytmów i metod statystycznych
do analizy danych biologicznych oraz innymi technikami informatycznymi
związanymi z naukami biologicznymi.
Informatyka DNA (DNA computing) określana równieŜ jako informatyka
molekularna, jest nową alternatywą dla równoległych systemów komputerowych. Jej
początek sięga 1994 roku, kiedy to Leonard M. Adleman (współtwórca znanego
algorytmu szyfrowania asymetrycznego RSA) po raz pierwszy zademonstrował
moŜliwość wykorzystania cząsteczek molekularnych do rozwiązywania problemów
matematycznych. Z uŜyciem cząsteczek DNA rozwiązał on siedmiowierzchołkowy
(14 dróg) problem poszukiwania ścieŜki Hamiltona.
ŚcieŜka Hamiltona jest ścieŜką wychodzącą z dowolnego, ustalonego wierzchołka
grafu i przechodzącą przez wszystkie wierzchołki dokładnie jeden raz (przez
pojedynczą krawędź moŜe przejść wielokrotnie). ŚcieŜka kończy się w ustalonym
wierzchołku docelowym (w przypadku cyklu Hamiltona jest to ten sam wierzchołek,
w którym rozpoczęto poszukiwanie).
Algorytm Leonarda Adlemana dla grafu o n wierzchołkach:
I)
Stwórz duŜy zbiór losowych ścieŜek, przechodzących przez graf.
II)
Dla kaŜdej ścieŜki sprawdź, czy:
a) zaczyna się w wierzchołku początkowym i kończy w docelowym, jeŜeli
nie to usuń ją ze zbioru,
b) przechodzi dokładnie przez n wierzchołków, jeŜeli nie to usuń ją ze
zbioru,
c) przechodzi dokładnie przez kaŜdy wierzchołek, jeŜeli nie to usuń ją ze
zbioru.
I)
JeŜeli powstały zbiór zawiera elementy to istnieje szukana ścieŜka
Hamiltona, w przeciwnym razie (zbiór jest pusty) ścieŜka nie istnieje.
Problem ten zaliczamy do grupy problemów NP-zupełnych, których nie moŜna
rozwiązać w czasie wielomianowym. Adleman rozwiązał ten problem generując
wszystkie moŜliwe kombinacje jako odrębne łańcuchy DNA. Dla siedmiu
wierzchołków rozwiązanie jest trywialne i moŜna je szybko otrzymać, stosując
normalne komputery lub obliczając ręcznie. Przykład ten ilustruje jednak potencjalne
moŜliwości komputerów i informatyki DNA.
Inne doświadczenie przeprowadzone w Mount Sinai School of Medicine w Nowym
Yorku pokazuje moŜliwość wykonywania operacji dodawania liczb binarnych
reprezentowanych przez łańcuchy DNA. Powstał równieŜ komputer DNA, z którym
moŜna zagrać w grę „kółko i krzyŜyk”.
W 2000 w Princeton przedstawiono moŜliwość zastosowania cząsteczek RNA do
rozwiązywania problemów (problem skoczków szachowych na szachownicy o
wielkości 3x3) oraz budowy komputerów molekularnych.
2. Komputer DNA
Komputer DNA (molekularny) jest to zbiór specjalnie wyselekcjonowanych
łańcuchów DNA, których kombinacja spowoduje rozwiązanie postawionego
problemu. Nadzieją pokładaną w komputerach DNA jest ich wysoki stopień
równoległości, co potencjalnie powinno umoŜliwić rozwiązanie problemów
wymagających wielu obliczeń poprzez obliczenia równoległe.
W 1973 roku Charles Benett zaproponował model programowalnego komputera
molekularnego zdolnego do realizacji dowolnego algorytmu. W praktyce pierwsze
komputery powstały w 2001 roku. Autorami jednego z nich są naukowcy z Instytutu
Weizmanna w Rehovot, którzy wykorzystali w swoich doświadczeniach cząsteczki
DNA, które pełnią zarówno rolę „oprogramowania”, sygnału wejścia-wyjścia, jak
równieŜ dostarczają potrzebnej energii. W roku 2003 komputer ten został
udoskonalony i osiągał prędkość reakcji molekularnych 330 TFLOPS w objętości 5
mililitrów (mała łyŜeczka płynu). W komputerze tym rolę sprzętu pełnią enzymy
restrykcyjne, które rozpoznają ściśle określone sekwencje DNA i w ich obrębie
przecinają cząsteczkę.
RównieŜ w Polsce trwają badania nad stworzeniem komputera molekularnego. W
roku 2002 we Wrocławiu powstała tzw. Grupa Inicjatywna Konstrukcji Prototypu
Opartego na DNA.
2.1. Komputery DNA a komputery tradycyjne
Porównanie komputerów tradycyjnych i komputerów zbudowanych z cząsteczek
DNA jest bardzo trudne i moŜe doprowadzić w wielu sytuacjach do rozbieŜnych
wyników. PoniŜsze dane naleŜy zatem traktować jedynie jako dane przybliŜone.
DNA jako nośnik informacji – pojemność pamięci biologicznej jest znacznie większa
niŜ stosowanych dzisiaj nośników. Małe rozmiary DNA sprawiają, Ŝe w objętości 1
mm3 mieści się 10 mld MB informacji – 10 PB (zakładając, Ŝe jedna para
nukleotydów stanowi jeden bit informacji – 0 lub 1). Jeden gram DNA zawiera 10 21
zasad DNA, co odpowiada 108 TB danych. Kilka gramów DNA moŜe kodować
wszystkie informacje dostępne na ziemi.
DNA jako superkomputer. Zakładając, Ŝe przodujące komputery umoŜliwiają
działania z prędkością 100 MIPS (milion instrukcji na sekundę), łańcuchy DNA
działają z prędkością ponad 10 razy szybszą.
Komputery DNA zapewniają duŜy stopień równoległości przetwarzania. W jednej
kropli roztworu wodnego moŜe znajdować się ponad bilion molekularnych
procesorów, wykonujących miliard operacji na sekundę.
Komputery DNA
energooszczędne.
nie
potrzebują
zasilania
elektrycznego
i
są
wysoce
Na podstawie tych informacji widać, Ŝe komputery DNA stanowią ciekawą
alternatywę dla komputerów stacjonarnych.
2.2. Kodowanie DNA a kodowanie binarne
W przypadku kodowania binarnego operujemy dwoma bitami 0 i 1. W przypadku
kodowania DNA mamy moŜliwość skorzystania z 4 nukleotydów A,T,G,C.
W zaleŜności, ile znaków będziemy chcieli zakodować, taki długi będzie ciąg
nukleotydów przypadający na kaŜdy znak. W przypadku, gdy chcemy zakodować 64
róŜne znaki potrzebujemy ciągu składającego się z 3 nukleotydów.
MoŜemy równieŜ traktować A i T jako 0 a G i C jako 1. Korzystając z alfabetu ASCII
znak A moŜna zapisać jako 6510=10000012=GTTATAC. Nie musimy tworzyć
specjalnego alfabetu. W tym przypadku nie wykorzystujemy czterech zasad do
kodowania tylko dwie.
Przy budowie alfabetu naleŜy stosować metody charakterystyczne dla szyfrów
homofonicznych (najczęściej występujące litery kodowane są za pomocą kilku
czwórek). Zapobiega to sytuacji, w której charakterystyczny kawałek tekstu, mógłby
być traktowany przez kryptoanalityka jako nowy primer. Dzięki temu mógłby on
otrzymać część szukanego tekstu. Inną moŜliwością jest zastosowanie kompresji lub
innej metody do zmiany układu liter w tekście jawnym przed jego zamianą na ciąg
nukleotydów. Metoda ta podobnie jak klucz nie moŜe zostać ujawniona.
3. DNA a ochrona danych
Biotechnologia znajduje swoje zastosowanie równieŜ w zagadnieniach związanych z
ochroną danych.
DNA moŜe być wykorzystywane w:
kryptografii – stosowany algorytmy jednorazowy
wykorzystaniem operacji podstawienia lub XOR,
steganografii – bezpieczne ukrycie wiadomości a następnie jej odtworzenie
dzięki posiadanej wiedzy o kluczu,
tworzeniu molekularnej sumy kontrolnej z wykorzystaniem obrazów Ŝelowych,
jako odpowiednik skrótu (funkcji haszującej), wykorzystany do znakowania
przedmiotów,
systemach identyfikacji osób,
kryptoanalizie – do łamania konwencjonalnych algorytmów symetrycznych
(np.DES) oraz asymetrycznych.
(one-time-pad)
z
3.1. Kryptografia DNA
Algorytm jednorazowy (One-time-pad)
Tekst jawny jest szyfrowany przy uŜyciu cząsteczek DNA za pomocą algorytmu
jednorazowego, który po spełnieniu trzech podstawowych warunków jest
algorytmem zapewniającym bezwzględne bezpieczeństwo. Trzy podstawowe
warunki, które musi spełniać łańcuch DNA stanowiący klucz:
musi być przynajmniej tak długi jak szyfrowany tekst (przy duŜym
upakowaniu danych w cząsteczkach DNA nie stanowi to większego
problemu),
musi być losowy,
moŜe być uŜyty tylko jeden raz.
Zanim zaczniemy szyfrowanie za pomocą tej metody musimy stworzyć długi łańcuch
DNA (klucz) zbudowany z losowo wybranych krótkich sekwencji oligonukleotydów.
Ten łańcuch stanowi podstawę naszej metody. Będzie uŜywany jako tablica (klucz),
za pomocą, której będziemy szyfrować i deszyfrować wiadomości. Musi być ona
znana przez obie komunikujące się strony (łatwość w wymianie stanowi tutaj
mikroskopijna wielkość tego łańcucha) i nie moŜe być ujawniona nikomu innemu.
Metoda podstawieniowa
Tekst wejściowy stanowiący ciąg binarny o długości n dzielony jest na ciągi znaków
o róŜnych długościach. Tablica podstawieniowa one-time-pad zbudowana jest w taki
sposób, aby wszystkie moŜliwe ciągi wejściowe zostały zamienione na ciągi znaków
zaszyfrowanych o róŜnych długościach.
Szyfrowanie za pomocą metody podstawieniowej polega na zamianie kaŜdego ciągu
wejściowego na podstawie tablicy podstawieniowej na tekst wyjściowy
(zaszyfrowany). Deszyfrowanie jest operacją odwrotną.
Zastosowanie cząsteczek DNA w algorytmie.
Tekst wejściowy – probówka zawierająca krótkie odcinki DNA.
Tekst zaszyfrowany – probówka zawierająca inne krótkie odcinki DNA.
Szyfrowanie polega na losowej, lecz odwracalnej zamianie odcinków
reprezentujących tekst wejściowy na odcinki DNA reprezentujące tekst
zaszyfrowany. Oryginalne cząsteczki są usuwane.
Budowa tablicy podstawieniowej:
Tworzymy długi łańcuch DNA składający się z wielu segmentów. KaŜdy segment
składa się z dwóch części: ciągu znaków reprezentujących tekst jawny oraz ciągu
znaków reprezentujących odpowiadający mu tekst zaszyfrowany.
Reprezentacja łańcucha:
Długość łańcucha: n.
KaŜdy segment to odcinek ograniczony z obu stron stoperem. Łańcuch składa się z
d = n / (L1+L2+L3) powtarzających się segmentów.
Bi – ciąg o długości L1=c1log n, reprezentujący tekst zaszyfrowany.
Ci – ciąg o długości L2=c2 log n, reprezentujący tekst jawny.
KaŜdy segment unikalnie odwzorowuje ciąg tekstu jawnego na ciąg zaszyfrowany.
STOP – primer - ciąg nukleotydów o długości L3=c3.
Chcąc wygenerować sekwencję nukleotydów, odpowiadających tekstowi
zaszyfrowanemu na podstawie tej tablicy, jako primera uŜywamy ~Bi. Na jego
podstawie określamy ciąg odpowiadający tekstowi jawnemu Ci (reakcja PCR).
Stoper zapobiega dalszemu rozszerzaniu się reakcji ponad interesujący nas ciąg
jawny.
3.2 Steganografia DNA
Ludzie juŜ od czasów staroŜytnych posiadali tajemnice, które chcieli ukryć przed
innymi. W wielu przypadkach uciekali się do metod, które powodowały, Ŝe tekst był
niewidoczny dla innych. Przykładem moŜe być tutaj atrament sympatyczny, uŜywany
przez szpiegów czy teŜ miniaturowe zdjęcia wklejane do dokumentów jako kropki
kończące zdania. Taki sposób ukrywania tekstu nazywamy steganografią.
Prezentowany algorytm wykorzystuje w tym przypadku cząsteczki DNA.
Metoda I
Ukrywanie informacji
1. Tworzymy alfabet reprezentujący znaki za pomocą ciągów nukleotydów o
długości 4.
2. Tekst jawny kodujemy przy pomocy stworzonego alfabetu.
3. Tworzymy klucz, który musi pozostać tajny.
4. Klucz kodujemy według tego samego alfabetu, którego uŜyliśmy do
kodowania tekstu jawnego. Klucz stanowi starter (primer), który umoŜliwia
znalezienie tekstu wśród innych cząsteczek DNA poprzez zastosowanie
reakcji PCR. WaŜne jest, aby po zamianie na ciąg nukleotydów, miał on
długość minimum 20 nukleotydów, aby z duŜym prawdopodobieństwem
wśród innych cząsteczek nie było więcej takich ciągów. Kryptoanalityk musi
sprawdzić 420 (240) moŜliwych primerów, aby odnaleźć wiadomość. Nie jest to
aŜ tak duŜo, więc najlepiej aby ciąg reprezentujący klucz składał się z ponad
35 nukleotydów. Przyjmując 4 nukleotydy na jeden znak, klucz powinien mieć
około 9 znaków.
5. Budujemy nić klucz_komplementarny-tekst-klucz_komplementarny oraz drugą
nić, którą stanowi klucz.
Przykładowe metody tworzenia pojedynczych nici DNA:
•
synteza na podłoŜu stałym,
•
metoda fotolitograficzna.
5. Wykonujemy reakcję PCR, na skutek czego otrzymujemy dwuniciową
cząsteczkę DNA.
6. Stworzoną cząsteczkę umieszczamy wśród wielu innych cząsteczek o
podobnej budowie.
Druga strona musi znać alfabet, którego uŜyto do kodowania oraz klucz (primer).
Trudność odnalezienia tekstu polega na przejrzeniu ogromnej ilości cząsteczek
DNA. Odnalezienie właściwej cząsteczki w tym przypadku jest równoznaczne ze
złamaniem tej metody i odnalezieniem szukanego tekstu jawnego.
Odczytywanie ukrytej informacji
1. Chcąc znaleźć właściwą cząsteczkę DNA naleŜy wykonać reakcję PCR,
uŜywając łańcucha nukleotydów reprezentującego klucz jako primera.
Reakcję PCR naleŜy przeprowadzić wielokrotnie, w celu zwielokrotnienia
liczby cząsteczek zawierających ukryty tekst.
2. Po otrzymaniu pojedynczej nici z cząsteczki zawierającej ukryty tekst,
odczytujemy ciąg nukleotydów (sekwencjonowanie).
3. Zamieniamy ciąg nukleotydów na poszukiwany tekst przy pomocy alfabetu,
na podstawie którego kodowaliśmy tekst jawny w fazie ukrywania informacji.
Najlepiej wyjaśnić tą metodę na przykładzie.
Chcemy ukryć tekst jawny IT. Po zamianie tekstu na ciąg nukleotydów, otrzymujemy
następujący ciąg: TATAGTCC.
Tworzymy hasło H2 (ze względu na czytelność przykładu hasło składa się tylko z
dwóch znaków, natomiast w praktyce powinno być dłuŜsze). Po zamianie na ciąg
nukleotydów ma ono postać: TTACACCA.
Następnie tworzymy następujące nici:
•
AATGTGGT TATAGTCC AATGTGGT,
•
TTACACCA.
Z wykorzystaniem enzymu polimerazy tworzymy podwójną helisę DNA. Cząsteczkę
tę umieszczamy w probówce z określoną substancją.
Odbiorca musi równieŜ dokonać zamiany hasła na ciąg nukleotydów. Następnie po
otrzymaniu probówki wielokrotnie wykonuje reakcję PCR, jako primer stosując ciąg
nukleotydów reprezentujących hasło.
Rysunek 1. Działanie reakcji PCR.
W wyniku reakcji PCR liczba cząsteczek DNA zawierających ukryty tekst zostaje
zwielokrotniona. W kolejnym kroku odbiorca wykonuje sekwencjonowanie i
otrzymuje ciąg TATAGTCC. Znając alfabet zamienia go na tekst IT. Bezpieczeństwo
tej metody oparte jest na tajności klucza.
Najtrudniejszą i najdroŜszą reakcją z punktu widzenia biologii jest tworzenie długich
nici o określonej sekwencji nukleotydów.
Metoda II
Inne podejście podobne jest do kryptografii wizualnej. Tekstu nie zamieniamy teraz
według specjalnego alfabetu, lecz pewne odcinki DNA lub pojedyncze nukleotydy są
w tym przypadku odpowiednikami zer i jedynek. RównieŜ w tym przypadku
cząsteczkę, którą chcemy ukryć umieszczamy wśród wielu innych cząsteczek.
Wszystkie cząsteczki mają jednak podobną budowę. Na początku i końcu znajduje
się primer – ten sam dla wszystkich cząsteczek. W poprzedniej metodzie primer
uŜywany był jako klucz potrzebny do deszyfrowania wiadomości. W tym przypadku
nie odgrywa on takiej roli. Jest on potrzebny, aby umoŜliwić wykonanie w
późniejszym etapie reakcji PCR. To właśnie pola pomiędzy primerami w fikcyjnych
łańcuchach są uŜywane zarówno do szyfrowania jak i deszyfrowania właściwego
tekstu. Wykonując elektroferezę Ŝelu otrzymujemy dla kaŜdej cząsteczki oddzielne
obrazy dla 0 i 1.
Ukrywanie wiadomości
Nadawca tworzy cząsteczkę DNA z tekstem jawnym oraz primerem na jego
początku i końcu. Następnie preparuje inne cząsteczki, które mają podobną budowę
(długość, primery). Na podstawie obrazu Ŝelowego tych cząsteczek (a) budowana
jest cząsteczka X (b) stanowiąca zaszyfrowany tekst. Cząsteczka X powstaje przez
zmieszanie cząsteczek A,B,C. Następnie nadawca tworzy cząsteczkę Y (b), która
powstaje przez zmieszanie cząsteczek B i C. Stanowi ona klucz potrzebny do
odczytania zaszyfrowanego tekstu. Nadawca musi przekazać odbiorcy tą cząsteczkę
lub jej obraz Ŝelowy.
Odkrywanie wiadomości
Za pomocą elektroforezy Ŝelu otrzymujemy obraz Ŝelowy cząsteczek X oraz Y.
Następnie odejmujemy od siebie obrazy X i Y, aby otrzymać wiadomość –
cząsteczkę A (c).
Ta metoda moŜe być równieŜ łączona z innymi metodami jak np. wcześniej
omówioną metodą steganografii. Cząsteczki ze wspólnym primerem, potrzebne do
odszyfrowania wiadomości mogą być umieszczane wśród wielu innych cząsteczek o
innej budowie. Primer musi stanowić wtedy tajemnicę.
Przykładowe obrazy Ŝelowe (odczytujemy od dołu do góry):
M - molekularny znacznik wagowy.
Na obrazie Ŝelowym a) mamy przedstawione 3 cząsteczki reprezentujące 9-bitowe
liczby.
1 i 2 = 1000001102 = 26210 - ten ciąg chcemy ukryć
3 i 4 = 0011000012 = 9710
6 i 7 = 1010010012 = 32910
Obraz Ŝelowy b przedstawia cząsteczki X (zmieszane A,B i C) i Y (cząsteczki B i C).
Obraz c) prezentuje cząsteczkę A, którą otrzymaliśmy przez odjęcie Y od X.
Stworzony został równieŜ, jak na razie czysto teoretyczny model algorytmu
szyfrowania asymetrycznego z wykorzystaniem DNA.
3.3 Skrót z uŜyciem DNA
Wszystkie numery seryjne sprzętu, płyt muzycznych, płyt z oprogramowaniem
moŜna by kodować w postaci cząsteczek DNA a następnie dołączać do przedmiotu,
którego numer ten dotyczy. Wtedy numer seryjny stałby się częścią fizyczną sprzętu
i płyt. Takie oznaczenia zastosowano na szeroką skalę na olimpiadzie w Sydney.
Wszystkie towary związane z olimpiadą: koszulki, czapeczki a nawet kubki do kawy
zostały oznaczone specjalnym atramentem, zawierającym DNA australijskiego
sportowca. Do sprawdzenia autentyczności przedmiotów słuŜył skaner ręczny. W ten
sposób oznaczono ponad 50 milionów przedmiotów. Koszt oznaczenia jednego
przedmiotu wyniósł 5 centów.
3.4 Identyfikacja z uŜyciem DNA
Cząsteczki DNA wykorzystywane są do identyfikacji ludzi, szczególnie w
kryminalistyce. Fakt, Ŝe kaŜdy człowiek ma unikalny kod DNA odkrył w 1985 roku
Alec Jeffreys. JuŜ rok później test DNA pozwolił skazać pierwszych przestępców. W
Polsce identyfikację genetyczną śladów zastosowano na początku lat 90. m.in. w
sprawie zabójstwa taksówkarza w Katowicach w 1994 roku. W przypadku badań
związanych z popełnieniem przestępstwa wykorzystuje się introny, czyli tzw.
niekodujące fragmenty łańcucha DNA. Nie zawierają one informacji o cechach
człowieka a jednocześnie umoŜliwiają porównanie dwóch fragmentów DNA i
stwierdzenie z duŜym prawdopodobieństwem czy pochodzą od tej samej osoby.
Wystarczy porównać próbkę pobraną z miejsca przestępstwa z tą uzyskaną od
oskarŜonego. Przykładowa metoda to analiza VNTR (Variable Number of Tandem
Repeats) polegająca na wyszukaniu w łańcuchu DNA szeregu identycznych
sekwencji (np.CACACA) i zliczaniu ich długości (ilości powtórzeń par). Liczba takich
powtórzeń jest róŜna i charakterystyczna dla danej osoby. Inne zastosowanie tych
metod to testy w sprawach o ustalenie ojcostwa oraz badania medyczne (schorzenia
genetyczne). Podobne metody mogłyby być równieŜ wykorzystywane jako
biometryczne metody uwierzytelniania uŜytkowników w systemach. Istnieje taka
moŜliwość, lecz w porównaniu z identyfikacją na podstawie obrazu tęczówki wydaje
się być droŜsza, trudniejsza w implementacji i zarządzaniu oraz wykazuje większe
prawdopodobieństwo błędu identyfikacji.
3.5 Kryptoanaliza algorytmów z wykorzystaniem cząsteczek DNA
Interesująca jest równieŜ moŜliwość wykorzystania komputerów molekularnych w
kryptoanalizie, dzięki ich wysokiemu stopniu zrównoleglenia. Leonard M. Adleman
pokazał, Ŝe komputer DNA o wielkości kilku probówek umoŜliwia odnalezienie klucza
o długości 256 (metoda przeszukiwania wyczerpującego, atak brutalny) algorytmu
DES. Rozwiązanie to nie jest jednak pozbawione wad. Problem w tym przypadku
stanowi implementacja algorytmu w biochemii oraz dokładność wykonywania
obliczeń z wykorzystaniem cząsteczek DNA. NaleŜy równieŜ pamiętać, Ŝe
komputery molekularne mogą jedynie przyspieszyć rozwiązywanie problemów,
poprzez wysoki stopień równoległości. Dla dłuŜszych kluczy równieŜ komputery
molekularne nie umoŜliwiają odnalezienia klucza. Przykładowo Beaver zgodnie z
podejściem Adlemana (atak brutalny) oszacował, Ŝe komputer potrzebny do
faktoryzacji 1000-bitowej liczby miałby pojemność 10200000 litrów.
Literatura
[1] Stryer Lubert, Biochemia. PWN, Warszawa 1999
[2] Stepkiewicz O., Flohr M., Spirala bitów i bajtów CHIP, Grudzień 2000
[3] Adleman Leonard, Computing with DNA, 1998,
http://www.usc.edu/dept/molecular-science/fp-sciam98.pdf
[4] Adleman Leonard, Molecular Computations Of Solutions To Combinatorial
Problems., http://www.usc.edu/dept/molecular-science/fp-sci94.pdf
[5] Adleman Leonard, Rothemund Paul W. K., Roweis Sam , Winfree Erik, On
Applying Molecular Computation To The Data Encryption Standard., 1999,
http://www.usc.edu/dept/molecular-science/fp-des96.pdf
[6] Unold Olgierd, Wrocławski komputer molekularny,
http://pryzmat.pwr.wroc.pl/Pryzmat_170/170dna.html
[7] Richter Ch., Leier A., Banzhaf W., Rauhe H., Private and Public Key DNA
steganography, http://ls11- www.cs.uni- dortmund.de/people/banzhaf/PubKey.pdf
[8] Gaurav Gupta, Nipun Mehra & Shumpa Chakraverty, DNA Computing, 2001,
http://www.theindianprogrammer.com/technology/dna_computing.htm
Download