P O L I T E C H N I K A S Z C Z E C IŃSKA W Y D Z I A Ł I N F O R M A T Y K I

Wielkość: px
Rozpocząć pokaz od strony:

Download "P O L I T E C H N I K A S Z C Z E C IŃSKA W Y D Z I A Ł I N F O R M A T Y K I"

Transkrypt

1 P O L I T E C H N I K A S Z C Z E C IŃSKA W Y D Z I A Ł I N F O R M A T Y K I K A T E D R A T E C H N I K P R O G R A M O W A N I A mgr inŝ. Dariusz Burak Metoda automatycznego zrównoleglenia wy branych algorytmów szyfrowania R o z p r a w a d o k t o r s k a P R O M O T O R : prof. dr hab. inŝ. Włodzimierz Bielecki SZCZECIN 2007

2 STRESZCZENIE Szybkość szyfrowania i deszyfrowania danych jest najwaŝniejszą po bezpieczeństwie cechą funkcjonalną algorytmów szyfrowania. UmoŜliwienie coraz szybszego szyfrowania oraz deszyfrowania wiąŝe się ściśle z zastosowaniem do tego celu nowoczesnego sprzętu o olbrzymich mocach obliczeniowych. Nieustanny postęp technologiczny w dziedzinie architektur procesorów doprowadził do powszechnego stosowania w takich przypadkach komputerów równoległych ze wspólną pamięcią charakteryzujących się większymi mocami obliczeniowymi w porównaniu z maszynami sekwencyjnymi. Algorytmy sekwencyjne naleŝy zrównoleglić, aŝeby efektywnie wykorzystywać moc obliczeniową tego typu komputerów. Metoda automatycznego zrównoleglenia wybranych algorytmów szyfrowania, będąca tematem niniejszej rozprawy doktorskiej polega na zrównolegleniu poszczególnych algorytmów szyfrowania w procesie kompilacji kodu źródłowego, a zatem prowadzone badania zmierzają do utworzenia kompilatora zrównoleglającego wyspecjalizowanego na algorytmy szyfrowania, który umoŝliwiać ma przekształcenie sekwencyjnego kodu źródłowego algorytmów szyfrowania w kod równoległy przy jednoczesnym zapewnieniu dotychczasowego poziomu bezpieczeństwa operacji szyfrowania i deszyfrowania danych, gdyŝ Ŝaden z istniejących kompilatorów zrównoleglających ogólnego przeznaczenia z uwagi na swoje ograniczenia nie moŝe być zastosowany do efektywnego zrównoleglenia algorytmów szyfrowania Opracowano i szczegółowo opisano trzy procedury zrównoleglenia pętli odnoszące się do poszczególnych typów algorytmów szyfrowania, które w powiązaniu z techniką kompilacji iteracyjnej umoŝliwiają efektywne zrównoleglenia wybranych algorytmów szyfrowania.

3 Streszczenie Opracowaną metodę zweryfikowano w dwóch aspektach, poprawności szyfrowania i deszyfrowania danych z zastosowaniem algorytmów równoległych oraz efektywności ich przetwarzania załączając wyniki przeprowadzonych badań eksperymentalnych. Niniejsza praca zawiera bibliotekę kodów źródłowych zrównoleglonych algorytmów szyfrowania w standardzie OpenMP. Słowa kluczowe: kompilatory zrównoleglające, kompilacja iteracyjna, algorytmy szyfrowania, analiza zaleŝności danych, OpenMP Adres autora: D a r i u s z B u r a k P o l i t e c h n i k a S z c z e c ińska Wydział Informatyki Katedra Technik Programowania ul. śołnierska 49, Szczecin

4 Pragnę najserdeczniej podziękować mojemu promotorowi Panu profesorowi Włodzimierzowi Bieleckiemu za cenną pomoc merytoryczną w realizacji pracy naukowej

5 S P I S T R EŚCI SPIS RYSUNKÓW... VI SPIS TABEL...VII 1. WSTĘP STAN PROBLEMU CEL I TEZA BADAWCZA PRACY STRUKTURA PRACY ALGORYTMY SZYFROWANIA BLOKOWE ALGORYTMY SZYFROWANIA Algorytm DES Algorytm Triple DES Algorytm IDEA Algorytm Rijndael (AES) Algorytm RC Algorytm Blowfish Algorytm GOST Algorytm LOKI TRYBY PRACY SZYFRÓW BLOKOWYCH SZYFRY STRUMIENIOWE Algorytm SEAL SZYFRY ASYMETRYCZNE Algorytm RSA IMPLEMENTACJE ALGORYTMÓW SZYFROWANIA PODSUMOWANIE i

6 Spis treści 3. PROBLEMATYKA ZRÓWNOLEGLENIA ALGORYTMÓW SZYFROWANIA ARCHITEKTURY MASZYN RÓWNOLEGŁYCH Architektura systemów z pamięcią wspólną PARADYGMATY PROGRAMOWANIA RÓWNOLEGŁEGO KOMPILATORY ZRÓWNOLEGLAJĄCE ZaleŜności w pętlach Wykrywanie zaleŝności Petit Transformacje pętli Przegląd współczesnych kompilatorów zrównoleglających ŚRODOWISKA PROGRAMOWANIA RÓWNOLEGŁEGO OpenMP Miary efektywności zrownoleglenia PODSUMOWANIE METODA AUTOMATYCZNEGO ZRÓWNOLEGLENIA WYBRANYCH ALGORYTMÓW SZYFROWANIA STRATEGIE ZRÓWNOLEGLENIA ALGORYTMÓW SEKWENCYJNYCH STRATEGIE ZRÓWNOLEGLENIA ALGORYTMÓW SZYFROWANIA KONCEPCJA KOMPILACJI ALGORYTMÓW SZYFROWANIA ZAŁOśENIA WSTĘPNE METODY PROCEDURA PROCEDURA PROCEDURA KOMPILACJA ITERACYJNA Z ZASTOSOWANIEM PROCEDUR ZRÓWNOLEGLENIA PĘTLI Profiler kodu Kontroler transformacji kodu Moduł transformacji kodu PODSUMOWANIE ii

7 Spis treści 5. ALGORYTMY AUTOMATYCZNEGO ZRÓWNOLEGLENIA ALGORYTMÓW SZYFROWANIA STRATEGIA ZRÓWNOLEGLENIA ALGORYTMÓW SZYFROWANIA ALGORYTM DES Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM TRIPLE DES Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM IDEA Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM RIJNDAEL (AES) Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM RC Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM BLOWFISH iii

8 Spis treści Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM GOST Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM LOKI Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM CTR Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM CBC Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM CFB Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej iv

9 Spis treści Postać równoległa pętli ALGORYTM OFB Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej ALGORYTM SEAL Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli ALGORYTM RSA Dane wejściowe Pierwszy przebieg kompilacji iteracyjnej Kolejne przebiegi kompilacji iteracyjnej Postać równoległa pętli PODSUMOWANIE BADANIA EKSPERYMENTALNE ALGORYTMÓW RÓWNOLEGŁYCH WNIOSKI PODSUMOWANIE WNIOSKI KOŃCOWE DODATEK A. POSTAĆ MATEMATYCZNA WYBRANYCH ALGORYTMÓW SZYFROWANIA DODATEK B. CHARAKTERYSTYKA WYKORZYSTYWANEGO SPRZĘTU 167 DODATEK C. KODY ŹRÓDŁOWE ZRÓWNOLEGLONYCH ALGORYTMÓW SZYFROWANIA BIBLIOGRAFIA v

10 SPIS RYSUNKÓW Rysunek 2.1. Schemat struktury ogólnej szyfrów blokowych Rysunek 2.2. Schemat struktury ogólnej szyfrów strumieniowych Rysunek 3.1. Architektura systemów wieloprocesorowych z pamiecią wspólną Rysunek 3.2. Architektura systemów wieloprocesorowych z pamiecią rozproszoną Rysunek 3.3. Model fork-and-join Rysunek 4.1. Schemat działania tradycyjnego kompilatora optymalizującego Rysunek 4.2. Schemat działania iteracyjnego kompilatora optymalizującego Rysunek 4.3. Schemat iteracyjnej kompilacji optymalizującej algorytmów szyfrowania Rysunek 4.4.a. Schemat sposobu profilowania kodu w pierwszej iteracji kompilacji Rysunek 4.4.b. Schemat sposobu profilowania kodu w ostatniej iteracji kompilacji Rysunek 4.5. Schemat funkcjonowania transformatora kodu Rysunek 4.6.a Transformacje cząstkowe. Procedura Rysunek 4.6.b Transformacje cząstkowe. Procedura Rysunek 4.6.c Transformacje cząstkowe. Procedura vi

11 SPIS TABEL Tabela 2.1. Cechy charakterystyczne wybranych szyfrów blokowych Tabela 3.1. Cechy charakterystyczne kompilatorów zrównoleglających: SUIF, Parafrase-2 oraz Polaris Tabela 4.1. Transformacje pętli- podsumowanie Tabela 5.1. Przebieg kompilacji iteracyjnej algorytmu DES Tabela 5.2. Przebieg kompilacji iteracyjnej algorytmu Triple DES Tabela 5.3. Przebieg kompilacji iteracyjnej algorytmu IDEA Tabela 5.4. Przebieg kompilacji iteracyjnej algorytmu Rijndael (AES) Tabela 5.5. Przebieg kompilacji iteracyjnej algorytmu RC Tabela 5.6. Przebieg kompilacji iteracyjnej algorytmu Blowfish Tabela 5.7. Przebieg kompilacji iteracyjnej algorytmu GOST Tabela 5.8. Przebieg kompilacji iteracyjnej algorytmu LOKI Tabela 5.9. Wyniki kompilacji iteracyjnej zrównoleglonych algorytmów szyfrowania Tabela 6.1. Przyspieszenia pracy operacji szyfrowania dla pliku file_large.dat Tabela 6.2. Przyspieszenia pracy operacji deszyfrowania dla pliku file_large.dat Tabela 6.3. Przyspieszenia pracy algorytmów szyfrowania dla pliku file_large.dat Tabela 6.4. Przyspieszenia pracy operacji szyfrowania dla pliku file_small.dat Tabela 6.5. Przyspieszenia pracy operacji deszyfrowania dla pliku file_small.dat Tabela 6.6. Przyspieszenia pracy algorytmów szyfrowania dla pliku file_small.dat Tabela A.1. Charakterystyka systemu SGI Altix vii

12 1 1. WSTĘP Rozdział niniejszy stanowi wprowadzenie do obranej problematyki badawczej. W punkcie 1.1. przedstawiono uzasadnienie podjęcia tematu wraz ze skrótowym opisem obecnego stanu wiedzy w zakresie tematyki prowadzonych badań. W punkcie 1.2. postawiono tezę badawczą pracy, zdefiniowano cel pracy, wyznaczając przy tym zakres prowadzonych badań oraz prezentując narzędzia programowe niezbędne do ich realizacji, jak i metodykę prowadzonych badań, a takŝe sposób ich weryfikacji. Punkt 1.3. poświęcono przedstawieniu struktury pracy wraz z krótkim opisem treści poszczególnych jej rozdziałów Stan problemu NajwaŜniejszą po bezpieczeństwie cechą funkcjonalną algorytmów szyfrowania z punktu widzenia uŝytkownika jest szybkość szyfrowania oraz deszyfrowania danych. W dobie społeczeństwa informacyjnego wraz z gwałtownym rozprzestrzenianiem się i rozwojem sieci komputerowych, zarówno globalnych, jak i korporacyjnych, a w następstwie tego lawinowym zwiększeniem ilości przesyłanych informacji poprzez pojedynczego uŝytkownika sieci, zapewnienie odpowiedniej prędkości szyfrowania oraz deszyfrowania informacji, czyli de facto skracanie czasu potrzebnego na jej zaszyfrowanie oraz odszyfrowanie jest bardzo istotnym problemem mającym duŝe znaczenie praktyczne. W związku z tym nawet niewielka róŝnica pomiędzy prędkościami poszczególnych szyfrów lub implementacji danego szyfru przy identycznym poziomie ich bezpieczeństwa moŝe spowodować wybór przez 1

13 Wstęp uŝytkownika szyfru szybszego. W celu sprostania wymogom stawianym współczesnym systemom bezpieczeństwa sieci komputerowych w aspekcie prędkości ich działania prowadzone są prace w kierunku zwiększenia szybkości szyfrowania oraz deszyfrowania danych zarówno w warstwie sprzętowej, jak i programowej. W dziedzinie sprzętowej moŝliwości są następujące: zwiększenie mocy obliczeniowej procesora przetwarzającego dane, zastosowanie specjalizowanych komponentów sprzętowych. Wada główna pierwszego rozwiązania wiąŝe się z istnieniem nieusuwalnego ograniczenia mocy obliczeniowej pojedynczej jednostki przetwarzającej, która moŝe nie sprostać wymogom czasu rzeczywistego. Inne ograniczenia spowodowane są wzrostem ciepła wytwarzanego przez tranzystory przypadającego na jednostkę powierzchni dla procesorów o olbrzymich mocach obliczeniowych, jak równieŝ wielkością oraz szybkością pamięci, która musi być dostosowana do parametrów działania procesorów. Istnieje natomiast szereg prac opisujących skuteczne zastosowanie zarówno programowalnych matryc bramek (FPGAs), jak i rzadziej występujących wskutek braku elastyczności w odniesieniu do algorytmu specjalizowanych układów scalonych (ASICs) dla zwiększenia szybkości szyfrowania oraz deszyfrowania poszczególnych algorytmów szyfrowania (np. DES, IDEA, AES, RSA), między innymi [1], [2], [3], [4], [5], [6]. Oprócz implementacji sprzętowych zaprojektowanych dla tradycyjnych komputerów sekwencyjnych moŝliwe są równieŝ wyspecjalizowane implementacje sprzętowe z wykorzystaniem wielu procesorów, opisane np. w [7], [8]. Tego typu rozwiązania naleŝy potraktować jako alternatywne w stosunku do podejścia zaproponowanego w ramach niniejszej pracy. Opcje dostępne w dziedzinie programowej to: zwiększenie szybkości algorytmów sekwencyjnych, zrównoleglenie algorytmów szyfrowania. Zwiększenie szybkości algorytmów sekwencyjnych jest moŝliwe poprzez opracowanie nowych algorytmów, szybszych od dotychczas stosowanych (istotną wadą jest w tym przypadku duŝa czasochłonność opracowania, weryfikacji oraz wdroŝenia nowych algorytmów), albo poprzez optymalizację kodu źródłowego istniejących algorytmów poprzez np. wbudowanie w niego instrukcji napisanych w języku niskiego poziomu (tj. w języku Asembler). 2

14 Wstęp Ostatnia z opcji, czyli zrównoleglenie algorytmów szyfrowania stanowi obszar, w którego obrębie prowadzone są badania w ramach niniejszej pracy. O aktualności wykorzystania maszyn wieloprocesorowych z pamięcią dzieloną świadczy dodatkowo zaobserwowany na przestrzeni ostatnich kilku lat ogromny postęp technologiczny w dziedzinie architektury komputerów równoległych. Objawia się on między innymi wprowadzeniem na rynek oprócz udoskonalanych z kaŝdą nową wersją maszyn wieloprocesorowych z procesorami jednordzeniowymi, równieŝ maszyn wieloprocesorowych z procesorami wielordzeniowymi, w przypadku których jednostki obliczeniowe pracują w ramach większego układu i w związku z tym opóźnienia w komunikacji pomiędzy nimi istotnie maleją. Dynamiczny rozwój technologii sprzętowej nie przekłada się niestety w sposób bezpośredni na znaczące zwiększenie szybkości szyfrowania i deszyfrowania informacji, poniewaŝ obecnie stosowane algorytmy szyfrowania to typowe algorytmy sekwencyjne zaprojektowane i zaimplementowane pod kątem rozwiązań technologicznych starszego typu, ukierunkowane początkowo jedynie na implementacje sprzętowe (DES), mające nierzadko po kilkanaście, a nawet kilkadziesiąt lat (np. algorytm DES został przyjęty jako standard federalny w 1976 roku (FIPS PUB46) [9]). Nie uwzględniają one specyfiki oraz uwarunkowań związanych z nowymi technologiami komputerowymi, a w efekcie nie wykorzystują w pełni ich moŝliwości obliczeniowych. Wynikająca stąd potrzeba ulepszenia obecnego oprogramowania w zakresie algorytmów szyfrowania była jednym z decydujących impulsów do rozpoczęcia badań w ramach niniejszej pracy. MoŜliwe są dwa odmienne podejścia do zrównoleglenia algorytmów: metody ręcznego zrównoleglenia, metody automatycznego zrównoleglenia. Metody ręcznego zrównoleglenia polegają na zrównolegleniu kodu źródłowego stanowiącego implementację algorytmu sekwencyjnego w oparciu o szczegółową analizę tego kodu. Zagadnienie to jest skomplikowane, gdyŝ w przypadku architektur komputerów równoległych program moŝe być niedeterministyczny, jeśli nie zostaną uwzględnione zaleŝności danych, w przeciwieństwie do architektur komputerów sekwencyjnych. Wyrazem tego jest to, Ŝe kaŝde uruchomienie programu napisanego dla takiej architektury moŝe mieć inny przebieg, a efektem jest istotne skomplikowanie procesu uruchomienia (debugowania), poniewaŝ powtarzalność wyników ma w tym przypadku fundamentalne znaczenie. W związku z powyŝszym 3

15 Wstęp istotnymi wadami tego podejścia jest znaczna czasochłonność zrównoleglenia, co przekłada się na spore koszty, przy czym istotnym wymogiem są tu równieŝ duŝe doświadczenie i wysokie kwalifikacje programisty. Metoda automatycznego zrównoleglenia podjęta w ramach niniejszej pracy polega na zrównolegleniu sekwencyjnych algorytmów szyfrowania w procesie kompilacji kodu źródłowego danego algorytmu. W związku z tym, z załoŝenia jest to metoda szybka, tania oraz prosta w obsłudze. Jak juŝ wcześniej wspomniano istnieją rozmaite implementacje sprzętowe poszczególnych algorytmów szyfrowania z wykorzystaniem wielu procesorów, brakuje natomiast analogicznych, efektywnych implementacji programowych. Prowadzone w ramach niniejszej pracy badania zorientowane są na wypełnienie tej luki poznawczej poprzez zastosowanie dynamicznie rozwijanych od początku lat 90-ych ubiegłego wieku metod zrównoleglenia pętli programowych, opisanych w wielu publikacjach, między innymi w [10], [11], [12], na podstawie których zostały utworzone kompilatory maszyn równoległych ogólnego przeznaczenia, zarówno akademickie, m.in. SUIF (Stanford University) [13], Parafrase-2 (University of Illinois) [14], Polaris (University of Illinois) [16], PARADIGM (University of Illinois) [15], CHAOS/PARTI (University of Maryland) [17], jak i komercyjne, np. PGHPF (Portland Group Inc.) [18], ORC (Intel) [19]. Wszystkie wymienione wyŝej kompilatory posiadają jednak powaŝne wady, co ma swoje przełoŝenie na stosunkowo niską jakość generowanego przez nie kodu równoległego, przy czym w części z nich brak jest ponadto zorientowania na popularne obecnie języki programowania, C lub C++. Niniejsza praca leŝy w dziedzinie nauk technicznych i dotyczy dyscypliny informatyka. Problematyka w niej poruszana mieści się w zakresie kryptografii, przetwarzania równoległego oraz technik kompilacji. Kompilator jest to program odczytujący kod źródłowy napisany w języku źródłowym i tłumaczący go na równowaŝny program docelowy, działający w fazach, które po kolei przekształcają program z jednej postaci w inną, a do jego typowych elementów zalicza się [97], [99]: analizator leksykalny, analizator syntaktyczny, analizator semantyczny, generator kodu pośredniego, 4

16 Wstęp optymalizator kodu (kompilator optymalizujący), generator kodu. W praktyce jednak, niektóre fazy mogą być łączone [97], a ponadto optymalizator kodu moŝe występować dodatkowo równieŝ w ramach preprocesora. Wyniki otrzymane w ramach niniejszej pracy dotyczą optymalizatora kodu, gdyŝ obszar uzyskanej nowej wiedzy mieści się w zakresie: analizy przepływu sterowania, analizy przepływu danych, przekształceń (transformacji) kodu wynikających z tejŝe analizy stanowiąc rozwinięcie zagadnienia automatycznego zrównoleglenia algorytmów sekwencyjnych w obszarze algorytmów szyfrowania Cel i teza badawcza pracy Istnieją dziesiątki metod zrównoleglenia pętli programowych [71], z których kaŝda posiada pewne ograniczenia, a co za tym idzie, zakres ich efektywnego zastosowania sprowadza się do pewnych, ściśle określonych typów pętli. Brak jest natomiast metody uniwersalnej, efektywnej dla pętli o dowolnej postaci. Wynika to z olbrzymiej ilości problemów do rozwiązania oraz ich duŝej złoŝoności w przypadku tak postawionego zagadnienia, a jednym z dotkliwie odczuwalnych skutków jest dotychczasowy brak, pomimo licznych prób, skutecznego kompilatora maszyn równoległych ogólnego przeznaczenia. Ograniczenie dziedziny problemu do algorytmów szyfrowania pozwala w znacznej mierze uprościć zagadnienie i dokonać trafnego doboru najbardziej adekwatnych metod zrównoleglenia pętli do poszczególnych konstrukcji kodu źródłowego algorytmów szyfrowania, dla których wymagane jest efektywne zrównoleglenie. W związku z powyŝszym celem niniejszej pracy jest opracowanie oraz weryfikacja metody i algorytmów automatycznego zrównoleglenia algorytmów szyfrowania reprezentatywnych dla kryptografii symetrycznej i asymetrycznej zapisanych w postaci kodów źródłowych w języku C. Prowadzone badania słuŝą wykazaniu prawdziwości następującej tezy badawczej: 5

17 Wstęp MoŜliwe jest opracowanie metody i algorytmów automatycznego zrównoleglenia algorytmów szyfrowania reprezentatywnych dla kryptografii symetrycznej i asymetrycznej zapisanych w postaci kodów źródłowych w języku C pozwalających zmniejszyć czas i koszty tworzenia programów równoległych oraz uzyskać wystarczającą w praktyce jakość kodu. Algorytmy automatycznego zrównoleglenia poszczególnych algorytmów szyfrowania opisano w [20], [21], [22], [23], [24], [25], [26], [27], [28], [29] i utworzono w oparciu o analizę zaleŝności danych, dobór metod redukcji, bądź usuwania zaleŝności iteracyjnych oraz dobór procedur automatycznego zrównoleglenia pętli programowych, natomiast zarys metody przedstawiono w [30], [108]. RóŜnica pomiędzy metodą automatycznego zrównoleglenia algorytmów szyfrowania oraz algorytmem ich automatycznego zrównoleglenia tkwi w tym, Ŝe w przypadku metody (zgodnie z definicją prof. Tadeusza Kotarbińskiego [96]) mamy do czynienia z zaplanowanym systemem postępowania, którego celem w danym przypadku jest zrównoleglenie algorytmu szyfrowania polegającym na określonym doborze i układzie jego działań składowych i nadającym się do wielokrotnego zastosowania (tj. przeznaczonym dla dowolnego algorytmu szyfrowania, zgodnie z przyjętym zakresem stosowalności metody), natomiast w przypadku algorytmu mamy do czynienia ze sformalizowanym ciągiem logicznie powiązanych instrukcji, których wykonanie pozwoli na przetworzenie danych wejściowych (tj. sekwencyjnego algorytmu szyfrowania) w dane wyjściowe (tj. zrównoleglony program implementujący dany algorytm). Opracowana metoda ma szeroki zakres stosowalności zarówno w odniesieniu do typów algorytmów szyfrowania, trybów pracy algorytmów szyfrowania (wzięto pod uwagę popularne obecnie algorytmy szyfrowania: szyfry blokowe: DES, Triple DES, IDEA, AES, RC5, Blowfish LOKI91, GOST, szyfr strumieniowy SEAL, szyfr asymetryczny RSA oraz standardowe tryby pracy szyfrów blokowych: ECB, CBC, CFB, CTR), jak równieŝ typów maszyn wieloprocesorowych (od komputerów o duŝych mocach obliczeniowych- klasy SGI, Sun, Cray do komputerów klasy PC opartych na architekturze wieloprocesorowej lub wielordzeniowej zawierających róŝną ilość procesorów oraz rdzeni). Dane wejściowe zarówno metody, jak i algorytmów automatycznego zrównoleglenia algorytmów szyfrowania stanowi kod źródłowy sekwencyjnego algorytmu szyfrowania zaimplementowany w języku C. Zaproponowana metoda, jak 6

18 Wstęp równieŝ poszczególne algorytmy zawierają ściśle określony zestaw kroków, których realizacja pozwala w pierwszej kolejności przeprowadzić analizę zaleŝności danych dla pętli, następnie usunąć zaleŝności danych blokujące przetwarzanie równoległe, a w końcu w efektywny sposób zrównoleglić kod źródłowy otrzymany na wejściu. Analiza zaleŝności danych była wspomagana tam, gdzie było to moŝliwe specjalnym narzędziem do wyznaczania zaleŝności iteracyjnych- programem Petit [31], będącym jednym z komponentów Project Omega opracowanego w University of Maryland [32]. Wszystkie algorytmy równoległe zaimplementowano zgodnie ze standardem programowania dla maszyn równoległych OpenMP [33], [34]. Weryfikacja algorytmów zrównoleglonych posiada dwa aspekty: poprawność obliczeń oraz zwiększenie ich wydajności w porównaniu z aplikacjami sekwencyjnymi i dokonana jest w oparciu o dane uzyskane dla maszyny wieloprocesorowej zawierającej rozmaitą ilość wątków (dwa, cztery, osiem oraz szesnaście wątków) dla danych wejściowych o zróŝnicowanym rozmiarze, od rozmiaru danych rzędu kilkuset kilobajtów do rzędu kilku megabajtów Struktura pracy Struktura rozprawy przedstawia się następująco. Rozdział 1 jest wprowadzeniem do tematyki poruszanej w ramach niniejszej pracy i przedstawiono w nim uzasadnienie wyboru tematu, tło omawianych zagadnień, cel, tezę badawczą oraz strukturę pracy. W rozdziale 2 poruszono zagadnienia teoretyczne z dziedziny kryptografii związane z algorytmami szyfrowania uwzględniając między innymi ich procedury szyfrowania oraz deszyfrowania, cechy charakterystyczne oraz implementacje, w celu lepszego zrozumienia procesu zrównoleglenia omówionego w rozdziale 4 oraz rozdziale 5. W rozdziale 3 przedstawiono zagadnienia teoretyczne związane z przetwarzaniem równoległym w aspekcie zarówno sprzętowym jak i programowym. Omówiono zagadnienia związane z kompilatorami zrównoleglającymi, przedstawiono środowiska programowania równoległego ze szczególnym uwzględnieniem standardu OpenMP oraz stosowane miary oceny efektywności aplikacji równoległych. W rozdziale 4 podano szczegółowy opis wraz z załoŝeniami wstępnymi metody automatycznego zrównoleglenia wybranych algorytmów szyfrowania. Metoda 7

19 Wstęp oparta jest na autorskich procedurach zrównoleglenia algorytmów szyfrowania opracowanych zgodnie z przyjętą strategią zrównoleglenia algorytmów sekwencyjnych uwzględniającą specyfikę algorytmów szyfrowania oraz technice kompilacji iteracyjnej. W rozdziale 5 opisano proces automatycznego zrównoleglenia rozpatrywanych w ramach zakresu niniejszej pracy algorytmów szyfrowania wraz z podziałem na kolejne jego etapy, zgodnie z opracowaną metodą ich zrównoleglenia przedstawioną w rozdziale 4. W kolejnym rozdziale poświęconym przeprowadzonym badaniom eksperymentalnym przedstawiono wyniki wszystkich badań eksperymentalnych z zastosowaniem równoległych algorytmów szyfrowania wraz z wnioskami z tych badań. W rozdziale 7 sformułowano wnioski końcowe dotyczące realizacji podjętych w pracy zagadnień. Praca niniejsza zawiera ponadto trzy dodatki: dodatek A, w którym przedstawiono postać matematyczną poszczególnych algorytmów szyfrowania, dodatek B zawierający dane techniczne sprzętu wykorzystanego do przeprowadzenia badań eksperymentalnych oraz dodatek C (na płycie CD), gdzie zgromadzono kody źródłowe algorytmów zrównoleglonych. 8

20 2 2. ALGORYTMY SZYFROWANIA W celu zrozumienia specyficznych wymagań stawianych współczesnym aplikacjom słuŝącym do szyfrowania oraz deszyfrowania danych uŝytecznym jest przedstawienie niezbędnych podstaw teoretycznych dotyczących algorytmów szyfrowania, zastrzegając przy tym jednocześnie, Ŝe dostarczone w ramach niniejszej pracy informacje mają charakter zwięzły i nie wyczerpują poruszanych zagadnień, natomiast bardziej szczegółowy ich opis znaleźć moŝna, między innymi w następujących monografiach: [35], [36] i [37]. Utajnianie cennych informacji jest naturalną potrzebą człowieka Ŝyjącego w społeczności ludzkiej. Nauką bazującą na tej elementarnej potrzebie ludzkiej jest kryptografia (gr. kryptós- ukryty, gráphein- pisać) będąca sztuką zabezpieczania wiadomości [35]. Kryptograficzne metody zabezpieczenia wiadomości polegają zazwyczaj na jej zaszyfrowaniu, czyli zapisaniu w postaci niezrozumiałej dla osób postronnych, a jednocześnie łatwo dostępnej dla osób upowaŝnionych. Podstawowym narzędziem słuŝącym do tego celu jest algorytm szyfrowania zwany równieŝ szyfrem (hebr. saphar- liczyć). Istnieje znaczna ilość rozmaitych szyfrów, które moŝna podzielić na szyfry klasyczne oraz szyfry współczesne. Badania przeprowadzone w ramach niniejszej pracy poświęcono jedynie szyfrom współczesnym, z uwagi na to, Ŝe mają obecnie szerokie zastosowanie oraz obiecujące perspektywy na przyszłość. Nowoczesna kryptografia zgodnie z regułą Kerckhoffa rozwiązuje kwestie bezpieczeństwa nie za pomocą tajnego algorytmu, ale za pomocą tajnego klucza (oznaczanego zwykle literą K), który moŝe przyjąć jedną z wielu wartości ze swojej 9

21 Algorytmy szyfrowania przestrzeni kluczy (ang. key space) w celu szyfrowania lub deszyfrowania wiadomości [35]. Istnieją dwie grupy współczesnych algorytmów szyfrowania, w których stosuje się klucze [35]: algorytmy symetryczne, algorytmy asymetryczne. Podstawowa róŝnica pomiędzy nimi dotyczy sposobu uŝywania kluczy. W przypadku algorytmów symetrycznych operujemy kluczem (lub kluczami) prywatnym (tajnym), który nie moŝe dostać się w niepowołane ręce, gdyŝ na jego tajności opiera się bezpieczeństwo algorytmu, natomiast w przypadku algorytmów asymetrycznych mamy do czynienia z dwoma kluczami, jednym dostępnym dla kaŝdego, zwanym kluczem publicznym (jawnym), drugim- kluczem prywatnym (tajnym) [35]. Szyfry symetryczne dzielą się z kolei na [37]: szyfry blokowe szyfry strumieniowe. RóŜnica pomiędzy szyframi blokowymi i strumieniowymi polega na tym, Ŝe szyfry blokowe operują na stałym przekształceniu duŝych bloków tekstu jawnego, podczas gdy szyfry strumieniowe operują na zmieniającym się w czasie przekształceniu na pojedynczych znakach tekstu jawnego [38]. W kolejnych punktach pracy zostaną oddzielnie omówione szyfry blokowe, tryby pracy szyfrów blokowych, szyfry strumieniowe, szyfry asymetryczne oraz implementacje algorytmów szyfrowania Blokowe algorytmy szyfrowania Blokowy algorytm szyfrowania przekształca poszczególne bloki bitów o długości n reprezentujące strumień informacji do zaszyfrowania (tekst jawny) w odpowiadające im bloki bitów takiej samej długości reprezentujące strumień szyfrogramu, zaleŝne od parametru K będącego równieŝ ciągiem bitów (klucz prywatny) o długości k. Odwzorowanie powyŝsze moŝna zapisać w postaci matematycznej: F } n n K ( ) :{0,1} {0,1, [2.1] 10

22 Algorytmy szyfrowania przy czym naleŝy zaznaczyć, Ŝe odwzorowanie to jest bijekcją (posiada odwzorowanie odwrotne F 1 ( ) ). K Zgodnie ze wzorem 2.1 parametrami operacyjnymi szyfru blokowego są: blok wiadomości jawnej X (w przypadku szyfrowania) lub szyfrogramu C (w przypadku deszyfrowania)- długości n-bitów (zwykle długości 64 lub 128 bitów), k-bitowy klucz prywatny K. Szyfrowanie oraz deszyfrowanie przebiegają w ramach następujących kroków: wybór klucza sesyjnego K, podział tekstu jawnego (szyfrogramu) na bloki o długości n-bitów (w przypadku, gdy ostatni blok ma mniejszą długość konieczne jest jego uzupełnienie do pełnej długości), {X 1,, X t }- w przypadku szyfrowania, {C 1,, C t }- w przypadku deszyfrowania, szyfrowanie (deszyfrowanie) właściwe polegające na wykonywaniu funkcji F ( ) ( F 1 ( ) w przypadku deszyfrowania) dla kaŝdego K K bloku tekstu jawnego (w przypadku deszyfrowania- dla kaŝdego bloku szyfrogramu) oparte na zastosowaniu jednego z trybów pracy szyfrów blokowych (omówionych w ramach punktu 2.2 niniejszej pracy). Bezpieczeństwo szyfrów blokowych realizowane jest nie tylko poprzez stosowanie kluczy prywatnych, ale takŝe poprzez dostatecznie skomplikowane i ogólnie dostępne funkcje F ( ). Zgodnie z powszechnie przyjętą zasadą budowy szyfrów K blokowych głównym komponentem funkcji F ( ) jest r-krotne (r jest liczbą rund danego algorytmu) złoŝenie pewnego przekształcenia f ( ), gdzie i= 1, 2,,r, zwanego funkcją rundową [37]. Funkcja rundowa posiada zatem r parametrów w postaci kluczy rundowych K i otrzymywanych z klucza K za pomocą specjalnego algorytmu generowania kluczy rundowych. Funkcja rundowa f ( ) działająca na kolejne bloki wejściowe X 1,,X t stanowi złoŝenie szeregu prostych operacji: nieliniowych (oznaczanych S i )- podstawień (zastępowania ciągu bitów podbloków bloku X i innymi ciągami bitów) zwykle zwanych skrzynkami podstawieniowymi (ang. S-box), liniowych (oznaczanych L i )- permutacji bitów bloku X i. K K i K i 11

23 Algorytmy szyfrowania Skomplikowana funkcja F ( ) stanowi wynik wielokrotnego złoŝenia K stosunkowo prostej funkcji f ( ) będącej z kolei odpowiednim złoŝeniem podstawień K i i permutacji bitów w ramach bloków. Bezpieczeństwo szyfru blokowego zaleŝy nie tylko od operacji wykonywanych w ramach warstwy nieliniowej oraz liniowej funkcji f ( ), ale równieŝ od trzeciego parametru operacyjnego szyfrów blokowych- ilości wykonywanych rund. Więcej rund algorytmu oznacza większe jego bezpieczeństwo, jak równieŝ dłuŝszy czas wykonywania operacji szyfrowania oraz deszyfrowania danych. Schemat struktury ogólnej blokowego algorytmu szyfrowania przedstawiono na rys K i blok wejściowy klucz prywatny 1... r F i ( ) 1 algorytm funkcja rundowa... generowania... kluczy rundowych r blok wyjściowy Rysunek 2.1. Schemat struktury ogólnej szyfrów blokowych PoniŜej przedstawiono opis działania ośmiu szyfrów blokowych uwaŝanych za algorytmy mocne kryptograficznie, wielokrotnie poddawanych kryptoanalizie, wyselekcjonowanych pod kątem ich reprezentatywności, przy czym w ramach dokonywanego wyboru kierowano się następującymi czynnikami: obecna popularność zastosowań, specyficzne cechy budowy, dostępność implementacji programowych. Wszystkie z prezentowanych poniŝej algorytmów szyfrowania spełniają powyŝsze kryteria. 12

24 Algorytmy szyfrowania Algorytm DES Data Encryption Standard (DES) to wieloletni standard szyfrowania danych opracowany w IBM, zdefiniowany w normie FIPS PUB 46-3 [39], przyjęty przez NIST w 1976 roku, zastąpiony przez nowy standard szyfrowania AES w 2002 roku. Algorytm DES stanowi modelowy przykład algorytmu blokowego o strukturze sieci Feistela, stanowiąc jednocześnie wzorzec dla projektowania nowszych szyfrów (np. Triple DES, DES-X, G-DES), jak równieŝ bardzo popularny wzorzec do porównań z nowo opracowywanymi szyframi. Obecnie uŝywany jest w aplikacjach, dla których nie są wymagane najmocniejsze zabezpieczenia. Postać matematyczną algorytmu DES przedstawiono w dodatku A (punkt A.1.) Algorytm Triple DES Algorytm Triple DES to standard szyfrowania zdefiniowany w normie FIPS PUB 46-3 [39] w 1999 roku. Algorytm Triple DES oparty jest na algorytmie DES i stanowi modelowy przykład zastosowania techniki wielokrotnego (w tym przypadku trzykrotnego) szyfrowania bloku danych. Triple DES jest obecnie bardzo popularny i słuŝy między innymi do szyfrowania danych w ramach standardu płatności elektronicznych EMV [40]. Główną wadą algorytmu jest stosunkowo mała szybkość szyfrowania [38]. Postać matematyczną algorytmu Triple DES przedstawiono w dodatku A (punkt A.2.) Algorytm IDEA Algorytm IDEA (ang. International Data Encryption Algorithm) to obecnie bardzo popularny i jeden z najbezpieczniejszych algorytmów blokowych opracowany w ETH Zürich w latach przez Xuejia Lai i Jamesa Masseya. Algorytm IDEA stanowi modelowy przykład algorytmu blokowego opartego w części o nowatorsko uogólnioną sieć Feistela [37]. Obecnie algorytm stosowany jest między innymi do 13

25 Algorytmy szyfrowania szyfrowania danych oraz wiadomości przesyłanych pocztą elektroniczną w komercyjnych wersjach programu PGP (ang. Pretty Good Privacy) [41]. Postać matematyczną algorytmu IDEA przedstawiono w dodatku A (punkt A.3.) Algorytm Rijndael (AES) Algorytm Rijndael jest aktualnym (od 2002 roku) standardem szyfrowania danych AES (ang. Advanced Encryption Standard) zdefiniowanym w normie FIPS-197 [42]. Algorytm został opracowany przez Joana Daemena i Vincenta Rijmena i szczegółowo opisany, jako propozycja do ogłoszonego w 1997 roku konkursu na nowy standard szyfrowania danych [43]. Jest to algorytm oparty na sieci przestawieniowopodstawieniowej (ang. substitution-permutation network (SPN)) o zmiennej długości bloku danych oraz klucza (dostępne są wszystkie kombinacje długości bloku i klucza spośród: 128, 192 oraz 256 bitów). Popularność algorytmu jest obecnie bardzo duŝa, a stosowany jest on, między innymi w wielu rozmaitych protokołach szyfrowania, np. w standardzie WPA2. Zasadę działania algorytmu Rijndael (AES) przedstawiono w dodatku A (punkt A.4.) Algorytm RC5 Algorytm RC5 jest opracowanym przez Rona Rivesta popularnym obecnie szyfrem blokowym z duŝą liczbą parametrów: długość bloku, długość klucza i ilość rund opartym na strukturze zbliŝonej do sieci Feistela (ang. Feistel-like network). Algorytm RC5 stosowany jest między innymi w protokołach bezpieczeństwa WTLS (ang. Wireless Transport Leser Security) technologii WAP. Stanowi on przykład bardzo elastycznego szyfru z moŝliwością optymalizacji pod kątem stosowanego sprzętu [35], [37], [45]. Postać matematyczną algorytmu RC5 przedstawiono w dodatku A (punkt A.5.). 14

26 Algorytmy szyfrowania Algorytm Blowfish Zaprojektowany w 1993 roku przez Bruce a Schneiera algorytm Blowfish to przykład szyfru blokowego o strukturze sieci Feistela, charakteryzujący się znaczną szybkością, prostotą, małymi wymaganiami odnośnie rozmiaru pamięci (nie więcej niŝ 5 kilobajtów) oraz zmienną długością klucza. Algorytm Blowfish stosowany jest w wielu komercyjnych produktach, między innymi w Norton Your Eyes Only i PCCrypto [35], [46]. Postać matematyczną algorytmu Blowfish przedstawiono w dodatku A (punkt A.6.) Algorytm GOST Algorytm GOST został przyjęty jako państwowy standard szyfrowania danych o numerze w 1989 roku w byłym Związku Radzieckim stanowiąc tam odpowiednik standardu DES. Budowa algorytmu GOST oparta jest na sieci Feistela [35]. Zasada działania algorytmu GOST została przedstawiona w dodatku A (punkt A.7.) Algorytm LOKI91 Algorytm LOKI91 został opracowany w 1991 roku w Australii i opisany w [48]. Budowa algorytmu LOKI91 oparta jest na sieci Feistela, a sam algorytm stanowi alternatywę dla algorytmu DES [35]. Zasada działania algorytmu LOKI91 została przedstawiona w dodatku A (punkt A.8.). Cechy charakterystyczne zaprezentowanych powyŝej algorytmów zostały przedstawione w tab

27 Algorytmy szyfrowania Tabela 2.1 Cechy charakterystyczne wybranych szyfrów blokowych Nazwa szyfru Rozmiar bloku Ilość Rozmiar klucza Parametry [bit] rund [bit] zmienne DES brak Triple DES brak IDEA brak Rijndael długość bloku długość klucza ilość rund RC długość bloku długość klucza ilość rund Blowfish brak GOST brak LOKI brak 2.2. Tryby pracy szyfrów blokowych Bezpieczeństwo szyfrowanych danych nie jest jedynie funkcją samego algorytmu szyfrowania, ale równieŝ trybu jego pracy. Szyfry blokowe mogą pracować w róŝnych trybach pracy, w zaleŝności od ich zastosowania. Standardowe tryby pracy szyfrów blokowych są następujące [50]: - tryb elektronicznej ksiąŝki kodowej (ang. electronic codebook (ECB) mode) - tryb wiązania bloków zaszyfrowanych (ang. cipher block chaining (CBC) mode) - tryb sprzęŝenia zwrotnego szyfrogramu (ang. cipher feedback (CFB) mode) - tryb sprzęŝenia zwrotnego wyjściowego (ang. output feedback (OFB) mode) - tryb licznikowy (ang. counter (CTR) mode). Postać matematyczna standardowych trybów pracy szyfrów blokowych została przedstawiona w dodatku A (punkty A.9. A.13.). 16

28 Algorytmy szyfrowania 2.3. Szyfry strumieniowe Szyfry strumieniowe będące klasą szyfrów symetrycznych działają na ciągach tekstu jawnego i szyfrogramu o wielkości jednego bitu lub jednego bajtu [35]. Wymagają one utworzenia specjalnego klucza strumieniowego z = z 1 z 2 z t. Do wygenerowania i-tego elementu klucza strumieniowego stosuje się funkcję f i, której wartość zaleŝy od klucza szyfrującego K oraz od pierwszych i-1 elementów tekstu jawnego [36]: z i = f i (K, m 1,m 2,, m i-1 ). [2.2] i-ty element klucza strumieniowego (z i ) uŝywa się do szyfrowania i-tego elementu wiadomości jawnej (m i ): c i = e Zi (m i ), [2.3] jak równieŝ do deszyfrowania i-tego elementu szyfrogramu (c i ): m i = e Zi (c i ). [2.4] Parametrami operacyjnymi szyfrów strumieniowych są: długość klucza szyfrującego, ilość rund. Współczesne szyfry strumieniowe oparte są z reguły na liniowych rejestrach przesuwających ze sprzęŝeniem zwrotnym (ang. Linear Feedback Shift Registers (LFSRs)) (np. szyfr A5) i dobrze nadają się do efektywnych implementacji sprzętowych. Innym popularnym podejściem jest zaprojektowanie ich specjalnie pod kątem szybkiej implementacji programowej, jak to ma miejsce w przypadku szyfru SEAL [37]. Schemat struktury ogólnej szyfrów strumieniowych przedstawiono na rys W kolejnych punktach niniejszego rozdziału przedstawiono opis działania reprezentatywnego szyfru strumieniowego- SEAL, przy którego wyborze kierowano się tymi samymi aspektami, jak w przypadku wyboru szyfrów blokowych: reprezentatywnością, obecną popularnością zastosowań, specyficznymi cechami budowy oraz dostępnością implementacji programowych. 17

29 Algorytmy szyfrowania klucz szyfrujący klucz strumieniowy algorytm generowania klucza strumieniowego XOR szyfrogram tekst jawny Rysunek 2.2. Schemat struktury ogólnej szyfrów strumieniowych Algorytm SEAL Algorytm SEAL (ang. Software-Optimized Encryption Algorithm) to szyfr strumieniowy autorstwa Philipa Rogawaya i Dona Coppersmitha (IBM) opisany w [52], zaprojektowany specjalnie pod kątem wydajnych implementacji programowych na komputerach 32-bitowych. Algorytm SEAL jest przedstawicielem rodziny funkcji pseudolosowych (ang. pseudo-random function family) i stosowany jest między innymi do szyfrowania dysków [35]. Zasadę działania algorytmu SEAL przedstawiono w dodatku A (punkt A.14.) Szyfry asymetryczne Fundamentalna idea kryptografii asymetrycznej została opublikowana w 1976 roku przez Whitfielda Diffie ego i Martina Hellmana w artykule [53]. Zgodnie z tą ideą szyfry asymetryczne zwane takŝe szyframi z kluczem publicznym wykorzystują dwa róŝne klucze (w przeciwieństwie do szyfrów symetrycznych), klucz tajny uŝywany do deszyfrowania szyfrogramu oraz klucz jawny wykorzystywany do szyfrowania tekstu jawnego, przy czym zgodnie z załoŝeniem tego algorytmu niemoŝliwe jest uzyskanie jednego klucza na podstawie znajomości drugiego. Bezpieczeństwo szyfrowania z zastosowaniem szyfrów asymetrycznych jest oparte na jednym z problemów teorii liczb- trudnym obliczeniowo, naleŝącym do klasy problemów NP-zupełnych, jak 18

30 Algorytmy szyfrowania faktoryzacja wielkich liczb (szyfr RSA) czy obliczanie algorytmów dyskretnych (algorytm ElGamal) [35], [37] Algorytm RSA Algorytm RSA jest najpopularniejszym obecnie szyfrem asymetrycznym. Algorytm został odkryty przez Rona Rivesta, Adi Shamira i Leonarda Adlemana w 1977 roku i został opisany w [54]. Bezpieczeństwo szyfrowania w przypadku algorytmu RSA oparte jest na rozkładzie dostatecznie duŝych liczb na czynniki pierwsze, tak aŝeby zadanie to okazało się w praktyce niewykonalne. W algorytmie RSA para kluczy (klucz jawny oraz klucz tajny) jest funkcją pary duŝych liczb pierwszych, zatem uzyskanie tekstu jawnego na podstawie szyfrogramu przy znajomości klucza publicznego jest równoznaczne zadaniu faktoryzacji iloczynu wybranych liczb pierwszych. Algorytm RSA składa się z trzech powiązanych ze sobą elementów: procedury generowania pary kluczy, procedury szyfrowania tekstu jawnego z zastosowaniem klucza publicznego, procedury deszyfrowania szyfrogramu z zastosowaniem klucza tajnego, które przedstawiono w dodatku A (punkt A.15.). Algorytm RSA moŝna usprawnić stosując pewne metody i algorytmy z dziedziny teorii liczb, np. metodę łańcuchowania dodawań (ang. addition chaining) [55], metodę Montgomery ego [56], algorytm Barretta [57], algorytm Euklidesa [55], uogólnienie Eulera małego twierdzenia Fermata [35], chińskie twierdzenie o resztach [35], [37], [55] czy algorytm mnoŝenia Karacuby [58] Implementacje algorytmów szyfrowania Algorytmy szyfrowania mogą być implementowane zarówno programowo, jak i sprzętowo, przy czym oba sposoby implementacji mają właściwe sobie zalety oraz wady. Główną zaletą sprzętowych implementacji algorytmów szyfrowania jest większa ich wydajność niŝ w przypadku implementacji programowych. Implementacje programowe są natomiast stosunkowo tanie, proste w uŝyciu, łatwe do aktualizacji, przenośne oraz elastyczne. Mając na uwadze zalety implementacji programowych, a takŝe ze względu na fakt istnienia pewnych ograniczeń ich wydajności zdecydowano się na badania dotyczące zwiększenia wydajności implementacji programowych 19

31 Algorytmy szyfrowania algorytmów szyfrowania, przy czym za priorytet uznano równieŝ zachowanie dotychczasowych ich zalet- elastyczności oraz niskich kosztów implementacji. Wykorzystano implementacje poszczególnych algorytmów zapisane w języku C mając na uwadze to, Ŝe język C stanowi domyślny standard programowania, co przekłada się na największą ilość implementacji algorytmów szyfrowania wykonanych w tym języku, z uwagi na znaczną efektywność kodu wynikowego programów napisanych w tym języku (porównywalną z efektywnością kodu wynikowego języków niskiego poziomu, np. języka Asembler, a znacznie wyŝszą niŝ w przypadku innych popularnych obecnie języków programowania, jak język Java, C#, C++) przy zaletach języka wysokiego poziomu, takich jak łatwość projektowania oraz przenośność oprogramowania. Istnieją rozmaite implementacje poszczególnych algorytmów szyfrowania, gdyŝ realizacja określonego celu, którym jest w danym przypadku szyfrowanie oraz deszyfrowanie danych zgodnie z zasadą działania danego szyfru nie implikuje ściśle określonego kodu źródłowego, a w związku z tym mogą się one róŝnić od siebie. Z uwagi na szereg rozmaitych moŝliwości implementacyjnych poszczególnych algorytmów szyfrowania konieczny był ich wybór. Zastosowano następujące kryteria wyboru implementacji poszczególnych algorytmów szyfrowania: efektywność, popularność, wiarygodność prostota. Preferowano rozwiązania efektywne, popularne, wiarygodne oraz proste w implementacji. Interesujące z punktu widzenia prowadzonych badań fragmenty kodów źródłowych rozpatrywanych algorytmów szyfrowania przedstawiono w rozdziale Podsumowanie Rozdział 2 poświęcono zagadnieniom teoretycznym z dziedziny kryptografii, a w szczególności algorytmom szyfrowania z uwzględnieniem ich podziału na szyfry blokowe, szyfry strumieniowe, szyfry asymetryczne oraz tryby pracy szyfrów blokowych. Przedstawiono w skrócie dziesięć reprezentatywnych, często obecnie uŝywanych algorytmów szyfrowania zarówno symetrycznych, jak i asymetrycznych 20

32 Algorytmy szyfrowania oraz pięć standardowych trybów pracy szyfrów blokowych (zasadę ich działania w postaci matematycznej podano w dodatku A niniejszej pracy), z uwagi na to, Ŝe będą zastosowane do zrównoleglenia kodu za pomocą autorskiej metody automatycznego zrównoleglenia wybranych algorytmów szyfrowania (opisanej w rozdziale 4 niniejszej pracy). Zaprezentowano ponadto zalety oraz wady implementacji programowych oraz sprzętowych algorytmów szyfrowania, jak równieŝ kryteria wyboru poszczególnych algorytmów szyfrowania oraz ich implementacji programowych. 21

33 3 3. PROBLEMATYKA ZRÓWNOLEGLENIA ALGORYTMÓW SZYFROWANIA UmoŜliwienie coraz szybszego szyfrowania oraz deszyfrowania danych wiąŝe się ściśle z zastosowaniem do tego celu nowoczesnego sprzętu o olbrzymich mocach obliczeniowych. Dotyczy to szczególnie konieczności przetwarzania w czasie rzeczywistym danych o znaczących rozmiarach pamięci, gdzie konieczność zastosowania znacznych nakładów obliczeniowych jest rzeczą oczywistą. Nieustanny postęp technologiczny w dziedzinie architektur procesorów doprowadził do powszechnego stosowania w takich przypadkach komputerów równoległych charakteryzujących się większymi mocami obliczeniowymi w porównaniu z maszynami sekwencyjnymi. Algorytmy sekwencyjne naleŝy zrównoleglić, aŝeby efektywnie wykorzystywać moc obliczeniową komputerów równoległych. Zrównoleglenie algorytmów wymaga z jednej strony zastosowania odpowiedniego sprzętu pozwalającego wykonywać obliczenia w sposób równoległy, a z drugiej opracowania algorytmu charakteryzującego się duŝym stopniem równoległości. Zagadnieniom tym poświęcony jest kolejny rozdział pracy Architektury maszyn równoległych System wieloprocesorowy (ang. multiprocessor system) zwany równieŝ wieloprocesorem (ang. multiprocessor) został zdefiniowany w 1970 roku przez 22

34 Problematyka zrównoleglenia algorytmów szyfrowania Amerykański Państwowy Instytut Normalizacji (ANSI) jako maszyna cyfrowa złoŝona z dwu lub więcej jednostek przetwarzania sterowanych centralnie [59]. Rozwijając powyŝszą definicję naleŝy stwierdzić, Ŝe system wieloprocesorowy jest to komputer, zawierający co najmniej dwa procesory, które charakteryzują się zazwyczaj zbliŝonymi właściwościami i moŝliwościami obliczeniowymi, pracujący pod kontrolą jednego systemu operacyjnego zapewniającego współpracę pomiędzy procesorami na róŝnych poziomach [59]. Podstawą współdziałania procesorów jest komunikacja pomiędzy nimi i moŝliwa dzięki niej synchronizacja ich pracy. Odbywa się ona albo poprzez dostęp do wspólnej (dzielonej) pamięci operacyjnej (ang. shared memory), albo poprzez przesyłanie komunikatów (ang. message passing) [59]. Wynika stąd podział systemów wieloprocesorowych na: Systemy z pamięcią wspólną (dzieloną) (ang. shared memory, w skrócie SM). Architekturę tego systemu ilustruje rys.3.1. Systemy z przesyłaniem komunikatów (ang. message passing) lub systemy z pamięcią rozproszoną (ang. distributed memory, w skrócie DM). Schemat tego systemu przedstawiono na rys.3.2. Pamięć... Sieć połączęń... CPU 1 CPU 2 CPU p Rysunek 3.1. Architektura systemów wieloprocesorowych z pamięcią wspólną 23

35 Problematyka zrównoleglenia algorytmów szyfrowania Sieć połączeń... CPU 1 CPU 2... CPU p Pamięć 1 Pamięć 2 Pamięć p Rysunek 3.2. Architektura systemów wieloprocesorowych z pamięcią rozproszoną Systemy wieloprocesorowe ze wspólną pamięcią w ujęciu teoretycznym cechują się stosunkowo szybkim mechanizmem synchronizacji i komunikacji międzyprocesorowej. W praktyce jednakŝe, fakt dostępu wszystkich procesorów do jednej pamięci szybkość tę w znacznym stopniu moŝe ograniczać. Z tego względu minimalizuje się dostęp do wspólnej pamięci wykorzystując pamięci lokalne, a sieci połączeń projektuje w taki sposób, aŝeby zapewniały duŝą przepustowość. Zastosowanie pamięci lokalnych powoduje odciąŝenie pamięci wspólnej jedynie dla obliczeń lokalnych, tzn. nie korzystających z wyników pracy innych procesorów i nie generujących wyników będących danymi wejściowymi dla innych procesorów [59]. W systemach wieloprocesorowych z pamięcią rozproszoną kaŝdy procesor ma własną, jedynie jemu dostępną pamięć. Komunikacja pomiędzy procesorami odbywa się za pomocą specjalnych komunikatów przesyłanych poprzez sieć połączeń, w których występują dane potrzebne do wykonania obliczeń. Mechanizmy synchronizacji i komunikacji obarczone są większymi narzutami czasowymi niŝ w przypadku systemów ze wspólną pamięcią [59], dlatego efektywność takich systemów tym jest wyŝsza, im mniej jest powiązań pomiędzy realizowanymi procesami. Istnieją równieŝ systemy w formie pośredniej w stosunku do wyŝej wymienionych zawierające rozproszoną pamięć współdzieloną (ang. distributed shared memory, w skrócie DSM). Zawierają one model programowania wspólnej przestrzeni adresowej z fizycznie rozproszoną pamięcią oraz spójnym duplikowaniem zasobów systemowych [61]. 24

Laboratorium nr 1 Szyfrowanie i kontrola integralności

Laboratorium nr 1 Szyfrowanie i kontrola integralności Laboratorium nr 1 Szyfrowanie i kontrola integralności Wprowadzenie Jedną z podstawowych metod bezpieczeństwa stosowaną we współczesnych systemach teleinformatycznych jest poufność danych. Poufność danych

Bardziej szczegółowo

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna 1. Wstęp Wprowadzenie do PKI Infrastruktura klucza publicznego (ang. PKI - Public Key Infrastructure) to termin dzisiaj powszechnie spotykany. Pod tym pojęciem kryje się standard X.509 opracowany przez

Bardziej szczegółowo

Podpis elektroniczny

Podpis elektroniczny Podpis elektroniczny Powszechne stosowanie dokumentu elektronicznego i systemów elektronicznej wymiany danych oprócz wielu korzyści, niesie równieŝ zagroŝenia. Niebezpieczeństwa korzystania z udogodnień

Bardziej szczegółowo

Bezpieczeństwo danych, zabezpieczanie safety, security

Bezpieczeństwo danych, zabezpieczanie safety, security Bezpieczeństwo danych, zabezpieczanie safety, security Kryptologia Kryptologia, jako nauka ścisła, bazuje na zdobyczach matematyki, a w szczególności teorii liczb i matematyki dyskretnej. Kryptologia(zgr.κρυπτός

Bardziej szczegółowo

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski

Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP. Marcin Pilarski Systemy Operacyjne zaawansowane uŝytkowanie pakietu PuTTY, WinSCP Marcin Pilarski PuTTY PuTTY emuluje terminal tekstowy łączący się z serwerem za pomocą protokołu Telnet, Rlogin oraz SSH1 i SSH2. Implementuje

Bardziej szczegółowo

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii

Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii Wprowadzenie do zagadnień bezpieczeńśtwa i kryptografii Patryk Czarnik Bezpieczeństwo sieci komputerowych MSUI 2009/10 Zagadnienia bezpieczeństwa Identyfikacja i uwierzytelnienie Kontrola dostępu Poufność:

Bardziej szczegółowo

Laboratorium nr 5 Podpis elektroniczny i certyfikaty

Laboratorium nr 5 Podpis elektroniczny i certyfikaty Laboratorium nr 5 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi

Bardziej szczegółowo

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI

II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI II klasa informatyka rozszerzona SZYFROWANIE INFORMACJI STEGANOGRAFIA Steganografia jest nauką o komunikacji w taki sposób by obecność komunikatu nie mogła zostać wykryta. W odróżnieniu od kryptografii

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR

WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR kpt. mgr inŝ. Paweł HŁOSTA kpt. mgr inŝ. Dariusz SZABRA Wojskowy Instytut Techniczny Uzbrojenia WYKORZYSTANIE WEWNĘTRZNYCH GENERATORÓW RC DO TAKTOWANIA MIKROKONTROLERÓW AVR W niektórych aplikacjach mikroprocesorowych,

Bardziej szczegółowo

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas)

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas) Hosting WWW Bezpieczeństwo hostingu WWW Dr Michał Tanaś (http://www.amu.edu.pl/~mtanas) Szyfrowana wersja protokołu HTTP Kiedyś używany do specjalnych zastosowań (np. banki internetowe), obecnie zaczyna

Bardziej szczegółowo

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA

Zadanie 1: Protokół ślepych podpisów cyfrowych w oparciu o algorytm RSA Informatyka, studia dzienne, inż. I st. semestr VI Podstawy Kryptografii - laboratorium 2010/2011 Prowadzący: prof. dr hab. Włodzimierz Jemec poniedziałek, 08:30 Data oddania: Ocena: Marcin Piekarski 150972

Bardziej szczegółowo

Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe. kradzieŝy! Jak się przed nią bronić?

Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe. kradzieŝy! Jak się przed nią bronić? Bezpieczeństwo Danych Technologia Informacyjna Uwaga na oszustów! Wasze dane takie jak: numery kart kredytowych, identyfikatory sieciowe czy hasła mogą być wykorzystane do kradzieŝy! Jak się przed nią

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

Szyfrowanie danych w SZBD

Szyfrowanie danych w SZBD Szyfrowanie danych w SZBD dr inż. Maciej Nikodem Instytut Informatyki, Automatyki i Robotyki maciej.nikodem@pwr.wroc.pl 1 Czy potrzebujemy szyfrowania w SZBD? prawo, kontrola dostępu, ochrona przed: administratorem,

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Szyfry przestawieniowe

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Szyfry przestawieniowe Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne Algorytmy kryptograficzne (1) Przestawieniowe zmieniają porządek znaków według pewnego schematu, tzw. figury Podstawieniowe monoalfabetyczne

Bardziej szczegółowo

Bezpieczeństwo kart elektronicznych

Bezpieczeństwo kart elektronicznych Bezpieczeństwo kart elektronicznych Krzysztof Maćkowiak Karty elektroniczne wprowadzane od drugiej połowy lat 70-tych znalazły szerokie zastosowanie w wielu dziedzinach naszego życia: bankowości, telekomunikacji,

Bardziej szczegółowo

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT WERSJA

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU> Załącznik nr 4.4 do Umowy nr 35-ILGW-253-.../20.. z dnia... MINISTERSTWO FINANSÓW DEPARTAMENT INFORMATYKI PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT WERSJA numer wersji

Bardziej szczegółowo

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie

Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie Wykład 4 Bezpieczeństwo przesyłu informacji; Szyfrowanie rodzaje szyfrowania kryptografia symetryczna i asymetryczna klucz publiczny i prywatny podpis elektroniczny certyfikaty, CA, PKI IPsec tryb tunelowy

Bardziej szczegółowo

INFORMATYKA Pytania ogólne na egzamin dyplomowy

INFORMATYKA Pytania ogólne na egzamin dyplomowy INFORMATYKA Pytania ogólne na egzamin dyplomowy 1. Wyjaśnić pojęcia problem, algorytm. 2. Podać definicję złożoności czasowej. 3. Podać definicję złożoności pamięciowej. 4. Typy danych w języku C. 5. Instrukcja

Bardziej szczegółowo

Bezpieczeństwo informacji w systemach komputerowych

Bezpieczeństwo informacji w systemach komputerowych Bezpieczeństwo informacji w systemach komputerowych Andrzej GRZYWAK Rozwój mechanizmów i i systemów bezpieczeństwa Szyfry Kryptoanaliza Autentyfikacja Zapory Sieci Ochrona zasobów Bezpieczeństwo przechowywania

Bardziej szczegółowo

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2

DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY PROGRAMU AGREGAT - 2 InŜynieria Rolnicza 14/2005 Michał Cupiał, Maciej Kuboń Katedra InŜynierii Rolniczej i Informatyki Akademia Rolnicza im. Hugona Kołłątaja w Krakowie DOBÓR ŚRODKÓW TRANSPORTOWYCH DLA GOSPODARSTWA PRZY POMOCY

Bardziej szczegółowo

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek

Praktyczne aspekty wykorzystania nowoczesnej kryptografii. Wojciech A. Koszek <dunstan@freebsd.czest.pl> Praktyczne aspekty wykorzystania nowoczesnej kryptografii Wojciech A. Koszek Wprowadzenie Kryptologia Nauka dotycząca przekazywania danych w poufny sposób. W jej skład wchodzi

Bardziej szczegółowo

Seminarium Ochrony Danych

Seminarium Ochrony Danych Opole, dn. 15 listopada 2005 Politechnika Opolska Wydział Elektrotechniki i Automatyki Kierunek: Informatyka Seminarium Ochrony Danych Temat: Nowoczesne metody kryptograficzne Autor: Prowadzący: Nitner

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Nowe narzędzia ICT. Do czego więc można wykorzystać ową kryptografię?

Nowe narzędzia ICT. Do czego więc można wykorzystać ową kryptografię? Nowe narzędzia ICT Temat: Narzędzia szyfrowania/zabezpieczania danych off-line. Komputer, w dobie tak prężnie rozwijających się mediów wydaje się być rzeczą praktycznie niezbędną dla każdego człowieka.

Bardziej szczegółowo

Wprowadzenie do technologii VPN

Wprowadzenie do technologii VPN Sieci komputerowe są powszechnie wykorzystywane do realizacji transakcji handlowych i prowadzenia działalności gospodarczej. Ich zaletą jest błyskawiczny dostęp do ludzi, którzy potrzebują informacji.

Bardziej szczegółowo

Technologia informacyjna

Technologia informacyjna Technologia informacyjna Pracownia nr 9 (studia stacjonarne) - 05.12.2008 - Rok akademicki 2008/2009 2/16 Bazy danych - Plan zajęć Podstawowe pojęcia: baza danych, system zarządzania bazą danych tabela,

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

PROGRAMOWALNE STEROWNIKI LOGICZNE

PROGRAMOWALNE STEROWNIKI LOGICZNE PROGRAMOWALNE STEROWNIKI LOGICZNE I. Wprowadzenie Klasyczna synteza kombinacyjnych i sekwencyjnych układów sterowania stosowana do automatyzacji dyskretnych procesów produkcyjnych polega na zaprojektowaniu

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11

Kryptografia. z elementami kryptografii kwantowej. Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas. Wykład 11 Kryptografia z elementami kryptografii kwantowej Ryszard Tanaś http://zon8.physd.amu.edu.pl/~tanas Wykład 11 Spis treści 16 Zarządzanie kluczami 3 16.1 Generowanie kluczy................. 3 16.2 Przesyłanie

Bardziej szczegółowo

Sieci VPN SSL czy IPSec?

Sieci VPN SSL czy IPSec? Sieci VPN SSL czy IPSec? Powody zastosowania sieci VPN: Geograficzne rozproszenie oraz duŝa mobilność pracowników i klientów przedsiębiorstw i instytucji, Konieczność przesyłania przez Internet danych

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

Laboratorium nr 3 Podpis elektroniczny i certyfikaty

Laboratorium nr 3 Podpis elektroniczny i certyfikaty Laboratorium nr 3 Podpis elektroniczny i certyfikaty Wprowadzenie W roku 2001 Prezydent RP podpisał ustawę o podpisie elektronicznym, w która stanowi że podpis elektroniczny jest równoprawny podpisowi

Bardziej szczegółowo

4. Podstawowe elementy kryptografii

4. Podstawowe elementy kryptografii 4. Podstawowe elementy kryptografii Mechanizmy kryptografii są powszechnie wykorzystywane w dziedzinie bezpieczeństwa systemów komputerowych. Stanowią bardzo uniwersalne narzędzie osiągania poufności,

Bardziej szczegółowo

PRZEDMIOTOWY SYSTEM OCENIANIA. z przedmiotu. Programowanie strukturalne i obiektowe. dla technikum informatycznego

PRZEDMIOTOWY SYSTEM OCENIANIA. z przedmiotu. Programowanie strukturalne i obiektowe. dla technikum informatycznego PRZEDMIOTOWY SYSTEM OCENIANIA z przedmiotu Programowanie strukturalne i obiektowe dla technikum informatycznego Zespół Szkół Ogólnokształcących i Technicznych w Słupsku Krzysztof Smoliński 1. Uczniowie

Bardziej szczegółowo

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska Programowanie współbieŝne Paweł Rogaliński Politechnika Wrocławska pawel.rogalinski pwr.wroc.pl Literatura podstawowa M. Ben-Ari: Podstawy programowania współbieŝnego i rozproszonego, WNT, Warszawa 1996.

Bardziej szczegółowo

Definicje. Najprostszy schemat blokowy. Schemat dokładniejszy

Definicje. Najprostszy schemat blokowy. Schemat dokładniejszy Definicje owanie i symulacja owanie zastosowanie określonej metodologii do stworzenia i weryfikacji modelu dla danego rzeczywistego Symulacja zastosowanie symulatora, w którym zaimplementowano model, do

Bardziej szczegółowo

KURS ACCESS 2003 Wiadomości wstępne

KURS ACCESS 2003 Wiadomości wstępne KURS ACCESS 2003 Wiadomości wstępne Biorąc c udział w kursie uczestnik zapozna się z tematyką baz danych i systemu zarządzania bazami danych jakim jest program Microsoft Access 2003. W trakcie kursu naleŝy

Bardziej szczegółowo

Bezpieczeństwo teleinformatyczne

Bezpieczeństwo teleinformatyczne Bezpieczeństwo teleinformatyczne BIULETYN TEMATYCZNY Nr 1 /czerwiec 2007 Bezpieczeństwo sieci WiFi www.secuirty.dga.pl Spis treści Wstęp 3 Sieci bezprzewodowe 4 WEP 4 WPA 6 WPA2 6 WPA-PSK 6 Zalecenia 7

Bardziej szczegółowo

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie

Laboratorium. Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie Laboratorium Szyfrowanie algorytmami Vernam a oraz Vigenere a z wykorzystaniem systemu zaimplementowanego w układzie programowalnym FPGA. 1. Zasada działania algorytmów Algorytm Vernam a wykorzystuje funkcję

Bardziej szczegółowo

Metodyka projektowania komputerowych systemów sterowania

Metodyka projektowania komputerowych systemów sterowania Metodyka projektowania komputerowych systemów sterowania Andrzej URBANIAK Metodyka projektowania KSS (1) 1 Projektowanie KSS Analiza wymagań Opracowanie sprzętu Projektowanie systemu Opracowanie oprogramowania

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

Bezpieczna poczta i PGP

Bezpieczna poczta i PGP Bezpieczna poczta i PGP Patryk Czarnik Bezpieczeństwo sieci komputerowych MSUI 2010/11 Poczta elektroniczna zagrożenia Niechciana poczta (spam) Niebezpieczna zawartość poczty Nieuprawniony dostęp (podsłuch)

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo

Podstawy systemów kryptograficznych z kluczem jawnym RSA

Podstawy systemów kryptograficznych z kluczem jawnym RSA Podstawy systemów kryptograficznych z kluczem jawnym RSA RSA nazwa pochodząca od nazwisk twórców systemu (Rivest, Shamir, Adleman) Systemów z kluczem jawnym można używać do szyfrowania operacji przesyłanych

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

WSTĘP. Budowę umiejętności w: zarządzaniu plikami; procesowaniu tekstu i tworzeniu arkuszy; uŝywaniu przeglądarek internetowych oraz World Wide Web;

WSTĘP. Budowę umiejętności w: zarządzaniu plikami; procesowaniu tekstu i tworzeniu arkuszy; uŝywaniu przeglądarek internetowych oraz World Wide Web; WSTĘP Kurs podstaw komputera dla dorosłych to kompletny kurs przewidziany dla dorosłych uczniów, w szczególności dla starszych pracowników, tak aby mogli osiągnąć/poprawić umiejętności w zakresie obsługi

Bardziej szczegółowo

AKADEMIA TECHNICZNO - ROLNICZA W BYDGOSZCZY PRACA MAGISTERSKA. Wydział Telekomunikacji i Elektrotechniki

AKADEMIA TECHNICZNO - ROLNICZA W BYDGOSZCZY PRACA MAGISTERSKA. Wydział Telekomunikacji i Elektrotechniki AKADEMIA TECHNICZNO - ROLNICZA W BYDGOSZCZY Wydział Telekomunikacji i Elektrotechniki PRACA MAGISTERSKA Temat: Przegląd systemów szyfrowania informacji cyfrowych Prowadzący: prof. dr inŝ. Antoni Zabłudowski

Bardziej szczegółowo

Oprogramowanie dla biznesu Numer 11 (69) Listopad 2009 JAK SZYBKO I SKUTECZNIE ZAMKNĄĆ ROK?

Oprogramowanie dla biznesu Numer 11 (69) Listopad 2009 JAK SZYBKO I SKUTECZNIE ZAMKNĄĆ ROK? Oprogramowanie dla biznesu Numer 11 (69) Listopad 2009 JAK SZYBKO I SKUTECZNIE ZAMKNĄĆ ROK? CZY TO MOśLIWE, ABY PRZEZ PROCES ZAMKNIĘCIA ROKU W DUśEJ FIRMIE LEASINGOWEJ PRZEJŚĆ SZYBKO I BEZBOLEŚNIE? MY

Bardziej szczegółowo

Programowanie. Oprogramowanie Pojęcia wstępne Programem - sekwencja rozkazów, które instruują komputer, jakie operacje i w jakiej kolejności powinien wykonać, by rozwiązać określony problem. Programowanie

Bardziej szczegółowo

Zabezpieczanie danych użytkownika przed szkodliwym oprogramowaniem szyfrującym

Zabezpieczanie danych użytkownika przed szkodliwym oprogramowaniem szyfrującym Zabezpieczanie danych użytkownika przed szkodliwym oprogramowaniem szyfrującym Cyberprzestępcy szybko przyswajają techniki rozwijane przez przestępców w świecie fizycznym, łącznie z tymi służącymi do wyłudzania

Bardziej szczegółowo

Skarbnik CE na PocketPC 2003

Skarbnik CE na PocketPC 2003 Skarbnik CE na PocketPC 2003 Niniejszy dokument przeznaczony jest dla uŝytkowników Skarbnika CE, którzy chcą wykorzystywać go na najnowszych modelach komputerów przenośnych Pocket PC, wyposaŝonych w system

Bardziej szczegółowo

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Kryptografia Kierunek Informatyka - semestr V. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII Kierunek Informatyka - semestr V Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Problem pakowania plecaka System kryptograficzny Merklego-Hellmana

Bardziej szczegółowo

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp

Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp Internetowy moduł prezentacji WIZYT KLIENTA PUP do wykorzystania np. na stronie WWW. Wstęp Prezentujemy Państwu propozycję modułu aplikacji internetowej słuŝącej do prezentacji zaplanowanych wizyt klienta

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Definicja i cechy algorytmów Sieci działań Programowanie strukturalne Witold Marańda maranda@dmcs.p.lodz.pl 1 Literatura 1. iklaus Wirth, Algorytmy + Struktury danych = Programy,

Bardziej szczegółowo

Czym jest EDGE? Opracowanie: Paweł Rabinek Bydgoszcz, styczeń 2007 http://blog.xradar.net

Czym jest EDGE? Opracowanie: Paweł Rabinek Bydgoszcz, styczeń 2007 http://blog.xradar.net Czym jest EDGE? Opracowanie: Paweł Rabinek Bydgoszcz, styczeń 2007 http://blog.xradar.net Wstęp. Aby zrozumieć istotę EDGE, niezbędne jest zapoznanie się z technologią GPRS. General Packet Radio Service

Bardziej szczegółowo

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VI. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VI - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2013 c Copyright 2013 Janusz Słupik Podstawowe zasady bezpieczeństwa danych Bezpieczeństwo Obszary:

Bardziej szczegółowo

technologii informacyjnych kształtowanie , procesów informacyjnych kreowanie metod dostosowania odpowiednich do tego celu środków technicznych.

technologii informacyjnych kształtowanie , procesów informacyjnych kreowanie metod dostosowania odpowiednich do tego celu środków technicznych. Informatyka Coraz częściej informatykę utoŝsamia się z pojęciem technologii informacyjnych. Za naukową podstawę informatyki uwaŝa się teorię informacji i jej związki z naukami technicznymi, np. elektroniką,

Bardziej szczegółowo

KRYPTOGRAFIA ASYMETRYCZNA I JEJ ZASTOSOWANIE

KRYPTOGRAFIA ASYMETRYCZNA I JEJ ZASTOSOWANIE KRYPTOGRAFIA ASYMETRYCZNA I JEJ ZASTOSOWANIE W ALGORYTMACH KOMUNIKACJI Krzysztof Bartyzel Wydział Matematyki Fizyki i Informatyki, Uniwersytet Marii Curii-Skłodowskiej w Lublinie Streszczenie: Komunikacja

Bardziej szczegółowo

ASQ: ZALETY SYSTEMU IPS W NETASQ

ASQ: ZALETY SYSTEMU IPS W NETASQ ASQ: ZALETY SYSTEMU IPS W NETASQ Firma NETASQ specjalizuje się w rozwiązaniach do zintegrowanego zabezpieczenia sieci komputerowych, kierując się przy tym załoŝeniem, Ŝe ryzyko ataku jest identyczne niezaleŝnie

Bardziej szczegółowo

Bezpieczeństwo systemów i sieci komputerowych

Bezpieczeństwo systemów i sieci komputerowych Bezpieczeństwo systemów i sieci komputerowych Kryptologia (2) Szyfry blokowe Szyfry kaskadowe Propozycja Shannona Bezpieczny szyfr można zbudować operując na dużych przestrzeniach komunikatów i kluczy

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu.

Informatyka kwantowa. Zaproszenie do fizyki. Zakład Optyki Nieliniowej. wykład z cyklu. Ryszard Tanaś. mailto:tanas@kielich.amu.edu. Zakład Optyki Nieliniowej http://zon8.physd.amu.edu.pl 1/35 Informatyka kwantowa wykład z cyklu Zaproszenie do fizyki Ryszard Tanaś Umultowska 85, 61-614 Poznań mailto:tanas@kielich.amu.edu.pl Spis treści

Bardziej szczegółowo

Instrukcja Instalacji

Instrukcja Instalacji Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki Instrukcja Instalacji Aplikacja współfinansowana ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spis treści

Bardziej szczegółowo

System sprzedaŝy rezerwacji

System sprzedaŝy rezerwacji System sprzedaŝy rezerwacji 2009 2 Spis treści 1. O PROGRAMIE... 2 2. ZAKRES FUNKCJONALNY... 3 2.1 Funkcje standardowe... 3 2.2 Moduły dodatkowe... 4 2.3. AuroraCMS... 5 1. O PROGRAMIE Dziś prawie kaŝdy

Bardziej szczegółowo

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki. Literatura 1. D. Gajski, Principles of Digital Design, Prentice- Hall, 1997 2. C. Zieliński, Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003 3. G. de Micheli, Synteza i optymalizacja układów

Bardziej szczegółowo

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów Adresowanie obiektów Bit - stan pojedynczego sygnału - wejście lub wyjście dyskretne, bit pamięci Bajt - 8 bitów - wartość od -128 do +127 Słowo - 16 bitów - wartość od -32768 do 32767 -wejście lub wyjście

Bardziej szczegółowo

Nowoczesne technologie przetwarzania informacji

Nowoczesne technologie przetwarzania informacji Projekt Nowe metody nauczania w matematyce Nr POKL.09.04.00-14-133/11 Nowoczesne technologie przetwarzania informacji Mgr Maciej Cytowski (ICM UW) Lekcja 2: Podstawowe mechanizmy programowania równoległego

Bardziej szczegółowo

Koncepcja systemu bezpiecznej transmisji w paśmie krótkofalowym

Koncepcja systemu bezpiecznej transmisji w paśmie krótkofalowym Zakład Radiokomunikacji Morskiej w Gdańsku (Z-8) Koncepcja systemu bezpiecznej transmisji w paśmie krótkofalowym Etap III: Wersja finalna rozprawy doktorskiej Praca nr 08300010 Gdańsk, grudzień 2010 Koncepcja

Bardziej szczegółowo

Wykorzystanie protokołu SCEP do zarządzania certyfikatami cyfrowymi w systemie zabezpieczeń Check Point NGX

Wykorzystanie protokołu SCEP do zarządzania certyfikatami cyfrowymi w systemie zabezpieczeń Check Point NGX Wykorzystanie protokołu SCEP do zarządzania certyfikatami cyfrowymi w systemie zabezpieczeń Check Point NGX 1. Wstęp Protokół SCEP (Simple Certificate Enrollment Protocol) został zaprojektowany przez czołowego

Bardziej szczegółowo

Bezpieczne sieci TCP/IP

Bezpieczne sieci TCP/IP Bezpieczne sieci TCP/IP Marek Kozłowski Wydział Matematyki i Nauk Informacyjnych Politechnika Warszawska Warszawa 2014/2015 Plan wykładu 1 Wprowadzenie 2 Kryptografia symetryczna 3 Kryptografia asymetryczna

Bardziej szczegółowo

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ Opis działania raportów w ClearQuest Historia zmian Data Wersja Opis Autor 2008.08.26 1.0 Utworzenie dokumentu. Wersja bazowa dokumentu. 2009.12.11 1.1

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Bezpieczeństwo w sieciach bezprzewodowych WiFi. Krystian Baniak Seminarium Doktoranckie Październik 2006

Bezpieczeństwo w sieciach bezprzewodowych WiFi. Krystian Baniak Seminarium Doktoranckie Październik 2006 Bezpieczeństwo w sieciach bezprzewodowych WiFi Krystian Baniak Seminarium Doktoranckie Październik 2006 Wprowadzenie Agenda Problemy sieci bezprzewodowych WiFi Architektura rozwiązań WiFi Mechanizmy bezpieczeństwa

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

BeamYourScreen Bezpieczeństwo

BeamYourScreen Bezpieczeństwo BeamYourScreen Bezpieczeństwo Spis treści Informacje Ogólne 3 Bezpieczeństwo Treści 3 Bezpieczeństwo Interfejsu UŜytkownika 3 Bezpieczeństwo Infrastruktury 3 Opis 4 Aplikacja 4 Kompatybilność z Firewallami

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Mikołaja Kopernika Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin HENRYKOWSKI Nr albumu: 158069 Praca magisterska na kierunku Informatyka Archiwizacja

Bardziej szczegółowo

Chipset i magistrala Chipset Mostek północny (ang. Northbridge) Mostek południowy (ang. Southbridge) -

Chipset i magistrala Chipset Mostek północny (ang. Northbridge) Mostek południowy (ang. Southbridge) - Chipset i magistrala Chipset - Układ ten organizuje przepływ informacji pomiędzy poszczególnymi podzespołami jednostki centralnej. Idea chipsetu narodziła się jako potrzeba zintegrowania w jednym układzie

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Marek Masztalerz Katedra Rachunkowości Uniwersytet Ekonomiczny w Poznaniu METODY ROZLICZANIA KOSZTÓW DZIAŁALNOŚCI POMOCNICZNEJ. 1.

Marek Masztalerz Katedra Rachunkowości Uniwersytet Ekonomiczny w Poznaniu METODY ROZLICZANIA KOSZTÓW DZIAŁALNOŚCI POMOCNICZNEJ. 1. Marek Masztalerz Katedra Rachunkowości Uniwersytet Ekonomiczny w Poznaniu METODY ROZLICZANIA KOSZTÓW DZIAŁALNOŚCI POMOCNICZNEJ 1. Wstęp Celem artykułu jest prezentacja i porównanie róŝnych metod rozliczania

Bardziej szczegółowo

PR P E R Z E E Z N E T N A T C A JA C JA KO K RP R O P RA R C A Y C JN Y A JN ACTINA DATA MANAGER

PR P E R Z E E Z N E T N A T C A JA C JA KO K RP R O P RA R C A Y C JN Y A JN ACTINA DATA MANAGER PREZENTACJA KORPORACYJNA ACTINA DATA MANAGER Oprogramowanie Actina Data Manager (ADM) Podstawowe zagadnienia: 1. Zastosowanie 2. Grupa docelowych uŝytkowników 3. Bezpieczeństwo 4. Środowisko pracy 5. MoŜliwości

Bardziej szczegółowo

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Szczególne problemy projektowania aplikacji Jarosław Kuchta Miejsce projektowania w cyklu wytwarzania aplikacji SWS Analiza systemowa Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna

Bardziej szczegółowo

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia Budowa komputera Schemat funkcjonalny i podstawowe parametry Podstawowe pojęcia Pojęcia podstawowe PC personal computer (komputer osobisty) Kompatybilność to cecha systemów komputerowych, która umoŝliwia

Bardziej szczegółowo

Obliczenia Wysokiej Wydajności

Obliczenia Wysokiej Wydajności Obliczenia wysokiej wydajności 1 Wydajność obliczeń Wydajność jest (obok poprawności, niezawodności, bezpieczeństwa, ergonomiczności i łatwości stosowania i pielęgnacji) jedną z najważniejszych charakterystyk

Bardziej szczegółowo

Przewodnik użytkownika

Przewodnik użytkownika STOWARZYSZENIE PEMI Przewodnik użytkownika wstęp do podpisu elektronicznego kryptografia asymetryczna Stowarzyszenie PEMI Podpis elektroniczny Mobile Internet 2005 1. Dlaczego podpis elektroniczny? Podpis

Bardziej szczegółowo

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe

STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe STUDIA NIESTACJONARNE I STOPNIA Przedmioty kierunkowe Technologie informacyjne prof. dr hab. Zdzisław Szyjewski 1. Rola i zadania systemu operacyjnego 2. Zarządzanie pamięcią komputera 3. Zarządzanie danymi

Bardziej szczegółowo

Parametry systemów klucza publicznego

Parametry systemów klucza publicznego Parametry systemów klucza publicznego Andrzej Chmielowiec Instytut Podstawowych Problemów Techniki Polskiej Akademii Nauk 24 marca 2010 Algorytmy klucza publicznego Zastosowania algorytmów klucza publicznego

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Sieci bezprzewodowe z usługą zdalnego uwierzytelniania (RADIUS)

Sieci bezprzewodowe z usługą zdalnego uwierzytelniania (RADIUS) Sieci bezprzewodowe z usługą zdalnego uwierzytelniania (RADIUS) Paweł Zadrąg, Grzegorz Olszanowski Państwowa WyŜsza Szkoła Zawodowa w Chełmie Artykuł przedstawia metodę bezpiecznego i autoryzowanego nawiązywania

Bardziej szczegółowo