All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class cryptix.provider.key.DESKeyGenerator

java.lang.Object
   |
   +----java.security.KeyGenerator
           |
           +----cryptix.provider.key.RawKeyGenerator
                   |
                   +----cryptix.provider.key.DESKeyGenerator

public class DESKeyGenerator
extends RawKeyGenerator
A key generator for (single) DES.

DES keys have a fixed length of 8 bytes, with a parity bit as the LSB of each byte (i.e. there are 2^56 possible keys).

Copyright © 1997 Systemics Ltd on behalf of the Cryptix Development Team.
All rights reserved.

$Revision: 1.1.1.1 $

Author:
David Hopwood, Raif Naffah

Constructor Index

 o DESKeyGenerator()
 o DESKeyGenerator(String, int)
Constructor for use by subclasses that need to specify a different seed length (e.g.

Method Index

 o engineGenerateKey(byte[])
This method allows subclasses to modify the bytes that will be used to generate a key.
 o isWeak(byte[])
Returns true iff the first 8 bytes of key represent a weak or semi-weak single DES key.
 o isWeak(byte[], int)
Returns true iff the bytes at key[offset..offset+7] represent a weak or semi-weak single DES key.
 o setParity(byte[])
Sets parity bits for the given input array.

Constructors

 o DESKeyGenerator
 public DESKeyGenerator()
 o DESKeyGenerator
 protected DESKeyGenerator(String algorithm,
                           int seedlength)
Constructor for use by subclasses that need to specify a different seed length (e.g. for Triple DES).

Methods

 o engineGenerateKey
 protected byte[] engineGenerateKey(byte seed[]) throws WeakKeyException, InvalidKeyException
This method allows subclasses to modify the bytes that will be used to generate a key.

Overrides:
engineGenerateKey in class RawKeyGenerator
 o setParity
 protected void setParity(byte array[])
Sets parity bits for the given input array. The least significant bit of each byte is changed to ensure that the byte has odd parity.

 o isWeak
 protected boolean isWeak(byte key[])
Returns true iff the first 8 bytes of key represent a weak or semi-weak single DES key.

Overrides:
isWeak in class RawKeyGenerator
 o isWeak
 protected boolean isWeak(byte key[],
                          int offset)
Returns true iff the bytes at key[offset..offset+7] represent a weak or semi-weak single DES key. It can be called either before or after setting parity bits.

(This checks for the 16 weak and semi-weak keys as given by Schneier, Applied Cryptography 2nd ed., tables 12.11 and 12.12. It does not check for the possibly-weak keys in table 12.13.)


All Packages  Class Hierarchy  This Package  Previous  Next  Index