×

Method and apparatus for advanced symmetric key block cipher with variable length key and block

  • US 6,243,470 B1
  • Filed: 02/04/1998
  • Issued: 06/05/2001
  • Est. Priority Date: 02/04/1998
  • Status: Expired due to Fees
First Claim
Patent Images

1. In a computer environment, computer-readable code for providing a symmetric key block cipher which supports a variable length symmetric input key, a variable length block, and a variable number of rounds, said computer-readable code embodied on a computer-readable medium and comprising:

  • computer-readable program code means for determining a number of rounds of cipher processing to use as said variable number of rounds, a key length of said variable length symmetric input key, and a block length of said variable length block;

    computer-readable program code means for generating a plurality of sub-keys using said symmetric input key as an input value, wherein each of said generated sub-keys is equal in length to said block length and where a distinct one of said sub-keys is generated for each of said number of rounds;

    computer-readable program code means for obtaining an input data block to be encrypted, wherein said input data block comprises a plurality of input data segments, each of said input data segments comprised of a plurality of input data bytes wherein said plurality of input data bytes is equal in number to said block length; and

    computer-readable program code means for iteratively performing a set of round functions a number of times equal to said number of rounds in order to encrypt said input data segments, wherein said set of round functions comprises a mixing function, a permitting function, and a key-dependent substitution function, and wherein said computer-readable program code means for iteratively performing further comprises;

    computer-readable program code means for performing said mixing function by mixing each of said input data segments using a first XOR operation and a second XOR operation, wherein said first and second XOR operation are different, followed by a first substitution-box (S-box) lookup operation, thereby creating a plurality of mixed segments;

    computer-readable program code means for performing said permuting unction by swapping each of said mixed segments, thereby creating a permuted block;

    computer-readable program code means for performing said key-dependent substitution function on said permuted block by performing a third XOR operation followed by a second S-box lookup operation, thereby creating a plurality of substituted bytes; and

    computer-readable program code means for treating said plurality of substituted bytes as said plurality of input data bytes of said input data segments for a subsequent iteration of said computer-readable program code means for iteratively performing, provided said number of times has not been reached.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×