cyrpto project CMSC 396H