RC5 to algorytm szyfrowania wynaleziony przez RSA Data Security, Inc. Jest to algorytm symetryczny, co oznacza, że tego samego klucza używa się do zaszyfrowania i odszyfrowania wiadomości (odmiennie od kluczy publicznych i algorytmów asymetrycznych, które używają różnych kluczy do tych operacji).
Klucz jest łańcuchem liczb binarnych, które użyte wraz z fragmentem tekstu szyfrują, bądź rozszyfrowują go. Algorytmy symetryczne zazwyczaj są klasyfikowane poprzez rozmiar ich kluczy, lub tzw. długość klucza. Jeden z wczesnych algorytmów, nazwany DES (Data Encryption Standard - Standard Szyfrowania Danych), używa kluczy 56 bitowych, podobnie jak jeden z wcześniejszych wariantów RC5, jednak ten drugi uznawany jest za znacznie silniejszy.
Obecnie RSA prowadzi konkurs mający na celu odnalezienie właściwego klucza, aby rozszyfrować zakodowaną wiadomość. Jedyne co wiadomo o niej, to że jej początek powinien po odkodowaniu odpowiednim kluczem brzmieć: 'The unknown message is:'. Ideą konkursu jest wykazanie siły szyfrowania algorytmu. Obecny projekt (uruchomiony 3 grudnia 2002 - RC5-72) skupia ludzi próbujących rozkodować tekst zaszyfrowany RC5 o długości 72 bitów, czyli z grubsza mówiąc do sprawdzenia jest 2^72, co daje 4,722,366,482,869,645,213,696 możliwych kluczy.
Najszybszym dostępnym obecnie komputerom znalezienie odpowiedniego klucza zajęłoby setki tysięcy lat. Właśnie dlatego narodziła się idea stworzenia najpotężniejszego komputera na świecie złożonego z mniejszych, połączonych w całość. W tym właśnie miejscu pojawia się Distributed.Net, która doprowadziła do takiego stanu rzeczy. Organizacja ta stworzyła odpowiednie serwery dystrybuujące bloki kluczy komputerom na których uruchomiony jest program kliencki, również rozwijany przez Distributed. 'Zużyte' klucze odsyłane są do centralnego komputera, który oznacza je jako wypróbowane i wysyła klientom kolejne do analizy.
Ogólnie na pojedynczy projekt przeznaczone jest 10,000$, z czego następuje
podział:
- 6,000$ dla distributed.net
- 1,000$ dla osoby, która jako pierwsza znalazła klucz
- 1,000$ dla teamu zwycięzcy
- 2,000$ dla Free Software Foundation
Jeśli osoba, która jako pierwsza znalazła klucz, nie należała do żadnego
teamu, otrzymuje 2,000$.
Co przyciąga ludzi do uczestnictwa w projekcie? Na pewno jest to współzawodnictwo. Użytkownicy tworzą grupy (teamy), do których przynależność dodatkowo mobilizuje. Inni liczą, ponieważ lubią statystyki, tabelki i podobne temu rzeczy, których w RC5 jest cała masa. Jeszcze inni robią to po prostu dla zabawy.
Przy pierwszym uruchomieniu klienta na naszej Amidze ujrzymy okno preferencji. Poniżej postaram się opisać która opcja do czego służy (aby wybrać to co nas interesuje, wpisujemy numer opcji i naciskamy 'enter').
Poniżej prezentuję konfigurację bardzo szczegółowo (przykładowe wartości pól zaczerpnąłem z własnej). Niecierpliwych, albo tych którzy nie lubią się bawić w ustawianie wszystkiego, odsyłam na koniec tego punktu, gdzie znajdą przykład gotowej konfiguracji (jako wypisanie zawartości pliku .ini).
1. General client options - tutaj znajdują się niezbędne ustawienia do poprawnej pracy klienta.
2. Buffer and Buffer Update Options - opcje dotyczące buforów (czyli
przechowywanych na dysku lub w pamięci przeliczanych bloków) oraz ich
uaktualniania.
3. Performance related options - opcje związane z wydajnością klienta.
4. Logging Options - opcje dziennika.
9. Discard settings and exit - wyjście bez zapisania konfiguracji.
0. Save settings and exit - wyjście z zapisaniem konfiguracji.
Przykładowe ustawienia pliku .ini:
[parameters] | |
id=ajus79@box43.pl | - adres e-mail na który przeliczamy bloki |
[buffers] | |
checkpoint-filename=chkpoint.r72 | - nazwa pliku służącego do zapisywania informacji o postępie w pracach klienta |
[misc] | |
project-priority=RC5-72,OGR=0 | - w jakich projektach mamy zamiar uczestniczyć? (wartość "=0" oznacza, że danym projektem się nie zajmujemy) |
[display] | |
progress-indicator=relative | - rodzaj wskaźnika postępu (patrz punkt 1.10) konfiguracji) |
[networking] | |
disabled=yes | - wartość "yes" w przypadku aktualizowania buforów drogą mailową (punkt 4.3. niniejszego artykułu), wartość "no" w przypadku aktualizacji automatycznych (punkt 4.1. i 4.2.) |
[rc5-72] | |
core=-1 | - rodzaj algorytmu przeliczającego ("-1" - wybór automatyczny) |
Aby dołączyć do projektu i tym samym móc oglądać swoje statystyki na
stronie distributed.net, należy pobrać z serwera co najmniej 1 blok,
przeliczyć go i odesłać z powrotem. W jaki sposób tego dokonać?
Są 3 powszechnie stosowane metody, przy wykorzystaniu których zmienia się
nieznacznie konfiguracja klienta:
1. Wykorzystując stałe połączenie z internetem,
2. Wykorzystując połączenie modemowe,
3. Za pomocą e-maili.
Wykorzystując stałe połączenie z internetem
Jeżeli nie zmienialiśmy nic w pierwotnej konfiguracji klienta w punkcie
"2) Buffer and Buffer Update Options" (należy jednak na pewno podać swój
adres e-mail na który będziemy przeliczać bloki - punkt 1.1) konfiguracji),
spróbuje on automatycznie połączyć się z odpowiednim serwerem, pobrać
bloki do przeliczenia, i po skończonej pracy odesłać je z powrotem
(pobierane są w tym momencie od razu następne).
Nie musimy się tutaj o nic martwić - wszystko przebiega automatycznie.
Wykorzystując połączenie modemowe
Tutaj sytuacja jest bardzo podobna do opisanej w punkcie wyżej. Należy
jednak pamiętać, że lepiej jest wtedy przełączyć opcję "Connection Mode"
z 'Online Always' na 'Modem Dialup Lurk', lub 'Modem Dialup Lurk-Only'.
'Modem Dialup Lurk' pozwoli klientowi na samoczynne połączenie
z internetem w razie potrzeby, natomiast 'Modem Dialup Lurk-Only' zmusi
go do sprawdzenia najpierw czy jesteśmy połączeni, i dopiero wtedy
wysłania i pobrania bloków. Druga możliwość jest przydatna dla tych osób,
które nie chcą, aby program łączył się z serwerem bez ich wiedzy.
Za pomocą e-maili.
Przydatna dla osób nie mających możliwości wykorzystania powyższych dwóch
metod lub chcą mieć całkowitą kontrolę nad ilością przeliczanych bloków
i czasem ich wysyłania/pobierania.
Postępujemy według schematu:
Po ujrzeniu własnych statystyk, przechodzimy na stronę projektu i wpisujemy w wyszukiwarkę po prawej stronie "The Amiga RC5 Team effort". Po wyświetleniu statystyk, klikamy na odnośnik "Join our team" lub na samym dole na "I want to join this team!" i niebawem możemy cieszyć się członkostwem.
28 stycznia 1997
Rozpoczyna się RC5-32/12/7 (56-bit) Secret Key Challenge.
Marzec 1997
Organizacja, która w przyszłości stanie się distributed.net, rozpoczyna
w kooperacji z genx.net prace nad rozkodowaniem RC5. Pierwszego dnia
zostaje przeliczonych 9128 bloków, z prędkością 28,36 milionów kluczy na
sekundę (Mkeys/s). Przewidywany czas do całkowitego złamania kodu przy
obecnym tempie: 80,6 roku.
18 marca 1997
serwer genx.net ostatecznie zaprzestaje działalności
24 marca 1997
Pierwsza sieć pięciu serwerów 'distributed.net', przydzielających klucze
i śledzących już wykonaną pracę, zostaje udostępniona dla ogółu.
Kwiecień 1997
Kilkoro z osób nadzorujących pracę serwerów rozpoczyna tworzenie własnej
bazy danych statystyk. Nie są dostępne statystyki globalne.
17 kwietnia 1997
Dzienne tempo przeliczania RC5-56 po raz pierwszy przekracza 100 Mk/s.
Obecny status projektu: wykonano: 0,1%, przewidywany czas do całkowitego
złamania kodu przy obecnym tempie: 22,1 roku.
8 maja 1997
domena distributed.net zostaje zarejestrowana w InterNIC
i rozpoczyna działalność. Dostępne są ogólne statystyki projektu.
18 maja 1997
Status projektu RC5-56: wykonano: 1,03% ze średnią prędkością 370,25 Mk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 6,1 roku.
8 czerwca 1997
Status projektu RC5-56: wykonano: 2,03% ze średnią prędkością 420,35 Mk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 5,3 roku.
17 czerwca 1997
DES I zostaje złamany przez Rocke Verser's Deschall effort.
19 czerwca 1997
Tempo przeliczania RC5-56 po raz pierwszy przekracza 500 Mk/s.
25 czerwca 1997
Dzienne tempo przeliczania RC5-56 przekracza 1 Gk/s. Status projektu RC5-56:
wykonano: 3,25%, przewidywany czas całkowitego złamania kodu przy obecnym
tempie: 2,1 roku.
14 lipca 1997
Status projektu RC5-56: wykonano: 5,13% ze średnią prędkością 1261 Mk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 1,7 roku.
23 lipca 1997
Dzienne tempo przeliczania RC5-56 po raz pierwszy przekracza 2 Gk/s, status
projektu: 6.97% ogólnej liczby kluczy zostało sprawdzone.
3 sierpnia 1997
Status projektu RC5-56: wykonano: 10,06% ze średnią prędkością 2,477 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie:
10 miesięcy.
16 sierpnia 1997
Przekroczono liczbę 3 Gigakluczy na sekundę jako średnie dzienne tempo
przeliczania RC5-56, wykonano 14.13%.
21 września 1997
Status projektu RC5-56: wykonano: 30,29% ze średnią prędkością 4,6 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 125 dni.
22 października 1997
Zakończono RC5-56. Właściwy klucz znaleziono po 212 dniach pracy.
Sprawdzono 47.03% ogólnej liczby kluczy ze średnią prędkością 5.3 Gk/s.
Przewidywany czas sprawdzenia całkowitej liczby kluczy w tym tempie: 83 dni.
Rozpoczęto RC5-64. Pierwszego dnia sprawdzono 152779 bloków ze średnią
prędkością 475 Mk/s. Przewidywany czas całkowitego złamania kodu w tym
tempie: 1235 lat.
13 listopada 1997
Status projektu RC5-64: wykonano: 0,017% ze średnią prędkością 5 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 104,5 roku.
16 listopada 1997
Baza danych statystyk została przeniesiona na Best.net.
28 listopada 1997
Status projektu RC5-64: wykonano: 0,10% ze średnią prędkością 8,4 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 69,5 roku.
1 grudnia 1997
Project Gutenberg otrzymuje 8000 dolarów nagrody za odnalezienie właściwego
klucza w projekcie RC5-56.
4 grudnia 1997
Średnie dzienne tempo przeliczania RC5-64 przekracza 10 Gk/s, status
projektu: wykonano 0,127%, przewidywany czas całkowitego złamania kodu przy
obecnym tempie: 57 lat.
18 grudnia 1997
Distributed.net ogłasza chęć uczestniczenia w konkursie DES-II-1.
23 lutego 1998
Zakończono DES-II-1. Sprawdzono 88.4% ogólnej liczby kluczy ze średnią
dzienną prędkością 28.1 Gk/s.
5 marca 1998
Status projektu RC5-64: wykonano: 0,50% ze średnią prędkością 11,7 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 49,9 roku.
19 maja 1998
Status projektu RC5-64: wykonano: 1,00% ze średnią prędkością 17,0 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 34,1 roku.
10 lipca 1998
Został sprawdzony miliardowy blok RC5-64.
11 lipca 1998
Rozpoczyna działalność nowy serwer rozdzielający klucze (keymaster). Jest
to maszyna wyposażona w procesor K6-300 MHz, 128 MB SDRAM, dyski
4,5 GB UWSCSI, 1,2 GB UWSCSI, 6,4 GB IDE, działająca pod kontrolą
FreeBSD 2.2.6-STABLE.
Serwer uruchomił się i przydzielał klucze bez zawieszenia się, lub potrzeby
restartu, przez prawie 200 dni.
13 lipca 1998
Rozpoczyna się DES-II-2.
17 lipca 1998
Koniec DES-II-2. Właściwy klucz zostaje znaleziony przez Electronic
Frontier Foundation, używającą sprzętu wartego 250 tysięcy dolarów.
29 lipca 1998
Rozpoczyna się konkurs na nowe logo distributed.net.
3 sierpnia 1998
Status projektu RC5-64: wykonano: 1,78% ze średnią prędkością 30 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 18,5 roku.
9 września 1998
Statystyki zaczęły być dostępne przez dedykowane zasoby za pośrednictwem
http.
14 września 1998
Oficjalnie ogłaszamy OGR jako nasze następne współzawodnictwo.
Rayden242 został zwycięzcą konkursu na nowe logo.
30 listopada 1998
Średnie dzienne tempo przeliczania RC5-64 przekracza 50 Gk/s.
Status projektu: wykonano: 1,78%, przewidywany czas całkowitego złamania
kodu przy obecnym tempie: 11,08 roku.
8 stycznia 1999
Serwer Keymaster działa bez ustanku ponad pół roku, jednak zostaje wyłączony
z powodu wymiany dysku do zapisu dziennika (1 GB UWCSCI -> 9 GB UWSCSI)
i dodania kolejnych 128 MB pamięci.
18 stycznia 1999
Laboratoria RSA ogłaszają trzecią edycję konkursu DES (DES Challenge III).
19 stycznia 1999
Distributed.net i EFF rozwiązują konkurs DES-III w rekordowym czasie
22 godzin, 15 minut, 4 sekund.
15 kwietnia 1999
Został sprawdzony 5 miliardowy blok.
6 czerwca 1999
Status projektu RC5-64: wykonano: 10,03% ze średnią prędkością 73,92 Gk/s,
przewidywany czas całkowitego złamania kodu przy obecnym tempie: 7,13 roku.
27 września 1999
Dzienne średnie tempo przeliczania RC5-64 przekracza 100 Gk/s,
Status projektu: wykonano: 13,20%, przewidywany czas całkowitego złamania
kodu przy obecnym tempie: 4,93 roku.
27 października 1999
Został sprawdzony 10 miliardowy blok.
17 listopada 1999
Rozpoczęto konkurs CSC. Pierwszego dnia przeliczono 382650 bloków, czyli
0,14% ogólnej liczby kluczy, ze średnim tempem 1,2 Gk/s.
27 listopada 1999
Dzienne tempo przeliczania CSC przekracza 10 Gk/s, status projektu:
wykonano 9,75%, przewidywany czas do przeliczenia wszystkich kluczy: 75 dni.
5 grudnia 1999
Status projektu CSC: wykonano: 21,53% ze średnią prędkością 12,8 Gk/s,
przewidywany czas do przeliczenia wszystkich kluczy: 51 dni.
15 stycznia 2000
Zakończono konkurs CSC.
15 lutego 2000
Rozpoczęto konkurs OGR-24, jednak zostaje on później zawieszony z powodu
nieprzewidzianych problemów.
28 maja 2000
W RC5-64 przeliczono 25% wszystkich kluczy!
13 lipca 2000
Ponownie uruchomiono OGR-24.
1 sierpnia 2000
Pierwszy przebieg OGR-24 został zakończony. Rozpoczęto dystrybucję OGR-25.
Drugi, weryfikacyjny przebieg OGR-24 przeprowadzany jest stopniowo
równolegle z pierwszym przebiegiem OGR-25.
27 listopada 2000
Distributed.net ogłasza partnerstwo z United Devices.
1 grudnia 2001
Projekt RC5-64 w distributed.net trwa już od 1500 dni. W tym czasie
63% ogólnej liczby kluczy zostało sprawdzone przez ponad 310 tysięcy
uczestniczących adresów e-mail.
14 lipca 2002
Po 1757 dniach poszukiwań odnaleziono klucz numer 0x63DE7DC154F4D039, który
okazał się być zwycięzcą w konkursie RSA RC5-64. Właściwy klucz został
zwrócony przez komputer z Japonii.
3 grudnia 2002
Oficjalnie rozpoczęto RC5-72.
Nowa wersja klienta (v2.9001) jest dostępna.