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