64ビットの平文を入力し、64ビットのブロックを生成します。
表に従って64ビットを並べ替え、最後には逆の表で並べ替えます。
例えば、表の最初の値が58なら、先頭のビットには58番目のビットを配置します。
これはDESの最初と最後の処理に対応します。
データの難読化をさらに進める役割があります。
拡大された48ビットのデータは、XOR演算のあと、八つのSボックスへ入力されます。
各Sボックスは、6ビットの入力を4ビットの出力へ変換します:
{0,1}6→{0,1}4
a1a2a3a4a5a6→a1a6:row,a2a3a4a5:col
Sボックスの行と列は0から始まります。
表から得られた値を二進数へ戻すと、4ビットの出力になります。
Permutation Choice 1(PC-1)では、56ビットの鍵Kを
C0,D0へ変換します。それぞれ28ビットです。
これが、後続の処理で副鍵を生成するための基礎になります。
DESの鍵Kは64ビットですが、そのうち8ビットはパリティビットなので、実際に使うのは56ビットです。
パリティビットは、誤りの検出を担います。