Atak brute force

Algorytm siłowy, algorytm brute force (ang. "brutalna siła" lub "brutalny atak") – określenie algorytmu, który opiera się na sukcesywnym sprawdzeniu wszystkich możliwych kombinacji w poszukiwaniu rozwiązania problemu, zamiast skupiać się na jego szczegółowej analizie.

Algorytm iteracyjny - algorytm, który uzyskuje wynik przez powtarzanie danej operacji określoną ilość razy. Niektóre problemy można rozwiązać zarówno za pomocą algorytmu iteracyjnego, jak i rekurencyjnego, jak np. problem wież Hanoi.

Algorytm online to szczególny rodzaj algorytmu, który nie zna danych wejściowych od początku w całości, lecz otrzymuje je w partiach (turach). Po każdej turze algorytm musi podać częściową odpowiedź.

Algorytm probabilistyczny albo randomizowany to algorytm który do swojego działania używa losowości. W praktyce oznacza to że implementacja takiego algorytmu korzysta przy obliczeniach z generatora liczb losowych. Główną zaletą algorytmów probabilistycznych w porównaniu z deterministycznymi jest działanie zawsze w "średnim przypadku", dzięki czemu złośliwe dane wejściowe nie wydłużają jego działania. Formalnie efektywność takiego algorytmu jest zmienną losową określoną na przestrzeni możliwych losowych ciągów. Wartość oczekiwana takiej zmiennej nazywana jest oczekiwanym czasem działania. Przypadek pesymistyczny jest zwykle na tyle mało prawdopodobny, że można go pominąć w analizie.

W pełni wielomianowy schemat aproksymacji (ang. Fully polynomial-time approximation scheme, w skrócie FPTAS) to algorytm aproksymacyjny, który pozwala na uzyskanie dowolnie dobrego rozwiązania przybliżonego danego problemu optymalizacyjnego, i którego złożoność czasowa jest wielomianowa względem rozmiaru instancji rozwiązywanego problemu i rośnie wielomianowo w miarę wzrostu żądanej dokładności.

Procedura (algorytm) (Tabu search - TS) stosowana do rozwiązywania problemów optymalizacyjnych. Wykorzystywana do otrzymywania rozwiązań optymalnych lub niewiele różniących się od niego dla problemów z różnych dziedzin (np. planowanie, planowanie zadań). Podstawową ideą algorytmu jest przeszukiwanie przestrzeni, stworzonej ze wszystkich możliwych rozwiązań, za pomocą sekwencji ruchów. W sekwencji ruchów istnieją ruchy niedozwolone, ruchy tabu. Algorytm unika oscylacji wokół optimum lokalnego dzięki przechowywaniu informacji o sprawdzonych już rozwiązaniach w postaci listy tabu (TL). Twórcą algorytmu jest Fred Glover.

Problemem stopu nazywamy sytuację, gdy dla danego algorytmu należy stwierdzić, czy program realizujący dany algorytm zatrzyma się. Pytanie może odnosić się albo do konkretnych danych wejściowych, albo do wszystkich możliwych danych. Jeśli program zatrzymuje się dla wszystkich danych, to mówimy, że ma własność stopu.

Atak słownikowy (ang. "dictionary attack") – technika używana do siłowego odgadywania kluczy kryptograficznych i haseł do systemów, w swoim działaniu zbliżona do metody brute force. Główna różnica między stosowanymi podejściami polega na sposobie dobierania haseł, które podlegają sukcesywnemu testowaniu. O ile w czystym ataku brute force bada się kolejno wszystkie dopuszczalne kombinacje klucza w celu odnalezienia właściwego wzoru, o tyle ataki słownikowe bazują tylko na sprawdzeniu niewielkiego podzbioru możliwych wartości, co do którego wiadomo, że jest niewspółmiernie często stosowany przy doborze haseł – na przykład listy słów występujących w danym języku, albo historycznej bazy popularnych haseł.

NASZ (Narodowy Algorytm Szyfrujący) – algorytm szyfrujący o niejawnej specyfikacji, stosowany do ochrony informacji niejawnych stanowiących tajemnicę służbową, oznaczonych klauzulą "poufne". Obecnie algorytm jest implementowany wyłącznie w sprzętowych układach szyfrujących urządzeń polskich producentów. Wersje tych urządzeń zawierające implementacje algorytmu NASZ przygotowywane są we współpracy z Departamentem Bezpieczeństwa Teleinformatycznego Agencji Bezpieczeństwa Wewnętrznego, który jest właścicielem algorytmu.

Atak słownikowy (ang. "dictionary attack") - technika używana do siłowego odgadywania kluczy kryptograficznych i haseł do systemów, w swoim działaniu zbliżona do metody brute force. Główna różnica między stosowanymi podejściami polega na sposobie dobierania haseł, które podlegają sukcesywnemu testowaniu. O ile w czystym ataku brute force bada się kolejno wszystkie dopuszczalne kombinacje klucza w celu odnalezienia właściwego wzoru, o tyle ataki słownikowe bazują tylko na sprawdzeniu niewielkiego podzbioru możliwych wartości, co do którego wiadomo, że jest niewspółmiernie często stosowany przy doborze haseł - na przykład listy słów występujących w danym języku, albo historycznej bazy popularnych haseł.

Algorytm iteracyjny - algorytm, który uzyskuje wynik przez powtarzanie danej operacji określoną ilość razy. Niektóre problemy można rozwiązać zarówno za pomocą algorytmu iteracyjnego, jak i rekurencyjnego, jak np. problem wież Hanoi.

Wielomianowy schemat aproksymacji (ang. Polynomial-time approximation scheme, w skrócie PTAS) to algorytm aproksymacyjny, który pozwala na uzyskanie dowolnie dobrego rozwiązania przybliżonego danego problemu optymalizacyjnego, i którego złożoność czasowa jest wielomianowa dla każdej żądanej dokładności.

NASZ (Narodowy Algorytm Szyfrujący) – algorytm szyfrujący o niejawnej specyfikacji, stosowany do ochrony informacji niejawnych stanowiących tajemnicę służbową, oznaczonych klauzulą "poufne". Obecnie algorytm jest implementowany wyłącznie w sprzętowych układach szyfrujących urządzeń polskich producentów. Wersje tych urządzeń zawierające implementacje algorytmu NASZ przygotowywane są we współpracy z Departamentem Bezpieczeństwa Teleinformatycznego Agencji Bezpieczeństwa Wewnętrznego, który jest właścicielem algorytmu.

Brute force and ignorance, BFI (pol. "brutalna siła i ignorancja") - popularne określenie techniki programowania używane przez producentów oprogramowania. Sposób kodowania nie zwracający uwagi na to, czy te same problemy zostały już wcześniej rozwiązane w bardziej elegancki sposób. Metoda typowa dla programistów przywiązanych do dogmatycznych metod programowania, charakterytyczna dla "larwalnego" etapu kodowania, z którego wielu programistów nigdy nie wyrasta.

Algorytm Schoofa-Elkiesa-Atkina (algorytm SEA) - wydajny algorytm służący do obliczania ilości punktów na krzywej eliptycznej nad ciałem skończonym. Jest udoskonaleniem algorytmu Schoofa stworzonym przez Noama Elkiesa i A.O.L. Atkina i ciągle rozwijanym przez wielu matematyków.

Metaheurystyka - ogólny algorytm (heurystyka) do rozwiązywania problemów obliczeniowych. Algorytm metaheurystyczny można używać do rozwiązywania dowolnego problemu, który można opisać za pomocą pewnych definiowaych przez ten algorytm pojęć. Najczęściej wykorzystywany jest jednak do rozwiązywania problemów optymalizacyjnych. Określenie powstało z połączenia słowa "meta" ("nad", tutaj w znaczeniu "wyższego poziomu") oraz słowa "heurystyka" (gr. heuriskein - szukać), co wynika z faktu, że algorytmy tego typu nie rozwiązują bezpośrednio żadnego problemu, a jedynie podają sposób na utworzenie odpowiedniego algorytmu. Termin "metaheurystyka" po raz pierwszy został użyty przez Freda Glovera w 1986 roku.

Abstrakcją w programowaniu nazywamy pewnego rodzaju uproszczenie rozpatrywanego problemu, polegające na ograniczeniu zakresu cech manipulowanych obiektów wyłącznie do cech kluczowych dla algorytmu, a jednocześnie niezależnych od implementacji. W tym sensie abstrakcja jest odmianą formalizmu matematycznego. Cel stosowania abstrakcji jest dwojaki: ułatwienie rozwiązania problemu i zwiększenie jego ogólności.



       na podstawie Wikipedii, otwartej encyklopedii : licencje: GFDL, oraz CC-BY-SA 3.0 + autorzy, historia
edycja