[Next] [Up] [Previous] [Index]

The Johnson Algorithm

A simple block cipher acting on 24-bit blocks was devised by Dr. Eric E. Johnson for use with the radio communications standard known as MIL-STD-188-141A and FED-STD-1045, using eight rounds of the interesting type shown in the illustration below:

The twenty-four one byte subkeys that constitute its subkey material are produced by XORing together successive repetitions of the seven-byte key with successive repetitions of an eight-byte value giving such information as the time and date of the radio transmission, its frequency, and the number of the encrypted block in the message. Thus, no two blocks are encrypted by the same key, but the keys are linearly related; also, purists will also note that the cipher begins and ends with unkeyed steps. But the cipher was not claimed to be secure for general-purpose use, and its construction is unique and interesting. The block length was doubtless chosen to correspond to the twelve data bits that could be accepted by the Golay code, and this algorithm may also be commended, as 24 bits is about the size of the mantissa of a 32-bit floating-point number, to those seeking to use a cryptographic algorithm to generate pseudorandom numbers of extremely high quality.

A somewhat more pictorial view of the round, following the lead of the overview diagram in the paper available at the link given above, is shown in the following diagram:

The contents of the S-box which it uses are the following:

 156 242  20 193 142 203 178 101
 151 122  96  23 146 249 120  65
   7  76 103 109 102  74  48 125
  83 157 181 188 195 202 241   4
   3 236 208  56 176 237 173 196
 221  86  66 189 160 222  27 129
  85  68  90 228  80 220  67  99
   9  92 116 207  14 171  29  61
 107   2  93  40 231 198 238 180
 217 124  25  62  94 108 214 110
  42  19 165   8 185  45 187 162
 212 150  57 224 186 215 130  51
  13  95  38  22 254  34 175   0
  17 200 158 136 139 161 123 135
  39 230 199 148 209  91 155 240
 159 219 225 141 210  31 106 144
 244  24 145  89   1 177 252  52
  60  55  71  41 226 100 105  36
  10  47 115 113 169 132 140 168
 163  59 227 233  88 128 167 211
 183 194  28 149  30  77  79  78
 251 118 253 153 197 201 232  46
 138 223 245  73 243 111 143 229
 235 246  37 213  49 192  87 114
 170  70 104  11 147 137 131 112
 239 164 133 248  15 179 172  16
  98 204  97  64 247 250  82 127
 255  50  69  32 121 206 234 190
 205  21  33  35 216 182  12  63
  84  26 191 152  72  58 117 119
  43 174  54 218 126 134  53  81
   5  18 184 166 154  44   6  75

and its inverse, which must be used when deciphering, is the following:

 103 132  65  32  31 248 254  16
  83  56 144 195 230  96  60 204
 207 104 249  81   2 225  99  11
 129  74 233  46 162  62 164 125
 219 226 101 227 143 186  98 112
  67 139  80 240 253  85 175 145
  22 188 217  95 135 246 242 137
  35  90 237 153 136  63  75 231
 211  15  42  54  49 218 193 138
 236 179  21 255  17 165 167 166
  52 247 214  24 232  48  41 190
 156 131  50 117  57  66  76  97
  10 210 208  55 141   7  20  18
 194 142 126  64  77  19  79 181
 199 147 191 146  58 238 169 239
  14 220   9 110  73  23 244 215
 157  47  94 198 149 202 245 111
 107 197 176 108 150 123   4 182
 127 130  12 196 115 163  89   8
 235 171 252 118   0  25 106 120
  44 109  87 152 201  82 251 158
 151 148 192  61 206  38 241 102
  36 133   6 205  71  26 229 160
 250  84  92  86  27  43 223 234
 189   3 161  28  39 172  69 114
 105 173  29   5 209 224 221  59
  34 116 124 159  88 187  78  93
 228  72 243 121  53  40  45 177
  91 122 140 154  51 183 113  68
 174 155 222 184  33  37  70 200
 119  30   1 180 128 178 185 212
 203  13 213 168 134 170 100 216

[Next] [Up] [Previous] [Index]

Next
Chapter Start
Skip to Next Chapter
Table of Contents
Main Page
Home Page