7
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
1 % two sided printing
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
2 \documentclass[letterpaper,12pt]{article}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
3
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
4 \usepackage[reset,margin=1in]{geometry}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
5 \usepackage{url}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
6 \usepackage{epsfig}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
7
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
8 \title{\huge GPG\normalsize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
9 \author{Josef ``Jeff'' Sipek $<$jeffpc@josefsipek.net$>$}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
10 \date{}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
11 \twocolumn
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
12 \begin{document}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
13 \maketitle
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
14 \vspace{0.75cm}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
15
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
16 \noindent\fbox{
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
17 \begin{minipage}{0.9\linewidth}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
18 {\bf Cryptography}, n.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
19
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
20 The science which studies methods for encoding messages so
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
21 that they can be read only by a person who knows the
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
22 secret information required for decoding, called the key
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
23 \end{minipage}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
24 }
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
25
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
26
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
27 \section{History}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
28 \begin{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
29 \item Caesar cipher -- used by Julius Caesar to deliver messages to
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
30 his generals. A simple substitution cipher which relied on the
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
31 illiteracy of majority of people.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
32 \item ROT13 -- ``modern'' version of the Caesar cipher. It shifts
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
33 all characters by 13 instead of 3. Since there are only 26 letters
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
34 in the english alphabet, an interesting effect occurs: encryption
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
35 and decryption are one and the same operation!
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
36 \end{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
37
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
38 \subsection{Symmetric ciphers}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
39 Both Caesar and ROT13 are \emph{symmetric} ciphers. That means that the same
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
40 key is used during both encryption and decryption.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
41
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
42 Some modern symmetric ciphers include \emph{AES} and \emph{Blowfish}. Both
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
43 of these ciphers, with a good key are \emph{effectively} unbreakable with
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
44 today's technology \& mathematics.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
45
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
46 The only problem with symmetric ciphers is the fact that the key has to be
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
47 agreed upon over a secure channel -- in-person meeting, trusted courier, etc.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
48
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
49
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
50 \section{Asymmetric ciphers}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
51 The solution to the problem is ``simple'' --- it is called \emph{asymetric}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
52 ciphers. Asymmetric ciphers consist of 2 keys. One \emph{private} and the
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
53 other \emph{public}. The public key is exactly that, public. You can post it
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
54 on your website and not worry about a thing. The private key should be kept
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
55 secure at all times. The private key allows you to do all the cool things.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
56 :)
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
57
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
58 \subsection{Generating a key-pair}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
59 Large random numbers are the basis of modern cryptography.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
60
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
61 \noindent
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
62 \begin{minipage}{0.5\linewidth}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
63 \begin{center}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
64 \epsfig{file=Public_key_making.eps, scale=0.45}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
65 \end{center}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
66 \end{minipage}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
67
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
68 \newpage
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
69 \subsection{Uses}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
70 Such key-pair can be used to:
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
71 \begin{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
72 \item Sign/Verify signature
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
73 \begin{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
74 \item Sign with private key
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
75 \item Verify with public key
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
76 \end{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
77 \end{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
78
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
79 \noindent
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
80 \begin{minipage}{0.5\linewidth}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
81 \begin{center}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
82 \epsfig{file=Public_key_signing.eps, scale=0.45}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
83 \end{center}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
84 \end{minipage}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
85
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
86 \begin{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
87 \item Encrypt/Decrypt
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
88 \begin{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
89 \item Encrypt with public key
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
90 \item Decrypt with private key
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
91 \end{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
92 \end{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
93
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
94 \noindent
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
95 \begin{minipage}{0.5\linewidth}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
96 \begin{center}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
97 \epsfig{file=Public_key_encryption.eps, scale=0.45}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
98 \end{center}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
99 \end{minipage}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
100
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
101 \section{GPG commands}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
102 \noindent{\bf Generate a new key-pair}:\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
103 \noindent{\texttt gpg --gen-key}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
104
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
105 \noindent{\bf Sign a file}:\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
106 \noindent{\texttt gpg --clearsign \emph{filename}}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
107 \noindent{\texttt gpg -a --sign \emph{filename}}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
108
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
109 \noindent{\bf Verify a signature on a file}:\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
110 \noindent{\texttt gpg --verify \emph{filename}}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
111
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
112 \noindent{\bf Encrypt a file}:\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
113 \noindent{\texttt gpg --encrypt \emph{filename}}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
114 \noindent{\texttt gpg -a --encrypt \emph{filename}}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
115
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
116 \noindent{\bf Decrypt a file}:\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
117 \noindent{\texttt gpg --decrypt \emph{filename}}\\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
118
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
119 \subsection{Nasty, eh?}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
120 Since using GPG directly is rather nasty, people have developed many
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
121 GUI/console frontends, as well as integrated GPG functionality right into
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
122 their applications. For example, Kmail, mutt, both integrate with GPG very
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
123 nicely.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
124
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
125 \section{Resources}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
126 Images shamelessly stolen from Wikipedia.
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
127
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
128 \begin{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
129 \item Wikipedia \\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
130 \url{http://en.wikipedia.org/wiki/Asymmetric_key_algorithm}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
131 \item GNU Privacy Guard \\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
132 \url{http://www.gnupg.org}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
133 \item OpenPGP Message Format \\
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
134 \url{http://www.ietf.org/rfc/rfc2440.txt}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
135 \end{itemize}
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
136
|
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents:
diff
changeset
|
137 \end{document}
|