1 .TH IDEA 1 "November 16, 1993"
2 .GN 2
3 .SH NAME
4 idea \- encrypt and decrypt using IDEA
5 .SH SYNOPSIS
6 .TP
7 .B idea
8 [
9 .B \-e
10 |
11 .B \-d
12 ] [
13 .B \-r
14 ] [
15 .B \-ecb
16 |
17 .B \-cbc\c
18 .I N
19 |
20 .B \-cfb\c
21 .I N
22 |
23 .B \-ofb\c
24 .I N
25 ]
26 .br
27 (
28 .B \-k
29 .I keyString
30 |
31 .B \-K
32 .I keyHexString
33 )
34 .br
35 [
36 .I inputFile
37 [
38 .I ouputFile
39 ] ]
40 .TP
41 .B idea
42 [
43 .B \-h
44 |
45 .B \-H
46 ] [
47 .B \-tan
48 |
49 .B \-abr
50 ]
51 .br
52 [
53 .B \-k
54 .I keyString
55 |
56 .B \-K
57 .I keyHexString
58 ]
59 .br
60 [
61 .I inputFile
62 [ [
63 .I ouputFile
64 ]
65 .I hashvalFile
66 ]
67 .SH DESCRIPTION
68 .I Idea
69 reads
70 .I inputFile
71 and writes the en/decrypted data to
72 .I outputFile
73 or writes the hash value to
74 .I hashvalFile\c
75 \&.
76 If file name is not given in command line,
77 .I idea
78 uses standard input or output.
79 If the input file name is given as '-',
80 .I idea
81 reads from the standard input.
82 .br
83 
84 .br
85 .B IDEA
86 (International Data Encryption Algorithm) is a block cipher developed
87 by Dr. Xuejia Lai and Prof. Dr. J. L. Massey at the Swiss Federal Institute of Technology.
88 .SH OPTIONS
89 .TP
90 .B \-e
91 Encrypt data. (default)
92 .TP
93 .B \-d
94 Decrypt data.
95 .TP
96 .B \-r
97 .I InputFile
98 is a raster-file.
99 .TP
100 .B \-k
101 Key is specified with
102 .I keyString\c
103 \&.
104 .TP
105 .B \-K
106 Key and initial values are specified with
107 .I keyHexString\c
108 \&.
109 .TP
110 .B \-h
111 Compute a 128 bit hash value from the input data. The
112 hash value is written to
113 .I hashvalFile
114 (or standard output).
115 .TP
116 .B \-H
117 Compute a 128 bit hash value from the input data. The input is copied to
118 .I outputFile
119 (or standard output) and the hash value is written to
120 .I hashvalFile
121 (or standard error).
122 .TP
123 .B Notation:
124 .br
125 N           = interleave factor (1 is default)
126 .br
127 z           = 128 bit key
128 .br
129 x[i]        = 64 bit plaintext block
130 .br
131 y[i]        = 64 bit ciphertext block
132 .br
133 x[1]..x[L]  = plaintext (last block is filled with zeros)
134 .br
135 x[L+1]      = length of plaintext in bits
136 .br
137 y[1]..y[L+1]= ciphertext
138 .br
139 IDEA(z, .)  = encryption function
140 .br
141 IIDEA(z, .) = decryption function
142 .br
143 x = IIDEA(z, IDEA(z ,x))
144 .TP
145 .B Encryption / Decrypion Modes:
146 .TP
147 .B \-ecb
148 electronic code book mode
149 .br
150 y[i] = IDEA(z, x[i])
151 .br
152 x[i] = IIDEA(z, y[i])
153 .TP
154 .B \-cbc
155 cipher block chaining mode (cbc1 is default)
156 .br
157 y[i] = IDEA(z, x[i] ^ y[i-N])
158 .br
159 x[i] = IIDEA(z, y[i]) ^ y[i-N]
160 .TP
161 .B \-cfb
162 ciphertext feedback mode
163 .br
164 y[i] = x[i] ^ IDEA(z, y[i-N])
165 .br
166 x[i] = y[i] ^ IDEA(z, y[i-N])
167 .TP
168 .B \-ofb
169 output feedback mode
170 .br
171 h[i] = IDEA(z, h[i-N])
172 .br
173 y[i] = x[i] ^ h[i]
174 .br
175 x[i] = y[i] ^ h[i]
176 .TP
177 .B Hash Functions:
178 .br
179 If no key is given,
180 .I idea
181 uses the all zero key.
182 .br
183 hash value = h[L+1] * 2**64 + g[L+1]
184 .br
185 h[0] = z / 2**64
186 .br
187 g[0] = z % 2**64
188 .TP
189 .B \-tan
190 tandem DM-scheme (default)
191 .br
192 w = IDEA(g[i-1] * 2**64 + x[i], h[i-1])
193 .br
194 h[i] = h[i-1] ^ w
195 .br
196 g[i] = g[i-1] ^ IDEA(x[i] * 2**64 + w, g[i-1])
197 .TP
198 .B \-abr
199 abreast DM-scheme
200 .br
201 h[i] = h[i-1] ^ IDEA(g[i-1] * 2**64 + x[i], h[i-1])
202 .br
203 g[i] = g[i-1] ^ IDEA(x[i] * 2**64 + h[i-1], ~ g[i-1])
204 .TP
205 .B Key Formats:
206 .br
207 .I keyHexString
208 = { '0'..'9' | 'a'..'f' | 'A'..'F' | ':' }
209 .br
210 .I keyHexString
211 = z:y[1-N]:y[2-N]:y[3-N]..
212 .br
213 .I keyString
214 = { '!'..'~' } = z
215 .SH EXAMPLES
216 To encrypt and decrypt a file in cipher block chaining mode with
217 an interleave factor of 8:
218 .LP
219 .RS
220 .nf
221 .ft B
222 idea -e -cbc8 -K 12345:67:89::ab:cDEf data data.cr
223 idea -d -cbc8 -K 12345:67:89::ab:cDef data.cr data.ori
224 data and data.ori are identical
225 .ft R
226 .fi
227 .RE
228 .br
229 .ne 10
230 .LP
231 To compute the hash value with tandem DM-scheme:
232 .LP
233 .RS
234 .nf
235 .ft B
236 idea -h data
237 .ft R
238 .fi
239 .RE
240 .br
241 .ne 10
242 .LP
243 To compute the hash value and encrypt the data in one step:
244 .LP
245 .RS
246 .nf
247 .ft B
248 idea -Hk "k e y" data | idea -K 123:9a::eF - data.cr
249 .ft R
250 .fi
251 .RE
252 .SH PATENT
253 IDEA is registered as the international patent WO 91/18459
254 "Device for Converting a Digital Block and the Use thereof".
255 For commercial use of IDEA, one should contact
256 .br
257 
258 .br
259 ASCOM TECH AG
260 .br
261 Freiburgstrasse 370
262 .br
263 CH-3018 Bern, Switzerland
264 .SH AUTHOR
265 Richard De Moliner (demoliner@isi.ee.ethz.ch)
266 .br
267 Signal and Information Processing Laboratory
268 .br
269 Swiss Federal Institute of Technology
270 .br
271 CH-8092 Zurich, Switzerland
272 .SH BUGS
273 This program is at most as strong as IDEA itself. So, we urge the user to
274 use this program only after he has assured himself that IDEA is strong
275 enough AND he has read the source code of this program and its libraries AND
276 he has compiled the program himself with a troyan-free compiler. WE DO NOT
277 GUARANTEE THAT THIS PROGRAM IS A DECENT ENCRYPTION PROGRAM.
278