Skip to main content
1 of 5
fgrieu
  • 145.6k
  • 12
  • 319
  • 611

S-DES is a toy cipher intended for learning, defined by Edward F. Schaefer, A Simplified Data Encryption Standard Algorithm, in Cryptologia Volume 20, Issue 1, 1996 (paywalled with free preview). It has the same structure as DES, and uses the same notations:

  • bits vectors (such as key and data) are numbered "starting" from 1 "on the left"
  • functions of bit vectors giving bits vectors are expressed by a series of decimal numbers, giving, for each bit of the output, the index of the corresponding bit in the input.

P10 (which mimics PC1 in DES) transforms a 10-bit vector into a 10-bit vector, such that the jth bit of the output is at the index in the input given by the jth number in 3, 5, 2, 7, 4, 10, 1, 9, 8, 6.
For example, the 2nd bit in the output is the 5th bit in the input, because the 2nd number is the above sequence of numbers is 5.

P8 (which mimics PC2 in DES) transforms a 10-bit vector into an 8-bit vector, such that the jth bit of the output is at the index in the input given by the jth number in 6, 3, 7, 4, 8, 5, 10, 9.
For example, the 7th bit in the output is the 10th bit in the input, because the 7th number is the above sequence of numbers is 10.


The rest of the text in the question has the following meaning/rationale:

The key K = 1010000010 of S-DES is a 10-bit vector. K is transformed using P10, yielding a 10-bit vector CD0 = 1000001100, which is split into two 5-bit vectors C0 = 10000 and D0 = 01100.

In the first round,

  • C0 and D0 each are rotated on the left by one, yielding C1 = 00001 and D1 = 11000.
  • C1and D1 are joined into CD1 = 1100011000.
  • CD1 is transformed using P8, yielding K1 = 10100100.

In the first round,

  • C1 and D1 each are rotated on the left by two, yielding C2 = 00100 and D2 = 00011.
  • C2and D2 are joined into CD2 = 0010000011.
  • CD2 is transformed using P8, yielding K2 = 01000011.
fgrieu
  • 145.6k
  • 12
  • 319
  • 611