UMBC CS 201, Fall 08
UMBC CMSC 201
Fall '08

CSEE | 201 | 201 F'08 | lectures | news | help

CMSC 201
Programming Project Four

Data Security

Out: Monday 11/10/08
Due Date: Sunday 11/23/08, before midnight

The design document
for this project, design4.txt, is due:
Before Midnight, Sunday 11/16/08

The Objective

The purpose of this assignment is to give you practice with recursion, strings and chars, allocating memory dynamically, writing to files, and writing to buffers.

What is a Hailstone Sequence?

Choose a positive integer and repeatedly do the following: if the number is 1, quit; if the number is even, cut it in half; and if the number is odd, multiply it by 3 and add 1. For example, if you start with the number 17, you get the sequence:
17   52   26   13    40   20   10    5   16   8    4   2   1.
Generate the sequence from a starting number and you'll find the numbers go up and down like a hailstone in a cloud before it plummets to earth (e.g., when the value is one). We will use these sequences as a means to encrypt our data.

Background

We at CMSC 201 Inc. are worried about the integrity of the files stored on our servers. This concern is a result from watching a number of students attempting to copy files from non-public directories. We look to you as programmers to solve this issue making it impossible for someone to understand our files without our decryption method.

Data security is the protection of data against the deliberate or accidental access of unauthorized persons, also known as file security. The methods most commonly used are encryption and decryption. This is a very old concept and has been done to secure more than just files. In World War II, native americans used their native language to hide the meaning of battle orders from the Japanese.

The computer science department at UMBC has a few professors and classes that look into advanced methods to provide this kind of security. And, we have a number of research opportunities if you are interested.

The Task

Specifications

Guarantees

Sample Output

We have created a sample run using the string input.

We have created a sample run which shows how the menus should work for files: Files.txt.

We have also created a message that is encrypted GoodLuck.msg that will test your code very well and has a funny message which has been encoded.

Submitting the Program

To submit your program, type the following command at the Unix prompt

submit cs201 Proj4 followed by the .c and .h files necessary for compilation

To verify that your project was submitted, you can execute the following command at the Unix prompt. It will show all files that you submitted in a format similar to the Unix 'ls' command.

submitls cs201 Proj4