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