cs585 crypto program