Question: i need the completed cpp files of encrypt.cpp ,decrypt.cpp and histogram.cpp` `encrypt.cpp` This file should implement shift cipher encryption as described in the introduction. I

i need the completed cpp files of encrypt.cpp ,decrypt.cpp and histogram.cpp`

`encrypt.cpp`

This file should implement shift cipher encryption as described in the introduction. I have given you a "skeleton" to complete:

``` #include #include

int main() { FILE* input = stdin; FILE* output = stdout; char c,k='K'; while ((c=getc(input)) != EOF) { //YOUR CODE HERE// putc(c,output); } } ```

There is basically only one line missing. Note that the key is K by default. You can test your code in the following way:

``` ~/Crypto_Spring_18/proj1$ cat x.clean | ./encrypt > yy.txt ~/Crypto_Spring_18/proj1$ diff yy.txt y.txt ~/Crypto_Spring_18/proj1$ ``` If your code works correctly then `yy.txt` should be identical to `y.txt`. The fact that this is so is confirmed by the fact that `diff` produces no output.

#### `decrypt.cpp`

This program converts a shift ciphertext back to the corresponding plaintext. Let's look at the code you have:

``` int main(int argc,char* argv[]) { check(argc,argv); char k = argv[1][0]; printf("key = %c ",k); FILE* input = stdin; FILE* output = stdout; char c; while ((c=getc(input)) != EOF) { /*YOUR CODE HERE*/ putc(c,output); } } ```

#### `histogram.cpp`

The starting point of any statistical attack on a substitution cipher is to first find the probability distribution of each of the characters that occur. We can approximate this for long inputs by analyzing the relative frequency of each letter. For example try this command.

``` ./hist < x.clean ```

You should see the following output.

``` A: 0.079 B: 0.015 C: 0.025 D: 0.045 E: 0.129 F: 0.026 G: 0.020 H: 0.065 I: 0.063 J: 0.001 K: 0.007 L: 0.037 M: 0.026 N: 0.063 O: 0.077 P: 0.018 Q: 0.001 R: 0.065 S: 0.061 T: 0.096 U: 0.029 V: 0.009 W: 0.024 X: 0.001 Y: 0.017 Z: 0.001 ```

This means that the character A is 7.9 percent of all letters in the file, E is 12.9 percent, etc. Technically the relative frequency of A is defined by

$$rf(A) = \frac{\text{number of occurrences of A}}{\text{total number of letters}}$$

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!