Unformatted text preview: For g = 0 to 63 A = X(4g)<<<2r B = X(4g+1)<<<2r C = X(4g+2)<<<2r D = X(4g+3)<<<2r For step s = 0 to 7 A = A • (B + fr(B,C,D) + S512r+8 g+s) TEMP = D D=C C=B B = A <<< 5 A = TEMP X(4g)<<<2r = A X(4g+1)<<<2r = B X(4g+2)<<<2r = C X(4g+3)<<<2r = D (4) Recombine X0, X1, X2,..., X255 to form the ciphertext. The functions fr(B,C,D) are similar to those used in MD5: f0(B,C,D) = (B › C) ½ ((¬ B) › D) f1(B,C,D) = (B › D) ½ (C › (¬ D)) f2(B,C,D) = B • C • D f3(B,C,D) = C • (B ½ (¬ D)) Decryption is the reverse process. Generating the subkeys is a large task. Here is how the permutation array, P, could be generated from an 80-bit key, K. (1) Initialize K0, K1, K2,..., K9 with the 10 bytes of K. (2) For i = 10 to 255 Ki = Ki - 2 • Ki - 6 • Ki - 7 • Ki - 10 (3) For i = 0 to 255, Pi = i (4) m = 0 (5) For j = 0 to 1 For i = 256 to 1 step -1 m = (K256 - i + K257 - i) mod i K257 - i = K257 - i <<< 3 Swap Pi and Pi - 1 The S-array of 2048 32-bit words could be generated in a similar manner, either from the same 80-bit key or from another key. The authors caution that these details should “be viewed as motivational; there may very well be alternative schemes which are both more efficient and offer improved security” . Crab was proposed as a testbed of new ideas and not as a working algorithm. It uses many of the same techniques as MD5. Biham has argued that a very large block size makes an algorithm easier to cryptanalyze . On the other hand, Crab may make efficient use of a very large key. In such a case, “easier to cryptanalyze” might not mean much. 14.7 SXAL8/MBAL
This is a 64-bit block algorithm from Japan . SXAL8 is the basic algorithm; MBAL is an expanded version with a variable block length. Since MBAL does some clever things internally, the authors claim that they can get adequate security with only a few rounds. With a block length of 1024 bytes, MBAL is about 70 times fast...
View Full Document
- Fall '10
- Cryptography, Bruce Schneier, Applied Cryptography, EarthWeb, Search Search Tips