Linki:
ASCII,
Advanced Encryption Standard,
Algorytm,
Algorytm symetryczny,
Atak z szyfrogramem,
Atak ze znanym tekstem jawnym,
Brute force,
Cyfra,
Data Encryption Standard,
Gra komputerowa,
HTML,
Implementacja (informatyka),
Język angielski,
Klucz (kryptografia),
Komputer,
Kryptologia,
Litera,
MD5,
Program komputerowy,
Szyfr asymetryczny,
Szyfr z kluczem jednorazowym,
Szyfrogram (kryptografia),
Tekst jawny,
XOR,
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.