Tęczowe Tablice (Rainbow Tables) – wstęp, algorytm, tutorial

Mamy poniżej kilka przykładowych haseł oraz ich hashów MD5:

MD5( „1729” ) = 25e2a30f44898b9f3e978b1786dcd85c
MD5( „2523” ) = a6d259bfbfa2062843ef543e21d7ec8e
MD5( „6259” ) = 99503bdd3c5a4c4671ada72d6fd81433
MD5( „9950” ) = 09a630e07af043e4cae879dd60db1cac
MD5( „0963” ) = d1cbdbc9cacee6c8b133c7a92a83bcca

Czytaj całość...

Programowanie GPU: Kurs CUDA – Wprowadzenie

Procesory graficzne coraz odważniej wkraczają w świat programowania i przetwarzania strumieniowego. Przetwarzanie strumieniowe to technika pozwalająca na wykonywanie tego samego kodu równocześnie na różnych danych. Ma to zastosowanie przy obliczeniach numerycznych, gdzie np. 500 jednostek strumieniowych jest zaprzęgniętych do przemnożenia jednej macierzy przez drugą. Każda jednostka liczy odrębny fragment macierzy wynikowej i dzięki temu obliczenia stają się wielokrotnie szybsze. Taki typ przetwarzania ma zastosowanie w sztucznej inteligencji, przetwarzaniu sygnałów i obrazów, czy symulacjach naukowych. Jak narazie nie jest to alternatywa do zwykłych CPU, a jedynie pomoc przy niektórych obliczeniach. Programy sekwencyjne nadal są wykonywane na CPU, gdyż algorytmy predykcyjne i wyższe taktowanie dają CPU przewagę w obszarze obliczeń sekwencyjnych.

Czytaj całość...

Różniczkowanie numeryczne, czyli pochodna dyskretna

Nie jest błędem chyba powiedzieć, że pochodna to najważniejsze osiągnięcie analizy matematycznej – jeżeli nie całej matematyki w ogóle. W informatyce też ciężko przecenić ten aparat matematyczny. Jest on podstawą w takich dziedzinach komputerowych jak sztuczna inteligencja, przetwarzanie grafiki i inne. Najkrócej mówiąc, pochodna mówi nam o tym, jak gwałtownie zmienia się funkcja w danym jej miejscu – duża pochodna to szybka zmiana i na odwrót. W informatyce podchodzimy do różniczkowania inaczej niż w matematyce, gdyż mamy dyskretną przestrzeń. Poniżej pokazane są najpopularniejsze wzory na dyskretną pochodną.

Czytaj całość...

Zasada działania CDMA

Rozwinięcie skrótu CDMA to Code Division Multiple Access. W odróżnieniu od FDMA (gdzie mamy podział na częstotliwości) i TDMA (gdzie mamy naprzemienność czasową) w CDMA wszyscy nadają naraz i to w pełnym spektrum częstotliwości. Takie rozwiązanie jest stosowane współcześnie – w telefonii 3G. Jednak, ten artykuł nie jest o telefonii – CDMA może być przydatne programistom, gdyż technika ta pozwala na pewien specyficzny sposób przesyłania sobie danych. Dowolną ilość N komunikatów o długości L możemy sobie zsumować (dosłownie zsumować operacją arytmetycznego dodawania) i przesłać do odbiorców tak jakby to był jeden komunikat (długość L się nie zmiania). Każdy odbiorca przy pomocy swojego kodu odczytuje z takiej przesyłki to co miało do niego dotrzeć. Zaskakujące jest to, że w każdym momencie transmisji, kolejny nadawca może dodać do transmitowanego komunikatu swoje dane niezaburzając komunikacji i nie wydłużając przesyłki, a związany z nim odbiorca sobie odczyta przeznaczony dla niego komuniakt.

Czytaj całość...