Komputer DNA Rafał Gołębiowski Instytut Informatyki i Matematyki Komputerowej WMiI UJ Agenda DNA raz jeszcze Komputer DNA – co to jest? Budowa komputera DNA Historia Model Adlemana Komputer Shapiro Po co to komu? Podstawy działania Agenda cd. Porównanie z tradycyjnym komputerem Jakieś suckesy? Kodowanie DNA a kodowanie binarne DNA a ochrona danych Kryptografia molekularna Steganografia molekularna Skrót z użyciem DNA Identyfikacja z użyciem DNA Kryptoanaliza DNA raz jeszcze DNA jest prawdziwym bankiem informacji i składa się z : Adeniny (A) Tyminy (T) Cytozyny (C) Guaniny (G) Ciekawostka: Jeden genom ma pojemność jednej płyty CD-ROM DNA raz jeszcze Komputer DNA – co to jest? Komputer DNA (biokomputer) to komputer, w którym obliczenia zachodzą dzięki reakcjom chemicznym między cząsteczkami DNA. Budowa komputera DNA Liczne nici DNA reprezentujące zasady Dane zapytania Baza danych umieszczona w kroplach wody Wielkość takiego komputera jest mniejsza niż kropka nad i w tym slajdzie Historia 1994 – Adleman zaprezentował model używający cząsteczek DNA do rozwiązania problemu komiwojażera Jakieś wady? np. długi czas obliczeń 2002 - Shapiro skonstruował komputer potrafiący odpowiadać „tak” lub „nie”. Dodatkowo był on wyposażony w prosty moduł wejścia i wyjścia i mógł diagnozować komórkę nowotworową i podawać jej lek. Historia cd. 2003 - skonstruowano komputer MAYA, który potrafił grać w kółko i krzyżyk. Składał się z 23 bramek DNA rozmieszczonych w próbówkach oznaczających 8 zewnętrznych pól planszy do gry. Przebieg gry wyglądał następująco: Ruch człowieka polegał na dodaniu jednego z ośmiu DNA do każdego z pól. Każdy rodzaj DNA miał inną sekwencję i oznaczał wybór innego pola w grze. W wyniku reakcji wewnątrz pól, bramki wywoływały fluorescencję odpowiedniego pola, co oznaczało ruch komputera. Historia cd. Historia cd. Model Adlemana Model Adlemana do rozwiązania problemu komiwojażera (7 miast i 13 dróg między nimi) Każde miasto było reprezentowane przez losowy łańcuch DNA o długości 20, np: G-C-A-C-T-G-G-A-C-T-C-A-T-G-C-A-C-T-G-T Droga między miastami 1 i 2 reprezentowana była przez łańcuch długości 20 składający się z cząsteczek stanowiących dopełnienie (na zasadzie komplementarności: A-T, C-G) zasad łańcuchów reprezentujących te miasta, w połowie Model Adlemana cd. C-T-A-G-C-A-T-A-G-T-A-T-G-C-G-T-C-G-A-G G-C-A-C-T-G-G-A-C-T-C-A-T-G-C-A-C-T-G-T T-A-C-G-C-A-G-C-T-C-C-G-T-G-A-C-C-T-G-A Gdzie: Miasto1, Miasto2, Droga z Miasta 1 do Miasta 2. Miliardy łańcuchów umieszczono w probówce i wymieszano. Łańcuchy łączą się ze sobą tworząc wszystkie możliwe ściezki z miasta1 do miasta7. Po zastosowaniu reakcji chemicznych zostawione zostaną jedynie te które zawierają 7 różnych łańcuchów. Znalezienie wszystkich takich łańcuchów zajęło kilka sekund, ale odeparowanie ich zajęło kilka dni. Komputer Shapiro Wlewa się do probówki dwa składniki niezbędne do obliczeń: "software", czyli odpowiednio przygotowane nici DNA niosące odpowiednio spreparowane informacje, i "hardware", czyli sprzęt, który przetwarza dane zakodowane w DNA. W roli hardware'u wystąpiły dwa enzymy restryktaza FokI oraz ligaza. Po wymieszaniu software'u, hardware'u i biologicznego nośnika energii - cząsteczek ATP - w wyniku reakcji powstawała cząsteczka, w której sekwencji nukleotydów zapisany był wynik operacji matematycznej. Cząsteczkę tę naukowcy izolowali i "rozgryzali" jej budowę przy użyciu Po co to komu? Komórki nerwowe wysyłają i przyjmują impulsy o: Medycyna – programowanie cząsteczek biologicznych Identyfikacja wirusów Znajdowanie mutacji w kodzie genetycznym Zastosowanie zarówno w roztworach chemicznych jak i w żywych organizmach, co może umożliwiać diagnozę i leczenie nawet na poziomie komórek. Rozwiązywanie problemów matematycznych/obliczeniowych Podstawy Działania W komputerze DNA informacja jest zakodowana w postaci łańcuchów DNA. Podobnie jak zwykłe komputery, składa się z bramek logicznych, te jednak są oparte na enzymach. Enzymy te powodują reakcje chemiczne między łańcuchami a ich wynik stanowi nową informację. Komputer taki jest probabilistyczny – wynik każdego działania otrzymujemy jedynie z pewnym prawdopodobieństwem. Prównanie z tradycyjnym komputerem Porównanie to jest bardzo trudne oraz może doprowadzić w wielu sytuacjach do rozbieżnych wyników. Poniższe dane należy traktować jako przybliżone. Prównanie z tradycyjnym komputerem cd. DNA jako nośnik informacji – pojemność pamięci biologicznej jest znacznie większa niż dzisiejszych nośników. Np. 1mm3 DNA mieści 10mld(!) MB informacji (zakładając że jedna para nukleotydów stanowi jeden bit 0 lub 1). Zatem 1gr DNA może zawierać 10^21 zasad DNA co daje 10^8 TB. Prównanie z tradycyjnym komputerem cd. DNA jako superkomputer – zakładając, że przodujące komputery umożliwiają działania z prędkością 100mln instrukcji na sekundę, łańcuch DNA działa z prędkością 10x 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, Prównanie z tradycyjnym komputerem cd. Komputery DNA nie potrzebują zasilania elektrycznego i są wysoce energooszczędne Komputer ten wygląda jak widać obiecująco. Jakieś sukcesy? Potrafi obliczyć pierwiastek kwadratowy z podanej liczby Robi to dla liczby czterobitowej około 5h Czy faktycznie jest to sukces? Kodowanie DNA a kodowanie binarne W przypadku binarnym operujemy dwoma bitami 0 i 1 W przypadku DNA mamy 4 nukleotydy A,T,G,C W zależności, ile znaków będziemy chcieli zakodowac, taki dlugi będzie ciąg nukleotydów przypadający na każdy znak. Czyli chcąc zakodować 64 różne znaki, potrzebujemy ciągu składającego się z 3 nukleotydów (4^3). Kodowanie DNA a kodowanie binarne Możemy także traktować A i T jako 0 a G i C jako 1. np. korzystając z ASCII 65(10)=1000001(2)=GTTATAC W tym przypadku nie wykorzystujemy czterech zasad do kodowania tylko dwie. Kodowanie DNA a kodowanie binarne 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) Kryptografia molekularna Algortym jednorazowy (one time pad) Metoda podstawieniowa Steganografia DNA Skrót z użyciem DNA Identyfikacja z użyciem DNA Kryptoanaliza Algorytm jednorazowy Tekst janwy który jest szyfrowany przy użyciu cząsteczek DNA jest bezpieczny po spełnieniu 3 warunków przez łańcuch DNA stanowiący klucz: Musi nie być krótszy niż tekst szyfrowany Musi być losowy Może być użyty tylko jeden raz Metoda podstawieniowa Tekst wejściowy stanowiący ciąg binarny o długości n dzielony jest na ciagi 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 Metoda podstawieniowa Szyfrowanie to polega na zamianie każdego ciągu wejściowego na podstawie tablicy podstawieniowej na tekst wyjściowy (zaszyfrowany). Deszyfrowanie jest operacją odwrotną OK, ale jakie jest zastosowanie cząsteczek DNA w algorytmie? Metoda podstawieniowa Tekst wejściowy – probówka zawierająca krótkie odcinki DNA Tekst wyjściowy – 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 Metoda podstawieniowa Budowa tablicy podstawieniowej: Tworzymy długi lań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 Ciągu znaków reprezentujących odpowiadający mu tekst zaszyfrowany Metoda podstawieniowa Reprezentacja łańcucha: Metoda podstawieniowa Chcąc wygenerować sekwencję nukleotydów, odpowiadających tekstowi zaszyfrowanemu na podstawie tej tablicy, jako primera (startera) używamy ~B_i. Na jego podstawie określamy ciąg odpowiadający tekstowi jawnemu C+i (reakcja PCR). Stoper zapobiega dalszemu rozszerzaniu się reakcji ponad interesujący nas ciąg jawny. Steganografia (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 być TAJNY (!) (4) Klucz kodujemy według tego samego alfabetu, którego użyliśmy do kodowania tekstu jawnego. Klucz stanowi starter, który umożliwia znalezienie tekstu wśród innych cząsteczek DNA poprzez reakcję PCR Steganografia UWAGA:. 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 sprawdzic 4^20 możliwych starterow aby odnaleźć starter. Nie jest to aż tak dużo, zatem dobrze aby klucz składał się z ponad 35 nukleotydów. Przyjmując 4 nukleotydy na jeden znak, klucz Steganografia (5) Budujemy nić klucz_komplementarny-tekstklucz_komplementarny oraz drugą nić, która stanowi klucz. Przykładowe metody tworzenia pojedynczych nici: Synteza na podłożu stałym Metoda fotolitograficzna (6) Budujemy drugą nić wykonując reakcję PCR Steganografia (6) Stworzoną cząsteczkę umieszczamy wśród wielu innych cząsteczek o podobnej budowie. Odbiorca musi znać alfabet, którego użyty do kodowania oraz klucz (starter) Jak odczytać taką wiadomość? Steganografia Odczytywanie: (1) Chcąc znaleźć szukaną cząsteczkę DNA należy wykonać reakcje PCR uzywając łańcucha nukleotydów reprezentującego klucz jako starter Reakcję PCR należy wykonać kilkakrotnie aby uzyskać wielokrotną liczbę 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 Steganografia Przykład: Wiadomość: IT = TATAGTCC po zamianaie na ciąg nukleotydów Hasło: H2 = TTACACCA 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ą Steganografia Odbiorca musi również dokonać zamiany hasła na ciąg nukleotydów. Po otrzymaniu probówki wielokrotnie wykonuje reakcję PCR jako starter stosując ciąg nukleotydów reprezentujących hasło. 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. Niestety bezpieczeństwa opiera się na tajności klucza Steganografia Najtrudniejszą i najdroższą reakcą z punktu widzenia biologii jest tworzenie długich nici o określinej sekwencji nukleotydów. Skrót z użyciem DNA Wszystkie numery seryjne sprzętu, płyt muzycznych, płyt z oprogramowaniem można kodować w postaci cząsteczek DNA a następnie dołączać do przedmiotu, którego numer dotyczy. Wówczas numer seryjny staje się częścią fizyczna sprzętu. Takie oznaczenie zastosowano na olimpiadzie w Syndey! Wszystkie przedmioty związane z olimpiadą zostały oznaczone specjalnym atramenten zawięrającym DNA australijskiego sportowca. Do sprawdzania autentyczności przedmiotów służył skaner ręczny PS. Koszt takiego oznaczenia wyniósł zaledwie 5 Identyfikacja z użyciem DNA Każde DNA jest unikalne, co powoduje wykorzystywanie tego faktu w: Kryminalistyka Testy pokrewieństwa Biometryczne uwierzytelnienie Kryptoanaliza Dzięki wysokiemu stopniu zrównoleglenia Adleman pokazał, że komputer DNA o wielkości kilku probówek umożliwia odnalezienie klucza o długości 2^56 (brute force) algorytmu DES. Wady: - implementacja algorytmu w biochemii - dokładność wykonania obliczeń z wykorzystaniem cząsteczek DNA WAŻNE: Komputery molekulatne jedynie Kryptoanaliza Beaver zgodnie z podejciem Adlemana oszacował ze komputer potrzebny do faktoryzacji 1000 bitowej liczby miałby pojemność 10^200 000 litrów (!!) Trochę humoru Zakończenie Dziękuję za uwagę. Pytania?