instrukcja informatyczna KZOM
Transkrypt
instrukcja informatyczna KZOM
Krótki kurs obsługi informatycznej KZOM Michał Pilipczuk 13 października 2009 1 Kodowanie gpg Ze wzgl˛edu na rosnac ˛ a˛ potrzeb˛e dyskusji na forum internetowym ponad rok temu został wprowadzony system kodowania poczty używany przez Komisj˛e Zadaniowa.˛ Poczta ta służy do: • dystrybucji banku zadań, • wymieniania si˛e rozwiazaniami, ˛ uwagami, ocenami dotyczacymi ˛ zadań, • dystrybucji sprawozdań z posiedzeń KZ oraz innych materiałów z tym zwiazanych. ˛ 1.1 Podstawy protokołu kryptograficznego Do kodowania używamy powszechnie dost˛epnego standardu gpg, opierajacego ˛ si˛e na kodowaniu RSA. Klient tego programu przechowuje baz˛e kluczy, którymi może kodować wiadomości. Klucze dziela˛ si˛e na publiczne (public) oraz prywatne (secret). Każda osoba generuje sobie par˛e kluczy: publiczny i prywatny. Za pomoca˛ klucza publicznego można zakodować wiadomość, lecz może ona zostać odkodowana jedynie za pomoca˛ klucza prywatnego. Dlatego też klucz publiczny zaraz po wygenerowaniu powinniśmy udost˛epnić szeroko poj˛etemu światu, zaś klucz prywatny trzymać tylko u siebie na komputerze. Komisja zadaniowa zdecydowała si˛e na nieco inna˛ architektur˛e. Istnieje jedna para kluczy Komisji Zadaniowej, używana przez wszystkich jej członków. W celu przesłania jakiejś wiadomości do KZ, dana osoba koduje ja˛ kluczem publicznym KZ, przesyła wszystkim, po czym wszyscy ja˛ rozkodowuja˛ kluczem prywatnym. Pozwala to na oszcz˛edzenie sobie kodowania wiadomości n różnymi kodami. 1.2 Program Zdecydowanie zalecane jest używanie do kodowania i rozkodowywania systemu operacyjnego Linux. Program gpg jest dost˛epny niemal w każdej dystrybucji. Jego zainstalowanie można sprawdzić komenda˛ konsoli gpg --version. Klient windowsowy istnieje, można go ściagn ˛ ać ˛ ze strony http://www.gnupg.org/download/, jednakże nie należy si˛e do niego przyzwyczajać. Ze wzgl˛edów bezpieczeństwa b˛ed˛e kopać każdego, kto używa klienta windowsowego, aż do momentu, kiedy zainstaluje sobie Linuxa. Klient windowsowy działa podobnie jak linuxowy, tzn. też w linii poleceń. W celu używania go wchodzimy w tryb MS Dos (start→akcesoria→tryb MS Dos), wchodzimy do katalogu w którym zainstalował si˛e klient (prawdopodobnie komenda˛ cd c:\Program\ Files\GNU\GnuPG) i tam używamy identycznych komend jak w przypadku Linuxa. Dlatego dalsza instrukcja b˛edzie zakładała, że użytkownik dysponuje gpg w środowisku linuxowym (w wersji 1.4.9). 1.3 Generowanie klucza Pierwsza˛ rzecza˛ przy uczeniu si˛e obsługi gpg powinna być generacja własnego klucza. Robimy to za pomoca˛ komendy gpg --gen-key Nast˛epnie odpowiadamy na szereg pytań. Do celów KZ potrzebujemy: • par˛e kluczy dla algorytmów DSA i ElGamala, • 2048-bitowy klucz, • klucz bez upływu ważności. 2 Potem wpisujemy swoje dane. Sa˛ to kolejno: • Imi˛e i nazwisko (np. Jan Kowalski), • Adres e-mail (np. [email protected]), • Komentarz (np. „dla komisji”, ale może też być pusty) Potem program prosi nas o podanie i powtórzenie hasła do klucza prywatnego. Jest to dodatkowe zabezpieczenie: za każdym razem, gdy b˛edziemy chcieli rozkodować wiadomość posiadanym kluczem prywatnym, b˛edziemy musieli podać do niego hasło. Na końcu jesteśmy poproszeni o puszczenie wodzów swojej fantazji wobec myszki i klawiatury, gdyż program potrzebuje próbki entropii do stworzenia losowego klucza. Po zakończeniu para kluczy zostaje umieszczona w bazie. Klucze publiczne umieszczone w bazie można zobaczyć komenda: ˛ gpg --list-keys Klucze prywatne komenda: ˛ gpg --list-secret-keys Nast˛epnie należy zrzucić klucz publiczny do pliku w celu udost˛epnienia światu (np. umieszczenia na swojej stronie internetowej). Robimy to za pomoca˛ komendy: gpg --armor -o jan_kowalski_gpg.asc --export Kowalski gdzie: • magiczna formuła -o jan_kowalski_gpg.asc mówi, do jakiego pliku ma si˛e zapisać klucz, • magiczna formuła --export Kowalski mówi, że eksportujmy klucz Kowalskiego (gpg samo si˛e domyśli o który klucz chodzi, jeśli podamy imi˛e lub nazwisko) • magiczna formuła --armor mówi, że plik ma być zakodowany alfanumerycznie. Po ludzku, że maja˛ być tylko literki i cyferki zamiast krzaków. Ten klucz możemy wysłać kumplom, mamie, tacie, dzieciom, wnukom, dziekanowi oraz prezesowi PTM. Dzi˛eki niemu Ci, do których go wyślemy, b˛eda˛ mogli zakodować wiadomość, która˛ tylko my b˛edziemy mogli przeczytać. Jeśli jakiś znajomy prześle nam swój klucz publiczny w pliku np. karol_wisniewski_gpg.asc, to możemy go dodać do bazy komenda: ˛ gpg --import karol_wisniewski_gpg.asc gdzie --import odpowiada za importowanie klucza. Mój klucz można sobie ściagn ˛ ać ˛ z: http://students.mimuw.edu.pl/~mp248287/michal_pilipczuk_gpg.asc 1.4 Kodowanie Załóżmy, że mamy do dyspozycji plik bank.pdf, który chcemy zakodować i rozesłać. W tym celu wykonujemy komend˛e: gpg --armor --encrypt -r Komisja bank.pdf 3 przy czym odpowiadamy t na wszystkie pytania i watpliwości ˛ programu. W tym napisie: • magiczna formuła --encrypt mówi, że chcemy zakodowywać, • magiczna formuła -r Komisja mówi, którego klucza (po imieniu lub nazwisku) chcemy używać (r = respondent), • magiczna formuła --armor mówi, że plik ma być zakodowany alfanumerycznie. W ten sposób automatycznie utworzy si˛e zakodowany plik bank.pdf.asc. Jeśli chcielibyśmy plik ten od razu inaczej nazwać, np. inaczej.asc, to powinniśmy użyć komendy: gpg -o inaczej.asc --armor --encrypt -r Komisja bank.pdf gdzie -o inaczej.asc pokazuje, jak ma si˛e nazywać wynikowy plik. Zakodowany plik już można przesyłać poczta˛ elektroniczna˛ do wszystkich respondentów. B˛eda˛ mogli go odczytać, o ile posiadaja˛ sparowany z nim klucz prywatny. Uwaga! Przed wysłaniem każdego listu do KZ należy trzy razy upewnić si˛e, że załaczniki ˛ sa˛ zakodowane. 1.5 Rozkodowywanie Załóżmy, że dostaliśmy poczta˛ zakodowany plik bank.pdf.asc. Rozkodowujemy go komenda: ˛ gpg -o bank.pdf --decrypt bank.pdf.asc gdzie: • magiczna formuła --decrypt mówi, że chcemy rozkodowywać, • magiczna formuła -o bank.pdf mówi, do jakiego pliku mamy zapisywać rozkodowana˛ wiadomość. Program na podstawie wiadomości sam sprawdzi, czy posiadamy odpowiedni klucz prywatny i poprosi nas o jego hasło. Ponieważ standardowo dekodowanie odbywa si˛e na stdout, rówoważnie można też użyć: gpg --decrypt bank.pdf.asc >bank.pdf 1.6 Jak dostać klucz KZ? W tym celu należy: 1. wygenerować sobie par˛e kluczy, 2. wysłać mi ([email protected]) swój klucz publiczny, 3. odebrać dwa zakodowane swoim kluczem publicznym pliki: • jeden z kluczem prywatnym komisji, • drugi z hasłem do tego klucza, 4. za pomoca˛ gpg --import zaimportować do swojej bazy klucz prywatny KZ. Komisja Zadaniowa ma na imi˛e Komisja, a na nazwisko Zadaniowa. 4 1.7 Ściagawka ˛ użytecznych komend gpg --armor --encrypt -r Adresat bank.pdf gpg gpg gpg gpg gpg gpg -o bank.pdf --decrypt bank.pdf.asc --gen-key --list-keys --list-secret-keys --import plik.asc -o kowalski.asc --export Kowalski gpg -o wszystkie.asc --export gpg --help 2 Zakodowanie bank.pdf dla Adresata. Rozkodowanie bank.pdf.asc. Stworzenie nowej pary kluczy. Wylistowanie kluczy publicznych. Wylistowanie kluczy prywatnych. Dołaczenie ˛ kluczy z plik.asc. Zapisanie klucza publicznego Kowalskiego w kowalski.asc. Zapisanie wszystkich kluczy publicznych w wszystkie.asc. Wypisanie pomocy. Bank zadań Każdy członek KZOM w pewnym momencie b˛edzie dysponował bankiem zadań w formie pliku w LATEX-u. Plik ten posiada kilka ciekawych usprawnień, o których warto wiedzieć. 2.1 Polskie litery Plik jest kodowany przy pomocy standardu cp1250. LATEXpowinien złapać takie właśnie kodowanie polskich znaków, jednakże sugerowane jest używanie prefiksowania, czyli pisania polskich liter z backslashem. 2.2 Działy W obecnym banku zadania sa˛ podzielone na 4 działy: A (analiza i algebra), N (teoria liczb), C (kombinatoryka) oraz G (geometria). Działy te powinny obejmować: • A: – nierówności, – równania funkcyjne, – ciagi, ˛ – wielomiany, – równania, – układy równań, • N: – teoria liczb, – kombinatoryczna teoria liczb, • C: – kombinatoryka, • G: – planimetria, – stereometria, – geometria kombinatoryczna. 5 Należy zwrócić uwag˛e, na umiejscowienie geometriii kombinatorycznej oraz kombinatorycznej teorii liczb. Przez zadania z tych dziedzin rozumie si˛e problemy w istotny sposób używajace ˛ twierdzeń, faktów oraz intuicji zwiazanych ˛ z geometria˛ lub też teoria˛ liczb. 2.3 Środowisko zadania Każde zadanie w banku jest zapisane w środowisku \zad, posiadajacym ˛ jeden argument — autora zadania. Pod zadaniem można umieszczać komentarze do niego. Komentarze moga˛ mieć dwojaka˛ form˛e: ocen oraz uwag. Ocena służy do wyrażenia swojej subiektywnej opinii o zadaniu przy użyciu form ilościowych. Zapisuje si˛e ja˛ komenda˛ \ocena posiadajac ˛ a˛ 4 argumenty: 1. inicjał, ksywa lub inny identyfikator autora oceny, 2. ocena trudności zadania w skali od 0 do 10, 3. ocena estetyki zadania w skali od 0 do 10, 4. komentarz do oceny. Należy zwrocić uwag˛e, ze oceny estetyki poniżej 5 powinny być rozumiane jako „raczej tego zadania nie chcemy”, a oceny powyżej 5 jako „raczej to zadanie chcemy”. Należy rozważnie używać ocen skrajnych. Uwaga powinna służyć do obwieszczania krótkich notek jakościowych do zadania. Zapisuje si˛e ja˛ komenda˛ \uwaga posiadajac ˛ a˛ 2 argumenty: 1. inicjał, ksywa lub inny identyfikator autora uwagi, 2. tekst uwagi. Pokazywanie komentarzy w skompilowanym pliku można wyłaczyć. ˛ Wystarczy ustawić licznik comment na 0 na poczatku ˛ kodu banku. 2.4 Przykład zadania Przykładowy kod zadania mógłby wygladać ˛ tak: \begin{zad}{Augustyn Cauchy} Wykaza/c, /ze dla $x,y$ b/ed/acych liczbami dodatnimi zachodzi nier/owno/s/c $$x+y\geq 2\sqrt{xy}.$$ \ocena{Onufry}{2}{6}{Proste i przyjemne.} \ocena{MiPi}{4}{3}{Moim zdaniem brzydkie.} \uwaga{A.K.}{Chyba ju/z to gdzie/s widzia/lem...} \end{zad} Co kompiluje si˛e do: A1 Augustyn Cauchy Wykazać, że dla x, y b˛edacych ˛ liczbami dodatnimi zachodzi nierówność √ x + y ≥ 2 xy. Ocena (Onufry): (2 / 6) Proste i przyjemne. Ocena (MiPi): (4 / 3) Moim zdaniem brzydkie. Uwaga (A.K.): Chyba już to gdzieś widziałem... 6