core code for DES